US20050251546A1 - Method and system for configuring processing entities according to their roles in a data processing system with a distributed architecture - Google Patents

Method and system for configuring processing entities according to their roles in a data processing system with a distributed architecture Download PDF

Info

Publication number
US20050251546A1
US20050251546A1 US10/671,062 US67106203A US2005251546A1 US 20050251546 A1 US20050251546 A1 US 20050251546A1 US 67106203 A US67106203 A US 67106203A US 2005251546 A1 US2005251546 A1 US 2005251546A1
Authority
US
United States
Prior art keywords
role
entity
target configuration
computer
configuring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/671,062
Inventor
Luigi Pichetti
Antonio Secomandi
Roberto Ranucci
Claudio Marinelli
Francesco Lupini
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LUPINI, FRANCESCO, MARINELLI, CLAUDIO, PICHETTI, LUIGI, RANUCCI, ROBERTO, SECOMANDI, ANTONIO
Publication of US20050251546A1 publication Critical patent/US20050251546A1/en
Priority to US12/128,944 priority Critical patent/US8171116B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information

Definitions

  • the present invention relates to the data processing field, and more specifically to a method and a corresponding system for configuring processing entities according to their roles in a data processing system with a distributed architecture.
  • Managing configuration changes in a data processing system with a distributed architecture is a time consuming activity, particularly when the system includes a high number of processing entities on which new configurations must be enforced.
  • a typical example is that of a large network with thousands of computers, where software products are periodically upgraded in order to be abreast of the information technology development.
  • a software distribution application controls building of packages, which include instructions specifying the actions to be carried out on target computers for installing or removing selected software products; each package further embeds a copy of the software products to be installed.
  • the package is transmitted to the computers, and the corresponding instructions are interpreted so as to enforce the desired software configuration.
  • a data processing system with a distributed architecture including a plurality of processing entities, each entity playing at least one of a plurality of predetermined roles in the system, by a method of configuring the entities including the steps of: defining a target configuration for each role, identifying the at least one role of each entity, and configuring each entity according to the target configuration corresponding to the at least one role of the entity.
  • the present invention also provides different computer program applications for performing the method, and respective products storing the program applications.
  • FIG. 1 a is a schematic block diagram of a data processing system in which the method of the invention can be used;
  • FIG. 1 b shows the functional blocks of a generic computer of the system
  • FIG. 2 depicts the main software components used for implementing the method
  • FIGS. 3 a - 3 b is an activity diagram describing the flow of the method.
  • the system 100 consists of a network of computers; the computers are interconnected through an infrastructure 110 (for example, based on a Local Area Network, or LAN), according to a pattern defining a topology of the network 100 .
  • an infrastructure 110 for example, based on a Local Area Network, or LAN
  • Each computer plays a specific physic role in the network 100 ; the physic role of the computer depends on the architecture of the network 100 .
  • TMR Tivoli Management Region
  • the region has a three-tier structure.
  • a TMR server 120 s manages the whole region from a central site.
  • the server 120 s communicates with several gateways, or Managed Nodes (MN), 120 g .
  • MN Managed Nodes
  • the gateways 120 g bridge between the server 120 s and corresponding clusters of endpoints 120 e .
  • Each endpoint 120 e defines a target of management actions enforced by the server 120 s.
  • each computer may also play different logic roles specific for applications running in the network 100 .
  • a computer is configured to be a Source Host (SH), which operates as a preparation and testing central site for software products to be deployed throughout the network 100 .
  • SH Source Host
  • a generic computer 120 (server, gateway or endpoint) is formed by several units that are connected in parallel to a communication bus 150 .
  • a microprocessor ( ⁇ P) 155 controls operation of the computer 120
  • a Read Only Memory (ROM) 160 stores basic code for a bootstrap of the computer 120
  • a Random Access Memory (RAM) 165 is directly used as a working memory by the microprocessor 155 .
  • Several peripheral units are further connected to the bus 150 (by means of respective interfaces).
  • a mass memory consists of a magnetic hard-disk 170 and a unit 175 for reading CD-ROMs 180 .
  • the computer 120 includes input devices 185 (for example, a keyboard and a mouse), and output devices 190 (for example, a monitor and a printer).
  • a network Interface Card (NIC) 195 is used to connect the computer in the network.
  • NIC network Interface Card
  • the concepts of the present invention are also applicable when the network has a different topology, when the computers are interconnected in another way (for example, through the Internet), or when the network is replaced with an equivalent data processing system with a distributed architecture. Similar considerations apply if the system includes different logic and/or physic entities (such laptops, Personal Digital Assistants (PDAs), mobile telephones, or virtual machines), if the computers have a different structure or include other units. Alternatively, different physic and/or logic roles are envisaged; for example, a computer may operate as a firewall, as a collector of results in an inventory application, and so on.
  • PDAs Personal Digital Assistants
  • a computer may operate as a firewall, as a collector of results in an inventory application, and so on.
  • FIG. 2 a partial content of the working memory of the server in operation is shown.
  • the information (programs and data) is typically stored on the hard-disk and loaded (at least partially) into the working memory when the programs are running.
  • the programs are initially installed onto the hard-disk from CD-ROM.
  • An operating system 205 provides a software platform for the server, on top of which other programs can run.
  • a Tivoli Management Framework (TMF) 210 is installed over the operating system 205 ; the framework 210 defines a software infrastructure that is common to the whole region.
  • a catalogue 215 specifies a current software configuration of all the computers of the network. For each computer, the configuration catalogue 215 stores a name of its physic role and an inventory of the different software components of the products installed on the computer. The physic role of the computer is set at installation time; the software inventory is updated whenever the software components are installed and/or upgraded on the computer.
  • the configuration catalogue 215 is accessed by a discovery module 220 .
  • the discovery module 220 detects a current level of the framework installed on every computer (exploiting corresponding network services).
  • the discovery module 220 generates a further catalogue 225 dynamically.
  • the dynamic catalogue 225 stores the level of the framework and the name of its logic role.
  • the logic role is identified according to the software components installed on the computer; for example, the presence of a module SPEditor makes it possible to classify the computer as a source host in a software distribution application.
  • a driver 230 controls the unit for reading CD-ROMs.
  • the driver 230 is used to upload information relating to software products to be installed in the network (provided on one or more CD-ROMs).
  • the process of the invention is used to install a Tivoli Deployment Suite consisting of a Change Configuration Management (CCM) product, an Application Performance Management (APM) product, a Tivoli Resource Manager (TRM) product, a Software Distribution (SWD) product, and an Inventory (INV) product.
  • CCM Change Configuration Management
  • API Application Performance Management
  • TRM Tivoli Resource Manager
  • SWD Software Distribution
  • ISV Inventory
  • Each product is provided with a set of images of the different components to be installed on corresponding categories of computers (defined according to their physic and/or logic roles); the images uploaded from the CD-ROMs are stored in a repository 235 .
  • the product is provided with a file 240 (for example, in the XML format), which describes how to use the different images of the product.
  • the descriptor 240 includes a first section specifying a reference model for the product; for each (physic and logic) role, the reference model includes the name of the component(s) that must be installed on the computers playing that role.
  • the descriptor 240 includes another section specifying a transition table for installing the product; for each pair current state/target state of a generic component of the product, the transition table stores an indication of one or more actions required to reach the target state from the current state; an error code is instead specified when the transition from the current state to the target state is not supported.
  • the transition table specifies that the target state of the component requires its fresh installation (when no previous version of the component is available) or an upgrade (when a former, upgradeable version of the component is already installed); conversely, an error is specified when a direct migration from a very old level of the component to a latest level thereof is not possible.
  • a product including the components COMP1_v.4.1, COMP2_v.3.0, COMP3_v.2.5, and COMP4_v.2.3.
  • the reference model specifying the target states for the generic roles ROLE1, ROLE2 and ROLE3 is: Role Target state ROLE1 COMP1_v.4.1 ROLE2 COMP3_v.2.5, COMP4_v.2.3 ROLE3 COMP2_v.3.0
  • the descriptor of the product also includes the following transition table: Target state Current state Actions COMP1_v.4.1 N/A Install COMP1_v.4.1 COMP1_v.4.0 Upgrade to COMP1_v.4.1 COMP1_v.1-COMP1_v.3 Error COMP2_v.3.0 N/A Install COMP2_v.3.0 COMP2_v.2 Upgrade to COMP1_v.3.0 COMP2_v.1 Error COMP3_v.2.5 N/A Install COMP3_v.2.5 COMP3_v.2.0-COMP3_v.2.4 Upgrade to COMP3_v.2.5 COMP3_v.1 Error COMP4_v.2.3 N/A Install COMP4_v.2.3 COMP4_v.2.0-COMP4_v.2.2. Upgrade to COMP4_v.2.3 COMP4_v.1 Error
  • the configuration catalogue 215 , the dynamic catalogue 225 , and the descriptor 240 are input to a differencing engine 245 .
  • the engine 245 generates a list of actions 250 for enforcing a desired target configuration in the network (as defined in the reference model of the descriptor 240 ).
  • the action list 250 stores one or more records specifying the names of the components to be installed and the actions to be executed for installing the components starting from their current states on the computer.
  • the actions are ordered into a correct sequence; for example, the sequence ensures the inter-operability in the network (installing the different products in a top-down order beginning from the server) and the required dependencies among the products.
  • the action list 250 is supplied to a plan generator 255 .
  • the plan generator 255 exploits the framework 210 for executing some of the actions synchronously.
  • the other actions are chained into one or more plans 260 , each one scheduled at a desired time.
  • a module 265 controls the execution of the plans 260 (exploiting the framework 210 ).
  • the plan executor 265 transmits the list of actions (extracted from each plan 260 ) and the images of the corresponding components (imported from the repository 235 ) to the relevant computers.
  • the concepts of the present invention are also applicable when the whole application for configuring the network has another structure, when different products must be installed on the computers, or when the current configuration of the computers is detected in another way (for example, only during the configuration process or only dynamically). Similar considerations apply if the products with the corresponding descriptors are provided in a different manner (for example, they are downloaded from a web site of the publisher), if the descriptor has another format, if the actions required to enforce the desired target configuration in the network are executed in a different way, and the like. For example, every computer retrieves the images of the components to be installed from depots distributed across the network; alternatively, the computer accesses the web site of the publisher and then downloads the images directly.
  • a process 300 of configuring the network described above begins at the black start circle 303 in the swim-lane of the publisher.
  • a new suite of products is made available.
  • the publisher defines the corresponding reference models at block 309 , and the corresponding transition tables at block 312 .
  • the suite of products with their descriptors is then delivered to the server at block 315 .
  • the images of the products and the corresponding descriptors are uploaded onto the hard-disk.
  • the installation of the products is typically guided by a wizard developed in the Install Shield Multi-Platform (ISMP) environment.
  • ISMP Install Shield Multi-Platform
  • a panel prompts a system administrator to select the desired products to be installed (with the framework and the plan executor that are mandatory); for every product, the target state for each role (specifying the components to be installed) may be displayed. If the proposed choices are not accepted at block 324 , the target configuration of the network may be updated at block 327 ; the process then returns to block 321 .
  • the process descends into block 330 ; the physic role of every computer is then identified (from the configuration catalogue).
  • the current configuration of every computer is detected (retrieving the information relating to the level of the respective frameworks dynamically and the information relating to the other components installed on the computer from the configuration catalogue).
  • the computers are then classified at block 336 in the logic role corresponding to the components installed thereon.
  • the flow of activity descends into block 339 ; for each (physic and/or logic) role of every computer, the desired target state is extracted from the reference model; the entry of the transition table associated with the pair current state/target state in then identified. If a migration is not allowed from the current state to the target state, an error condition is entered at block 342 . Conversely, the list of actions required to reach the target state from the current state on the computer is generated at block 345 .
  • Some of the actions resulting from this differencing process are executed synchronously at block 348 under the control of the plan generator (for example, a first installation of the framework or the configuration application running on the server is performed directly).
  • the process then passes to block 351 , wherein one or more plans for enforcing the other actions are created and scheduled for execution.
  • the execution of the plan is started at block 354 .
  • the list of actions and the corresponding images are transmitted to the relevant computers of the network.
  • an agent running on a generic computer installs the desired components at block 360 .
  • the result of the installation operation is returned to the server.
  • the server at block 366 updates the record associated with the computer in the configuration catalogue accordingly. The process then ends at the concentric white/black stop circles 369 .
  • the concepts of the present invention are also applicable when an equivalent method is performed, or when the process is aborted if a condition preventing its execution is detected (for example, because the process is launched on a computer that is not the server). Similar considerations apply if the space on the hard-disk of the server is checked before loading the images of the products to be installed, or if a mechanism is provided for restarting failed plans (skipping the actions already executed).
  • the same method is also applicable when a product must be upgraded (for example, by installing a patch).
  • the patch is shipped with a corresponding new descriptor (including the reference model and the transition table); the descriptor specifies here the patch needs to be applied and how to do so.
  • the process detects the current configuration of the computers, and proposes the actions to be carried out for aligning the network to the desired target configuration.
  • the server automatically monitors the web site of the publisher; as soon as a new patch is made available, its application is enforced as described above.
  • the present invention proposes a method for use in a data processing system with a distributed architecture.
  • the system includes a plurality of processing entities; each entity plays one or more predetermined roles in the system.
  • the method of the invention is designed to configure the entities.
  • the method starts with the step of defining a target configuration for each role.
  • the roles of each entity are identified.
  • Each entity is then configured according to the target configuration corresponding to the roles of the entity.
  • the solution of the invention makes it possible to configure the entities of the data processing system according to their roles.
  • the proposed mechanism is well suited to cover either the installation or the upgrading of distributed applications, and particularly applications including multiple products.
  • this method is suitable to address a scenario wherein the multi-product application is to be installed in a network wherein some products (possibly of a former version) have already been installed individually; advantageously, the solution of the invention is used to install a software infrastructure used to manage the life cycle of the whole system (even if different applications are contemplated and within the scope of the invention).
  • the proposed method makes it possible to configure data processing systems with a complex topology in a very simple manner.
  • the roles played by the computers include one or more physic roles.
  • the physic role of each computer is retrieved from a memory structure set at the installation of the computer (either stored on the server or on the computer itself).
  • the proposed mechanism is very simple, but at the same time effective.
  • the network also supports one or more logic roles.
  • each computer is established according to the components (or other equivalent software features) installed on the same.
  • the devised mechanism is very flexible, and it can be adapted dynamically to the different application requirements.
  • the method only supports physic roles, the physic role of every computer is identified in a different manner (for example, inspecting a directory specifying a topology of the network), the method only supports logic roles, the logic role of every computer is identified in another way (for example, retrieving the information from a register that is set at the installation of the application on the computer), or different roles are envisaged.
  • a transition table is used to identify the actions required to reach each desired target state from each current state.
  • This feature makes it possible to automate the whole configuration process.
  • the proposed method is used to install software products (each one provided with a respective reference model and a respective transition table).
  • the devised mechanism strongly simplifies the maintenance of the software products used in the network.
  • the method of the invention leads itself to be implemented even configuring each computer according to the desired target state in a different manner (for example, without detecting its current state by the server).
  • the proposed method is used to manage different configuration features (such as the content of internal registers or the triggering of monitoring activities).
  • the solution according to the present invention is implemented with a computer program application, which is provided as a corresponding product stored on a suitable medium.
  • the method is performed under the control of the server.
  • This architecture makes it possible to manage the whole configuration process centrally from a single site.
  • the program application is pre-loaded onto the hard-disk, is sent to the server through the Internet, is broadcast, or more generally is provided in any other form directly loadable into the working memory of the server.
  • the method according to the present invention leads itself to be carried out with an application having a different architecture (for example, implementing an adaptive model), or even with a hardware structure (for example, integrated in a chip of semiconductor material).

