1. Field of the Invention
This invention relates to computer management software and more specifically to software used to manage multiple types of computer operating system environments.
2. Description of Related Art
Many low-level management subsystems exist on different computing platforms. Examples of low-level management subsystems include the Resource Monitoring and Control (RMC) subsystem available on AIX and Linux systems, and IBM Director (agents and servers) which are available on multiple platforms. These lower level system management subsystems each have their own system management software interfaces and do not provide a common interface for system management applications to access the low-level system management functions and allow aggregation of data from these low-level management subsystems. Each system management application in these systems is required to have embedded logic and processing in their classes and code to access the low-level management subsystems. This requirement restricts the ability of system management applications to reuse the code of the processing software that accesses the low-level management subsystems, even though these multiple system management applications are all performing the same functions or aggregating the same data from the low-level management system. An example includes the Web-based System Manager (WebSM) applications that accessed functions and aggregated data from an RMC subsystem. Although the processing logic and code to access the RMC subsystem in this example had been developed and is embedded inside the WebSM application classes, this processing logic is not able to be reused by new applications (such as, for example, Virtualization Engine Console and grid services) even though these applications are required to perform some of these same functions. These new applications are required to re-implement and re-code the same logic to access the RMC subsystem that had already been developed by the WebSM applications.
As system management applications are evolving to manage a heterogeneous set of systems (e.g., AIX, Linux, Windows, etc.), these system management applications will be required to access multiple low-level management systems (e.g., RMC, IBM Director, etc.) and therefore will be required to re-develop the processing software used to access the low-level management systems.
Therefore a need exists to overcome the problems with the prior art as discussed above.
Briefly, in accordance with the present invention, a computer implemented method for administering a plurality of computer systems includes accepting at least one generic system administration request and converting the at least one generic system administration request into at least one system specific system administration request selected from a plurality of control instruction sets. The at least one system specific system administration request executes on part of a plurality of computer operating systems. The computer implemented method further includes communicating the at least one specific system administration request to at least one computer system that executes the at least one system specific system administration request.
In another aspect of the present invention, a service software library includes an interface for accepting a generic system administration request and a service library that converts the at least one generic system administration request into at least one system specific system administration request selected from a plurality of control instruction sets that each execute on part of a plurality of computer operating systems. The service software library further includes a node interface that communicates the at least one specific system administration request to at least one computer system that executes the at least one system specific system administration request.
The foregoing and other features and advantages of the present invention will be apparent from the following more particular description of the preferred embodiments of the invention, as illustrated in the accompanying drawings.
The subject matter that is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features and also the advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings. Additionally, the left-most digit of a reference number identifies the drawing in which the reference number first appears.
Referring now in more detail to the drawings in which like numerals refer to like parts throughout several views,
In addition to the remote node system management computer 102, the exemplary computing system network architecture 100 further includes other computing systems or nodes, i.e., Node A 106, Node B 108 and Node C 110. Node A 106 in this example is shown as operating under the Linux operating system. Node B 108 in this example is shown as operating under the AIX operating system available from IBM Corporation, Armonk, N.Y. Node C 110 in this example is shown to be operating under the Solaris operating system available from Sun Microsystems, Inc, Santa Clara, Calif. It is to be understood that the exemplary software operating systems illustrated here are a small subset of the possible software operating systems under which nodes of various embodiments of the present invention are able to operate. Various embodiments of the present invention are able to operate with nodes that execute one or more of any suitable software operating systems, such as within different partitions of a single computing node. Further embodiments of the present invention are able to operate with some or all of the nodes executing the same software operating system. In the following description, the term processing system is intended to broadly include any and all processing structures that execute software operating systems and can include, for example and without limitation, a single computing node or a single partition among multiple partitions operating within a single computing node
The computers of the exemplary computing system network architecture 100, such as node A 106, Node B 108, Node C 110 and the remote node system management computer 102, are all connected to a communications network 104. Communications network 104 is used to communicate data messages among these computers. The communications network 104 is able to connect to computers that are located in close proximity to each other as well as to computers that are located at some distance from each other. The exemplary computing system network architecture 100 illustrates the remote node system management computer 102 and Node B 108 as connected to a local network segment of the communications network 104. Node A 106 is connected to a distant network segment of the communications network 104, as illustrated by a first network distance connection 112. Node C 110 is connected to another distant network segment of the communications network 104 through a second network distance connection 112. Network distance connections are able to be implemented through various Wide Area Network (WAN) techniques such as frame relay, Asynchronous Transfer Mode (ATM), and other current and/or future data communications techniques. Some embodiments of the present invention operate without a communications network to exchange requests between processing systems.
The three exemplary software operating system management programs 242, i.e., a set of Grid Service/eAutomation applications 204, an Virtualization Engine Console application 206 and a set of WebSM applications 208, interface to a service library 212 through a system administration request interface 240 that accepts generic system administration requests 250 from the software operating system management programs 242. In the exemplary embodiment, this interface is provided across the communications network 104 and is implemented by the WebServices communications package. Further embodiments of the present invention utilize other communications packages to perform this communication. Some embodiments of the present invention execute service libraries 212 on the same computing node as the software operating system management programs 242, such as in a single computing node that includes several partitions that each execute a different software operating system. These embodiments are able to use various known and future intra-node communications techniques to communicate generic software operating system administration requests 250. Communication of generic software operating system administration requests 250 to the service library 212 within the context of the present invention is able to be accomplished through any current or future inter-computer node and/or intra-computer node communications techniques. Examples of the generic system administration requests are described below. The generic software operating system administration requests 250 accepted by the system administration request interface 240 are not specific to any software operating system executing on a node computing system being controlled by the disparate software operating system management software architecture 200.
The service library 212 accepts generic software operating system administration requests 250 and converts them into software operating system specific system administration requests. The software operating system specific system administration requests are tailored to the software operating system of the processing system that is to execute the request. The software operating system specific system administration request to which the generic software operating system administration system request is converted depends upon the software operating system, and the corresponding instruction set, of the processing system to execute the request.
A service library framework 210 of the exemplary embodiment includes a common service library 212 and a number of software operating system specific components. The software operating system specific components of the service library frame work 210 are able to include a number of libraries that are tailored to specific system administration functions. These multiple libraries for each software operating system are generically illustrated for the exemplary service library framework. System administration function libraries that generate system specific system administration requests are known to ordinary practitioners in the relevant arts. The exemplary service library framework 210 is illustrated as including a monitor service library 214, a domain service library 216 and a Resource Monitoring and Control (RMC) service library 218, which generates software operating system specific request set messages for pSeries computer nodes operating under a Unix like software operating system, such as AIX for example, and accepts software operating system specific response messages which it converts to generic response messages. The exemplary service library framework 210 is further illustrated as including, as illustrative examples, an XA series library 220, an XB service library 222, and an XC service library 224, which generate system specific request set messages for a xSeries computer node operating under, for example, a Microsoft Windows or a Linux operating system. The exemplary service library framework 210 is also shown as including, as illustrative examples, an SA service library 226, an SB service library 228, and an SC service library 230, which generate software operating system specific request messages for a Sun computer node operating under the Solaris operating system and accept software operating system specific response messages which it converts to generic response messages. Further software operating system specific components are included in further embodiments of the present invention to properly process system management requests and messages from various other software operating systems.
The software operating system specific components of the exemplary embodiment of the present invention operate with software operating system specific subsystems that perform software operating system specific communication with remote processing systems that are executing under a software operating system that corresponds to the respective software operating system specific subsystem. In the exemplary disparate software operating system management software architecture 200, the monitor service library 214, the domain service library 216 and the RMC service library 218, are shown to communicate with a pSeries subsystem (RMC) 232 that performs the communications with pSeries nodes operating under, for example, the AIX operating system. Similarly, the XA series library 220, the XB service library 222, and the XC service library 224, are shown to communicate with an xSeries subsystem 234, such as the Director system available from International Business Machines, that performs the communications with xSeries nodes operating under, for example, the Microsoft Windows operating system. The SA service library 226, the SB service library 228, and the SC service library 230, are shown to communicate with a Sun's subsystem 236 that performs the communications with Sun computer nodes operating under, for example, the Solaris operating system. It is clear that although the above examples list computing nodes as executing the various software operating systems, some embodiments of the present invention are able to include a single computing node that executes multiple software operating systems, such as in different processing system partitions that exist on that node.
A clientsideClass 410 is a software object class that is part of a system management application in this example that implements, for example, user interfaces and automated processing for managing remote processing systems using the service library structure of the exemplary embodiment of the present invention. The clientsideClass 410 invokes a findByPrimaryKey method 414 of the AbstractSvlEntityService object 420 to obtain an IsvlEntityServiceDataBean object that is identified by a provided primary key identifier. The primary key identifier in this case uniquely identifies the AbstractSvlEntityServiceDataBean 412 and was obtained upon instantiation of that object. In this example the returned IsvlEntityServiceDataBean object is shown as the AbstractSvlEntityServiceDataBean 412. The AbstractSvlEntityServiceDataBean 412 provides caching and data communications between the client and server portions of the service library framework and related computer system management applications and tools, and the AbstractSvlEntityServiceDataBean 412 further allows the client portion of the computer system management software to store changes to property values for the remote systems being managed.
A clientsideClass 502 is a software object class that is part of a system management application in this example that implements, for example, user interfaces and automated processing for managing remote processing systems using the service library structure of the exemplary embodiment of the present invention. The clientsideClass 502 begins the retrieve resource property operation by invoking a findByPrimaryKey method of the RMCResourceServiceImpl object 506 to obtain an RMCResourceServiceDataBean object 504 that is identified by a provided primary key identifier. The primary key identifier in this case uniquely identifies the RMCResourceServiceDataBean object 504 and was obtained upon instantiation of the associated object. Once the RMCResourceServiceDataBean object 504 is retrieved, the client side processing is able to invoke the getProperty method 514 of the RMCResourceServiceDataBean to retrieve the desired resource property.
The processing then continues by communicating, at step 606, the at least one system specific system administration request to at least one computer system that is able to process the system specific system administration request that is communicated to it. The processing for then terminates.
Main Memory 704 contains communications software 720, objects 722, data 726 and an operating system image 728. Although illustrated as concurrently resident in main memory 704, it is clear that the communications software 720, objects 722, data 726 and operating system 728 are not required to be completely resident in the main memory 704 at all times or even at the same time. Computing node 700 utilizes conventional virtual addressing mechanisms to allow programs to behave as if they have access to a large, single storage entity, referred to herein as a computer system memory, instead of access to multiple, smaller storage entities such as main memory 704 and DASD device 714. Note that the term “computer system memory” is used herein to generically refer to the entire virtual memory of computing node 700.
The Main Memory 704 of the exemplary embodiment further contains applications 740 that include Node Management Programs 242, Service Library Framework 210 and System Specific Subsystems 732, as are described above. The System Specific Subsystems 732 contain, for example, one or more of the pSeries Subsystem 232, the xSeries Subsystem 234 and the Sun's Subsystem 236 and other subsystems for various computing subsystems.
Although only one CPU 702 is illustrated for computer 730, computer systems with multiple CPUs can be used equally effectively. Embodiments of the present invention further incorporate interfaces that each include separate, fully programmed microprocessors that are used to off-load processing from the CPU 702. Terminal interface 708 is used to directly connect one or more terminals 718 to computer 703. These terminals 718, which are able to be non-intelligent or fully programmable workstations, are used to allow system administrators and users to communicate with computing node 700.
Operating system 728 is a suitable multitasking operating system such as the IBM AIX operating system. Embodiments of the present invention are able to use any other suitable operating system. Embodiments of the present invention utilize architectures, such as an object oriented framework mechanism, that allows instructions of the components of operating system 728 to be executed on any processor located within computing node 700.
Network adapter hardware 710 is used to provide an interface to the shared communications network 120. Embodiments of the present invention are able to be adapted to work with any data communications connections including present day analog and/or digital techniques or via a future networking mechanism. The network adapter hardware 710 of the exemplary embodiment includes functions to facilitate operation of the expedited transmission processing as are described below.
Although the exemplary embodiments of the present invention are described in the context of a fully functional computer system, those skilled in the art will appreciate that embodiments are capable of being distributed as a program product via floppy disk, e.g. floppy disk 716, CD ROM, or other form of recordable media, or via any type of electronic transmission mechanism.
Remote computer system nodes, such as Node A 106, Node B 108 and Node C 110, are able to be hosted on computer systems similar to that described above. Of note, such remote computer system nodes are not required to include the Applications 740 described above. The service library framework 210 and the system specific subsystems 732 of the exemplary embodiment generate and accept requests and responses as required for the native operating systems of the various computer system nodes, thereby obviating a requirement for special system management software to be installed on each of the computer system nodes.
Embodiments of the invention can be implemented as a program product for use with a computer system such as, for example, the computing environment shown in
In general, the routines executed to implement the embodiments of the present invention, whether implemented as part of an operating system or a specific application, component, program, module, object or sequence of instructions may be referred to herein as a “program.” The computer program typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described herein may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
It is also clear that given the typically endless number of manners in which computer programs may be organized into routines, procedures, methods, modules, objects, and the like, as well as the various manners in which program functionality may be allocated among various software layers that are resident within a typical computer (e.g., operating systems, libraries, API's, applications, applets, etc.) It should be appreciated that the invention is not limited to the specific organization and allocation or program functionality described herein.
The present invention can be realized in hardware, software, or a combination of hardware and software. A system according to a preferred embodiment of the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system—or other apparatus adapted for carrying out the methods described herein—is suited. A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
Each computer system may include, inter alia, one or more computers and at least a signal bearing medium allowing a computer to read data, instructions, messages or message packets, and other signal bearing information from the signal bearing medium. The signal bearing medium may include non-volatile memory, such as ROM, Flash memory, Disk drive memory, CD-ROM, and other permanent storage. Additionally, a computer medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits. Furthermore, the signal bearing medium may comprise signal bearing information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network, that allow a computer to read such signal bearing information.
Although specific embodiments of the invention have been disclosed, those having ordinary skill in the art will understand that changes can be made to the specific embodiments without departing from the spirit and scope of the invention. The scope of the invention is not to be restricted, therefore, to the specific embodiments. Furthermore, it is intended that the appended claims cover any and all such applications, modifications, and embodiments within the scope of the present invention.