WO2003065238A1 - Device monitoring via generalized markup language - Google Patents

Device monitoring via generalized markup language Download PDF

Info

Publication number
WO2003065238A1
WO2003065238A1 PCT/US2003/002528 US0302528W WO03065238A1 WO 2003065238 A1 WO2003065238 A1 WO 2003065238A1 US 0302528 W US0302528 W US 0302528W WO 03065238 A1 WO03065238 A1 WO 03065238A1
Authority
WO
WIPO (PCT)
Prior art keywords
statistic information
forms
statistic
data
request
Prior art date
Application number
PCT/US2003/002528
Other languages
French (fr)
Inventor
Stanley Froyd
Will Sloan
Original Assignee
Occam Networks
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Occam Networks filed Critical Occam Networks
Publication of WO2003065238A1 publication Critical patent/WO2003065238A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Definitions

  • the present invention relates generally to field of system monitoring. More specifically, the present invention is directed to methods and systems for monitoring using generalized markup language.
  • Embedded systems are growing more and more complex, requiring a range of external management applications such as SNMP, Command Line Interfaces, TNM, WBEM, etc. These applications have completely different interfaces, network protocols and purposes but must all interface to the low-level internals of the system.
  • Management may be effected through a variety of user interfaces.
  • the most common is Command Line Interface (CLI), where configuration and display commands are entered in text mode and promptly executed.
  • CLI Command Line Interface
  • SNMP Simple Network Management Protocol
  • the configuration data may be associated with settings and information about the system. For example, a user may use a system console to enter system specific commands to configure components in the system (e.g., setting a speed of a line card in a switch, etc.). As time passes, there may be multiple configuration commands issued by the user. When a system is powered off, this configuration information may be lost.
  • the monitoring data may indicate how often something happens in the system. For example, a network router system may handle multiple different types of traffic, and it is important to be able to get an understanding of how much traffic the system is handling and whether upgrades are necessary before the system is overloaded. Another example includes determining how often errors occur in an area of the system and whether corrective action needs to be taken before a failure occurs.
  • Statistic data is typically never reset. Statistic data either stays the same or grows. Although there may be different types of statistic data, the type of statistic data collected typically relate to performance statistic and error statistic. Thus, one of the advantages of being able to configure the system and to collect the statistic data are important in maintaining the system as well as in predicting when upgrades or replacement is necessary.
  • a method of monitoring a system is disclosed.
  • a request to view statistic data of a system is received.
  • One or more forms are generated to carry the statistic data.
  • the one or more forms are to carry the statistic data pulled from the system.
  • the requested statistic data is pulled from the system.
  • the one or more forms are filled with the pulled requested statistic data.
  • the pulled requested statistic data on the one or more forms is converted to a generalized markup language (GML) format.
  • GML generalized markup language
  • Figures 1A and IB provide exemplary illustrations of an Interface Manager.
  • Figure 2 is an illustration of an exemplary hierarchy of forms and form classes defined by the present invention.
  • Figure 3 is an exemplary illustration of three instances of a form.
  • Figure 4 is a table illustrating exemplary XML (Extensible Markup Language) tags.
  • Figure 5 is an exemplary illustration of a push operation and an XML file mapping the push operation.
  • Figure 6 is an exemplary illustration of a tree representation of an XML document describing a CLOCK SET command.
  • Figure 7 is an exemplary illustration of a pull operation and an XML file mapping the pull operation.
  • Figure 8 is an exemplary illustration of interfaces between the internal manager, CLI and SNMP.
  • Figure 9 is a block diagram illustrating one embodiment of a system implemented using forms to push and pull data, along with other applications that take advantage of the forms including configuration and statistic related applications.
  • Figure 10 is a block diagram illustrating one embodiment of configuration store and restore using forms and Extensible Markup Language (XML).
  • XML Extensible Markup Language
  • Figure 11 is a flow diagram illustrating an example of a configuration store process in accordance with one embodiment of the present invention.
  • Figure 12 is a flow diagram illustrating an example of a configuration restore process in accordance with one embodiment of the present invention.
  • Figure 13 is a block diagram illustrating one embodiment of statistic collection using forms and XML.
  • Figure 14 is a flow diagram illustrating an example of a statistic collection process in accordance with one embodiment of the present invention.
  • a method of accessing statistic information in a system is disclosed. Using a framework consisting of different delivery vehicles or forms to carry statistic information from the system, the method generates appropriate forms based on a request to access selected statistic information.
  • the requested statistic information is pulled from the system and filled into the one or more forms to be delivered.
  • the requested statistic information on the one or more forms is converted into a generalized markup language format and then viewed in a network browser.
  • the requested statistic information may also be stored in a storage device, or it may be presented using a command line interface (CLI).
  • CLI command line interface
  • a system is managed by using high-level applications that collect data from or send data to the system.
  • the system may also be managed by issuing commands using a command line interface (CLI).
  • CLI command line interface
  • a framework is provided for system management that is abstracted from the low-level elements of the system to be managed and the high-level applications that manage them. Collectively, this framework is called the Internal Manager or IMGR of the system.
  • the EVIGR performs as an abstraction layer between system implementation and system management applications independently of both applications.
  • the EVIGR provides a generic interface for saving and restoring system state.
  • the IMGR also provides a generic interface that allows for the retrieval of data (e.g., scalar and tabular data) from the system.
  • the FMGR provides an interface definition that allows implementers of device drivers and low-level system services to provide configurable attributes (e.g., configuration information) and statistic (e.g., monitoring information) to the higher-level system management applications without knowing anything about the system management applications.
  • the IMGR also allows system management application developers (e.g., CLI, SNMP, etc.) to work autonomously, promoting code reuse and information hiding as well as programmer productivity.
  • the EVIGR provides a uniform interface across the system that can handle the complicated task of saving and restoring system state.
  • the EVIGR is a system wide construct that allows the low-level developers of a system to provide access to data (e.g., parameter data, statistic data, etc.) of the system without having any knowledge of the applications that will use this data. It is a system wide abstraction layer, below which are kernel device drivers and various system services software and above which are the applications that provide management services. Using this framework, applications can be insulated from the system implementation and vice versa.
  • Figures 1A and IB provide exemplary illustrations of an Interface Manager. Referring to Figure 1A, the system 115 includes hardware components, operating software, device drivers, etc. As described herein, a range of different management applications is used to control and manage the system 115.
  • the EVIGR 110 is created between the command line interface (CLI) 105 and the low-level elements (e.g., kernel device drivers and various system services software, etc) of the system 115.
  • the EVIGR 110 lies between the user management (CLI, SNMP, etc.) and the operating software and serves as an intermediary abstraction layer.
  • the EVIGR 110 operates to provide translations of functions of the low-level elements in the system 115 to the CLI 105.
  • the CLI 105 is used in this discussion, it would be apparent to one skilled in the art that the description may also be applicable to other management applications (e.g., SNMP application, etc.) at the same layer as the CLI 105, as illustrated in Figure IB.
  • the EVIGR 110 defines an abstract interface and a framework gluing internal applications (at the CLI 105) to the system 115 they are to manage, h one embodiment, it is assumed that only data is conveyed between the EVIGR 110 and the operating software in the system 105.
  • the EVIGR 110 provides a representation of system data based on an extensible interface that uses a notion of forms with special operations. These forms can be "pulled” from the system to retrieve attributes such as system settings (e.g., configuration information) and statistic (e.g., monitoring information) or pushed into the system to handle configuration (e.g., restoring configuration).
  • system settings e.g., configuration information
  • statistic e.g., monitoring information
  • configuration e.g., restoring configuration
  • the EVIGR 110 is based on object-oriented concepts requiring a programmer to implement specific interfaces. These interfaces make available certain operations to the managers such as, for example, the concept of a "GETNEXT" operation that can be used on any table of meta-data to traverse its rows and columns irrespective of the underlying data type and bounds of the table.
  • the EVIGR 110 includes a group of Java objects which are extensions of a base form object.
  • Each form carries data.
  • Both the application layer (e.g., CLI layer 105) and system layer 115 (with its operating software) are knowledgeable of particular editions of these forms, which are the basis of communications between these layers.
  • the forms may also operate on the data they carry.
  • the form may format the data for user presentation, or it may assist in traversing instances of a table.
  • the data from the system 115 can be statistic data or parameter data.
  • Statistic data are data maintained by the operating software. Statistic data are thus considered to be read-only from a management point of view. For example, there is no SET type of operation for statistic data. Thus, statistic data can only be pulled from the system. For example, a number of times the clock has been read is considered a statistic data.
  • Statistic data can also be considered as counters maintained by the operating software.
  • data may be parameter data or statistic data.
  • Data that is not statistic data is considered parameter data.
  • Individual parameter data may be read-only (RO) or read- write (RW). Thus, all parameter data can be pulled and some parameter data can be pushed.
  • data sent from the EVIGR 110 to the system 115 is parameter data and not statistic data. However, data sent from the system 115 to the EVIGR 110 can be either statistic data or parameter data.
  • the base form object can be implemented as a data structure defined with one or more fields to carry the data to the system 115 or from the system 115. Data are grouped onto the same form based on logical relationships of the data. New forms can be added to accommodate different groupings of data. In one embodiment, there is one operating software function for pulling (populating) the form, and zero or one function for push the form. At the upper interface (e.g., CLI layer 105), however, it may take several forms to satisfy a particular CLI command.
  • a form when a form is pulled (from the system), all parameter data will be filled out by the operating software in the appropriate fields.
  • the operating software When a form is pushed (to the system), the operating software will look only for those fields in the form which have the RW (read-write) attributes. For example, a SETCLOCK operation involves pushing parameter data, while a READCLOCK operation involves pulling parameter data. If information about the number of times the clock has been read is required, a CLOCKREAD operation would pull statistic, using a separate form. Thus, parameter data is different from statistic data.
  • a form is merely a snapshot of data (or an instance) at a particular time.
  • the EVIGR 110 When a form carrying data from the system 115 is received by the EVIGR 110, the EVIGR 110 presents the form to the management applications or the CLI 105. Lh one embodiment, the data in the form are automatically formatted for presentation to the CLI 105 or for presentation to the management applications at the CLI layer. Similarly, when the EVIGR 110 presents a form to the operating software in the system 115, the data in the forms is presented according to an appropriate data structure understood by the operating software. Thus, code that places data in a form and code that extracts data from the form are knowledgeable about a layout of the form such that the data in the form can be consistently interpreted, hi one embodiment, it is acceptable to have RO parameter data and RW parameter data on the same form. Note that multiple instances of the same form can be extracted with each instance possibly having different data.
  • a form may be used to carry data in response to different actions.
  • the same form may be used to carry statistic data from the system 115 in response to different actions issued by the CLI 105 or by the management applications.
  • the same form may be used to carry parameter data from or to the system 115 for different actions.
  • a form may be pulled from the system 115 to gather system attributes (e.g., system configurations, statistic, etc.). For example, a filled-out form can be pulled up from the operating software as a result of a GET/SHOW/DISPLAY command from the CLI 105.
  • a form may be pushed to the system 115 to set system configuration. For example, parameter data associated with a command SET/CONFIGURE is pushed in a form to the operating software in the system 115.
  • Figure 2 is an exemplary illustration of hierarchy of forms and form classes.
  • the interaction between the CLI 105 and the EVIGR 110 is performed using commands in a command set.
  • the command set may include a GET NEXT command that can be used to traverse rows and columns of a table data structure.
  • each of the commands in the command set is associated with a form and that there may be multiple distinct forms.
  • a form 205 may be designed to work with a single data ("scalar data") in a scalar entity class 210 or with a row of data in a table ("tabular data") in a table entry class 215.
  • the data in the table entry class 215 may be further sub-classed as parameter data 225 or statistic data 226.
  • the scalar entity class 210 may be further sub-classed as parameter data 227 or statistic data 228.
  • a form 205 may be categorized as one of the four following abstract subclasses: friternalManager - Table - Parameter friternalManager - Table - Statistic friternalManager - Scalar - Parameter friternalManager - Scalar - Statistic.
  • the tabular data may be accessed as an instance.
  • the form may correspond to exactly one row of the table, and rows of a table can be differentiated by some combination of columns of the table. Different instances of the same table can be used so that specific entries in the table can be located, or so that the table can be traversed.
  • a form 205 cannot be used to carry a mixed combination of scalar data and tabular data.
  • a form 205 does not support tables within tables.
  • the command set supported by the EVIGR 110 should at least have pull management commands for pulling statistic from the system 115. This allows for at least some monitoring capabilities.
  • data originally placed on one form may be presented in multiple forms. For example, data pulled from the system 115 to the EVIGR 110 may be placed on one form, but the EVIGR 110 may extract the data from the one form and place them onto multiple forms before they are presented to the management applications or the CLI 105.
  • the operating software of the system 115 fills out the forms to be pulled from the system.
  • the operating software of the system 115 also processes forms pushed down to it by the EVIGR 110.
  • a form may be a parameter form, a statistic form, or a parameter and statistic form.
  • an interface index item might appear on the same form as an interface statistic data in order to correlate the interface and the associated statistic data.
  • the interface index item may also appear on several forms carrying parameter and/or statistic data.
  • a speed of the interface may be settable, but not its identity. For example, it is likely that statistic data would be pulled from the system frequently and repetitively (e.g., for monitoring purpose), and as such, forms used to carry statistic data may be handled differently for optimization.
  • FIG 3 is an exemplary illustration of three instances of a form.
  • the three instances 305, 310 and 315 of the same form 300 are received at three different times.
  • Each instance provides a snap shot of the data on the form 300 at a particular time.
  • each form is time stamped when it is used to carry the data. The timestamp may be used to determine how much time has elapsed since a previous pull operation.
  • the instance 305 of the form 300 has a time stamp field 320.
  • the instance 305 is stored so that it can be used to compare with a next instance of the same form.
  • a delta value is pulled rather than an absolute value.
  • the instance 310 of the form 300 has a delta value 325.
  • the delta value 325 indicates a difference from the absolute value 322 in the instance 305.
  • an indicator may be set on the form to indicate to the system 115 that the fields on the form need to be updated only when the system 115 has different values than the default startup values for those fields.
  • a "fail" condition may be returned to the management applications or to the CLI 105.
  • Each of the fields on a form may carry non-null values or null values, fri one embodiment, when there is a push operation, any fields on the form that have null values may be disregarded by the system 115.
  • the system 115 may extract data from the fields that have non- null values.
  • the system 115 may accept the non-null values of alphanumeric type or numeric type.
  • the system 115 may not accept a specific numeric or alphanumeric value, however.
  • each form may be associated with a "save” and a "restore” function.
  • a "save” function invoked for a particular form
  • data corresponding to the fields on that form are pulled from the system 115.
  • the data then sent to a destination (e.g., user, management application, data file, etc.).
  • a destination e.g., user, management application, data file, etc.
  • the "restore” function invoked, the previously saved data is placed into the appropriate form.
  • the form is then pushed down to the system 115.
  • the data is then extracted from the form to complete the restore operation.
  • An instance of a form may have scalar data or it may have tabular data. As described herein, when a form is used to carry tabular data, each instance of the form carries one row of data from the table. An indicator may be sent along with the form to provide information regarding where the row is in the table. It is assumed that the table remains constant during the lifespan of the push or pull operations.
  • a command associated with a pull operation (e.g., SHOW command) is issued using the CLI 105
  • an interpreter resolves the command into an object/method pair.
  • the "object” is a glue that calls a static method in the form class which in turn pulls an instance of the form up from the system 115 and generates display information back to the CLI 105.
  • the form can also be read by the method of the glue object.
  • a command associated with a push operation (e.g., CONFIG command) is issued using the CLI 105
  • the command can also be resolved to an object/method pair, fri this example, an empty instance of the form is created and the command parameters are translated into settings of the fields of the form.
  • the form is then pushed to the operating software in the system 115 to effect the push operation.
  • the EVIGR 110 When the EVIGR 110 is used to interface with SNMP (as shown in Figure IB), most of the SNMP code is automatically generated by an agent software (e.g., AdventNet software from AdvenNet, Inc. of Pleasanton, California) when it interprets a Management Information Base (MD3) file, fri one embodiment, lowest levels of this agent code are edited to effect the "instrumentation" part of SNMP operations, fri one embodiment, when a GET command on an object is processed by the runtime agent, a form containing the item is pulled up from operating software, and the value of the data is read from the form. Similar processing is performed for a GETNEXT command. GETFER.ST and GETNEXT functions are provided as static methods in the form.
  • agent software e.g., AdventNet software from AdvenNet, Inc. of Pleasanton, California
  • SET commands are also handled one varbind at a time, fri one embodiment, a new empty form is created, set the varbind value into the form field, and push it down to the operating software.
  • SNMP may be used for monitoring.
  • the EVIGR 110 expects the operating software to provide a static pull and a static push function, fri both cases, a reference to a form instance is passed as an argument, fri one embodiment, when the form is for a table, another argument specifies the sequence number (not the instance) of the entry in the table (the table is assumed to remain constant during the lifespan of the operation).
  • fri the case of pull operations there is an additional flag argument indicating that the operating software should only fill out the fields of the form that have different values than the default startup values of the system, fri the case of push operations, any fields of the form that are null can be disregarded ⁇ only the fields that are non-null need to be acted upon.
  • the form provides public methods for setting and getting the fields of the form, fri one embodiment, the same form can be used for push and pull operations.
  • fri one embodiment "native" methods are used where the C code of the platform accesses the methods and fields of the Java class, fri the pull direction (from the system to the applications), the setter methods of the form object are used to fill out the form, while in the push direction, the fields of the form are accessed directly.
  • Other approaches include use of "exec” functions called from within the form, or via the reading of 'proc' files.
  • FAIL indications are returned if the pull operations do not succeed, fri the case of push operations, even though there may be careful checking by SNMP and by CLI before pushing a form, there may be situations that a pushed form might not be acceptable by the operating software. A set of exceptions is provided for these situations.
  • Figure 4 is a table illustrating exemplary XML (Extensible Markup Language) tags.
  • the XML document can be viewed as a description document providing descriptions about how to interpret parameter data and statistic data.
  • Each tag occurs in the XML document as a ⁇ tagname>... ⁇ /tagname> combination.
  • the ⁇ cli> tag 405 is the top-level element of the XML document. All other tags are subtags of this top-level ⁇ cli> tag 405. This ⁇ cli> tag 405 has no attributes and text inside the ⁇ cli> tag 405 is ignored.
  • the ⁇ mode> tag 410 contains the mode of the management command. There should be only one ⁇ mode> tag 410 in the XML document.
  • the ⁇ command> tag 415 is the top-level tag for a single command. It has no attributes and text inside the ⁇ command> tag 415 is ignored.
  • the ⁇ command> tag 415 contains a single ⁇ keyword> tag such as, for example,
  • ⁇ keyword text "show"> ⁇ /keyword> ⁇ /command>.
  • the ⁇ keyword> tag 420 specifies the text of a command keyword in the command set of the CLI such as, for example SHOW, ENABLE or LOGOUT.
  • the text is supplied by the single attribute "text”.
  • the keywords may contain other ⁇ keyword> tags to specify sub keywords.
  • the ⁇ help> tag 425 specifies help information for the command / keyword.
  • the ⁇ help> tag 425 has no attributes.
  • the text enclosed by the ⁇ help> tag 425 defines the help text for the outlying tag, i.e. for a keyword or argument.
  • One example of the help information follows:
  • the ⁇ action> tag 430 specifies that there is a executable action for the enclosing keyword. For example, the action specified within the ⁇ action> tag 430 is carried out for the associated command when the carriage return is presses.
  • the "object" and "method” attributes of the ⁇ action> tag 430 specify an object and a method in the system by name. A collection of Java type interfaces is created for the "objects" and "methods" that get invoked during run-time.
  • One example of the object and the method follows:
  • the ⁇ arg> tag 435 defines an argument type for an ⁇ action> tag 430.
  • the ⁇ arg> tag 435 has no arguments and text in the ⁇ arg> tag 435 is ignored.
  • a single ⁇ type> tag or ⁇ help> tag may be inserted in the body of the ⁇ arg> tag 435.
  • One example of the ⁇ arg> tag 435 follows: ⁇ arg>
  • the ⁇ type> tag 440 describes a Java type for input to the invocation of the object, method pair specified by the ⁇ action> tag 430.
  • the Java type name is entered as a "type" attribute of the ⁇ type> tag 440.
  • Other text in the body of the ⁇ type> tag 440 other than those associated with the "type" attribute is ignored.
  • XML is used to describe the command language.
  • XML is advantageous because there are a lot of available XML tools (e.g., editor tool, browser tool, etc.) for development.
  • XML is used, one skilled in the art would recognize that other generalized markup languages (GML) may also be used to describe or map the management commands to the objects of the system, where the objects are low-level functions implemented in the system.
  • GML generalized markup languages
  • FIG. 5 is an exemplary illustration of a push operation and an XML document mapping the push operation.
  • the XML document 525 describes statically all the keywords, arguments, and mapping from a CLOCK SET command to action in the system that will cause the action corresponding to the CLOCK SET command to be carried out.
  • the CLOCK SET command is made available to a user or a management application interfacing with the system even though the system may not have the exact CLOCK SET command in its own command set.
  • the XML document 525 describes the hierarchy of the CLOCK SET command keyword by keyword. Each command is associated with an action defined as an "object" and a "method".
  • the command 505 illustrates the "help” feature by specifying the "?” as part of the of command argument. This "help” feature is also illustrated in the command 510 and 515 to get additional information about the format (e.g., time, month, year) of the CLOCK SET command.
  • the command 420 illustrates a complete CLOCK SET command with all the possible arguments or parameters specified.
  • the XML document 525 describes the CLOCK SET command 505-520 using the XML tags described in Figure 4.
  • the command CLOCK SET issued by the user or the management application is recognized by the interpreter as corresponding to the command keyword CLOCK shown on line 527 and the keyword SET shown on line 528.
  • the interpreter will parse the XML document 525 to determine if the command is a valid command, fri the current example, the help information requested in the commands 505- 515 is enclosed in the ⁇ help> tags on lines 530, 535, 540 and 545 respectively.
  • FIG. 6 is an exemplary illustration of a tree representation of an XML document describing a CLOCK SET command.
  • An XML document created using the tags described in Figure 4 is translated into a tree format that can be interpreted at run-time.
  • the structure of the tree corresponds to the tags and attributes in the XML document.
  • the tree also contains all of the texts enclosed by any of the tags so that every piece of information in the XML document is reflected in the resulting tree.
  • Each tree describes what the command is and what the expected arguments/parameters are.
  • a Java Document Object Model (DOM) library is used to parse the XML document into a resulting tree or DOM tree.
  • DOM Java Document Object Model
  • the DOM tree contains a collection of Java objects that represent the tags, attributes, and text of the corresponding XML document.
  • the DOM tree in Figure 6 corresponds to the CLOCK SET command described in the XML document 525 illustrated in Figure 5. Note that there are only two keyword nodes 605, 610 corresponding to the keywords CLOCK and SET respectively. Note also that there are four argument nodes 620-635 under the action node 615. The four argument nodes 620-635 correspond to the arguments for "time”, "day of month”, “month” and “year” of the CLOCK SET command.
  • the DOM tree and its collection of Java objects are translated into a collection of Java run-time classes.
  • Figure 7 is an exemplary illustration of a pull operation and an XML document mapping the pull operation.
  • the pull operations in this example include a SHOW CLOCK command 705 and a SHOW CLOCK DETAIL command 710.
  • the XML document 715 illustrates a description of the above two commands 705 and 710 using XML keyword tags described in Figure 4.
  • the XML document 715 describes the SHOW CLOCK command using keywords, sub-keywords, help text, arguments, and specification of actions to be carried out by the lower-layer operating software.
  • the XML document 715 is presented in its source format and is normally compiled using an XML compiler so that it can be used by a run-time system.
  • the run-time system performs object mapping, method mapping and the arguments / parameters are provided to the operating software of the system to carry out the action.
  • the command SHOW CLOCK 705 is issued
  • the run-time system executes the action associated with an object CLOCK and a method SHOW, shown on line 720.
  • the command SHOW CLOCK DETAIL 710 is issued, the run-time system executes the action associated with an object CLOCK and a method SHOWDETAJJ , as shown on line 725.
  • the run-time system invokes a collection of Java system interfaces corresponding to the object and method specified in the action.
  • the run-time system then collects data (parameter data) from the system, put them in a form and presents the form to the user or to the management application.
  • commands that are associated with the system and that are used to control the system can be shielded from the user.
  • commands can be described and expressed using a universal description language such as, for example, XML.
  • a set of common commands is created by describing all of the commands associated with the system.
  • XML can be used to create a new set of commands that describe commands associated with a Lucent router such that the new set of command is consistent with commands associated with routers from Cisco.
  • commands for other vendors can also be implemented.
  • FIG. 8 is an exemplary illustration of interfaces between the internal manager, CLI and SNMP.
  • the run-time versions of the commands described using the generalized markup language such as, for example, XML may be stored in a command description file 802.
  • the CLI 805 searches the command description file 802 for the corresponding definition to carry out the command.
  • the method of the present invention can also be used in a network environment using, for example, simple network management protocol (SNMP) and management information base (MLB).
  • MIB modules specify targets of management operations. The MIB modules are interpreted to identify the target of management operations.
  • management commands may be issued using SNMP 810.
  • SNMP 810 interfaces with the EVIGR 110 to access information from the system 850.
  • the EVIGR 110 is divided into several EVIGR packages 820, 825, and 830.
  • Each of the JJVIGR packages 820, 825 and 830 corresponds to a group of related services provided by the system 850.
  • the services may be grouped under IP routing, ATM routing, etc.
  • the EVIGR package 825 transfers data between the system 850 and SNMP using forms 815, as described above.
  • the EVIGR package 825 includes a client interface 814, pullers 817 and pushers 816.
  • the command is sent to the appropriate EVIGR package 825.
  • the CLI 805 sends the command to the EVIGR package 825 because it recognizes that the EVIGR package 825 processes system related commands including the SET CLOCK command.
  • the CLI 825 is able to make this recognition because, at an earlier time, the client interface 814 in the EVIGR package 825 was registered with the CLI 805. This registration allows the client interface 814 to indicate to the CLI 805 that the client interface 814 handles system related commands.
  • the client interface 814 is aware of the specific actions of the system 850.
  • the EVIGR package 825 fills the form 815 with parameter data for push operations.
  • the EVIGR package 825 may also use the form 815 to extract parameter data and/or statistic data using pull operations. For example, when a GET operation is processed by the EVIGR package 825, the form 815 containing the appropriate data is pulled up from the system 850. The data is then read from the form 815 by the SNMP 810.
  • ff:ff:ff:ff:03 fri this example, within the FdbEntry form, there is a field containing a MacAddress object.
  • Access methods are provided to provide the value of the address in the two different schemas that SNMP requires: as a string ("255.255.255.255.255.3") as used for instancing an object, and as a 6-byte OCTET STRING used for the value. Internally, the MacAddress is kept as a 6- element integer array.
  • the GET operation described above can also be used to get a configuration of the system 850.
  • a blank form 815 is pushed to the system by the pushers 816. Recognizing that the action is associated with a SAVE operation, the operating software of the system 850 fills out the blank form with configuration data. The filled-out form 815 is then pulled from the system 850 by the pullers 817.
  • the configuration data may then be saved in a configuration file 818 for a subsequent restore operation, fri one embodiment, the configuration file is saved in XML format.
  • the configuration file 818 is processed into CLI command lines. The CLI command lines are fed back to the CLI 805.
  • FIG. 9 is a block diagram illustrating one embodiment of a system implemented using forms to push and pull data, along with other applications that take advantage of the forms including configuration and statistic related applications.
  • the forms may be generated as a result of the user 908 issuing commands through the CLI 935.
  • the CLI 935 then activates the client interface 945 which generate new forms or reuse stored forms depending on the commands and/or previous commands.
  • Each client interface (“Clientlf ) may be associated with a different function.
  • the client interface 945 may be responsible for pushing and/or pulling data carried by the forms “D", “E”, “F”, and “G”.
  • Other client interfaces may have different responsibilities using different forms (e.g., "A”, "B", and “C”).
  • a directional arrow connects from the form to the client interface.
  • the client interface 946 uses form 921 ("C") to pull data from the system.
  • a directional arrow connects from the client interface to the form.
  • a bi-directional arrow is used.
  • the forms "A” to “G” in this example may also be used to store and/or to restore configuration data, and to collect statistic data from the system using SNMP 917 and MIBs 918, as described in Figure 8.
  • a configuration agent 916 is used with the forms (e.g., form "A” 919) to restore configuration information 927 to the system using pusher 926.
  • the configuration agent 916 may display the configuration data using the browser 905, store the configuration data in the database 910, display the configuration data to the user 908 using the CLI 935 (after converting the configuration data into a format understandable by the CLI 935 using a converter such as, for example, the cfg2cli 904, or store the converted configuration data in a command store 918 for batch execution, etc.
  • a statistic agent 915 is used with the forms (e.g., form "G" 920) to collect or pull statistic information 928 from the system using puller 925. Note that since the statistic agent 915 collects information from the system, the connections from the forms to the statistic agent 915 are illustrated as one directional originating from the forms.
  • FIG. 10 is a block diagram illustrating one embodiment of a configuration store and restore application using forms and Extensible Markup Language (XML).
  • XML Extensible Markup Language
  • a system may receive multiple configuration information for its components from the user. Over time, some components may retain the same configuration information, while some other components may have been changed multiple times.
  • the configuration information from the system may be viewed as a collection of configuration objects that represent a snap shot of a desired operation state of the system, even though each configuration object may have been specified at different times. From the users point-of-view, this collection of configuration objects is valuable because it may represent much time and effort spent in fine-tuning the system.
  • a user may specify a configuration object by issuing commands using the CLI 1035. More than one configuration objects may be specified by the user using a batch file. Of course, the sequence of commands in the batch file needs to be consistent with one another.
  • the CLI then activates the AllClientlf 1040. Depending on the commands the AllClientlf 1040 activates the appropriate Clientlf 1045.
  • One or more forms are generated to push configuration data to the system (e.g., changing an IP address for the system) or to pull configuration data from the system when a configuration object is to be viewed.
  • the pulled configuration data may also be stored for later use (e.g., configuration restore) in the remote database 1010.
  • the form “F” 1020 may be used by the Clientlf 1045 to push a configuration object to the system using the pusher 1026.
  • the form “E” 1021 may be used by the Clientlf 1045 to pull a configuration object from the system using the puller 1027.
  • a configuration agent 1016 may also be used to push configuration objects to the system and or to pull configuration objects from the system.
  • a user using browser at a remote workstation 1005 may send requests to the configuration agent 1016 to view one or more configuration objects.
  • the configuration agent 1016 generates one or more forms to push configuration data to the system when a configuration object is to be changed (or reconfigured), or to pull configuration data from the system when a configuration object is to be viewed.
  • configuration agent 1016 generates the form "F" 1020 to push a configuration object to the system using the pusher 1026, and the configuration agent 1016 generates the form "E" 1021 to pull a configuration object from the system using the puller 1027.
  • the configuration agent 1016 When pulling configuration objects from the system, the configuration agent 1016 also converts the configuration data into the XML format before presenting the configuration data to the user at the workstation 1005.
  • the XML formatted configuration data may also be stored by the configuration agent 1016 in the remote database 1010 for later use.
  • the configuration agent 1016 may convert the XML formatted configuration data back into a form understandable by the system.
  • one or more configuration objects may be pushed or pulled on the same form.
  • the configuration agent 1016 uses the browser at the workstation 1005, the user may issue a request to save the configuration of the system, fri this case, the configuration agent 1016 generates forms to pull all of the configuration objects from the system.
  • the configuration data associated with the configuration objects are then converted into the XML format and stored in the remote database 1010.
  • the configuration data may also be stored in a configuration file in a storage device (not shown), fri one embodiment, when a configuration object has not been changed since the system was manufactured (e.g., same default value), the corresponding field in the form is not filled out.
  • Figure 11 is a flow diagram illustrating an example of a configuration store process in accordance with one embodiment of the present invention.
  • the process starts at block 1105.
  • a request to store configuration data is issued.
  • one or more forms are generated to collect the configuration data. These forms may be generated by the configuration agent, as described above.
  • configuration data associated with the requested configuration file is pulled from the system.
  • the configuration data is used to fill the form.
  • the configuration data in the form is converted into the XML format.
  • the formatted configuration data is store. The process stops at block 1140.
  • Figure 12 is a flow diagram illustrating an example of a configuration restore process in accordance with one embodiment of the present invention.
  • the process starts at block 1205.
  • a request to restore configuration data is issued.
  • the configuration data is retrieved from a storage location (e.g., the remote database 1010 in Figure 10).
  • the configuration data is then converted from the XML format to a format understandable by the system, as shown in block 1220.
  • one or more forms are generated to push the configuration data. These forms may be generated by the configuration agent, as described above.
  • the forms are filled out with the configuration data.
  • the forms with the configuration data are pushed to the system.
  • the configuration data is used to restore the system to a desired state. The process stops at block 1245.
  • Figure 13 is a block diagram illustrating one embodiment of statistic collection application using forms and XML.
  • one technique of collecting statistic information is to use SNMP because SNMP has a mechanism for requesting specific statistic information or counter.
  • an SNMP agent gets the statistic information and sends it to an SNMP client.
  • the SNMP client may have a monitor associated with it to view the statistic information.
  • the SNMP agent may be customized software or off-the-shelves software such as, for example, OpenView from the Hewlett Packard Corporation of Cupertino, California, to perform this type of operation.
  • Another technique of collecting statistic information is to use the statistic agent 1315.
  • a user located at a remote location may be able to collect and review the statistic information of the system using a browser at station 1305.
  • the statistic agent 1315 provides the user knowledge of the statistic information available in the system. For example, using the Internet, the user may sign on to the statistic agent 1315 using the Internet Protocol LP) address of the statistic agent 1315. This E? address may have been published to the user previously. Other D? addresses of the system may also be published. Through its homepage, the statistic agent 1315 presents to the user the available statistic information in the system.
  • the user may send a request to the statistic agent 1315 to view selected statistic information.
  • the user may then view the selected statistic information on the browser.
  • This selection capability avoids having the user be flooded with all of the statistic data available in the system.
  • the statistic agent 1315 determines what forms to use or to generate. From the user point-of-view, the statistic agent 1315 makes available the statistic information of the system.
  • the user may not have any knowledge how the statistic information is collected from the system, and how it is formatted.
  • the user may request for absolute statistic information or incremental statistic information.
  • Absolute statistic information refers to statistic information as kept track by the system from when that statistic information was first kept track of.
  • Incremental statistic information refers to change in the statistic information from a last time the statistic information was collected.
  • the statistic agent 1315 has knowledge of what forms to generate to collect the requested statistic information.
  • the statistic information is collected from the system using one or more forms designed for carrying statistic (e.g., form "F” 1320 and form "G” 1321).
  • the statistic agent 1315 may generate a new form 1320 (form "F") and send it out to have the statistic information filled in.
  • the statistic agent 1315 may keep a form and get it refreshed with the new statistic information collected based on the user's request, fri this situation, the statistic agent 1315 stores the last collected statistic information 1330 and uses it to compare with the new collected statistic information to determine incremental change. This way, the statistic agent 1315 does not have to create a new form each time a request for the same statistic information is received from the user.
  • the statistic agent 1315 only returns the difference to the user.
  • the statistic information is returned to the user in the XML format. This allows the statistic information to be displayed and presented to the user through the browser. Placing the statistic information into the XML format also allows the statistic information to be used by other devices capable of processing data in the XML format. Referring to Figure 13, note that there is no connection between the statistic agent 1315 and the form 1321 (form "D"). This means the form 1321 is not used to carry any statistic, but rather it is used to carry parameter, as described above.
  • the statistic agent 1315 may send the statistic information in the XML format or it may send the statistic information in HTML document by attaching HTML headers to the document.
  • the user may locally establish a user session 1308 with the system and issue commands to collect statistic information using the command line interface (CLI) 1335.
  • the CLI then forward and have the commands processed by the AllClientlf ("All Client Interface") 1340 which may in turn activate the appropriate Clientlf ("Client Interface”) 1345.
  • AllClientlf All Client Interface
  • Clientlf 1345, 1346, and 1347 may be associated with different types of forms or forms that carry different data of the same types (statistic or parameter).
  • the Clientlf 1345 may generate new form(s) 1320 to collect statistic information using puller 1325 or it may use a stored form to be able to determine between the last statistic information 1330 and the new statistic information.
  • the forms are then filled with the requested statistic information from the system.
  • the statistic agent 1315 then generates an XML response to the user using connection 1336.
  • the statistic agent 1315 may store the collected statistic information in a database 1310.
  • One of the advantages of the statistic collection technique described here using XML is that a user may be able to access and view the statistic data with a browser which is available at low cost, as compared to having to purchase an expensive SNMP software such as, for example, Openview.
  • Figure 14 is a flow diagram illustrating an example of a statistic collection process in accordance with one embodiment of the present invention.
  • the process starts at block 1405.
  • a request for statistic information is initiated. For example, a user may initiate this request using a browser or using the CLI, as described above.
  • one or more forms are generated so that the requested statistic information may be filled in. When these are new forms, the fields to hold the statistic information may be blank.
  • data associated with the requested statistic information is pulled from the system.
  • the pulled data is used to fill the fields in the forms.
  • the data associated with the requested statistic information is formatted into the XML format.
  • the XML formatted statistic information is presented to the user.
  • the process stops at block 1440.
  • the statistic information presented to the user may be in an incremental form or in an absolute form, as described above.
  • GML generalized markup language
  • the operations of the various methods of the present invention may be implemented by a processing unit in a digital processing system, which executes sequences of computer program instructions which are stored in a memory which may be considered to be a machine-readable storage media.
  • the memory in the digital processing system may be random access memory, read only memory, a persistent storage memory, such as mass storage device or any combination of these devices.
  • Execution of the sequences of instruction causes the processing unit to perform operations according to the present invention.
  • the instructions may be loaded into memory of the computer from a storage device or from one or more other digital processing systems (e.g. a server computer system) over a network connection.
  • the instructions may be stored concurrently in several storage devices (e.g. DRAM and a hard disk, such as virtual memory). Consequently, the execution of these instructions may be performed directly by the processing unit.
  • the instructions may not be performed directly or they may not be directly executable by the processing unit. Under these circumstances, the executions may be executed by causing the processor to execute an interpreter that interprets the instructions, or by causing the processor to execute instructions which convert the received instructions to instructions which can be directly executed by the processor, fri other embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the present invention.
  • the present invention is not limited to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the computer or digital processing system.

Abstract

A request to view statistic data (1410) of a system is received. One or more forms are generated to carry the statistic data (1415). The one or more forms are to carry the statistic data pulled from the system. Based on data fields on the one or more forms, the requested statistic data is pulled from the system (1420). The one or more forms are filled with the pulled requested statistic data (1425). The pulled requested statistic data on the one or more forms is converted to a generalized markup language (GML) format (1430).

Description

DEVICE MONITORING VIA GENERALIZED MARKUP LANGUAGE
This is a continuation in part (CLP) application to a related application having serial number 09/858,443 filed on May 15, 2001.
FIELD OF THE INVENTION
[0001] The present invention relates generally to field of system monitoring. More specifically, the present invention is directed to methods and systems for monitoring using generalized markup language.
BACKGROUND [0002] Embedded systems are growing more and more complex, requiring a range of external management applications such as SNMP, Command Line Interfaces, TNM, WBEM, etc. These applications have completely different interfaces, network protocols and purposes but must all interface to the low-level internals of the system.
[0003] In order for a system to perform successfully in a user environment, it is necessary that the user be able to configure the system to operate as desired, and to be able to observe the system for troubleshooting and monitoring purposes. Further, the system needs to be able to provide its configuration at any moment and needs to be able to be restored to captured configuration. The configuration may possibly be edited offline. This functionality is collectively known as "management".
[0004] Management may be effected through a variety of user interfaces. The most common is Command Line Interface (CLI), where configuration and display commands are entered in text mode and promptly executed. Another common interface is Simple Network Management Protocol (SNMP) where configuration and monitoring data is transmitted over the network.
[0005] The configuration data may be associated with settings and information about the system. For example, a user may use a system console to enter system specific commands to configure components in the system (e.g., setting a speed of a line card in a switch, etc.). As time passes, there may be multiple configuration commands issued by the user. When a system is powered off, this configuration information may be lost. [0006] The monitoring data may indicate how often something happens in the system. For example, a network router system may handle multiple different types of traffic, and it is important to be able to get an understanding of how much traffic the system is handling and whether upgrades are necessary before the system is overloaded. Another example includes determining how often errors occur in an area of the system and whether corrective action needs to be taken before a failure occurs. Statistic data is typically never reset. Statistic data either stays the same or grows. Although there may be different types of statistic data, the type of statistic data collected typically relate to performance statistic and error statistic. Thus, one of the advantages of being able to configure the system and to collect the statistic data are important in maintaining the system as well as in predicting when upgrades or replacement is necessary.
SUMMARY OF THE INVENTION
[0007] In one aspect of the invention, a method of monitoring a system is disclosed. A request to view statistic data of a system is received. One or more forms are generated to carry the statistic data. The one or more forms are to carry the statistic data pulled from the system. Based on data fields on the one or more forms, the requested statistic data is pulled from the system. The one or more forms are filled with the pulled requested statistic data. The pulled requested statistic data on the one or more forms is converted to a generalized markup language (GML) format.
[0008] Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The present invention is illustrated by way of example in the following drawings in which like references indicate similar elements. The following drawings disclose various embodiments of the present invention for purposes of illustration only and are not intended to limit the scope of the invention.
[0010] Figures 1A and IB provide exemplary illustrations of an Interface Manager.
[0011] Figure 2 is an illustration of an exemplary hierarchy of forms and form classes defined by the present invention. [0012] Figure 3 is an exemplary illustration of three instances of a form.
[0013] Figure 4 is a table illustrating exemplary XML (Extensible Markup Language) tags.
[0014] Figure 5 is an exemplary illustration of a push operation and an XML file mapping the push operation.
[0015] Figure 6 is an exemplary illustration of a tree representation of an XML document describing a CLOCK SET command.
[0016] Figure 7 is an exemplary illustration of a pull operation and an XML file mapping the pull operation.
[0017] Figure 8 is an exemplary illustration of interfaces between the internal manager, CLI and SNMP.
[0018] Figure 9 is a block diagram illustrating one embodiment of a system implemented using forms to push and pull data, along with other applications that take advantage of the forms including configuration and statistic related applications.
[0019] Figure 10 is a block diagram illustrating one embodiment of configuration store and restore using forms and Extensible Markup Language (XML).
[0020] Figure 11 is a flow diagram illustrating an example of a configuration store process in accordance with one embodiment of the present invention.
[0021] Figure 12 is a flow diagram illustrating an example of a configuration restore process in accordance with one embodiment of the present invention.
[0022] Figure 13 is a block diagram illustrating one embodiment of statistic collection using forms and XML.
[0023] Figure 14 is a flow diagram illustrating an example of a statistic collection process in accordance with one embodiment of the present invention.
DETAILED DESCRIPTION
[0024] In one embodiment of the present invention, a method of accessing statistic information in a system is disclosed. Using a framework consisting of different delivery vehicles or forms to carry statistic information from the system, the method generates appropriate forms based on a request to access selected statistic information. The requested statistic information is pulled from the system and filled into the one or more forms to be delivered. The requested statistic information on the one or more forms is converted into a generalized markup language format and then viewed in a network browser. The requested statistic information may also be stored in a storage device, or it may be presented using a command line interface (CLI). [0025] The following detailed description sets forth numerous specific details to provide a thorough understanding of the invention. However, those of ordinary skill in the art will appreciate that the invention may be practiced without these specific details. In other instances, well-known methods, procedures, protocols, components, algorithms, and circuits have not been described in detail so as not to obscure the invention.
[0026] Generally, a system is managed by using high-level applications that collect data from or send data to the system. The system may also be managed by issuing commands using a command line interface (CLI).
[0027] In one embodiment of the present invention, a framework is provided for system management that is abstracted from the low-level elements of the system to be managed and the high-level applications that manage them. Collectively, this framework is called the Internal Manager or IMGR of the system.
[0028] The EVIGR performs as an abstraction layer between system implementation and system management applications independently of both applications. The EVIGR provides a generic interface for saving and restoring system state. The IMGR also provides a generic interface that allows for the retrieval of data (e.g., scalar and tabular data) from the system. For example, the FMGR provides an interface definition that allows implementers of device drivers and low-level system services to provide configurable attributes (e.g., configuration information) and statistic (e.g., monitoring information) to the higher-level system management applications without knowing anything about the system management applications. The IMGR also allows system management application developers (e.g., CLI, SNMP, etc.) to work autonomously, promoting code reuse and information hiding as well as programmer productivity. Ln addition, the EVIGR provides a uniform interface across the system that can handle the complicated task of saving and restoring system state.
[0029] The EVIGR is a system wide construct that allows the low-level developers of a system to provide access to data (e.g., parameter data, statistic data, etc.) of the system without having any knowledge of the applications that will use this data. It is a system wide abstraction layer, below which are kernel device drivers and various system services software and above which are the applications that provide management services. Using this framework, applications can be insulated from the system implementation and vice versa. [0030] Figures 1A and IB provide exemplary illustrations of an Interface Manager. Referring to Figure 1A, the system 115 includes hardware components, operating software, device drivers, etc. As described herein, a range of different management applications is used to control and manage the system 115.
[0031] In one embodiment, the EVIGR 110 is created between the command line interface (CLI) 105 and the low-level elements (e.g., kernel device drivers and various system services software, etc) of the system 115. The EVIGR 110 lies between the user management (CLI, SNMP, etc.) and the operating software and serves as an intermediary abstraction layer. The EVIGR 110 operates to provide translations of functions of the low-level elements in the system 115 to the CLI 105. Although the CLI 105 is used in this discussion, it would be apparent to one skilled in the art that the description may also be applicable to other management applications (e.g., SNMP application, etc.) at the same layer as the CLI 105, as illustrated in Figure IB.
[0032] The EVIGR 110 defines an abstract interface and a framework gluing internal applications (at the CLI 105) to the system 115 they are to manage, h one embodiment, it is assumed that only data is conveyed between the EVIGR 110 and the operating software in the system 105.
[0033] The EVIGR 110 provides a representation of system data based on an extensible interface that uses a notion of forms with special operations. These forms can be "pulled" from the system to retrieve attributes such as system settings (e.g., configuration information) and statistic (e.g., monitoring information) or pushed into the system to handle configuration (e.g., restoring configuration). The EVIGR 110 is based on object-oriented concepts requiring a programmer to implement specific interfaces. These interfaces make available certain operations to the managers such as, for example, the concept of a "GETNEXT" operation that can be used on any table of meta-data to traverse its rows and columns irrespective of the underlying data type and bounds of the table.
[0034] In one embodiment, the EVIGR 110 includes a group of Java objects which are extensions of a base form object. Each form carries data. Both the application layer (e.g., CLI layer 105) and system layer 115 (with its operating software) are knowledgeable of particular editions of these forms, which are the basis of communications between these layers. In addition to carrying data, the forms may also operate on the data they carry. For example, the form may format the data for user presentation, or it may assist in traversing instances of a table.
[0035] The data from the system 115 can be statistic data or parameter data. Statistic data are data maintained by the operating software. Statistic data are thus considered to be read-only from a management point of view. For example, there is no SET type of operation for statistic data. Thus, statistic data can only be pulled from the system. For example, a number of times the clock has been read is considered a statistic data. Statistic data can also be considered as counters maintained by the operating software.
[0036] As described above, data may be parameter data or statistic data. Data that is not statistic data is considered parameter data. Individual parameter data may be read-only (RO) or read- write (RW). Thus, all parameter data can be pulled and some parameter data can be pushed. Referring to Figure IB, data sent from the EVIGR 110 to the system 115 is parameter data and not statistic data. However, data sent from the system 115 to the EVIGR 110 can be either statistic data or parameter data.
[0037] The base form object can be implemented as a data structure defined with one or more fields to carry the data to the system 115 or from the system 115. Data are grouped onto the same form based on logical relationships of the data. New forms can be added to accommodate different groupings of data. In one embodiment, there is one operating software function for pulling (populating) the form, and zero or one function for push the form. At the upper interface (e.g., CLI layer 105), however, it may take several forms to satisfy a particular CLI command.
[0038] In one embodiment, when a form is pulled (from the system), all parameter data will be filled out by the operating software in the appropriate fields. When a form is pushed (to the system), the operating software will look only for those fields in the form which have the RW (read-write) attributes. For example, a SETCLOCK operation involves pushing parameter data, while a READCLOCK operation involves pulling parameter data. If information about the number of times the clock has been read is required, a CLOCKREAD operation would pull statistic, using a separate form. Thus, parameter data is different from statistic data. Note that a form is merely a snapshot of data (or an instance) at a particular time. [0039] When a form carrying data from the system 115 is received by the EVIGR 110, the EVIGR 110 presents the form to the management applications or the CLI 105. Lh one embodiment, the data in the form are automatically formatted for presentation to the CLI 105 or for presentation to the management applications at the CLI layer. Similarly, when the EVIGR 110 presents a form to the operating software in the system 115, the data in the forms is presented according to an appropriate data structure understood by the operating software. Thus, code that places data in a form and code that extracts data from the form are knowledgeable about a layout of the form such that the data in the form can be consistently interpreted, hi one embodiment, it is acceptable to have RO parameter data and RW parameter data on the same form. Note that multiple instances of the same form can be extracted with each instance possibly having different data.
[0040] There may be multiple forms to carry different types of data with each form used to carry one or more data. A form may be used to carry data in response to different actions. For example, the same form may be used to carry statistic data from the system 115 in response to different actions issued by the CLI 105 or by the management applications. Similarly, the same form may be used to carry parameter data from or to the system 115 for different actions. There may be different forms for different commands.
[0041] A form may be pulled from the system 115 to gather system attributes (e.g., system configurations, statistic, etc.). For example, a filled-out form can be pulled up from the operating software as a result of a GET/SHOW/DISPLAY command from the CLI 105. A form may be pushed to the system 115 to set system configuration. For example, parameter data associated with a command SET/CONFIGURE is pushed in a form to the operating software in the system 115. There is a one-to-one correspondence between a form and platform code that fills out or reacts to a form. Knowledge of the different forms is required for the different push and pull operations between the management applications/CLI 105 and the system 115. These forms form a basis of communication between the management applications/CLI 105 and the system 115
[0042] Figure 2 is an exemplary illustration of hierarchy of forms and form classes. In one embodiment, the interaction between the CLI 105 and the EVIGR 110 is performed using commands in a command set. For example, the command set may include a GET NEXT command that can be used to traverse rows and columns of a table data structure. As described herein, each of the commands in the command set is associated with a form and that there may be multiple distinct forms.
[0043] Referring to Figure 2, a form 205 may be designed to work with a single data ("scalar data") in a scalar entity class 210 or with a row of data in a table ("tabular data") in a table entry class 215. The data in the table entry class 215 may be further sub-classed as parameter data 225 or statistic data 226. Similarly, the scalar entity class 210 may be further sub-classed as parameter data 227 or statistic data 228. Thus, a form 205 may be categorized as one of the four following abstract subclasses: friternalManager - Table - Parameter friternalManager - Table - Statistic friternalManager - Scalar - Parameter friternalManager - Scalar - Statistic. The tabular data may be accessed as an instance. For example, the form may correspond to exactly one row of the table, and rows of a table can be differentiated by some combination of columns of the table. Different instances of the same table can be used so that specific entries in the table can be located, or so that the table can be traversed. In one embodiment, a form 205 cannot be used to carry a mixed combination of scalar data and tabular data. In another embodiment, a form 205 does not support tables within tables.
[0044] In one embodiment, the command set supported by the EVIGR 110 should at least have pull management commands for pulling statistic from the system 115. This allows for at least some monitoring capabilities. In another embodiment, data originally placed on one form may be presented in multiple forms. For example, data pulled from the system 115 to the EVIGR 110 may be placed on one form, but the EVIGR 110 may extract the data from the one form and place them onto multiple forms before they are presented to the management applications or the CLI 105. The operating software of the system 115 fills out the forms to be pulled from the system. The operating software of the system 115 also processes forms pushed down to it by the EVIGR 110.
[0045] In one embodiment, it is acceptable to have both parameter data and statistic data on the same form. Thus, a form may be a parameter form, a statistic form, or a parameter and statistic form. For example, an interface index item might appear on the same form as an interface statistic data in order to correlate the interface and the associated statistic data. The interface index item may also appear on several forms carrying parameter and/or statistic data. In one embodiment, just because a data is on a parameter form, it isn't necessarily settable, though other items on the same form might be settable. fri one embodiment, a speed of the interface may be settable, but not its identity. For example, it is likely that statistic data would be pulled from the system frequently and repetitively (e.g., for monitoring purpose), and as such, forms used to carry statistic data may be handled differently for optimization.
[0046] Figure 3 is an exemplary illustration of three instances of a form. Referring to Figure 3, the three instances 305, 310 and 315 of the same form 300 are received at three different times. Each instance provides a snap shot of the data on the form 300 at a particular time. In one embodiment, each form is time stamped when it is used to carry the data. The timestamp may be used to determine how much time has elapsed since a previous pull operation. For example, the instance 305 of the form 300 has a time stamp field 320. fri one embodiment, the instance 305 is stored so that it can be used to compare with a next instance of the same form.
[0047] In one embodiment, a delta value is pulled rather than an absolute value. For example, the instance 310 of the form 300 has a delta value 325. The delta value 325 indicates a difference from the absolute value 322 in the instance 305. fri another embodiment, for each pull operation, an indicator may be set on the form to indicate to the system 115 that the fields on the form need to be updated only when the system 115 has different values than the default startup values for those fields. When a pull operation is not successful, a "fail" condition may be returned to the management applications or to the CLI 105.
[0048] Each of the fields on a form may carry non-null values or null values, fri one embodiment, when there is a push operation, any fields on the form that have null values may be disregarded by the system 115. The system 115 may extract data from the fields that have non- null values. The system 115 may accept the non-null values of alphanumeric type or numeric type. The system 115 may not accept a specific numeric or alphanumeric value, however.
[0049] In another embodiment, each form may be associated with a "save" and a "restore" function. For example, when the "save" function is invoked for a particular form, data corresponding to the fields on that form are pulled from the system 115. The data then sent to a destination (e.g., user, management application, data file, etc.). When the "restore" function is invoked, the previously saved data is placed into the appropriate form. The form is then pushed down to the system 115. The data is then extracted from the form to complete the restore operation.
[0050] An instance of a form may have scalar data or it may have tabular data. As described herein, when a form is used to carry tabular data, each instance of the form carries one row of data from the table. An indicator may be sent along with the form to provide information regarding where the row is in the table. It is assumed that the table remains constant during the lifespan of the push or pull operations.
[0051] When a command associated with a pull operation (e.g., SHOW command) is issued using the CLI 105, an interpreter resolves the command into an object/method pair. The "object" is a glue that calls a static method in the form class which in turn pulls an instance of the form up from the system 115 and generates display information back to the CLI 105. The form can also be read by the method of the glue object.
[0052] When a command associated with a push operation (e.g., CONFIG command) is issued using the CLI 105, the command can also be resolved to an object/method pair, fri this example, an empty instance of the form is created and the command parameters are translated into settings of the fields of the form. The form is then pushed to the operating software in the system 115 to effect the push operation.
[0053] When the EVIGR 110 is used to interface with SNMP (as shown in Figure IB), most of the SNMP code is automatically generated by an agent software (e.g., AdventNet software from AdvenNet, Inc. of Pleasanton, California) when it interprets a Management Information Base (MD3) file, fri one embodiment, lowest levels of this agent code are edited to effect the "instrumentation" part of SNMP operations, fri one embodiment, when a GET command on an object is processed by the runtime agent, a form containing the item is pulled up from operating software, and the value of the data is read from the form. Similar processing is performed for a GETNEXT command. GETFER.ST and GETNEXT functions are provided as static methods in the form. SET commands are also handled one varbind at a time, fri one embodiment, a new empty form is created, set the varbind value into the form field, and push it down to the operating software. SNMP may be used for monitoring. [0054] The EVIGR 110 expects the operating software to provide a static pull and a static push function, fri both cases, a reference to a form instance is passed as an argument, fri one embodiment, when the form is for a table, another argument specifies the sequence number (not the instance) of the entry in the table (the table is assumed to remain constant during the lifespan of the operation).
[0055] fri the case of pull operations, there is an additional flag argument indicating that the operating software should only fill out the fields of the form that have different values than the default startup values of the system, fri the case of push operations, any fields of the form that are null can be disregarded ~ only the fields that are non-null need to be acted upon. The form provides public methods for setting and getting the fields of the form, fri one embodiment, the same form can be used for push and pull operations.
[0056] fri one embodiment, "native" methods are used where the C code of the platform accesses the methods and fields of the Java class, fri the pull direction (from the system to the applications), the setter methods of the form object are used to fill out the form, while in the push direction, the fields of the form are accessed directly. Other approaches include use of "exec" functions called from within the form, or via the reading of 'proc' files.
[0057] fri one embodiment, FAIL indications are returned if the pull operations do not succeed, fri the case of push operations, even though there may be careful checking by SNMP and by CLI before pushing a form, there may be situations that a pushed form might not be acceptable by the operating software. A set of exceptions is provided for these situations.
[0058] Figure 4 is a table illustrating exemplary XML (Extensible Markup Language) tags. The XML document can be viewed as a description document providing descriptions about how to interpret parameter data and statistic data. Each tag occurs in the XML document as a <tagname>...</tagname> combination. Attributes are enclosed in the tag fields with their values bounded by a pair of double quotation marks such as, for example, <tagname attribute="value">.
[0059] The <cli> tag 405 is the top-level element of the XML document. All other tags are subtags of this top-level <cli> tag 405. This <cli> tag 405 has no attributes and text inside the <cli> tag 405 is ignored. The <mode> tag 410 contains the mode of the management command. There should be only one <mode> tag 410 in the XML document. The <mode> tag 410 has a single attribute which identifies the name of the mode such as, for examples, <mode name='globaP> or <mode name="exec">. The <command> tag 415 is the top-level tag for a single command. It has no attributes and text inside the <command> tag 415 is ignored. The <command> tag 415 contains a single <keyword> tag such as, for example,
<command>
<keyword text="show"> </keyword> </command>. The <keyword> tag 420 specifies the text of a command keyword in the command set of the CLI such as, for example SHOW, ENABLE or LOGOUT. The text is supplied by the single attribute "text". The keywords may contain other <keyword> tags to specify sub keywords.
[0060] The <help> tag 425 specifies help information for the command / keyword. The <help> tag 425 has no attributes. The text enclosed by the <help> tag 425 defines the help text for the outlying tag, i.e. for a keyword or argument. One example of the help information follows:
<keyword text="show">
<help>Show running system information </help>
<keyword text="clock">
</keyword>
[0061] The <action> tag 430 specifies that there is a executable action for the enclosing keyword. For example, the action specified within the <action> tag 430 is carried out for the associated command when the carriage return is presses. The "object" and "method" attributes of the <action> tag 430 specify an object and a method in the system by name. A collection of Java type interfaces is created for the "objects" and "methods" that get invoked during run-time. One example of the object and the method follows:
<action object="CliSystem" method="clock">
</action>.
[0062] The <arg> tag 435 defines an argument type for an <action> tag 430. The <arg> tag 435 has no arguments and text in the <arg> tag 435 is ignored. A single <type> tag or <help> tag may be inserted in the body of the <arg> tag 435. One example of the <arg> tag 435 follows: <arg>
<type type="java.lang.String"></type>
<help>destination address or hostname</help> </arg>
[0063] The <type> tag 440 describes a Java type for input to the invocation of the object, method pair specified by the <action> tag 430. The Java type name is entered as a "type" attribute of the <type> tag 440. Other text in the body of the <type> tag 440 other than those associated with the "type" attribute is ignored.
[0064] fri this example, XML is used to describe the command language. XML is advantageous because there are a lot of available XML tools (e.g., editor tool, browser tool, etc.) for development. Although XML is used, one skilled in the art would recognize that other generalized markup languages (GML) may also be used to describe or map the management commands to the objects of the system, where the objects are low-level functions implemented in the system.
[0065] Figure 5 is an exemplary illustration of a push operation and an XML document mapping the push operation. The XML document 525 describes statically all the keywords, arguments, and mapping from a CLOCK SET command to action in the system that will cause the action corresponding to the CLOCK SET command to be carried out. The CLOCK SET command is made available to a user or a management application interfacing with the system even though the system may not have the exact CLOCK SET command in its own command set. The XML document 525 describes the hierarchy of the CLOCK SET command keyword by keyword. Each command is associated with an action defined as an "object" and a "method".
[0066] The command 505 illustrates the "help" feature by specifying the "?" as part of the of command argument. This "help" feature is also illustrated in the command 510 and 515 to get additional information about the format (e.g., time, month, year) of the CLOCK SET command. The command 420 illustrates a complete CLOCK SET command with all the possible arguments or parameters specified. The XML document 525 describes the CLOCK SET command 505-520 using the XML tags described in Figure 4. At run-time, the command CLOCK SET issued by the user or the management application is recognized by the interpreter as corresponding to the command keyword CLOCK shown on line 527 and the keyword SET shown on line 528. There may be multiple command keywords in the same XML document in addition to the CLOCK command. The interpreter will parse the XML document 525 to determine if the command is a valid command, fri the current example, the help information requested in the commands 505- 515 is enclosed in the <help> tags on lines 530, 535, 540 and 545 respectively.
[0067] Depending on the format of each of the CLOCK SET commands 505-520, a form containing information extracted from the arguments/parameters of the XML document 525 is pushed to the operating software at the lower-layer. The operating software then executes the action specified by the "object" and "method" attribute of the <action> tag shown on line 529. Results (i.e., statistical data) associated with this action is then pulled up from the lower layer and displayed to the user or presented to the management application in another form.
[0068] Figure 6 is an exemplary illustration of a tree representation of an XML document describing a CLOCK SET command. An XML document created using the tags described in Figure 4 is translated into a tree format that can be interpreted at run-time. The structure of the tree corresponds to the tags and attributes in the XML document. The tree also contains all of the texts enclosed by any of the tags so that every piece of information in the XML document is reflected in the resulting tree. Each tree describes what the command is and what the expected arguments/parameters are. fri one embodiment, a Java Document Object Model (DOM) library is used to parse the XML document into a resulting tree or DOM tree. The DOM tree contains a collection of Java objects that represent the tags, attributes, and text of the corresponding XML document. The DOM tree in Figure 6 corresponds to the CLOCK SET command described in the XML document 525 illustrated in Figure 5. Note that there are only two keyword nodes 605, 610 corresponding to the keywords CLOCK and SET respectively. Note also that there are four argument nodes 620-635 under the action node 615. The four argument nodes 620-635 correspond to the arguments for "time", "day of month", "month" and "year" of the CLOCK SET command. The DOM tree and its collection of Java objects are translated into a collection of Java run-time classes.
[0069] Figure 7 is an exemplary illustration of a pull operation and an XML document mapping the pull operation. The pull operations in this example include a SHOW CLOCK command 705 and a SHOW CLOCK DETAIL command 710. The XML document 715 illustrates a description of the above two commands 705 and 710 using XML keyword tags described in Figure 4. The XML document 715 describes the SHOW CLOCK command using keywords, sub-keywords, help text, arguments, and specification of actions to be carried out by the lower-layer operating software.
[0070] The XML document 715 is presented in its source format and is normally compiled using an XML compiler so that it can be used by a run-time system. When a user or a management application issues the command, the run-time system performs object mapping, method mapping and the arguments / parameters are provided to the operating software of the system to carry out the action. For example, when the command SHOW CLOCK 705 is issued, the run-time system executes the action associated with an object CLOCK and a method SHOW, shown on line 720. When the command SHOW CLOCK DETAIL 710 is issued, the run-time system executes the action associated with an object CLOCK and a method SHOWDETAJJ , as shown on line 725. The run-time system invokes a collection of Java system interfaces corresponding to the object and method specified in the action. The run-time system then collects data (parameter data) from the system, put them in a form and presents the form to the user or to the management application.
[0071] Using the method of the present invention, commands that are associated with the system and that are used to control the system can be shielded from the user. These commands can be described and expressed using a universal description language such as, for example, XML. A set of common commands is created by describing all of the commands associated with the system. For example, XML can be used to create a new set of commands that describe commands associated with a Lucent router such that the new set of command is consistent with commands associated with routers from Cisco. One skilled in the art would recognize that commands for other vendors can also be implemented. Using this method also shield the users from changes or version upgrades applied to the operating software of the system, fri addition, when a new system is used, the commands can be made to be the same by describing and mapping the commands to the objects and methods of the new system. Thus, as shown in Figures 1A and IB, by having the internal manager as the middle layer, the command set available in the upper layer through the CLI is independent of the system of the lower layer.
[0072] Figure 8 is an exemplary illustration of interfaces between the internal manager, CLI and SNMP. The run-time versions of the commands described using the generalized markup language such as, for example, XML, may be stored in a command description file 802. When the user 801 enters a command, the CLI 805 searches the command description file 802 for the corresponding definition to carry out the command. The method of the present invention can also be used in a network environment using, for example, simple network management protocol (SNMP) and management information base (MLB). MIB modules specify targets of management operations. The MIB modules are interpreted to identify the target of management operations.
[0073] Instead of having the user or the management application issuing commands through the CLI, management commands may be issued using SNMP 810. SNMP 810 interfaces with the EVIGR 110 to access information from the system 850. Lh one embodiment, the EVIGR 110 is divided into several EVIGR packages 820, 825, and 830. Each of the JJVIGR packages 820, 825 and 830 corresponds to a group of related services provided by the system 850. For example, the services may be grouped under IP routing, ATM routing, etc.
[0074] The EVIGR package 825 transfers data between the system 850 and SNMP using forms 815, as described above. The EVIGR package 825 includes a client interface 814, pullers 817 and pushers 816. When a command is issued by a user 801 though the CLI 805, the command is sent to the appropriate EVIGR package 825. For example, when the command is a SET CLOCK command, the CLI 805 sends the command to the EVIGR package 825 because it recognizes that the EVIGR package 825 processes system related commands including the SET CLOCK command. The CLI 825 is able to make this recognition because, at an earlier time, the client interface 814 in the EVIGR package 825 was registered with the CLI 805. This registration allows the client interface 814 to indicate to the CLI 805 that the client interface 814 handles system related commands. The client interface 814 is aware of the specific actions of the system 850.
[0075] The EVIGR package 825 fills the form 815 with parameter data for push operations. The EVIGR package 825 may also use the form 815 to extract parameter data and/or statistic data using pull operations. For example, when a GET operation is processed by the EVIGR package 825, the form 815 containing the appropriate data is pulled up from the system 850. The data is then read from the form 815 by the SNMP 810.
[0076] Consider the following example of the results of an SNMP GET operation:
.1.3.6.1.2.1.17.4.3.1.1.255.255.255.255.255.3 = ff ff ff ff ff 03
This can be rewritten as:
{DotldTpFdbTable}. {Macaddress}. {255.255.255.255.255.3} = ffffff ff ff 03 And interpreted as:
The MAC address of the Fdb Table entry whose MAC address is
255.255.255.255.255.3 is ff:ff:ff:ff:ff:03 fri this example, within the FdbEntry form, there is a field containing a MacAddress object.
Access methods are provided to provide the value of the address in the two different schemas that SNMP requires: as a string ("255.255.255.255.255.3") as used for instancing an object, and as a 6-byte OCTET STRING used for the value. Internally, the MacAddress is kept as a 6- element integer array.
[0077] The GET operation described above can also be used to get a configuration of the system 850. A blank form 815 is pushed to the system by the pushers 816. Recognizing that the action is associated with a SAVE operation, the operating software of the system 850 fills out the blank form with configuration data. The filled-out form 815 is then pulled from the system 850 by the pullers 817. The configuration data may then be saved in a configuration file 818 for a subsequent restore operation, fri one embodiment, the configuration file is saved in XML format. When a restore function is invoked, the configuration file 818 is processed into CLI command lines. The CLI command lines are fed back to the CLI 805.
[0078] Figure 9 is a block diagram illustrating one embodiment of a system implemented using forms to push and pull data, along with other applications that take advantage of the forms including configuration and statistic related applications. As described above, the forms may be generated as a result of the user 908 issuing commands through the CLI 935. fri this example, the CLI 935 then activates the client interface 945 which generate new forms or reuse stored forms depending on the commands and/or previous commands. There may be different types of forms. For example, one type of form may be used to carry multiple data entries in a table format such as data available in multiple ports, and another type of form may be used to carry a single data entity such as data available from a console.
[0079] Each client interface ("Clientlf ) may be associated with a different function. For example, the client interface 945 may be responsible for pushing and/or pulling data carried by the forms "D", "E", "F", and "G". Other client interfaces may have different responsibilities using different forms (e.g., "A", "B", and "C"). When a form is used to pull data from the system, a directional arrow connects from the form to the client interface. For example, the client interface 946 uses form 921 ("C") to pull data from the system. When a form is used to push data to the system, a directional arrow connects from the client interface to the form. When a form can be used both to push and to pull data, a bi-directional arrow is used.
[0080] The forms "A" to "G" in this example may also be used to store and/or to restore configuration data, and to collect statistic data from the system using SNMP 917 and MIBs 918, as described in Figure 8. In one embodiment, a configuration agent 916 is used with the forms (e.g., form "A" 919) to restore configuration information 927 to the system using pusher 926. The configuration agent 916 may display the configuration data using the browser 905, store the configuration data in the database 910, display the configuration data to the user 908 using the CLI 935 (after converting the configuration data into a format understandable by the CLI 935 using a converter such as, for example, the cfg2cli 904, or store the converted configuration data in a command store 918 for batch execution, etc. fri another embodiment, a statistic agent 915 is used with the forms (e.g., form "G" 920) to collect or pull statistic information 928 from the system using puller 925. Note that since the statistic agent 915 collects information from the system, the connections from the forms to the statistic agent 915 are illustrated as one directional originating from the forms.
[0081] Figure 10 is a block diagram illustrating one embodiment of a configuration store and restore application using forms and Extensible Markup Language (XML). From its initial operation, a system may receive multiple configuration information for its components from the user. Over time, some components may retain the same configuration information, while some other components may have been changed multiple times. Thus, the configuration information from the system may be viewed as a collection of configuration objects that represent a snap shot of a desired operation state of the system, even though each configuration object may have been specified at different times. From the users point-of-view, this collection of configuration objects is valuable because it may represent much time and effort spent in fine-tuning the system.
[0082] Referring to Figure 10, a user may specify a configuration object by issuing commands using the CLI 1035. More than one configuration objects may be specified by the user using a batch file. Of course, the sequence of commands in the batch file needs to be consistent with one another. The CLI then activates the AllClientlf 1040. Depending on the commands the AllClientlf 1040 activates the appropriate Clientlf 1045. One or more forms are generated to push configuration data to the system (e.g., changing an IP address for the system) or to pull configuration data from the system when a configuration object is to be viewed. The pulled configuration data may also be stored for later use (e.g., configuration restore) in the remote database 1010. For example, the form "F" 1020 may be used by the Clientlf 1045 to push a configuration object to the system using the pusher 1026. The form "E" 1021 may be used by the Clientlf 1045 to pull a configuration object from the system using the puller 1027.
[0083] A configuration agent 1016 may also be used to push configuration objects to the system and or to pull configuration objects from the system. For example, a user using browser at a remote workstation 1005 may send requests to the configuration agent 1016 to view one or more configuration objects. As in the case of using the CLI 1035, the configuration agent 1016 generates one or more forms to push configuration data to the system when a configuration object is to be changed (or reconfigured), or to pull configuration data from the system when a configuration object is to be viewed. For example, configuration agent 1016 generates the form "F" 1020 to push a configuration object to the system using the pusher 1026, and the configuration agent 1016 generates the form "E" 1021 to pull a configuration object from the system using the puller 1027.
[0084] When pulling configuration objects from the system, the configuration agent 1016 also converts the configuration data into the XML format before presenting the configuration data to the user at the workstation 1005. The XML formatted configuration data may also be stored by the configuration agent 1016 in the remote database 1010 for later use. When pushing configuration objects to the system using the stored XML formatted configuration data in the remote database 1010, the configuration agent 1016 may convert the XML formatted configuration data back into a form understandable by the system.
[0085] It may be noted that one or more configuration objects may be pushed or pulled on the same form. For example, using the browser at the workstation 1005, the user may issue a request to save the configuration of the system, fri this case, the configuration agent 1016 generates forms to pull all of the configuration objects from the system. The configuration data associated with the configuration objects are then converted into the XML format and stored in the remote database 1010. The configuration data may also be stored in a configuration file in a storage device (not shown), fri one embodiment, when a configuration object has not been changed since the system was manufactured (e.g., same default value), the corresponding field in the form is not filled out. [0086] Figure 11 is a flow diagram illustrating an example of a configuration store process in accordance with one embodiment of the present invention.
The process starts at block 1105. At block 1110, a request to store configuration data is issued. At block 1115, one or more forms are generated to collect the configuration data. These forms may be generated by the configuration agent, as described above. At block 1120, configuration data associated with the requested configuration file is pulled from the system. At block 1125, the configuration data is used to fill the form. At block 1130, the configuration data in the form is converted into the XML format. At block 1135, the formatted configuration data is store. The process stops at block 1140.
[0087] Figure 12 is a flow diagram illustrating an example of a configuration restore process in accordance with one embodiment of the present invention.
The process starts at block 1205. At block 1210, a request to restore configuration data is issued. At block 1215, the configuration data is retrieved from a storage location (e.g., the remote database 1010 in Figure 10). The configuration data is then converted from the XML format to a format understandable by the system, as shown in block 1220. At block 1225, one or more forms are generated to push the configuration data. These forms may be generated by the configuration agent, as described above. At block 1230, the forms are filled out with the configuration data. At block 1235, the forms with the configuration data are pushed to the system. At block 1240, the configuration data is used to restore the system to a desired state. The process stops at block 1245.
[0088] Figure 13 is a block diagram illustrating one embodiment of statistic collection application using forms and XML. As described in Figure 8, one technique of collecting statistic information is to use SNMP because SNMP has a mechanism for requesting specific statistic information or counter. For example, an SNMP agent gets the statistic information and sends it to an SNMP client. The SNMP client may have a monitor associated with it to view the statistic information. The SNMP agent may be customized software or off-the-shelves software such as, for example, OpenView from the Hewlett Packard Corporation of Cupertino, California, to perform this type of operation.
[0089] Another technique of collecting statistic information is to use the statistic agent 1315. Using this technique, a user located at a remote location may be able to collect and review the statistic information of the system using a browser at station 1305. The statistic agent 1315 provides the user knowledge of the statistic information available in the system. For example, using the Internet, the user may sign on to the statistic agent 1315 using the Internet Protocol LP) address of the statistic agent 1315. This E? address may have been published to the user previously. Other D? addresses of the system may also be published. Through its homepage, the statistic agent 1315 presents to the user the available statistic information in the system.
[0090] Using the browser, the user may send a request to the statistic agent 1315 to view selected statistic information. The user may then view the selected statistic information on the browser. This selection capability avoids having the user be flooded with all of the statistic data available in the system. Based on the user's request, the statistic agent 1315 then determines what forms to use or to generate. From the user point-of-view, the statistic agent 1315 makes available the statistic information of the system. The user may not have any knowledge how the statistic information is collected from the system, and how it is formatted. The user may request for absolute statistic information or incremental statistic information. Absolute statistic information refers to statistic information as kept track by the system from when that statistic information was first kept track of. Incremental statistic information refers to change in the statistic information from a last time the statistic information was collected.
[0091] The statistic agent 1315 has knowledge of what forms to generate to collect the requested statistic information. The statistic information is collected from the system using one or more forms designed for carrying statistic (e.g., form "F" 1320 and form "G" 1321). The statistic agent 1315 may generate a new form 1320 (form "F") and send it out to have the statistic information filled in. Alternatively, the statistic agent 1315 may keep a form and get it refreshed with the new statistic information collected based on the user's request, fri this situation, the statistic agent 1315 stores the last collected statistic information 1330 and uses it to compare with the new collected statistic information to determine incremental change. This way, the statistic agent 1315 does not have to create a new form each time a request for the same statistic information is received from the user.
[0092] The ability to provide incremental data relieves the user from having to calculate differences from the last collection of the same statistic information, fri this case, the statistic agent 1315 only returns the difference to the user. The statistic information is returned to the user in the XML format. This allows the statistic information to be displayed and presented to the user through the browser. Placing the statistic information into the XML format also allows the statistic information to be used by other devices capable of processing data in the XML format. Referring to Figure 13, note that there is no connection between the statistic agent 1315 and the form 1321 (form "D"). This means the form 1321 is not used to carry any statistic, but rather it is used to carry parameter, as described above. The statistic agent 1315 may send the statistic information in the XML format or it may send the statistic information in HTML document by attaching HTML headers to the document.
[0093] The user may locally establish a user session 1308 with the system and issue commands to collect statistic information using the command line interface (CLI) 1335. The CLI then forward and have the commands processed by the AllClientlf ("All Client Interface") 1340 which may in turn activate the appropriate Clientlf ("Client Interface") 1345. Note that each of the Clientlf 1345, 1346, and 1347 may be associated with different types of forms or forms that carry different data of the same types (statistic or parameter). Similar to the statistic agent 1315, the Clientlf 1345 may generate new form(s) 1320 to collect statistic information using puller 1325 or it may use a stored form to be able to determine between the last statistic information 1330 and the new statistic information. The forms are then filled with the requested statistic information from the system. The statistic agent 1315 then generates an XML response to the user using connection 1336. fri one embodiment, the statistic agent 1315 may store the collected statistic information in a database 1310. One of the advantages of the statistic collection technique described here using XML is that a user may be able to access and view the statistic data with a browser which is available at low cost, as compared to having to purchase an expensive SNMP software such as, for example, Openview.
[0094] Figure 14 is a flow diagram illustrating an example of a statistic collection process in accordance with one embodiment of the present invention. The process starts at block 1405. At block 1410, a request for statistic information is initiated. For example, a user may initiate this request using a browser or using the CLI, as described above. At block 1415, one or more forms are generated so that the requested statistic information may be filled in. When these are new forms, the fields to hold the statistic information may be blank. At block 1420, data associated with the requested statistic information is pulled from the system. At block 1425, the pulled data is used to fill the fields in the forms. At block 1430, the data associated with the requested statistic information is formatted into the XML format. At block 1435, the XML formatted statistic information is presented to the user. The process stops at block 1440. Note that the statistic information presented to the user may be in an incremental form or in an absolute form, as described above. Although the above examples are illustrated using XML, other generalized markup language (GML) format may also be used.
[0095] The operations of the various methods of the present invention may be implemented by a processing unit in a digital processing system, which executes sequences of computer program instructions which are stored in a memory which may be considered to be a machine-readable storage media. The memory in the digital processing system may be random access memory, read only memory, a persistent storage memory, such as mass storage device or any combination of these devices. Execution of the sequences of instruction causes the processing unit to perform operations according to the present invention. The instructions may be loaded into memory of the computer from a storage device or from one or more other digital processing systems (e.g. a server computer system) over a network connection. The instructions may be stored concurrently in several storage devices (e.g. DRAM and a hard disk, such as virtual memory). Consequently, the execution of these instructions may be performed directly by the processing unit.
[0096] fri other cases, the instructions may not be performed directly or they may not be directly executable by the processing unit. Under these circumstances, the executions may be executed by causing the processor to execute an interpreter that interprets the instructions, or by causing the processor to execute instructions which convert the received instructions to instructions which can be directly executed by the processor, fri other embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the computer or digital processing system.
[0097] From the above description and drawings, it will be understood by those of ordinary skill in the art that the particular embodiments shown and described are for purposes of illustration only and are not intended to limit the scope of the invention. Those of ordinary skill in the art will recognize that the invention may be embodied in other specific forms without departing from its spirit or essential characteristics. References to details of particular embodiments are not intended to limit the scope of the claims.

Claims

CLAEVISWhat is claimed is:
1. A method, comprising: receiving a request to retrieve statistic information of a system; generating one or more forms to carry the requested statistic information from the system; based on the generated one or more forms, pulling the requested statistic information from the system; filling the one or more forms with the pulled requested statistic information; and converting the statistic information on the one or more forms to a generalized markup language (GML) format.
2. The method of claim 1, wherein the generalized markup language is extensible markup language (XML).
3. The method of claim 2, further comprising displaying the formatted statistic information in a browser.
4. The method of claim 1 , further comprising storing the formatted statistic information.
5. The method of claim 1, further comprising presenting the statistic information using a command line interface (CLI).
6. The method of claim 1 , wherein receiving a request to retrieve statistic information of the system comprises receiving a request to retrieve incremental statistic information.
7. The method of claim 6, wherein filling the one or more forms with the pulled requested statistic information comprises filling the one or more forms with the incremental statistic information.
8. The method of claim 1, wherein the request identifies selected statistic information to be retrieved from the system.
9. The method of claim 1 , wherein the request is issued from an Internet browser to an Internet Protocol (IP) address associated with the system.
10. A computer readable medium having stored thereon sequences of instructions which are executable by a digital processing system, and which, when executed by the digital processing system, cause the system to perform a method comprising: receiving a request to retrieve statistic information of a system; generating one or more forms to carry the requested statistic information from the system; based on the generated one or more forms, pulling the requested statistic information from the system; filling the one or more forms with the pulled requested statistic information; and converting the statistic information on the one or more forms to a generalized markup language (GML) format.
11. The computer readable medium of claim 10, wherein the generalized markup language is extensible markup language (XML).
12. The computer readable medium of claim 11, further comprising displaying the formatted statistic information in a browser.
13. The computer readable medium of claim 10, further comprising storing the formatted statistic information.
14. The computer readable medium of claim 10, further comprising presenting the statistic information using a command line interface (CLI).
15. The computer readable medium of claim 10, wherein receiving a request to retrieve statistic information of the system comprises receiving a request to retrieve incremental statistic information.
16. The computer readable medium of claim 15, wherein filling the one or more forms with the pulled requested statistic information comprises filling the one or more forms with the incremental statistic information.
17. The computer readable medium of claim 10, wherein the request identifies selected statistic information to be retrieved from the system.
18. The computer readable medium of claim 10, wherein the request is issued from an Internet browser to an Internet Protocol ( P) address associated with the system.
19. A method, comprising: pulling statistic information from a system based upon fields included in one or more forms, the one or more forms designed to carry the statistic information; filling the one or more forms with the pulled statistic information; and converting the statistic information on the one or more forms to a generalized markup language (GML) format.
20. The method of claim 19, further comprising: receiving a request to retrieve the statistic information; and generating one or more forms to carry the statistic information.
21. The method of claim 20, wherein receiving the request to retrieve the statistic information comprises receiving a request to retrieve incremental statistic information.
22. The method of claim 21 , wherein filling the one or more forms with the pulled requested statistic information comprises filling the one or more forms with the incremental statistic information.
23. The method of claim 19, wherein the generalized markup language is extensible markup language (XML).
24. The method of claim 23, further comprising displaying the formatted statistic information in a browser.
25. The method of claim 19, further comprising storing the formatted statistic information.
26. The method of claim 19, further comprising presenting the pulled statistic information using a command line interface (CLI).
27. A computer readable medium having stored thereon sequences of instructions which are executable by a digital processing system, and which, when executed by the digital processing system, cause the system to perform a method comprising: pulling statistic information from a system based upon fields included in one or more forms, the one or more forms designed to carry the statistic information; filling the one or more forms with the pulled statistic information; and converting the statistic information on the one or more forms to a generalized markup language (GML) format.
28. The computer readable medium of claim 27, further comprising: receiving a request to retrieve the statistic information; and generating one or more forms to carry the statistic information.
29. The computer readable medium of claim 28, wherein receiving the request to retrieve the statistic information comprises receiving a request to retrieve incremental statistic information.
30. The computer readable medium of claim 29, wherein filling the one or more forms with the pulled requested statistic information comprises filling the one or more forms with the incremental statistic information.
31. The computer readable medium of claim 27, wherein the generalized markup language is extensible markup language (XML).
32. The computer readable medium of claim 31 , further comprising displaying the formatted statistic information in a browser.
33. The computer readable medium of claim 27, further comprising storing the formatted statistic information.
34. The computer readable medium of claim 27, further comprising presenting the pulled statistic information using a command line interface (CLI).
35. A system, comprising: a processor; a memory coupled with the processor; and a statistic agent coupled to the memory and the processor, wherein the statistic agent collects statistic information from the system using one or more forms responsive to a request to access the statistic information, wherein the one or more forms carry statistic data associated with the statistic information as specified by the request, and wherein the statistic data is converted into a generalized markup language (GML) format.
36. The system of claim 35, wherein the GML is extensible markup language (XML).
37. The system of claim 35, wherein the request to access the statistic information includes a request to view the statistic information, and wherein the GML formatted statistic information is viewed using an Internet browser.
38. The system of claim 35, wherein the statistic agent collects the statistic information from the system using the one or more forms by pulling the statistic information using one or more pullers.
39. The system of claim 35, wherein the GML formatted statistic information is stored in a database.
40. The system of claim 35, wherein the GML formatted statistic information includes incremental statistic information.
41. The system of claim 35, wherein the GML formatted statistic information includes absolute statistic information.
PCT/US2003/002528 2002-01-29 2003-01-28 Device monitoring via generalized markup language WO2003065238A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/060,581 US7685508B2 (en) 2001-05-15 2002-01-29 Device monitoring via generalized markup language
US10/060,581 2002-01-29

Publications (1)

Publication Number Publication Date
WO2003065238A1 true WO2003065238A1 (en) 2003-08-07

Family

ID=27658323

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/002528 WO2003065238A1 (en) 2002-01-29 2003-01-28 Device monitoring via generalized markup language

Country Status (2)

Country Link
US (1) US7685508B2 (en)
WO (1) WO2003065238A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155496B2 (en) 2001-05-15 2006-12-26 Occam Networks Configuration management utilizing generalized markup language
US7685508B2 (en) 2001-05-15 2010-03-23 Occam Networks Device monitoring via generalized markup language

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725233B2 (en) * 2001-05-15 2004-04-20 Occam Networks Generic interface for system and application management
US7774435B2 (en) * 2001-07-26 2010-08-10 Oracle America, Inc. System and method for batch tuning intelligent devices
US8402001B1 (en) * 2002-10-08 2013-03-19 Symantec Operating Corporation System and method for archiving data
US20040204778A1 (en) * 2003-01-06 2004-10-14 Harish Lalapeth Method for persisting SNMP MIB data in files
US20060184878A1 (en) * 2005-02-11 2006-08-17 Microsoft Corporation Using a description language to provide a user interface presentation
US7770124B2 (en) 2005-02-11 2010-08-03 Microsoft Corporation Using a description language to build a management system
US7823069B1 (en) * 2006-03-23 2010-10-26 Cisco Technology, Inc. Method and application tool for dynamically navigating a user customizable representation of a network device configuration
US8726259B2 (en) * 2007-04-09 2014-05-13 Kyocera Corporation System and method for preserving device parameters during a FOTA upgrade
US8694448B2 (en) * 2008-12-16 2014-04-08 At&T Intellectual Property I, L.P. Method and apparatus for providing an adaptive parser
US8745494B2 (en) * 2009-05-27 2014-06-03 Zambala Lllp System and method for control of a simulated object that is associated with a physical location in the real world environment
US20100306825A1 (en) * 2009-05-27 2010-12-02 Lucid Ventures, Inc. System and method for facilitating user interaction with a simulated object associated with a physical location
US10234852B2 (en) * 2010-06-30 2019-03-19 Ge Healthcare Bio-Sciences Corp. Batch authoring tool and bioreactor control system
WO2012003324A1 (en) * 2010-06-30 2012-01-05 Xcellerex, Inc. Batch authoring tool and bioreactor control system
US20120131432A1 (en) * 2010-11-24 2012-05-24 Edward Wayne Goddard Systems and methods for delta encoding, transmission and decoding of html forms
US20130293580A1 (en) 2012-05-01 2013-11-07 Zambala Lllp System and method for selecting targets in an augmented reality environment
US10387286B2 (en) 2016-06-30 2019-08-20 International Business Machines Corporation Managing configuration updates in a dispersed storage network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530852A (en) * 1994-12-20 1996-06-25 Sun Microsystems, Inc. Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics
US5911776A (en) * 1996-12-18 1999-06-15 Unisys Corporation Automatic format conversion system and publishing methodology for multi-user network
US6202072B1 (en) * 1997-05-08 2001-03-13 Jusystem Corp. Method and apparatus for processing standard generalized markup language (SGML) and converting between SGML and plain text using a prototype and document type definition
US6539422B1 (en) * 1998-05-04 2003-03-25 Intermec Ip Corp. Automatic data collection device having a network communications capability

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491796A (en) * 1992-10-23 1996-02-13 Net Labs, Inc. Apparatus for remotely managing diverse information network resources
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5861883A (en) * 1997-05-13 1999-01-19 International Business Machines Corp. Method and system for portably enabling awareness, touring, and conferencing over the world-wide web using proxies and shared-state servers
US6278994B1 (en) 1997-07-10 2001-08-21 International Business Machines Corporation Fully integrated architecture for user-defined search
US6345278B1 (en) * 1998-06-04 2002-02-05 Collegenet, Inc. Universal forms engine
US7136913B2 (en) 2000-05-31 2006-11-14 Lab 7 Networks, Inc. Object oriented communication among platform independent systems across a firewall over the internet using HTTP-SOAP
US20020124061A1 (en) 2000-11-27 2002-09-05 Paul Mossman Configuration system and method
US6978301B2 (en) * 2000-12-06 2005-12-20 Intelliden System and method for configuring a network device
US20020069271A1 (en) * 2000-12-06 2002-06-06 Glen Tindal Event manager for network operating system
US20020069367A1 (en) * 2000-12-06 2002-06-06 Glen Tindal Network operating system data directory
US7054946B2 (en) * 2000-12-06 2006-05-30 Intelliden Dynamic configuration of network devices to enable data transfers
US7249170B2 (en) * 2000-12-06 2007-07-24 Intelliden System and method for configuration, management and monitoring of network resources
US8219662B2 (en) * 2000-12-06 2012-07-10 International Business Machines Corporation Redirecting data generated by network devices
US20030018755A1 (en) 2001-03-30 2003-01-23 Masterson Robert J. Online system that facilitates configuration and administration of residential electronic devices
US7139834B1 (en) * 2001-04-26 2006-11-21 Avvenu, Inc. Data routing monitoring and management
US20060167985A1 (en) * 2001-04-26 2006-07-27 Albanese Michael J Network-distributed data routing
US6725233B2 (en) * 2001-05-15 2004-04-20 Occam Networks Generic interface for system and application management
US7685508B2 (en) 2001-05-15 2010-03-23 Occam Networks Device monitoring via generalized markup language
US7155496B2 (en) * 2001-05-15 2006-12-26 Occam Networks Configuration management utilizing generalized markup language
US7054901B2 (en) 2001-05-31 2006-05-30 Juniper Networks, Inc. Network management interface with selective rendering of output
US7181746B2 (en) 2001-06-29 2007-02-20 Intel Corporation Initialization, reconfiguration, and shut down of a module function

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530852A (en) * 1994-12-20 1996-06-25 Sun Microsystems, Inc. Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics
US5911776A (en) * 1996-12-18 1999-06-15 Unisys Corporation Automatic format conversion system and publishing methodology for multi-user network
US6202072B1 (en) * 1997-05-08 2001-03-13 Jusystem Corp. Method and apparatus for processing standard generalized markup language (SGML) and converting between SGML and plain text using a prototype and document type definition
US6539422B1 (en) * 1998-05-04 2003-03-25 Intermec Ip Corp. Automatic data collection device having a network communications capability

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155496B2 (en) 2001-05-15 2006-12-26 Occam Networks Configuration management utilizing generalized markup language
US7685508B2 (en) 2001-05-15 2010-03-23 Occam Networks Device monitoring via generalized markup language

Also Published As

Publication number Publication date
US20030110447A1 (en) 2003-06-12
US7685508B2 (en) 2010-03-23

Similar Documents

Publication Publication Date Title
US7155496B2 (en) Configuration management utilizing generalized markup language
US6725233B2 (en) Generic interface for system and application management
US7685508B2 (en) Device monitoring via generalized markup language
US6976262B1 (en) Web-based enterprise management with multiple repository capability
US5987513A (en) Network management using browser-based technology
EP1715619B1 (en) Generating MIBs from WMI classes
US6282568B1 (en) Platform independent distributed management system for manipulating managed objects in a network
US6505228B1 (en) Dynamic determination of execution sequence
US7882213B2 (en) Network management system to monitor managed elements
US7607137B2 (en) Integration of heterogeneous applications
US6205465B1 (en) Component extensible parallel execution of multiple threads assembled from program components specified with partial inter-component sequence information
US6128622A (en) IMS web studio taskguide
US6769124B1 (en) Persistent storage of information objects
US7146230B2 (en) Integrated fieldbus data server architecture
US6393472B1 (en) Automatic aggregation of network management information in spatial, temporal and functional forms
US5841972A (en) System using displayed configuration utility on monitor including list of target nodes, for administering interconnected nodes of computer network
US6772205B1 (en) Executing applications on a target network device using a proxy network device
US20050015714A1 (en) Storing objects in a spreadsheet
US6405365B1 (en) Computer program command generator and parser
US20030055862A1 (en) Methods, systems, and articles of manufacture for managing systems using operation objects
US20060123393A1 (en) User interface for network application
US20090063395A1 (en) Mapping log sets between different log analysis tools in a problem determination environment
Leppinen et al. Java-and CORBA-based network management
US9049044B1 (en) Method of management and distribution of device adapters for element management systems
US7499936B2 (en) Generic SNMP proxy

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP