1. Technical Field
The present invention is directed to distributed networks. More specifically, the present invention is directed to a system, computer program product and method of automatically collecting metadata of application programs installed on computer systems in a distributed network.
2. Description of Related Art
In a distributed network, there generally is a plurality of computer systems that may each have a different operating system (OS) installed thereon. Further, the computer systems may be executing different application programs and/or different versions of the application programs. It is well known that the capability of a computer system is based on the software packages that are installed thereon. Thus, if the different computer systems in the distributed network have different OSs, different application programs and/or different versions of the application programs installed thereon, they may each provide different features or have different capabilities. For the purpose of the invention, OSs and application programs will all be referred to generically as application programs.
Often times, the computer systems in a distributed network are managed by an application server. An application server is a server program in a computer system that facilitates interaction of the application programs in the network. In order to do so, however, the application server needs to know which feature is provided by which computer system (i.e., which application programs are installed on which computer system) in the distributed network. This is generally accomplished through metadata.
Metadata is information about data. Data, in this case, includes any file in a file system whether it is code data as in the case of application programs or plain old data. Put differently, metadata is structured data which consists of a number of pre-defined elements representing specific attributes of a file, and each element can have one or more values. For example, a file system may contain access permission, ownership, creation date, et cetera (i.e., metadata) about each file (i.e., data) stored therein. Thus, metadata describes how, when and/or by whom a particular set of data was collected as well as how the data is formatted.
Presently, metadata is statically collected and provided to the application server either as part of a software product installation or through explicit user entry. When the software product is uninstalled, its metadata may be statically deleted. For computer systems (e.g., servers) that use thousands of files, a system administrator may have to painstakingly manage the metadata. This can be quite a daunting task.
Thus, what is needed is a system, computer program product and method of automatically collecting metadata of application programs installed on a computer system such that the metadata may be automatically provided to an application server that is managing the computer system in the network. The system, computer program product and method may automatically delete metadata of application programs that have been uninstalled from the computer system.
The present invention provides a system, computer program product and method of collecting metadata of application programs installed on a computer system. Periodically, a check is performed to determine whether metadata of an application program is to be collected. Generally, metadata of an application program is to be collected if the application program has been newly installed on the computer system or has been updated. If metadata is to be collected, a file containing the metadata of the application program is accessed, parsed for relevant metadata information and the relevant information stored in a metadata master file. The metadata master file is a file in which metadata of all the application programs installed on the system is stored.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
Application servers, such as IBM Websphere Application Server (WAS), generally configure computing systems in a distributed network in a plurality of cells. Each cell may contain a plurality of logical nodes.
Generally, a node may be a computing system (e.g., a computer system, or a switch, or a router, et cetera). In such a case, items 112, 114, 116 and 118 in node1 110 and 152, 154, 156 and 158 in node2 150 may be applications programs (e.g., firewall, OS, node group server process, application server process, database system, Web server, Java 2 Platform Enterprise Edition (J2EE) application programs, et cetera). The OS may be either AIX (a product of IBM, Corp.), or Solaris (a product of Sun Microsystems), or Linux, or Microsoft Windows, et cetera.
The cell 100 also has a deployment manager (DMgr) 170. The DMger 170 may be installed on any one of the computing systems in the cell 100 or may be a computing system dedicated to provide such service. The DMgr 170 handles the system management and configuration of the entire cell 100.
Each node in the cell 100 has a node agent. For example, node1 110 has node agent 120 and node2 150 has node agent 160. A node agent is an application program that is used to synchronize node configuration data with cell configuration data. For example, if an application program is added to node1 110, the node agent 120 may obtain the metadata of the newly added application program and forward it to the DMgr 170 upon request.
The DMgr 170 may request metadata from a node agent when instructed to do so by WAS or any other application server or network managing system in the network. For example, there are certain J2EE methods that can only be invoked on J2EE version 5.0 via WAS version 5.0. Thus, a system administrator using a client on which WAS version 5.0 is installed may want to know on which one of the computing systems in a distributed network is J2EE version 5.0 running before invoking those methods. In such a case, therefore, the system administrator may query the computing systems in the distributed network for the metadata of the application programs, in general, and J2EE, in particular, installed thereon. The client then may send the request to each DMgr 170 (i.e., to each cell) in the distributed network. Each DMgr 170 may then send a request to each one of the node agents it is administrating. Each node agent may forward the metadata of the application programs installed in that node to the DMgr 170, which will then relay the metadata to the requesting client. If, for instance, J2EE version 5.0 is running on node1 110, then
The metadata may be deployed in a number of ways. For example, the metadata may be integrated into the application program it describes. Alternatively, the metadata may be in a document that is linked to the application program or extracted from another source, such as a Web page. Further, the metadata may be in HTML (Hyper-Text Markup Language), SGML (Standard Generalized Markup Language), XML (extensible Markup Language), RDF (Resource Description Framework), MARC (MAchine Readable Cataloging), MIME (Multipurpose Internet Mail Extensions), in plain tabular form or any other format.
In operation, when J2EE version 5.0 is installed on node1 110, node agent 120 may access the HTML document shown in
For example, suppose the master file is a metadata folder, then each subfolder may be associated with an application program (e.g., may be given the name of an application program) that is installed on the node. Metadata of each application program installed on the node will then be stored in the appropriate sub-folder. As mentioned above, the metadata itself may be in any form. When an application program is uninstalled from the node, then the subfolder (and its content) associated with the uninstalled program may be deleted from the metadata folder. When an application program is updated, the information in its metadata subfolder may also be updated. In sum, the metadata folder may always contain metadata of current versions of the application programs installed on the node.
In any case, metadata is to be collected whenever a new application program has been installed on the node (step 404) or a previously installed application program has been updated (step 406). If metadata is to be collected either because one or more application programs have been installed and/or updated, the node agent will collect the metadata of each application program by serially accessing the metadata file of all newly installed and/or updated application programs, parse each accessed file for the relevant information and store the collected information in appropriate locations on a storage device (steps 408 and 410). After doing so, the process may return to step 402.
If metadata is not to be collected, another check may be made to determine whether metadata is to be deleted (step 412). As mentioned before, metadata of an application program may be deleted if the application program has been uninstalled from a node. If there is one or more application programs that have been uninstalled, then the metadata of all the uninstalled application programs may be deleted (step 414). After deleting the metadata of all uninstalled application programs, the process may return to step 412.
To determine which application programs have been newly installed, the node agent may keep a file for all newly installed application programs. Likewise, the node agent may keep a file for all updated application programs as well as a file for all deleted application programs. Hence, the node agent needs only consult those files to determine whether to collect or delete metadata. The process may end when the computing system on which the node agent is installed is turned off.
In the depicted example, server 504 is connected to network 502 along with storage unit 506. In addition, clients 508, 510, and 512 are connected to network 502. These clients 508, 510, and 512 may be, for example, personal computers. In the depicted example, server 504 provides data, such as boot files, operating system images, and applications to clients 508, 510 and 512. Clients 508, 510 and 512 are clients to server 504. Network data processing system 500 may include additional servers, clients, and other devices not shown. In the depicted example, network data processing system 500 is the Internet with network 502 representing a worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 500 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
Referring to
Peripheral component interconnect (PCI) bus bridge 614 connected to I/O bus 612 provides an interface to PCI local bus 616. A number of modems may be connected to PCI local bus 616. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to network computers 508, 510 and 512 in
Additional PCI bus bridges 622 and 624 provide interfaces for additional PCI local buses 626 and 628, from which additional modems or network adapters may be supported. In this manner, data processing system 600 allows connections to multiple network computers. A memory-mapped graphics adapter 630 and hard disk 632 may also be connected to I/O bus 612 as depicted, either directly or indirectly.
Those of ordinary skill in the art will appreciate that the hardware depicted in
The data processing system depicted in
With reference now to
An operating system runs on processor 702 and is used to coordinate and provide control of various components within data processing system 700 in
Those of ordinary skill in the art will appreciate that the hardware in
As another example, data processing system 700 may be a stand-alone system configured to be bootable without relying on some type of network communication interface, whether or not data processing system 700 comprises some type of network communication interface. As a further example, data processing system 700 may be a Personal Digital Assistant (PDA) device or a router et cetera, which is configured with ROM and/or flash ROM in order to provide non-volatile memory for storing operating system files and/or user-generated data.
The depicted example in
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.