Method and apparatus for shared management information via a common repository5787437Abstract A method and associated data constructs for sharing management information, stored in a common repository among multiple application programs. The present invention provides methods and structures for maintaining consistency and integrity of information shared among multiple application programs while allowing easier integration of management information relating to disparate aspects of enterprise management. Standard server programs are provided to serve client application programs by manipulating and retrieving information stored in the common repository. A meta-schema defines the structure of information stored in the common repository and permits extension of the information to incorporate data relevant to new application programs. In addition, tools are defined to permit developers to automate the creation of new server programs which manipulate and retrieve information stored in the common repository. The automatic generation of new server programs helps retain the consistency and integrity of management information achieved by application of the meta-schema structures. Claims What is claimed is: Description BACKGROUND OF THE INVENTION
______________________________________
Attribute name
Description Type Index
______________________________________
type.sub.-- name
field which identifies a particular
Varchar Key
resource aspect type
______________________________________
Other tables discussed below are keyed to the type.sub.-- name attribute 602 found in the RATYPE table 600 entries. RA table An RA table 604 of FIG. 6 contains information describing specific instances of topological objects of a particular resource aspect type. Such specific instances are referred to herein as resource aspects. Each entry in an RA table 604 contains a type.sub.-- name attribute 606, and an ra.sub.-- id attribute 608. The type.sub.-- name attribute 606 identifies the resource aspect type of the resource aspect instance. The ra.sub.-- id attribute 608 uniquely identifies the resource aspect as an object in the common repository 316. The attributes of the RA table 604 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
type.sub.-- name
field identifying the resource aspect
Varchar Key
type of the resource aspect
ra.sub.-- id
object identifier of the managed
UUID Key
resource aspect
______________________________________
RANAME table An RANAME table 610 of FIG. 6 contains information describing user supplied names associated with a particular resource aspect instance. Each entry in an RANAME table 610 contains an ra.sub.-- id attribute 612, and an aspect.sub.-- name attribute 614. The ra.sub.-- id attribute 612 uniquely identifies the resource aspect with which the RANAME entry is associated. The aspect.sub.-- name attribute 614 is a user supplied name by which the resource aspect is identified. The aspect.sub.-- name attribute 614 is used by topology management server programs to identify resource aspects which, in fact, refer to the same resource as named by the user. The attributes of the RANAME table 610 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
ra.sub.-- id
object identifier of the managed
UUID Key
resource aspect
aspect.sub.-- name
user supplied identifier for the
Varchar Key
resource aspect
______________________________________
RAINHERIANCE table An RAINHERITANCE table 616 of FIG. 6 contains information describing which resource aspect types are parents of each resource aspect type. In object oriented class definitions, a class definition inherits all attributes of its parents. Each resource aspect type defined in the RATYPE table 600 has zero or more parent entries identified in the RAINHERITANCE table 616. Each entry in the RAINHERITANCE table 616 contains a type.sub.-- name attribute 618, and a type.sub.-- name.sub.-- parent attribute 620. The type.sub.-- name attribute 618 identifies the resource aspect type for which the entry defines a parent type. The type.sub.-- name.sub.-- parent attribute 620 identifies the parent resource aspect type of the entry from which the entry inherits other attributes. The attributes of the RAINHERITANCE table 616 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
type.sub.-- name
field identifying the resource
Varchar Key
aspect type of the inheritance
entry
type.sub.-- name.sub.-- parent
field identifying the resource
Varchar Key
aspect type of the parent of
the resource aspect type of
the inheritance record
______________________________________
ASSOCIATION.sub.-- RULE table An ASSOCIATION.sub.-- RULE table 622 of FIG. 6 contains information describing rules for the formation of associations for each resource aspect type. Resource aspects of a particular resource aspect type may form associations with resource aspects according to the rules defined by entries in the ASSOCIATION.sub.-- RULE table 622 entries. Each entry in the ASSOCIATION.sub.-- RULE table 622 contains a type.sub.-- name attribute 624, a role attribute 626, a min attribute 628, a max attribute 630, and an assoc.sub.-- type.sub.-- name attribute 632. The type.sub.-- name attribute 624 identifies the resource aspect type for which the entry defines an association rule. The role attribute 626 identifies the user defined role of the resource aspect type in forming an association according to the defined rule. The min attribute 628 and the max attribute 630 define the minimum and maximum number of associations which may be formed by a resource aspect of the identified type with other resource aspects. The assoc.sub.-- type.sub.-- name attribute 632 identifies the resource aspect type of the other resource aspect with which the resource aspect of the identified resource aspect type may associate according to the defined rule. The attributes of the ASSOCIATION.sub.-- RULE table 622 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
type.sub.-- name
field identifying the resource
Varchar Key
aspect type of the association
rule
role entry identifier for the role
Varchar Key
which the identified resource
aspect fulfills in forming
the defined association
min minimum number of Numeric
associations the identified
resource aspect type
must form according to
this rule
max maximum number of Numeric
associations the identified
resource aspect type may
form according to this rule
assoc.sub.-- type.sub.-- name
field identifying the resource
Varchar Key
aspect type of the resource
aspect type with which the
defined association must be
formed
______________________________________
ASSOCIATION table An ASSOCIATION table 634 of FIG. 6 contains information describing associations actually formed between two resource aspects. Each entry in the ASSOCIATION table 634 contains an ra.sub.-- id.sub.-- 1 attribute 636, a role.sub.-- 1 attribute 638, an ra.sub.-- id.sub.-- 2 attribute 640, and a role.sub.-- 2 attribute 642. The ra.sub.-- id.sub.-- 1 attribute 636 identifies the first of the two resource aspects which participate in the association while the ra.sub.-- id.sub.-- 2 attribute 640 identifies the other. The role.sub.-- 1 attribute 638 and role.sub.-- 2 attribute 642 identify the user defined role of ra.sub.-- id.sub.-- 1 and ra.sub.-- id.sub.-- 2, respectively, in forming the association. The attributes of the ASSOCIATION table 634 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
ra.sub.-- id.sub.-- 1
object identifier of the first managed
UUID Key
resource aspect participating in the
association
role.sub.-- 1
identifier for the role which the first
Varchar Key
identified resource aspect fulfills in the
defined association
ra.sub.-- id.sub.-- 2
object identifier of the second managed
UUID Key
resource aspect participating in the
association
role.sub.-- 2
identifier for the role which the second
Varchar Key
identified resource aspect fulfills in the
defined association
______________________________________
TYPE.sub.-- ENFORCER table A TYPE.sub.-- ENFORCER table 644 of FIG. 6 contains information describing enforcer information associated with a particular resource aspect type. The enforcer is a method of defining additional rules in the creation and modification of the topological information. Rules beyond the simpler rules defined by the ASSOCIATION.sub.-- RULE table 622 entries may be added to a resource aspect type by entries in this table. Each entry in a TYPE.sub.-- ENFORCER table 644 contains a type.sub.-- name attribute 646, and a type.sub.-- enforcer.sub.-- id attribute 648. The type.sub.-- name attribute 646 uniquely identifies the resource aspect type with which the TYPE.sub.-- ENFORCER entry is associated. The type.sub.-- enforcer.sub.-- id attribute 648 is a user supplied object identifier used to invoke the enforcer when changes are made to the topological information. The attributes of the TYPE.sub.-- ENFORCER table 644 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
type.sub.-- name
field identifying the resource aspect
Varchar Key
type of the resource aspect
type.sub.-- enforcer.sub.-- id
user supplied identifier for the
UUID Key
enforcer object
______________________________________
RA.sub.-- ENFORCER table An RA.sub.-- ENFORCER table 650 of FIG. 6 contains information describing enforcer information associated with a particular resource aspect. The enforcer is a method of defining additional rules in the creation and modification of the topological information. Rules beyond the simpler rules defined by the ASSOCIATION.sub.-- RULE table 622 entries may be added to a resource aspect by the entries in this table. Each entry in an RA.sub.-- ENFORCER table 650 contains a ra.sub.-- id attribute 652, and an ra.sub.-- enforcer.sub.-- id attribute 654. The ra.sub.-- id attribute 652 uniquely identifies the resource aspect with which the RA.sub.-- ENFORCER entry is associated. The ra.sub.-- enforcer.sub.-- id attribute 654 is a user supplied object identifier used to invoke the enforcer when changes are made to the topological information. The attributes of the RA.sub.-- ENFORCER table 650 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
ra.sub.-- id
object identifier of the managed
UUID Key
resource aspect
ra.sub.-- enforcer.sub.-- id
user supplied identifier for the
UUID Key
enforcer object
______________________________________
Managed object schemas The topology schemas discussed above define standard structure and semantics for the storage and management of topological association information in the common repository 316. The topology information does not explicitly store the objects which are associated with one another. Rather, the objects are referred to only indirectly by reference to an object id attribute value representative of the stored object stored and managed elsewhere in the common repository 316 of the present invention. Objects managed by the structures and methods of the present invention are stored according to schemas which define standard structures for the storage of object attributes as well as historical, event, and trend information relating to the objects. The schemas which define the information and related structure for storing and managing objects are generally divided into two broad groups: class definition schemas and object instance schemas. The class definition schemas are depicted in FIG. 7 discussed below and define structure for storage of information which describes an object type class and, therefore, information which applies to all objects of that object type class. The object instance schemas are depicted in FIG. 8 discussed below and define structure for storage of information unique to a particular instance of an object of a particular object type class. Class definition schemas FIG. 7 depicts the general layout of schemas which define the structure of tables storing information about object type classes. The schema definitions depicted in FIG. 7 represent a union of many structures defined in alternative standards for object type class schema definition. Specifically the schemas of FIG. 7 incorporate features of object class definition languages including Guidelines for the Definition of Managed Objects (GDMO), Common Object Request Broker Architecture Interface Definition Language (CORBA IDL), and Concise Management Information Base (Conscise MIB). The GDMO object class definition language is defined by the International Telegraph and Telephone Consultative Committee (CCITT). Recommendation X.722/ISO/ITU 10165-4:1991 INFORMATION TECHNOLOGY--OPEN SYSTEMS INTERCONNECTION STRUCTURE OF MANAGEMENT INFORMATION--PART 4: GUIDELINES FOR DEFINITION OF MANAGED OBJECTS. The CORBA IDL object class definition language is defined by the Object Management Group, Inc. (located at: Framingham Corporate Center, 492 Old Connecticut Path, Framingham, Mass. 01701, and hereinafter referred to as OMG) and is documented in standard OMG publications as well as in X/Open Company's COMMON OBJECT REQUEST BROKER: ARCHITECTURE & SPECIFICATION (X/Open.RTM. Computer Aided Engineering (CAE) Specification C432 ISBN 1-85912-044-X--was previously publication P210, available from X/Open Company Ltd, Berks, United Kingdom, and hereinafter referred to as the CORBA specification). Concise MIB is defined by the Internet Engineering Task Force (IETF)--Network Working Group--RFC1212. Class information table All classes of objects managed by the present invention have an entry in the class information table 700. Each entry in the class information table 700 has a class.sub.-- name attribute 702, a creation.sub.-- time attribute 704, a specification.sub.-- type attribute 706, a metadata.sub.-- provider attribute 708, and a metadata.sub.-- key.sub.-- table attribute 710. The class.sub.-- name attribute 702 uniquely identifies the class definition entry in the class information table 700. The creation.sub.-- time attribute 704 stores the time of creation of the class definition entry. The specification.sub.-- type identifies the standard specification language used to define the class as described above. The present invention accommodates Concise MIB, GDMO, CORBA IDL, and other specification types. The metadata.sub.-- provider attribute 708 and metadata.sub.-- key.sub.-- table attribute 710 identify information required to interact with a process or entity which provides further information to define the class. The attributes of the class information table 700 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
class.sub.-- name
textual name of the class
Varchar Key
creation.sub.-- time
date that the class was
Date
created
specification.sub.-- type
type of the Enumerated
specification tool used to
define the class
metadata.sub.-- provider
name of entity which
Varchar
defined the class
metadata.sub.-- key.sub.-- table
name of class-to-
Varchar
metadata-key table for this
class name and
metadata.sub.-- provider
combination
______________________________________
Class reference table Entries in the class reference table 712 of FIG. 7 reference all tables that contain attribute values for a given class. Some class definitions require multiple tables to store their various attribute values for objects. One cause of this is very large class definitions whose combined attribute types extend beyond the per-entry storage limits of a particular database management subsystem which underlies the common repository 316 structure and methods of the present invention. Another cause for multiple tables to define a class derives from constructs used in certain class definitions which require additional tables to define the class. For example, the "SEQUENCE OF" and "SET OF" constructs in the GDMO specification language and the "Tables" construct in the Concise MIB definition language represent a list of values. Each time one of these constructs is encountered or when a lengthy class definition exceeds the per-entry length of the underlying database management subsystem, a subtable is required to store the data in the construct. The class reference table 712 has an entry for every subtable required to describe a particular class. All entries in the class reference table have a class.sub.-- name attribute 714, a subtable.sub.-- no attribute 716, a page.sub.-- no attribute 718, a parent.sub.-- attribute attribute 720, an instance.sub.-- table attribute 722, and a history.sub.-- table attribute 724. The class.sub.-- name attribute 714 identifies the class for which this entry represent a subtable. The attributes of the class reference table 712 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
class.sub.-- name
textual name of the class
Varchar Key
subtable.sub.-- no
a sequential count of subtable, the
Numeric
first is set to 1
page.sub.-- no
page number for attribute sets
Numeric Key
which exceed per-entry length,
initially set to 0 for new
subtable, incremented for each
additional page of a subtable
parent.sub.-- attribute
if subtable.sub.-- no >1,
Varchar
this identifies the parent
attribute containing the SET OF,
SEQUENCE OF or Table of
attributes
instance.sub.-- table
name of the table containing the
Varchar
attribute values for this
subtable attribute set
history.sub.-- table
name of the history table of
Varchar
attribute values, if any,
corresponding to the subtable
attribute set
______________________________________
Class history configuration table Entries in the class history configuration table 742 contain information regarding configuration data related to objects belonging to the corresponding class. Some common class objects store historical records of configuration data to log changes in configuration over time. Each entry in the class history configuration table 742 has a class.sub.-- name attribute 744, a retention.sub.-- threshold attribute 746, and a snapshot.sub.-- interval attribute 748. The class.sub.-- name attribute 744 of each entry identifies the class definition to which the configuration history entry belongs. The retention.sub.-- threshold attribute 746 indicates the duration of time for which the entry is valid, after which it may be purged. The snapshot.sub.-- interval attribute 748 indicates the regular period of time for which a new entry is to be created by appropriate management application or server programs of the present invention. The attributes of the class history configuration table 742 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
class.sub.-- name
textual name of the class
Varchar Key
retention.sub.-- threshold
Age beyond which entry may
Timestamp
be purged
snapshot.sub.-- interval
minimum time interval
Numeric
between creation of new
entries
______________________________________
Encoded class reference table Entries in the encoded class reference table 726 contain complex object type class related information in an encoded form to improve efficiency of manipulation and to reduce storage requirements within the common repository 316 of the present invention. Each entry in the encoded class reference table comprises a class.sub.-- name attribute 728, an encode.sub.-- data.sub.-- table attribute 730, and an encode.sub.-- history.sub.-- table attribute 732. The class.sub.-- name attribute 728 of each entry identifies the class definition to which the encoded class reference entry belongs. The encode.sub.-- data.sub.-- table attribute 730 contains the name of another table with encoded data for the object class type. The encode.sub.-- history.sub.-- table attribute 732 contains the name of another table with encoded history information for the object type class. The attributes of the encoded class reference table 726 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
class.sub.-- name
textual name of the class
Varchar Key
encode.sub.-- data.sub.-- table
name of table containing encoded
Varchar
data
encode.sub.-- history.sub.--
name of table containing encoded
Varchar
table history
______________________________________
Class-to-metakey table Entries in the class-to-metakey table 734 contain information which provides access to metadata for the identified object class type definition. This information is typically provided, if at all, by server programs which make metadata available from the class definition specifications. Each entry in the class-to-metakey table has a class.sub.-- name attribute 736, a metadat.sub.-- key attribute 738, and other attributes 740. The class.sub.-- name attribute 728 of each entry identifies the class definition to which the encoded class reference entry belongs. The metadata.sub.-- key attribute 738 and the other attributes 740 provide implementation specific information appropriate to the form of metadata provided by the class definition tools and the related server programs. The attributes of the class history configuration table 726 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
class.sub.-- name
textual name of the class
Varchar Key
metadata.sub.-- key
key to access provider of metadata
other attributes
other provider specific attributes
______________________________________
Object instance schemas FIG. 8 depicts the general layout of schemas which define the structure of tables storing information about specific instances of an object type class (i.e. specific objects of a particular type class). Managed object table Entries in the managed object table 800 contain identification information for managed objects stored in the common repository 316 and managed by application and server programs. There is at least one entry in the managed object table 800 for each object stored and managed by the present invention. Each entry in the managed object table has an oid attribute 802, a class.sub.-- name attribute 804, a creation.sub.-- time attribute 806, and a modified.sub.-- time attribute 808. The oid attribute 802 identifies the object which corresponds to the managed object entry. The class.sub.-- name attribute 804 identifies the object type class to which the managed object belongs. The creation.sub.-- time attribute 806 and modified.sub.-- time attribute 808 store the time of creation and last modification of the managed object, respectively. If an object belongs to more than one object type class then there are multiple entries in the managed object table with the same oid attribute 802 but different class.sub.-- name attributes 804. The attributes of the managed object table 800 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
oid object identifier of the object
UUID Key
class.sub.-- name
instance textual name of the
Varchar Key
class
creation.sub.-- time
time at which the object
Date
instance was created
modification.sub.-- time
time of last modification
Timestamp
of the object instance
______________________________________
Class instance table Entries in the class instance table 810 consist of information relating object instances which belong to the object type class with which the table is associated. Each class instance table 810 is referenced by the instance.sub.-- table attribute 722 of the class reference table 712 discussed above with reference to FIG. 7. Each entry in the class instance table 810 has an oid attribute 812, and a variable number of other attributes 814. The oid attribute 812 identifies the object which corresponds to the class instance entry. The variable number of other attributes 814 are specific to the object instance represented by the class instance table entry. The attributes of the class instance tables 810 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
oid object identifier of the object instance
UUID Key
other attributes
other attributes specific to the object
instance
______________________________________
Class history tables Entries in the class history tables 820 consist of historical attribute values of object instances which belong to the object type class with which the table is associated. Each class history table 820 is referenced by the history.sub.-- able attribute 724 of the class reference table 712 discussed above with reference to FIG. 7. Each entry in the class history table 820 has an oid attribute 822, a date attribute 824, and a variable number of other attributes 826. The oid attribute 822 identifies the object which corresponds to the class history entry. The variable number of other attributes 826 are specific to the object instance represented by the class history table entry. The attributes of the class history tables 820 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
oid object identifier of the object instance
UUID Key
date date at which object instance had the
Date Key
following attribute values
other attributes
other attributes specific to the object
instance
______________________________________
Class encoded data tables Entries in the class encoded data tables 832 consist of encoded information relating to object instances which belong to the object type class with which the table is associated. Each class encoded data table 832 is referenced by the encode.sub.-- data.sub.-- table attribute 730 of the encoded class reference table 726 discussed above with reference to FIG. 7. Each entry in the class encoded data table 832 has an oid attribute 834, a segment.sub.-- no attribute 836, and a variable number of other attributes represented as encoded.sub.-- value attribute 838. The oid attribute 834 identifies the object which corresponds to the class encoded data entry. The segment.sub.-- no attribute 836 indicates which portion of the encoded attributes are represented by this entry (if the encoded.sub.-- value attribute 838 exceeds the length permitted for a single entry). The variable number of other attributes in encoded.sub.-- value attribute 838 are specific to the object instance represented by the class encoded data table entry. The attributes of the class encoded data tables 832 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
oid object identifier of the object instance
UUID Key
segment.sub.-- no
segment number of this portion of the
Numeric Key
encoded.sub.-- value if its total length
exceeds one entry's maximum length
encoded.sub.-- value
other attributes specific to the object
instance in an encoded form
______________________________________
Class encoded history table Entries in the class encoded history tables 840 consist of encoded historical attribute values relating to object instances which belong to the object type class with which the table is associated. Each class encoded history table 840 is referenced by the encode.sub.-- history.sub.-- table attributed 732 of the encoded class reference table 726 discussed above with reference to FIG. 7. Each entry in the class encoded history table 840 has an oid attribute 842, a date attribute 844, a segment.sub.-- no attribute 846, and a variable number of other attributes represented as encoded.sub.-- value attribute 848. The oid attribute 842 identifies the object which corresponds to the class encoded history entry. The segment.sub.-- no attribute 846 indicates which portion of the encoded attributes are represented by this entry (if the encoded.sub.-- value attribute 848 exceeds the length permitted for a single entry). The variable number of other attributes in encoded.sub.-- value attribute 848 are specific to the object instance represented by the class encoded history table entry. The attributes of the class encoded history tables 840 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
oid object identifier of the object instance
UUID Key
date the date at which this object had these
Date Key
encoded attribute values
segment.sub.-- no
segment number of this portion of the
Numeric Key
encoded.sub.-- value if its total length
exceeds one entry's maximum length
encoded.sub.-- value
other attributes specific to the object
instance in an encoded form
______________________________________
Historical Trend Schemas Historical trend schemas are depicted in FIG. 9 and define structure for the storage of data collected over time which is related to managed objects stored in the common repository 316 of the present invention. Application and server programs manipulate the trend data to perform required management analysis tasks. The schemas depicted in FIG. 9 for the collection of trend data are intended only as exemplary embodiments of normalized schemas organized for the collection and retrieval of such data. In certain management tasks it is necessary to insert and retrieve trend data very rapidly due to data rates associated with the particular object instance related to the trend data. In such circumstances, application and server programs may require adaptation of more specialized schemas better tuned to the particular performance or capacity goals of the particular object. The trend data schemas depicted in FIG. 9 consist of four interrelated tables. The trend description tables 900 describe the measurements (i.e. variables) to be monitored. The trend dataset tables 908 describe the data set or data streams for which the variables are to be measured. The last two tables, raw trend data tables 918 and reduced trend data tables 928, store the actual trend data measured by server programs and stored for further analysis by application programs. Trend description tables Entries in the trend description tables 900 define the variables to be measured for a particular trend analysis. Each trend description table entry has a descript.sub.-- id attribute 902 and a variable number of other attributes 904. The descript.sub.-- id attribute 902 is a unique id generated by the application programs which utilize the trend data to identify a particular variable to be measured. The other attributes 904 are unique to the particular trend analysis application and server programs which defined the variable to be measured. The attributes of the trend description tables 900 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
descript.sub.-- id
a unique identifier for this trend
Numeric Key
variable
. . . attributes . . .
other attributes specific to the
measured variable
______________________________________
Trend dataset tables Entries in trend dataset tables 908 contain information to map a trend description table 900 entry and an object to a specific data set identifier into which the measured data is stored. Each entry in the trend dataset table 908 has an oid attribute 910, a descript.sub.-- id attribute 912, a dataset.sub.-- id attribute 916, and other.sub.-- attributes 914 unique to the particular object and/or variable being monitored. The oid attribute 910 identifies an object instance (described above with respect to FIG. 8) to be monitored for purposes of collecting trend data. The descript.sub.-- id attribute 912 identifies the data to be gathered from the identified object. The descript.sub.-- id attribute 912 corresponds to an entry in the trend description tables 900 described above. The dataset.sub.-- id attribute 916 uniquely identifies the data set tables which store the collected date gathered from the identified object with respect to the identified trend description variable. The attributes of the trend dataset tables 908 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
oid identifier of the managed object to
UUID Key
be monitored
descript.sub.-- id
identifier for the trend variable
Numeric Key
to be monitored
other.sub.-- attributes
other attributes unique to the
specific variable or object
being monitored
dataset.sub.-- id
a unique identifier of the dataset
Numeric
tables in which to collect trend data
______________________________________
Raw trend data tables Entries in the raw trend data tables 918 contain the actual data collected by monitoring the identified trend description variable with respect to the identified object. Each entry in the raw trend data tables 918 has a dataset.sub.-- id attribute 920, a sample.sub.-- time attribute 922, a period attribute 924, and a value attribute 926. All entries having the same value for the dataset.sub.-- id attribute 920 are part of the dataset identified by the corresponding trend dataset table 908 described above. The sample.sub.-- time attribute 922 indicates the time at which the measurement ended. The period attribute 924 indicates the length of the time period over which the measurement was taken. The value attribute 926 indicates the value of the identified measurement. The attributes of the raw trend data tables 918 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
dataset.sub.-- id
identifier of this dataset
Numeric Key
sample.sub.-- time
time at which this measurement
Timestamp Key
ended
period length of time period of this
Numeric
measurement
value value of this measurement
Numeric
______________________________________
Reduced trend data table The reduced trend data table 928 contains identical attributes to the raw trend data table 918 described above but replaces the value attribute 926 with reduced values computed from the raw values measured in the raw data table 918 described above. Each entry in the reduced trend data tables has a dataset.sub.-- id attribute 930, a sample.sub.-- time attribute 932, a period attribute 934, a min value attribute 936, a max.sub.-- value attribute 938 and an avg.sub.-- value attribute 940. All entries having the same value for the dataset.sub.-- id attribute 930 are part of the dataset identified by the corresponding trend dataset table 908 described above. The sample.sub.-- time attribute 932 indicates the time at which the measurement ended. The period attribute 934 indicates the length of the time period over which the measurement was taken. The min.sub.-- value attribute 936, max.sub.-- value attribute 938, and avg.sub.-- value attribute 940 indicate the minimum, maximum, and average values, respectively, of the measured variable of the identified object. The attributes of the reduced trend data tables 930 are defined as follows:
______________________________________
Attribute name
Description Type Index
______________________________________
dataset.sub.-- id
identifier of this dataset
Numeric Key
sample.sub.-- time
time at which this measurement
Timestamp Key
ended
period length of time period of this
Numeric
measurement
min.sub.-- value
minimum value of this measure-
Numeric
ment over the specified period
max.sub.-- value
maximum value of this measure-
Numeric
ment over the specified period
avg.sub.-- value
average value of this measure-
Numeric
ment over the specified period
______________________________________
SNMP trend data example The trend data schemas described above with respect to FIG. 9 may be better understood with the aid of an example. SNMP is a well known network management protocol used to manage and monitor network configuration and performance. The following tables describe the trend data related tables as applied to the monitoring of a typical SNMP measurement. SNMP trend description table
______________________________________
Attribute name
Description Type Index
______________________________________
descript.sub.-- id
a unique identifier for this trend
Numeric Key
variable
mib.sub.-- oid
SNMP MIB variable object identifier
Varchar Key
units units of measure of the monitored
Varchar
variable
title title for this SNMP MIB variable
Varchar
descript description for this SNMP MIB
Varchar
variable
______________________________________
SNMP trend dataset table
______________________________________
Attribute name
Description Type Index
______________________________________
oid identifier of the managed object to be
UUID Key
monitored
descript.sub.-- id
identifier for the trend variable to be
Numeric Key
monitored
instance the instance of the SNMP MIB object
Numeric Key
id
dataset.sub.-- id
a unique identifier of the dataset
Numeric
tables in which to collect trend data
______________________________________
The raw trend data and reduced trend data tables for the above described SNMP trend data example are as described above with respect to FIG. 9. SERVER PROGRAMS AND DEVELOPMENT TOOLS The methods of the present invention include standard server programs to manipulate the common repository 316 of the present invention. All information stored in the common repository 316 adheres to the structure of the meta-schema as defined above. The standard server programs of the present invention provide services on behalf of management client application programs. Only server programs directly store, retrieve, and manipulate the information pertaining to managed objects in the common repository 316. Application programs requiring storage, retrieval, or manipulation of information request such services from a server program appropriate to the information request. This helps assure the integrity and consistency of the information relating to managed objects in the common repository 316. The mechanisms by which an application program (often referred to as a client) communicates with a server program are a matter of design choice by the implementor of the present invention. Several standard techniques are well known to those of ordinary skill in the art. The standard servers provided by the present invention include a topology service (as discussed in co-pending U.S. patent application Ser. No. HPDN 1,094,626), a trend data collection and reduction service to measure and record data relating to particular aspects of managed objects, and a historical attribute service to record a history of changes in attributes of managed objects stored in the common repository 316. Many client application programs may be constructed using these standard service programs in conjunction with the data structures defined by the meta-schema. When a particular application program requires retrieval or manipulation of information in the common repository 316 which is not supported by the standard server programs, the present invention permits development of new server programs by a software developer. Tools provided in the present invention accept a high level, object oriented class definition of the information to be manipulated by a management application program. The object oriented class definition is provided in the form of a preliminary IDL language description. The IDL language is specified in the X/OPEN CORBA document discussed above. A server generation development tool of the present invention receives the preliminary IDL object class definition and creates a database schema for the underlying database management subsystem used by the methods of the present invention to store and retrieve information regarding the newly defined object class. The database schema is constructed according to the standards defined by the meta-schema described above. Information relating to the new object class will be stored and retrieved according to the structure imposed by the database schema definition. The database schema is in turn constructed according to the dictates of the meta-schema structure. This construction of the underlying database schema aids in enforcing the desired integrity and consistency of the information stored and manipulated in the common repository 316. In addition, the server generation development tool generates a working skeleton of the source code for a server program to perform basic manipulations of the objects defined by the preliminary IDL language. The server program source code generated is "skeletal" in the sense that it performs only the basic functions of creating, destroying, updating, and retrieving information associated with the objects defined by the preliminary IDL object class definition. Further application specific or sophisticated manipulation of the newly defined objects is left to the development engineers. If only the basic functions discussed above are required, then the "skeletal" server program generated by the server program development tool is complete and functional. The newly generated server program, when functional, helps assure the integrity and consistency of the manipulation of information and objects stored in the common repository 316. The generated server program adheres to, and enforces the standard structures for storage defined by the meta-schema. Application programs access information regarding the newly defined objects stored in common repository 316 only by requesting supported services through server programs generated in accord with the meta-schema and IDL object class type definitions. This structure enables integration of information among otherwise disparate management application programs. All information stored in the common repository 316 adheres to the structure defined by the meta-schema discussed above. Integrity and consistency of the information stored is improved over past designs because standardized data constructs are manipulated only by standardized server programs. FIG. 10 shows the flow of information in the operation of the server program generation tool. Server generation tool 1000 accepts as input the preliminary object class IDL 1002. Server generation tool 1000 implicitly utilizes the meta-schema 1004 in processing the IDL 1002 input. The preliminary object class IDL 1002 specifies the object attributes and associated functions. Server generation tool 1000 generates three pieces of information as output for further processing, IDL 1006, skeleton server program 1010, and DBMS schema 1014. IDL 1006 is an adaptation of the preliminary object class IDL 1002 which is modified by server generation tool 1000 to adhere to the constructs and rules defined by the meta-schema 1004. The adapted IDL 1006 is used as input by a standard IDL language compiler 1008 to generate source code segments for a client application program 1020 and for a skeleton server program 1010. IDL language compiler 1008 may be any of several standard IDL compilers commercially available. Release 1.3 of the SUNSOFT OMG IDL Compiler Front End (CFE) available from the Object Management Group (address supplied above) is typical of such an IDL compiler tool for creating source code segments from an IDL language specification of an object class. Skeleton server program 1010 is produced by the combined source code segments output from server generation tool 1000 and IDL compiler 1008. The skeleton server program 1010 is applied as input to the build server 1012 process which creates the actual executable server program 1022. Build server 1012 process is typically a standard source code compiler such as a C++ compiler provided with most UNIX.RTM. workstations. DBMS schemas 1014 are produced by server generation tool 1000 and applied as input to the create DBMS 1016 process. The create DBMS 1016 process is supplied as a component of the underlying database management system which physically stores the information managed within the common repository 316. The actual DBMS tables 1026 are created by the create DBMS 1016 process and adhere to the structure dictated by the meta-schema 1004. The application developer utilizes the elements 1000-1016 on the left side of the dashed vertical line. There has been described methods and structure for a common repository to share management information. It should be understood that the particular embodiments shown in the drawings and described within this specification are for purposes of example and should not be construed to limit the invention which will be described in the claims below. Further, it is evident that those skilled in the art may now make numerous uses and modifications of the specific embodiments described, without departing from the inventive concepts. For example, the data constructs described herein could be implemented in a variety of well known software data structures. Furthermore, the methods described herein could be modified to manipulate a variety of data structures for storing information. Or equivalent structures and processes may be substituted for the various structures and processes described. Consequently, the invention is to be construed as embracing each and every novel feature and novel combination of features present in, or possessed by, the methods and structure described.
|
Same subclass Same class Consider this |
||||||||||
