A Generalized Online Delivery Paradigm for XML Information   Table of contents   Indexes   XFDL - Representing Business and Government Forms in XML

Web-based
 XML 
state-dependent
 

Using to create information support for management applications

 Canada 
Kanata
Madsen, Paul
Newbridge Networks Corporation
 
Paul  Madsen
Structured Information Analyst,  Newbridge Networks Corporation 
  600 March Road
Kanata  (Canada) K2K 2E6 
Email: pmadsen@newbridge.com

Biographical notice

Paul Madsen is the principal Structured Information Analyst for Newbridge Networks Corporation, a maker of telecommunications network hardware and network management software. In the past he has been responsible for the design and maintenance of the DTD for Newbridge technical documentation products and the creation of Web-based Online help products. His current focus is the investigation of structured data technologies as they apply to the delivery of dynamic information support and multimedia training to users of Newbridge products. Other work includes using XML as an alternative syntax for network management protocols.

Paul holds a PhD in theoretical particle physics from Carleton University in Ottawa, Canada.

WBM
Web-based Device Management
 XML 
 distributed computing 
 

Abstract

 The power of lies in its fundamental features of portability and self-descriptive data. The network portability allows an instance to be easily and reliably transported over a distributed network while XML's self-descriptive ability allows an instance to carry information about the meaning of that data it encodes, in addition to the data itself. Taken together, these features mean that a processing engine can perform meaningful analysis of the encoded data after receiving it over a network.
 This scenario of XML enabled " " opens up various possibilities for (WBM) applications. "Device Management" refers to the configuration and maintenance of the hardware devices that make up a distributed network and "Web-based" refers to the fact that these management actions are performed through a Web-browser interface.
 This paper discusses the issues involved in using XML within , specifically for the creation of dynamic information support for WBM applications.
 HTML, Hypertext Markup Language 
 Java 
Online Help
 SGML 
applet
client-side processing
 distributed computing 
dynamic information support
 

Introduction

 Introductions to XML make much of the ability of XML markup to describe the meaning of the data it encodes rather than merely how to format it, as does HTML. But has always been about "describing" data, why then has SGML never experienced the same sort of explosive growth that XML is currently enjoying? The difference is that XML has been designed from the start to be "network-enabled". Fundamentally, where XML differs from SGML is in its stated philosophy of simplicity and the implications of this philosphy for the suitability of XML to "networked" applications. The combination of self-descriptive data and a stream-lined  standard to facilitate the exchange of this data between clients, both human and machine, are why XML is being considered for applications ranging from IP telephony standards to Web-banking.
 With XML, machines can exchange data in a format that allows it to be meaningfully processed on the receiving end. For many future applications of XML on the Web, these machine interactions will be client-server, an XML instance created on one and transported to the other for processing. Any processing of an XML instance on the client beyond straightforward formatting for display or metadata extraction to facilitate navigation will most likely be beyond the capabilities of the browser itself. Real therefore implies downloadable programs with which the browser client can be extended.
 Jon Bosak said it very well, "XML gives something to do". With XML, a Java on the client can be asked to share in the burden of data processing. If the syntax of communication between the server and Web client is "dumb" (as in ), then the server must bear this processing burden alone. This is not because the client doesn't have the necessary computing power nor that applets can't be built to do the job, but because HTML can't describe the data in a meaningful way. XML, as a "smart" exchange syntax, allows a Java applet on the client to do meaningful analysis of the data, analysis that would otherwise require server processing and possibly multiple connections. XML allows an applet to be told unambiguosly both what a piece of data is, and just as important, what to do it; for instance "this bit of data is an IP address, verify it and open a connection".
 One such application of XML to is to enable for Web-based Management (WBM) applications. Information support for WBM applications is typically of the " " variety. On request for "Help", the user is provided with a wealth of information but with no assistance in extracting information appropriate to their current situation. This model of information support is "static" because, regardless of the user's actions or the state of the network device, the information support is independent of these specifics. XML can provide an information support system the "intelligence" it needs to provide dynamic information support. In this scenario, an XML instance is used to capture a sufficient portion of the state of a networked hardware device. The XML "state" instance is transported from the network device to a Java applet running on the Web-browser client, where it is processed according to a set of pre-defined queries. Appropriate information objects can be gathered together and "Online Help" specific to the real-time state of the device, rather than generic, can be presented to the user.
