1. Field of the Invention
In general, the present invention provides a method, system and program product for decentralized monitoring of server states within a cell of nodes. Specifically, the present invention allows states of application servers (and the like) running on nodes within a cell to be monitored by the other nodes without relying on a single point of management such as a node manager.
2. Related Art
As modular programming advances, the use of node cells is rapidly increasing. In a typical node cell arrangement, one or more nodes will be provided. Each node will generally include a node agent and one or more (application) servers. Moreover, in a node cell arrangement, it is common for server state event (e.g., JMX events) information of one node to be made available to other nodes. For example, one node is often made aware of whether an application server on another node is starting, has started, is stopping or has stopped. The current technology is to provide a central node manager to which the individual nodes report their corresponding state information. Should a particular node desire state information pertaining to another node, the particular node will obtain such information directly from the node manager.
An illustration of the existing technology is shown in
Unfortunately, with such a configuration, there is a single point of failure for node cell 10. Specifically, should node manager 14 or deployment manager 20 fail, there is no way for nodes 12A-C to obtain needed state information. As such, nodes 12A-C will not be able to synchronize with one another. In view of the foregoing, there exists a need for a method, system and program product for decentralized monitoring of server states within a cell of nodes. Specifically, a need exits whereby nodes in a cell can obtain server state information for other nodes directly from the other nodes, or via a decentralized messaging system such as a bulletin board or the like.
In general, the present invention provides a method, system and program product for decentralized monitoring of server states within a cell of nodes. Specifically, under the present invention a node agent of a node in the cell will post state (event) information pertaining to the application server(s) it controls to a messaging service such as a Highly Available (HA) messaging system (e.g., to a bulletin board). Also, from the messaging service, the node agent will obtain the identities of other node agents running in the cell. Thereafter, the node agent can establish a direct communication link with those other node agents, and obtain state information pertaining to the application server(s) they control directly therefrom. Alternatively, the node agent can obtain state information for the other node agents directly from the bulletin board.
A first aspect of the present invention provides a method for decentralized monitoring of server states within a cell of nodes, comprising: communicating state information from a first node agent of a first node in the cell to a messaging service, and retrieving an identity of a second node agent running on a second node in the cell from the messaging service to the first node agent; establishing a direct communication link between the first node agent and the second node agent; and obtaining state information from the second node agent to the first node agent through the direct communication link.
A second aspect of the present invention provides a system for decentralized monitoring of server states within a cell of nodes, comprising: a messaging interface system for communicating state information from a first node agent of a first node in the cell to a messaging service, and for retrieving an identity of a second node agent running on a second node in the cell from the messaging service to the first node agent; a node linking system for establishing a direct communication link between the first node agent and the second node agent; and a state information retrieval system for obtaining state information from the second node agent to the first node agent through the direct communication link.
A third aspect of the present invention provides a program product stored on a recordable medium for decentralized monitoring of server states within a cell of nodes, which when executed, comprises: program code for communicating state information from a first node agent of a first node in the cell to a messaging service, and for retrieving an identity of a second node agent running on a second node in the cell from the messaging service to the first node agent; program code for establishing a direct communication link between the first node agent and the second node agent; and program code for obtaining state information from the second node agent to the first node agent through the direct communication link.
A fourth aspect of the present invention provides a computer software embodied in a propagated signal for decentralized monitoring of server states within a cell of nodes, the computer software comprising instructions to cause a computer system to perform the following functions: communicate state information from a first node agent of a first node in the cell to a messaging service, and retrieve an identity of a second node agent running on a second node in the cell from the messaging service to the first node agent; establish a direct communication link between the first node agent and the second node agent; and obtain state information from the second node agent to the first node agent through the direct communication link.
A fifth aspect of the present invention provides a method for deploying an application for decentralized monitoring of server states within a cell of nodes, comprising: providing a computer infrastructure being operable to: communicate state information from a first node agent of a first node in the cell to a messaging service, and retrieve an identity of a second node agent running on a second node in the cell from the messaging service to the first node agent; establish a direct communication link between the first node agent and the second node agent; and obtain state information from the second node agent to the first node agent through the direct communication link.
Therefore, the present invention provides a method, system and program product for decentralized monitoring of server states within a cell of nodes.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which:
The drawings are not necessarily to scale. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements.
For convenience purposes the Detailed Description of the Drawings will have the following sections:
I. General Description
II. Computerized Implementation
I. General Description
As indicated above, the present invention provides a method, system and program product for decentralized monitoring of server states within a cell of nodes. Specifically, under the present invention a node agent of a node in the cell will post state (event) information pertaining to the application server(s) it controls to a messaging service such as a Highly Available (HA) messaging system (e.g., to bulletin board). Also, from the messaging service, the node agent will obtain the identities of other node agents running in the cell. Thereafter, the node agent can establish a direct communication link with those other node agents, and obtain state information pertaining to the application server(s) they control directly therefrom. Alternatively, the node agent can obtain state information for the other node agents directly from the bulletin board. It should be appreciated that although the present invention is typically implemented using and/or based on a HA messaging system and Java Management Extension (JMX) events, this need not be the case. Rather, alternatives could be implemented within the teachings of the present invention.
Referring now to
As mentioned above, previous systems required nodes 30A-B to report state information pertaining to their respective application servers 36A-B directly to a node manager (
In any event, state systems 34A-B are shown in further detail below nodes 30A-B. As depicted, state systems 34A-B includes messaging interface systems 42A-B, node registration systems 44A-B, node linking systems 46A-B and state information retrieval systems 48A-B. It should be understood that the systems within state systems 34A-B have been depicted as such for illustrative purposes. That is, the underlying functionality of state systems 34A-B could be realized with a different configuration of systems.
In any event, instead of (or in combination with) posting state information to a deployment manager as shown in
As an illustrative example, assume that one of the application servers 36A on node 30A has stopped. In such a case, messaging interface system 42A will post information conveying as much on bulletin board 40. While interfacing with messaging service 38, messaging interface system 42A will also register with bulletin board 40 and obtain the identities of any other node agents that are running in cell 31. Thus, if node agent 32B was currently running, it would be identified to node agent 32A (e.g., via messaging interface system 42A). In such a case, the present invention would allow node agent 32A to make a direct communication link with node agent 32B and directly exchange state information therewith. To accomplish this, node registration system 44A will make contact with node agent 32B to register node agent 32A with node agent 32B.
Once registration is complete, node linking system 46A would form a direct connection link with the administrative client of node agent 32B. This is shown in greater detail in
As can be seen, the present invention allow server state information to be obtained directly from the sources, namely, the nodes themselves. This concept applies to a cell having two nodes (such as shown in
II. Computerized Implementation
Referring now to
I/O interfaces 56 may comprise any system for exchanging information to/from an external source. External devices/resources 58 may comprise any known type of external device, including speakers, a CRT, LED screen, hand-held device, keyboard, mouse, voice recognition system, speech output system, printer, monitor/display, facsimile, pager, etc. Bus 54 provides a communication link between each of the components in node 30A and likewise may comprise any known type of transmission link, including electrical, optical, wireless, etc.
Storage unit 60 can be any system (e.g., a database, etc.) capable of providing storage for information (e.g., server state information, etc.) under the present invention. As such, storage unit 60 could include one or more storage devices, such as a magnetic disk drive or an optical disk drive. In another embodiment, storage unit 60 includes data distributed across, for example, a local area network (LAN), wide area network (WAN) or a storage area network (SAN) (not shown). Although not shown, additional components, such as cache memory, communication systems, system software, etc., may be incorporated into node 30A. In addition, as mentioned above, node 30B will have components similar to node 30A. Such components have not been shown for brevity purposes only
Shown in memory 52 of node 30A are node agent 32A, state system 34A and application servers 36A. State systems 34A-B will perform the functions as described above. Specifically, state systems 34A-B will post state information to bulletin board 40, register with bulletin board 40, obtain identities of other running node agents, register with the other running node agents, form a direct communication link with the administrative client of the other running node agents, and obtain server state information directly from the other running node agents.
It should be appreciated that the present invention could be offered as a business method on a subscription or fee basis. For example, nodes 30A-B and/or state systems 34A-B could be created, supported, maintained and/or deployed by a service provider that offers the functions described herein for customers. That is, a service provider could offer to coordinate permission processing for customers.
It should also be understood that the present invention could be realized in hardware, software, a propagated signal, or any combination thereof. Any kind of computer/server system(s)- 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 loaded and executed, carries out the respective methods described herein. Alternatively, a specific use computer, containing specialized hardware for carrying out one or more of the functional tasks of the invention, could be utilized. The present invention can also be embedded in a computer program product or a propagated signal, which comprises all the respective features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods. Computer program, propagated signal, software program, program, or software, in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form.
The foregoing description of the preferred embodiments of this invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of this invention as defined by the accompanying claims.