WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Apparatus for remotely managing diverse information network resources    
United States Patent5491796   
Link to this pagehttp://www.wikipatents.com/5491796.html
Inventor(s)Wanderer; James (Mountain View, CA); Cooper; Claus (Mountain View, CA); Gerolimatos; Mark (San Carlos, CA); Chen; Michele (Mountain View, CA)
AbstractIn a data exchange network, in which various resources, such as hubs, routers, etc., distributed across the data exchange network are remotely controlled from a single point of maintenance, a consistent approach is provided for managing the network hardware resources. A set of consistent displays is provided for remote front panels allowing visual management of remote, heterogeneous devices, while also allowing the display of nongraphical data in a usable form. A common user interface allows operator control of the network, which may include many disparate types of equipment, supplied by various manufacturers. User definition of each network element is allowed based on a uniform vocabulary of element representations. A network management architecture provides a common development language for describing specific functions and attributes of network elements. Each element includes a protocol module which, in conjunction with a system engine, effects coordinated network control.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5491796
Apparatus for remotely managing diverse information network resources - US Patent 5491796 Drawing
Apparatus for remotely managing diverse information network resources
Inventor     Wanderer; James (Mountain View, CA); Cooper; Claus (Mountain View, CA); Gerolimatos; Mark (San Carlos, CA); Chen; Michele (Mountain View, CA)
Owner/Assignee     Net Labs, Inc. (Los Altos, CA)
Patent assignment
All assignments
Publication Date     February 13, 1996
Application Number     07/965,350
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 23, 1992
US Classification     709/224 709/220 718/102
Int'l Classification     G06F 011/30
Examiner     Kim; Ken S.
Assistant Examiner    
Attorney/Law Firm     Gray Cary Ware & Freidenrich
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/200 395/325 395/700 395/650
Patent Tags     remotely managing diverse information network resources
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5299207
Fujii
714/45
Mar,1994

[0 after 0 votes]
5261044
Dev
715/855
Nov,1993

[0 after 0 votes]
5261089
Coleman
707/8
Nov,1993

[0 after 0 votes]
5109486
Seymour
709/224
Apr,1992

[0 after 0 votes]
5101354
Mowers
700/92
Mar,1992

[0 after 0 votes]
4995035
Cole
370/254
Feb,1991

[0 after 0 votes]
4962473
Crain
340/541
Oct,1990

[0 after 0 votes]
4356475
Neumann
340/521
Oct,1982

[0 after 0 votes]
5200987
Gray
379/40
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. An apparatus for remotely managing diverse information network resources, comprising:

a plurality of heterogeneous, remote devices of functionally diverse classes, each device providing raw information in one of a plurality of heterogeneous formats, wherein said format is specific to each device and to each device functional class;

a protocol module located at a network management site and in communication with said remote devices for scheduling remote device polls to optimize remote device polling and minimize use of said information network;

a values module located at said network management site for storing data obtained by polling said remote devices, wherein said data are representative by events that occur at said remote devices as the events occur over time, said values module being operable to store, retrieve, and manipulate said raw information, said values module including a time stamp for use in connection with recording a time of occurrence of said remote device events, processing time varying data from said stored remote device events, and for storing common groupings of said raw information;

a nonprocedural builder module located at said network management site and operable to generate a data specification module; said data specification module located at said network management site and operable to store information that specifies device content and behavior for each of said heterogeneous, functionally diverse, remote devices in the form of a device specific representation, wherein said representation appears to a user in the same format for each device within a device functional class even though each functional class may include a plurality of heterogeneous remote devices;

an engine located at said network management site, said engine being operable to read information stored in said data specification module and to generate said device specific representation for each of said remote devices therefrom and, based on the contents of said data specification module and said raw information from said remote devices, to control operation of said remote devices, to enable polls of said remote devices by said protocol module, to process said raw information in accordance with said information stored in said data specification module, to process said common groupings of said raw information stored in said values module from two or more of said remote devices to generate information characterizing inter-device performance therefrom, and to generate poll results for each of said remote devices in the form of said device specific representations; and

a user interface module located at said network management site, and, responsive to said engine, for displaying said device specific representations of said remote devices at said network management site as a user controlled virtual panel.

2. The apparatus of claim 1, wherein said engine allows user configuration and control of said remote devices while viewing said device specific representation.

3. The apparatus of claim 2, wherein said protocol module issues simple network management protocol ("SNMP") requests to said remote devices.

4. The apparatus of claim 1, wherein said engine implements user directed control of remote device operational parameters.

5. The apparatus of claim 1, wherein said device specific representation is dynamically updated by said engine to provide current remote device information.

6. The apparatus of claim 1, wherein said device specific representation may be interactively updated by a user to display remote device specific information based on user demand.

7. A method for remotely managing an information network including a plurality of heterogeneous, remote devices of functionally diverse classes, each device providing raw information in one of a plurality of heterogeneous formats, wherein said format is specific to each device and to each device functional class, said method comprising the steps of:

scheduling remote device polls with a protocol module located at a network management site and in communication with said remote devices to optimize remote device polling and minimize use of said information network;

storing data obtained by said remote device polling, wherein said data are representative of events that occur at said remote devices with a values module located at said network management site as the events occur over time, said values module being operable to store, retrieve, and manipulate said raw information, said values module including a time stamp for recording a time of occurrence of said remote device events, processing time varying data from said stored remote device events, and for storing common groupings of said raw information;

generating a data specification module with a nonprocedural builder module located at said network management site;

storing information in said data specification module that specifies device content and behavior for each of said heterogeneous, functionally diverse, remote devices in the form of a device specific representation, wherein said representation appears to a user in the same format for each device within a device functional class even though each functional class may include a plurality of heterogeneous remote devices;

reading information stored in said data specification module with an engine located at said network management site;

generating said device specific representation for each of said remote devices with said engine;

with said engine, controlling operation of said remote devices, enabling polls of said remote devices by said protocol module, processing said raw information in accordance with said information stored in said data specification module, processing said common groupings of said raw information stored in said values module from two or more of said remote devices to generate information characterizing inter-device performance therefrom, and generating poll results for each of said remote devices in the form of said device specific representations; and

displaying said device specific representations of said remote devices as a user controlled virtual panel with a user interface module located at said network management site.

8. The method of claim 7, wherein said engine allows user configuration of said remote devices.

9. The method of claim 8, further comprising the step of: issuing simple network management protocol ("SNMP") requests to said remote devices with said protocol module.

10. The method of claim 7, further comprising the step of: allowing user setting of remote device operational parameters with said engine.

11. The method of claim 7, further comprising the step of: dynamically updating said representation with said engine to display current remote device information.

12. The method of claim 7, further comprising the step of: interactively updating said representation with said engine to display remote device information based on user demand.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to data transfer networks. More particularly, the present invention relates to remote management of network elements in a data transfer network.

2. Description of the Prior Art

Until recently, data processing meant batch processing using enormous mainframe computers. Mainframe computers contained all of the system intelligence and served this intelligence on a time sharing basis to a variety of dumb peripheral devices, such as terminals, printers, etc.

The centralization of batch processing and mainframe computing is now giving way to a society of intelligent users, such as workstations, servers, etc., distributed across a network. Thus, in modern data processing architecture the mainframe has been turned inside out. That is, each remote location in a modern network is a powerful individual, while the network is becoming a highly sophisticated interconnecting nervous system, akin to an internal mainframe bus in complexity, or perhaps even more complex.

The advantages of providing considerable computing power to individuals on their desktops are well recognized. As networks are required to handle increasing volumes of information, the network itself must become increasingly intelligent. The network must manage network traffic, network resources, user and management requests; it must detect failures and collisions, reroute traffic, and even repair itself. If this task were not formidable enough, the network must allow for the considerable diversity of network elements the many vendors of netware provide, in such manner that each and every network element not only communicates with other network elements, but so that network management is a straightforward and relatively simple task.

The state of the art provides many options to a network designer, including highly intelligent network devices, such as routers, switches, etc., that use the network to send status information to a net manager, and that may be configured remotely by commands issued from a network manager. Thus, the industry recognizes a standard network management protocol, the `simple network management protocol` ("SNMP"), by which the devices of different manufacturers may be controlled using a common command set and data format.

Devices that respond to and communicate with SNMP commands rely on manufacturer supplied agent management software that is resident in a network management data base. An example of such device is the AsanteHub 1012 10 BaseT hub and the AsanteView.TM. management software, manufactured by Asante Technologies of Sunnyvale, California.

The user interlace of each manufacturer's sortware for each agent has its own `look and feel.` Thus, although the protocols that each agent uses are the same, there is no commonly accepted user interface. The state of the art is such that the various proprietary software drivers are, at best, difficult for a network manager to use and maintain. For example, the user interface in most such drivers may or may not require the manipulation of strings of raw data, or the entry of data into crude forms. Thus, highly skilled personnel are required to perform a tedious and repetitive task.

Accordingly, a network administrator is faced with occupying maintenance personnel with the many problems attendant with inconsistent equipment models: redundant manipulation and entry of the same data in different formats, inconsistent and inaccurate network models, stale data as information from one piece of equipment does not track that of other equipment, slow operator response on a network level to equipment changes, new training is required for administrative personnel when a new piece of equipment is added to the network, etc., all in the context of many complex device drivers that are difficult and expensive to use and maintain.

A network failure carries the potential for significant damage to network users, e.g. through lost or miscommunicated data. Network administrator response is less than optimum when the administrator is expected simultaneously to recognize and respond to many different non-intuitive data presentations. Thus, present day network management technology does not reduce the likelihood of injury to a network user in the event of failure. Accordingly, such technology is at best at a crude state of development.

A single point of maintenance for network resources, much like a control tower at an airport, is necessary to assure efficient and secure use of the network. A consistent, intuitive representation of all network elements would allow decisions to be made on resource allocation, maintenance, etc. based on meaningful information.

SUMMARY OF THE INVENTION

The present invention provides a network management system in which various elements, such as hubs, routers, workstations, etc., distributed across a data exchange network are remotely controlled from a single point of maintenance.

The present invention provides a consistent approach for managing the hardware resources of a network. The present invention provides a set of consistent displays for remote front panels providing visual management of remote, heterogeneous devices, while also allowing non-graphical data to be displayed in a usable form.

At its highest architectural level, the present invention consists of three components: a compiler that allows the creation of device specification files (DSFs) from device specification language (DSL) specifications, an engine that allows remote management of these devices, and network agent-specific DSFs.

The engine reads a DSF created by the builder and produces a view of the agent for remote management. Therefore, multiple DSFs may be provided for the various devices in the network, using the same engine for each agent.

The device specification file defines the graphical view of the agent as multiple objects or hotspots. Depending on the properties of the hotspot, certain functions are available. For example, selecting a port allows additional monitoring and/or configuration to be performed; the agent may be polled for certain management information base (MIB) attributes which may be displayed in a table, graph, etc. Additionally, the present invention allows the abstraction of raw data to present agent information in otherwise unavailable formats.

System rules provide conventions by which network operational data representative of real time network activities may be modeled in a virtual environment. Timestamping and data caching assure that an accurate representation of the network is provided, while actual use of the network by the management system is minimized.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a network management system architectural model according to a preferred embodiment of the present invention;

FIG. 2 is a schematic drawing of a hypothetical front panel view for a hub according to a preferred embodiment of the present invention;

FIG. 3 is a block schematic representation of a values module architecture according to a preferred embodiment of the present invention;

FIG. 4 is a block schematic representation of a poll architecture according to a preferred embodiment of the present invention; and

FIG. 5 is a schematic drawing of a hypothetical report view according to a preferred embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention is best understood by referring to the Drawings in connection with review of this Description. The present invention provides a network management system that allows control of various network elements and processes from a single point of maintenance.

