US8302093B2 - Automated deployment of defined topology in distributed computing environment - Google Patents

Automated deployment of defined topology in distributed computing environment Download PDF

Info

Publication number
US8302093B2
US8302093B2 US12/200,720 US20072008A US8302093B2 US 8302093 B2 US8302093 B2 US 8302093B2 US 20072008 A US20072008 A US 20072008A US 8302093 B2 US8302093 B2 US 8302093B2
Authority
US
United States
Prior art keywords
components
publisher
publishers
dependency
reading
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.)
Expired - Fee Related, expires
Application number
US12/200,720
Other versions
US20100058331A1 (en
Inventor
Daniel C. Berg
Brad L. Blancett
Michael D. Elder
Chad M. Holliday
Narinder Makin
Timothy A. Pouyer
John Swanke
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
Priority to US12/200,720 priority Critical patent/US8302093B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: POUYER, TIMOTHY A., BERG, DANIEL C., BLANCETT, BRAD L., ELDER, MICHAEL D., MAKIN, NARINDER, SWANKE, JOHN E., HOLLIDAY, CHAD M.
Publication of US20100058331A1 publication Critical patent/US20100058331A1/en
Application granted granted Critical
Publication of US8302093B2 publication Critical patent/US8302093B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • the present invention relates to distributed computing environments, and more particularly to improved methods for managing deployment of software in distributed computing environments.
  • a software product must be deployed in a distributed computing environment wherein components of the software product are located in different locations and must work in concert over a network.
  • Another problem with the approach above is that it does not provide adequate information on how various components of a software product can be divided or distributed when the product is deployed in a distributed computing environment.
  • Various relationships and dependences exist between components of a software product, and the manner in which a software product is divided or parsed in a distributed computing environment depends on those relationships and dependences.
  • the deployment engineer or technician responsible for deploying a software product in a distributed computing environment often does not have the necessary knowledge of the relationships and dependences that exist between components of a software product so as to effectuate such a deployment. As such, this produces problems during deployment, maintenance and further development of the software product.
  • Embodiments of the present invention address deficiencies of the art in respect to distributed computing systems and provide a novel and non-obvious method, computer system and computer program product for managing the deployment of software in a distributed computing environment.
  • a method for deploying a software product comprising a plurality of components.
  • the method can include reading a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components.
  • the method can further include reading characteristics of a plurality of publishers and matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers.
  • the method can further include distributing the plurality of components among the plurality of publishers responsive to the step of matching and validating each set of components distributed to each publisher.
  • a computer program product comprising a computer usable medium embodying computer usable program code for deploying a software product comprising a plurality of components.
  • the computer program product includes computer usable program code for reading a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components.
  • the computer program product further includes computer usable program code for reading characteristics of a plurality of publishers and matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers.
  • the computer program product further includes distributing the plurality of components among the plurality of publishers responsive to the step of matching and validating each set of components distributed to each publisher
  • a server for deploying a software product comprising a plurality of components.
  • the server includes a data repository for storing a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components, and for storing characteristics of a plurality of publishers.
  • the server further includes a processor configured for matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers.
  • the server further includes a transmitter for distributing the plurality of components among the plurality of publishers responsive to the step of matching.
  • the server further includes a receiver for validating each set of components distributed to each publisher.
  • FIG. 1 is a block diagram illustrating a network architecture for a system for managing the deployment of software in a distributed computing environment, according to one embodiment of the present invention
  • FIG. 2A is a block diagram illustrating a topological model for multi-component software in a distributed computing environment, according to one embodiment of the present invention
  • FIG. 2B is a block diagram illustrating another topological model for multi-component software in a distributed computing environment, according to one embodiment of the present invention.
  • FIG. 3 is a flow chart depicting the control flow for managing the deployment of software in a distributed computing environment, according to one embodiment of the present invention.
  • the present invention addresses deficiencies with respect to managing the deployment of software comprising a plurality of components in a distributed computing environment.
  • the present invention includes reading a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components.
  • a characteristic of a component may include a type, and a dependency may include a hosting dependency and an access dependency.
  • characteristics of a plurality of publishers, i.e., servers, are read.
  • a characteristic of a publisher may include a type and a hosting capability.
  • each component is matched to a publisher according to the characteristics and dependencies of the components and the characteristics of the publishers.
  • the components are distributed among the publishers according to the matching step and each set of components is validated.
  • FIG. 1 is a block diagram illustrating a network architecture for a system for managing the deployment of software in a distributed computing environment, according to one embodiment of the present invention.
  • the exemplary embodiments of the present invention adhere to the system architecture of FIG. 1 .
  • FIG. 1 shows an embodiment of the present invention wherein program logic 150 executing on computer or server 102 deploys multiple components of a software program among servers 110 - 114 and clients 120 - 122 over a network 106 .
  • the servers 110 - 114 and clients 120 - 122 are considered “publishers” for the purpose of the present invention, since the aforementioned computers may host (i.e., publish) components of the software product.
  • FIG. 1 shows server 102 , servers 110 - 114 and clients 120 - 122 connected to network 106 via computers, such as desktop personal computers, workstations or servers.
  • Server 102 is used by an administrator to create a topology or map that describes a multi-component software product and deploys the components among a distributed computing environment, such as among web server 110 , application server 112 , database sever 114 and client computers 120 - 122 .
  • Server 102 also validates software components that are deployed among the distributed computing environment, as described in greater detail below.
  • FIG. 1 further shows that server 102 may include a database server 104 .
  • the database server 104 serves data from a database, which is a repository for data used by server 104 during the course of operation.
  • the data served by database server 104 is described in greater detail below.
  • the database of database server 104 may adhere to any one of the flat model, hierarchical model, object-oriented model or a relational model for databases.
  • the database server 104 may also include a database management system, which is an application that controls the organization, storage and retrieval of data (fields, records and files) in the database.
  • a database management system accepts requests for data from the server 102 , and instructs the operating system to transfer the appropriate data.
  • the database management system may also control the security and integrity of the database. Data security prevents unauthorized users from viewing or updating certain portions of the database.
  • Web server 110 includes a software engine that delivers web applications.
  • Application server 112 includes a software engine that delivers applications of all types.
  • Database server 114 includes a software engine that delivers database applications and database information.
  • the servers 110 - 114 may adhere to any commercially available server platform, such as the Sun Microsystems J2EE platform, a Web-based application platform, an integrated platform for e-commerce or a content management system platform.
  • FIG. 1 shows the distributed computing environment comprising only web server 110 , application server 112 , database sever 114 and client computers 120 - 122 , the system of the present invention supports any number of servers and computers as comprising the distributed computing environment.
  • the computer systems of server 102 , web server 110 , application server 112 , database sever 114 and client computers 120 - 122 are one or more Personal Computers (PCs), Personal Digital Assistants (PDAs), hand held computers, palm top computers, lap top computers, smart phones, game consoles or any other information processing devices.
  • PCs Personal Computers
  • PDAs Personal Digital Assistants
  • a PC can be one or more IBM or compatible PC workstations running a Microsoft Windows or LINUX operating system, one or more Macintosh computers running a Mac OS operating system, or an equivalent.
  • the computer systems are a server system, such as SUN Ultra workstations running a SunOS operating system or IBM RS/6000 workstations and servers running the AIX operating system.
  • the network 106 is a circuit switched network, such as the Public Service Telephone Network (PSTN).
  • PSTN Public Service Telephone Network
  • the network 106 is a packet switched network.
  • the packet switched network is a wide area network (WAN), such as the global Internet, a private WAN, a local area network (LAN), a telecommunications network or any combination of the above-mentioned networks.
  • the structure of the network 106 is a wired network, a wireless network, a broadcast network or a point-to-point network.
  • FIG. 1 further shows program logic 150 comprising computer source code, scripting language code or interpreted language code that is compiled to produce computer instructions that perform various functions of the present invention.
  • the program logic 150 includes computer instructions that facilitate creating a topology or map that describes a multi-component software product, deploys the components among a distributed computing environment and subsequently validates the software components.
  • FIG. 2A is a block diagram illustrating a topological model for multi-component software in a distributed computing environment, according to one embodiment of the present invention.
  • FIG. 2A shows an example of a topological model that describes a desired topology for a multi-component software product.
  • the topological model of FIG. 2A may be generated by an administrator using server 102 and database server 104 .
  • FIG. 2A shows a software product comprising four components 202 , 204 , 206 and 207 .
  • Characteristics can be specified for each component. Examples of characteristics that may be specified for a software component include a type, such as a database component, an archive component, a dynamic link library, etc.
  • FIG. 2A further shows that several dependencies are specified for several components.
  • a hosting dependency states that a component must be hosted by a particular publisher or server.
  • a “must access” dependency states that a component must have access to a particular publisher or server, or component.
  • a “must reside together” dependency states that two or more components must reside on the same publisher or server.
  • FIG. 2A shows that both component 202 and component 204 have a hosting dependency 222 , 224 upon application server 212 .
  • components 202 and 204 are applications that must execute on an application server.
  • Components 206 and 207 have a hosting dependency 228 , 229 upon database server 214 .
  • components 206 - 207 are database components that must be hosted on a database serer.
  • components 202 and 204 have a “must reside together” dependency 220 , perhaps because the two components must be compiled or executed together to operate appropriately.
  • components 206 and 207 have a “must reside together” dependency 221 , because the two components must be compiled or executed together to operate appropriately.
  • FIG. 2B is a block diagram illustrating another topological model for multi-component software in a distributed computing environment, according to one embodiment of the present invention.
  • FIG. 2B shows another example of a topological model that describes a desired topology for a multi-component software product.
  • the topological model of FIG. 2B may be generated by an administrator using server 102 and database server 104 .
  • FIG. 2B shows a software product comprising three components 230 , 234 , 236 . As in FIG. 2A , characteristics can be specified for each component. Items 231 , 232 are sub-components of component 230 .
  • FIG. 2B further shows that several dependencies are specified for several components. Besides, hosting dependencies, “must access” dependencies, and “must reside together” dependencies, a “realization” dependency state is used to derive concrete components for conceptual ones. Conceptual components are typically used for patterns and do not have enough information to publish separately.
  • FIG. 2B shows that sub-component 232 has a hosting dependency 252 upon http server 292 .
  • Sub-component 231 has a hosting dependency 284 upon node 277 .
  • Component 231 also has a “must access” dependency 244 to component 234 , which, in turn, has a “must access” dependency 246 to component 236 .
  • Component 234 has a hosting dependency 249 with node 277 , which, in turn, has a realization dependency 299 with application server 296 .
  • component 236 has a hosting dependency 248 to database server 294 .
  • FIG. 2B shows that sub-components of the same component can be hosted on different servers.
  • FIG. 2B also shows that multiple hosting relationships may be made to a node, which, in turn, can have a realization dependency on a single server.
  • FIG. 3 is a flow chart depicting the control flow for managing the deployment of software in a distributed computing environment, according to one embodiment of the present invention.
  • the control flow of FIG. 3 begins with step 302 and moves directly to step 304 .
  • the topological specification 306 as defined in greater detail in FIG. 2 , is read by program logic 150 .
  • the program logic 150 validates the components of the topological specification 306 to verify that each component possesses the sufficient information to publish.
  • the publisher specification 310 is read by program logic 150 .
  • the publisher specification 310 may be generated by an administrator using server 102 and database server 104 or may be a document generated automatically or manually beforehand by garnering information from the various publishers.
  • the publisher specification 310 includes a list of characteristics for each publisher.
  • a characteristic of a publisher may include a type, such as a database type, and a hosting capability, such as the ability to host applications.
  • each component is matched to a publisher based on the characteristics of each component versus the characteristics of each publisher and based on the dependencies specified for each component.
  • the program logic 150 validates each component/publisher match to verify that each publisher possesses the adequate environmental settings to publish to matching component.
  • Step 313 includes confirming that each component or set of components can be compiled appropriately and executed properly on each publisher.
  • Step 313 may also include confirming that the publisher for each component or set of components includes the required libraries or other necessary files to compile and execute the component or set of components.
  • each component is deployed or distributed to the publisher with which it was matched.
  • each component or set of components deployed to each publisher is validated. Validation includes a process by which the presence and proper functioning of each component or set of components on each publisher is confirmed using feedback from the publisher.
  • the control flow of FIG. 3 ceases.
  • Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements.
  • the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like.
  • the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
  • a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
  • the medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium.
  • Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk.
  • Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
  • a data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus.
  • the memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
  • I/O devices including but not limited to keyboards, displays, pointing devices, etc.
  • Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A method for deploying a software product comprising a plurality of components is provided. The method can include reading a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components. The method can further include reading characteristics of a plurality of publishers and matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers. A publisher may be a computer connected to a network. The method can further include distributing the plurality of components among the plurality of publishers responsive to the step of matching and validating each set of components distributed to each publisher.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to distributed computing environments, and more particularly to improved methods for managing deployment of software in distributed computing environments.
2. Description of the Related Art
In a typical software development environment, there exists a gap between the finished software product and its target deployment computing environment. The responsibility of carrying a software product into real-life operation is typically left to the deployment engineer or technician, who often does not have first-hand knowledge of the details and requirements of the developed software product. The usual means to carry a software product into operation is via manually created scripts or other tooling that functions solely in the operations computing environment. Additionally, the configuration information of the software product is passed in the form of notes, spreadsheets or presentation slides that lack a formal construct. Conventionally, deployment of a software product is documented on paper or a pictorial document without an intuitive mechanism for realizing or enforcing the defined topology.
The approach above can result in difficulty for the deployment engineer or technician, who often is forced to deal with solving configuration problems that arise from incompatibilities between the requirements of the developed software product and the capabilities provided by the target computing environment. These problems persist throughout the lifecycle of the software product and the gap worsens with the move of the software product during different stages, such as the moves from unit testing to integration and further to production. Since the software product is not developed in light of the target computing environment, this often results in a software product that cannot properly be deployed or replicated in different computing environments and must be re-architected.
Often times, a software product must be deployed in a distributed computing environment wherein components of the software product are located in different locations and must work in concert over a network. Another problem with the approach above is that it does not provide adequate information on how various components of a software product can be divided or distributed when the product is deployed in a distributed computing environment. Various relationships and dependences exist between components of a software product, and the manner in which a software product is divided or parsed in a distributed computing environment depends on those relationships and dependences. The deployment engineer or technician responsible for deploying a software product in a distributed computing environment often does not have the necessary knowledge of the relationships and dependences that exist between components of a software product so as to effectuate such a deployment. As such, this produces problems during deployment, maintenance and further development of the software product.
Therefore, there is a need to overcome the shortcomings of the prior art and more particularly for a more efficient way of deploying a defined topology in a distributed computing environment.
BRIEF SUMMARY OF THE INVENTION
Embodiments of the present invention address deficiencies of the art in respect to distributed computing systems and provide a novel and non-obvious method, computer system and computer program product for managing the deployment of software in a distributed computing environment. In one embodiment of the invention, a method for deploying a software product comprising a plurality of components is provided. The method can include reading a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components. The method can further include reading characteristics of a plurality of publishers and matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers. The method can further include distributing the plurality of components among the plurality of publishers responsive to the step of matching and validating each set of components distributed to each publisher.
In another embodiment of the invention, a computer program product comprising a computer usable medium embodying computer usable program code for deploying a software product comprising a plurality of components is provided. The computer program product includes computer usable program code for reading a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components. The computer program product further includes computer usable program code for reading characteristics of a plurality of publishers and matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers. The computer program product further includes distributing the plurality of components among the plurality of publishers responsive to the step of matching and validating each set of components distributed to each publisher
In another embodiment of the invention, a server for deploying a software product comprising a plurality of components is provided. The server includes a data repository for storing a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components, and for storing characteristics of a plurality of publishers. The server further includes a processor configured for matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers. The server further includes a transmitter for distributing the plurality of components among the plurality of publishers responsive to the step of matching. The server further includes a receiver for validating each set of components distributed to each publisher.
Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
FIG. 1 is a block diagram illustrating a network architecture for a system for managing the deployment of software in a distributed computing environment, according to one embodiment of the present invention;
FIG. 2A is a block diagram illustrating a topological model for multi-component software in a distributed computing environment, according to one embodiment of the present invention;
FIG. 2B is a block diagram illustrating another topological model for multi-component software in a distributed computing environment, according to one embodiment of the present invention; and
FIG. 3 is a flow chart depicting the control flow for managing the deployment of software in a distributed computing environment, according to one embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The present invention addresses deficiencies with respect to managing the deployment of software comprising a plurality of components in a distributed computing environment. The present invention includes reading a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components. A characteristic of a component may include a type, and a dependency may include a hosting dependency and an access dependency. Next, characteristics of a plurality of publishers, i.e., servers, are read. A characteristic of a publisher may include a type and a hosting capability. Subsequently, each component is matched to a publisher according to the characteristics and dependencies of the components and the characteristics of the publishers. Then, the components are distributed among the publishers according to the matching step and each set of components is validated.
FIG. 1 is a block diagram illustrating a network architecture for a system for managing the deployment of software in a distributed computing environment, according to one embodiment of the present invention. The exemplary embodiments of the present invention adhere to the system architecture of FIG. 1. FIG. 1 shows an embodiment of the present invention wherein program logic 150 executing on computer or server 102 deploys multiple components of a software program among servers 110-114 and clients 120-122 over a network 106. The servers 110-114 and clients 120-122 are considered “publishers” for the purpose of the present invention, since the aforementioned computers may host (i.e., publish) components of the software product.
FIG. 1 shows server 102, servers 110-114 and clients 120-122 connected to network 106 via computers, such as desktop personal computers, workstations or servers. Server 102 is used by an administrator to create a topology or map that describes a multi-component software product and deploys the components among a distributed computing environment, such as among web server 110, application server 112, database sever 114 and client computers 120-122. Server 102 also validates software components that are deployed among the distributed computing environment, as described in greater detail below.
FIG. 1 further shows that server 102 may include a database server 104. The database server 104 serves data from a database, which is a repository for data used by server 104 during the course of operation. The data served by database server 104 is described in greater detail below. The database of database server 104 may adhere to any one of the flat model, hierarchical model, object-oriented model or a relational model for databases.
The database server 104 may also include a database management system, which is an application that controls the organization, storage and retrieval of data (fields, records and files) in the database. A database management system accepts requests for data from the server 102, and instructs the operating system to transfer the appropriate data. The database management system may also control the security and integrity of the database. Data security prevents unauthorized users from viewing or updating certain portions of the database.
Web server 110 includes a software engine that delivers web applications. Application server 112 includes a software engine that delivers applications of all types. Database server 114 includes a software engine that delivers database applications and database information. The servers 110-114 may adhere to any commercially available server platform, such as the Sun Microsystems J2EE platform, a Web-based application platform, an integrated platform for e-commerce or a content management system platform.
It should be noted that although FIG. 1 shows the distributed computing environment comprising only web server 110, application server 112, database sever 114 and client computers 120-122, the system of the present invention supports any number of servers and computers as comprising the distributed computing environment.
In an embodiment of the present invention, the computer systems of server 102, web server 110, application server 112, database sever 114 and client computers 120-122 are one or more Personal Computers (PCs), Personal Digital Assistants (PDAs), hand held computers, palm top computers, lap top computers, smart phones, game consoles or any other information processing devices. A PC can be one or more IBM or compatible PC workstations running a Microsoft Windows or LINUX operating system, one or more Macintosh computers running a Mac OS operating system, or an equivalent. In another embodiment, the computer systems are a server system, such as SUN Ultra workstations running a SunOS operating system or IBM RS/6000 workstations and servers running the AIX operating system.
In an embodiment of the present invention, the network 106 is a circuit switched network, such as the Public Service Telephone Network (PSTN). In another embodiment, the network 106 is a packet switched network. The packet switched network is a wide area network (WAN), such as the global Internet, a private WAN, a local area network (LAN), a telecommunications network or any combination of the above-mentioned networks. In yet another embodiment, the structure of the network 106 is a wired network, a wireless network, a broadcast network or a point-to-point network.
FIG. 1 further shows program logic 150 comprising computer source code, scripting language code or interpreted language code that is compiled to produce computer instructions that perform various functions of the present invention. Specifically, the program logic 150 includes computer instructions that facilitate creating a topology or map that describes a multi-component software product, deploys the components among a distributed computing environment and subsequently validates the software components.
FIG. 2A is a block diagram illustrating a topological model for multi-component software in a distributed computing environment, according to one embodiment of the present invention. FIG. 2A shows an example of a topological model that describes a desired topology for a multi-component software product. The topological model of FIG. 2A may be generated by an administrator using server 102 and database server 104.
FIG. 2A shows a software product comprising four components 202, 204, 206 and 207. Characteristics can be specified for each component. Examples of characteristics that may be specified for a software component include a type, such as a database component, an archive component, a dynamic link library, etc.
FIG. 2A further shows that several dependencies are specified for several components. A hosting dependency states that a component must be hosted by a particular publisher or server. A “must access” dependency states that a component must have access to a particular publisher or server, or component. A “must reside together” dependency states that two or more components must reside on the same publisher or server.
FIG. 2A shows that both component 202 and component 204 have a hosting dependency 222, 224 upon application server 212. This may be because components 202 and 204 are applications that must execute on an application server. Components 206 and 207 have a hosting dependency 228, 229 upon database server 214. This may be because components 206-207 are database components that must be hosted on a database serer. Also, components 202 and 204 have a “must reside together” dependency 220, perhaps because the two components must be compiled or executed together to operate appropriately. Likewise, components 206 and 207 have a “must reside together” dependency 221, because the two components must be compiled or executed together to operate appropriately.
FIG. 2B is a block diagram illustrating another topological model for multi-component software in a distributed computing environment, according to one embodiment of the present invention. FIG. 2B shows another example of a topological model that describes a desired topology for a multi-component software product. The topological model of FIG. 2B may be generated by an administrator using server 102 and database server 104.
FIG. 2B shows a software product comprising three components 230, 234, 236. As in FIG. 2A, characteristics can be specified for each component. Items 231, 232 are sub-components of component 230.
FIG. 2B further shows that several dependencies are specified for several components. Besides, hosting dependencies, “must access” dependencies, and “must reside together” dependencies, a “realization” dependency state is used to derive concrete components for conceptual ones. Conceptual components are typically used for patterns and do not have enough information to publish separately.
FIG. 2B shows that sub-component 232 has a hosting dependency 252 upon http server 292. Sub-component 231 has a hosting dependency 284 upon node 277. Component 231 also has a “must access” dependency 244 to component 234, which, in turn, has a “must access” dependency 246 to component 236. Component 234 has a hosting dependency 249 with node 277, which, in turn, has a realization dependency 299 with application server 296. Lastly, component 236 has a hosting dependency 248 to database server 294. FIG. 2B shows that sub-components of the same component can be hosted on different servers. FIG. 2B also shows that multiple hosting relationships may be made to a node, which, in turn, can have a realization dependency on a single server.
FIG. 3 is a flow chart depicting the control flow for managing the deployment of software in a distributed computing environment, according to one embodiment of the present invention. The control flow of FIG. 3 begins with step 302 and moves directly to step 304. In step 304, the topological specification 306, as defined in greater detail in FIG. 2, is read by program logic 150. In step 307, the program logic 150 validates the components of the topological specification 306 to verify that each component possesses the sufficient information to publish. Next, in step 308, the publisher specification 310 is read by program logic 150.
The publisher specification 310 may be generated by an administrator using server 102 and database server 104 or may be a document generated automatically or manually beforehand by garnering information from the various publishers. The publisher specification 310 includes a list of characteristics for each publisher. A characteristic of a publisher may include a type, such as a database type, and a hosting capability, such as the ability to host applications.
In step 312, each component is matched to a publisher based on the characteristics of each component versus the characteristics of each publisher and based on the dependencies specified for each component. In step 313, the program logic 150 validates each component/publisher match to verify that each publisher possesses the adequate environmental settings to publish to matching component. Step 313 includes confirming that each component or set of components can be compiled appropriately and executed properly on each publisher. Step 313 may also include confirming that the publisher for each component or set of components includes the required libraries or other necessary files to compile and execute the component or set of components.
In step 314, each component is deployed or distributed to the publisher with which it was matched. In step 316, each component or set of components deployed to each publisher is validated. Validation includes a process by which the presence and proper functioning of each component or set of components on each publisher is confirmed using feedback from the publisher. In step 318, the control flow of FIG. 3 ceases.
Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.

Claims (12)

1. A method for deploying a software product comprising a plurality of components, comprising:
reading a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components, and wherein a dependency includes at least a must-access dependency and a realization dependency, wherein a must-access dependency states that a component must have access to a particular publisher, and a realization dependency is used to derive concrete components for conceptual ones;
reading characteristics of a plurality of publishers;
matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers;
distributing the plurality of components among the plurality of publishers responsive to the step of matching; and
validating each set of components distributed to each publisher comprises: confirming, using feedback from the publisher, that the set of components can compile and execute on the corresponding publisher.
2. The method of claim 1, wherein the first step of reading further comprises:
reading the topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components, and wherein a characteristic of a component includes a type.
3. The method of claim 1, wherein the second step of reading further comprises: reading characteristics of a plurality of publishers, wherein a publisher comprises a server.
4. The method of claim 1, wherein the second step of reading further comprises: reading characteristics of a plurality of publishers, wherein a characteristic of a publisher comprises a type of publisher, a hosting capability.
5. A computer program product comprising a non-transitory computer usable storage medium embodying computer usable program code for deploying a software product comprising a plurality of components comprising:
computer usable program code, stored in at least one non-transitory storage medium, for reading a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components, and wherein a dependency includes at least a must-access dependency and a realization dependency, wherein a must-access dependency states that a component must have access to a particular publisher, and a realization dependency is used to derive concrete components for conceptual ones;
computer usable program code, stored in at least one non-transitory storage medium, for reading characteristics of a plurality of publishers;
computer usable program code, stored in at least one non-transitory storage medium, for matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers;
computer usable program code, stored in at least one non-transitory storage medium, for distributing the plurality of components among the plurality of publishers responsive to the computer usable program code for matching; and
computer usable program code, stored in at least one non-transitory storage medium, for validating each set of components distributed to each publisher comprises: confirming, using feedback from the publisher, that the set of components can compile and execute on the corresponding publisher.
6. The computer program product of claim 5, wherein the computer usable program code for reading further comprises:
computer usable program code, stored in at least one non-transitory storage medium, for reading the topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components, and wherein a characteristic of a component includes a type.
7. The computer program product of claim 5, wherein the computer usable program code for reading further comprises:
computer usable program code for reading characteristics of a plurality of publishers, wherein a publisher comprises a server.
8. The computer program product of claim 5, wherein the computer usable program code for reading further comprises:
computer usable program code for reading characteristics of a plurality of publishers, wherein a characteristic of a publisher comprises a type of publisher, a hosting capability.
9. A server for deploying a software product comprising a plurality of components, comprising:
a data repository for storing a topological description of the software product and its components, wherein the topological description defines characteristics and dependencies of the components, and wherein a dependency includes at least a must-access dependency and a realization dependency, wherein a must-access dependency states that a component must have access to a particular publisher, and a realization dependency is used to derive concrete components for conceptual ones, and for storing characteristics of a plurality of publishers;
a processor configured for matching each of the plurality of components to one of the plurality of publishers according to the characteristics and dependencies of the components and the characteristics of the plurality of publishers;
a transmitter for distributing the plurality of components among the plurality of publishers responsive to the step of matching; and
a receiver for validating each set of components distributed to each publisher comprises: confirming, using feedback from the publisher, that the set of components can compile and execute on the corresponding publisher.
10. The server of claim 9, wherein a characteristic of a component includes a type.
11. The server of claim 9, wherein a publisher comprises a server.
12. The server of claim 9, wherein a characteristic of a publisher comprises a type of publisher, and a hosting capability.
US12/200,720 2008-08-28 2008-08-28 Automated deployment of defined topology in distributed computing environment Expired - Fee Related US8302093B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/200,720 US8302093B2 (en) 2008-08-28 2008-08-28 Automated deployment of defined topology in distributed computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/200,720 US8302093B2 (en) 2008-08-28 2008-08-28 Automated deployment of defined topology in distributed computing environment

Publications (2)

Publication Number Publication Date
US20100058331A1 US20100058331A1 (en) 2010-03-04
US8302093B2 true US8302093B2 (en) 2012-10-30

Family

ID=41727227

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/200,720 Expired - Fee Related US8302093B2 (en) 2008-08-28 2008-08-28 Automated deployment of defined topology in distributed computing environment

Country Status (1)

Country Link
US (1) US8302093B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084772A1 (en) * 2010-10-04 2012-04-05 Tomer Shadi Method and system for deploying application components in a partial deployment
US20120117559A1 (en) * 2010-05-26 2012-05-10 Tibco Software Inc. Capability model for deploying componentized applications
US20130198719A1 (en) * 2012-01-31 2013-08-01 Red Hat Inc. Automated deployment of an application in a computing platform
US8838764B1 (en) * 2011-09-13 2014-09-16 Amazon Technologies, Inc. Hosted network management
US9380001B2 (en) 2012-04-24 2016-06-28 International Business Machines Corporation Deploying and modifying a service-oriented architecture deployment environment model
US9665356B2 (en) 2012-01-31 2017-05-30 Red Hat, Inc. Configuration of an application in a computing platform
US9843651B1 (en) * 2015-12-21 2017-12-12 Dell Software Inc. Systems and methods of localizing distributed software applications
US9904536B1 (en) 2015-09-18 2018-02-27 Quest Software Inc. Systems and methods for administering web widgets
US11099979B2 (en) * 2019-10-31 2021-08-24 International Business Machines Corporation Testing and modifying calendar and event sensitive timer series data analytics
US11789774B2 (en) 2021-02-22 2023-10-17 International Business Machines Corporation Optimization of workload scheduling in a distributed shared resource environment

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9235909B2 (en) * 2008-05-06 2016-01-12 International Business Machines Corporation Simplifying the presentation of a visually complex semantic model within a graphical modeling application
US20090319239A1 (en) * 2008-06-18 2009-12-24 International Business Machines Corporation Topology modeling application that handles abstract entities through the realization of conceptual objects
US8010479B2 (en) * 2008-06-18 2011-08-30 International Business Machines Corporation Simplifying the creation of user-defined custom elements for use in a graphical modeling application
US8849987B2 (en) * 2008-07-29 2014-09-30 International Business Machines Corporation Automated discovery of a topology of a distributed computing environment
US8291378B2 (en) 2008-07-29 2012-10-16 International Business Machines Corporation Simplified deployment modeling
US8302093B2 (en) 2008-08-28 2012-10-30 International Business Machines Corporation Automated deployment of defined topology in distributed computing environment
US8417658B2 (en) 2008-09-12 2013-04-09 International Business Machines Corporation Deployment pattern realization with models of computing environments
US9280335B2 (en) 2010-09-30 2016-03-08 International Business Machines Corporation Semantically rich composable software image bundles
US8793652B2 (en) 2012-06-07 2014-07-29 International Business Machines Corporation Designing and cross-configuring software
US8402381B2 (en) * 2008-09-23 2013-03-19 International Business Machines Corporation Automatically arranging widgets of a model within a canvas using iterative region based widget relative adjustments
US9015593B2 (en) * 2008-12-01 2015-04-21 International Business Machines Corporation Managing advisories for complex model nodes in a graphical modeling application
US8799203B2 (en) * 2009-07-16 2014-08-05 International Business Machines Corporation Method and system for encapsulation and re-use of models
US8396949B2 (en) 2010-06-03 2013-03-12 Microsoft Corporation Metadata driven automatic deployment of distributed server systems
US8856295B2 (en) 2012-01-10 2014-10-07 Oracle International Corporation System and method for providing an enterprise deployment topology with thick client functionality
US8874717B2 (en) 2012-06-29 2014-10-28 Microsoft Corporation Techniques to discover services recursively in a distributed environment
US9612866B2 (en) 2012-08-29 2017-04-04 Oracle International Corporation System and method for determining a recommendation on submitting a work request based on work request type
US9183120B1 (en) * 2013-06-04 2015-11-10 The Mathworks, Inc. Functional dependency analysis
US9934013B2 (en) 2014-03-31 2018-04-03 International Business Machines Corporation Extensions for deployment patterns
US11354312B2 (en) * 2019-08-29 2022-06-07 International Business Machines Corporation Access-plan-based querying for federated database-management systems
CN113407226B (en) * 2021-06-29 2022-08-19 中电金信软件有限公司 Management method and device of component information and electronic equipment

Citations (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5950011A (en) * 1996-03-01 1999-09-07 Bull S.A. System using designer editor and knowledge base for configuring preconfigured software in an open system in a distributed environment
US5970490A (en) 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US6256773B1 (en) 1999-08-31 2001-07-03 Accenture Llp System, method and article of manufacture for configuration management in a development architecture framework
US20030084156A1 (en) * 2001-10-26 2003-05-01 Hewlett-Packard Company Method and framework for generating an optimized deployment of software applications in a distributed computing environment using layered model descriptions of services and servers
US20030163450A1 (en) 2001-05-25 2003-08-28 Joram Borenstein Brokering semantics between web services
US6629065B1 (en) 1998-09-30 2003-09-30 Wisconsin Alumni Research Foundation Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments
US6701514B1 (en) 2000-03-27 2004-03-02 Accenture Llp System, method, and article of manufacture for test maintenance in an automated scripting framework
US6789054B1 (en) 1999-04-25 2004-09-07 Mahmoud A. Makhlouf Geometric display tools and methods for the visual specification, design automation, and control of adaptive real systems
US20040179011A1 (en) 2003-03-14 2004-09-16 Marshall James F. Data display method and system
US6795089B2 (en) 2000-12-20 2004-09-21 Microsoft Corporation Dynamic, live surface and model elements for visualization and modeling
US20060053410A1 (en) * 1999-10-05 2006-03-09 Dietrich Charisius Methods and systems for supporting and deploying distributed computing components
US7013461B2 (en) * 2001-01-05 2006-03-14 International Business Machines Corporation Systems and methods for service and role-based software distribution
US20060066627A1 (en) 2004-09-30 2006-03-30 Microsoft Corporation Semantically applying formatting to a presentation model
US20060101445A1 (en) 2004-10-22 2006-05-11 International Business Machines Corporation Model extension framework
US20060101091A1 (en) 2004-10-22 2006-05-11 International Business Machines Corporation Recovering references in an extended model
US7050872B2 (en) 2000-10-06 2006-05-23 Hewlett-Packard Company Innovation information management model
US7069553B2 (en) 2003-03-03 2006-06-27 Computer Associates Think, Inc. Universal deployment tool
US7069541B2 (en) 2002-03-01 2006-06-27 Bellsouth Intellectual Property Corporation System and method for a web-based application development and deployment tracking tool
US7072900B2 (en) * 2001-11-28 2006-07-04 International Business Machines Corporation System and method for developing topography based management systems
US7103874B2 (en) * 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
US7134122B1 (en) 2001-05-31 2006-11-07 Oracle International Corporation One click deployment
US20060271909A1 (en) 2005-05-24 2006-11-30 International Business Machines Corporation Graphical editor with incremental development
US20070074203A1 (en) 2005-09-27 2007-03-29 Microsoft Corporation Deployment, maintenance and configuration of complex hardware and software systems
US20070179823A1 (en) 2006-01-30 2007-08-02 Kumar Bhaskaran Observation modeling
US20070277151A1 (en) 2006-05-17 2007-11-29 The Mathworks, Inc. Action languages for unified modeling language model
US7320120B2 (en) 2000-12-20 2008-01-15 Microsoft Corporation Pluggable notations and semantics for visual modeling elements
US7370315B1 (en) 2000-11-21 2008-05-06 Microsoft Corporation Visual programming environment providing synchronization between source code and graphical component objects
US20080127049A1 (en) 2006-11-27 2008-05-29 International Business Machines Corporation Computer Method and System for Pattern Specification Using Meta-Model of a Target Domain
US20080183725A1 (en) 2007-01-31 2008-07-31 Microsoft Corporation Metadata service employing common data model
US7463263B2 (en) 2005-07-15 2008-12-09 Sap Portals Israel Ltd. Declarative specification of model visualizations
US20080313596A1 (en) 2007-06-13 2008-12-18 International Business Machines Corporation Method and system for evaluating multi-dimensional project plans for implementing packaged software applications
US20080313008A1 (en) 2007-06-13 2008-12-18 International Business Machines Corporation Method and system for model-driven approaches to generic project estimation models for packaged software applications
US20080313595A1 (en) 2007-06-13 2008-12-18 International Business Machines Corporation Method and system for estimating project plans for packaged software applications
US20090007062A1 (en) 2007-06-27 2009-01-01 Yuval Gilboa Design-time rules mechanism for modeling systems
US20090012842A1 (en) 2007-04-25 2009-01-08 Counsyl, Inc., A Delaware Corporation Methods and Systems of Automatic Ontology Population
US20090044170A1 (en) 2007-08-10 2009-02-12 Microsoft Corporation Automated Application Modeling for Application Virtualization
US20090077621A1 (en) 2007-09-17 2009-03-19 Ulrich Lang Method and system for managing security policies
US20090132562A1 (en) 2007-11-21 2009-05-21 Sap Ag Annotation of models for model-driven engineering
US20090171993A1 (en) 2007-09-28 2009-07-02 Xcerion Ab Network operating system
US7568019B1 (en) 2002-02-15 2009-07-28 Entrust, Inc. Enterprise management system for normalization, integration and correlation of business measurements with application and infrastructure measurements
US20090249281A1 (en) 2008-03-28 2009-10-01 Sap Ag Performance-related decision support for model-driven engineering
US20090278847A1 (en) 2008-05-06 2009-11-12 International Business Machines Corporation Simplifying the presentation of a visually complex semantic model within a graphical modeling application
US7630877B2 (en) 2003-03-06 2009-12-08 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20090319467A1 (en) 2008-06-18 2009-12-24 International Business Machines Corporation Simplifying the creation of user-defined custom elements for use in a graphical modeling application
US20090319239A1 (en) 2008-06-18 2009-12-24 International Business Machines Corporation Topology modeling application that handles abstract entities through the realization of conceptual objects
US7643597B2 (en) 2002-04-15 2010-01-05 The Trustees Of Columbia University In The City Of New York Methods for selecting a subsequence of video frames from a sequence of video frames
US7653902B2 (en) * 2004-12-13 2010-01-26 Sap Ag Determining software deployment parameters
US20100031247A1 (en) 2008-07-29 2010-02-04 International Business Machines Corporation Simplified deployment modeling
US20100030893A1 (en) 2008-07-29 2010-02-04 International Business Machines Corporation Automated discovery of a topology of a distributed computing environment
US7665085B2 (en) 2004-03-15 2010-02-16 Ramco Systems Limited Flexible deployment of software applications
US7669137B2 (en) 2005-11-04 2010-02-23 International Business Machines Corporation Computer method and apparatus for representing a topic in a software modeling system
US20100058331A1 (en) 2008-08-28 2010-03-04 International Business Machines Corporation Automated deployment of defined topology in distributed computing environment
US20100070449A1 (en) 2008-09-12 2010-03-18 International Business Machines Corporation Deployment pattern realization with models of computing environments
US20100077328A1 (en) 2008-09-23 2010-03-25 International Business Machines Corporation Automatically arranging widgets of a model within a canvas using iterative region based widget relative adjustments
US20100083212A1 (en) 2008-09-26 2010-04-01 Sap Ag Non-intrusive model annotation
US7735062B2 (en) 2005-01-21 2010-06-08 Outsystems—Software Em Rede, S.A. Software development system and method
US7856631B2 (en) * 2002-05-08 2010-12-21 Sap Aktiengesellschaft Software delivery manager
US8185873B2 (en) * 2003-02-27 2012-05-22 Oracle International Corporation System and method for using a preprocessor to determine dependencies between J2EE components

Patent Citations (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5950011A (en) * 1996-03-01 1999-09-07 Bull S.A. System using designer editor and knowledge base for configuring preconfigured software in an open system in a distributed environment
US5970490A (en) 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US6629065B1 (en) 1998-09-30 2003-09-30 Wisconsin Alumni Research Foundation Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments
US6789054B1 (en) 1999-04-25 2004-09-07 Mahmoud A. Makhlouf Geometric display tools and methods for the visual specification, design automation, and control of adaptive real systems
US6256773B1 (en) 1999-08-31 2001-07-03 Accenture Llp System, method and article of manufacture for configuration management in a development architecture framework
US20060053410A1 (en) * 1999-10-05 2006-03-09 Dietrich Charisius Methods and systems for supporting and deploying distributed computing components
US6701514B1 (en) 2000-03-27 2004-03-02 Accenture Llp System, method, and article of manufacture for test maintenance in an automated scripting framework
US7050872B2 (en) 2000-10-06 2006-05-23 Hewlett-Packard Company Innovation information management model
US7370315B1 (en) 2000-11-21 2008-05-06 Microsoft Corporation Visual programming environment providing synchronization between source code and graphical component objects
US7320120B2 (en) 2000-12-20 2008-01-15 Microsoft Corporation Pluggable notations and semantics for visual modeling elements
US6795089B2 (en) 2000-12-20 2004-09-21 Microsoft Corporation Dynamic, live surface and model elements for visualization and modeling
US7196712B2 (en) 2000-12-20 2007-03-27 Microsoft Corporation Dynamic, live surface and model elements for visualization and modeling
US7013461B2 (en) * 2001-01-05 2006-03-14 International Business Machines Corporation Systems and methods for service and role-based software distribution
US20030163450A1 (en) 2001-05-25 2003-08-28 Joram Borenstein Brokering semantics between web services
US7134122B1 (en) 2001-05-31 2006-11-07 Oracle International Corporation One click deployment
US20030084156A1 (en) * 2001-10-26 2003-05-01 Hewlett-Packard Company Method and framework for generating an optimized deployment of software applications in a distributed computing environment using layered model descriptions of services and servers
US7072900B2 (en) * 2001-11-28 2006-07-04 International Business Machines Corporation System and method for developing topography based management systems
US7568019B1 (en) 2002-02-15 2009-07-28 Entrust, Inc. Enterprise management system for normalization, integration and correlation of business measurements with application and infrastructure measurements
US7069541B2 (en) 2002-03-01 2006-06-27 Bellsouth Intellectual Property Corporation System and method for a web-based application development and deployment tracking tool
US7643597B2 (en) 2002-04-15 2010-01-05 The Trustees Of Columbia University In The City Of New York Methods for selecting a subsequence of video frames from a sequence of video frames
US7856631B2 (en) * 2002-05-08 2010-12-21 Sap Aktiengesellschaft Software delivery manager
US8185873B2 (en) * 2003-02-27 2012-05-22 Oracle International Corporation System and method for using a preprocessor to determine dependencies between J2EE components
US7069553B2 (en) 2003-03-03 2006-06-27 Computer Associates Think, Inc. Universal deployment tool
US7630877B2 (en) 2003-03-06 2009-12-08 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20040179011A1 (en) 2003-03-14 2004-09-16 Marshall James F. Data display method and system
US7103874B2 (en) * 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
US7665085B2 (en) 2004-03-15 2010-02-16 Ramco Systems Limited Flexible deployment of software applications
US20060066627A1 (en) 2004-09-30 2006-03-30 Microsoft Corporation Semantically applying formatting to a presentation model
US20060101091A1 (en) 2004-10-22 2006-05-11 International Business Machines Corporation Recovering references in an extended model
US20060101445A1 (en) 2004-10-22 2006-05-11 International Business Machines Corporation Model extension framework
US7653902B2 (en) * 2004-12-13 2010-01-26 Sap Ag Determining software deployment parameters
US7735062B2 (en) 2005-01-21 2010-06-08 Outsystems—Software Em Rede, S.A. Software development system and method
US20060271909A1 (en) 2005-05-24 2006-11-30 International Business Machines Corporation Graphical editor with incremental development
US7463263B2 (en) 2005-07-15 2008-12-09 Sap Portals Israel Ltd. Declarative specification of model visualizations
US20070074203A1 (en) 2005-09-27 2007-03-29 Microsoft Corporation Deployment, maintenance and configuration of complex hardware and software systems
US7669137B2 (en) 2005-11-04 2010-02-23 International Business Machines Corporation Computer method and apparatus for representing a topic in a software modeling system
US20070179823A1 (en) 2006-01-30 2007-08-02 Kumar Bhaskaran Observation modeling
US20070288885A1 (en) 2006-05-17 2007-12-13 The Mathworks, Inc. Action languages for unified modeling language model
US20070277151A1 (en) 2006-05-17 2007-11-29 The Mathworks, Inc. Action languages for unified modeling language model
US20080127049A1 (en) 2006-11-27 2008-05-29 International Business Machines Corporation Computer Method and System for Pattern Specification Using Meta-Model of a Target Domain
US20080183725A1 (en) 2007-01-31 2008-07-31 Microsoft Corporation Metadata service employing common data model
US20090012842A1 (en) 2007-04-25 2009-01-08 Counsyl, Inc., A Delaware Corporation Methods and Systems of Automatic Ontology Population
US20080313008A1 (en) 2007-06-13 2008-12-18 International Business Machines Corporation Method and system for model-driven approaches to generic project estimation models for packaged software applications
US20080313596A1 (en) 2007-06-13 2008-12-18 International Business Machines Corporation Method and system for evaluating multi-dimensional project plans for implementing packaged software applications
US20080313595A1 (en) 2007-06-13 2008-12-18 International Business Machines Corporation Method and system for estimating project plans for packaged software applications
US20090007062A1 (en) 2007-06-27 2009-01-01 Yuval Gilboa Design-time rules mechanism for modeling systems
US20090044170A1 (en) 2007-08-10 2009-02-12 Microsoft Corporation Automated Application Modeling for Application Virtualization
US20090077621A1 (en) 2007-09-17 2009-03-19 Ulrich Lang Method and system for managing security policies
US20090171993A1 (en) 2007-09-28 2009-07-02 Xcerion Ab Network operating system
US20090132562A1 (en) 2007-11-21 2009-05-21 Sap Ag Annotation of models for model-driven engineering
US20090249281A1 (en) 2008-03-28 2009-10-01 Sap Ag Performance-related decision support for model-driven engineering
US20090278847A1 (en) 2008-05-06 2009-11-12 International Business Machines Corporation Simplifying the presentation of a visually complex semantic model within a graphical modeling application
US20090319239A1 (en) 2008-06-18 2009-12-24 International Business Machines Corporation Topology modeling application that handles abstract entities through the realization of conceptual objects
US20090319467A1 (en) 2008-06-18 2009-12-24 International Business Machines Corporation Simplifying the creation of user-defined custom elements for use in a graphical modeling application
US20100030893A1 (en) 2008-07-29 2010-02-04 International Business Machines Corporation Automated discovery of a topology of a distributed computing environment
US20100031247A1 (en) 2008-07-29 2010-02-04 International Business Machines Corporation Simplified deployment modeling
US20100058331A1 (en) 2008-08-28 2010-03-04 International Business Machines Corporation Automated deployment of defined topology in distributed computing environment
US20100070449A1 (en) 2008-09-12 2010-03-18 International Business Machines Corporation Deployment pattern realization with models of computing environments
US20100077328A1 (en) 2008-09-23 2010-03-25 International Business Machines Corporation Automatically arranging widgets of a model within a canvas using iterative region based widget relative adjustments
US20100083212A1 (en) 2008-09-26 2010-04-01 Sap Ag Non-intrusive model annotation

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Arnold, W., et al., "Pattern Based SOA Deployment," Proc. of 5th Int'l Conf. on Service-Oriented Computing (ICSOC 2007), Sep. 17-20, 2007, Lecture Notes in Computer Science (LNCS), vol. 4749, Springer 2007.
Corneil, D., et al., "An Efficient Algorithm for Graph Isomorphism," Journal of the ACM, vol. 17, pp. 51-64, Jan. 1970.
Eilam, T., et al., "Reducing the Complexity of Application Deployment in Large Data Centers," Proc. of 9th IFIP/IEEE INT'l Sym. on Integrated Network Management (IM 2005), pp. 221-234, May 15-19, 2005.
Gati, G., "Further Annotated Bibliography on the Isomorphism Disease," Journal of Graph Theory,1979; pp. 96-109; vol. 3, pp. 96-109, 1979.
Messmer, B.T., "Efficient Graph Matching Algorithms," University of Bern, PhD thesis, Switzerland, Nov. 1995.
Tsai, W., et al., "Error-correcting Isomorphisms of Attributed Relational Graphs for Pattern Analysis," IEEE Transactions on Systems, Man, and Cybernetics, vol. SMC-9, No. 12, pp. 757-768, Dec. 1979.
Ullman, J., "An Algorithm for Subgraph Isomorphism," Journal of the ACM, vol. 23, pp. 31-42, Jan. 1976.

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930941B2 (en) * 2010-05-26 2015-01-06 Tibco Software Inc. Capability model for deploying componentized applications
US20120117559A1 (en) * 2010-05-26 2012-05-10 Tibco Software Inc. Capability model for deploying componentized applications
US20120084772A1 (en) * 2010-10-04 2012-04-05 Tomer Shadi Method and system for deploying application components in a partial deployment
US9264339B2 (en) 2011-09-13 2016-02-16 Amazon Technologies, Inc. Hosted network management
US8838764B1 (en) * 2011-09-13 2014-09-16 Amazon Technologies, Inc. Hosted network management
US9170797B2 (en) * 2012-01-31 2015-10-27 Red Hat, Inc. Automated deployment of an application in a computing platform
US20130198719A1 (en) * 2012-01-31 2013-08-01 Red Hat Inc. Automated deployment of an application in a computing platform
US9665356B2 (en) 2012-01-31 2017-05-30 Red Hat, Inc. Configuration of an application in a computing platform
US9380001B2 (en) 2012-04-24 2016-06-28 International Business Machines Corporation Deploying and modifying a service-oriented architecture deployment environment model
US9380000B2 (en) 2012-04-24 2016-06-28 International Business Machines Corporation Deploying and modifying a service-oriented architecture deployment environment model
US9904536B1 (en) 2015-09-18 2018-02-27 Quest Software Inc. Systems and methods for administering web widgets
US9843651B1 (en) * 2015-12-21 2017-12-12 Dell Software Inc. Systems and methods of localizing distributed software applications
US11099979B2 (en) * 2019-10-31 2021-08-24 International Business Machines Corporation Testing and modifying calendar and event sensitive timer series data analytics
US11789774B2 (en) 2021-02-22 2023-10-17 International Business Machines Corporation Optimization of workload scheduling in a distributed shared resource environment

Also Published As

Publication number Publication date
US20100058331A1 (en) 2010-03-04

Similar Documents

Publication Publication Date Title
US8302093B2 (en) Automated deployment of defined topology in distributed computing environment
US20240256254A1 (en) Systems and methods for transformation of reporting schema
US20190310835A1 (en) Application development method, tool, and device, and storage medium
KR101376916B1 (en) Techniques to perform gradual upgrades
US11561784B2 (en) Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms
CA2939379C (en) Systems and methods for partitioning computing applications to optimize deployment resources
US8938732B2 (en) Dynamically generating installable software artifacts in a canonical form
EP2246782A1 (en) Application modification framework
US20060020937A1 (en) System and method for extraction and creation of application meta-information within a software application repository
US20020144256A1 (en) Method of deployment for concurrent execution of multiple versions of an integration model on an integration server
US8489547B2 (en) System and method for transforming configuration data items in a configuration management database
US20070118572A1 (en) Detecting changes in data
US12056537B2 (en) Managing execution of continuous delivery pipelines for a cloud platform based data center
US11356508B1 (en) Retry strategies for handling failures during continuous delivery of software artifacts in a cloud platform
WO2014138894A1 (en) Systems and methods for controlling branch latency within computing applications
US11392366B1 (en) Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms
US11349958B1 (en) Deployment of software releases on datacenters configured in cloud platforms
US11392361B2 (en) Software release orchestration for continuous delivery of features in a cloud platform based data center
CN108351766B (en) Creating and modifying applications from mobile devices
US10514940B2 (en) Virtual application package reconstruction
US11018938B1 (en) Auditing metadata representation of a cloud-computing platform based datacenter
CN115794253A (en) Application integration method and device, electronic equipment and computer readable storage medium
JP2023551963A (en) Deploying software releases to data centers configured on cloud platforms
US20240256497A1 (en) Testing templates used for implementing infrastructure as code
Khan et al. Setting Up the Developer Environment

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION,NEW YO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERG, DANIEL C.;BLANCETT, BRAD L.;ELDER, MICHAEL D.;AND OTHERS;SIGNING DATES FROM 20080725 TO 20080818;REEL/FRAME:021459/0001

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERG, DANIEL C.;BLANCETT, BRAD L.;ELDER, MICHAEL D.;AND OTHERS;SIGNING DATES FROM 20080725 TO 20080818;REEL/FRAME:021459/0001

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20201030