Extensible network management system
First Claim
1. A method of preparing a computer program for execution in relation to a particular network device among a plurality of network devices having a plurality of device types, the method comprising the steps of:
- storing a plurality of executable program components;
storing a first mapping of at least one of the device types to at least one overridden executable program component and at least one overriding executable program component;
determining a current device type from among the device types;
storing a subset of the plurality of executable components corresponding to the current device type according to a final execution order associated with the current device type; and
in the final execution order, substituting the overriding executable component for the overridden executable component when the current device type is found in the first mapping.
2 Assignments
0 Petitions
Accused Products
Abstract
In a network management system, a method and apparatus for preparing a computer program for execution in relation to a particular network device among a plurality of network devices having a plurality of device types is provided. Each network device is associated with a device type value, and each network device has an associated device mapper. The device mappers are stored in a hierarchical structure that reflects a functional relationship or family relationship of the devices. Functions to be carried out by one or more devices are expressed as a plurality of executable program components. Preferably, each executable program component has one or more classes that define executable functions. Each device mapper associates a device type value with one or more overridden classes in the executable program components and one or more overriding classes. At runtime, device type values are acquired for each device in the managed network. For each device type, one or more functions are assembled using only the executable program components associated with that device type. Based on the device mapper of that device type, classes in the executable program components are overridden and the overriding classes are substituted. As a result, at runtime the network management system integrates into itself executable program components for new devices.
464 Citations
44 Claims
-
1. A method of preparing a computer program for execution in relation to a particular network device among a plurality of network devices having a plurality of device types, the method comprising the steps of:
-
storing a plurality of executable program components;
storing a first mapping of at least one of the device types to at least one overridden executable program component and at least one overriding executable program component;
determining a current device type from among the device types;
storing a subset of the plurality of executable components corresponding to the current device type according to a final execution order associated with the current device type; and
in the final execution order, substituting the overriding executable component for the overridden executable component when the current device type is found in the first mapping. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
identifying the particular network device in a network that includes the plurality of network devices; and
obtaining a unique device identifier value from the particular network device through the network.
-
-
3. The method recited in claim 2, further comprising the steps of:
computing and storing an index value based on the unique device identifier value.
-
4. The method recited in claim 3, further comprising the steps of:
-
storing a plurality of mappings, each mapping associated with one of the device types, each mapping comprising at least one of the device types in association with at least one overridden program component, and at least one overriding program component; and
selecting one of the plurality of mappings for use as the first mapping, based on the index value.
-
-
5. The method recited in claim 4, wherein the step of storing a plurality of mappings in includes the step of storing the plurality of mappings in a hierarchical arrangement that is based upon a hierarchical relationship of the device types.
-
6. The method recited in claim 5, wherein the step of storing a plurality of mappings in a hierarchical arrangement includes the step of storing the plurality of mappings in a directory tree structure, wherein the directory tree structure reflects a hierarchical relationship of the device types.
-
7. The method recited in claim 4, wherein each mapping comprises values of overridden program components and overriding program components for functional differences of only with the device type that is associated with such mapping.
-
8. The method recited in claim 1, in which each of the program components is a class defined using an object-oriented programming language.
-
9. The method recited in claim 1, in which each of the program components is a functional unit comprising at least one class defined in an object-oriented programming language.
-
10. The method recited in claim 1, in which the particular network device is characterized by one version among several versions.
-
11. The method recited in claim 10, further comprising the steps of:
-
storing a plurality of mappings of at least one of the device types to at least one overridden executable program component and at least one overriding executable program component, wherein each of the plurality of mappings is associated with one of the versions, and wherein the plurality of mappings is organized as at least one parent device mapping and at least one child device mapping that inherits changes from the parent device mapping;
automatically distributing version-specific changes to one of the mappings automatically so that a version-specific set of changes is specified only once and all child device mappings automatically participate in the change.
-
-
12. An apparatus as recited in claim 1, further comprising instructions for carrying out the steps of:
-
identifying the particular network device in a network that includes the plurality of network devices; and
obtaining a unique device identifier value from the particular network device through the network.
-
-
13. An apparatus as recited in claim 12, further comprising instructions for carrying out the steps of computing and storing an index value based on the unique device identifier value.
-
14. An apparatus as recited in claim 13, further comprising instructions for carrying out the steps of:
-
storing a plurality of mappings, each mapping associated with one of the device types, each mapping comprising at least one of the device types in association with at least one overridden program component, and at least one overriding program component; and
selecting one of the plurality of mappings for use as the first mapping, based on the index value.
-
-
15. An apparatus as recited in claim 14, wherein the instructions for carrying out the step of storing a plurality of mappings include instructions for carrying out the step of storing the plurality of mappings in a hierarchical arrangement that is based upon a hierarchical relationship of the device types.
-
16. An apparatus as recited in claim 15, wherein the instructions for carrying out the step of storing a plurality of mappings in a hierarchical arrangement include instructions for carrying out the step of storing the plurality of mappings in a directory tree structure, wherein the directory tree structure reflects a hierarchical relationship of the device types.
-
17. An apparatus as recited in claim 16, wherein each mapping comprises values of overridden program components and overriding program components for functional differences of only with the device type that is associated with such mapping.
-
18. A method of assembling a computer program based on a plurality of functional units, each functional unit comprising at least one executable program component that is associated with a device in a network, the method comprising the steps of:
-
(A) obtaining a device identifier from the device;
(B) creating and storing a device-specific container for a set of the executable program components that are associated with the device;
(C) mapping at least one of the executable program components to an overriding executable program component in association with the device identifier; and
(D) integrating the overriding executable program component into the device-specific container. - View Dependent Claims (19, 20, 21, 22, 23)
discovering a plurality of network devices in a managed network; performing steps (A) through (D) with respect to each of the plurality of network devices.
-
-
20. The method as recited in claim 19, wherein step (C) includes the steps of:
-
storing a plurality of mappings, each mapping associated with a device type value that identifies a type of one or more of the network devices, each mapping associated with one of the device type values, each mapping comprising at least one of the device type values in association with at least one overridden program component and an overriding program component; and
selecting one of the plurality of mappings for use in the mapping step, based on the device identifier.
-
-
21. The method recited in claim 20, wherein the step of storing a plurality of mappings includes the step of storing the plurality of mapping in a hierarchical arrangement that is based upon a hierarchical relationship of the device types.
-
22. The method recited in claim 21, wherein the step of storing a plurality of mappings in a hierarchical arrangement includes the step of storing the plurality of mappings in a directory tree structure, wherein the directory tree structure reflects a hierarchical relationship of the device types.
-
23. The method recited in claim 22, further including the steps of:
-
locating a first directory in the directory tree structure that corresponds to the device identifier;
traversing the directory tree structure, depth-first, and at each sub-directory of the first directory;
retrieving one of the plurality of mappings stored therein; and
integrating each overriding executable component identified in such mapping into the container.
-
-
24. A computer-readable medium carrying one or more sequences of instructions for preparing a computer program for execution in relation to a particular network device among a plurality of network devices having a plurality of device types, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
storing a plurality of executable program components;
storing a first mapping of at least one of the device types to at least one overridden executable program component and at least one overriding executable program component;
determining a current device type from among the device types;
storing a subset of the plurality of executable components corresponding to the current device type according to a final execution order associated with the current device type; and
in the final execution order, substituting the overriding executable component for the overridden executable component when the current device type is found in the first mapping. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
identifying the particular network device in a network that includes the plurality of network devices; and
obtaining a unique device identifier value from the particular network device through the network.
-
-
26. A computer-readable medium as recited in claim 25, further comprising instructions for carrying out the steps of computing and storing an index value based on the unique device identifier value.
-
27. A computer-readable medium as recited in claim 26, further comprising instructions for carrying out the steps of:
-
storing a plurality of mappings, each mapping associated with one of the device types, each mapping comprising at least one of the device types in association with at least one overridden program component, and at least one overriding program component; and
selecting one of the plurality of mappings for use as the first mapping, based on the index value.
-
-
28. A computer-readable medium as recited in claim 27, wherein the instructions for carrying out the step of storing a plurality of mappings include instructions for carrying out the step of storing the plurality of mappings in a hierarchical arrangement that is based upon a hierarchical relationship of the device types.
-
29. A computer-readable medium as recited in claim 28, wherein the instructions for carrying out the step of storing a plurality of mappings in a hierarchical arrangement include instructions for carrying out the step of storing the plurality of mappings in a directory tree structure, wherein the directory tree structure reflects a hierarchical relationship of the device types.
-
30. A computer-readable medium as recited in claim 29, further comprising instructions wherein each mapping comprises values of overridden program components and overriding program components for functional differences of only with the device type that is associated with such mapping.
-
31. A computer-readable medium as recited in claim 24, further comprising instructions in which each of the program components is a class defined using an object-oriented programming language.
-
32. A computer-readable medium as recited in claim 24, further comprising instructions in which each of the program components is a functional unit comprising at least one class defined in an object-oriented programming language.
-
33. An apparatus for preparing a computer program for execution in relation to a particular network device among a plurality of network devices having a plurality of device types, comprising:
-
means for storing a plurality of executable program components;
means for storing a first mapping of at least one of the device types to at least one overridden executable program component and at least one overriding executable program component;
means for determining a current device type from among the device types;
means for storing a subset of the plurality of executable components corresponding to the current device type according to a final execution order associated with the current device type; and
means for, in the final execution order, substituting the overriding executable component for the overridden executable component when the current device type is found in the first mapping. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41)
means for identifying the particular network device in a network that includes the plurality of network devices; and
means for obtaining a unique device identifier value from the particular network device through the network.
-
-
35. An apparatus as recited in claim 34, further comprising means for computing and storing an index value based on the unique device identifier value.
-
36. An apparatus as recited in claim 35, further comprising:
-
means for storing a plurality of mappings, each mapping associated with one of the device types, each mapping comprising at least one of the device types in association with at least one overridden program component, and at least one overriding program component; and
means for selecting one of the plurality of mappings for use as the first mapping, based on the index value.
-
-
37. An apparatus as recited in claim 36, wherein the means for storing a plurality of mappings includes means for storing the plurality of mappings in a hierarchical arrangement that is based upon a hierarchical relationship of the device types.
-
38. An apparatus as recited in claim 37, wherein the means for storing a plurality of mappings in a hierarchical arrangement includes means for storing the plurality of mappings in a directory tree structure, wherein the directory tree structure reflects a hierarchical relationship of the device types.
-
39. An apparatus as recited in claim 38, wherein each mapping comprises values of overridden program components and overriding program components for functional differences of only with the device type that is associated with such mapping.
-
40. An apparatus as recited in claim 33, in which each of the program components is a class defined using an object-oriented programming language.
-
41. An apparatus as recited in claim 33, in which each of the program components is a functional unit comprising at least one class defined in an object-oriented programming language.
-
42. An apparatus for preparing a computer program for execution in relation to a particular network device among a plurality of network devices having a plurality of device types, comprising:
-
one or more processors;
one or more storage devices that are accessible to the processors for storing data therein;
one or more sequences of instructions stored in the one or more storage devices, which instructions, when executed by the one or more processors, cause the one or more processors to carry out the steps of;
storing a plurality of executable program components;
storing a first mapping of at least one of the device types to at least one overridden executable program component and at least one overriding executable program component;
determining a current device type from among the device types;
storing a subset of the plurality of executable components corresponding to the current device type according to a final execution order associated with the current device type; and
in the final execution order, substituting the overriding executable component for the overridden executable component when the current device type is found in the first mapping. - View Dependent Claims (43, 44)
-
Specification