Abstract

A method (300) and a corresponding system are proposed for configuring different computers of a network. Each computer plays a specific physic role (defined by an architecture of the network) and/or a specific logic role (defined by the applications running in the network). A reference model and a transition table are associated (306-312) with each product to be installed in the network; the reference model specifies a target configuration for each role (defined by the components of the product to be installed), while the transition table specifies the actions required to reach each target configuration from each current configuration of the computers. A server identifies (330-336) the role and the current configuration of each computer; the actions required to enforce the desired target configuration on the computer are then established and executed (333,339-366).

Description

    TECHNICAL FIELD
  • The present invention relates to the data processing field, and more specifically to a method and a corresponding system for configuring processing entities according to their roles in a data processing system with a distributed architecture.
  • BACKGROUND ART
  • Managing configuration changes in a data processing system with a distributed architecture is a time consuming activity, particularly when the system includes a high number of processing entities on which new configurations must be enforced. A typical example is that of a large network with thousands of computers, where software products are periodically upgraded in order to be abreast of the information technology development.
  • Software distribution applications have been proposed in the last years to assist a system administrator in efficiently managing deployment of software products from a central site of the network. A software distribution application controls building of packages, which include instructions specifying the actions to be carried out on target computers for installing or removing selected software products; each package further embeds a copy of the software products to be installed. The package is transmitted to the computers, and the corresponding instructions are interpreted so as to enforce the desired software configuration.
  • However, this solution is not completely satisfactory. Particularly, the administrator is faced with the burden of manually defining the packages to be distributed to the computers. As a consequence, the process of managing the configuration changes is complex and error-prone, particularly if the network includes a high number of computers.
  • The drawbacks of the solutions known in the art are more acute when the configuration process involves a software application that is distributed across the network. Typically, the distributed application includes different software components for corresponding computers of the network. As a consequence, the task of installing and upgrading the distributed application is very difficult (because of the need to tackle the problem as a whole, without the possibility of addressing a single computer at the time). A typical example is that of a software infrastructure used to manage several aspects of the life cycle of the network itself.
  • The above-described problems are exacerbated when multiple products are shipped as a single suite; moreover, additional difficulties arise when the network has a complex topology.
  • SUMMARY OF THE INVENTION
  • It is an object of the present invention to provide a method of configuring the entities of the data processing system according to their roles played in the system.
  • It is another object of the present invention to simplify the configuration of the system.
  • It is yet another object of the present invention to provide a mechanism that is well suited to install and upgrade distributed applications, particularly when the applications include multiple products.
  • Moreover, it is an object of the present invention to support the configuration of data processing systems with a complex topology.
  • The accomplishment of these and other related objects is achieved, in a data processing system with a distributed architecture including a plurality of processing entities, each entity playing at least one of a plurality of predetermined roles in the system, by a method of configuring the entities including the steps of: defining a target configuration for each role, identifying the at least one role of each entity, and configuring each entity according to the target configuration corresponding to the at least one role of the entity.
  • The present invention also provides different computer program applications for performing the method, and respective products storing the program applications.
  • Moreover, a corresponding data processing system and a server computer for use in the system are encompassed.
  • The novel features believed to be characteristic of this invention are set forth in the appended claims. The invention itself, however, as well as these and other related objects and advantages thereof, will be best understood by reference to the following detailed description to be read in conjunction with the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 a is a schematic block diagram of a data processing system in which the method of the invention can be used;
  • FIG. 1 b shows the functional blocks of a generic computer of the system;
  • FIG. 2 depicts the main software components used for implementing the method;
  • FIGS. 3 a-3 b is an activity diagram describing the flow of the method.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • With reference in particular to FIG. 1 a, a data processing system 100 with a distributed architecture is shown. The system 100 consists of a network of computers; the computers are interconnected through an infrastructure 110 (for example, based on a Local Area Network, or LAN), according to a pattern defining a topology of the network 100.
  • Each computer plays a specific physic role in the network 100; the physic role of the computer depends on the architecture of the network 100. For example, in a Tivoli Management Environment (TME), the network 100 implements an independent region (referred to as Tivoli Management Region, or TMR). The region has a three-tier structure. A TMR server 120 s manages the whole region from a central site. The server 120 s communicates with several gateways, or Managed Nodes (MN), 120 g. The gateways 120 g bridge between the server 120 s and corresponding clusters of endpoints 120 e. Each endpoint 120 e defines a target of management actions enforced by the server 120 s.
  • Moreover, each computer (generically denoted with 120) may also play different logic roles specific for applications running in the network 100. For example, in a software distribution process a computer is configured to be a Source Host (SH), which operates as a preparation and testing central site for software products to be deployed throughout the network 100.
  • A shown in FIG. 1 b, a generic computer 120 (server, gateway or endpoint) is formed by several units that are connected in parallel to a communication bus 150. In detail, a microprocessor (μP) 155 controls operation of the computer 120, a Read Only Memory (ROM) 160 stores basic code for a bootstrap of the computer 120, and a Random Access Memory (RAM) 165 is directly used as a working memory by the microprocessor 155. Several peripheral units are further connected to the bus 150 (by means of respective interfaces). Particularly, a mass memory consists of a magnetic hard-disk 170 and a unit 175 for reading CD-ROMs 180. Moreover, the computer 120 includes input devices 185 (for example, a keyboard and a mouse), and output devices 190 (for example, a monitor and a printer). A network Interface Card (NIC) 195 is used to connect the computer in the network.
  • However, the concepts of the present invention are also applicable when the network has a different topology, when the computers are interconnected in another way (for example, through the Internet), or when the network is replaced with an equivalent data processing system with a distributed architecture. Similar considerations apply if the system includes different logic and/or physic entities (such laptops, Personal Digital Assistants (PDAs), mobile telephones, or virtual machines), if the computers have a different structure or include other units. Alternatively, different physic and/or logic roles are envisaged; for example, a computer may operate as a firewall, as a collector of results in an inventory application, and so on.
  • Considering now FIG. 2, a partial content of the working memory of the server in operation is shown. The information (programs and data) is typically stored on the hard-disk and loaded (at least partially) into the working memory when the programs are running. The programs are initially installed onto the hard-disk from CD-ROM.
  • An operating system 205 provides a software platform for the server, on top of which other programs can run. A Tivoli Management Framework (TMF) 210 is installed over the operating system 205; the framework 210 defines a software infrastructure that is common to the whole region.
  • A catalogue 215 specifies a current software configuration of all the computers of the network. For each computer, the configuration catalogue 215 stores a name of its physic role and an inventory of the different software components of the products installed on the computer. The physic role of the computer is set at installation time; the software inventory is updated whenever the software components are installed and/or upgraded on the computer.
  • The configuration catalogue 215 is accessed by a discovery module 220. The discovery module 220 detects a current level of the framework installed on every computer (exploiting corresponding network services). The discovery module 220 generates a further catalogue 225 dynamically. For each computer, the dynamic catalogue 225 stores the level of the framework and the name of its logic role. The logic role is identified according to the software components installed on the computer; for example, the presence of a module SPEditor makes it possible to classify the computer as a source host in a software distribution application.
  • A driver 230 controls the unit for reading CD-ROMs. The driver 230 is used to upload information relating to software products to be installed in the network (provided on one or more CD-ROMs). For example, the process of the invention is used to install a Tivoli Deployment Suite consisting of a Change Configuration Management (CCM) product, an Application Performance Management (APM) product, a Tivoli Resource Manager (TRM) product, a Software Distribution (SWD) product, and an Inventory (INV) product.
  • Each product is provided with a set of images of the different components to be installed on corresponding categories of computers (defined according to their physic and/or logic roles); the images uploaded from the CD-ROMs are stored in a repository 235. Moreover, the product is provided with a file 240 (for example, in the XML format), which describes how to use the different images of the product. The descriptor 240 includes a first section specifying a reference model for the product; for each (physic and logic) role, the reference model includes the name of the component(s) that must be installed on the computers playing that role. Moreover, the descriptor 240 includes another section specifying a transition table for installing the product; for each pair current state/target state of a generic component of the product, the transition table stores an indication of one or more actions required to reach the target state from the current state; an error code is instead specified when the transition from the current state to the target state is not supported.
  • For example, the transition table specifies that the target state of the component requires its fresh installation (when no previous version of the component is available) or an upgrade (when a former, upgradeable version of the component is already installed); conversely, an error is specified when a direct migration from a very old level of the component to a latest level thereof is not possible. More specifically, let us consider a product including the components COMP1_v.4.1, COMP2_v.3.0, COMP3_v.2.5, and COMP4_v.2.3. The reference model specifying the target states for the generic roles ROLE1, ROLE2 and ROLE3 is:
    Role Target state
    ROLE1 COMP1_v.4.1
    ROLE2 COMP3_v.2.5, COMP4_v.2.3
    ROLE3 COMP2_v.3.0
  • The descriptor of the product also includes the following transition table:
    Target state Current state Actions
    COMP1_v.4.1 N/A Install COMP1_v.4.1
    COMP1_v.4.0 Upgrade to
    COMP1_v.4.1
    COMP1_v.1-COMP1_v.3 Error
    COMP2_v.3.0 N/A Install COMP2_v.3.0
    COMP2_v.2 Upgrade to
    COMP1_v.3.0
    COMP2_v.1 Error
    COMP3_v.2.5 N/A Install COMP3_v.2.5
    COMP3_v.2.0-COMP3_v.2.4 Upgrade to
    COMP3_v.2.5
    COMP3_v.1 Error
    COMP4_v.2.3 N/A Install COMP4_v.2.3
    COMP4_v.2.0-COMP4_v.2.2. Upgrade to
    COMP4_v.2.3
    COMP4_v.1 Error
  • For example, if the product must be installed on a computer playing the role ROLE3 and wherein the component COMP2_v.2 is already installed, the action “Upgrade to COMP2_v.3.0” must be executed to reach the desired target state.
  • The configuration catalogue 215, the dynamic catalogue 225, and the descriptor 240 are input to a differencing engine 245. The engine 245 generates a list of actions 250 for enforcing a desired target configuration in the network (as defined in the reference model of the descriptor 240). For each computer, the action list 250 stores one or more records specifying the names of the components to be installed and the actions to be executed for installing the components starting from their current states on the computer. The actions are ordered into a correct sequence; for example, the sequence ensures the inter-operability in the network (installing the different products in a top-down order beginning from the server) and the required dependencies among the products.
  • The action list 250 is supplied to a plan generator 255. The plan generator 255 exploits the framework 210 for executing some of the actions synchronously. The other actions are chained into one or more plans 260, each one scheduled at a desired time. A module 265 controls the execution of the plans 260 (exploiting the framework 210). For this purpose, the plan executor 265 transmits the list of actions (extracted from each plan 260) and the images of the corresponding components (imported from the repository 235) to the relevant computers.
  • However, the concepts of the present invention are also applicable when the whole application for configuring the network has another structure, when different products must be installed on the computers, or when the current configuration of the computers is detected in another way (for example, only during the configuration process or only dynamically). Similar considerations apply if the products with the corresponding descriptors are provided in a different manner (for example, they are downloaded from a web site of the publisher), if the descriptor has another format, if the actions required to enforce the desired target configuration in the network are executed in a different way, and the like. For example, every computer retrieves the images of the components to be installed from depots distributed across the network; alternatively, the computer accesses the web site of the publisher and then downloads the images directly.
  • As shown in the activity diagram of FIGS. 3 a-3 b, a process 300 of configuring the network described above begins at the black start circle 303 in the swim-lane of the publisher. Continuing to block 306, a new suite of products is made available. At the same time, the publisher defines the corresponding reference models at block 309, and the corresponding transition tables at block 312. The suite of products with their descriptors is then delivered to the server at block 315.
  • Considering now block 318 in the swim-lane of the server, the images of the products and the corresponding descriptors are uploaded onto the hard-disk. The installation of the products is typically guided by a wizard developed in the Install Shield Multi-Platform (ISMP) environment. Particularly, at block 321 a panel prompts a system administrator to select the desired products to be installed (with the framework and the plan executor that are mandatory); for every product, the target state for each role (specifying the components to be installed) may be displayed. If the proposed choices are not accepted at block 324, the target configuration of the network may be updated at block 327; the process then returns to block 321.
  • Conversely, as soon as the system administrator confirms the target configuration the process descends into block 330; the physic role of every computer is then identified (from the configuration catalogue). Continuing to block 333, the current configuration of every computer is detected (retrieving the information relating to the level of the respective frameworks dynamically and the information relating to the other components installed on the computer from the configuration catalogue). The computers are then classified at block 336 in the logic role corresponding to the components installed thereon.
  • As soon as the above-described discovery process has been completed, the flow of activity descends into block 339; for each (physic and/or logic) role of every computer, the desired target state is extracted from the reference model; the entry of the transition table associated with the pair current state/target state in then identified. If a migration is not allowed from the current state to the target state, an error condition is entered at block 342. Conversely, the list of actions required to reach the target state from the current state on the computer is generated at block 345.
  • Some of the actions resulting from this differencing process are executed synchronously at block 348 under the control of the plan generator (for example, a first installation of the framework or the configuration application running on the server is performed directly). The process then passes to block 351, wherein one or more plans for enforcing the other actions are created and scheduled for execution.
  • As soon as the scheduled time of a generic plan is reached, the execution of the plan is started at block 354. Continuing to block 357, the list of actions and the corresponding images are transmitted to the relevant computers of the network. In response thereto, an agent running on a generic computer installs the desired components at block 360. Passing to block 363, the result of the installation operation is returned to the server. The server at block 366 updates the record associated with the computer in the configuration catalogue accordingly. The process then ends at the concentric white/black stop circles 369.
  • However, the concepts of the present invention are also applicable when an equivalent method is performed, or when the process is aborted if a condition preventing its execution is detected (for example, because the process is launched on a computer that is not the server). Similar considerations apply if the space on the hard-disk of the server is checked before loading the images of the products to be installed, or if a mechanism is provided for restarting failed plans (skipping the actions already executed).
  • The same method is also applicable when a product must be upgraded (for example, by installing a patch). In this case, the patch is shipped with a corresponding new descriptor (including the reference model and the transition table); the descriptor specifies here the patch needs to be applied and how to do so. As described above, the process detects the current configuration of the computers, and proposes the actions to be carried out for aligning the network to the desired target configuration. As a further enhancement, the server automatically monitors the web site of the publisher; as soon as a new patch is made available, its application is enforced as described above.
  • More generally, the present invention proposes a method for use in a data processing system with a distributed architecture. The system includes a plurality of processing entities; each entity plays one or more predetermined roles in the system. The method of the invention is designed to configure the entities. The method starts with the step of defining a target configuration for each role. The roles of each entity are identified. Each entity is then configured according to the target configuration corresponding to the roles of the entity.
  • The solution of the invention makes it possible to configure the entities of the data processing system according to their roles.
  • As a consequence, the management of any configuration change in the system is strongly simplified.
  • The proposed mechanism is well suited to cover either the installation or the upgrading of distributed applications, and particularly applications including multiple products. For example, this method is suitable to address a scenario wherein the multi-product application is to be installed in a network wherein some products (possibly of a former version) have already been installed individually; advantageously, the solution of the invention is used to install a software infrastructure used to manage the life cycle of the whole system (even if different applications are contemplated and within the scope of the invention).
  • Moreover, the proposed method makes it possible to configure data processing systems with a complex topology in a very simple manner.
  • The preferred embodiment of the invention described above offers further advantages.
  • Particularly, the roles played by the computers include one or more physic roles.
  • This characteristic allows the definition of reference models, which are bound by an architecture of the network.
  • Advantageously, the physic role of each computer is retrieved from a memory structure set at the installation of the computer (either stored on the server or on the computer itself).
  • The proposed mechanism is very simple, but at the same time effective.
  • As a further enhancement, the network also supports one or more logic roles.
  • This additional feature strongly simplifies the configuration of applications requiring computers with different functions.
  • Preferably, the logic role of each computer is established according to the components (or other equivalent software features) installed on the same.
  • The devised mechanism is very flexible, and it can be adapted dynamically to the different application requirements.
  • Alternatively, the method only supports physic roles, the physic role of every computer is identified in a different manner (for example, inspecting a directory specifying a topology of the network), the method only supports logic roles, the logic role of every computer is identified in another way (for example, retrieving the information from a register that is set at the installation of the application on the computer), or different roles are envisaged.
  • In an advantageous embodiment of the invention, a transition table is used to identify the actions required to reach each desired target state from each current state.
  • This feature makes it possible to automate the whole configuration process.
  • Preferably, the proposed method is used to install software products (each one provided with a respective reference model and a respective transition table).
  • The devised mechanism strongly simplifies the maintenance of the software products used in the network.
  • However, the method of the invention leads itself to be implemented even configuring each computer according to the desired target state in a different manner (for example, without detecting its current state by the server). Alternatively, the proposed method is used to manage different configuration features (such as the content of internal registers or the triggering of monitoring activities).
  • Advantageously, the solution according to the present invention is implemented with a computer program application, which is provided as a corresponding product stored on a suitable medium.
  • In a preferred embodiment, the method is performed under the control of the server.
  • This architecture makes it possible to manage the whole configuration process centrally from a single site.
  • Alternatively, the program application is pre-loaded onto the hard-disk, is sent to the server through the Internet, is broadcast, or more generally is provided in any other form directly loadable into the working memory of the server. However, the method according to the present invention leads itself to be carried out with an application having a different architecture (for example, implementing an adaptive model), or even with a hardware structure (for example, integrated in a chip of semiconductor material).
  • Naturally, in order to satisfy local and specific requirements, a person skilled in the art may apply to the solution described above many modifications and alterations all of which, however, are included within the scope of protection of the invention as defined by the following claims.

Claims (12)

1. In a data processing system with a distributed architecture including a plurality of processing entities, each entity playing at least one of a plurality of predetermined roles in the system, a method of configuring the entities including the steps of:
defining a target configuration for each role,
identifying the at least one role of each entity, and
configuring each entity according to the target configuration corresponding to the at least one role of the entity.
2. The method according to claim 1, wherein the plurality of roles includes at least one physic role defined by an architecture of the system.
3. The method according to claim 2, wherein an indication of the physic role of each entity is stored in a memory structure at an installation of the entity in the system, the step of identifying the at least one role of each entity including retrieving the indication of the corresponding physic role from the memory structure.
4. The method according to claim 1, wherein the plurality of roles includes at least one logic role defined by a software application installed in the system.
5. The method according to claim 4, wherein the software application includes a plurality of software features, each logic role being associated with a corresponding software feature, and wherein the step of identifying the at least one role of each entity includes:
detecting the software feature installed on the entity, and
establishing the logic role according to the installed software feature.
6. The method according to claim 1, wherein the step of configuring each entity according to the target configuration includes:
detecting a current configuration of the entity,
identifying at least one action required to reach the target configuration from the current configuration, and
executing the at least one action.
7. The method according to claim 6, further including the steps of:
providing a software product including a plurality of components,
associating a reference structure with the product, the reference structure defining the target configuration for each role specifying at least one component to be installed, and
associating a transition structure with the product, for each current configuration the transition structure identifying the at least one action required to reach each target configuration.
8. A computer program application directly loadable into a working memory of a data processing system with a distributed architecture for performing the method of claim 1 when the program application is run in the system.
9. In a data processing system with a distributed architecture including a plurality of processing entities, each entity playing at least one of a plurality of predetermined roles in the system, a computer program application directly loadable into a working memory of a server computer for performing a method of configuring the entities when the program application is run on the server computer, the method including the steps of:
defining a target configuration for each role,
identifying the at least one role of each entity, and
causing each entity to be configured according to the target configuration corresponding to the at least one role of the entity.
10. A program product comprising a computer readable medium on which the program application of claim 8 is stored.
11. A data processing system with a distributed architecture including a plurality of processing entities, each entity playing at least one of a plurality of predetermined roles in the system, means for defining a target configuration for each role, means for identifying the at least one role of each entity, and means for configuring each entity according to the target configuration corresponding to the at least one role of the entity.
12. In a data processing system with a distributed architecture including a plurality of processing entities, each entity playing at least one of a plurality of predetermined roles in the system, a server computer for configuring the entities including means for defining a target configuration for each role, means for identifying the at least one role of each entity, and means for causing each entity to be configured according to the target configuration corresponding to the at least one role of the entity.
US10/671,062 2002-12-11 2003-09-25 Method and system for configuring processing entities according to their roles in a data processing system with a distributed architecture Abandoned US20050251546A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/128,944 US8171116B2 (en) 2002-12-11 2008-05-29 Configuring processing entities according to their roles in a data processing system with a distributed architecture

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02027753 2002-12-11
FR02027753.9 2002-12-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/128,944 Continuation US8171116B2 (en) 2002-12-11 2008-05-29 Configuring processing entities according to their roles in a data processing system with a distributed architecture

Publications (1)

Publication Number Publication Date
US20050251546A1 true US20050251546A1 (en) 2005-11-10

Family

ID=35240629

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/671,062 Abandoned US20050251546A1 (en) 2002-12-11 2003-09-25 Method and system for configuring processing entities according to their roles in a data processing system with a distributed architecture
US12/128,944 Expired - Fee Related US8171116B2 (en) 2002-12-11 2008-05-29 Configuring processing entities according to their roles in a data processing system with a distributed architecture

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/128,944 Expired - Fee Related US8171116B2 (en) 2002-12-11 2008-05-29 Configuring processing entities according to their roles in a data processing system with a distributed architecture

Country Status (1)

Country Link
US (2) US20050251546A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242396A1 (en) * 2005-04-20 2006-10-26 Cartes Andrew C Method and apparatus for configuring a computer system
US20080046097A1 (en) * 2006-08-18 2008-02-21 Microsoft Corporation Graphical representation of setup state on multiple nodes
US20080228889A1 (en) * 2005-12-20 2008-09-18 International Business Machines Corporation Method, system and computer program product for distributing software based on an e-mail service
US20090055838A1 (en) * 2007-08-23 2009-02-26 Microsoft Corporation Monitoring distributed applications
US20090113437A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Translating declarative models
US8099494B2 (en) 2007-06-29 2012-01-17 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8181151B2 (en) 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US8239505B2 (en) 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8306996B2 (en) 2007-10-26 2012-11-06 Microsoft Corporation Processing model-based commands for distributed applications

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9411570B2 (en) * 2009-02-27 2016-08-09 Red Hat, Inc. Integrating software provisioning and configuration management
US8396949B2 (en) 2010-06-03 2013-03-12 Microsoft Corporation Metadata driven automatic deployment of distributed server systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845090A (en) * 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
US5937197A (en) * 1996-11-06 1999-08-10 Ncr Corporation Updating of electronic performance support systems by remote parties
US6038586A (en) * 1993-12-30 2000-03-14 Frye; Russell Automated software updating and distribution
US6237020B1 (en) * 1996-10-01 2001-05-22 International Business Machines Corporation Task-oriented automatic distribution of software
US7254631B2 (en) * 2001-04-19 2007-08-07 International Business Machines Corporation Method and system for distributing software features to a computer

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994025913A2 (en) * 1993-04-30 1994-11-10 Novadigm, Inc. Method and apparatus for enterprise desktop management
US5586304A (en) * 1994-09-08 1996-12-17 Compaq Computer Corporation Automatic computer upgrading
GB9623298D0 (en) * 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US5953533A (en) * 1997-08-27 1999-09-14 Lucent Technologies Inc. Computer software distribution, installation and maintenance method and apparatus
US7024450B1 (en) * 1997-10-06 2006-04-04 Mci, Inc. Method and apparatus for deploying service modules among service nodes distributed in an intelligent network
GB2333864B (en) * 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
WO2002025438A1 (en) * 2000-09-22 2002-03-28 Patchlink.Com Corporation Non-invasive automatic offsite patch fingerprinting and updating system and method
US6918112B2 (en) * 2000-11-29 2005-07-12 Microsoft Corporation System and method to facilitate installation of components across one or more computers
US7013461B2 (en) * 2001-01-05 2006-03-14 International Business Machines Corporation Systems and methods for service and role-based software distribution

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038586A (en) * 1993-12-30 2000-03-14 Frye; Russell Automated software updating and distribution
US5845090A (en) * 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
US6237020B1 (en) * 1996-10-01 2001-05-22 International Business Machines Corporation Task-oriented automatic distribution of software
US5937197A (en) * 1996-11-06 1999-08-10 Ncr Corporation Updating of electronic performance support systems by remote parties
US7254631B2 (en) * 2001-04-19 2007-08-07 International Business Machines Corporation Method and system for distributing software features to a computer

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242396A1 (en) * 2005-04-20 2006-10-26 Cartes Andrew C Method and apparatus for configuring a computer system
US7447889B2 (en) * 2005-04-20 2008-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for configuring a computer system utilizing a read only memory storing an option file containing selectable configuration options and a script file
US20080228889A1 (en) * 2005-12-20 2008-09-18 International Business Machines Corporation Method, system and computer program product for distributing software based on an e-mail service
US20080046097A1 (en) * 2006-08-18 2008-02-21 Microsoft Corporation Graphical representation of setup state on multiple nodes
US8099494B2 (en) 2007-06-29 2012-01-17 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8239505B2 (en) 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US20090055838A1 (en) * 2007-08-23 2009-02-26 Microsoft Corporation Monitoring distributed applications
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US20090113437A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Translating declarative models
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US8181151B2 (en) 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US8306996B2 (en) 2007-10-26 2012-11-06 Microsoft Corporation Processing model-based commands for distributed applications
US8443347B2 (en) 2007-10-26 2013-05-14 Microsoft Corporation Translating declarative models