The present invention provides a consistent approach for managing the hardware resources of a network. In one embodiment, the invention is a set of consistent displays for remote front panels providing visual management of remote, heterogeneous devices.

As shown in FIG. 1, the present invention consists of three components: a compiler or builder 10 for producing graphical representations of remotely located vendor-specific devices (device specification files or "DSFs"), an engine 14 for the remotely managing these devices, and the DSFs 12a-12n.

The engine 14 reads the agent specification created by the compiler 10 and produces a view of the agent for remote management at a management location 11. The invention allows multiple device specification files 12a-12n, using the same engine to drive these files.

The device specification file defines the graphical view of the agent as multiple objects or `hotspots`. The invention provides certain functions, depending on the properties of the hotspot. For example, selecting a port allows additional monitoring and/or configuration of the port.

The agent may be polled for certain MIB attributes which may be displayed in a table, graph, etc. The polled attributes are static for a given DSF, but the display mechanism is user-selectable from a fixed set of options. Thus, information may be represented in otherwise unavailable formats. In particular, raw agent data may be processed to derive desired information in a desired format. A version identifier is stored in the DSF to assure compatibility with future versions of the engine.

Hardware. In the preferred embodiment of the invention, the engine runs on the Sun SPARCstation platform. There are many different platlorms for other embodiments of the invention that are possible and within the scope of the present invention. Such platforms may include, for example SCO, Int.sub.e l x86, RS6000, and others.

Development Tools. The preferred embodiment of the present invention is implemented in C++.

Architectural Model

High-Level Description. The present invention provides a consistent mechanism for managing heterogeneous devices. The engine 14, by supporting distinct devices through separate device specification files 12a-12n ("DSFs"), allows the user to remotely monitor and control diverse devices or agents 24a-24n in a consistent way.

The DSF includes powerful building blocks with which a useful management application for each network agent can be created. Typically, a visual representation of the front panel of a agent is developed, with certain pictorial elements, such as LEDs, given special functionality. These elements can be defined such that they are updated on a regular basis to give an accurate, visual view of the current state of the agent. Windows containing agent-specific information in tabular or graphical form can also be created using these building blocks.

An important feature provided by the present invention is data abstraction. The DSF can specify that information to be displayed be manipulated using a set of built-in operations provided by the engine. For example, rather than displaying the total number of collisions for a port, the present invention can instead display the percentage of collisions relative to the total number of packets for a port. This gives the user a significantly more useful view of the data available.

The present invention also provides poll optimization. If one piece of MIB data, for example, is displayed in several windows, the present invention optimizes the generation of polls so that only one poll is sent for that piece of data, rather than one poll for each window. In addition, the present invention transparently combines polls for different pieces of data whenever possible to limit the proliferation of polls, and thus minimize use of the network for management activities.

The engine also gives the user a form of security by providing two modes of operation: read-only and read-write, with a visual indicator of the current mode. The present invention can only be in one mode at any given time. Placing the present invention in read-only mode helps to prevent accidental configuration of the agent.

Brief Descriptions of Architectural Elements

Control. The control 16 is responsible for system startup and shutdown; it also registers "events" of global interest (e.g. reception of SNMP trap); receives requests from the user interface 18 ("UI") to issue SNMP set requests; and provides additional functionality, such as logging, configuration scripts, etc.

User Interface. The user interface 18 defines user interface component types, instantiating, and updating components; and implements some command functionality, such as open/close view, switch between read/read-write mode.

Device Specification Language ("DSL") Compiler. The DSL compiler or builder 10 is responsible for parsing of device specification files; and makes calls to the user interface and values modules (described in greater detail below) to set up component types, global values, and histories.

Values Module. The values module 20 is responsible for system internal storage and manipulation of information received from a remote agent.

Protocol Module. The protocol module 22 is responsible for communication with management targets 24a-24n (e.g. SNMP items).

The DSL and the User Interface Module

The DSL is used to create files which are compiled by the DSL compiler 10 to provide specifications from which the User Interface Module 18 registers component types defined in the DSF, configure the system dialogs, and instantiate or abstract specific components.

Type Registration. The DSF contains type definition records. These type definition records describe the information needed to create a new type. To register a new type, the record must describe the built-in type from which the defined type is sub-classed, as well as the name of the new type. The DSL Module parses this information, and then calls the function that registers a new type in the UI Module. An identifier is returned that allows the registration of other information (properties and rules) described in the type definition record.

Property Registration. During the parsing of a type definition record, after the new type has been registered, additional properties are defined. These properties are registered by name for the current type.

Rules Registration. Type definition records contain rules that are unique to the type they define. These rules define the value of specific properties and typically contain value expressions. Once the value expressions are parsed, and the expression is registered, the rule is registered with the UI Module. For example, a rule can be registered that sets the color of an LED based on the value of a set of attributes sampled from a remote agent.

Component Registration. Type definition records refer to other types as sub-components of the type being defined. This feature of the invention allows the construction of composite types. These components are referred to by type name. Geometry and instantiation information are also described. Given this information, a type may be registered as a sub-component of the defined type.

Component Instantiation

The construction of component instances from their registered type definitions is also governed by the rules described above. Thus, the structure of views can be dependent on the information obtained from the agent. Components having a dependency of this type are not constructed until type information is available.

Component Interaction

Component interact by reading the values of other components properties. Some of this interaction is set up and specified by the DSF, while other interactions are set up automatically.

DSL and the Values Module

DSL 10 processes information that contains various expressions. These expressions are supported by the Values Module 20. Thus, there is considerable use of the Values Module by DSL.

Parsing Expressions. The DSL decode module is responsible for parsing expressions. As expressions are parsed, the expression builder functions are called in a bottom-up manner. When the entire expression is parsed and built, then the expression may be registered with the expression evaluation module 46 (FIG. 3). The expression does not need to be registered unless other expressions refer to that expression.

The expression is registered if the function is declared to have a name. Once the expression is registered, the Values Module can retrieve an expression identifier by name when references are made in the DSF to that function name. Thus, the Values Module can function as a simple symbol table for expressions.

Some component types defined in the DSL have expressions that are used in some component-specific manner. In general, this expression type is not given a name. However, depending upon the component, the function name is registered with the Values Module. This allows the implementation of the component to refer to an expression by the expression identifier, rather than require the maintenance of pointers to expression structures. The DSL decode module supports either method.

Registering Histories. Some values must be collected over time, even when there are no views displayed that are interested in these values. For example, it may be necessary to access data that was available during the lifetime of the current system session to plot the change of a value over time in a graph. When implementing a DSF, it is possible to specify that some datum, or expression is kept as a history. Histories must be explicitly declared in the DSF. A history has an expression, the value of which is kept in the history. The history also has data indicating the desired sample rate, storage limits, and technique used for trading accuracy for storage space in past samples.

Expressions Referencing Component Properties. Properties can be referenced in expressions. This allows the values of properties to affect the values of other properties in a manner specified by the DSF. Properties of the current component are referred to by the property identifier. The DSL parsing module must map property names to property identifiers for the type currently being parsed.

User Interface Module

The user interface module 18 is responsible for providing much of the visible functionality of the present invention. The user interface module provides routines that create new component types, add properties to a component type, and add subcomponents to a component type. The DSL module makes calls to these routines as it reads the information provided in a device specification file.

The UI Module uses the interface provided by the Values Module. That is, the UI Module registers callbacks on changes in values maintained by the Values Module. In some cases, the UI Module acts as a source of data for the Values Module, e.g. text entered by the user is provided as data for the Values Module. The Values Module provides routines that perform input conversion. The Values Module is also responsible for evaluating the expressions that check the semantic validity of the user supplied information.

DSF Defined Component Types

New component types are defined in each device specification file. Defined types are generally instantiated for use in a system session, rather than built-in types. Defined types are derived directly from a built-in component type and inherits all functionality of the built-in type.

