| XML For Web-Based Collaborative Management | Table of contents | Indexes | IBM's XML Enabler: Making the World Safe for XML | |||
| Case study Competence gap analysis tool | XML on the Desktop: A Case Study of the Document as Application at Shell |
New York ![]() RivCom ![]() Stewart, Tony ![]() | Tony
Stewart
Director of Consulting, RivCom
Biographical notice Tony Stewart is Director of Consulting of RivCom, a publishing services company based in New York City and Swindon, England, that provides sophisticated delivery and visualisation services for corporate and industrial information in both printed and electronic form. RivCom was the first company to demonstrate XML documents being displayed in an industry-standard browser (at the WWW6 conference in 1997), and it continues to focus on developing innovative document-centric applications of XML technology. While Tony has worked with XML for just over a year, he brings twenty years of past experiences that are directly relevant to these emerging technologies. Prior to joining RivCom, Tony spent ten years developing database application software, including five years as Vice President for Software Development at Riverside Software. There he led the development of a Windows-based database-management application for the administration of philanthropic activities that is used by two of the five largest charities in the world. Prior to that, he was for ten years an award-winning documentary and corporate filmmaker. Tony graduated from Yale University in 1977 with a degree in English Literature. |
ActiveX ![]() Internet Explorer ![]() RivComet ![]() | Introduction |
| The XML family of standards is changing the ways in which people interact with documents. Where traditionally documents have served as static snapshots of information, the combination of XML, XSL and Xlink will allow us to deliver documents that look and behave very much like interactive software programs. |
| A document designer now has to consider not only how the document should look, but also how it should behave, and how it will fit into the information architecture of which it is a part. Similarly, an information architect who is designing a system must consider which goals of the project are best served by traditional software development, and which should be filled by XML-based interactive documents. |
| At the WWW6 Conference in Santa Clara in April 1997, RivCom gave the first public demonstration of XML content being presented through the use of stylesheets in an industry-standard browser. RivComet, the technology used in that demo, has now been enhanced and is available as an ActiveX control running under Internet Explorer 4.0. |
| RivComet has been used to deliver a number of XML applications for Shell International and other blue-chip companies. One of these, the Competence Gap Analysis Tool, is the basis of this presentation. |
| This talk demonstrates the application in action, then looks more closely at the XML structures on which it is based. Finally, it examines the issues that this kind of project raises, starting with the concrete "why did they do it this way?" and moving outwards to a generalized discussion of the strengths and weaknesses (and costs and benefits) of using XML-based interactive documents in an information architecture. |
Application Overview |
| The Competence Gap Analysis Tool was developed by RivCom for Shell Services International. The requirement was to create an interactive tool to allow people working in diverse units throughout Shell to |
| The tool had to be data-driven, so that the supplied list of competences could be easily modified to handle jobs with vastly different requirements. And it had to be lightweight and capable of running virtually anywhere that Shell operates - which is all over the world. |
| These requirements made XML and RivComet an ideal solution. RivComet uses XML to store data, and stylesheets to govern the presentation of the data and the interaction available to the user. A single file downloaded from the server is presented in multiple ways and combined with data stored locally or entered interactively by the user. The result is a fully-fledged application that runs on the client, with network traffic kept to a minimum. |
Functionality |
| The application's opening page presents a simple workflow consisting of three tasks: |
| Each task comprises a separate page, within which the competence framework can be browsed and interacted with in various ways. Working through these pages, the user performs the following actions: |
Step by Step |
| The job profile information is displayed as a list which the user can expand and collapse like an outliner. (Figure 1.) |
|
| The outline view shows only the names of the competences and competence groups. However, by clicking on the button to the right of each competence, a full description can be viewed in a popup window. (Figure 2.) |
|
| Below this description is a set of buttons corresponding to various competence levels, fromAwareness toMastery . These buttons may be used to specify the level of this particular competence that is required for the job whose profile is being created. Clicking one of these buttons causes an identical button to appear in the main window against that particular competence. The Exclude button indicates that a particular competence is not relevant to the job in question. |
| An additional feature of the popup window is the help text that is revealed by clicking on the blue double triangle to the left of the green question-mark icon. |
| Once the user selects a competence level, their choice is transferred back to the main window. (Figure 3.) |
|
| If the user pressesSave and stores their information to disk, the application creates an XML file that contains the requirements of the job they have described. (See below for an example.) The reason this file can be saved to disk is that the task of defining competences for a particular job is performed just once. Once the job definition has been saved, at any time and as often as necessary the user can create separate files for each person who is performing that job. |
| The task of defining a person's competences is done in another window which looks a lot like the one shown above, but has a column for the individual's ratings. Assuming the current worker has a "Mastery" of Balanced Judgement (and has not entered any other competence values), the display ends up looking like this: (Figure 4.) |
|
| The user can optionally save their personal competences for later review. |
| Finally, the tool contains a third window which displays a "Gap Analysis". This is a graphical comparison of the requirements for this job and the values entered by the current individual. The analysis can be performed either immediately after entering this individual's values, in which case there is no need to create the third document, or at any later time. The gap analysis for the above entry would look like this: (Figure 5.) |
|
| Had the gap been negative it would have shown in red. A full display featuring both red and green elements is quite colorful. |
XSL ![]() | Behind the Scenes |
| All this functionality results from different presentational styles being applied to structured XML information. The different competences and competence groups are nested XML elements that are displayed or hidden according to the style that is applied to them as the user clicks on the plus or minus buttons. The competence levels are displayed by a style that is responsive to the current value of the relevant attribute of the XML element, which is dynamically altered in memory in response to the user clicking on the relevant button in the popup window. |
| The stylesheets and formatting rules are written in a proprietary syntax developed by RivCom, as there is currently no W3C Recommendation for the application of presentation and behavior to XML content. (And at the time CGAT was prepared, there wasn't even a Working Draft of XSL.) However, RivCom is represented on the XSL Working Group and will adopt XSL syntax as soon as it has been approved as a W3C Recommendation. |
Use of XML |
| The application is built around a read-only file containing a set of nested XML elements (the competence framework itself) and a number of stylesheets and associated formatting rules that define the application's functionality. |
| The application allows the user to browse through the competence framework and assign 'required' and 'individual' levels to each competence. |
| Here is an extract from the XML representation of the competence framework: |
| The zero values of therequired and indiv attributes on the competences in the above sample indicate that no competence levels have yet been set for them. |
| When the user saves a competence profile to disk, a local file will be created that gives non-zero values to these attributes. For example: |
|
| In the demo version of the application, the 'save' function has been disabled. However, the modified values of the attributes are held in memory and applied dynamically just as if they had been included in the master file, or combined with it from a locally saved file. |
| As the above PRE fragment illustrates, one of XML's great strengths - the ability to separate content from format - has been fully made use of. The fragment stores competence levels in a very concise and readable way. It is for the stylesheets to determine the one or more ways in which this competence information is presented to the user. |
DOM, Document Object Model ![]() HTML, Hypertext Markup Language ![]() JavaScript ![]() | Runtime Technical Architecture |
| The text files used in this application contain virtually no HTML. All of the HTML required for rendering the pages in the browser is generated on the fly by the RivComet ActiveX control. Here is an outline of what happens: |
| As can be seen in this example, the above architecture is extremely flexible and powerful. Of course, it uses a non-standard style language and an ActiveX control to achieve the desired results. But I believe (or at least hope) that before long XSL will support this level of interactivity, and that the major industry-standard browsers will support XSL style sheets. At that point we will be able to deliver the functionality embodied in the CGAT via a standardized syntax and non-proprietary tools. |
Issues and Conclusions |
Why did we use this approach? |
| This project came on the heels of several publishing projects in which RivCom had used XML and style sheets to publish the on-line versions of several sets of Shell's corporate documents. Therefore, at the time that Shell raised the issue of creating a Competence Gap Analysis Tool, the RivComet technology was hot off the presses and fresh in everyone's mind. Had it not been for this "mind share" factor, it is possible (even likely) that the client would have looked to traditional software development to address their requirements. Or, they might not have proceeded with the project. |
| Shell's requirements were that the tool should: |
| After a short analysis, Shell decided to try a document-based approach because: |
Would traditional software development have succeeded? |
| In this case we do not know whether it ever would have happened. While the technology required to implement the CGAT in a more traditional form is trivially available, the costs of software development and the cultural attitude of the client might have led them not even to consider it. |
| In general, people assume that software development is complex and therefore costly, and that document publishing is simple and therefore less expensive. Of course, in practice both of these assumptions may be false: the cost and complexity of a given project is related much more closely to the requirements of the project and the nature of the information than to the technology that is used. (Unless, of course, one selects technology that is unsuited to the task.) |
| In this case, I believe that the division of Shell responsible for the CGAT was willing to undertake the project in part because of its low cost and low risk. Had we proposed to develop the application in VB or Java, the real costs would probably have been slightly higher, but more importantly, the client's fear factor would have been considerably higher. For a different client, especially one more accustomed to commissioning software development, this might not have been an important issue. |
Decision Factors |
| There are a number of factors that come into play when deciding whether or not to use a document-based approach in a given application. |
|
|
|
|
|
|
|
Conclusion |
| The world of publishing is changing rapidly. Soon, it will be common to deal with interactive documents that behave just like the applications that were written in Visual Basic or C++ just a few years ago. Whether or not this is a good idea for a given project is not clear-cut. The decision depends in part on the nature of the information being published, in part on the facilities and constraints of the project's infrastructure, and in part on the attitudes of the clients and users. |
| As the XML-related standards gel, as the built-in support for XML-based interactivity in browsers increases, and as users become more accustomed to this software paradigm, the boundary between documents and software applications will blur to the point of disappearing. Shell's Competence Gap Analysis Tool may be the first XML-based interactive document-as-application that we know of, but it surely won't be the last. |
| XML For Web-Based Collaborative Management | Table of contents | Indexes | IBM's XML Enabler: Making the World Safe for XML | |||