OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] [OT] Enhancing the richness of an information system [was:

[ Lists Home | Date Index | Thread Index ]

Title: Message
 
Could we say that a system is extensible if one or more of its external interfaces support the addition of new components - which thus become an integral part of the resulting "extended" system?
 
Also, could we say that a system is extensible if one or more of its *internal* interfaces support the addition of new components or the replacement of a component with a new component with an extended interface?
 
In both cases, additional entire external interfaces can be made available as the result of the extension.
 
I still think that "evolvability" has totally different connotations, which relate to the ease, cost, and elegance of changes to be made to meet new requirements/constraints.  (Whereas "extensibility" would only mean that an addition or replacement is possible - i.e., explicitly supported by some interface - and can be safely ignored by the user.)
 
(Which means that one can have evolution with or without extension - in many cases, breaking extensibility.)
 
(Or vice versa.  Say, adding a second keyboard to my PC may or may not be considered as "evolution" of my PC.)
 
Alessandro Triglia
 
-----Original Message-----
From: Roger L. Costello [mailto:costello@mitre.org]
Sent: Wednesday, June 02, 2004 11:32
To: xml-dev@lists.xml.org
Subject: [xml-dev] [OT] Enhancing the richness of an information system [was: Difference between an extensible versus an evolvable information system?]

Hi Folks,
 
Many thanks to those who responded to my last message.  This message is a follow-up. 
 
From the responses it is evident that the difference between "extensibility" and "evolution" can be slippery.  I like the distinction that Ken Laskey gave:
 
"To be extensible allows you to do things for which you have a current understanding but to do it over a wider range of instances."  (Thus, adding new keywords, or adding new book categories are examples of extending the system, not evolving the system)

"To show evolution, you need to do something in a new way or do something you hadn't done before."
 
In the following discussion I will use the terms "extensibility" and "evolution" using these definitions.
 
I would like to hear your thoughts on ways to enhance the richness of an information system.
 
see two ways of enhancing the richness of an information system:
 
1. Horizontal Extension
2. Vertical Evolution
 
Below I explain what I mean by these terms.
 
Horizontal Extension
 
A typical method of growing a system is to "add more stuff".  For example, Amazon can grow by adding more ways for users to locate information:
    - add a keyword search capability,
    - add a way to locate information based upon book category,
    - add a way to locate information based upon author name,
    - etc. 
 
By "adding more stuff" Amazon has extended its "access mechanisms".  The system has expanded horizontally with new access methods.  I refer to this method of enhancing the richness of a system as horizontal extension.
 
Advantages: this method of enhancing the richness of an information system is well understood and is controllable.
 
Disadvantages: no matter how many ways Amazon provides for accessing information, it will never be enough.  The need for new ways to access information changes as information changes (e.g., new fields of study) and as users change.  (I offer as evidence the constantly changing face of the Amazon web site)
 
Vertical Evolution
 
When I was a child I used to enjoy building things with Legos.  Starting from simple Lego building blocks I was able to build up rich structures.  The Lego building block "interface" was fixed (i.e., the blocks snapped together in certain ways).  But that simple interface was sufficient to enable creation of tremendously rich structures.  The richness of the structures was limited only by my imagination.
 
Analogously, a method for enhancing the richness of a system is to "build up" the system from building blocks.  The system is thus designed to support different mechanisms for "connecting" the pieces.  After launching the system, the ways that the system changes is dictated by how the users connect the pieces together. 
 
For example, suppose that Amazon provides a "related to" mechanism for connecting information.  Further, suppose that Amazon does not have a keyword search capability.  The system could "evolve" to support keyword searches by using the "related to" mechanism:
 
XSLT --------------------> XSLT: Programmer's Reference by Michael Kay
             "related-to"
 
"XSLT" is a user-defined keyword.
"XSLT: Programmer's Reference by Michael Kay" is a basic information building block within the Amazon system.
 
It is important to note that no new functionality was introduced.  Existing functionality was utilized to enhance the richness of the system.  That is, the "related to" connection mechanism was used to create the keyword search mechanism.  I refer to this method of enhancing the richness of a system as vertical evolution.
 
Advantages: the system is able to quickly respond/adapt to user needs.  In fact, it is the users that evolve the system!  The system simply provides the mechanisms for the user to "snap together the building blocks". 
 
Disadvantages: it is important that the system provide guides to ensure that evolution occurs in a useful direction.  (The system guides, but does not control the evolution)
 
What are your thoughts on this?  /Roger




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS