US20080294777A1 - Method and apparatus for template-based provisioning in a service delivery environment - Google Patents

Method and apparatus for template-based provisioning in a service delivery environment Download PDF

Info

Publication number
US20080294777A1
US20080294777A1 US11753956 US75395607A US2008294777A1 US 20080294777 A1 US20080294777 A1 US 20080294777A1 US 11753956 US11753956 US 11753956 US 75395607 A US75395607 A US 75395607A US 2008294777 A1 US2008294777 A1 US 2008294777A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
template
resources
network
set
data
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
US11753956
Inventor
Alexei Karve
Ajay Mohindra
Randy Allan Rendahl
Alla Segal
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

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Abstract

A method for automated provisioning of computing resources in a distributed computing network includes obtaining a data structure representing a resource dependency characterization of an application to be implemented over the distributed computing network, wherein the data structure indicates a set of resources to be deployed, obtaining a template that represents a predefined network topology for supporting deployment of the set of resources, mapping the set of resources represented in the data structure to the template so as to satisfy a set of component requirements to generate a deployment map, and provisioning the set of resources on a plurality of computers based on the deployment map to implement the application over the distributed computing network.

Description

    BACKGROUND OF THE INVENTION
  • [0001]
    1. Field of the Invention
  • [0002]
    The present disclosure relates to computer network management and, more particularly, to methods and apparatus for providing template-based provisioning in a distributed computing environment.
  • [0003]
    2. Description of Related Art
  • [0004]
    A variety of deployment topologies have been utilized to deploy an increasingly wide range of services on servers. Common topologies include simple deployment with a single-point of failure, Web-tier only cluster deployment, business-tier only cluster deployment, database-tier only cluster deployment, single-site highly available deployment and multi-site highly available deployment. Selection of a deployment topology may be based on requirements for scalability, redundancy and networking. For example, a deployment may consist of a Web tier and a database tier. The Web tier may consist of a single Web server or multiple Web servers functioning as a cluster. The database tier may consist of SQL database servers. Additionally, each tier may have domain controllers for authentication and DNS services.
  • [0005]
    The deployment topology affects the ease with which system hardware and software can be updated. Each topology has associated costs, monetary and otherwise, such as hardware costs, software licensing fees and management complexity, and a certain level of quality of service measured in terms of performance, availability and security. In conventional approaches, the design and realization of deployment solutions is a manual, costly and error-prone process.
  • [0006]
    The “Rainforest Project,” an International Business Machines Corporation (IBM) published document, http://www.research.ibm.com/rainforest/index.html, describes a three-stage automated deployment process. In the first stage, an automated search is employed to generate a deployment topology that offers a good tradeoff between cost and quality relative to an input set of deployment objectives. In the second stage, planning techniques are employed to generate a deployment plan that when executed deploys the service in accordance with the deployment topology design. In the third stage, the plan is executed to actually deploy and configure the service.
  • [0007]
    Provisioning is the process of deploying, installing, uninstalling, upgrading and configuring application services or otherwise implementing changes for hardware, software, network and/or storage resources. The term provisioning has been used to refer to low-level provisioning of servers or other resources, e.g., installing and configuring operating systems, as well as to high-level application provisioning, i.e., installing, updating and configuring applications on resources that have undergone low-level provisioning. Provisioning in a service delivery environment that supports a variety of deployment topologies incorporating varying numbers of servers can be a challenging task. In the conventional approaches, provisioning solutions are directly mapped, fixed infrastructure in the service delivery environment.
  • [0008]
    Applications to be implemented over a distributed computing environment can be considered to be composed of multiple elements which are distinct deployable units. In conventional approaches, once a deployment mapping has been developed, it can be difficult to change the mapping to accommodate alternative topologies and to adapt to changes in the delivery environment. A need exists for methodologies that simplify the provisioning process in distributed computing environments.
  • SUMMARY OF THE INVENTION
  • [0009]
    According to an exemplary embodiment of the present invention, a method for automated provisioning of computing resources in a distributed computing network includes obtaining a data structure representing a resource dependency characterization of an application to be implemented over the distributed computing network, wherein the data structure indicates a set of resources to be deployed, obtaining a template that represents a predefined network topology for supporting deployment of the set of resources, mapping the set of resources represented in the data structure to the template so as to satisfy a set of component requirements to generate a deployment map, and provisioning the set of resources on a plurality of computers based on the deployment map to implement the application over the distributed computing network.
  • [0010]
    According to an exemplary embodiment of the present invention, a system for automated provisioning of computing resources in a distributed computing network includes a memory device for storing a program of instructions, a processor in communication with the memory device, the processor operative with the program of instructions to obtain a data structure representing a resource dependency characterization of an application to be implemented over the distributed computing network, wherein the data structure indicates a set of resources to be deployed, obtain a template that represents a predefined network topology for supporting deployment of the set of resources, map the set of resources represented in the data structure to the template so as to satisfy a set of component requirements to generate a deployment map, and provision the set of resources on a plurality of computers based on the deployment map to implement the application over the distributed computing network.
  • [0011]
    According to an exemplary embodiment of the present invention, a method for automated provisioning of software components in a distributed computing network includes obtaining a mapping of a set of resources to nodes of a first template, the first template having a plurality of nodes that follow a first predefined network topology for supporting a first deployment of the set of resources, obtaining a second template having a plurality of nodes that follow a second predefined network topology for supporting a second deployment of the set of resources, migrating the set of resources represented in the nodes of the first template to the nodes in the second template so as to satisfy a set of component requirements to generate a redeployment map, and provisioning the set of resources on a plurality of computers based on the deployment map to implement an application over the distributed computing network.
  • [0012]
    According to an exemplary embodiment of the present invention, a system for automated provisioning of software components in a distributed computing network includes a memory device for storing a program of instructions, a processor in communication with the memory device, the processor operative with the program of instructions to obtain a mapping of a set of resources to nodes of a first template, the first template having a plurality of nodes that follow a first predefined network topology for supporting a first deployment of a set of resources, obtain a second template having a plurality of nodes that follow a second predefined network topology for supporting a second deployment of the set of resources, migrate the set of resources represented in the nodes of first template to the nodes in the second template so as to satisfy a set of component requirements to generate a deployment map, and provision the set of resources on a plurality of computers based on the redeployment map to implement an application over the distributed computing network.
  • [0013]
    The present invention will become readily apparent to those of ordinary skill in the art when descriptions of exemplary embodiments thereof are read with reference to the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0014]
    FIG. 1 depicts a pictorial representation of a network data processing system, which may be used to implement an exemplary embodiment of the present invention.
  • [0015]
    FIG. 2 is a block diagram of a data processing system, which may be used to implement an exemplary embodiment of the present invention.
  • [0016]
    FIG. 3 depicts a schematic representation of a service delivery environment, which may be used to implement an exemplary embodiment of the present invention.
  • [0017]
    FIG. 4 is a block diagram illustrating an example of a multi-tier model, which may be used to implement an exemplary embodiment of the present invention.
  • [0018]
    FIG. 5 depicts an example of a logical application structure containing a resource dependency characterization of a sample application, according to an exemplary embodiment of the present invention.
  • [0019]
    FIGS. 6A through 6C are block diagrams illustrating templates, according to exemplary embodiments of the present invention.
  • [0020]
    FIG. 7 is a flowchart illustrating a method for automated provisioning of computing resources in a distributed computing network, according to an exemplary embodiment of the present invention.
  • [0021]
    FIG. 8 is a flowchart illustrating method for automated provisioning of software components in a distributed computing network, according to an exemplary embodiment of the present invention.
  • [0022]
    FIG. 9 is a flowchart illustrating method for automated provisioning of software components in a distributed computing network, according to an exemplary embodiment of the present invention.
  • DESCRIPTION OF EXEMPLARY EMBODIMENTS
  • [0023]
    Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings. It is to be understood that exemplary embodiments of the present invention described herein may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. An exemplary embodiment of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. An exemplary embodiment may be implemented in software as an application program tangibly embodied on one or more program storage devices, such as for example, computer hard disk drives, CD-ROM (compact disk-read only memory) drives and removable media such as CDs, DVDs (digital versatile discs or digital video discs), Universal Serial Bus (USB) drives, floppy disks, diskettes and tapes, readable by a machine capable of executing the program of instructions, such as a computer. The application program may be uploaded to, and executed by, an instruction execution system, apparatus or device comprising any suitable architecture. It is to be further understood that since exemplary embodiments of the present invention depicted in the accompanying drawing figures may be implemented in software, the actual connections between the system components (or the flow of the process steps) may differ depending upon the manner in which the application is programmed.
  • [0024]
    FIG. 1 depicts a pictorial representation of a network data processing system, which may be used to implement an exemplary embodiment of the present invention. Network data processing system 100 includes a network of computers, which can be implemented using any suitable computers. Network data processing system 100 may include, for example, a personal computer, workstation or mainframe. Network data processing system 100 may employ a client-server network architecture in which each computer or process on the network is either a Client or a server.
  • [0025]
    Network data processing system 100 includes a network 102, which is a medium used to provide communications links between various devices and computers within network data processing system 100. Network 102 may include a variety of connections such as wires, wireless communication links, fiber optic cables, connections made through telephone and/or other communication links.
  • [0026]
    A variety of servers, clients and other devices may connect to network 102. For example, a server 104 and a server 106 may be connected to network 102, along with a storage unit 108 and clients 110, 112 and 114, as shown in FIG. 1. Storage unit 108 may include various types of storage media, such as for example, computer hard disk drives, CD-ROM drives and/or removable media such as CDs, DVDs, USB drives, floppy disks, diskettes and/or tapes. Clients 110, 112 and 114 may be, for example, personal computers and/or network computers.
  • [0027]
    Client 110 may be a personal computer. Client 110 may comprise a system unit that includes a processing unit and a memory device, a video display terminal, a keyboard, storage devices, such as floppy drives and other types of permanent or removable storage media, and a pointing device such as a mouse. Additional input devices may be included with client 110, such as for example, a joystick, touchpad, touchscreen, trackball, microphone, and the like.
  • [0028]
    Clients 110, 112 and 114 may be clients to server 104, for example. Server 104 may provide data, such as boot files, operating system images, and applications to clients 110, 112 and 114. Network data processing system 100 may include other devices not shown.
  • [0029]
    Network data processing system 100 may comprise the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. The Internet includes a backbone of high-speed data communication lines between major nodes or host computers consisting of a multitude of commercial, governmental, educational and other computer systems that route data and messages.
  • [0030]
    Network data processing system 100 may be implemented as any suitable type of networks, such as for example, an intranet, a local area network (LAN) and/or a wide area network (WAN). The pictorial representation of network data processing elements in FIG. 1 is intended as an example, and not as an architectural limitation for embodiments of the present invention.
  • [0031]
    FIG. 2 is a block diagram of a data processing system, which may be used to implement an exemplary embodiment of the present invention. Data processing system 200 is an example of a computer, such as server 104 or client 110 of FIG. 1, in which computer usable code or instructions implementing processes of embodiments of the present invention may be located.
  • [0032]
    In the depicted example, data processing system 200 employs a hub architecture including a north bridge and memory controller hub (NB/MCH) 202 and a south bridge and input/output (l/O) controller hub (SB/ICH) 204. Processing unit 206 that includes one or more processors, main memory 208, and graphics processor 210 are coupled to the north bridge and memory controller hub 202. Graphics processor 210 may be coupled to the NB/MCH 202 through an accelerated graphics port (AGP). Data processing system 200 may be, for example, a symmetric multiprocessor (SMP) system including a plurality of processors in processing unit 206. Data processing system 200 may be a single processor system.
  • [0033]
    In the depicted example, local area network (LAN) adapter 212 is coupled to south bridge and I/O controller hub 204. Audio adapter 216, keyboard and mouse adapter 220, modem 222, read only memory (ROM) 224, universal serial bus (USB) ports and other communications ports 232, and PCI/PCIe (PCI Express) devices 234 are coupled to south bridge and I/O controller hub 204 through bus 238, and hard disk drive (HDD) 226 and CD-ROM drive 230 are coupled to south bridge and I/O controller hub 204 through bus 240.
  • [0034]
    Examples of PCI/PCIe devices include Ethernet adapters, add-in cards, and PC cards for notebook computers. In general, PCI uses a card bus controller while PCIe does not. ROM 224 may be, for example, a flash binary input/output system (BIOS). Hard disk drive 226 and CD-ROM drive 230 may use, for example, an integrated drive electronics (IDE) or serial advanced technology attachment (SATA) interface. A super I/O (SIO) device 236 may be coupled to south bridge and I/O controller hub 204.
  • [0035]
    An operating system, which may run on processing unit 206, coordinates and provides control of various components within data processing system 200. For example, the operating system may be a commercially available operating system such as Microsoft® Windows® XP (Microsoft and Windows are trademarks or registered trademarks of Microsoft Corporation in the United States, other countries, or both). An object-oriented programming system, such as the Java™ programming system, may run in conjunction with the operating system and provides calls to the operating system from Java programs or applications executing on data processing system 200 (Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other countries, or both).
  • [0036]
    Instructions for the operating system, object-oriented programming system, applications and/or programs of instructions are located on storage devices, such as for example, hard disk drive 226, and may be loaded into main memory 208 for execution by processing unit 206. Processes of exemplary embodiments of the present invention may be performed by processing unit 206 using computer usable program code, which may be located in a memory, such as for example, main memory 208, read only memory 224 or in one or more peripheral devices.
  • [0037]
    It will be appreciated that the hardware depicted in FIGS. 1 and 2 may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash memory, equivalent non-volatile memory, or optical disk drives and the like, may be used in addition to or in place of the depicted hardware. Processes of embodiments of the present invention may be applied to a multiprocessor data processing system.
  • [0038]
    Data processing system 200 may take various forms. For example, data processing system 200 may be a tablet computer, laptop computer, or telephone device. Data processing system 200 may be, for example, a personal digital assistant (PDA), which may be configured with flash memory to provide non-volatile memory for storing operating system files and/or user-generated data. A bus system within data processing system 200 may include one or more buses, such as a system bus, an I/O bus and PCI bus. It is to be understood that the bus system may be implemented using any type of communications fabric or architecture that provides for a transfer of data between different components or devices coupled to the fabric or architecture. A communications unit may include one or more devices used to transmit and receive data, such as modem 222 or network adapter 212. A memory may be, for example, main memory 208, ROM 224 or a cache such as found in north bridge and memory controller hub 202. A processing unit 206 may include one or more processors or CPUs.
  • [0039]
    Methods for automated provisioning according to exemplary embodiments of the present invention may be performed in a data processing system such as data processing system 100 shown in FIG. 1 or data processing system 200 shown in FIG. 2.
  • [0040]
    It is to be understood that a program storage device can be any medium that can contain, store, communicate, propagate or transport a program of instructions for use by or in connection with an instruction execution system, apparatus or device. The medium can be, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a program storage device include a semiconductor or solid state memory, magnetic tape, removable computer diskettes, RAM (random access memory), ROM (read-only memory), rigid magnetic disks, and optical disks such as a CD-ROM, CD-R/W and DVD.
  • [0041]
    A data processing system suitable for storing and/or executing a program of instructions may include one or more processors 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 that provide temporary storage of at least some program code to reduce the number of times code must be retrieved from bulk storage during execution.
  • [0042]
    Data processing system 200 may include input/output (l/O) devices, such as for example, keyboards, displays and pointing devices, which 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. Network adapters include, but are not limited to, modems, cable modem and Ethernet cards.
  • [0043]
    FIG. 3 depicts a schematic representation of a service delivery environment, which may be used to implement an exemplary embodiment of the present invention. Referring to FIG. 3, service delivery environment 300 includes a farm of physical servers 302, DMZ (demilitarized zone) 306 and management servers 312. The term “demilitarized zone” or acronym “DMZ” refers to a network area that sits between an organization's internal network and an external network, such as the Internet.
  • [0044]
    User requests from the Internet or an intranet are received by a router device. For example, a router device may be located within the DMZ 306. The router device may be implemented by a reverse proxy, such as IBM's WebSeal product.
  • [0045]
    User requests may be directed via network 308 to a provisioning solution that is hosted on a collection of real or virtual machines 310 running on the server farm 302. Management servers 312 that may be used to manage the server farm 302 are coupled via network 308 to the physical servers 302. The management servers 312 may be used by system administrators 304 to manage and monitor the server farm. Software running on the management servers 312 may assist with various tasks such as software metering, application provisioning, monitoring all (or selected) applications, and problem determination of the server farm.
  • [0046]
    FIG. 4 is a block diagram illustrating an example of a multi-tier, which may be used to implement an exemplary embodiment of the present invention. The depicted model is a three-tier model. Each tier may be multi-tiered itself (in which case the overall architecture is called an “n-tier architecture”). The logical tiers can be physically implemented in different ways. For example, all three tiers may be physically implemented on different servers, which can lead to greater scalability and an ability to process more client requests simultaneously.
  • [0047]
    Referring to FIG. 4, the first tier is the presentation or Web tier, which dynamically generates content in various formats for the user. The presentation tier consists of components that handle interactions between users and the business tier. User interactions with the presentation tier may be via a Web browser. A Web browser that supports an HTML-based front end, for example, communicates with a Web server, which forwards back a modified or new Web page to the user. It will be appreciated that a Web server can employ different approaches to service a user request. These approaches include, but are not limited to the Common Gateway Interface (CGI), Microsoft's Active Server Page (ASP), and the Java Server Page (JSP). Presentation tier components may include HTML pages, images and computer readable code to display and process the HTML pages such as portlets and/or servlets.
  • [0048]
    The second tier is the application or business tier. The components of the business tier process the client requests and provide the business logic for an application. Business logic is computer readable code that provides functionality to a particular application domain. It may be embodied by the actual J2EE (Java 2 Platform, Enterprise Edition) application or a business process that performs functionality specific to a provisioning solution.
  • [0049]
    The third tier is the database tier. The database tier contains data and components to manage and provide access to the data, such as database management software.
  • [0050]
    FIG. 5 depicts an example of a logical application structure containing a resource dependency characterization of a sample application, according to an exemplary embodiment of the present invention. Referring to FIG. 5, the example logical application structure is a dependency graph containing resource dependency characteristics of the sample application. However, it is to be understood that any suitable logical application structure may be employed.
  • [0051]
    A dependency graph may be expressed as an XML file that highlights the relationships and dependencies between different components. In the example depicted in FIG. 5, the “Loan Solution” 522 largely depends on the availability of three components, WebSphere Portal Server 524, WebSphere Process Server 530 and DB2 server 534. The WebSphere Portal Server 524 depends on the availability of WebSphere Application Server 526 and DB2 client 528. The WebSphere Process Server depends upon DB2 client 532.
  • [0052]
    FIGS. 6A through 6C are block diagrams illustrating templates, according to exemplary embodiments of the present invention. A template can be considered as a generic representation of a desirable configuration for the deployment of different types of elements, such as may be found in an application. In FIGS. 6A through 6C, for each template, the nodes (represented by boxes) follow a predefined network topology (illustrated by the arrowed lines). A template may be used to represent multi-tiered applications or service.
  • [0053]
    A template may include various types of information. Multiple templates can be generated and stored in a repository.
  • [0054]
    Referring to FIG. 6A, a simple template 602 may consist of a single instance each of a portal server, process server, database server and a router. Each node in the simple template 602 follows a predefined network topology, as illustrated by the arrowed lines connecting the nodes. The database server may be, for example, IBM's DB2 database management system, which runs on devices ranging from handhelds to mainframes.
  • [0055]
    Referring to FIG. 6B, a Web-tier only cluster template 604 may consist of an incoming WebSeal router, multiple portal servers, a single process server, a single DB2 server and a router. Each node in the Web-tier only cluster template 604 follows a predefined network topology, as illustrated by the arrowed lines connecting the nodes.
  • [0056]
    Referring to FIG. 6C, secure deployment template 606 may consist of a simple template, such as that shown in FIG. 6A, augmented by security servers of TAM and LDAP. Each node in the secure deployment template 606 follows a predefined network topology, as illustrated by the arrowed lines connecting the nodes.
  • [0057]
    An example of the provisioning of computing resources in a distributed computing network, according to an exemplary embodiment of the present invention, will be described with reference to FIGS. 5 and 6B. Referring to FIG. 5 logical application structure contains a resource dependency characterization of a “Loan Solution” 522. In this example scenario, resources represented in the logical application structure of FIG. 5 will be assigned to the template 604 of FIG. 6B.
  • [0058]
    The WebSphere Portal Server 524 component is assigned to Portal Server in template 604. Here, the WebSphere Portal Server 524 component is assigned in a cluster configuration, as there are two nodes for the Portal Server in template 604. The WebSphere Process Server 530 component is assigned to the Process Server component in template 604. Any database specific configuration scripts for the provisioning solution are assigned to the DB2 server, while any router specific configuration scripts are assigned to the router in template 604. For example, these scripts may be included in the provisioning-solution artifact.
  • [0059]
    The DB2 client 528 and 532 is configured to point to the DB2 server node in template 604. In this example, there is no component assigned to the WebSeal node in template 604; however, the WebSeal node is configured to enable access to the deployed application. After the assignments (or “mapping”) is complete, physical resources are allocated to provision the resources to implement an application over the distributed computing network. As used herein, the term “physical resources” refers to physical or virtual components, such as for example, physical memory, virtual memory, physical server or virtual environment, etc.
  • [0060]
    FIG. 7 is a flowchart illustrating a method for automated provisioning of computing resources in a distributed computing network, according to an exemplary embodiment of the present invention. Referring to FIG. 7, a provisioning-solution artifact and user-input template identifier are received, in step 702. For example, the provisioning-solution artifact may be a binary code that realizes a function of the application to be implemented. One or more provisioning-solution artifacts may be stored in a repository. A graphical user interface may be provided to allow a user to browse for a path to a provisioning-solution artifact and set the path.
  • [0061]
    In an exemplary embodiment of the present invention, a repository containing a plurality of templates is provided. A graphical user interface may be provided to allow a user to select a template identifier from a list of template identifiers for uniquely identifying each of the plurality of templates stored in the repository.
  • [0062]
    In step 704, a data structure representing a resource dependency characterization of an application to be implemented over a distributed computing network is obtained. The data structure may have a plurality of nodes indicative of a set of resources to be deployed. For example, the data structure may be a dependency graph.
  • [0063]
    In an exemplary embodiment of the present invention, a dependency graph is obtained by analyzing the provisioning-solution artifact to determine the dependency graph. For example, a dependency graph may be generated by introspection of the provisioning-solution artifact, which may contain modules such as portal applications, SCA modules, database DDL scripts, portal layout descriptors, J2EE applications, etc. During introspection, each module is identified and corresponding software components are noted to create a dependency graph for the provisioning-solution artifact. The dependency graph can then be used to map modules of the provisioning-solution artifact to the nodes.
  • [0064]
    In step 706, a template having a plurality of nodes that follow a predefined network topology for supporting deployment of the set of resources is obtained. For example, the template may be a directed graph in which the nodes represent functional capabilities and the edges represent communication paths. The template may be retrieved from a repository based on the user-input template identifier.
  • [0065]
    In step 708, the data structure is traversed. In step 710, it is determined whether there are resources remaining to be mapped from the data structure to the nodes of the template.
  • [0066]
    When it is determined that there are resources remaining to be mapped, resources represented in the data structure are mapped to the nodes of the template, in step 712. In an exemplary embodiment of the present invention, the resources represented in the data structure are mapped to the nodes of the template so as to satisfy a set of component requirements to generate a deployment map. Examples of component requirements include, but are not limited to, memory requirements, available free disk space, CPU speed, installed software components, and libraries. In an exemplary embodiment of the present invention, the component requirements are determined from the installation guides for different software components, and stored as meta data for each software component.
  • [0067]
    Mapping the resources represented in the data structure to the nodes of the template, in step 712, may include analysis of the component requirements as factors in determining appropriate mapping of resources represented in the data structure to the nodes of the template. For example, in the case where the WebSphere Application Server 526 requires at least 2 GB of memory, any resource that needs a WebSphere Application Server to run will need to be mapped to a node that supports the component requirements.
  • [0068]
    Once the mapping is complete in step 714, physical resources corresponding to the resources represented in the template nodes are requested, in step 716.
  • [0069]
    In step 718, a request may be submitted to initiate provisioning of the physical resources. A set of resources may be provisioned on a plurality of computers based on a deployment map to implement an application over the distributed computing network. For example, provisioning may include implementing changes for hardware, software, network and/or storage resources based on the mapping of resources represented in the data structure to the nodes of the template. In step 720, the provisioning of the computing resources is complete.
  • [0070]
    In an exemplary embodiment of the present invention, a system for automated provisioning of computing resources in a distributed computing network includes a memory device for storing a program of instructions, a processor in communication with the memory device and a processor. The process is operative with the program of instructions to obtain a data structure representing a resource dependency characterization of an application to be implemented over the distributed computing network, wherein the data structure has a plurality of nodes indicative of a set of resources to be deployed, obtain a template having a plurality of nodes that follow a predefined network topology for supporting deployment of the set of resources, and map the set of resources represented in the data structure to the nodes of the template so as to satisfy a set of component requirements to generate a deployment map. The component requirements may be, for example, memory requirements, available free disk space, CPU speed, installed software components, and libraries. The component requirements may be determined from the installation guides for different software components, and stored as meta data for each software component. The processor is further operative with the program of instructions to provision the set of resources on the plurality of computers based on the deployment map to implement the application over the distributed computing network.
  • [0071]
    FIG. 8 is a flowchart illustrating a method for automated provisioning of software components in a distributed computing network, according to an exemplary embodiment of the present invention. Referring to FIG. 8, a provisioning-solution artifact and user-selected old and new template identifiers are received, in step 802. For example, the provisioning-solution artifact may be a binary code that realizes a function of the application to be implemented.
  • [0072]
    In step 804, a data structure representing a resource dependency characterization of an application to be implemented over the distributed computing network is obtained. The data structure may have a plurality of nodes indicative of a set of resources to be deployed. The data structure may be, for example, a dependency graph.
  • [0073]
    In step 806, the old template having a plurality of nodes that follow a first predefined network topology for supporting deployment of a set of resources is obtained. In step 807, the new template having a plurality of nodes that follow a second predefined network topology for supporting redeployment of the set of resources is obtained. The old and new templates may be retrieved from a repository based on the user-input old and new template identifiers.
  • [0074]
    In step 808, the old template is traversed. It is determined whether there are resources remaining to be migrated from the old template to the nodes of the new template, in step 810.
  • [0075]
    When it is determined that there are resources remaining to be migrated, resources represented in the nodes of the old template are assigned to the nodes in the new template, in step 812. In the case where certain functionality is not supported in the new template, then certain component(s) may be ignored from the old template. In the case where some new functionality is introduced in the new template, then no mapping from the old template to the new template is performed with respect to the new functionality.
  • [0076]
    In step 814, the redeployment map is complete. In some cases, the resources represented in the nodes of the new template may be a subset of the resources represented in the old template. In some cases, the resources represented in the nodes of the new template may be a superset of the resources represented in the old template.
  • [0077]
    Next, in step 816, physical resources are requested for the resources represented in the new template. In step 818, provisioning of the resources based on the redeployment map is initiated. Provisioning may include implementing changes for hardware, software, network and/or storage resources based on information contained in the redeployment map.
  • [0078]
    In step 820, provisioning of the computing resources along with state to the new configuration based on the redeployment map is complete. The state of the component refers to the state stored in files and database tables that the component needs to resume function from the point where it was migrated. Prior to migration, the components are quiesced so that all the dynamic state is written to persistent storage, such as for example, files and database tables. After the state is migrated to the new nodes then the components can resume function from the point of suspension.
  • [0079]
    An example of the migration of computing resources in a distributed computing network, according to an exemplary embodiment of the present invention, will be described with reference to FIGS. 5, 6B and 6C. In this example scenario, the “Loan Solution” depicted in FIG. 5, which was previously assigned to template 604 of FIG. 6B will be migrated to template 606 of FIG. 6C.
  • [0080]
    Referring to FIGS. 6B and 6C, any WebSeal specific configuration is migrated from the WebSeal node in template 604 to the WebSeal node in template 606. A single Portal Server configuration may be migrated from the Portal cluster in template 604 to a single Portal Server node in 606. Similarly, the Process Server, DB2, and router nodes may be migrated to the corresponding nodes in template 606. In this example, since there are no nodes in the template 604 corresponding to TAM and LDAP, no corresponding configuration information is migrated.
  • [0081]
    FIG. 9 is a flowchart illustrating a method for automated provisioning of software components in a distributed computing network, according to an exemplary embodiment of the present invention. Referring to FIG. 9, in step 910, a mapping of a set of resources to nodes of a first template is obtained. The first template has a plurality of nodes that follow a first predefined network topology for supporting a first deployment of the set of resources. The first template may be a directed graph in which the nodes represent functional capabilities and the edges represent communication paths.
  • [0082]
    In step 920, a second template is obtained. The second template has a plurality of nodes that follow a second predefined network topology for supporting a second deployment of the set of resources. The second template may be a directed graph in which the nodes represent functional capabilities and the edges represent communication paths. The first and second templates may be retrieved from a repository based on user-input template identifiers.
  • [0083]
    In step 930, the set of resources represented in the nodes of first template are mapped to the nodes in the second template so as to satisfy a set of component requirements to generate a redeployment map. Examples of component requirements may include, but are not limited to, memory requirements, available free disk space, CPU speed, installed software components, and libraries. The component requirements may be determined from the installation guides for different software components, and stored as meta data for each software component.
  • [0084]
    In step 940, the set of resources is provisioned on a plurality of computers based on the redeployment map to implement the application over the distributed computing network.
  • [0085]
    In an exemplary embodiment of the present invention, a system for automated provisioning of software components in a distributed computing network includes a memory device for storing a program of instructions, and a processor in communication with the memory device. The processor is operative with the program of instructions to obtain a mapping of a set of resources to nodes of a first template, the first template having a plurality of nodes that follow a first predefined network topology for supporting a first deployment of a set of resources, obtain a second template having a plurality of nodes that follow a second predefined network topology for supporting a second deployment of the set of resources, and map the set of resources represented in the nodes of first template to the nodes in the second template so as to satisfy a set of component requirements to generate a redeployment map. The processor is further operative with the program of instructions to provision the set of resources on the plurality of computers based on the redeployment map to implement the application over the distributed computing network.
  • [0086]
    In an exemplary embodiment of the present invention, a repository containing a plurality of templates is provided. A graphical user interface may be provided to allow a user to select a template identifier from a list of template identifiers for uniquely identifying each of the plurality of templates stored in the repository. For example, obtaining the second template may include receiving a user-input second template identifier via the GUI, and retrieving one of the plurality of templates from the repository based on the user-input second template identifier.
  • [0087]
    Although exemplary embodiments of the present invention have been described in detail with reference to the accompanying drawings for the purpose of illustration and description, it is to be understood that the inventive processes and apparatus are not to be construed as limited thereby. It will be apparent to those of ordinary skill in the art that various modifications to the foregoing exemplary embodiments may be made without departing from the scope of the invention as defined by the appended claims, with equivalents of the claims to be included therein.

Claims (21)

  1. 1. A method for automated provisioning of computing resources in a distributed computing network, the method comprising:
    obtaining a data structure representing a resource dependency characterization of an application to be implemented over the distributed computing network, wherein the data structure indicates a set of resources to be deployed;
    obtaining a template that represents a predefined network topology for supporting deployment of the set of resources;
    mapping the set of resources indicated in the data structure to the template so as to satisfy a set of component requirements to generate a deployment map; and
    provisioning the set of resources on a plurality of computers based on the deployment map to implement the application over the distributed computing network.
  2. 2. The method of claim 2, wherein obtaining the data structure comprises:
    receiving a provisioning-solution artifact, which represents a binary code that realizes a function of the application to be implemented; and
    analyzing the provisioning-solution artifact to determine the dependency graph.
  3. 3. The method of claim 2, wherein the data structure is a dependency graph having a plurality of nodes indicative of the set of resources to be deployed.
  4. 4. The method of claim 3, wherein receiving the provisioning-solution artifact comprises:
    providing a repository containing at least one provisioning-solution artifact;
    providing a graphical user interface (GUI), wherein the GUI allows a user to browse for a path to a provisioning-solution artifact and set the path.
  5. 5. The method of claim 1, wherein the template is a directed graph in which nodes represent functional capabilities and edges represent communication paths.
  6. 6. The method of claim 1, wherein obtaining the template comprises:
    providing a repository containing a plurality of templates;
    providing a graphical user interface (GUI), wherein the GUI allows a user to select a template identifier from a list of template identifiers for uniquely identifying each of the plurality of templates stored in the repository;
    receiving a user-input template identifier via the GUI; and
    retrieving one of the plurality of templates from the repository based on the user-input template identifier.
  7. 7. The method of claim 1, wherein the set of component requirements are analyzed to determine the mapping of the resources indicated in the data structure to the template.
  8. 8. The method of claim 1, wherein provisioning comprises implementing changes for at least one of hardware, software, network or storage resources based on the mapping of resources represented in the data structure to the template.
  9. 9. A system for automated provisioning of computing resources in a distributed computing network, the system comprising:
    a memory device for storing a program of instructions;
    a processor in communication with the memory device, the processor operative with the program of instructions to:
    obtain a data structure representing a resource dependency characterization of an application to be implemented over the distributed computing network, wherein the data structure indicates a set of resources to be deployed;
    obtain a template that represents a predefined network topology for supporting deployment of the set of resources;
    map the set of resources represented in the data structure to the nodes of the template so as to satisfy a set of component requirements to generate a deployment map; and
    provision the set of resources on a plurality of computers based on the deployment map to implement the application over the distributed computing network.
  10. 10. The system of claim 9, wherein the data structure is a dependency graph.
  11. 11. The system of claim 9, wherein the template is a directed graph in which the nodes represent functional capabilities and edges represent communication paths.
  12. 12. The system of claim 9, wherein the processor is further operative with the program of instructions to analyze the set of component requirements to determine the mapping of the resources represented in the data structure to the nodes of the template.
  13. 13. A method for automated provisioning of software components in a distributed computing network, the method comprising:
    obtaining a mapping of a set of resources to nodes of a first template, the first template having a plurality of nodes that follow a first predefined network topology for supporting a first deployment of the set of resources;
    obtaining a second template having a plurality of nodes that follow a second predefined network topology for supporting a second deployment of the set of resources;
    migrating the set of resources represented in the nodes of the first template to the nodes in the second template so as to satisfy a set of component requirements to generate a redeployment map; and
    provisioning the set of resources on a plurality of computers based on the redeployment map to implement an application over the distributed computing network.
  14. 14. The method of claim 13, wherein obtaining the mapping comprises:
    receiving a provisioning-solution artifact, which represents a binary code that realizes at least one function of an application to be implemented;
    analyzing the provisioning-solution artifact to determine a dependency graph representing a resource dependency characterization of the application to be implemented over the distributed computing network; and
    mapping the set of resources represented in the dependency graph to the nodes of the first template so as to satisfy a set of component requirements.
  15. 15. The method of claim 14, wherein receiving the provisioning-solution artifact comprises:
    providing a repository containing at least one provisioning-solution artifact;
    providing a graphical user interface (GUI), wherein the GUI allows a user to browse for a path to the provisioning-solution artifact and set the path.
  16. 16. The method of claim 13, wherein the first template and the second template are directed graphs in which the nodes represent functional capabilities of resources and the edges represent communication paths.
  17. 17. The method of claim 13, wherein obtaining the second template comprises:
    providing a repository containing a plurality of templates;
    providing a graphical user interface (GUI), wherein the GUI allows a user to select a second template identifier from a list of template identifiers for uniquely identifying each of the plurality of templates stored in the repository;
    receiving a user-input second template identifier via the GUI; and
    retrieving one of the plurality of templates from the repository based on the user-input second template identifier.
  18. 18. The method of claim 13, wherein the set of component requirements are analyzed to determine the migration of the resources represented in the nodes of the first template to the nodes of the second template.
  19. 19. The method of claim 13, wherein provisioning comprises implementing changes for at least one of hardware, software, network or storage resources based on the deployment map.
  20. 20. A system for automated provisioning of software components in a distributed computing network, the system comprising:
    a memory device for storing a program of instructions;
    a processor in communication with the memory device, the processor operative with the program of instructions to:
    obtain a mapping of a set of resources to nodes of a first template, the first template having a plurality of nodes that follow a first predefined network topology for supporting a first deployment of a set of resources;
    obtain a second template having a plurality of nodes that follow a second predefined network topology for supporting a second deployment of the set of resources;
    migrate the set of resources represented in the nodes of first template to the nodes in the second template so as to satisfy a set of component requirements to generate a redeployment map; and
    provision the set of resources on a plurality of computers based on the redeployment map to implement an application over the distributed computing network.
  21. 21. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for automated provisioning of computing resources in a distributed computing network, the method steps comprising:
    obtaining a data structure representing a resource dependency characterization of an application to be implemented over the distributed computing network, wherein the data structure indicates a set of resources to be deployed;
    obtaining a template that represents a predefined network topology for supporting deployment of the set of resources;
    mapping the set of resources indicated in the data structure to the template so as to satisfy a set of component requirements to generate a deployment map; and
    provisioning the set of resources on a plurality of computers based on the deployment map to implement the application over the distributed computing network.
US11753956 2007-05-25 2007-05-25 Method and apparatus for template-based provisioning in a service delivery environment Abandoned US20080294777A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11753956 US20080294777A1 (en) 2007-05-25 2007-05-25 Method and apparatus for template-based provisioning in a service delivery environment

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11753956 US20080294777A1 (en) 2007-05-25 2007-05-25 Method and apparatus for template-based provisioning in a service delivery environment
PCT/EP2008/056174 WO2008145565A1 (en) 2007-05-25 2008-05-20 Template-based provisioning in a service delivery environment
US12541760 US9262143B2 (en) 2007-05-25 2009-08-14 Method and apparatus for template-based provisioning in a service delivery environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12541760 Division US9262143B2 (en) 2007-05-25 2009-08-14 Method and apparatus for template-based provisioning in a service delivery environment

Publications (1)

Publication Number Publication Date
US20080294777A1 true true US20080294777A1 (en) 2008-11-27

Family

ID=39766861

Family Applications (2)

Application Number Title Priority Date Filing Date
US11753956 Abandoned US20080294777A1 (en) 2007-05-25 2007-05-25 Method and apparatus for template-based provisioning in a service delivery environment
US12541760 Active 2029-11-25 US9262143B2 (en) 2007-05-25 2009-08-14 Method and apparatus for template-based provisioning in a service delivery environment

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12541760 Active 2029-11-25 US9262143B2 (en) 2007-05-25 2009-08-14 Method and apparatus for template-based provisioning in a service delivery environment

Country Status (2)

Country Link
US (2) US20080294777A1 (en)
WO (1) WO2008145565A1 (en)

Cited By (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090171705A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Defining and using templates in configuring information technology environments
US20090222504A1 (en) * 2008-02-28 2009-09-03 Oracle International Corporation Distributed cross-application server deployment
US20100036698A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation Charging Resource Usage in a Distributed Computing Environment
US20100050169A1 (en) * 2008-08-21 2010-02-25 Dehaan Michael Paul Methods and systems for providing remote software provisioning to machines
US20100058327A1 (en) * 2008-08-28 2010-03-04 Dehaan Michael Paul Methods and systems for providing customized actions related to software provisioning
US20100057913A1 (en) * 2008-08-29 2010-03-04 Dehaan Michael Paul Systems and methods for storage allocation in provisioning of virtual machines
US20100082799A1 (en) * 2008-09-26 2010-04-01 Dehaan Michael Paul Methods and systems for managing network connections in a software provisioning environment
US20100217840A1 (en) * 2009-02-25 2010-08-26 Dehaan Michael Paul Methods and systems for replicating provisioning servers in a software provisioning environment
US20100223607A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for abstracting software content management in a software provisioning environment
US20110087924A1 (en) * 2009-10-14 2011-04-14 Microsoft Corporation Diagnosing Abnormalities Without Application-Specific Knowledge
US20110131384A1 (en) * 2009-11-30 2011-06-02 Scott Jared Henson Systems and methods for integrating storage resources from storage area network in machine provisioning platform
US8032634B1 (en) * 1999-08-23 2011-10-04 Oracle America, Inc. Approach for allocating resources to an apparatus based on resource requirements
US8132166B2 (en) 2007-05-14 2012-03-06 Red Hat, Inc. Methods and systems for provisioning software
US8135989B2 (en) 2009-02-27 2012-03-13 Red Hat, Inc. Systems and methods for interrogating diagnostic target using remotely loaded image
US20120066391A1 (en) * 2010-09-15 2012-03-15 Qualcomm Incorporated System and method for managing resources of a portable computing device
US20120123825A1 (en) * 2010-11-17 2012-05-17 International Business Machines Corporation Concurrent scheduling of plan operations in a virtualized computing environment
US8244836B2 (en) 2008-08-29 2012-08-14 Red Hat, Inc. Methods and systems for assigning provisioning servers in a software provisioning environment
US8326910B2 (en) 2007-12-28 2012-12-04 International Business Machines Corporation Programmatic validation in an information technology environment
US8341014B2 (en) 2007-12-28 2012-12-25 International Business Machines Corporation Recovery segments for computer business applications
US8346931B2 (en) 2007-12-28 2013-01-01 International Business Machines Corporation Conditional computer runtime control of an information technology environment based on pairing constructs
US8365185B2 (en) 2007-12-28 2013-01-29 International Business Machines Corporation Preventing execution of processes responsive to changes in the environment
US8375244B2 (en) 2007-12-28 2013-02-12 International Business Machines Corporation Managing processing of a computing environment during failures of the environment
CN102959506A (en) * 2010-06-22 2013-03-06 惠普发展公司,有限责任合伙企业 Methods and systems for planning application deployment
US8402123B2 (en) 2009-02-24 2013-03-19 Red Hat, Inc. Systems and methods for inventorying un-provisioned systems in a software provisioning environment
US8413259B2 (en) 2009-02-26 2013-04-02 Red Hat, Inc. Methods and systems for secure gated file deployment associated with provisioning
US8417926B2 (en) 2009-03-31 2013-04-09 Red Hat, Inc. Systems and methods for providing configuration management services from a provisioning server
US8428983B2 (en) 2007-12-28 2013-04-23 International Business Machines Corporation Facilitating availability of information technology resources based on pattern system environments
US8447859B2 (en) 2007-12-28 2013-05-21 International Business Machines Corporation Adaptive business resiliency computer system for information technology environments
US20130132456A1 (en) * 2011-11-17 2013-05-23 Microsoft Corporation Decoupling cluster data from cloud depolyment
WO2013078258A1 (en) * 2011-11-25 2013-05-30 International Business Machines Corporation System, method and program product for cost-aware selection of templates for provisioning shared resources
US8464247B2 (en) 2007-06-21 2013-06-11 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US20130198719A1 (en) * 2012-01-31 2013-08-01 Red Hat Inc. Automated deployment of an application in a computing platform
US8527578B2 (en) 2008-08-29 2013-09-03 Red Hat, Inc. Methods and systems for centrally managing multiple provisioning servers
US20130254381A1 (en) * 2012-03-02 2013-09-26 Payoda Inc. System and method for creating and establishing a workflow based template for a domain server or ip server in datacenters
US8561058B2 (en) 2007-06-20 2013-10-15 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8572587B2 (en) 2009-02-27 2013-10-29 Red Hat, Inc. Systems and methods for providing a library of virtual images in a software provisioning environment
US20130332430A1 (en) * 2012-06-07 2013-12-12 Vmware, Inc. Tracking changes that affect performance of deployed applications
US8612968B2 (en) 2008-09-26 2013-12-17 Red Hat, Inc. Methods and systems for managing network connections associated with provisioning objects in a software provisioning environment
US8631414B2 (en) 2010-09-15 2014-01-14 Qualcomm Incorporated Distributed resource management in a portable computing device
US8667096B2 (en) 2009-02-27 2014-03-04 Red Hat, Inc. Automatically generating system restoration order for network recovery
US8677174B2 (en) 2007-12-28 2014-03-18 International Business Machines Corporation Management of runtime events in a computer environment using a containment region
US8682705B2 (en) 2007-12-28 2014-03-25 International Business Machines Corporation Information technology management based on computer dynamically adjusted discrete phases of event correlation
US8713177B2 (en) 2008-05-30 2014-04-29 Red Hat, Inc. Remote management of networked systems using secure modular platform
US8763006B2 (en) 2007-12-28 2014-06-24 International Business Machines Corporation Dynamic generation of processes in computing environments
US8775591B2 (en) 2007-12-28 2014-07-08 International Business Machines Corporation Real-time information technology environments
US8775578B2 (en) 2008-11-28 2014-07-08 Red Hat, Inc. Providing hardware updates in a software environment
US8782204B2 (en) 2008-11-28 2014-07-15 Red Hat, Inc. Monitoring hardware resources in a software provisioning environment
US8782662B2 (en) 2007-12-28 2014-07-15 International Business Machines Corporation Adaptive computer sequencing of actions
US20140207944A1 (en) * 2013-01-24 2014-07-24 Hitachi, Ltd. Method and system for managing cloud computing environment
US8793683B2 (en) 2008-08-28 2014-07-29 Red Hat, Inc. Importing software distributions in a software provisioning environment
US8799888B1 (en) 2011-05-20 2014-08-05 Amazon Technologies, Inc. Updating an application
US8806502B2 (en) 2010-09-15 2014-08-12 Qualcomm Incorporated Batching resource requests in a portable computing device
US8826077B2 (en) 2007-12-28 2014-09-02 International Business Machines Corporation Defining a computer recovery process that matches the scope of outage including determining a root cause and performing escalated recovery operations
US8825819B2 (en) 2009-11-30 2014-09-02 Red Hat, Inc. Mounting specified storage resources from storage area network in machine provisioning platform
US8832256B2 (en) 2008-11-28 2014-09-09 Red Hat, Inc. Providing a rescue Environment in a software provisioning environment
US8838827B2 (en) 2008-08-26 2014-09-16 Red Hat, Inc. Locating a provisioning server
US8850419B1 (en) * 2011-05-20 2014-09-30 Amazon Technologies, Inc. Descaling computing resources
US8869135B1 (en) 2011-05-20 2014-10-21 Amazon Technologies, Inc. Deploying updates to an application during periods of off-peak demand
US8868441B2 (en) 2007-12-28 2014-10-21 International Business Machines Corporation Non-disruptively changing a computing environment
US8892700B2 (en) 2009-02-26 2014-11-18 Red Hat, Inc. Collecting and altering firmware configurations of target machines in a software provisioning environment
US8898305B2 (en) 2008-11-25 2014-11-25 Red Hat, Inc. Providing power management services in a software provisioning environment
US8990368B2 (en) 2009-02-27 2015-03-24 Red Hat, Inc. Discovery of network software relationships
US8990810B2 (en) 2007-12-28 2015-03-24 International Business Machines Corporation Projecting an effect, using a pairing construct, of execution of a proposed action on a computing environment
US9021470B2 (en) 2008-08-29 2015-04-28 Red Hat, Inc. Software provisioning in multiple network configuration environment
US9047155B2 (en) 2009-06-30 2015-06-02 Red Hat, Inc. Message-based installation management using message bus
US9098521B2 (en) 2010-09-15 2015-08-04 Qualcomm Incorporated System and method for managing resources and threshsold events of a multicore portable computing device
US9100297B2 (en) 2008-08-20 2015-08-04 Red Hat, Inc. Registering new machines in a software provisioning environment
US9111118B2 (en) 2008-08-29 2015-08-18 Red Hat, Inc. Managing access in a software provisioning environment
US9124497B2 (en) 2008-11-26 2015-09-01 Red Hat, Inc. Supporting multiple name servers in a software provisioning environment
US9134987B2 (en) 2009-05-29 2015-09-15 Red Hat, Inc. Retiring target machines by a provisioning server
US9152523B2 (en) 2010-09-15 2015-10-06 Qualcomm Incorporated Batching and forking resource requests in a portable computing device
US20150288569A1 (en) * 2013-11-10 2015-10-08 Cloudweaver, Inc. Methods and system for automated or user-assisted grouping and management of groups in cloud infrastructure and network
US9164749B2 (en) 2008-08-29 2015-10-20 Red Hat, Inc. Differential software provisioning on virtual machines having different configurations
US9250672B2 (en) 2009-05-27 2016-02-02 Red Hat, Inc. Cloning target machines in a software provisioning environment
US9262238B2 (en) 2012-01-31 2016-02-16 Red Hat, Inc. Connection management for an application in a computing platform
US9411570B2 (en) 2009-02-27 2016-08-09 Red Hat, Inc. Integrating software provisioning and configuration management
WO2016161178A1 (en) * 2015-03-31 2016-10-06 Galaxe. Solutions, Inc. System and method for automated cross-application dependency mapping
US9477570B2 (en) 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US9558459B2 (en) 2007-12-28 2017-01-31 International Business Machines Corporation Dynamic selection of actions in an information technology environment
US9558195B2 (en) 2009-02-27 2017-01-31 Red Hat, Inc. Depopulation of user data from network
US9665356B2 (en) 2012-01-31 2017-05-30 Red Hat, Inc. Configuration of an application in a computing platform
US9876673B2 (en) 2014-06-25 2018-01-23 Vmware, Inc. Self-learning automated remediation of changes that cause performance degradation of applications
US9935825B2 (en) 2015-08-03 2018-04-03 Wipro Limited System and method for provisioning and deployment of application environment on hybrid cloud platform
US9940208B2 (en) 2009-02-27 2018-04-10 Red Hat, Inc. Generating reverse installation file for network restoration
US9952845B2 (en) 2008-08-29 2018-04-24 Red Hat, Inc. Provisioning machines having virtual storage resources
US10003514B2 (en) 2010-06-22 2018-06-19 Hewlett Packard Enteprrise Development LP Method and system for determining a deployment of applications

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438342B1 (en) * 2009-12-09 2013-05-07 Emc Corporation Automated application-based storage provisioning
US8627309B2 (en) 2010-02-25 2014-01-07 Microsoft Corporation Automated deployment and servicing of distributed applications
US8402306B1 (en) * 2010-05-14 2013-03-19 Symantec Corporation Systems and methods for managing applications
US9268615B2 (en) * 2010-05-28 2016-02-23 Microsoft Technology Licensing, Llc Distributed computing using communities
CN103189839B (en) * 2010-09-07 2016-08-24 惠普发展公司,有限责任合伙企业 System and method for automated deployment of the multi-component computer environment
US20120209887A1 (en) * 2011-02-11 2012-08-16 Standardware, Incorporated System, Process and Article of Manufacture for Automatic Generation of Subsets of Existing Databases
US20130305091A1 (en) * 2012-05-09 2013-11-14 Ixia Drag and drop network topology editor for generating network test configurations

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487718B1 (en) * 1999-03-31 2002-11-26 International Business Machines Corporation Method and apparatus for installing applications in a distributed data processing system
US20050004942A1 (en) * 2003-04-02 2005-01-06 Madsen Mark E. Methods and systems for controlling network infrastructure devices
US20050283759A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Method and system for managing application deployment
US20060059253A1 (en) * 1999-10-01 2006-03-16 Accenture Llp. Architectures for netcentric computing systems
US20060080412A1 (en) * 2004-06-17 2006-04-13 International Business Machines Corporation Method and system for establishing a server template for an application deployment
US20060080413A1 (en) * 2004-06-17 2006-04-13 International Business Machines Corporation Method and system for establishing a deployment plan for an application
US20060245354A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Method and apparatus for deploying and instantiating multiple instances of applications in automated data centers using application deployment template
US20060271928A1 (en) * 2005-05-04 2006-11-30 International Business Machines Corporation Method and apparatus for a design pattern for automating service provisioning
US20070121579A1 (en) * 2000-09-13 2007-05-31 Fortinet, Inc. Packet routing system and method
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US7389339B1 (en) * 2000-12-23 2008-06-17 Emc Corporation Ambiguity-purging and template-conflict-resolution in computer network events-notification

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003085513A3 (en) * 2002-04-11 2004-04-15 Ibm A software distribution method and system
US20040039728A1 (en) * 2002-08-23 2004-02-26 Diring Software Method and system for monitoring distributed systems
US7890543B2 (en) * 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20050278694A1 (en) * 2003-11-15 2005-12-15 International Business Machine Corporation Describing Runtime Components of a Solution for a Computer System
US20050289536A1 (en) * 2004-06-23 2005-12-29 International Business Machines Coporation Automated deployment of an application
US8413134B2 (en) * 2005-05-10 2013-04-02 International Business Machines Corporation Method, system and computer program for installing software products based on package introspection

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487718B1 (en) * 1999-03-31 2002-11-26 International Business Machines Corporation Method and apparatus for installing applications in a distributed data processing system
US20060059253A1 (en) * 1999-10-01 2006-03-16 Accenture Llp. Architectures for netcentric computing systems
US20070121579A1 (en) * 2000-09-13 2007-05-31 Fortinet, Inc. Packet routing system and method
US7389339B1 (en) * 2000-12-23 2008-06-17 Emc Corporation Ambiguity-purging and template-conflict-resolution in computer network events-notification
US20050004942A1 (en) * 2003-04-02 2005-01-06 Madsen Mark E. Methods and systems for controlling network infrastructure devices
US20060080413A1 (en) * 2004-06-17 2006-04-13 International Business Machines Corporation Method and system for establishing a deployment plan for an application
US20050283759A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Method and system for managing application deployment
US20060080412A1 (en) * 2004-06-17 2006-04-13 International Business Machines Corporation Method and system for establishing a server template for an application deployment
US20060245354A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Method and apparatus for deploying and instantiating multiple instances of applications in automated data centers using application deployment template
US20060271928A1 (en) * 2005-05-04 2006-11-30 International Business Machines Corporation Method and apparatus for a design pattern for automating service provisioning
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services

Cited By (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032634B1 (en) * 1999-08-23 2011-10-04 Oracle America, Inc. Approach for allocating resources to an apparatus based on resource requirements
US8271975B2 (en) 2007-05-14 2012-09-18 Red Hat, Inc. Method and system for provisioning software
US8185891B2 (en) 2007-05-14 2012-05-22 Red Hat, Inc. Methods and systems for provisioning software
US8132166B2 (en) 2007-05-14 2012-03-06 Red Hat, Inc. Methods and systems for provisioning software
US8561058B2 (en) 2007-06-20 2013-10-15 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8464247B2 (en) 2007-06-21 2013-06-11 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8326910B2 (en) 2007-12-28 2012-12-04 International Business Machines Corporation Programmatic validation in an information technology environment
US8677174B2 (en) 2007-12-28 2014-03-18 International Business Machines Corporation Management of runtime events in a computer environment using a containment region
US8375244B2 (en) 2007-12-28 2013-02-12 International Business Machines Corporation Managing processing of a computing environment during failures of the environment
US8775591B2 (en) 2007-12-28 2014-07-08 International Business Machines Corporation Real-time information technology environments
US8763006B2 (en) 2007-12-28 2014-06-24 International Business Machines Corporation Dynamic generation of processes in computing environments
US8782662B2 (en) 2007-12-28 2014-07-15 International Business Machines Corporation Adaptive computer sequencing of actions
US8751283B2 (en) * 2007-12-28 2014-06-10 International Business Machines Corporation Defining and using templates in configuring information technology environments
US8868441B2 (en) 2007-12-28 2014-10-21 International Business Machines Corporation Non-disruptively changing a computing environment
US20090171705A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Defining and using templates in configuring information technology environments
US8826077B2 (en) 2007-12-28 2014-09-02 International Business Machines Corporation Defining a computer recovery process that matches the scope of outage including determining a root cause and performing escalated recovery operations
US8682705B2 (en) 2007-12-28 2014-03-25 International Business Machines Corporation Information technology management based on computer dynamically adjusted discrete phases of event correlation
US8346931B2 (en) 2007-12-28 2013-01-01 International Business Machines Corporation Conditional computer runtime control of an information technology environment based on pairing constructs
US9558459B2 (en) 2007-12-28 2017-01-31 International Business Machines Corporation Dynamic selection of actions in an information technology environment
US8990810B2 (en) 2007-12-28 2015-03-24 International Business Machines Corporation Projecting an effect, using a pairing construct, of execution of a proposed action on a computing environment
US8428983B2 (en) 2007-12-28 2013-04-23 International Business Machines Corporation Facilitating availability of information technology resources based on pattern system environments
US8341014B2 (en) 2007-12-28 2012-12-25 International Business Machines Corporation Recovery segments for computer business applications
US8365185B2 (en) 2007-12-28 2013-01-29 International Business Machines Corporation Preventing execution of processes responsive to changes in the environment
US8447859B2 (en) 2007-12-28 2013-05-21 International Business Machines Corporation Adaptive business resiliency computer system for information technology environments
US20090222504A1 (en) * 2008-02-28 2009-09-03 Oracle International Corporation Distributed cross-application server deployment
US8176114B2 (en) * 2008-02-28 2012-05-08 Oracle International Corporation Distributed cross-application server deployment
US8713177B2 (en) 2008-05-30 2014-04-29 Red Hat, Inc. Remote management of networked systems using secure modular platform
US20100036698A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation Charging Resource Usage in a Distributed Computing Environment
US9665837B2 (en) * 2008-08-05 2017-05-30 International Business Machines Corporation Charging resource usage in a distributed computing environment
US9100297B2 (en) 2008-08-20 2015-08-04 Red Hat, Inc. Registering new machines in a software provisioning environment
US8930512B2 (en) 2008-08-21 2015-01-06 Red Hat, Inc. Providing remote software provisioning to machines
US20100050169A1 (en) * 2008-08-21 2010-02-25 Dehaan Michael Paul Methods and systems for providing remote software provisioning to machines
US9477570B2 (en) 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US8838827B2 (en) 2008-08-26 2014-09-16 Red Hat, Inc. Locating a provisioning server
US20100058327A1 (en) * 2008-08-28 2010-03-04 Dehaan Michael Paul Methods and systems for providing customized actions related to software provisioning
US8793683B2 (en) 2008-08-28 2014-07-29 Red Hat, Inc. Importing software distributions in a software provisioning environment
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US9111118B2 (en) 2008-08-29 2015-08-18 Red Hat, Inc. Managing access in a software provisioning environment
US9164749B2 (en) 2008-08-29 2015-10-20 Red Hat, Inc. Differential software provisioning on virtual machines having different configurations
US8527578B2 (en) 2008-08-29 2013-09-03 Red Hat, Inc. Methods and systems for centrally managing multiple provisioning servers
US8244836B2 (en) 2008-08-29 2012-08-14 Red Hat, Inc. Methods and systems for assigning provisioning servers in a software provisioning environment
US9021470B2 (en) 2008-08-29 2015-04-28 Red Hat, Inc. Software provisioning in multiple network configuration environment
US20100057913A1 (en) * 2008-08-29 2010-03-04 Dehaan Michael Paul Systems and methods for storage allocation in provisioning of virtual machines
US9952845B2 (en) 2008-08-29 2018-04-24 Red Hat, Inc. Provisioning machines having virtual storage resources
US8612968B2 (en) 2008-09-26 2013-12-17 Red Hat, Inc. Methods and systems for managing network connections associated with provisioning objects in a software provisioning environment
US8326972B2 (en) 2008-09-26 2012-12-04 Red Hat, Inc. Methods and systems for managing network connections in a software provisioning environment
US20100082799A1 (en) * 2008-09-26 2010-04-01 Dehaan Michael Paul Methods and systems for managing network connections in a software provisioning environment
US9223369B2 (en) 2008-11-25 2015-12-29 Red Hat, Inc. Providing power management services in a software provisioning environment
US8898305B2 (en) 2008-11-25 2014-11-25 Red Hat, Inc. Providing power management services in a software provisioning environment
US9124497B2 (en) 2008-11-26 2015-09-01 Red Hat, Inc. Supporting multiple name servers in a software provisioning environment
US8775578B2 (en) 2008-11-28 2014-07-08 Red Hat, Inc. Providing hardware updates in a software environment
US8782204B2 (en) 2008-11-28 2014-07-15 Red Hat, Inc. Monitoring hardware resources in a software provisioning environment
US8832256B2 (en) 2008-11-28 2014-09-09 Red Hat, Inc. Providing a rescue Environment in a software provisioning environment
US8402123B2 (en) 2009-02-24 2013-03-19 Red Hat, Inc. Systems and methods for inventorying un-provisioned systems in a software provisioning environment
US9727320B2 (en) * 2009-02-25 2017-08-08 Red Hat, Inc. Configuration of provisioning servers in virtualized systems
US20100217840A1 (en) * 2009-02-25 2010-08-26 Dehaan Michael Paul Methods and systems for replicating provisioning servers in a software provisioning environment
US8892700B2 (en) 2009-02-26 2014-11-18 Red Hat, Inc. Collecting and altering firmware configurations of target machines in a software provisioning environment
US8413259B2 (en) 2009-02-26 2013-04-02 Red Hat, Inc. Methods and systems for secure gated file deployment associated with provisioning
US9558195B2 (en) 2009-02-27 2017-01-31 Red Hat, Inc. Depopulation of user data from network
US8640122B2 (en) * 2009-02-27 2014-01-28 Red Hat, Inc. Systems and methods for abstracting software content management in a software provisioning environment
US8667096B2 (en) 2009-02-27 2014-03-04 Red Hat, Inc. Automatically generating system restoration order for network recovery
US8990368B2 (en) 2009-02-27 2015-03-24 Red Hat, Inc. Discovery of network software relationships
US9940208B2 (en) 2009-02-27 2018-04-10 Red Hat, Inc. Generating reverse installation file for network restoration
US8572587B2 (en) 2009-02-27 2013-10-29 Red Hat, Inc. Systems and methods for providing a library of virtual images in a software provisioning environment
US9411570B2 (en) 2009-02-27 2016-08-09 Red Hat, Inc. Integrating software provisioning and configuration management
US20100223607A1 (en) * 2009-02-27 2010-09-02 Dehaan Michael Paul Systems and methods for abstracting software content management in a software provisioning environment
US8135989B2 (en) 2009-02-27 2012-03-13 Red Hat, Inc. Systems and methods for interrogating diagnostic target using remotely loaded image
US8417926B2 (en) 2009-03-31 2013-04-09 Red Hat, Inc. Systems and methods for providing configuration management services from a provisioning server
US9250672B2 (en) 2009-05-27 2016-02-02 Red Hat, Inc. Cloning target machines in a software provisioning environment
US9134987B2 (en) 2009-05-29 2015-09-15 Red Hat, Inc. Retiring target machines by a provisioning server
US9047155B2 (en) 2009-06-30 2015-06-02 Red Hat, Inc. Message-based installation management using message bus
US20110087924A1 (en) * 2009-10-14 2011-04-14 Microsoft Corporation Diagnosing Abnormalities Without Application-Specific Knowledge
US8392760B2 (en) * 2009-10-14 2013-03-05 Microsoft Corporation Diagnosing abnormalities without application-specific knowledge
US8825819B2 (en) 2009-11-30 2014-09-02 Red Hat, Inc. Mounting specified storage resources from storage area network in machine provisioning platform
US20110131384A1 (en) * 2009-11-30 2011-06-02 Scott Jared Henson Systems and methods for integrating storage resources from storage area network in machine provisioning platform
US20130097597A1 (en) * 2010-06-22 2013-04-18 Hewlett Packard Development Company, L.P. Methods and systems for planning application deployment
US10003514B2 (en) 2010-06-22 2018-06-19 Hewlett Packard Enteprrise Development LP Method and system for determining a deployment of applications
US9858068B2 (en) * 2010-06-22 2018-01-02 Hewlett Packard Enterprise Development Lp Methods and systems for planning application deployment
CN102959506A (en) * 2010-06-22 2013-03-06 惠普发展公司,有限责任合伙企业 Methods and systems for planning application deployment
US20120066391A1 (en) * 2010-09-15 2012-03-15 Qualcomm Incorporated System and method for managing resources of a portable computing device
US8615755B2 (en) * 2010-09-15 2013-12-24 Qualcomm Incorporated System and method for managing resources of a portable computing device
US8806502B2 (en) 2010-09-15 2014-08-12 Qualcomm Incorporated Batching resource requests in a portable computing device
US9098521B2 (en) 2010-09-15 2015-08-04 Qualcomm Incorporated System and method for managing resources and threshsold events of a multicore portable computing device
US9152523B2 (en) 2010-09-15 2015-10-06 Qualcomm Incorporated Batching and forking resource requests in a portable computing device
US8631414B2 (en) 2010-09-15 2014-01-14 Qualcomm Incorporated Distributed resource management in a portable computing device
US20120123825A1 (en) * 2010-11-17 2012-05-17 International Business Machines Corporation Concurrent scheduling of plan operations in a virtualized computing environment
US8874457B2 (en) * 2010-11-17 2014-10-28 International Business Machines Corporation Concurrent scheduling of plan operations in a virtualized computing environment
US8869135B1 (en) 2011-05-20 2014-10-21 Amazon Technologies, Inc. Deploying updates to an application during periods of off-peak demand
US8850419B1 (en) * 2011-05-20 2014-09-30 Amazon Technologies, Inc. Descaling computing resources
US9235401B2 (en) 2011-05-20 2016-01-12 Amazon Technologies, Inc. Deploying updates to an application during periods of off-peak demand
US8799888B1 (en) 2011-05-20 2014-08-05 Amazon Technologies, Inc. Updating an application
US8682958B2 (en) * 2011-11-17 2014-03-25 Microsoft Corporation Decoupling cluster data from cloud deployment
US9106659B2 (en) 2011-11-17 2015-08-11 Microsoft Technology Licensing, Llc Decoupling cluster data from cloud deployment
US20130132456A1 (en) * 2011-11-17 2013-05-23 Microsoft Corporation Decoupling cluster data from cloud depolyment
CN103946831A (en) * 2011-11-25 2014-07-23 国际商业机器公司 System, method and program product for cost-aware selection of templates for provisioning shared resources
WO2013078258A1 (en) * 2011-11-25 2013-05-30 International Business Machines Corporation System, method and program product for cost-aware selection of templates for provisioning shared resources
US8930541B2 (en) 2011-11-25 2015-01-06 International Business Machines Corporation System, method and program product for cost-aware selection of templates for provisioning shared resources
US9665356B2 (en) 2012-01-31 2017-05-30 Red Hat, Inc. Configuration of an application in a computing platform
US9262238B2 (en) 2012-01-31 2016-02-16 Red Hat, Inc. Connection management for an application in a computing platform
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
US20130254381A1 (en) * 2012-03-02 2013-09-26 Payoda Inc. System and method for creating and establishing a workflow based template for a domain server or ip server in datacenters
US9203713B2 (en) * 2012-03-02 2015-12-01 Payoda Inc. System and method for creating and establishing a workflow based template for a domain server or IP server in datacenters
US20130332430A1 (en) * 2012-06-07 2013-12-12 Vmware, Inc. Tracking changes that affect performance of deployed applications
US8954387B2 (en) * 2012-06-07 2015-02-10 Vmware, Inc. Tracking changes that affect performance of deployed applications
US9411847B2 (en) 2012-06-07 2016-08-09 Vmware, Inc. Tracking changes that affect performance of deployed applications
US9608933B2 (en) * 2013-01-24 2017-03-28 Hitachi, Ltd. Method and system for managing cloud computing environment
US20140207944A1 (en) * 2013-01-24 2014-07-24 Hitachi, Ltd. Method and system for managing cloud computing environment
US20150288569A1 (en) * 2013-11-10 2015-10-08 Cloudweaver, Inc. Methods and system for automated or user-assisted grouping and management of groups in cloud infrastructure and network
US9800470B2 (en) * 2013-11-10 2017-10-24 F5 Networks, Inc. Methods and system for automated or user-assisted grouping and management of groups in cloud infrastructure and network
US9876673B2 (en) 2014-06-25 2018-01-23 Vmware, Inc. Self-learning automated remediation of changes that cause performance degradation of applications
WO2016161178A1 (en) * 2015-03-31 2016-10-06 Galaxe. Solutions, Inc. System and method for automated cross-application dependency mapping
US9935825B2 (en) 2015-08-03 2018-04-03 Wipro Limited System and method for provisioning and deployment of application environment on hybrid cloud platform

Also Published As

Publication number Publication date Type
US20090300184A1 (en) 2009-12-03 application
WO2008145565A1 (en) 2008-12-04 application
US9262143B2 (en) 2016-02-16 grant

Similar Documents

Publication Publication Date Title
US7340520B1 (en) System and method to facilitate manageable and agile deployment of services in accordance with various topologies
US7134122B1 (en) One click deployment
US8131825B2 (en) Method and a system for responding locally to requests for file metadata associated with files stored remotely
US7779034B2 (en) Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US20070083655A1 (en) Methods for selecting between a predetermined number of execution methods for an application program
US20060248577A1 (en) Using SSO processes to manage security credentials in a provisioning management system
US8438654B1 (en) Systems and methods for associating a virtual machine with an access control right
US7546553B2 (en) Grid landscape component
US20070083610A1 (en) Method and a system for accessing a plurality of files comprising an application program
US20080168424A1 (en) Management of composite software services
US7568199B2 (en) System for matching resource request that freeing the reserved first resource and forwarding the request to second resource if predetermined time period expired
US20100058328A1 (en) Systems and methods for differential software provisioning on virtual machines having different configurations
US20070088630A1 (en) Assessment and/or deployment of computer network component(s)
US20120089980A1 (en) Allocating virtual machines according to user-specific virtual machine metrics
US20130067469A1 (en) Load Balancing By Endpoints
US20130212576A1 (en) Tagging Physical Resources in a Cloud Computing Environment
US20120131567A1 (en) Systematic migration of workload based on classification
US20070294668A1 (en) Method and apparatus for no-demand composition and teardown of service infrastructure
US20090287772A1 (en) Systems and methods for remoting multimedia plugin calls
US20100313200A1 (en) Efficient virtual machine management
US20070078988A1 (en) Apparatus, method and system for rapid delivery of distributed applications
US20050027785A1 (en) Maintainable grid managers
US7278142B2 (en) Dynamic computing environment using remotely allocable resources
US20080046960A1 (en) Computer workload management with security policy enforcement
US20110246984A1 (en) Storage optimization selection within a virtualization environment

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KARVE, ALEXEI;MOHINDRA, AJAY;RENDAHL, RANDY ALLAN;AND OTHERS;REEL/FRAME:019345/0927

Effective date: 20070403