software, systems, and methods for facilitating the development and implementation of computer network management software containing java-based instructions is provided. In one aspect, the invention includes a system for implementing java-based software network management objects configured to implement computer network management functions on a computer network. In one embodiment, the system of the invention includes a computer network management information server. The network management server performs communications using a first computer network management communications protocol. The system further includes a java development management kit ("JDMK") methods protocol adapter ("MPA") that is configured to translate the first computer network management communications protocol into a JDMK communications protocol. A JDMK agent that is configured to communicate with the JDMK MPA using the JDMK communications protocol also is included.
|
6. A method for controlling computer network management software including java-defined objects and methods installed on a computer network, comprising the steps of:
a. translating said java-defined objects and methods into a gdmo compliant computer network communications protocol or language; b. creating a document including said translated java-defined objects and methods; c. installing said document in a management information server; d. configuring an object in said management information server representing said computer network management software; and e. communicating with said computer network management software using said management information server via said object.
9. A computer-readable medium comprising computer-readable programs, said computer-readable programs being configured to cause a computer to implement the computer-controlled steps of:
a. translating java-defined objects and methods contained in a computer network management software device into a gdmo compliant computer network communications protocol and language; b. creating a document including said translated java-defined objects and methods; c. installing said document in a management information server; d. configuring an object in said management information server representing said computer network management software; and e. communicating with said computer network management software using said management information server via said object.
1. A system for implementing java-based software network management objects configured to implement computer network management functions on a computer network, comprising:
a. a computer network management information server configured to send and receive computer network management communications using a first computer network management communications protocol, said management information server being coupled with b. a java development management kit methods protocol adapter configured to translate said first computer network management communications protocol into a java development management kit communications protocol, wherein said java development management kit methods protocol adapter comprises: i. an object hierarchy traversal mechanism, said management information tree traversal mechanism being configured to traverse hierarchical JDMK agent and object data structures; said object hierarchy traversal mechanism being coupled with ii. a first translation mechanism configured to translate computer instructions encoded in a first computer instruction language into a java native interface computer instruction language; said first translation mechanism being coupled with iii. a second translation mechanism configured to translate computer instructions encoded in a java native interface computer instruction language into a java development management kit computer instruction language; said java development management kit methods protocol adapter being coupled with c. a java development management kit ("JDMK") agent configured to communicate with said java development management kit methods protocol adapter using said java development management kit communications protocol.
15. A system for implementing java-based software network management objects configured to implement computer network management functions on a computer network, comprising:
a. a computer network management information server configured to send and receive computer network management communications using a first computer network management communications protocol, said management information server being coupled with b. a java development management kit methods protocol adapter configured to translate said first computer network management communications protocol into a java development management kit communications protocol, wherein said java development management kit methods protocol adapter comprises: i. an object hierarchy traversal mechanism, said management information tree traversal mechanism being configured to traverse hierarchical JDMK agent and object data structures; said object hierarchy traversal mechanism being coupled with ii. a first translation mechanism configured to translate computer instructions encoded in a first computer instruction language into an intermediate computer language comprising java computer instruction language; said first translation mechanism being coupled with iii. a second translation mechanism configured to translate computer instructions encoded in a java computer instruction language into a java development management kit computer instruction language; said java development management kit methods protocol adapter being coupled with c. a java development management kit ("JDMK") agent configured to communicate with said java development management kit methods protocol adapter using said java development management kit communications protocol.
2. The system of
3. The system of
4. The system of
5. The system of
7. The method of
a. determining whether said java-defined objects and methods are included in a package having a package name; b. naming said document using said package name if it is determined that said package has a package name; and c. naming said document using a default package name if it is determined that said package does not have a package name.
8. The method of
a. mapping each java-defined object class of said computer network management software onto a corresponding gdmo class; b. mapping each getter, setter, and isxxx statements of said computer network management software into a corresponding gdmo statement; c. mapping each event-specific class of said computer network management software into a corresponding gdmo statement; and d. mapping each perform method of said computer network management software into a corresponding gdmo statement.
10. The computer-readable medium of
a. determining whether said java-defined objects and methods are included in a package having a package name; b. naming said document using said package name if it is determined that said package has a package name; and c. naming said document using a default package name if it is determined that said package does not have a package name.
11. The computer-readable medium of
a. mapping each java-defined object class of said computer network management software onto a corresponding gdmo class; b. mapping each getter, setter, and isxxx statements of said computer network management software into a corresponding gdmo statement; c. mapping each event-specific class of said computer network management software into a corresponding gdmo statement; and d. mapping each perform method of said computer network management software into a corresponding gdmo statement.
12. A computer data signal on a carrier wave containing instructions configured to cause a computer to perform the steps of
13. A computer data signal on a carrier wave as recited in
14. A computer data signal on a carrier wave as recited in
|
1.1 Field of the Invention
The present invention relates to computer network architectures, and, more specifically, to software for managing computer and communications networks. More particularly, the present invention provides software, systems, and apparatus for managing software entities and hardware over a computer network. The present invention has applications in the areas of computer science, computer network management, and computer software.
1.2 The Related Art
The demands on computer network managers have grown exponentially as the size and extensiveness of computer networks has grown over the past decade. Starting from the relatively simple task of maintaining communication among a relatively small number of mainframe computers, network managers must now coordinate operations among thousands of computers, printers, servers, and other networked devices. With the advent of the Java® and Jini™ programming languages, even household devices will soon become linked over computer networks running on household "intranets" that in turn are linked to the worldwide Internet. Thus, there appears to be no end in sight to the increasing burden on network managers.
To control and coordinate the software associated with the myriad of networked computers and other devices, network managers employ software designed to track, establish communications with, and control various software entities or processes that exist independently or represent the networked devices. Entities that represent networked devices are also referred to herein as "agents". The software used by the network manager interacts with various "platform-level" software services to enable the network manager to locate and interact with the various entities running on the network. Various services are provided to identify the entities, retrieve needed data about the properties and states of the entities, and store that information for use by other entities and user applications. In particular, a topology service is used to store information about the entities and devices and their relationships.
Generally, production of software for network use is cumbersome and expensive. For example, to create the various software applications, agents, and other entities resident on the network, programmers have to be fluent in languages standards, guidelines, and syntax and APIs such as PMI, C++, GDMO (Guidelines for Definition of Managed Objects), and ASN1 (Abstract Syntax Notation One). The new software then has to be debugged prior to installation, and, once installed, creates a new level of complexity for the network manager. Production of such software is expensive, as relatively few programmers have the requisite familiarity with the diverse and arcane languages required to write network software. Once written, additional expenses are incurred in the cycle of debugging and upgrading.
The Java programming language has emerged as a tool for producing software efficiently. In particular, the combination of Java programming code and the Java Virtual Machine ("JVM") allows the creation of platform-independent software that can be installed dynamically and/or remotely. Thus, the use of Java-coded network software applications, agents, and other entities can alleviate the above-described expenses and difficulties associated with producing network management software using traditional languages and methods. In addition, the Java programming language is richer than the languages used currently to provide network management software. Thus, Java-based software management software application, agents, and entities having more functionality can be developed.
However, the provision of several programming tools would facilitate writing Java network management software and install those applications on systems using GDMO compliant CMIS (Common Management Information Services) objects. These tools include tools capable of translating JavaBean classes into their corresponding GDMO compliant objects, a device to map GDMO compliant CMIS requests into JavaBean Java Dynamic Management Kit ("JDMK"), and a mechanism to translate JDMK JavaBean events to CMIS notifications. Therefore, it would be beneficial to provide such tools for producing Java-based computer network management software. The present invention meets these and other needs.
The present invention meets the above-described needs by providing, in one aspect, programming tools that facilitate writing and incorporating Java network management software for computer and communications network management architectures. The software, systems, and methods provided by the present invention will thus allow computer network programmers and managers easier access to the benefits provided by the Java programming language. These benefits include faster development time, greater access to programmer talent, and easier implementation.
In a first aspect, the present invention provides a system for implementing Java-based software network management objects configured to implement computer network management functions on a computer network. In one embodiment, the system of the invention includes a computer network management information server configured to send and receive computer network management communications. The network management server performs communications using a first computer network management communications protocol. The system further includes a Java development management kit ("JDMK") methods protocol adapter ("MPA") that is configured to translate the first computer network management communications protocol into a JDMK communications protocol. A JDMK agent that is configured to communicate with the JDMK MPA using the JDMK communications protocol also is included.
In another embodiment, the JDML MPA includes an object hierarchy traversal mechanism that is configured to traverse hierarchical JDMK agent and object data structures. The JDMK MPA further includes a first translation mechanism configured to translate computer instructions encoded in a first computer instruction language into a Java native interface ("JNI") computer instruction language. A second translation mechanism configured to translate computer instructions encoded in a Java native interface computer instruction language into a Java development management kit computer instruction language is also included. The first computer instruction language can be C++, and, more specifically, Java, but is not so limited. In a more specific embodiment, the object hierarchy traversal mechanism is coupled with, and configured to communicate with, the management information server. The second translation mechanism is coupled with, and configured to communicate with, the Java development management kit agent. In other embodiments the first- and second translation mechanisms are configured to be accessed directly.
In another aspect, the present invention includes a method for controlling computer network management software that include Java-defined objects and methods. In one embodiment, a method of the invention includes the step of translating Java-defined objects and methods into a computer network communications protocol or language. A document including these translated objects and methods is created and installed in a management information server. An object located in the management information server is configured to represent the computer network management software. This object is used to communicate with the computer network management software.
In a more specific embodiment, the network communications protocol or language is GDMO. In another embodiment, each Java-defined object class of the computer network management software maps onto a corresponding GDMO class. Each getter, setter, and isxxx statement of the computer network management software into a corresponding GDMO statement. Event-specific class and perform method of the computer network management software is mapped into a corresponding GDMO statement.
In another aspect, the present invention provides computer-readable media and data signals that are configured to cause a computer to perform the computer-implemented steps of translating Java-defined objects and methods into a computer network communications protocol or language. The computer-readable media and signals further include code devices configured to cause a computer to create a document including these translated objects and methods and install the document in a management information server. The computer-readable media and signals further include code devices configured to cause a computer to configure and locate an object in the management information server to represent the computer network management software. This object is used to communicate with the computer network management software.
These and other aspects and advantages will become apparent when the Description below is read in conjunction with the accompanying Drawings.
The present invention provides software, methods, and systems for producing network management software, agents, and entities using the Java programming language. More particularly, the present invention provides tools capable of translating JavaBean classes into their corresponding GDMO objects, devices to map GDMO CMIS requests into JavaBean Java Dynamic Management Kit ("JDMK"), and mechanisms to translate JDMK JavaBean events to CMIS notifications. These tools, devices and mechanisms enable the production an installation of Java-based network management software.
Between the Application layer and the Hardware layer is the Platform layer. This layer comprises network management software designed to allow the network administrator operating an application such as UI 102 access to entities and devices on the network. The network management software also operates to enable communications among various entities installed on the network, including event communications. In one embodiment, the network communications are handled by a central Management Information Server ("MIS") 104 that coordinates messages sent between entities running on each of the network layers, and, in particular, UI 102 and Device 106. MIS 104 interacts with various services for network management in addition to other services, including Message Protocol Adapters ("MPAs") 108, 112, and 116. Each MPA is configured to handle communications in a particular protocol (e.g., CMIS, JDMK, or SNMP) and each is coupled with a corresponding Agent that is coupled with one or more devices. Thus, SNMP Device 106 communicates with MIS 104 via SNMP Agent 114 and SNMP MPA 116. Each Agent has a corresponding Object stored in the MIS, such as Object 120, to enable management of the Agent using the MIS. It will be appreciated by those having skill in the computer science and network arts that different communications architectures can be used without departing from the invention.
One embodiment of performing step 208 of
One embodiment of performing step 302 of
An embodiment for performing this last step is illustrated in greater detail in FIG. 5. At step 502, each Java class defined for the Agent is mapped to a corresponding GDMO class. In one embodiment, the GDMO class name is derived by taking the class names of the Java classes and changing any instances where the first letter of the Java class name is an upper-case letter to the corresponding lower-case letter. In addition, the conversion includes mapping the Java classes, that conform to the Bean Specification as known to those of skill in the compute science arts, to GDMO-managed object class that include object classes having attributes (as will also be familiar to those of skill in the computer science arts). According to one embodiment, any Java super classes or private classes are ignored in the mapping. At step 504, all "getter", "setter", and "isxxx" statements (where "xxx" is a Boolean value being tested) are translated to corresponding GDMO statements.
More particularly, in one embodiment, step 504 includes analyzing the getters to determine attribute values. For example, if the getter is coupled with a setter, then the corresponding GDMO attribute is "read/write". If the getter is not paired with a setter, then the corresponding GDMO attribute is "read only". If an unpaired setter is found, then the statement is ignored. At step 506 all event-specific statements are mapped to their corresponding GDMO notification statements. Finally, at step 508 all "performxxx" methods are translated to an equivalent GDMO action template. The arguments of the "perform" methods are used as input syntax; the arguments of the return methods are used as reply syntax. "Isxxx" statements are mapped to GDMO Boolean-type xxx statements According to one embodiment of the invention, a separate GDMO Document is created for each named package. In another embodiment, a single default-named GDMO Document is created for holding all translated objects from unnamed packages.
One embodiment of the JDMK MPA 112 shown in
domain: package.class.attr=val, attr=val . . .
At step 922, a JDMK Create command is forwarded, and, at step 924, the object is created.
At step 1014 a connection is opened to the agent. Following step 1014, or the "Yes" branch of step 1010, the supported classes are retrieved from the Agent Object at step 1016 at which time the scope is implemented. At step 1018 any filter that has been included for the get request is applied to those classes that meet the scope conditions. After step 1016 and/or step 1018 the retrieved N object classes, are examined serially as illustrated by the loop shown at 1020 and 1028 in which a determination is made as to whether an attribute (or attributes) are defined for the nth object at step 1022. If no attribute(s) are defined for the nth object, then, following the "No" branch of step 1022 to step 1024, the name of the object is retrieved. Following step 1024 or the "Yes" branch of step 1022, the objects are retrieved by class at step 1026. When the loop operation is completed, then the objects are translated to GDMO as described above at step 1030. A response is returned at step 1032.
The sequence of operations illustrated in
In another aspect, the present invention provides a daemon process to update dynamically any changes made to the MPA/Agent architecture using the methods illustrated above.
In another aspect, the present invention provides a daemon process to update dynamically any changes made to the MPA/Agent architecture using the methods illustrated above.
One embodiment of a method for the operation of the daemon provided by the present invention is illustrated in FIG. 14. Starting at 1402, the daemon performs a scope/get for JDMK agent objects using the MIS as described above. At step 1404, the daemon connects to a JDMK agent object. At step 1406, the daemon registers to receive notice of any changes made to the object using, e.g., the methods described above, and, at steps 1408 listens for any such notification. If a notification is received, then, following the "Yes" branch of step 1410, a GDMO name for the event is created at step 1412. A notification for the event type is created at step 1414. At step 1416, a determination is made whether the event is a JDMK object creation/deletion event. If the event is not a JDMK object creation/deletion event, then, following the "Yes" branch of step 1416, the event is forwarded at step 1418 and the manage object instance is set at 1428 as described below.
If the event is a not JDMK object creation/deletion event, then, following the "No" branch of step 1416, a determination is made whether additional text methods need to be retrieved at step 1420. If such additional text methods need to be retrieved, then following the "Yes" branch of step 1420 to step 1422, an "Additional Text Attribute" flag is set to the return value and the process moves to step 1426 as described below. Otherwise, the "No" branch of step 1420 is followed to step 1424 where the text methods are concatenated and, at step 1426, the perceived severity for the event is set. If a get perceived severity statement is included, then the perceived is the return value for that getter. Otherwise a default value is used. The managed object instance is then set at step
Further, the manipulations performed are often referred to in terms such as identifying, running, or comparing. In any of the operations described herein that form part of the present invention these operations are machine operations. Useful machines for performing the operations of the present invention include general-purpose digital computers or other similar devices. In all cases, there should be borne in mind the distinction between the method of operations in operating a computer and the method of computation itself. The present invention relates to method steps for operating a computer in processing electrical or other physical signals to generate other desired physical signals.
The present invention also relates to an apparatus for performing these operations. This apparatus may be specially constructed for the required purposes, or it may be a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. The processes presented herein are not inherently related to any particular computer or other apparatus. In particular, various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given below.
In addition, the present invention further relates to computer readable media that include program instructions for performing various computer-implemented operations. The media and program instructions may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer readable media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; holographic storage arrays, and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that can be executed by the computer using an interpreter.
The present invention further relates to computer networks such as illustrated at 1500 in FIG. 15. There, a server 1502 (which can be a plurality of servers depending on the network configuration) provides network data and management resources for operating network 1500. In one embodiment, the network management software provided by the present invention, in particular, the above-described Name Service is installed and operated from server 1502. Various devices and entities reside on and communicate over the network. These devices and entities include, but are not limited to, client computers 1504, data storage devices 1506, modems and other communications devices 1508, printers other hardcopy input/output devices 1510, and connections to the Internet (which is shown generally at 1512). All of these devices communicate with each other over network backbone 1514. Still other common network devices not shown include hub, routers, packet switchers, switches, hosts, bridges and the like. As noted above, each of these devices can include one or more drivers, agents, and/or proxies that are managed by network management computers such as illustrated at 1502.
Thus, the present invention will be seen to provide an efficient, scalable, and modular software, systems, and methods for providing JDMK support to manage devices and other entities on a computer and communications networks. Using the software, systems, and methods described herein name services large, complex networks can be implemented efficiently. More particularly, the present invention provides mechanisms and software to implement versatile and powerful Java-based processes by network agents and objects. Thus, the software, methods, and systems provided by the present invention greatly facilitate the development of tools to manage computer networks and thereby facilitate management of such networks.
Although certain embodiments and examples have been used to describe the present invention, it will be apparent to those having skill in the art that various changes can be made to those embodiment and/or examples without departing from the scope or spirit of the present invention. For example, it will be appreciated from the foregoing that many steps of processing can be implemented in a sequence different from that described herein without altering the invention. In addition, various naming conventions can be used in conjunction with the naming service without significant change to the systems, software, or methods described herein.
Nelson, Jonathan, Spencer, David, Angal, Rajeev, Nelson, Jamie
Patent | Priority | Assignee | Title |
11809839, | Jan 18 2022 | Computer language and code for application development and electronic and optical communication | |
6654759, | Nov 26 1999 | Bull S.A. | Method for access via various protocols to objects in a tree representing at least one system resource |
6779151, | Jan 05 2001 | Microsoft Technology Licensing, LLC | Storing objects in a spreadsheet |
6883164, | Dec 15 2000 | International Business Machines Corporation | Strategy for dynamically modeling ASN.1 data to an object model |
7089340, | Dec 31 2002 | Intel Corporation | Hardware management of java threads utilizing a thread processor to manage a plurality of active threads with synchronization primitives |
7099890, | Jan 05 2001 | Microsoft Technology Licensing, LLC | Storing objects in a spreadsheet |
7127517, | Dec 27 2000 | International Business Machines Corporation | Protocol adapter framework for integrating non-IIOP applications into an object server container |
7162711, | Dec 12 2002 | Oracle America, Inc | Method of automatically virtualizing core native libraries of a virtual machine |
9256654, | Dec 07 2007 | Microsoft Technology Licensing, LLC | Dynamic schema content server |
Patent | Priority | Assignee | Title |
5787437, | Oct 29 1996 | Hewlett-Packard Company | Method and apparatus for shared management information via a common repository |
6061721, | Oct 06 1997 | Oracle America, Inc | Bean-based management system |
6066181, | Dec 08 1997 | ANALYSIS & TECHNOLOGY, INC | Java native interface code generator |
6134581, | Oct 06 1997 | Oracle America, Inc | Method and system for remotely browsing objects |
6145126, | Dec 11 1997 | Fujitsu Limited | Apparatus and method for installing software and recording medium storing program for realizing the method |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 04 1998 | Sun Microsystems, Inc. | (assignment on the face of the patent) | / | |||
Jan 14 1999 | NELSON, JAMIE | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009729 | /0695 | |
Jan 14 1999 | NELSON, JONATHAN | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009729 | /0695 | |
Jan 14 1999 | SPENCER, DAVID | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009729 | /0695 | |
Jan 14 1999 | ANGAL, RAJEEV | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009729 | /0695 | |
Feb 12 2010 | ORACLE USA, INC | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037278 | /0612 | |
Feb 12 2010 | Sun Microsystems, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037278 | /0612 | |
Feb 12 2010 | Oracle America, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037278 | /0612 |
Date | Maintenance Fee Events |
Jan 06 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Dec 30 2009 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jan 02 2014 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jul 30 2005 | 4 years fee payment window open |
Jan 30 2006 | 6 months grace period start (w surcharge) |
Jul 30 2006 | patent expiry (for year 4) |
Jul 30 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 30 2009 | 8 years fee payment window open |
Jan 30 2010 | 6 months grace period start (w surcharge) |
Jul 30 2010 | patent expiry (for year 8) |
Jul 30 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 30 2013 | 12 years fee payment window open |
Jan 30 2014 | 6 months grace period start (w surcharge) |
Jul 30 2014 | patent expiry (for year 12) |
Jul 30 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |