Appeared in Object Magazine, November 1996
Column: Objects & The Web
Synergy is about balance. That was the conclusion drawn from my previous column, where I considered the potential contributions of blending the best learnings from Web-oriented and object-oriented development. This month Ill analyze those contributions in greater detail within the realm of systems analysis and design, but for now, Ill steer clear of specific implementation choices.
Before I launch into analysis techniques, consider an example of a system for improving the performance of customer service and sales operations. This performance support system should enable new employees to learn the business procedures and product line, plus assist them in learning effective use of the information systems required to perform their tasks. At the same time, the performance support system should help experienced employees to refine their skills and to continue learning about changes in their work environment. A combination of Web and object-oriented technologies provides a unique capability for delivering training as a integral part of everyday work systems. Ill use this scenario as fodder for concrete examples of integrating Web- and object-oriented analysis.
My goal for Web-object system analysis is to co-mingle documents and objects into a single model to produce an integrated solution. Most Web-based information systems that I see are limited to HTML views for input/output to conventional MIS systems, maybe implemented with object-oriented tools for constructing the Web interface. Although these data-oriented documents include an occasional hyperlink to on-line help documents, they are not integrated with significant text and multimedia content that complements and completes the system requirements. Similarly, there are many document-based systems that describe product configurations or features, but are not tightly integrated with the systems that validate configurations and quote prices for alternative product bundles.
I have particular interest in two analysis methods, both of which have counterparts in Web and object-oriented analysis. With minor reinterpretation, we can blend and apply these methods to analysis and design of hybrid systems. First, conceptual models are well known to object technologists as class/relationship diagrams. Analogous models are sometimes used for hypertext analysis, e.g. information mapping techniques for clustering and chunking topics. Second, instance models are used to diagram state changes and/or relationships among objects, and are also applied as page navigation diagrams in hypertext systems. Combining these, a performance support system can be modeled as a navigation map through instances of object classes.
When developing hybrid Web-object systems, there is a potential gap between explicit and implicit semantics. The meanings are explicit when all concepts and relationships are carefully specified and documented, for example in an OMT object model. This is typical of most mainstream object-oriented systems, where an object or relationship cannot exist unless it is included in the model. On the other hand, a document in a Web-based system might have its meaning defined in natural language text, where a human readers background knowledge and interpretation is required to produce the intended meaning. From the perspective of a Web-object system, such Web pages have opaque or implicit semantics.
An interlinked network of Web pages is perfectly understandable to a human reader, but might be impossible or difficult to interpret with a program. Alternatively, an object-oriented database is perfectly interpretable by a program (as long as the program includes a representation of the conceptual model), but difficult for a novice user to comprehend. A hybrid Web-object system must strike an appropriate balance between explicit and implicit semantics, where whats appropriate depends on the requirements of a particular application. A traditional object-oriented system might lack the richness or subtlety to represent an organizations strategic plan, but a combination of object- and Web-oriented design can yield a system that successfully balances explicit and implicit meaning.
Recall the scenario for a performance support system that I described in the introduction. The following diagram illustrates some important concepts and relationships for performance support, simplified to fit within the scope of this column. This model is a synthesis of 4 or 5 consulting projects that Ive worked on over the past two years, so it is mostly domain independent. Two of those projects used only object-oriented analysis and design, including Use Cases to document the tasks. The other projects concentrated on Web-based system delivery and access to existing legacy systems. My current efforts focus on bridging the semantic gap by bringing richer description to objects and more explicit meaning to Web documents.
You should be able to "read" a good model like a story about the problem domain (this belief may be motivated by my prior research into semantic networks and knowledge representation). For example: A procedure is decomposed into its specific tasks, and a task may precede one or more additional tasks. A task is illustrated by examples, and supplemented by frequently asked questions about the task. The skill types required by a task are a useful guide for assessing successful learning. A task may use system screens to support its completion, and the corresponding system can be launched if necessary. Conversely, starting from a system screen a user can review supported tasks, required skills, examples and FAQs. Tasks are supported by several kinds of information content, some of which is included in the system screens. The information content consists of both data and HTML Web documents.
This analysis model makes no commitment to implementation technologies. Each class in the model can be implemented as a file-based HTML document, a database entry in a traditional client/server architecture, a full-fledged object, or a blend of these approaches. In particular, note that an object can have multiple types of implementations. A "System Screen" might have several Web page instances that document its purpose and use, plus a CORBA object adapter that encapsulates access to a mainframe legacy system. Other classes like Task or Example could be file-based HTML documents, or text objects in a database. Either files or text objects can use metadata attributes that define an objects role and aid in its indexed retrieval.
Just as you use an atlas to plot a trip through various connections of highways and cities, a hypertext navigation path defines a meaningful route through a complex conceptual space of links and documents. The conceptual model provides a legend for the map and rules for its interpretation. Each instance model defines one possible trip through a particular map. As part of analyzing a prospective Web-object system, instance models help end-users to visualize some interesting trips through a complex web of information.
The following diagram illustrates a possible trip through our performance support system. Each node represents a single object instance, whether the object is an HTML document or a Java client stub for a remote CORBA object. This trip can be either a recommended path, or a historical path. The performance support system should include recommended trips that guide a user through the training material, thus preventing users from getting "lost in hyperspace." Historical trips allow users to retrace their virtual steps in order to review material covered previously, e.g. when they were interrupted in their training and need to reestablish their previous understanding.
This diagram could represent either a trip that is recommended as a training exercise for a new employee, or a historical trip indicating a sequence of Web pages and objects that were visited during a particular case history. One of the powerful characteristics of Web technology is the speed with which realistic prototypes can be produced. This instance model can be quickly developed as a set of static linked, multimedia HTML documents. For the prototype, mock-ups or screen images can be substituted for the system screen, and sample output can be inserted as responses to the object method invocations for Customer, Product and Order.
Several possible worlds will unfold in the near future as potential solutions to closing the semantic gap between the Web and objects. The World Wide Web Consortium, or W3C, has a technical track investigating Uniform Resource Citations (URCs) as a general mechanism for defining a set of attribute/value pairs that describe a Web object. These URCs could be stored within documents as HTML meta tags, or more likely stored external to documents in distributed catalog or directory servers. Either way, we will have an ability to add system interpretable attributes to Web documents in a way that is globally scalable.
On another front, object-based resources are being adapted so that their access protocols are available for use within Uniform Resource Locators (URLs). For example, theldap:// protocol will deliver directory objects, possibly as MIME types, via the Lightweight Directory Access Protocol. The rmi:// protocol will allow remote Java objects to be invoked via Suns proposed Remote Method Invocation protocol for Java. Much has also been written about using Java applets as CORBA compatible clients, embedded within Web documents, communicating via the Internet InterORB Protocol. Conversely, Java provides a class library for retrieving documents via HTTP and processing them as a data stream within the program. Such capabilities will provide very easy, natural mechanisms for integrating object-oriented or object-based resources with Web documents.
The combination of these two future developments will help us to design well integrated Web-object systems that deliver a new generation of performance support systems.