Also Published As

Publication number Publication date
US20080228902A1 (en) 2008-09-18
US8171116B2 (en) 2012-05-01

Similar Documents

Publication Publication Date Title
US8171116B2 (en) Configuring processing entities according to their roles in a data processing system with a distributed architecture
US7788350B2 (en) Software distribution application supporting operating system installations
US8578371B2 (en) Software distribution method and system with automatic prerequisite installation
US7937697B2 (en) Method, system and computer program for distributing software patches
US8166458B2 (en) Method and system for automated distributed software testing
US20050262501A1 (en) Software distribution method and system supporting configuration management
US7310801B2 (en) Servicing a component-based software product throughout the software product lifecycle
US8037472B2 (en) Building and installing dynamic installation packages using a declarative authoring tool
US8490082B2 (en) System and method for representing user processes as software packages in a software package management system
US8863137B2 (en) Systems and methods for automated provisioning of managed computing resources
US7966612B2 (en) Method, system and computer program for installing shared software components
US6944653B2 (en) Zero-click deployment of data processing systems
EP3317762A1 (en) Methods and apparatus for software lifecycle management of a virtual computing environment
US20060277537A1 (en) Deployment of containers and container extensions in a modular code runtime platform through a runtime platform extension point
US20100162227A1 (en) Automation of Mainframe Software Deployment
US8817288B2 (en) Information processing system, management method, and storage medium for placing an application after an image forming apparatus has been arranged
JP2009064425A (en) Method and system for performing installation and configuration management of tester instrument module
JP2004158012A (en) System and method for software application management
US20050120344A1 (en) Optimal component installation
CN112230942A (en) Automatic deployment method and system supporting various domestic operating systems
CN110098952A (en) A kind of management method and device of server
CN114201239B (en) System adapting method and device, electronic equipment and storage medium
WO2017004269A1 (en) Methods and apparatus for software lifecycle management of a virtual computing environment
CN105282614B (en) A kind of upgrade method of module TV, module TV and upgrade-system
CN112612572B (en) Interactive cloud native application distribution management system and method based on graphics

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PICHETTI, LUIGI;SECOMANDI, ANTONIO;RANUCCI, ROBERTO;AND OTHERS;REEL/FRAME:014561/0954

Effective date: 20030918

STCB Information on status: application discontinuation

Free format text: EXPRESSLY ABANDONED -- DURING EXAMINATION