HTTP server
Network management
Web browser
embed
 plug-ins 
proprietary
user interfaces
 

Web-based Management

  can formally be defined as: "the process of controlling a complex data network as to maximize its efficiency and productivity". Typical Network Management applications provide an operator the ability to configure, monitor, and control distributed networks from a single central management stations, using an intuitive graphical interface.
 Traditional network management applications have required powerful, expensive dedicated workstations. A offers an inexpensive, easy-to-use alternative to these . The seamless networking, cross-platform, graphical user interface capabilities of the Web offer make the products easier to use, easier to develop, and provide easier integration of product support with the application. They can be viewed with nothing more than a simple Web browser such as Netscape Communicator or Microsoft Explorer, or even a Web browser embedded in a PDA, pager, or cellular phone.
 A Web-browser interface to a network device requires mechanisms by which the user's control actions are transmitted to the device and by which the device can be monitored. Various possibilities exist for this mechanism, including purpose built Java management applets and management . Another possibility, made realistic by the processor speed and available memory of current network devices, is to an directly in a managed device; the server uses HTTP to send HTML to the browser to display device statistics and receives HTML form input for configuration and control. The following figure demonstrates the embedded approach.

Embedded Web server model

EmWeb
 
Such systems typically "extend" HTML with a set of proprietary tags that carry the management information between server and client. The HTML tags specify how the Web-based management (WBM) GUI is to look, the proprietary tags contain instructions which the server interprets real-time to make the HTML pages "live".
 As an example, the following is a snippet of "HTML-like" code (which uses the proprietary tags of the system from Agranat software):
 

<html>
<body>
IP address: <B> <EMWEB_STRING C='return (char *) globalIpAddress;'> </B>
</body>
</html>
 After the proprietary tags are added, the modified HTML pages are pre-processed, compressed and compiled in with the device software to create an executable image which can be placed on the device. When a browser requests the HTML page from the server at run-time the server serves the static portions of the HTML page up to the <EMWEB_STRING> tag. When the server reaches the <EMWEB_STRING> tag, it invokes the corresponding code fragment. The server replaces the <EMWEB_STRING> tag with the value returned by the code fragment as it is transmitted to the browser. What the user sees within the browser window is:
 IP address:123.45.67.89 
 A similar operation, in reverse, allows the user to send values back to the EmWeb server through HTML forms to enable configuration and control.
 GUI, Graphical User Interface 
dynamic
information support
 

Dynamic Information Support

 The existing model for delivering information support for Web-based management applications suffers from a severe limitation on its potential to provide real-time support to the end-user: the "help" delivered to the user is blind to the "state" of the network device itself. The help can be "context-specific", i.e. appropriate to the currently displayed screen of the WBM application, or to the current configuration procedure being performed, but will not be "state-specific", i.e. appropriate to real-time values, either obtained from the network device itself or from the .
 Fundamentally, can be either "static" or " ". A simple example can best illustrate the differences between the two.
configuration procedure
 

Simple Scenario

 Consider the following scenario. An end-user is attempting a consisting of three steps, each one of which involves the setting of some parameter value.
 
 

