Abstract:
A method, apparatus and computer instructions are disclosed for maintaining the compatibility of a multiple nodes in a distributed systems management environment with multiple configuration settings, by transforming the configuration data stored in the master repository (one possible realization is where XML documents contain the configuration data) from one version of the product to a previous version of the product. For multiple versions of the systems management environment, a transformation pipeline process (one possible realization of such a process may utilize XSLT) can be used by a “master” node to transform the configuration data multiple times for each version of the environment, until the configuration data has the format of the intended recipient “slave” node. Also, by performing the transformation process on the “master” side of the computing environment, “slave” nodes with older version configuration settings can continue to operate without having to upgrade their software applications in this regard.

Description:
RELATED APPLICATIONS 
       [0001]    The present application is related by subject matter to commonly assigned, co-pending U.S. patent application Ser. No. ______ (Attorney Docket No. RSW920030262US1) entitled “METHOD FOR GENERATING XSLT DOCUMENTS FROM MULTIPLE VERSIONS OF A UML MODEL OR XML SCHEMAS CREATED FROM MULTIPLE VERSIONS OF A UML MODEL”, filed on Mar. 12, 2004, and hereby incorporated by reference. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Technical Field 
         [0003]    The present invention relates generally to systems management in a dynamic electronic-business (e-business) network environment, and in particular, but not exclusively to, a method, apparatus and computer instructions for maintaining compatibility within a distributed systems management environment with a plurality of configuration versions. 
         [0004]    2. Description of Related Art 
         [0005]    The use of the Internet for business transactions has increased significantly in recent years. In fact, the term “e-business” has evolved to mean doing business on-line. WebSphere is a set of Java™-based tools developed by International Business Machines Corporation of Armonk, N.Y., which allows customers to create and manage relatively sophisticated e-business Web sites. The primary WebSphere tool is the WebSphere Application Server, which is a Java™-based, high-performance Web applications server that businesses can use to connect Web site customers with e-business applications. 
         [0006]    In a distributed computing environment, such as, for example, the WebSphere 5.0 Network Deployment (ND) Applications Server, Java 2 Enterprise Edition (J2EE) product environment, a plurality of computing nodes (e.g., logical grouping of servers) are managed by an administrative facility that provides configuration settings for software applications being executed on the computing nodes. The configuration data for the WebSphere computing environment is stored in a master repository associated with the administrative facility and can be accessed as Extensible Markup Language (XML) documents. 
         [0007]    A significant problem arises when different nodes in the computing environment are being operated with different versions of the WebSphere product, and the administrative facility synchronizes the nodes by sending configuration settings from the master repository to the nodes. The configuration settings “synched out” to the nodes can be for newer versions of the WebSphere product. Consequently, nodes configured with the older version settings are unable to operate with the format of the newer version configuration settings. 
         [0008]    Therefore, it would be advantageous to have an improved method, apparatus and computer instructions for maintaining the compatibility of multiple nodes in a distributed systems management environment with multiple configuration settings, such as, for example, a WebSphere 5.x and/or 6.x Network Deployment (ND) Applications Server J2EE product environment. 
       SUMMARY OF THE INVENTION 
       [0009]    The present invention provides a method, apparatus and computer instructions for maintaining the compatibility of a multiple nodes in a distributed systems management computing environment with multiple configuration settings, by transforming the configuration data stored in the master repository (one possible realization is where XML documents contain the configuration data) from one version of the product to a previous version of the product. For multiple versions of the systems management computing environment, a transformation pipeline process (one possible realization of such a process may utilize XSLT) can be used by a “master” node to transform the configuration data multiple times for each version of the environment, until the configuration data has the format of the intended recipient “slave” node. Also, in accordance with the present invention, by performing the transformation process on the “master” side of the computing environment, “slave” nodes with older versions of the configuration settings can continue to operate without having to upgrade their software applications in this regard. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    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: 
           [0011]      FIG. 1  is a block diagram of a distributed systems management computing environment that can be used to implement a preferred embodiment of the present invention; 
           [0012]      FIG. 2  is a block diagram of an exemplary distributed systems management computing environment that illustrates principles of the present invention; 
           [0013]      FIG. 3  is a block diagram of an exemplary distributed systems management computing environment, which further illustrates principles of the present invention; 
           [0014]      FIG. 4  is a block diagram of an exemplary distributed systems management computing environment is depicted, which further illustrates principles of the present invention; and 
           [0015]      FIG. 5  is a block diagram of an exemplary distributed systems management computing environment, which further illustrates principles of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0016]    With reference now to the figures,  FIG. 1  depicts a block diagram of a distributed systems management computing environment that can be used to implement a preferred embodiment of the present invention. For this exemplary embodiment, the distributed systems management computing environment depicted in  FIG. 1  can be a WebSphere Application Server or similar computing environment, such as, for example, a WebSphere 5.x and/or 6.x ND Applications Server J2EE product environment. 
         [0017]    In the depicted example, distributed systems management computing environment  100  includes nodes  102 ,  108  and  112 . For illustrative purposes and ease of understanding, only three such nodes are shown. In this regard,  FIG. 1  is intended as an illustrative example, and not as an architectural limitation for the present invention. Appropriate network communications links are provided between nodes  102 ,  108  and  112 . These communications links can include connections, such as, wire, wireless communication links, fiber optic cables, etc. 
         [0018]    For this example, node  102  is configured to function primarily as a “master” node and network deployment manager, and nodes  108  and  112  are configured to function primarily as “slave” nodes. Node  102  includes master repository  104 , which functions primarily as a data storage location for storing, in this case, XML configuration files. For this exemplary embodiment, as shown in  FIG. 1 , master repository  106  stores one or more versions of 6.x format XML schema configuration files. Also, each of nodes  108 ,  112  includes node repository  110 ,  114 , respectively. For this exemplary embodiment, node repository  110  stores 6.x format XML schema configuration files, and node repository  114  stores 5.x format XML schema configuration files. 
         [0019]    As such, it may be assumed that node  108  is configured to operate with version 6.x (e.g. “newer”) settings, and node  112  is configured to operate with version 5.x (e.g., “older”) settings. Also, for this exemplary embodiment, it may be assumed that node  102  is functioning as a network deployment manager, and in an administrative facility role, can synchronize nodes  108 ,  112  with respect to node  102  by sending configuration settings from master repository  104  to nodes  108 ,  112 . The circle denoted as  106 , and the flow lines from master repository  104  to nodes  108  and  112  illustrate such a synchronization (e.g., “synch”) operation. As such, for this exemplary embodiment, it may be assumed that the configuration settings to be “synched out” to nodes  108 ,  112  are for a 6.x version of a WebSphere computing environment product. In other words, for this example, node  102  is attempting to upgrade the associated “slave” nodes (e.g., nodes  108 ,  112 ) to a newer version of a computing environment (e.g., WebSphere) product. 
         [0020]    Referring to  FIG. 2 , a block diagram of an exemplary distributed systems management computing environment is depicted, which illustrates principles of the present invention. For example, computing environment  200  can represent an essential part of a WebSphere Application Server or similar computing environment, such as, for example, a WebSphere Version 5.x version ND Applications Server J2EE computing environment that can be converted to a WebSphere Version 6.x ND Applications Server J2EE computing environment. 
         [0021]    For this exemplary embodiment, computing environment  200  includes configuration repository  202 , which functions primarily as a data storage location for configuration data, such as, for example, XML documents containing configuration data. As shown, configuration repository  202  can be partitioned to store at least two versions of configuration data. For this example, storage area  202   a  can be used for storing version 6.0 XML configuration files conforming to the 6.0 product&#39;s schema, and storage area  202   b  can be used for storing version 5.x (e.g., multiple versions of a 5.0 product) XML configuration files conforming to the 5.0 product&#39;s schema. In this regard, for illustrative purposes, a plurality of version 5.x XML schema documents (e.g., documents  205   a - 205   d ) are shown stored in storage area  202   b.    
         [0022]    Exemplary computing environment  200  also includes deployment manager  204 . As such, deployment manager  204  and configuration repository  202  can represent a “master” node (e.g., node  102  in  FIG. 1 ). In this regard, computing environment  200  further includes nodes  208 ,  210  and  212 . For this illustrative example, nodes  208 ,  210  and  212  can represent “slave” nodes. As indicated by flow line  206 , an administrative console component of deployment manager  204  can function to read (and write) configuration data (e.g., document  205   a  in 5.x format) from (and to) configuration repository  202 . Also, it may be assumed (e.g., as indicated by flow lines  209 ,  211 ,  213 ) that deployment manager  204  is “synching out” XML schema files (e.g., documents  205   b ,  205   c ,  205   d  in 5.x format) to nodes  208 ,  210  and  212 , respectively. 
         [0023]    In this regard, computing environment  200  can represent an initial state during a configuration conversion operation for a computing environment, such as, for example, conversion of a WebSphere Version 5.x version ND Applications Server J2EE computing environment to a WebSphere Version 6.x ND Applications Server J2EE computing environment. 
         [0024]    Referring now to  FIG. 3 , a block diagram of an exemplary distributed systems management computing environment is depicted, which further illustrates principles of the present invention. For example, with reference also to computing environment  200  shown in  FIG. 2 , computing environment  300  can represent a second state during a configuration conversion operation for a computing environment, such as, for example, conversion of a WebSphere Version 5.x version ND Applications Server J2EE computing environment to a WebSphere Version 6.x ND Applications Server J2EE computing environment. 
         [0025]    For this example, computing environment  300  includes configuration repository  302 . As shown, configuration repository  302  has been partitioned to store two versions of configuration files. Storage area  302   a  can store version 6.0 XML configuration data (e.g., XML documents conforming to 6.0 schema  306   a ,  306   b ), and storage area  302   b  can store version 5.x XML configuration data (e.g., XML documents conforming to 5.x schema  305   a - 305   d ). 
         [0026]    Exemplary computing environment  300  also includes deployment manager  304 , and nodes  308 ,  310  and  312 . Similar to  FIG. 2 , deployment manager  304  and configuration repository  302  represent a “master” node, and nodes  308 ,  310  and  312  represent “slave” nodes. As indicated by flow line  306 , an administrative console component (e.g., 6.0 administrative console component) of deployment manager  304  can read (and write) XML schema documents transformed to 6.0 form from (and to) configuration repository  302   a . For this example, it may be assumed (e.g., as indicated by flow lines  309 ,  311 ,  313 ) that deployment manager  304  is still “synching out” configuration data in 5.x format (e.g., XML documents conformant to 5.x schema  305   b ,  305   c ,  305   d ) to 5.x nodes  308 ,  310  and  312 , respectively. 
         [0027]    At this point, it is important to note that the exemplary state shown in  FIG. 3  represents a transformation of configuration data in 5.x format (e.g., XML documents conformant to 5.x schema) to 6.0 format (e.g., XML documents conformant to 6.x schema). For this example, the transformed configuration data in 6.0 format can be stored in storage area  302   a  (e.g., as 6.0 format XML documents  306   a ,  306   b , etc.) as shown. 
         [0028]    As such, an exemplary process for transforming configuration data in 5.x format to 6.0 format is disclosed in the above-described, related U.S. patent application entitled “METHOD FOR GENERATING XSLT DOCUMENTS FROM MULTIPLE VERSIONS OF A UML MODEL OR XML SCHEMAS CREATED FROM MULTIPLE VERSIONS OF A UML MODEL”, which is incorporated by reference herein in its entirety. 
         [0029]    Referring now to  FIG. 4 , a block diagram of an exemplary distributed systems management computing environment is depicted, which further illustrates principles of the present invention. For example, computing environment  400  can represent a third state during a configuration conversion operation for a computing environment, such as, for example, conversion of a WebSphere Version 5.x version ND Applications Server J2EE computing environment to a WebSphere Version 6.x ND Applications Server J2EE computing environment. 
         [0030]    For this example, computing environment  400  includes configuration repository  402 , which is shown as storing (e.g., transformed) version 6.0 configuration data (e.g., XML documents conformant to 6.0 schema  406   a ,  406   b ) in storage area  402   a , and version 5.x configuration data (e.g., XML documents conformant to 5.x schema  405   a - 405   c ) in storage area  402   b.    
         [0031]    Exemplary computing environment  400  also includes deployment manager  404 , and nodes  408 ,  410  and  412 . Deployment manager  404  and configuration repository  402  represent a “master” node, and nodes  408 ,  410  and  412  represent “slave” nodes. However, different from node  308  in  FIG. 3  (e.g., 5.x version node), node  408  now represents a 6.0 version node (e.g., having been configured for a version 6.0 WebSphere product). As shown, a 6.0 administrative console component of deployment manager  404  can read (and write) XML schema documents in 6.0 format from (and to) configuration repository  402   a . For this example, it may be assumed (e.g., as indicated by flow lines  411 ,  413 ) that deployment manager  404  is still “synching out” XML configuration data in 5.x form (e.g., XML documents in 5.x format  405   b ,  405   c ) to the remaining 5.x nodes (e.g., nodes  410  and  412 , respectively). Notably, different from the “earlier” state represented in  FIG. 3 , it also may be assumed (e.g., as indicated by flow line  409 ) for the state represented in  FIG. 4 , that deployment manager  404  is “synching out” XML configuration data in 6.0 form (e.g., XML document in 6.0 format  406   b ) as the initial upgrade of the 5.x nodes to 6.0 nodes. In other words, for this example, node  408  is being upgraded to a 6.0 node as the first upgrade in the series of 6.0 upgrades for the 5.x nodes. 
         [0032]    Referring now to  FIG. 5 , a block diagram of an exemplary distributed systems management computing environment is depicted, which further illustrates principles of the present invention. For example, computing environment  500  can represent a fourth state during a configuration conversion operation for a computing environment, such as, for example, the computing environments represented in  FIGS. 2-4 . In this fourth state, it may be assumed that the remaining 5.x nodes (e.g., nodes  510 ,  512 ) of computing environment  500  are in the process of being converted to 6.0 nodes. For example, configuration repository  502  of computing environment  500  is shown storing (transformed) version 6.0 configuration data (e.g., XML documents in 6.0 format  506   a - 506   d ) in storage area  502   a , and version 5.x configuration data (e.g., XML documents in 5.x format  505 ) in storage area  502   b.    
         [0033]    Exemplary computing environment  500  also includes deployment manager  504  and nodes  508 ,  510  and  512 . Deployment manager  504  and configuration repository  502  represent a “master” node, and nodes  508 ,  510  and  512  represent “slave” nodes. However, different from nodes  410  and  412  in  FIG. 4  (e.g., 5.x version nodes), nodes  510  and  512  now represent 6.0 version nodes (e.g., in the process of being configured for the version 6.0 WebSphere product). Notably, for this example, it may be assumed at this fourth state (e.g., as indicated by flow lines  511 ,  513 ) that deployment manager  504  is now “synching out” XML configuration data in 6.0 format (e.g., XML documents in 6.0 format  506   c ,  506   d ) to the remaining nodes being configured (e.g., nodes  510  and  512 ) in computing environment  500 . In other words, at this exemplary state, nodes  510  and  512  are being upgraded to 6.0 nodes as the remaining upgrades in the series of 6.0 node upgrades for what had been 5.x nodes. 
         [0034]    It is important to note that while the present invention has been described in the context of a fully functioning data processing system or computing environment, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media, such as a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are decoded for actual use in a particular data processing system. 
         [0035]    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.