Device Specification. The DSF contains agent-specific information. It contains the object identifier (sysObjectlD in SNMP) of the devices that it supports, as well as the protocol to use to get information from the primary agent. There must always be a primary or super agent that knows about additional agents for a device, or additional protocols.

As devices are predefined to use some set of community strings for reading/writing groups of MIB objects, these groups and their associated community string identifier must also be defined in the DSF. This enables the display of a control window, including appropriate prompts when community strings are specified.

The DSF contains component information that defines the format of the picture. The actual picture depends on values obtained from the agent. The components are static upon instantiation; the values of the components vary. The DSF contains details on how to obtain data from agents (i.e. the MIB is contained in the DSF). Therefore, updated MIBs necessitate a new version of the corresponding DSF if support for additional MIB objects is required.

Compilation. A DSF is distributed for each agent supported by the engine. It contains all of the information necessary for the present invention to manage the agent type. Each DSF is translated by a compiler into an agent specification, which is used by the engine.

Registering Histories. Some values must be collected over time, even when there are no views displayed that are interested in these values. For example, a graph may want access to data that was available during the lifetime of the current session to plot the change of a value over time. A DSF may specify that some datum or expression is kept as a history. Histories must be explicitly declared in the DSF. A history has an expression, the value of which is kept in the history. It also has data indicating the desired sample rate, storage limits, and technique used for trading accuracy for storage space in past samples.

Protocol Support

SNMP is supported in the preferred embodiment of the invention. Support for other protocols, such as CMIP, is considered within the scope of the present invention.

Initiation. The invention can be invoked from the command line with optional parameters. When it is invoked without parameters, a control view is displayed which prompts the user for an agent name. The invention provides a field for the user to type in the agent name or IP address. Once the view for an agent has been successfully initiated, a new agent cannot be specified.

The protocol module 22 uses the host name to obtain the IP address of the host. An SNMP request is sent to the agent to identify the type of device. A unique piece of information is retrieved that allows the selection of the appropriate DSF. In the preferred embodiment of the invention this information is the System Object Identifier.

The DSFs are located in one or more directories. The system configuration file, created and/or updated upon installation by a separate utility, is used to identify the specific DSF.

Community strings may also be provided on the command line, for possible invocation from a network management platform. The engine assumes all community strings on SNMP devices are public, if community strings are provided on the command line, they become the defaults. A control window is also available from the user interface to modify the community strings used to communicate with the agent(s).

Configuration Files

In addition to information provided by DSL, the invention requires additional configuration information to operate. The configuration file provides mappings from Agent identifier to DSF.

System Oonfiguration. Mapping is satisfied by the system configuration file. This file is accessible to every user in a network who is running the invention; it is not customizable on a user-by-user basis. There is a list of mappings within the file, each of which contains the following:

Agent id to DSL Maps a type of agent to a DSF (SysObject ID in SNMP).

Component Definition

The component control module possesses functionality that supports component types defined in the DSF. This functionality is defined as follows:

Type Registration. New types of components must be registered for use in the system. This registration takes the following information:

name of the component type

identifier of the base type

Once the component type is registered, it can be referenced as a sub-component of another defined component type. Additional type parameters, such as additional properties, expressions for property values. sub-components, and sub-component instantiation rules can also be declared.

Addition of Properties. Once a component is initially registered, properties that are not included in the built-in type may be added by registering the properties. Registration involves the following information:

component type identifier

property name

Property registration returns a property identifier. The property identifier is unique for a specific property name across all component types. This allows property references contained in expressions to be fixed during the parsing of the expression.

Properties serve as state information for the component. They can be viewed as local variables for component instances. Properties of built-in types may have real functionality. The values of built-in properties may be interpreted by the implementation as information describing display attributes. For example, TEXT could be a property of a text symbol, and the value of TEXT could be a string that defines what text is displayed to the user.