Static Version

 The following figure represents the WBM application screen from which the user sets the parameter values.
 If the user is uncertain of the allowed parameter ranges and clicks on "Help", the following window might appear:
 In this example, to use this information, the user must:
 
  • for "Param A", verify that the value is in the acceptable range
  •  
  • for "Param B", verify that the value conforms to the stated relationship
  •  
  • for "Param C", determine which information is relevant to them
  •  Most importantly, even though the values entered by the user for "Param B" and "Param C" explicitly violate the recommended values (as declared in the implicit rules in the documentation), the online help information delivered back to the user makes no mention of this. The information support isstatic  , in that there is no dependence on real-time values. Consequently, the onus remains on the user to make what they can of the help provided.
     
    DIS
    Dynamic Information Support
     

    Dynamic Version

     Consider the same scenario as above, but with a difference. The ( ) application now has access to the real-time parameter values, both from previously configured and current GUI screen parameters. Additionally, the implicit rules previously declared in the documentation have now been made explicit and are available for use by the DIS application.
     Now, given the same GUI values as before, the information presented to the user might be:
     With Dynamic Information Support, what is presented to the user is specific rather than general, tailored to the user's actions, current system "state", and even expertise level. The onus of analysis, the filtering out of information not relevant to the current situation, is removed from the user and placed on the DIS system itself.
    state
     

    Proof of Concept - Dynamic Node Knowledge

     This section discusses a proof-of-concept application of the Dynamic Information Support concept to Web-based Management.
     The WBM application in question will use embedded HTTP server technology to enable communication between the Web browser and the switch. The embedded server will serve dynamically created HTML for the reporting of switch status and will take HTML form input from the user for configuration procedures.
     Our goal is to create a prototype dynamic information support tool for a WBM application. This prototype is hereafter referred to as Dynamic Node Knowledge (DNK).
     The prototype will determine the of the switch, analyse this state, and display appropriate information to the user. The DNK architecture will consist of mechanisms for:
     
  • state capture
  •  
  • state analysis
  •  
  • information object storage
  •  
  • display
  •  The following diagram illustrates the overall DNK design architecture. The state of the switch is captured in XML, transmitted to the DNK applet on the client, which queries the state according to predefined rules loaded from a home Web server. Depending on the results of the state analysis, appropriate information objects are then displayed to the user.

    Dynamic Node Knowledge Architecture

     The sequence of events is:
     
  • user invokes "Help" from WBM tool
  •  
  • DNK window launches
  •  
  • DNK applet and JESS rules are downloaded from corporate server to client
  •  
  • embedded HTTP server is requested to create and serve XML state instance
  •  
  • state instance received by DNK applet
  •  
  • XML state converted to JESS "facts"
  •  
  • JESS engine applies "rules" to "facts", appropriate actions are performed
  •  
  • appropriate information objects downloaded from corporate server
  •  The following sections discuss in detail the issues involved for the various mechanisms, and the choices made for the DNK architecture. We will see that many of the mechanisms are interrelated, a choice for one impacts on others. We will use the following list of criteria as a guide in choosing from among the various possibilities for the architecture pieces.
     
  • compatability with WBM architecture
  •  
  • minimal impact on switch
  •  
  • maintainability of rules and information objects
  •  HTTP, Hypertext Transfer Protocol 
    SNMP
    capture
     

    State Capture

     The "state" of a switch (a network communications object) is all the data, i.e. its connections, status, statistics, etc that characterize it at any particular time. If Dynamic Information Support is to be delivered to a user managing the switch, then this state must be captured for analysis.
     The mechanism must allow for the transfer of this state off the switch for analysis. In theory the analysis of the state could be performed on the switch itself, using the switch CPU to query the state. In practice, any such processing can only take away resources from the switch's fundamental purpose of transmitting and tracking data packets, incompatible with the requirement of placing minimal impact on the switch.
     If the processing of the state is to occur elsewhere, off the switch, then the state must somehow be accessed from wherever this analysis is to occur. Protocols exist for such access, for instance SNMP could be used to GET the data for subsequent analysis by a DIS tool. However, the same issues that motivated WBM as a replacement for suggest that creating a DIS tool with SNMP as its state access mechanism could be nearly as complicated and expensive as a complete WBM application. Additionally, SNMP would probably not allow an unambiguous identification of the semantics of the data, required if any meaningful analysis is to occur.
     An alternative to opening up a connection (or possibly multiple connections) between switch and DIS analysis tool is to capture a subset of the state in a persistent, logically unambiguous file format, and pass that file from the switch. XML is the perfect choice for this format for a number of reasons. XML can be easily transmitted over the network and can be compressed significantly if bandwidth is a concern. Most importantly, if the tagset is well-designed, the DIS analysis tool will be able to unambiguously recreate an abstract representation of the switch state from the XML state instance it receives from the switch. For our prototype, the creation of this XML instance is facilitated through a happy coincidence related to the embedded HTTP server technology chosen for the WBM application we aim to support.
     The server mechanism embeds C code within HTML "templates". The process of compiling the "extended" HTML templates into code, which is then integrated in with the switch software, effectively ignores the HTML tags themselves. It is only when the code is interpreted by the HTTP server that the HTML is recreated for transmittal to the client. This markup independence suggests an obvious additional use for the server, that it be used to create and serve XML for the purposes of DIS. The critical difference is that the tags will now be designed such that they explicitly encode the meaning of the data they enclose. For instance, compare the following HTML and XML versions of some marked up data that provides the number of dropped packets on the switch (an important diagnostic statistic).
     
     
     
     
     
    Template
     
    Result
     
     
    HTML
     
    
    <p><b>Packets dropped</b>: <EMWEB c='packets_dropped();'></p>
    
     
    <p><b>Packets dropped</b>: 89</p>
     
     
    XML
     
    
    <packetsdropped><EMWEB c='packets_dropped();'></packetsdropped>
    
     
    <packetsdropped>89</packetsdropped>
     The HTML specifies to the browser how to display the data but says nothing about its semantics, the XML is the exact opposite, clearly defining what this data represents but making no suggestion for formatting.
     The process for enabling the switch "state" capture is therefore very similar to that of enabling the communication between the WBM application and the switch. The relevant subset of the available switch data structures are modelled in XML, creating static XML templates. These templates are extended by the addition of the HTTP server's proprietary tags with embedded C code. The resultant well-formed XML can be processed and compiled in with the HTML of which the WBM application will be built. On user request for "Help", the HTTP server will interpret the compiled XML-template and serve an XML instance that encodes the current switch state. It is from this XML instance that the DIS tool will build its abstract model of the switch.
     Note:  It should be noted that a variation of the mechanism described above is possible. Rather than creating and serving a physically separate XML state instance, the XML state data could be interspersed throughout the HTML that is created for the purposes of the WBM application itself. This concept of "XML islands" has been suggested by Microsoft. An HTML browser would ignore non-HTML tags (for instance "packets_dropped") and the DIS tool could be taught to ignore the HTML tags. Although seemingly a solution to the duplication inherent in creating and serving both HTML and XML versions of the same data, in reality it requires the same duplication, albeit in a single file rather than multiple. Until the browsers support the direct display of XML, thereby eliminating the need for the creation of HTML merely for display, such duplication will be required. Additionally, interspersing the XML tags within the HTML implies significant co-operation between the developers of the WBM application and the DIS tool; obviously the ideal but not always safe to assume.
     An interesting additional avenue of support that XML enables is the concept of switch simulation by distant support personnel. If the user runs into a situation or problem with the switch that the DIS tool on its own is unable to diagnose, then a call will likely be placed to second-level support, i.e. the help desk. Before the help desk personnel can aid the user in diagnosing and resolving a problem, the user must be able to communicate to them just what that problem is. The Internet story (possibly apocryphal) of the PC owner contacting a Microsoft help desk complaining that their "cup-holder" was broken illustrates that this is not always easy, complicated by differences in expertise, languages and the fundamental problem of explaining complex situations over the phone or email. XML could provide the shared language between user and help desk, allowing the help desk staffer to recreate on their local "switch-simulator" the current state of the switch for analysis and diagnosis. By clicking on a "Send to Tech Support" button in the DNK GUI, the XML state could be emailed onto the help desk, providing the support personnel with, in addition to the state, all necessary information for subsequent contact, name of user, email address, company etc.
     

    State Analysis

     Once served from the switch and then transmitted to the DIS tool, the fact that the data is stored in a semantically meaningful manner means that it can be manipulated for various purposes. We will see in the next section that the XML direct from the switch may not be appropriate for all purposesour choice of a syntax for the specification of the rules (which comprise the logic of the DIS tool) will dictate a required syntax for the state data. While XML may not be a suitable syntax for the specification of input data for the rules analysis, it will allow a relatively easy down-conversion to the required syntax.
     Choices must be made for the location (on which machine does it occur) and mechanism (what performs it) for the analysis of the state coming from the switch.
     
     API, Application Programming Interface 
     DOM, Document Object Model 
     Java applet 
     SAX 
    client-side
     

    Analysis Location

     The DNK architecture consists of a triangle, with the switch, the client, and a separate Web server (which we will see later is required for the storage and serving of the HTML information objects intended for display) as the vertices. Although the possibility of performing the analysis of the state directly on the switch was ruled out because this scenario would require more extensive switch resources, there remains a choice to be made, whether this analysis is performed on the client or the separate Web server.
     On a user request for "help", the XML state could be sent from the embedded server on the switch to the client, where a (downloaded from the separate Web server) would perform the analysis. After the analysis was complete, the applet would request the appropriate information objects from the separate Web server. Although requiring an applet to be downloaded to the client, the time of which will depend on the complexity and resultant size of the applet, this scenario distributes the processing burden over all clients, theoretically providing for faster procesing if the number of concurrent users requesting help becomes significant.
     Alternatively, on a user request for "help", the XML state could be sent from the embedded server on the switch to the separate Web server for analysis. This analysis could be performed with either a CGI script or perhaps a Java servlet. Once the analysis was performed, the appropriate information objects would be "pushed" to the waiting user. A variation is that the user requests help of the separate server, which in turn requests that the embedded server on the switch create and send it the XML state for analysis. Once the state is analysed, the initial user request for help is responded to by the transmittal of appropriate information objects. The obvious advantage of these systems is that they require no possibly lengthy download to the client of a Java applet. However, placing the processing burden on the server, whose system resources must be shared between the existing installed base of managed switchs introduces the possibility of clogging and slow processing.
     Fundamentally, the choice of the model for the prototype is based on a preference for it's comparative simplicity to the server-side alternative, more so than the arguments of processing speed and possible server overload. Realistically, given a Java applet's relative lack of speed compared to a C program running as a CGI script, and the currently small probability of a "log-jam" of users requesting help, these arguments favouring the client-side model versus the server-side model are perhaps somewhat tenuous. However, our aim in this proof-of-concept is to learn lessons which we will in the future be able to apply to larger scale systems, where server limitations may be relevant.
     A Java applet for DNK can use any of the available parsers for its XML intelligence, we need only code for how the data, once extracted from the XML, is to be analysed. Additionally, the and inititatives enable the Java DNK applet to be created independently of the specific parser used. We are currently investigating the available parsers to determine their suitability for DNK, a major consideration being minimal size given the necessity of downloading. Since we control the environment in which the XML is created and therefore can trust in its validity, a validating parser is probably not required.
     
     

    Logic definition

     There are two broad alternatives for the method by which the queries to be performed on the state are expressed, "hard-coded" or "rulesheets".
     The simplest alternative, at least with respect to initial development, is to encode the queries of the XML instance directly in the code of the DIS tool (the Java applet). For instance, consider the following pseudocode:
     
    
      function startElement (String name)
      {
        String GI;
        GI = "packets_dropped";
        if (name.equals(GI))
        {
            if (name.content.greaterthan(80))
            {
                packetsDroppedWindow.show();
            }    
        }
    }
    
     Each time the startElement is called as the XML is parsed, it queries the element to determine if it is a <packetsdropped>. If so, and if the value of the content of the element is greater than "80", a warning window is displayed. For all other elements, or if the value is less than "80", no warning window appears. In theory, each XML element in the source XML could have its own test, and appropriate action (perhaps calling other methods, performing mathematical manipulations etc.,). The cost for this simplicity is that the DIS tool becomes "hard-coded" with respect to a given set of data structures (as expressed in the XML instance it queries and the query logic and resultant actions). If the data structures change, or the query logic and actions, then the DIS tool code must be modified and recompiled. Depending on the deployment architecture we'll discuss later, this maintenance issue may be significant factor. Additionally, the DIS code cannot be easily repurposed for application to providing DIS for another switch (with different data structures and appropriate query logic).
     The alternative to hard-coding the logic in the code is to store it externally. The power of stylesheets in SGML and XML applications is that they separate the data from the formatting to be applied to them. The advantages of separating data from the processing to be applied to it remain even if the processing to be applied is more than simply formatting for display.
     A "rulessheet" for an XML instance, rather than specifying a "style" to be applied to a given element, specifies "rules" for the processing of the data contained within that element. The processing can be dependent on the value of the data or other criteria, these dependencies forming part of the rule. We will provide a more concrete example of this concept after discussing rules-based expert systems in the following section.
     
    Expert Systems
     JESS 
     

     To diagnose a switch problem, an expert human user (a network support operator for instance) might analyse the state of the switch by applying a set of heuristic rules built up through experience (theirs and others). A rule would consist of a pattern to search for within the data that encapsulates the state and an action to perform if that pattern were found. The concept of rules containing patterns and actions is essentially the core idea of rules-based expert systems. In such expert-systems, rules are used to represent heuristics, or "rules of thumb," which specify a set of actions to be performed for a given situation. A rule is composed of anif  portion and athen  portion. The if portion of a rule is a series of patterns which specify the facts (or data) which cause the rule to be applicable. The then portion of a rule is the set of actions to be executed when the rule is applicable. An expert system tool basically matches facts against patterns and determines which rules are applicable.
     There are several current options for embedding rule engines in Java-based systems, one being (Java Expert System Shell), a port of the CLIPS system to Java. JESS uses the CLIPS syntax for the specification offacts  andrules  . Facts are lists of information about the current state of the "system". The rules encode the logic of the system, in operation the JESS interpreter constantly queries the facts to see if any of the rules are true, and if so activates the appropriateaction  .
     Facts are placed onto the list than JESS maintains with the "assert" function; the following assertion declares that the IP variable is equal to 123.45.67.89.
     (assert (IP 123.45.67.89)) 
     A rule in the JESS syntax consists of a list of patterns and a list of actions. The patterns are matched against the facts list. When facts are found that match all the patterns of a rule, the rule becomes activated and will have its actions activated. The "defrule" construct is used to define a rule. Here is an example of a simple rule called "test-IP-value" which determines if the IP variable has a valid syntax.
     JESS 
     
    
        (defrule IP::Validate-IP 
                  ( IP ?value ) 
              => 
                ( bind ?string  ( strcat ?value ) ) 
                  ( if ( regexp "[0-9].[0-9].[0-9].[0-9]" ?string ) 
                        then ( printout t "IP  address " ?string " is valid". crlf ) 
                           else ( printout t "IP address " ?string " is invalid." crlf ) 
                  ) 
        ) 
    
     If is to be used to provide the intelligence of the DIS tool, then the state data must be extracted from the XML and converted to the facts syntax that JESS expects. This conversion will need to be performed on the client. The following demonstrates a simple mapping between XML and a JESS fact assertion:
     <packets_dropped>89</packets_dropped> -------> (assert (packets_dropped 89)) 
     An alternative to serving XML and subsequently converting it to an the JESS syntax for analysis would be to serve that syntax directly (or perhaps both XML and JESS syntax). The previously mentioned independence of the embedder server mechanism from the details of the "markup" would allow the direct creation of the state data in the optimal syntax for analysis, this file to be served to the client. If the analysis of the state were the only purpose to which the data were to be applied, this solution would be viable. However, the data, once in the optimal format for analysis, would be of no use for other purposes. This is of course not a new phenemona, PDF is an excellent format for specifying exact formatting, it is however not much use if you want to do anything other than display the data.
     It is the requirement that the information coming from the switch be multipurposed that forces us to convert from XML to the JESS syntax for facts, this syntax not appropriate for other purposes beyond that of JESS analysis. The other half of the JESS equation are the rules which JESS will apply to the state facts. Since these rules serve a single purpose, there is no need to serve them in a more general syntax for conversion on the client, they can be served along with the DNK applet in the appropriate JESS format.
     In the present architecture, the user does not have the ability to "edit" the rules to make them appropriate to the specifics of their networks, the analysis will be based on a Newbridge "default" ruleset. This default ruleset will model the Newbridge version of how their network switchs should work, this may or may not be appropriate to a given customer. User-editable rules implies both a mechanism for the creation of these rules (ideally a GUI to insulate the user from the complexity of the rule syntax), a system for storing them on the client, and a mechanism for merging these local rules with those downloaded from the Newbridge server.
     

    Information Object Library

     The fundamental result of the state being queried is the display of state appropriate information objects to the user. These information objects must be stored in a location and syntax such that the DIS tool can access them for display to the user.
    information objects
     

    Location

     The Web-centric nature of the WBM application itself means that we have some flexibility in the storage location of the library of information objects.
     The could be stored on the switch itself. Since they would be installed onto the switch with the embedded HTTP software, such a system would ensure that the information objects remained in-sync with the release and/or software version currently on the switch. However, storing large sets of HTML and accompanying graphics is not realistic given limited memory on the switch. Additionally, such a system would not allow easy maintenance of the information objects in between switch software updates.
     A more powerful option is to store the information objects on a Newbridge corporate Web-server. Keeping them close means that they can be maintained and kept current such that changes are invisble to users. Additionally, the Web-server access logs could theoretically provide a wealth of information to use in obtaining usability feedback on the WBM application itself. Basically, the number of times a given information object is accessed allows some inferrence to be made about how "usable" is the related part of the WBM application.
     With this separate Web-server scenario, there is the possibility of a user being prevented from accessing the information objects if they are using the WBM tool from behind a firewall configured to restrict outside access. While a concern, the view was that outside access would be required for even the most basic "Online Help", it is not a requirement specific to DIS.
     

    Granularity and Authoring

     The granularity of the information objects will directly determine their appropriateness to specific state scenarios. If the granularity is coarse then the material presented to the user will in general contain both information of immediate relevance as well as other related but non-critical information. The user would be required to sort the wheat from the chaff.
     The information objects will be authored in SGML. SGML provides functionality that will allow the documentation to be created such that it could be used for both granular information objects for use in DIS as well for paper manuals and traditional "Online Help". For instance, consider a procedure step that has two options for completing the step, each option appropriate in specific scenarios. The requirements of paper and "Online Help" are that both options should be presented to the user, with explanatory text to make clear under what situations each is appropriate. For DIS, only the appropriate option should be presented, the DIS engine determining which is appropriate from a defined rule. It remains to be seen as to where best to create and maintain the metadata and rules that enable DIS, either as elements and attributes added to the basic document model, or as separate instances maintained by subject matter experts. For the purposes of the proof-of-concept, the rules will be hand-created, and the information objects will be extracted from the SGML technical manuals for further editing before conversion to HTML.
    HotJava HTML component
    JavaBean
     

    Syntax

     Since the information objects are intended for display alone (with no requirement of any semantic processing) the choice of their format can be based on suitabality for display alone. HTML is the obvious choice. The is one possible display mechanism. It is a that provides the required HTML display capabilities.
     Since the information objects are authored in SGML, a conversion to HTML will be necessary. This conversion can be done dynamically (as the SGML information object is requested its HTML version is created) or in batch mode before hand. For the sake of simplicity, the prototype architecture will use batch converted HTML. The limitations of the HotJava component will place some restrictions on the output HTML. For instance, since the HotJava component does not support a stylesheet mechanism, the desired formatting will therefore need to be encoded directly in the HTML.
     In the future, when the browsers will support direct display of XML, or if a Java XML display component has been created, the batch conversion from SGML to HTML will not be necessary. A less involved SGML to XML conversion may still be required however.
     

    Display

     There are three fundamental types of information to be displayed to the user, each differing in the levels of their immediacy and depth of detail. In general, as the more detailed the information becomes, the less immediate and dynamic it will be. For instance, displaying the data tree built from the XML state instance is very immediate but provides little information to help in interpreting that data. On the other hand, the existing HTML information objects can provide in depth explanations but may not be completely specific to the current state.
     The following table demonstrates the nature of the different types of information possible for an IP address:
     
    
    
     
    Information Levels Example
     
     
    I
     
    IP address: 123.45.67.89
     
     
    II
     
    The IP address "123.45.67.89" is valid.
     
     
    III
     
    An IP address has two parts: the identifier of a particular network on the Internet and an identifier of the
    particular device (which can be a server or a workstation) within that network. On the Internet itself - that
    is, between the routers that move packets from one point to another along the route - only the network part
    of the address is looked at.
     Type I information is that which could be extracted from the XML state instance directly. For instance, in the above the string "IP address" could be contained in an attribute on the IP element which contains the string "123.45.67.89. Type I information could be displayed to the user as a tree structure, a presentation format suggested by the XML syntax of the state.
     Type II information adds to the basic state data with additional information about that data that helps to place it in context, in this case that the data is a valid IP address. This typical depth of detail for Type II metadata . Type II objects could, depending on the nature of the additional information, be displayed to the user in pop-up windows (for warnings and other admonishments) or as part of the DNK display window (for less urgent information).
     Type III information would consist of pre-existing information objects, e.g. HTML files. The example above provides useful information about the appropriate topic but there is nothing specific to the real value. Type III information would resemble current "Online Help" in that it would not be specific to current state but would consist of detailed background information.
     The differences between these information object types (their origin, format, and level of detail) impose different requirements on the mechanisms for display of the data. There are two broad options for display, the browser or the DNK applet itself. The simpler mechanism would be for the DNK applet, once it had determined the appropriate information, to pass the respective URLs to the browser for display.
     Unfortunately, of the above classes of information objects, only Type III is suitable for direct display in a browser. The other two require additional mechanisms to supplement the browser's display functionality. Given that Types I and II information objects require the sort of functionality that we can provide in the DNK applet directly it was decided that we would not attempt to use the browser window for display purposes. This choice will unavoidably make the DNK applet larger and more complex. However, in doing so the prototype DIS tool is freed from dependence on eventual browser suppport for XML.
     

    Applications

     For the most part, the DNK architecture as presented is independent of the specific nature of the information support provided to the user. This section discusses possible broad categories for such support.
     

    Procedural Guidance

     The day to day administrative tasks of configuring and maintaining network objects are typically performed by junior personnel, sometimes lacking extensive experience with a specific technology or product beyond a course and some hands-on training. When these users confront a problem or situation within a procedure they can't deal with (perhaps because of new equipment or technology), they typically call on their companies more experienced users for assistance, even though the problems usually do not warrant this level of expertise. These expert users can find themselves answering the same questions over and over from different novice users. Much of the time of the expert users can therefore be spent on assisting junior personnel in the frequently occuring procedural problems that they could, with assistance, probably solve themselves.
     This suggests a possible application of DNK, that of providing guidance for the common configuration and troubleshooting procedures that a junior network administrator would perform on the switch. Knowledge of the switch state, coupled with knowledge of the user's actions on the WBM GUI, would allow DNK to identify where within a procedure the user was "stuck" and assist them in completing the procedure by providing information appropriate to both state and actions.
     Such a scenario suggests the future possibility of providing so called "wizards" to the user. A wizard would not only guide the user through a procedure but provide mechanisms for the WBM actions to be transmitted to the switch. As such, a wizard can be thought of a hybrid WBM and DIS tool.
     statistics 
     

    Statistical analysis

     The user of a Network Management application can be inundated with statistics tracking every conceivable parameter on the switch. Theoretically useful for diagnosis of switch and network problems and status, the are typically presented in tabular or graphical form. Regardless of the format for presentation, the extraction of any meaning from these tables or graphs is the responsibility of the user and can be non-trivial, both because of the number of available stats and their interdependence (a single statistic may be meaningless on its own and perhaps only important if compared to another or if tracked over time).
     The switch for which the WBM application is being built has over 5000 "counters", i.e. parameters that reflect some status of the switch or its connections. The counters track parameters as varied as the number of seconds a given connection was unavailable, the number of data cells discarded (lost), the number transmitted, to the number of messages sent from the user to the switch. The challenge is to extract from all this counter data the key "identifiers", those patterns that indicate some status scenario for which the DIS tool can supply relevant information. These patterns can exist be for a single counter, for a single counter over time, or for relations between multiple counters.
     

    Related Information Support

     The nature of WBM enables network administrators easy access to all the information they need to more effectively run their networks. In addition to product documentation, such information could include release notes, tutorials, multimedia training, and technical alerts. With knowledge of the system state, this additional support information can be made, like the documentation, specific to the user's situation. Rather than taking the user to a high-level "Information Support" Web page, designed to serve the needs of all customers, irrespective of the specific products they own, and requiring the user to navigate to find information appropriate to them, DNK could build a customized library of information resources for the user. The "state" of the switch could be expanded to include information about the switch version, the release of the installed software, etc. With this information, DNK could determine the appropriate information support to provide, e.g. the user could be notified of a newer release of the switch software which their licensing agreement entitles them to download.
     

    XML as a management protocol syntax

     The use of XML to create an abstract representation of the switch for DIS suggests the possibility of using XML directly as the syntax for the communication between the switch and the management application. In such a scenario, an XML representation of the switch would be passed directly to the WBM application for visual rendering, and another XML instance passed back to enable switch configuration. An information support tool like DNK would not require the creation of an XML instance for its own purposes, it would "piggy-back" on the shoulders of the WBM application and repurpose the XML. Indeed, with the state information readily available, the distinction between management application and support tool might become blurred.
     The current work in creating XML standards for network management (e.g. the Common Information Model from the DeskTop Management Task Force) is motivated in part by the potential for XML-based Web-based management and in part by the proliferation of management protocols that a given piece of network hardware may be required to support. If, rather than being asked to support a variety of protocols, some proprietary and some standard, the network devices showed to the world an XML interface, then this interface would insulate the devices from the specific requirements of the different protocol. The XML from each individual device could also be amalgamated together to form a "global" network view for higher level management operations.

    A Generalized Online Delivery Paradigm for XML Information   Table of contents   Indexes   XFDL - Representing Business and Government Forms in XML