Next Patent: Information storage and retrieval device
Next Patent: Information storage and retrieval device
[0001] 1.1 Field of the Invention
[0002] 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.
[0003] 1.2 The Related Art
[0004] 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.
[0005] 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 and APIs such as PMI, C++, GDMO, and ASN1. 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.
[0006] 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.
[0007] However, the provision of several programming tools would facilitate writing Java network management software and install those applications on systems using GDMO/CMIS objects. These tools include tools capable of translating JavaBean classes into their corresponding GDMO objects, a device to map GDMO 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.
[0008] 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.
[0009] In a fist 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.
[0010] 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.
[0011] 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.
[0012] 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 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.
[0013] 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.
[0014] These and other aspects and advantages will become apparent when the Description below is read in conjunction with the accompanying Drawings.
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031] 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.
[0032]
[0033] 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
[0034]
[0035] One embodiment of performing step
[0036] One embodiment of performing step
[0037] An embodiment for performing this last step is illustrated in greater detail in
[0038] More particularly, in one embodiment, step
[0039] One embodiment of the JDMK MPA
[0040]
[0041]
[0042] At step
[0043]
[0044] At step
[0045]
[0046]
[0047] The sequence of operations illustrated in
[0048] 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.
[0049] 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.
[0050] One embodiment of a method for the operation of the daemon provided by the present invention is illustrated in
[0051] If the event is a not JDMK object creation/deletion event, then, following the “No” branch of step
[0052] 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.
[0053] 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.
[0054] 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.
[0055] The present invention further relates to computer networks such as illustrated at
[0056]
[0057] 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.
[0058] 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.