Addition of Rules. Rules are statements of invariance that describe the value of properties, based upon information that can be referenced in an expression. A rule is in the form of "<property> is <expression>". Rules are added by rule registration, which includes the following information:

component type identifier

property identifier

expression identifier

argument bindings

Argument bindings are references to instance properties. These properties are set at instantiation. Instantiation properties may not change. Properties other than instantiation properties may not be used as arguments in rules, although the expression associated with a rule may reference properties. Argument bindings may also be constraints.

Addition of Sub-Components. A defined type may include sub-components that are not part of the base component type. The base components of the defined component must explicitly support the base component types of the sub-components. For example, a DSF might define a particular type of dialog with several text and label components, but not picture components. The base type dialog must explicitly support text and label components, but need not support picture components.

The addition of sub-components as a parameter of a defined type is done through sub-component registration. Registration involves the following information:

component type identifier

type identifier of the sub-component

geometry and positioning information

instantiation information

instance properties

Registration returns the sub-component identifier (note that this is not a type identifier). This identifier is unique for the defined component. Properties of the sub-component must be referenced by the sub-component identifier.

Component Interaction. Defined components interact in two ways. The first component interaction is by default to built-in behavior. For example, on the issuance of a configure command from the user, a configuration dialog interacts with associated sub-component text symbols to get the symbols' contents.

The second component interaction is by property values, and by interpreting the values of specific properties in expressions. Components may refer to the properties of their parents and their children in expressions. Such reference is accomplished by a built-in Values Module operation. This operation involves a component instance (only known after instantiation), a component identifier (sub-component, self, or parent) and a property identifier. The component instance is passed as an implicit argument to all expressions.

References to a Child's Properties. A sub-component must be identified to reference a property of a sub-component. In the invention, a property value retrieval procedure involves a sub-component identifier and a property identifier. As the property identifier is constant for all types, it is not necessary to know the type of the sub-component when constructing the expression. The expression has access to an implicit pass of a component instance argument. Thus, the sub-component identifier functions as a local reference for the object when referencing the child's property. Reference to a subcomponent property uses the function `read.sub.-- prop` in an expression (defined below).

References to a Parent's Properties. Parent type is not known until instantiation occurs. To construct an expression with a reference to a parent property at the time class definition occurs, it is necessary that all property identifiers be well known and based upon the property name, or that the property identifier be passed as an argument to the expression. The preferred embodiment of the invention employs constant property identifiers to construct the expression. Reference to a parent property occurs in an expression, using the function `read.sub.-- prop` (defined below).

Built-In Components. The engine portion of the invention includes a set of built-in components, each of which is implemented in a C++ class derived from a Component type base class. Specific descriptions of these components follow:

Graphs

Functionality

Properties

Window System Layer Function Calls

Protocol

Graph Server

User Interface Functionality

This section discusses the user inteface ("UI"). Two levels of UI functionality exist. At one level, the invention supports the definition and description of user intefaces which are tailored to a particular type of network agent.

A higher level, the invention provides UI functionality as seen by the end user. This includes what windows, or views, a user is shown when using the present invention, and the operations that a user can perform using invention.

Functionality Overview. The user inteface consists of a set of views (see FIG. 2, which is a schematic representation of a hypothetical front panel view for a hub). Each view is displayed as a separate window on the user's screen. A view provides access to a particular part of the invention's functionality. The primary functionality associated with a view falls into one of four categories:

1. Display of Information Retrieved from the Managed Device. This encompasses the display of raw and derived data, such as packet counts, error rates, bandwidth utilization, etc., in various forms.

2. Configuration of the Managed Device. The invention supports issuing of SNMP set requests.

3. Control. This encompasses such operations as setting operational parameters (e.g. system poll rate and community strings), quitting the application, etc.

4. Help. Help views contain detailed information describing the displayed data. They also display information describing possible operations from the view.

Some views are completely defined by the engine. The functionality and appearance of these views are independent of the particular type of agent managed. However, the majority of the views are tailored to a particular type of agent, and therefore are not completely defined and implemented by the engine. These agent specific view