US20070294364A1 - Management of composite software services - Google Patents
Management of composite software services Download PDFInfo
- Publication number
- US20070294364A1 US20070294364A1 US11/453,508 US45350806A US2007294364A1 US 20070294364 A1 US20070294364 A1 US 20070294364A1 US 45350806 A US45350806 A US 45350806A US 2007294364 A1 US2007294364 A1 US 2007294364A1
- Authority
- US
- United States
- Prior art keywords
- service
- software service
- active
- services
- software
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5048—Automatic or semi-automatic definitions, e.g. definition templates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
Definitions
- the present invention relates generally to networked computer systems. More particularly, the present invention relates to software and systems management in networked computer environments.
- Distributed environments such as clusters of computing systems, data centers, and grid systems involve managing a large number of resources and service components.
- Typical end-service provided to the users of such systems require composition of multiple resources and service components, which together deliver the end-service that is of interest to the users.
- Such composition of multiple components require careful configuration of the components and deployment of these components, such that they interface with each other in a compatible manner so that the composite service is deployed, initialized, handles the workload submitted by users, handles component level faults gracefully, and provides robust service while handling fluctuations in the workload.
- the Local Configuration is a currently used script based system that dynamically configures machines based upon configuration information stored in a central database (Anderson, P., “Towards a High-Level Machine Configuration System,” LISA, 1994).
- the information pertains to network, system and services that need to be configured on the system.
- Smart Framework for Object Groups SmartFrog is a known system for specifying the configuration, and deployment of distributed applications (Goldsack, P., Guijarro, J., Mecheneau, G., Murray, P., Toft, P., “SmartFrog: Configuration and Automatic Ignition of Distributed Applications,” HP OVUA 2003).
- SmartFrog provides a language to specify the configuration of applications and dependencies between them. SmartFrog provides an infrastructure for processing and deploying applications on the distributed systems.
- the GridWeaver project is exploring the notion of combining LCFG and SmartFrog technologies for configuration management of large systems.
- the Organization for the Advancement of Structured Information Standards (OASIS) effort is looking at managing distributed resources using Web services.
- the Grid Forum is attempting to standardize the specification language as part of the Configuration Description, Deployment, and Lifecycle Management (CDDLM) activity.
- J2EE JavaTM 2 Platform Enterprise Edition
- a computer implemented method, data processing system, computer usable program code, and active repository are provided for management of a composite software service.
- the illustrative embodiments receive a request for using the software service. If the software service is not yet deployed in the computer network, the illustrative embodiments configure and deploy a new instance of the software service in the computer network. If the software service is deployed but is not adequately configured and provisioned to perform at a level required by the request, the software service is reconfigured and redeployed.
- the illustrative embodiments perform an analysis of other supporting software services and physical resources needed to deploy the software service and may reconfigure and/or deploy additional software services to enable the deployment of the software service.
- the illustrative embodiments create an active object in an active repository to manage the new software service using an active template based on the analysis.
- the illustrative embodiments deploy the new software service in the computer network using the active object and manage the new software service throughout its lifecycle using the active object.
- the active objects in the active repository interact with one another while controlling and managing the software services. These interactions lead to service management actions such that desired service compositions are realized by the software services and the compositions are maintained in their desired states.
- FIG. 1 depicts a pictorial representation of a network of data processing systems in which aspects of the illustrative embodiments may be implemented;
- FIG. 2 depicts a block diagram of a data processing system in which aspects of the illustrative embodiments may be implemented
- FIG. 3 depicts a composition based service management infrastructure using an active repository for configuration and deployment in accordance with an illustrative embodiment
- FIG. 4 depicts the components of an active repository in accordance with an illustrative embodiment
- FIG. 5 depicts the exemplary functional components and management interfaces associated with an active object in accordance with an illustrative embodiment
- FIG. 6 depicts macro-level controls for managing the composite services in accordance with an illustrative embodiment
- FIG. 7 depicts a flowchart of an operation used to deploy and manage a software service in accordance with an illustrative embodiment.
- the following document uses the term physical resource or resource to mean a hardware resource such as a computer server, a computer network, a file system, etc. Such resources may be turned on or off, shared or used in dedicated mode, and have a physical location.
- the term computer service is used to indicate a service provided by a computer program that runs on top of one or more resources.
- FIGS. 1-2 exemplary diagrams of data processing environments are provided in which embodiments may be implemented. It should be appreciated that FIGS. 1-2 are only exemplary and are not intended to assert or imply any limitation with regard to the environments in which aspects or embodiments may be implemented. Many modifications to the depicted environments may be made without departing from the spirit and scope of the illustrative embodiments.
- FIG. 1 depicts a pictorial representation of a network of data processing systems in which aspects of the illustrative embodiments may be implemented.
- Network data processing system 100 is a network of computers in which embodiments may be implemented.
- Network data processing system 100 contains network 102 , which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100 .
- Network 102 may include connections, such as wire, wireless communication links, or fiber optic cables.
- server 104 and server 106 connect to network 102 along with storage unit 108 .
- clients 110 , 112 , and 114 connect to network 102 .
- These clients 110 , 112 , and 114 may be, for example, personal computers or network computers.
- server 104 provides data, such as boot files, operating system images, and applications to clients 110 , 112 , and 114 .
- Clients 110 , 112 , and 114 are clients to server 104 in this example.
- Network data processing system 100 may include additional servers, clients, and other devices not shown.
- network data processing system 100 is 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.
- TCP/IP Transmission Control Protocol/Internet Protocol
- At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, governmental, educational and other computer systems that route data and messages.
- network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
- FIG. 1 is intended as an example, and not as an architectural limitation for different embodiments.
- Data processing system 200 is an example of a computer, such as server 104 or client 110 in FIG. 1 , in which computer usable code or instructions implementing the processes for embodiments may be located.
- data processing system 200 employs a hub architecture including a north bridge and memory controller hub (MCH) 202 and a south bridge and input/output (I/O) controller hub (ICH) 204 .
- MCH north bridge and memory controller hub
- I/O input/output
- ICH south bridge and input/output controller hub
- Processor 206 , main memory 208 , and graphics processor 210 are coupled to north bridge and memory controller hub 202 .
- Graphics processor 210 may be coupled to the MCH through an accelerated graphics port (AGP), for example.
- AGP accelerated graphics port
- local area network (LAN) adapter 212 is coupled to south bridge and I/O controller hub 204 and 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 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 .
- PCI/PCIe devices may include, for example, Ethernet adapters, add-in cards, and PC cards for notebook computers. 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.
- IDE integrated drive electronics
- SATA serial advanced technology attachment
- a super I/O (SIO) device 236 may be coupled to south bridge and I/O controller hub 204 .
- An operating system runs on processor 206 and coordinates and provides control of various components within data processing system 200 in FIG. 2 .
- the operating system may be a commercially available operating system such as Microsoft® Windows® XP (Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both).
- An object oriented programming system such as the JavaTM programming system, may run in conjunction with the operating system and provides calls to the operating sy stem from Java programs or applications executing on data processing system 200 (Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both).
- Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as hard disk drive 226 , and may be loaded into main memory 208 for execution by processor 206 .
- the processes of the illustrative embodiments may be performed by processor 206 using computer implemented instructions, 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.
- FIGS. 1-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 hardware depicted in FIGS. 1-2 .
- the processes of the illustrative embodiments may be applied to a multiprocessor data processing system.
- data processing system 200 may be a personal digital assistant (PDA), which is generally configured with flash memory to provide non-volatile memory for storing operating system files and/or user-generated data.
- PDA personal digital assistant
- a bus system may be comprised of one or more buses, such as a system bus, an I/O bus and a PCI bus. Of course 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 attached to the fabric or architecture.
- a communications unit may include one or more devices used to transmit and receive data, such as a modem or a network adapter.
- a memory may be, for example, main memory 208 or a cache such as found in north bridge and memory controller hub 202 .
- a processing unit may include one or more processors or CPUs.
- processors or CPUs may include one or more processors or CPUs.
- FIGS. 1-2 and above-described examples are not meant to imply architectural limitations.
- data processing system 200 also may be a tablet computer, laptop computer, or telephone device in addition to taking the form of a PDA.
- the aspects of the illustrative embodiments provide for a computer implemented method, apparatus, and computer usable program code for compiling source code.
- the methods of the illustrative embodiments 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 .
- a software service is a service provided by a computer program or a collection of programs that runs on a local and/or remote computer network, provides partial or complete solution to a service request, and does not require the requester to perform any of the management tasks associated with the service including configuration, deployment, and life-cycle management tasks.
- Some examples of a software service are a payroll service, customer relation service, supply-chain management service, search engine service, e-mail service, authentication service, messaging service, a generic application management service such as the one provided by WebSphere® Application Server, database service, network connectivity service, and so on.
- Software service management includes service dependency analysis, planning and scheduling resources and deployed services, configuration management, deployment management, and post-deployment lifecycle management. These management functions are themselves software services.
- the illustrative embodiments provide these management services so that the necessary installation, configuration, and deployment of software services are performed in a systematic and controlled manner in response to service requests from users. Further, the embodiments manage the deployed services so that the services perform at the level desired by current request workload and/or anticipated future workloads and these services are taken offline or terminated when not required or require maintenance.
- the illustrative embodiments provide management services to maintain the deployed services in a desired state and take corrective actions when the service state deviates from the desired state.
- the management services in the embodiments automatically trigger analysis to determine the cause of the alert, determine if an alternate resource or supporting service needs to be used, and redeploy the managed services using alternate resources and/or services.
- These management services are scalable, inherently autonomic, and may manage services for multiple platforms.
- FIG. 3 depicts a composition based service management infrastructure using an active repository for configuration and deployment in accordance with an illustrative embodiment.
- new type of service requests 302 and service requests of currently supported request types 304 arrive at service infrastructure manager interface 306 .
- a service request is a request for service either from (i) an end-user, (ii) another service in the system, or (iii) another service elsewhere in the network.
- the requested service is a service that the system is capable of providing using one or more software services and physical resources supported by the system.
- a request may be processed by multiple software services before completion and all such services need to be made available by configuring, deploying, and managing at runtime.
- a software service may be supported by the system, but the software service may not be configured and deployed at all times. Even if the software service is configured and deployed, the software service may not be configured to fulfill the requirements of the service request in terms of desired performance and/or the manner in which the service is to be delivered; e.g., a request may ask for a service to be delivered in secure or in dedicated service delivery mode.
- New type of service requests 302 consist of requests for software services, which are currently not configured and deployed in the system.
- Service requests of currently supported request types 304 are those requests that are requesting services that are already configured and deployed in the system. Also, note that the requests, of new or currently supported types, are serviced by software services that run on end-point resources 314 . Processing of the requests at service infrastructure manager interface 306 takes place transparent to the service requesters.
- Administrators may interact with the system for performing actions, such as setting policies, configuring or reconfiguring resource states, for configuring and deploying software services by overriding default settings, etc. using administrator interface 308 .
- Commands issued by administrators are sent via administrator interface 308 to service infrastructure manager interface 306 .
- service infrastructure manager interface 306 interacts with orchestration and management services 310 and active repository 312 .
- Active repository 312 consists of active objects and active templates. The active objects interact with end-point resources 314 or with the software services that run on top of the end-point resources via end-point management interface 316 .
- orchestration and management services 310 also interact with active repository 312 . As mentioned earlier, requests are actually processed at end-point resources 314 .
- FIG. 4 depicts the components of an active repository in accordance with an illustrative embodiment.
- Active repository 402 may be an active repository, such as active repository 312 of FIG. 3 .
- active repository 402 consists of active templates 404 and active objects 406 .
- An active template is a template for an active object.
- An active object is a management object that is used to manage an instantiated or to be instantiated service instance, such as one of managed service components 408 , using available resources and other managed service instances.
- Each physical resource and service component in the system has a representative active object in active repository 402 .
- the active object manages that resource or that service component by performing state and dependency management, configuration, deployment, and lifecycle management. For each type of service being managed, there is an active template in active templates 404 in active repository 402 .
- a new active object is also instantiated in active objects 406 from an active template in active templates 404 that represents the type of service being instantiated.
- active templates 404 may have an instantiated active object in active objects 406 at all times.
- new active objects are instantiated in active objects 406 .
- both the composite service and the active object used to manage that composite service are both terminated.
- the terminated active object is garbage collected.
- the active objects within active objects 406 corresponding to the component services or resources used to support and compose the service being terminated are all updated to reflect the fact that they are no longer supporting the composite service.
- the corresponding active object within active objects 406 is destroyed and garbage collected, unless the policies dictate otherwise.
- a policy may dictate that at least one service instance be deployed at all times regardless of the current demand on that service. In such a case all instances of that service, except the last one, are terminated when there is no demand for that service.
- Active templates 404 are updated as their scope changes or as the environment controlled by the corresponding active object within active objects 406 evolves or fixes are to be applied to active objects 406 .
- New active templates are also introduced into active templates 404 when new types of resources or services are introduced in the managed environment. For example, when WebSphere® 6.0 is introduced in the system as an Enterprise JavaBeansTM (EJB) container service, a new template is introduced in active templates 404 . This is done even if an active template for WebSphere® 5.x existed in the active templates 404 . This is because managing WebSphere® 6.0 is significantly different than managing WebSphere® 5.x containers.
- the active template has information on service being provided, dependency requirements, configuration and deployment information for one or more platforms.
- WebSphere® 6.01 When WebSphere® 6.01 is to be supported, a new template is not introduced, but the existing template is updated to accommodate the differences. The update is performed because the differences in two release versions are small from the point of view of management.
- the active objects derived from the template may manage a WebSphere® 6.0 container as well as a WebSphere® 6.01 container.
- the template for WebSphere® 6.0 has the information for managing the container on Linux® platforms only. If later, WebSphere® 6.0 is to be deployed and supported on Windows® platforms as well, the template for WebSphere® 6.0 needs to be updated to add this capability, which is an example of changing the scope of a template.
- Each active object in active objects 406 in active repository 402 is programmed to manage a particular resource or a service component to deliver component specific service by achieving a desired state.
- a desired state is the state required to achieve a desired effect or behavior from the actual service instance managed by the active object.
- Each active object in active objects 406 is aware of the current state and the desired state of the managed resource or service component for which it has management responsibilities.
- the desired state of an active object may be influenced by system administrators, policy managers, or other objects in the system.
- Active repository 402 provides facilities for performing lookup, service/resource brokering, for creating group memberships, setting policies, and so on.
- the controls for configuration and deployment are executed at two levels: one is at micro-level and the other is at macro-level.
- the micro-level controls operate at the level of service template and service instance objects. Overall controls necessary to orchestrate multiple services in support of one or more higher level services are facilitated by the macro-level controls.
- the macro-level controls allow management services to orchestrate actions such as federated service configuration and deployment in a consistent manner.
- the macro-level system controls are built on top of and by leveraging the micro-level system controls.
- All planning related logic such as for dependency resolution and sharing of supporting services is encapsulated in active objects 406 .
- This logic is dynamically updatable and plug-ins may be inserted to add functionality that did not exist before.
- Each of active objects 406 has four functional components for managing the service the active object represents in the active repository.
- the four management functional components in the illustrative examples are: monitor, analyze, configure, and execute (MACE). These are shown in FIG. 5 .
- FIG. 5 depicts the exemplary functional components and management interfaces associated with an active object in accordance with an illustrative embodiment.
- An active object is an active object such as one of active objects 406 of FIG. 4 .
- monitoring functional component 502 monitors the following entities:
- Analyze functional component 504 provides the decision making capability to an active object. It is triggered into action by one of the following events:
- any of the above imbalances can occur because of changes either (i) in the current state or (ii) in the desired state.
- the current state of this Application Server is “Off line.” If the desired state is set to “On line” with certain attributes (such as buffer sizes, number of requests to handle, connections to a particular database, etc.) this results in an imbalance that triggers the analyze component in corresponding active object. After it is made “On line” with the desired attributes, suppose that the current state changes to “On line” and “Lost connection to database.” Again this results in an imbalance that triggers the analyze component into action. Changes in the current state are notified via the monitoring functional component 502 . Changes in the desired state are brought about either by (i) the orchestration and management services or (ii) administrative actions via the administrative interface, or (iii) a request for service from another active object that requires action under the existing policies.
- analyze functional component 504 When analyze functional component 504 recognizes that there is an imbalance between the current and the desired state of the managed object, it performs an analysis to establishes an optimal configurable state to which the managed service can be transformed to. To perform this analysis, it takes into account the state and the availability of other services and resources in the system, as well as the demands and the priorities of the current and to be supported service components or workload. At the end of this analysis step the supporting resources and software services are completely determined and the parameters characterizing the support are finalized (e.g., number of connections, port number, expected response time, minimum guaranteed bandwidth etc.). Similarly, the characteristics of the supported services are also finalized.
- the parameters characterizing the support e.g., number of connections, port number, expected response time, minimum guaranteed bandwidth etc.
- the complexity and nature of the analysis depends on the decision choices available to the analyze functional component 504 .
- the desired state may be specified with a high degree of precision (e.g., “On line” Websphere® instance of specific version, release, patch level, on a specific server with specific network adapters enabled, with specific IP addresses, and specific Web services deployed in a specific manner).
- the analyze component identifies the resources and services to use and configuration parameters to apply to the supporting services so that the managed service can achieve the desired state as prescribed.
- the desired state may be specified with a range of possible states or with some degree of freedom (e.g., “On line” Websphere® instance that is version 6.0 compatible, on any of the servers in a particular network sub-domain, or the desired state of application server may be set to “On line” with no constraints on the server on which it is to be launched and thus, it could be the first available server or the constraint may require using a server with the largest amount of memory from a set of servers).
- analyze functional component 504 makes the decisions by interacting with other active templates and/or active objects.
- policies associated with the managed object are exclusive use of the service by certain user groups at specified time periods, time set aside for maintenance purposes, preferred resource instances to use as support resources, and so on.
- Analyze functional component 504 takes these policies into account and tries to resolve as many imbalances in the system as possible. If imbalances cannot be completely eliminated, analyze functional component 504 tries to satisfy the dependencies such that the achievable new state is closest to its desired state and a transition is possible from the current state to this new state. The outcome of this analysis determines the actual supporting services and resources to be used to correct the imbalances in the system. Since the state of these supporting services and resources determines the ultimate state to which the managed service may be transformed to, the managed service may not always realize the actual desired state but may realize a suboptimal state. Depending on how far that realized state is from the desired state, the analysis and the subsequent configuration and deployment steps may repeat.
- Configure functional component 506 takes the output from analyze functional component 504 and performs the following tasks:
- Execute functional component 508 performs the following tasks:
- each active object enables the corresponding managed software service to evolve independently and concurrently with other services and to adapt to the dynamic changes taking place in the system. Unlike prior-art in this area, these illustrative embodiments do not require a completely centralized evaluation of the service components to manage those components.
- the system described here allows for global policies to dictate the overall management of the system without requiring centralized decision making and execution capability.
- the active object Whenever an active object needs to manipulate the managed object, the active object triggers a system runtime. The system runtime merely examines the state of the active object and performs actions contained in the active object. Some of these actions operate on the managed service and others on other active objects in the repository.
- an active object may issue a command asking the managed object to “go offline.” In another instance, it may send a notification to another active object indicating that the support services are no longer needed from the service managed by the notified active object.
- the state of the active object may be affected by the external events such as resource monitors, service monitors, and other higher level active objects requesting management actions.
- the management components described earlier are activated and the active object starts to steer the managed service to a more stable state.
- Each active object in an active repository is associated with management interfaces to monitor and control the behavior of the managed resources or services.
- Exemplary management interfaces provided by an active object such as one of active objects 406 of FIG. 4 are shown in FIG. 5 .
- the exemplary functional components, described earlier, of an active object perform their management actions over the managed object using the exemplary management interfaces. Such management actions are referred to as micro-level controls since the actions resulting from these controls affect individual end-point resources and software service instance.
- Exemplary management interfaces are as follows:
- Active objects inherit these management interfaces from the active template from which the active object was instantiated in the first place.
- the management interfaces are represented in a more generic manner covering multiple possible configurations and deployment and lifecycle management procedures.
- Service specification 510 identifies the functionalities provided by a service.
- the service functionality includes both the actual physical value delivered to the client and the manner in which the actual physical value is delivered.
- the functions provided by a service may depend on the manner in which the service is configured and deployed. For example, a stock-quote service may be deployed to provide real-time quotes or delayed quotes. Similarly, a document delivery service may be configured to deliver encrypted or unencrypted documents.
- a service template object all available functions are listed.
- a service instance object lists the specific functions selected and those that are currently enabled in that instance.
- the first part of dependency requirements 512 describes the dependency requirements for making the service available.
- dependencies are listed for each function the service is capable of delivering.
- dependencies are listed only for the functions enabled in that instance.
- the dependency information also includes both the spatial (e.g., a service may depend on a database and a file system and these need to be available on the same subnet where the service is deployed) and temporal dependencies (e.g., a backup service may depend on access to high bandwidth network from 2 AM to 3 AM on each Friday).
- the second part of dependency requirements 512 describes the requirements imposed on the services that depend on this service. This part is meaningful only for services that are not deployed as high-level services.
- a high-level service is one that does not support any other service in the system, but may process end-user requests. Some of these requirements are static (e.g., dependent on the software version), some are semi-static (e.g., dependent on the service functions enabled), and still some others may be dynamic (e.g., depending on the quality of service delivered by its supporting services, a service may adjust the requirements the service imposes on the services that the service supports).
- the dependency requirements are exposed only for the functions enabled in service specification interface 510 .
- Service configuration 514 has three parts:
- the first part of service configuration 514 manages information on configuring supporting services so that this service instance may be deployed on top of the supporting services.
- a versatile service should be able to run on top of a large variety of supporting services that provide similar functionality. For example, if service can be deployed on server with AIX® operating system, then its range of operation is limited. But if the service can run on any flavor of Unix®, then the services' range of operation is larger. The service is even larger, if the service may also be deployed on servers within the Windows® operating system.
- service configuration 514 maintains specific information on the parameters to be set and the initialization steps to be performed (e.g., specific user and group ids may need to be created prior to executing an installation step, database tables may need to be initialized according to certain schema, a specific file system may need to be mounted, and so on).
- the second part of service configuration 514 manages information on configuring the managed service instance given a set of supporting services that meet the dependency requirements.
- Service configuration 514 also takes into account the specific service functionality to be enabled (as described in the service specification section) and manages the configuration steps such that only the selected service functionality is enabled.
- the third part of service configuration 514 manages the manner in which the dependent services are to be configured.
- service configuration 514 may provide a plug-in so a client may interact with service configuration 514 in a specific manner, or listen on specific port so a dependent service may send requests, or publish information using a client specific topic on pub-sub messaging network, and so on.
- Service deployment 516 manages the deployment of a service instance given a specific configuration of supporting services, the service functionality to be enabled, and the higher-level services to be supported. Service deployment 516 consists of three parts:
- This section manages the actions based on the configuration specified in service configuration 514 . Verification and integration tests are provided to manage complex deployment steps in an incremental manner. Service deployment 516 also incorporates recovery actions in case of failures during the verification and integration tests.
- Service state 518 has three parts:
- the first part of service state 518 lists the service functions selected and enabled. For each one, service state 518 describes the observed and expected performance ranges. The second part of service state 518 lists the actual service instances selected to support this service. Service state 518 also describes current usage of each supporting service instance by this service, service level agreements with each service instance, and any violations. It also describes various attributes of the current state e.g., it may state that the service is deployed in dedicated mode or in shared mode and may point to corresponding policies or business rules. Similarly, the third part of service state 518 lists the actual service instances supported by this service instance, demand placed by those service instances, and current usage by the supported services. Service state 518 also lists any service level agreements with the supported services and any violations.
- Lifecycle management 520 has three parts:
- management of the service lifecycle is primarily concerned with “start,” “stop,” “pause,” and “restart” type of lifecycle events on the service instance.
- the software lifecycle management is concerned with the location of the software package, actions and permissions for accessing the software package, software versioning, upgrade, and patch management.
- the lifecycle of the service management layer itself is managed. This allows the service management layer to evolve or to terminate if a particular service is to be eliminated entirely.
- the activities within an active object leading to analyses and subsequent actions are driven by the state imbalances observed at the level of individual active objects.
- Decisions made at the analyze functional component 504 of an active object are local taking into account information available to the active object and policies applicable to active object only. The decisions do not take into account global policies or tradeoffs. For example, if an active object discovers that it has a choice of using one of two groups of supporting services that are functionally equivalent, but differ in performance, it may select one group based on local requirements using local criteria and policies without taking into account current or future needs of other services.
- Multiple active objects are simultaneously active and analyze functional components of multiple active objects are continuously trying to optimize the state of the services they manage, within their operational constraints. In the following, these dynamics are explained in the context of a deployment of a new service instance in response to a request for that type of service.
- the active template representing the type of service requested is notified.
- that template evaluates the request and either instantiates a new active object to manage a new instance of that service or instructs an existing active object to reconfigure the managed object to accommodate the new request.
- the instructions for reconfiguration are performed simply by changing the desired state of the managed service.
- the actions followed in such a case are a subset of the actions followed when a new active object is created.
- the set of actions performed by a newly instantiated active object are described. These set of actions lead to composing and deploying a composite service from component services by recursively traversing down the dependency tree and then building up the component service tree until the entire composite service is fully configured and deployed.
- the immediate dependencies of an active object are known but are unsatisfied.
- the active object is assigned a state called a desired state and another state called the current state.
- the current state is the state of the service or resource managed by the active object.
- the desired state is the expected state of the managed service or resource.
- Analyze functional component 504 in the active object continuously monitors the two states. If the two states do not match, analyze functional component 504 analyzes possible alternatives for transforming the current state to the desired state and determines if there are any dependency requirements that must be fulfilled to achieve the desired state. Thus, if the current state is “off line” and the desired state is “on line” at the time when an active object is instantiated, analyze functional component 504 in the active object examines the dependencies that need to be satisfied to make the managed service or resource go “on line.”
- the dependency information is stored in dependency requirements 512 interface, which is one of the six management interfaces for the managed object. Each dependency is expressed in terms of the type of service or resource required.
- the dependency analysis identifies specific types of services or resources needed to transform the current state to the desired sate.
- analyze functional component 504 also determines the performance and any location constraints on the other services/resources required to satisfy the dependencies. This is a function of the desired state.
- analyze functional component 504 first determines that the Web service would depend on a database service and then it quantifies the characteristics of the database service that can meet the performance requirements. Since the database services are characterized by the speed with which they can read and update database records, analyze functional component 504 computes the minimum read and update speeds of a database service that would qualify it as an eligible supporting service. In other words, analyze functional component 504 computes a set of performance constraints on the supporting database service.
- the relation between m, u, and r may be expressed by a simple algebraic formula or may require evaluation of a polynomial equation representing the approximate behavior of a database system.
- the performance specific characteristics for determining the level of performance from supporting services needed to achieve a certain desired state are encoded in dependency requirements 512 interface.
- analyze functional component 504 does not identify the exact instance of the managing service or resource to be used to satisfy a particular dependency. Analyze functional component 504 only quantifies the type of management service or resource needed and the performance, location, and security constraints on the supporting components. The information on the desired state, dependencies to be satisfied to arrive at that state, and constraints on the managing services or resources is then handed over to configure functional component 506 .
- Configure functional component 506 determines the actual components and the portions of their capacities to be used to fulfill the dependencies. To make this determination, for each unsatisfied dependency, configure functional component 506 contacts the active template representing the type of managing service or resource needed to satisfy that dependency. To each such active template, configure functional component 506 sends a request for the type of service it is looking for and associated constraints that must be met. Each such active template tries to fulfill the request in one of three ways: (i) assign an existing managing service or resource to provide the necessary support, (ii) reconfigure the existing service to accommodate the new demand, or (iii) configure and deploy a new service instance to provide the necessary support. When none of these alternatives are possible, configure functional component 506 sends back a negative confirmation.
- configure functional component 506 sends back the address of the corresponding active object that manages the supporting service.
- the performance constraints on the dependencies may be expressed as an acceptable range. In this case, the identified supporting service expected to deliver service in that range.
- Policies also play a role here.
- a policy may specify conditions when the constraints may be relaxed and may specify the extent to which they may be relaxed.
- the supporting active templates take these policies into account when making their decisions.
- each supporting active template is identical to the steps described above in the context of the original request that triggered actions at the active object. These steps are followed recursively until either all the dependencies are resolved or it is determined that they cannot be resolved given a set of system resources and with the current set of policies.
- the entire dependency tree for providing support to any service component is traversed top-down from active templates to active objects to the supporting active templates and so on.
- the dependency tree of the actual services is built in a bottom up manner by following a concurrent depth-first traversal of the dependency graph.
- configure functional component 506 quantifies the actual parameters to use in configuring the service on top of the supporting services.
- the parameters may include, IP addresses, communication ports to use, user ids, and passwords with access permissions to the supporting services, buffer sizes, and so on. These details depend on the type of service.
- This configuration information is then passed to execute functional component 508 .
- Execute functional component 508 executes setup and installation procedures and sends commands so that the managed service is instantiated in its desired state on top of the supporting services.
- the commands and procedures to be followed are stored in service deployment 516 interface of the active object. This completes the deployment of the service as a composition of component services. Following this, the user requests are processed or other higher-level services are composed on top of such a service composite.
- the entire process of determining the dependency tree from by the component services is traversed dynamically via the active templates and active objects in the active repository.
- the actual service components represented by the nodes in the dependency graph are configured and deployed in a bottom up manner by following a concurrent depth-first traversal of the dependency graph.
- the corresponding active object invokes specific actions to bring about the desired configuration changes in the component. Once a component is configured and deployed and its performance is satisfactory, the active object at the higher level in the dependency graph is notified. The next level object configures and deploys the actual component once all its supporting components are known to be ready and functional. This continues until all components, including the high-level service component are configured, deployed, and brought to the service delivery state.
- active objects control the active service instances they are responsible to manage. In doing so, they also influence the behavior of the supporting and supported service or resource instances. Moreover, they respond to the changes in the behavior of the supported and the supporting resources.
- the micro-level controls do not bring about simultaneous global changes that take global constraints and policies into account. Such changes are brought about by the macro-level controls. Macro-level controls are needed to enforce global policies such as manner in which critical resources are to be shared, manner in which demand is to be prioritized and served, and so on. Such policies are necessary when there are scarce resources and demand may exceed supply. The policies are also necessary when complex decisions are to be made and the tradeoffs are not clear-cut.
- a novelty of this illustrative embodiment is that it enables combining global control mechanisms with the local micro-level management controls.
- FIG. 6 depicts macro-level controls for managing the composite services in accordance with an illustrative embodiment.
- Orchestration and management services 600 are orchestration and management services, such as orchestration and management services 310 of FIG. 3 .
- Orchestration and management services 600 consist of management services that provide macro-level controls for managing the composite services.
- Orchestration and management services 600 are provided by the analysis and planning engine 602 , configuration engine 604 , deployment engine 606 , monitoring engine 608 , and lifecycle engine 610 . Each of these engines interacts with active repository 612 and the management objects represented in the active repository 612 .
- the analysis and subsequent actions within an active object is driven by the desired state of the managed service instance alone.
- critical services and resources may require global considerations in deciding allocations, sharing, and scheduling of such services and resources.
- the analysis and planning engine 602 performs the arbitration and decisions on allocations, sharing, and scheduling. These decisions then determine the desired states of one or more active objects.
- global configuration and deployment considerations result in scheduling steps at the micro-level for one or more active objects in the active repository, such as active repository 312 of FIG. 3 .
- the macro-level controls provided by the five engines shown in FIG. 6 are transformed into micro-controls. Active objects in active repository 612 control the corresponding resource and component services so that the desired effects of the macro controls are realized at the micro-level.
- an active repository manages all life-cycle aspects of software service components so as to deliver solutions in response to service requests.
- the active repository performs this function taking into account related system management policies as well constraints placed by the availability of physical resources.
- One aspect of this life-cycle management is the composition of a complex service whenever there is a demand for such a service.
- Another aspect is the tearing down or decomposition of a complex service when there is no demand, or policies require such an action, or one or more supporting services are unavailable.
- FIG. 7 depicts a flowchart of an operation used to deploy and manage a software service in accordance with an illustrative embodiment.
- a request is received to deploy a software service in a computer network (step 702 ).
- the existing active templates and active objects in the active repository such as active repository 312 of FIG. 3 , perform an analysis of physical resources associated with the requested software service to be managed and a current set of software services using these resources (step 704 ).
- a new software service is a service that is not currently managed by an existing active object.
- the active template representing the type of the new service to be created, first instantiates an active object in the active repository (step 706 ).
- This active object manages the new software service.
- the active repository deploys the software service in the network using the active object (step 708 ) and the active object manages the software service (step 710 ) with the operation ending thereafter.
- the actual deployment of the software service is performed using methods described in related applications.
- the active object manages the software service as described with relation to FIG. 5 .
- the active repository identifies an existing active object that manages the existing software service.
- the existing software service is deployed in the network using the existing active object and managed using the existing active object.
- the illustrative embodiments receive a request for service. If the requested service is currently not deployed, the embodiment, responsive to the requested software service being a new software service, perform an analysis of physical resources and other component software services required to configure and deploy the requested software service to be managed so it can serve this request and other similar requests. These steps may result in identifying other component software services that may need to be configured or reconfigured and deployed or redeployed. The illustrative embodiments perform the necessary actions so the requested service can be made available as a composition of one or more managed service components to process the request.
- the illustrative embodiments also respond to requests for services that are currently deployed but not configured in a form desired for processing the request.
- the illustrative embodiments takes actions by reconfiguring and/or redeploying one or more service components and resources so the requested service can be deployed with the desired configuration.
- the illustrative embodiments create an active object to manage the new software service using an active template based on the analysis.
- the illustrative embodiments deploy the new software service in the network using the active object and manage the new software service using the active object.
- the active objects in the active repository interact with one another while controlling and managing the software services. These interactions lead to service management actions such that desired service compositions are realized by the component software services and the compositions are maintained in their desired states.
- the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements.
- the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
- the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
- a computer-usable or computer readable medium can be any tangible apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
- the medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium.
- Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk.
- Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.
- a data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus.
- the memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
- I/O devices including but not limited to keyboards, displays, pointing devices, etc.
- I/O controllers can be coupled to the system either directly or through intervening I/O controllers.
- Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks.
- Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
A computer implemented method, data processing system, computer usable program code, and active repository are provided for management of a software service. A request is received to deploy the software service in a computer network. A dependency analysis is performed for the requested software service to determine component software services and physical resources necessary to deploy and manage new software service as a composite in responsive to the software service being the new software service. An active object is created to manage the new software service using an active template based on the analysis. The new software service is deployed in the computer network using the active object. The new software service is managed using the active object.
Description
- 1. Field of the Invention
- The present invention relates generally to networked computer systems. More particularly, the present invention relates to software and systems management in networked computer environments.
- 2. Description of the Related Art
- Distributed environments such as clusters of computing systems, data centers, and grid systems involve managing a large number of resources and service components. Typical end-service provided to the users of such systems require composition of multiple resources and service components, which together deliver the end-service that is of interest to the users. Such composition of multiple components require careful configuration of the components and deployment of these components, such that they interface with each other in a compatible manner so that the composite service is deployed, initialized, handles the workload submitted by users, handles component level faults gracefully, and provides robust service while handling fluctuations in the workload.
- Realizing such composition from components involve orchestration of a large number of heterogeneous resources and service components. Managing the various tasks manually tends to be tedious and error prone. The magnitude of the complexity increases when resources belong to multiple administrative domains. While grid-based systems can facilitate resource sharing across multiple administrative domains, the grid-based systems are much harder to manage from a system administration point of view. One reason for the harder management is that the current state-of-the-art in system management technology has not kept pace with the advances in middleware and grid technologies. Some progress has been made in managing single or cluster-based systems. Even for such systems, system administrators face a much higher level of complexity when they configure and deploy a new service on an existing infrastructure or manage the lifecycle of the existing service and software stack. The situation is much worse in a complex application environment; for example, an environment involving orchestration of a workflow formed by multiple business processes. In such a case, deployment and life cycle management solutions need to take an integrated view of the multiple tiers involved and current system management technologies do not provide the necessary means to build such solutions.
- Traditional methods for configuration and deployment of software components rely heavily upon domain experts' knowledge about the component requirements, availability of middleware and the underlying infrastructure, and overall IT environment. Using this background knowledge, a system administrator is first required to configure the existing infrastructure and then customize the configuration and deployment steps for a new component, so the new component can be deployed successfully. In case of distributed components, such an approach can be time consuming, error prone, and non-scalable to large scale installations. Further, such an approach does not lend itself to automation as system administrators are key components in the deployment workflow.
- The ability to configure and manage large installations of systems has been an active area of research within the information technology community. The Local Configuration (LCFG) is a currently used script based system that dynamically configures machines based upon configuration information stored in a central database (Anderson, P., “Towards a High-Level Machine Configuration System,” LISA, 1994). The information pertains to network, system and services that need to be configured on the system. Smart Framework for Object Groups (SmartFrog) is a known system for specifying the configuration, and deployment of distributed applications (Goldsack, P., Guijarro, J., Mecheneau, G., Murray, P., Toft, P., “SmartFrog: Configuration and Automatic Ignition of Distributed Applications,” HP OVUA 2003). SmartFrog provides a language to specify the configuration of applications and dependencies between them. SmartFrog provides an infrastructure for processing and deploying applications on the distributed systems. The GridWeaver project is exploring the notion of combining LCFG and SmartFrog technologies for configuration management of large systems. The Organization for the Advancement of Structured Information Standards (OASIS) effort is looking at managing distributed resources using Web services. The Grid Forum is attempting to standardize the specification language as part of the Configuration Description, Deployment, and Lifecycle Management (CDDLM) activity.
- Some technologies provide means to monitor individual Java™ 2 Platform Enterprise Edition (J2EE) components that are participating in providing a service. The technology helps system administrators to monitor performance, identify failures, and check performance bottlenecks.
- A computer implemented method, data processing system, computer usable program code, and active repository are provided for management of a composite software service. The illustrative embodiments receive a request for using the software service. If the software service is not yet deployed in the computer network, the illustrative embodiments configure and deploy a new instance of the software service in the computer network. If the software service is deployed but is not adequately configured and provisioned to perform at a level required by the request, the software service is reconfigured and redeployed. The illustrative embodiments perform an analysis of other supporting software services and physical resources needed to deploy the software service and may reconfigure and/or deploy additional software services to enable the deployment of the software service.
- To perform these management functions, the illustrative embodiments create an active object in an active repository to manage the new software service using an active template based on the analysis. The illustrative embodiments deploy the new software service in the computer network using the active object and manage the new software service throughout its lifecycle using the active object. The active objects in the active repository interact with one another while controlling and managing the software services. These interactions lead to service management actions such that desired service compositions are realized by the software services and the compositions are maintained in their desired states.
- The novel features believed characteristic of the illustrative embodiments are set forth in the appended claims. The illustrative embodiments themselves, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
-
FIG. 1 depicts a pictorial representation of a network of data processing systems in which aspects of the illustrative embodiments may be implemented; -
FIG. 2 depicts a block diagram of a data processing system in which aspects of the illustrative embodiments may be implemented; -
FIG. 3 depicts a composition based service management infrastructure using an active repository for configuration and deployment in accordance with an illustrative embodiment; -
FIG. 4 depicts the components of an active repository in accordance with an illustrative embodiment; -
FIG. 5 depicts the exemplary functional components and management interfaces associated with an active object in accordance with an illustrative embodiment; -
FIG. 6 depicts macro-level controls for managing the composite services in accordance with an illustrative embodiment; and -
FIG. 7 depicts a flowchart of an operation used to deploy and manage a software service in accordance with an illustrative embodiment. - The following document uses the term physical resource or resource to mean a hardware resource such as a computer server, a computer network, a file system, etc. Such resources may be turned on or off, shared or used in dedicated mode, and have a physical location. The term computer service is used to indicate a service provided by a computer program that runs on top of one or more resources.
- The illustrative embodiments provide a solution to the management of software components and services. With reference now to the figures and in particular with reference to
FIGS. 1-2 , exemplary diagrams of data processing environments are provided in which embodiments may be implemented. It should be appreciated thatFIGS. 1-2 are only exemplary and are not intended to assert or imply any limitation with regard to the environments in which aspects or embodiments may be implemented. Many modifications to the depicted environments may be made without departing from the spirit and scope of the illustrative embodiments. - With reference now to the figures,
FIG. 1 depicts a pictorial representation of a network of data processing systems in which aspects of the illustrative embodiments may be implemented. Networkdata processing system 100 is a network of computers in which embodiments may be implemented. Networkdata processing system 100 containsnetwork 102, which is the medium used to provide communications links between various devices and computers connected together within networkdata processing system 100.Network 102 may include connections, such as wire, wireless communication links, or fiber optic cables. - In the depicted example,
server 104 andserver 106 connect to network 102 along withstorage unit 108. In addition,clients clients server 104 provides data, such as boot files, operating system images, and applications toclients Clients server 104 in this example. Networkdata processing system 100 may include additional servers, clients, and other devices not shown. - In the depicted example, network
data processing system 100 is the Internet withnetwork 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. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, governmental, educational and other computer systems that route data and messages. Of course, networkdata processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).FIG. 1 is intended as an example, and not as an architectural limitation for different embodiments. - With reference now to
FIG. 2 , a block diagram of a data processing system is shown in which aspects of the illustrative embodiments may be implemented.Data processing system 200 is an example of a computer, such asserver 104 orclient 110 inFIG. 1 , in which computer usable code or instructions implementing the processes for embodiments may be located. - In the depicted example,
data processing system 200 employs a hub architecture including a north bridge and memory controller hub (MCH) 202 and a south bridge and input/output (I/O) controller hub (ICH) 204.Processor 206,main memory 208, andgraphics processor 210 are coupled to north bridge andmemory controller hub 202.Graphics processor 210 may be coupled to the MCH through an accelerated graphics port (AGP), for example. - In the depicted example, local area network (LAN)
adapter 212 is coupled to south bridge and I/O controller hub 204 andaudio adapter 216, keyboard andmouse adapter 220,modem 222, read only memory (ROM) 224, universal serial bus (USB) ports andother communications ports 232, and PCI/PCIe devices 234 are coupled to south bridge and I/O controller hub 204 throughbus 238, and hard disk drive (HDD) 226 and CD-ROM drive 230 are coupled to south bridge and I/O controller hub 204 throughbus 240. PCI/PCIe devices may include, for example, Ethernet adapters, add-in cards, and PC cards for notebook computers. 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. - An operating system runs on
processor 206 and coordinates and provides control of various components withindata processing system 200 inFIG. 2 . The operating system may be a commercially available operating system such as Microsoft® Windows® XP (Microsoft and Windows are 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 sy stem from Java programs or applications executing on data processing system 200 (Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both). - Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as
hard disk drive 226, and may be loaded intomain memory 208 for execution byprocessor 206. The processes of the illustrative embodiments may be performed byprocessor 206 using computer implemented instructions, which may be located in a memory such as, for example,main memory 208, read onlymemory 224, or in one or more peripheral devices. - The hardware in
FIGS. 1-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 hardware depicted inFIGS. 1-2 . Also, the processes of the illustrative embodiments may be applied to a multiprocessor data processing system. - In some illustrative examples,
data processing system 200 may be a personal digital assistant (PDA), which is generally configured with flash memory to provide non-volatile memory for storing operating system files and/or user-generated data. A bus system may be comprised of one or more buses, such as a system bus, an I/O bus and a PCI bus. Of course 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 attached to the fabric or architecture. A communications unit may include one or more devices used to transmit and receive data, such as a modem or a network adapter. A memory may be, for example,main memory 208 or a cache such as found in north bridge andmemory controller hub 202. A processing unit may include one or more processors or CPUs. The depicted examples inFIGS. 1-2 and above-described examples are not meant to imply architectural limitations. For example,data processing system 200 also may be a tablet computer, laptop computer, or telephone device in addition to taking the form of a PDA. - The aspects of the illustrative embodiments provide for a computer implemented method, apparatus, and computer usable program code for compiling source code. The methods of the illustrative embodiments may be performed in a data processing system, such as
data processing system 100 shown inFIG. 1 ordata processing system 200 shown inFIG. 2 . - The illustrative embodiments provide a computer implemented method, data processing system, computer usable program code and active repository for the management of software services. A software service is a service provided by a computer program or a collection of programs that runs on a local and/or remote computer network, provides partial or complete solution to a service request, and does not require the requester to perform any of the management tasks associated with the service including configuration, deployment, and life-cycle management tasks. Some examples of a software service are a payroll service, customer relation service, supply-chain management service, search engine service, e-mail service, authentication service, messaging service, a generic application management service such as the one provided by WebSphere® Application Server, database service, network connectivity service, and so on.
- Software service management includes service dependency analysis, planning and scheduling resources and deployed services, configuration management, deployment management, and post-deployment lifecycle management. These management functions are themselves software services. The illustrative embodiments provide these management services so that the necessary installation, configuration, and deployment of software services are performed in a systematic and controlled manner in response to service requests from users. Further, the embodiments manage the deployed services so that the services perform at the level desired by current request workload and/or anticipated future workloads and these services are taken offline or terminated when not required or require maintenance.
- The illustrative embodiments provide management services to maintain the deployed services in a desired state and take corrective actions when the service state deviates from the desired state. In response to an alert pertaining to a particular service, the management services in the embodiments automatically trigger analysis to determine the cause of the alert, determine if an alternate resource or supporting service needs to be used, and redeploy the managed services using alternate resources and/or services. These management services are scalable, inherently autonomic, and may manage services for multiple platforms.
-
FIG. 3 depicts a composition based service management infrastructure using an active repository for configuration and deployment in accordance with an illustrative embodiment. In composition basedservice management infrastructure 300, new type ofservice requests 302 and service requests of currently supportedrequest types 304 arrive at serviceinfrastructure manager interface 306. A service request is a request for service either from (i) an end-user, (ii) another service in the system, or (iii) another service elsewhere in the network. The requested service is a service that the system is capable of providing using one or more software services and physical resources supported by the system. - Note that a request may be processed by multiple software services before completion and all such services need to be made available by configuring, deploying, and managing at runtime. A software service may be supported by the system, but the software service may not be configured and deployed at all times. Even if the software service is configured and deployed, the software service may not be configured to fulfill the requirements of the service request in terms of desired performance and/or the manner in which the service is to be delivered; e.g., a request may ask for a service to be delivered in secure or in dedicated service delivery mode.
- New type of
service requests 302 consist of requests for software services, which are currently not configured and deployed in the system. Service requests of currently supportedrequest types 304 are those requests that are requesting services that are already configured and deployed in the system. Also, note that the requests, of new or currently supported types, are serviced by software services that run on end-point resources 314. Processing of the requests at serviceinfrastructure manager interface 306 takes place transparent to the service requesters. - Administrators may interact with the system for performing actions, such as setting policies, configuring or reconfiguring resource states, for configuring and deploying software services by overriding default settings, etc. using
administrator interface 308. Commands issued by administrators are sent viaadministrator interface 308 to serviceinfrastructure manager interface 306. At the backend, serviceinfrastructure manager interface 306 interacts with orchestration andmanagement services 310 andactive repository 312.Active repository 312 consists of active objects and active templates. The active objects interact with end-point resources 314 or with the software services that run on top of the end-point resources via end-point management interface 316. In addition, orchestration andmanagement services 310 also interact withactive repository 312. As mentioned earlier, requests are actually processed at end-point resources 314. -
FIG. 4 depicts the components of an active repository in accordance with an illustrative embodiment.Active repository 402 may be an active repository, such asactive repository 312 ofFIG. 3 . As described previously,active repository 402 consists ofactive templates 404 andactive objects 406. An active template is a template for an active object. An active object is a management object that is used to manage an instantiated or to be instantiated service instance, such as one of managedservice components 408, using available resources and other managed service instances. Each physical resource and service component in the system has a representative active object inactive repository 402. The active object manages that resource or that service component by performing state and dependency management, configuration, deployment, and lifecycle management. For each type of service being managed, there is an active template inactive templates 404 inactive repository 402. - Whenever a new instance of a service is instantiated, a new active object is also instantiated in
active objects 406 from an active template inactive templates 404 that represents the type of service being instantiated. However, not every active template inactive templates 404 may have an instantiated active object inactive objects 406 at all times. - As new services are composed and instantiated on top of existing services and/or physical resources, new active objects are instantiated in
active objects 406. Similarly, when a composite service is no longer needed, both the composite service and the active object used to manage that composite service are both terminated. The terminated active object is garbage collected. In addition, the active objects withinactive objects 406 corresponding to the component services or resources used to support and compose the service being terminated are all updated to reflect the fact that they are no longer supporting the composite service. When a component service is no longer needed, the corresponding active object withinactive objects 406 is destroyed and garbage collected, unless the policies dictate otherwise. For example, a policy may dictate that at least one service instance be deployed at all times regardless of the current demand on that service. In such a case all instances of that service, except the last one, are terminated when there is no demand for that service. -
Active templates 404 are updated as their scope changes or as the environment controlled by the corresponding active object withinactive objects 406 evolves or fixes are to be applied toactive objects 406. New active templates are also introduced intoactive templates 404 when new types of resources or services are introduced in the managed environment. For example, when WebSphere® 6.0 is introduced in the system as an Enterprise JavaBeans™ (EJB) container service, a new template is introduced inactive templates 404. This is done even if an active template for WebSphere® 5.x existed in theactive templates 404. This is because managing WebSphere® 6.0 is significantly different than managing WebSphere® 5.x containers. The active template has information on service being provided, dependency requirements, configuration and deployment information for one or more platforms. - When WebSphere® 6.01 is to be supported, a new template is not introduced, but the existing template is updated to accommodate the differences. The update is performed because the differences in two release versions are small from the point of view of management. The active objects derived from the template may manage a WebSphere® 6.0 container as well as a WebSphere® 6.01 container. Similarly, if initially WebSphere® 6.0 is to be deployed only on Linux® platforms, the template for WebSphere® 6.0 has the information for managing the container on Linux® platforms only. If later, WebSphere® 6.0 is to be deployed and supported on Windows® platforms as well, the template for WebSphere® 6.0 needs to be updated to add this capability, which is an example of changing the scope of a template.
- Each active object in
active objects 406 inactive repository 402 is programmed to manage a particular resource or a service component to deliver component specific service by achieving a desired state. A desired state is the state required to achieve a desired effect or behavior from the actual service instance managed by the active object. Each active object inactive objects 406 is aware of the current state and the desired state of the managed resource or service component for which it has management responsibilities. The desired state of an active object may be influenced by system administrators, policy managers, or other objects in the system.Active repository 402 provides facilities for performing lookup, service/resource brokering, for creating group memberships, setting policies, and so on. - The controls for configuration and deployment are executed at two levels: one is at micro-level and the other is at macro-level. The micro-level controls operate at the level of service template and service instance objects. Overall controls necessary to orchestrate multiple services in support of one or more higher level services are facilitated by the macro-level controls. The macro-level controls allow management services to orchestrate actions such as federated service configuration and deployment in a consistent manner. The macro-level system controls are built on top of and by leveraging the micro-level system controls.
- All planning related logic such as for dependency resolution and sharing of supporting services is encapsulated in
active objects 406. This logic is dynamically updatable and plug-ins may be inserted to add functionality that did not exist before. - Each of
active objects 406 has four functional components for managing the service the active object represents in the active repository. The four management functional components in the illustrative examples are: monitor, analyze, configure, and execute (MACE). These are shown inFIG. 5 . -
FIG. 5 depicts the exemplary functional components and management interfaces associated with an active object in accordance with an illustrative embodiment. An active object is an active object such as one ofactive objects 406 ofFIG. 4 . In these examples, monitoringfunctional component 502 monitors the following entities: -
- (1) state of the managed service;
- (2) state of the services that the managed service component depends upon; i.e., the state of the service components that provide support to the managed service (if any);
- (3) state of service components supported by the managed component, i.e., the state of the service components dependent on the managed service component (if any); and
- (4) administrative input.
- Analyze
functional component 504 provides the decision making capability to an active object. It is triggered into action by one of the following events: -
- (1) imbalances in the observed and desired state of the managed object;
- (2) imbalances in the functionality and service levels provided by the supporting components; and
- (3) imbalances in the functionality and the service levels demanded by the components supported by this component.
- Any of the above imbalances can occur because of changes either (i) in the current state or (ii) in the desired state. For example, consider a WebSphere® Application Server that is installed on a server, but currently not launched. The current state of this Application Server is “Off line.” If the desired state is set to “On line” with certain attributes (such as buffer sizes, number of requests to handle, connections to a particular database, etc.) this results in an imbalance that triggers the analyze component in corresponding active object. After it is made “On line” with the desired attributes, suppose that the current state changes to “On line” and “Lost connection to database.” Again this results in an imbalance that triggers the analyze component into action. Changes in the current state are notified via the monitoring
functional component 502. Changes in the desired state are brought about either by (i) the orchestration and management services or (ii) administrative actions via the administrative interface, or (iii) a request for service from another active object that requires action under the existing policies. - When analyze
functional component 504 recognizes that there is an imbalance between the current and the desired state of the managed object, it performs an analysis to establishes an optimal configurable state to which the managed service can be transformed to. To perform this analysis, it takes into account the state and the availability of other services and resources in the system, as well as the demands and the priorities of the current and to be supported service components or workload. At the end of this analysis step the supporting resources and software services are completely determined and the parameters characterizing the support are finalized (e.g., number of connections, port number, expected response time, minimum guaranteed bandwidth etc.). Similarly, the characteristics of the supported services are also finalized. - The complexity and nature of the analysis depends on the decision choices available to the analyze
functional component 504. The desired state may be specified with a high degree of precision (e.g., “On line” Websphere® instance of specific version, release, patch level, on a specific server with specific network adapters enabled, with specific IP addresses, and specific Web services deployed in a specific manner). In such cases, where there are no choices, the analyze component identifies the resources and services to use and configuration parameters to apply to the supporting services so that the managed service can achieve the desired state as prescribed. - On the other hand, the desired state may be specified with a range of possible states or with some degree of freedom (e.g., “On line” Websphere® instance that is version 6.0 compatible, on any of the servers in a particular network sub-domain, or the desired state of application server may be set to “On line” with no constraints on the server on which it is to be launched and thus, it could be the first available server or the constraint may require using a server with the largest amount of memory from a set of servers). When there are choices in selecting and configuring the supporting services and resources, analyze
functional component 504 makes the decisions by interacting with other active templates and/or active objects. - This is accomplished by formulating and solving an optimization problem based on the available capacities and performance levels and the demands on those by existing and new services being considered for configuration and deployment. The objectives of the optimization problem are governed by the policies associated with the managed object. Some examples of policies associated with a managed service are exclusive use of the service by certain user groups at specified time periods, time set aside for maintenance purposes, preferred resource instances to use as support resources, and so on.
- Analyze
functional component 504 takes these policies into account and tries to resolve as many imbalances in the system as possible. If imbalances cannot be completely eliminated, analyzefunctional component 504 tries to satisfy the dependencies such that the achievable new state is closest to its desired state and a transition is possible from the current state to this new state. The outcome of this analysis determines the actual supporting services and resources to be used to correct the imbalances in the system. Since the state of these supporting services and resources determines the ultimate state to which the managed service may be transformed to, the managed service may not always realize the actual desired state but may realize a suboptimal state. Depending on how far that realized state is from the desired state, the analysis and the subsequent configuration and deployment steps may repeat. - Configure
functional component 506 takes the output from analyzefunctional component 504 and performs the following tasks: -
- (1) create a plan of action to configure or to reconfigure the existing state of the managed service component so the managed service component may transition from its current state to the new state in an optimal manner;
- (2) determine the actual commands, scripts, and procedures to run to bring the actual changes in the component; and
- (3) send request messages to the supporting service components before self configuration and send confirmation messages to the dependent service after the configuration changes are in place.
- Execute
functional component 508 performs the following tasks: -
- (1) execution of the plan of actions determined by configure
functional component 506 so that risks of failure are managed according to policies; - (2) execution of verification steps to confirm that the desired changes have taken place;
- (3) execution of alternative action plans when initial plans do not succeed; and
- (4) verification of interactions with supporting and dependent components after the configuration changes are in place.
- (1) execution of the plan of actions determined by configure
- The encapsulation of the MACE function within each active object enables the corresponding managed software service to evolve independently and concurrently with other services and to adapt to the dynamic changes taking place in the system. Unlike prior-art in this area, these illustrative embodiments do not require a completely centralized evaluation of the service components to manage those components. The system described here allows for global policies to dictate the overall management of the system without requiring centralized decision making and execution capability. Whenever an active object needs to manipulate the managed object, the active object triggers a system runtime. The system runtime merely examines the state of the active object and performs actions contained in the active object. Some of these actions operate on the managed service and others on other active objects in the repository.
- For example, an active object may issue a command asking the managed object to “go offline.” In another instance, it may send a notification to another active object indicating that the support services are no longer needed from the service managed by the notified active object. The state of the active object may be affected by the external events such as resource monitors, service monitors, and other higher level active objects requesting management actions. When an event changes the state of the active object, the management components described earlier are activated and the active object starts to steer the managed service to a more stable state.
- Each active object in an active repository is associated with management interfaces to monitor and control the behavior of the managed resources or services. Exemplary management interfaces provided by an active object, such as one of
active objects 406 ofFIG. 4 are shown inFIG. 5 . The exemplary functional components, described earlier, of an active object perform their management actions over the managed object using the exemplary management interfaces. Such management actions are referred to as micro-level controls since the actions resulting from these controls affect individual end-point resources and software service instance. Exemplary management interfaces are as follows: -
- (1)
Service specification 510; - (2)
Dependency requirements 512; - (3)
Service configuration 514; - (4)
Service deployment 516; - (5)
Service state 518; and - (6)
Lifecycle management 520.
- (1)
- Active objects inherit these management interfaces from the active template from which the active object was instantiated in the first place. In the active templates the management interfaces are represented in a more generic manner covering multiple possible configurations and deployment and lifecycle management procedures.
-
Service specification 510 identifies the functionalities provided by a service. The service functionality includes both the actual physical value delivered to the client and the manner in which the actual physical value is delivered. The functions provided by a service may depend on the manner in which the service is configured and deployed. For example, a stock-quote service may be deployed to provide real-time quotes or delayed quotes. Similarly, a document delivery service may be configured to deliver encrypted or unencrypted documents. In a service template object, all available functions are listed. A service instance object lists the specific functions selected and those that are currently enabled in that instance. -
Dependency requirements 512 has two parts: -
- (a) requirements on dependent services; and
- (b) requirements on depending services.
- The first part of
dependency requirements 512 describes the dependency requirements for making the service available. In a service template object, dependencies are listed for each function the service is capable of delivering. In a service instance object, dependencies are listed only for the functions enabled in that instance. In addition to the resource dependencies (e.g., requires a server with at least two CPUs and Red Hat® Linux® Enterprise AS Release 3 OS), the dependency information also includes both the spatial (e.g., a service may depend on a database and a file system and these need to be available on the same subnet where the service is deployed) and temporal dependencies (e.g., a backup service may depend on access to high bandwidth network from 2 AM to 3 AM on each Friday). - The second part of
dependency requirements 512 describes the requirements imposed on the services that depend on this service. This part is meaningful only for services that are not deployed as high-level services. A high-level service is one that does not support any other service in the system, but may process end-user requests. Some of these requirements are static (e.g., dependent on the software version), some are semi-static (e.g., dependent on the service functions enabled), and still some others may be dynamic (e.g., depending on the quality of service delivered by its supporting services, a service may adjust the requirements the service imposes on the services that the service supports). In an active object, the dependency requirements are exposed only for the functions enabled inservice specification interface 510. -
Service configuration 514 has three parts: -
- (a) configuration of supporting services;
- (b) configuration of the managed service instance; and
- (c) configuration of supported services.
- The first part of
service configuration 514 manages information on configuring supporting services so that this service instance may be deployed on top of the supporting services. A versatile service should be able to run on top of a large variety of supporting services that provide similar functionality. For example, if service can be deployed on server with AIX® operating system, then its range of operation is limited. But if the service can run on any flavor of Unix®, then the services' range of operation is larger. The service is even larger, if the service may also be deployed on servers within the Windows® operating system. - However, as the range of acceptable supporting services grows, the choices and associated deployment steps may become very complex (in addition to managing multiple software packages). That complexity is managed by the first part of
service configuration 514. For each acceptable type of supporting service,service configuration 514 maintains specific information on the parameters to be set and the initialization steps to be performed (e.g., specific user and group ids may need to be created prior to executing an installation step, database tables may need to be initialized according to certain schema, a specific file system may need to be mounted, and so on). - The second part of
service configuration 514 manages information on configuring the managed service instance given a set of supporting services that meet the dependency requirements.Service configuration 514 also takes into account the specific service functionality to be enabled (as described in the service specification section) and manages the configuration steps such that only the selected service functionality is enabled. - The third part of
service configuration 514 manages the manner in which the dependent services are to be configured. For example,service configuration 514 may provide a plug-in so a client may interact withservice configuration 514 in a specific manner, or listen on specific port so a dependent service may send requests, or publish information using a client specific topic on pub-sub messaging network, and so on. -
Service deployment 516 manages the deployment of a service instance given a specific configuration of supporting services, the service functionality to be enabled, and the higher-level services to be supported.Service deployment 516 consists of three parts: -
- (a) deployment actions;
- (b) verification and integration tests; and
- (c) recovery actions.
- This section manages the actions based on the configuration specified in
service configuration 514. Verification and integration tests are provided to manage complex deployment steps in an incremental manner.Service deployment 516 also incorporates recovery actions in case of failures during the verification and integration tests. -
Service state 518 has three parts: -
- (a) state of the service delivered;
- (b) state of the supporting services; and
- (c) state of the supported services.
- The first part of
service state 518 lists the service functions selected and enabled. For each one,service state 518 describes the observed and expected performance ranges. The second part ofservice state 518 lists the actual service instances selected to support this service.Service state 518 also describes current usage of each supporting service instance by this service, service level agreements with each service instance, and any violations. It also describes various attributes of the current state e.g., it may state that the service is deployed in dedicated mode or in shared mode and may point to corresponding policies or business rules. Similarly, the third part ofservice state 518 lists the actual service instances supported by this service instance, demand placed by those service instances, and current usage by the supported services.Service state 518 also lists any service level agreements with the supported services and any violations. -
Lifecycle management 520 has three parts: -
- (a) management of the service lifecycle;
- (b) management of the lifecycle of the software package used to deploy the service; and
- (c) management of the lifecycle of the service management layer.
- In the first part of
lifecycle management 520, management of the service lifecycle is primarily concerned with “start,” “stop,” “pause,” and “restart” type of lifecycle events on the service instance. In the second part oflifecycle management 520, the software lifecycle management is concerned with the location of the software package, actions and permissions for accessing the software package, software versioning, upgrade, and patch management. In the third part oflifecycle management 520, the lifecycle of the service management layer itself is managed. This allows the service management layer to evolve or to terminate if a particular service is to be eliminated entirely. - The activities within an active object leading to analyses and subsequent actions are driven by the state imbalances observed at the level of individual active objects. Decisions made at the analyze
functional component 504 of an active object are local taking into account information available to the active object and policies applicable to active object only. The decisions do not take into account global policies or tradeoffs. For example, if an active object discovers that it has a choice of using one of two groups of supporting services that are functionally equivalent, but differ in performance, it may select one group based on local requirements using local criteria and policies without taking into account current or future needs of other services. Multiple active objects are simultaneously active and analyze functional components of multiple active objects are continuously trying to optimize the state of the services they manage, within their operational constraints. In the following, these dynamics are explained in the context of a deployment of a new service instance in response to a request for that type of service. - When a request for service cannot be served using an existing service or service composite, the active template representing the type of service requested is notified. In turn, that template evaluates the request and either instantiates a new active object to manage a new instance of that service or instructs an existing active object to reconfigure the managed object to accommodate the new request. The instructions for reconfiguration are performed simply by changing the desired state of the managed service. The actions followed in such a case are a subset of the actions followed when a new active object is created. In the following, the set of actions performed by a newly instantiated active object are described. These set of actions lead to composing and deploying a composite service from component services by recursively traversing down the dependency tree and then building up the component service tree until the entire composite service is fully configured and deployed.
- At creation in the active repository, the immediate dependencies of an active object are known but are unsatisfied. When an active object is instantiated in active repository, the active object is assigned a state called a desired state and another state called the current state. The current state is the state of the service or resource managed by the active object. The desired state is the expected state of the managed service or resource.
- Analyze
functional component 504 in the active object continuously monitors the two states. If the two states do not match, analyzefunctional component 504 analyzes possible alternatives for transforming the current state to the desired state and determines if there are any dependency requirements that must be fulfilled to achieve the desired state. Thus, if the current state is “off line” and the desired state is “on line” at the time when an active object is instantiated, analyzefunctional component 504 in the active object examines the dependencies that need to be satisfied to make the managed service or resource go “on line.” The dependency information is stored independency requirements 512 interface, which is one of the six management interfaces for the managed object. Each dependency is expressed in terms of the type of service or resource required. The dependency analysis identifies specific types of services or resources needed to transform the current state to the desired sate. In addition, analyzefunctional component 504 also determines the performance and any location constraints on the other services/resources required to satisfy the dependencies. This is a function of the desired state. - For example, if the desired state of a Web service requires processing m transactions per minute (value of m is known at this point), analyze
functional component 504 first determines that the Web service would depend on a database service and then it quantifies the characteristics of the database service that can meet the performance requirements. Since the database services are characterized by the speed with which they can read and update database records, analyzefunctional component 504 computes the minimum read and update speeds of a database service that would qualify it as an eligible supporting service. In other words, analyzefunctional component 504 computes a set of performance constraints on the supporting database service. The relation between m, u, and r may be expressed by a simple algebraic formula or may require evaluation of a polynomial equation representing the approximate behavior of a database system. - The performance specific characteristics for determining the level of performance from supporting services needed to achieve a certain desired state are encoded in
dependency requirements 512 interface. Note that analyzefunctional component 504 does not identify the exact instance of the managing service or resource to be used to satisfy a particular dependency. Analyzefunctional component 504 only quantifies the type of management service or resource needed and the performance, location, and security constraints on the supporting components. The information on the desired state, dependencies to be satisfied to arrive at that state, and constraints on the managing services or resources is then handed over to configurefunctional component 506. - Configure
functional component 506 determines the actual components and the portions of their capacities to be used to fulfill the dependencies. To make this determination, for each unsatisfied dependency, configurefunctional component 506 contacts the active template representing the type of managing service or resource needed to satisfy that dependency. To each such active template, configurefunctional component 506 sends a request for the type of service it is looking for and associated constraints that must be met. Each such active template tries to fulfill the request in one of three ways: (i) assign an existing managing service or resource to provide the necessary support, (ii) reconfigure the existing service to accommodate the new demand, or (iii) configure and deploy a new service instance to provide the necessary support. When none of these alternatives are possible, configurefunctional component 506 sends back a negative confirmation. When it is possible to provide the support, configurefunctional component 506 sends back the address of the corresponding active object that manages the supporting service. Note that the performance constraints on the dependencies may be expressed as an acceptable range. In this case, the identified supporting service expected to deliver service in that range. Policies also play a role here. A policy may specify conditions when the constraints may be relaxed and may specify the extent to which they may be relaxed. The supporting active templates take these policies into account when making their decisions. - The steps followed at each supporting active template are identical to the steps described above in the context of the original request that triggered actions at the active object. These steps are followed recursively until either all the dependencies are resolved or it is determined that they cannot be resolved given a set of system resources and with the current set of policies. Thus, the entire dependency tree for providing support to any service component is traversed top-down from active templates to active objects to the supporting active templates and so on. The dependency tree of the actual services is built in a bottom up manner by following a concurrent depth-first traversal of the dependency graph.
- Once the supporting services are configured and deployed in a state ready to provide the necessary support, the requesting active object is notified with a positive confirmation along with the specifics of the active objects managing the supporting services. At this point, all the managing service or resource components and their current configurations, including their available capacities, are known at for each node in the dependency graph. Using this information, configure
functional component 506 quantifies the actual parameters to use in configuring the service on top of the supporting services. The parameters may include, IP addresses, communication ports to use, user ids, and passwords with access permissions to the supporting services, buffer sizes, and so on. These details depend on the type of service. This configuration information is then passed to executefunctional component 508. - Execute
functional component 508 executes setup and installation procedures and sends commands so that the managed service is instantiated in its desired state on top of the supporting services. The commands and procedures to be followed are stored inservice deployment 516 interface of the active object. This completes the deployment of the service as a composition of component services. Following this, the user requests are processed or other higher-level services are composed on top of such a service composite. - As noted earlier, the entire process of determining the dependency tree from by the component services is traversed dynamically via the active templates and active objects in the active repository. The actual service components represented by the nodes in the dependency graph are configured and deployed in a bottom up manner by following a concurrent depth-first traversal of the dependency graph.
- If the actual components are already deployed, but the actual components need to be reconfigured, the corresponding active object invokes specific actions to bring about the desired configuration changes in the component. Once a component is configured and deployed and its performance is satisfactory, the active object at the higher level in the dependency graph is notified. The next level object configures and deploys the actual component once all its supporting components are known to be ready and functional. This continues until all components, including the high-level service component are configured, deployed, and brought to the service delivery state.
- Thus, at the micro-level, active objects control the active service instances they are responsible to manage. In doing so, they also influence the behavior of the supporting and supported service or resource instances. Moreover, they respond to the changes in the behavior of the supported and the supporting resources. However, the micro-level controls do not bring about simultaneous global changes that take global constraints and policies into account. Such changes are brought about by the macro-level controls. Macro-level controls are needed to enforce global policies such as manner in which critical resources are to be shared, manner in which demand is to be prioritized and served, and so on. Such policies are necessary when there are scarce resources and demand may exceed supply. The policies are also necessary when complex decisions are to be made and the tradeoffs are not clear-cut.
- A novelty of this illustrative embodiment is that it enables combining global control mechanisms with the local micro-level management controls.
-
FIG. 6 depicts macro-level controls for managing the composite services in accordance with an illustrative embodiment. Orchestration andmanagement services 600 are orchestration and management services, such as orchestration andmanagement services 310 ofFIG. 3 . Orchestration andmanagement services 600 consist of management services that provide macro-level controls for managing the composite services. Orchestration andmanagement services 600 are provided by the analysis andplanning engine 602,configuration engine 604,deployment engine 606,monitoring engine 608, andlifecycle engine 610. Each of these engines interacts withactive repository 612 and the management objects represented in theactive repository 612. - As mentioned earlier, the analysis and subsequent actions within an active object is driven by the desired state of the managed service instance alone. However, critical services and resources may require global considerations in deciding allocations, sharing, and scheduling of such services and resources. In such cases, the analysis and
planning engine 602 performs the arbitration and decisions on allocations, sharing, and scheduling. These decisions then determine the desired states of one or more active objects. Similarly, global configuration and deployment considerations result in scheduling steps at the micro-level for one or more active objects in the active repository, such asactive repository 312 ofFIG. 3 . Thus, the macro-level controls provided by the five engines shown inFIG. 6 are transformed into micro-controls. Active objects inactive repository 612 control the corresponding resource and component services so that the desired effects of the macro controls are realized at the micro-level. - As stated earlier, an active repository manages all life-cycle aspects of software service components so as to deliver solutions in response to service requests. The active repository performs this function taking into account related system management policies as well constraints placed by the availability of physical resources. One aspect of this life-cycle management is the composition of a complex service whenever there is a demand for such a service. Another aspect is the tearing down or decomposition of a complex service when there is no demand, or policies require such an action, or one or more supporting services are unavailable.
- As an illustrative example,
FIG. 7 depicts a flowchart of an operation used to deploy and manage a software service in accordance with an illustrative embodiment. As the operation begins, a request is received to deploy a software service in a computer network (step 702). If the requested software service is a new software service, the existing active templates and active objects in the active repository, such asactive repository 312 ofFIG. 3 , perform an analysis of physical resources associated with the requested software service to be managed and a current set of software services using these resources (step 704). - A new software service is a service that is not currently managed by an existing active object. Following this analysis, the active template representing the type of the new service to be created, first instantiates an active object in the active repository (step 706). This active object manages the new software service. The active repository deploys the software service in the network using the active object (step 708) and the active object manages the software service (step 710) with the operation ending thereafter. The actual deployment of the software service is performed using methods described in related applications. After the active object is created, the active object manages the software service as described with relation to
FIG. 5 . - If the requested software is an existing software service, the active repository identifies an existing active object that manages the existing software service. The existing software service is deployed in the network using the existing active object and managed using the existing active object.
- Thus, the illustrative embodiments receive a request for service. If the requested service is currently not deployed, the embodiment, responsive to the requested software service being a new software service, perform an analysis of physical resources and other component software services required to configure and deploy the requested software service to be managed so it can serve this request and other similar requests. These steps may result in identifying other component software services that may need to be configured or reconfigured and deployed or redeployed. The illustrative embodiments perform the necessary actions so the requested service can be made available as a composition of one or more managed service components to process the request.
- The illustrative embodiments also respond to requests for services that are currently deployed but not configured in a form desired for processing the request. The illustrative embodiments takes actions by reconfiguring and/or redeploying one or more service components and resources so the requested service can be deployed with the desired configuration. The illustrative embodiments create an active object to manage the new software service using an active template based on the analysis. Finally, the illustrative embodiments deploy the new software service in the network using the active object and manage the new software service using the active object. The active objects in the active repository interact with one another while controlling and managing the software services. These interactions lead to service management actions such that desired service compositions are realized by the component software services and the compositions are maintained in their desired states.
- The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
- Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any tangible apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
- The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.
- A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
- Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
- Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
- The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
Claims (20)
1. A computer implemented method for management of a software service, the computer implemented method comprising:
receiving a request to deploy the software service in a computer network;
responsive to the software service being a new software service, performing a dependency analysis for the requested software service to determine component software services and physical resources necessary to deploy and manage the new software service as a composite;
creating an active object to manage the new software service using an active template based on the dependency analysis;
deploying the new software service in the computer network using the active object; and
managing the new software service using the active object.
2. The computer implemented method of claim 1 , wherein the dependency analysis is triggered by an imbalance in a current state and a desired state of the software service, wherein the imbalance in the current state and the desired state may occur in response to at least one of a service request, a request from a dependent service, global policies, global management actions, administrative actions, a supporting service, a supporting physical resource, or a spontaneous change in a state of the software service.
3. The computer implemented method of claim 1 , wherein the active object performs at least one of a monitoring function, an analyzing function, a configuration function, or an execution function.
4. The computer implemented method of claim 1 , wherein the active template represents one of a plurality of physical resources or one of a plurality of software service types in the computer network.
5. The computer implemented method of claim 1 , wherein the active object uses a plurality of management interfaces to manage the new software service.
6. The computer implemented method of claim 5 , wherein the plurality of management interfaces comprises at least one of a service specification interface, a dependency requirements interface, a service configuration interface, a service deployment interface, a service state interface, or a lifecycle management interface.
7. The computer implemented method of claim 6 , wherein the service specification interface identifies functionalities provided by the new software service.
8. The computer implemented method of claim 6 , wherein the dependency requirements interface provides at least one of:
identifying the physical resources required for making the new software service available; or
identifying the other software services required for making the new software service available; or
identifying other software services that depend on the new software service.
9. The computer implemented method of claim 6 , wherein the service configuration interface provides at least one of:
managing information on configuring supporting services so that the new software service is deployed on top of the supporting services;
managing information on configuring the new software service given a set of the supporting services that meet a dependency requirement; or
managing a manner in which the dependent services are to be configured.
10. The computer implemented method of claim 6 , wherein the service deployment interface provides at least one of:
managing deployment of the new software-service given a specific configuration of supporting services;
managing the new software service functionality to be enabled; or
managing higher-level software services to be supported.
11. The computer implemented method of claim 6 , wherein the service state interface provides at least one of:
listing software service functions selected and enabled;
listing actual software service instances selected to support the new software service;
listing actual software service instances supported by the new software service, demand placed by the software service instances, or current usage by supported services;
listing any service level agreements with the supported software service instances; or
listing any service level agreement violations.
12. The computer implemented method of claim 6 , wherein the lifecycle management interface provides at least one of:
managing a service lifecycle;
managing a lifecycle of a software package used to deploy the new software service; or
managing a lifecycle of a service management layer.
13. The computer implemented method of claim 1 , further comprising:
responsive to the software service being an existing software service, identifying an existing active object that manages the existing software service;
reconfiguring and deploying the existing software service in the computer network using the existing active object; and
managing the existing software service using the existing active object.
14. The computer implemented method of claim 1 , wherein a plurality of software services are simultaneously managed by a plurality of active objects from an active repository, wherein each active object responding to state imbalances in the software service it manages.
15. A data processing system comprising:
a bus system;
a communications system connected to the bus system;
a memory connected to the bus system, wherein the memory includes a set of instructions; and
a processing unit connected to the bus system, wherein the processing unit executes the set of instructions to receive a request to deploy the software service in a computer network; perform a dependency analysis for the requested software service to determine component software services and physical resources necessary to deploy and manage the new software service as a composite in response to the software service being a new software service; create an active object to manage the new software service using an active template based on the dependency analysis; deploy the new software service in the computer network using the active object; and manage the new software service using the active object.
16. The data processing system of claim 15 , wherein the dependency analysis is triggered by an imbalance in a current state and a desired state of the software service, wherein the imbalance in the current state and the desired state may occur in response to at least one of a service request, a request from a dependent service, global policies, global management actions, administrative actions, a supporting service, a supporting physical resource, or a spontaneous change in a state of the software service.
17. A computer program product comprising:
a computer usable medium including computer usable program code for management of a software service, the computer program product including:
computer usable program code for receiving a request to deploy the software service in a computer network;
computer usable program code for performing a dependency analysis for the requested software service to determine component software services and physical resources necessary to deploy and manage the new software service as a composite in response to the software service being a new software service,;
computer usable program code for creating an active object to manage the new software service using an active template based on the dependency analysis;
computer usable program code for deploying the new software service in the computer network using the active object; and
computer usable program code for managing the new software service using the active object.
18. The computer program product of claim 17 , wherein the dependency analysis is triggered by an imbalance in a current state and a desired state of the software service, wherein the imbalance in the current state and the desired state may occur in response to at least one of a service request, a request from a dependent service, global policies, global management actions, administrative actions, a supporting service, a supporting physical resource, or a spontaneous change in a state of the software service.
19. An active repository comprising:
a plurality of active templates; and
an active object repository, wherein the active repository receives a request to deploy the software service in a computer network; performs a dependency analysis for the requested software service to determine component software services and physical resources necessary to deploy and manage the new software service as a composite in response to the software service being a new software service; creates an active object to manage the new software service using an active template based on the dependency analysis; deploys the new software service in the computer network using the active object; and wherein the active object manages the new software service.
20. The active repository of claim 19 , wherein the dependency analysis is triggered by an imbalance in a current state and a desired state of the software service, wherein the imbalance in the current state and the desired state may occur in response to at least one of a service request, a request from a dependent service, global policies, global management actions, administrative actions, a supporting service, a supporting physical resource, or a spontaneous change in a state of the software service.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/453,508 US20070294364A1 (en) | 2006-06-15 | 2006-06-15 | Management of composite software services |
PCT/US2007/013940 WO2007146367A2 (en) | 2006-06-15 | 2007-06-14 | Management of composite software services |
EP07796091A EP2035943A4 (en) | 2006-06-15 | 2007-06-14 | Management of composite software services |
CN2007800189670A CN101454766B (en) | 2006-06-15 | 2007-06-14 | Method for managing software maintenance and data process system |
US12/054,191 US8677318B2 (en) | 2006-06-15 | 2008-03-24 | Management of composite software services |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/453,508 US20070294364A1 (en) | 2006-06-15 | 2006-06-15 | Management of composite software services |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/054,191 Continuation US8677318B2 (en) | 2006-06-15 | 2008-03-24 | Management of composite software services |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070294364A1 true US20070294364A1 (en) | 2007-12-20 |
Family
ID=38832532
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/453,508 Abandoned US20070294364A1 (en) | 2006-06-15 | 2006-06-15 | Management of composite software services |
US12/054,191 Expired - Fee Related US8677318B2 (en) | 2006-06-15 | 2008-03-24 | Management of composite software services |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/054,191 Expired - Fee Related US8677318B2 (en) | 2006-06-15 | 2008-03-24 | Management of composite software services |
Country Status (4)
Country | Link |
---|---|
US (2) | US20070294364A1 (en) |
EP (1) | EP2035943A4 (en) |
CN (1) | CN101454766B (en) |
WO (1) | WO2007146367A2 (en) |
Cited By (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168424A1 (en) * | 2006-06-15 | 2008-07-10 | Ajay Mohindra | Management of composite software services |
US20080244575A1 (en) * | 2007-03-30 | 2008-10-02 | Novell, Inc. | Tessellated virtual machines conditionally linked for common computing goals |
US20080256538A1 (en) * | 2007-04-10 | 2008-10-16 | Novell, Inc. | Storage configurations for tessellated virtual machines |
US20080256535A1 (en) * | 2007-04-10 | 2008-10-16 | Novell, Inc. | Tessellated virtual machines for common computing goals |
US20080275935A1 (en) * | 2006-06-15 | 2008-11-06 | Ajay Mohindra | Method and apparatus for middleware assisted system integration in a federated environment |
US20080294777A1 (en) * | 2007-05-25 | 2008-11-27 | Alexei Karve | Method and apparatus for template-based provisioning in a service delivery environment |
US20080301637A1 (en) * | 2007-05-31 | 2008-12-04 | Stark Scott M | Profile service based deployment configuration |
US20080301711A1 (en) * | 2007-05-31 | 2008-12-04 | Stark Scott M | Providing a POJO-based microcontainer for an application server |
US20080301627A1 (en) * | 2007-05-31 | 2008-12-04 | Red Hat, Inc. | Providing extensive ability for describing a management interface |
US20080301629A1 (en) * | 2007-05-31 | 2008-12-04 | Stark Scott M | Integrating aspect oriented programming into the application server |
US20080307415A1 (en) * | 2007-06-11 | 2008-12-11 | Novell, Inc. | Tessellated applications for user computing environments |
US20090055838A1 (en) * | 2007-08-23 | 2009-02-26 | Microsoft Corporation | Monitoring distributed applications |
US20090113437A1 (en) * | 2007-10-26 | 2009-04-30 | Microsoft Corporation | Translating declarative models |
US20090157872A1 (en) * | 2007-10-23 | 2009-06-18 | Microsoft Corporation | Model-based composite application platform |
US20090165021A1 (en) * | 2007-10-23 | 2009-06-25 | Microsoft Corporation | Model-Based Composite Application Platform |
US20090193439A1 (en) * | 2008-01-30 | 2009-07-30 | Microsoft Corporation | Managing component programs within a service application |
CN101876895A (en) * | 2009-04-28 | 2010-11-03 | 中国科学院计算技术研究所 | Package integrated method of application software under grid computing environment |
US20110088044A1 (en) * | 2009-10-09 | 2011-04-14 | Oracle International Corporation | Methods and systems for implementing a logical programming model |
US20110087848A1 (en) * | 2009-10-09 | 2011-04-14 | Oracle International Corporation | Methods and systems for implementing a virtual storage network |
US20110106722A1 (en) * | 2009-11-02 | 2011-05-05 | International Business Machines Corporation | Comparing utility and warranty of services |
US8099494B2 (en) | 2007-06-29 | 2012-01-17 | Microsoft Corporation | Tuning and optimizing distributed systems with declarative models |
US20120066391A1 (en) * | 2010-09-15 | 2012-03-15 | Qualcomm Incorporated | System and method for managing resources of a portable computing device |
US8181151B2 (en) | 2007-10-26 | 2012-05-15 | Microsoft Corporation | Modeling and managing heterogeneous applications |
US8191043B2 (en) | 2006-06-15 | 2012-05-29 | International Business Machines Corporation | On-demand composition and teardown of service infrastructure |
US8225308B2 (en) * | 2007-10-26 | 2012-07-17 | Microsoft Corporation | Managing software lifecycle |
US8239505B2 (en) | 2007-06-29 | 2012-08-07 | Microsoft Corporation | Progressively implementing declarative models in distributed systems |
US8306996B2 (en) | 2007-10-26 | 2012-11-06 | Microsoft Corporation | Processing model-based commands for distributed applications |
CN102904745A (en) * | 2012-09-05 | 2013-01-30 | 上海寰创通信科技股份有限公司 | Service lifecycle management and monitoring method in network management system based on java management extension (JMX) |
US20130067267A1 (en) * | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Resource aware placement of applications in clusters |
KR101295706B1 (en) | 2010-12-08 | 2013-08-16 | 한국전자통신연구원 | Apparatus for managing of component service and method for detecting error on component service-based business application |
CN103309746A (en) * | 2013-05-13 | 2013-09-18 | 百度在线网络技术(北京)有限公司 | Method and device for building investigation environment |
US20140003287A1 (en) * | 2010-12-01 | 2014-01-02 | Nokia Siemens Networks Oy | Method and device for service provisioning in a communication network |
US8631414B2 (en) | 2010-09-15 | 2014-01-14 | Qualcomm Incorporated | Distributed resource management in a portable computing device |
US20140052483A1 (en) * | 2012-08-15 | 2014-02-20 | Werner Laber | Methods, apparatus and system for mediating services |
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 |
US9223558B2 (en) | 2014-06-02 | 2015-12-29 | International Business Machines Corporation | Software installation and configuration |
US20160021197A1 (en) * | 2014-07-18 | 2016-01-21 | Microsoft Corporation | Self-Extending Cloud |
US20160124739A1 (en) * | 2014-10-30 | 2016-05-05 | Google Inc. | Minimizing Image Copying During Partition Updates |
US20160127478A1 (en) * | 2014-10-29 | 2016-05-05 | At&T Intellectual Property I, L.P. | Creating Services Using Service Modules |
CN105592130A (en) * | 2014-09-26 | 2016-05-18 | 华为技术有限公司 | Service deployment method and device, and service management method |
US9361168B1 (en) | 2014-03-25 | 2016-06-07 | Amazon Technologies, Inc. | Accessing resources across a network boundary |
US20160164746A1 (en) * | 2014-12-05 | 2016-06-09 | Accenture Global Services Limited | Network component placement architecture |
EP3059900A4 (en) * | 2013-11-15 | 2016-11-02 | Zte Corp | Network service template management method and device |
US9678844B1 (en) * | 2014-03-25 | 2017-06-13 | Amazon Technologies, Inc. | State-tracked testing across network boundaries |
WO2019060228A1 (en) * | 2017-09-14 | 2019-03-28 | Cisco Technology, Inc. | Systems and methods for instantiating services on top of services |
US20190260634A1 (en) * | 2016-11-29 | 2019-08-22 | Huawei Technologies Co., Ltd. | Service state transition method and apparatus |
US10521235B1 (en) | 2019-06-27 | 2019-12-31 | Capital One Services, Llc | Determining problem dependencies in application dependency discovery, reporting, and management tool |
CN110825391A (en) * | 2019-10-31 | 2020-02-21 | 北京金山云网络技术有限公司 | Service management method, device, electronic equipment and storage medium |
US10642719B1 (en) | 2019-06-27 | 2020-05-05 | Capital One Services, Llc | Intelligent services for application dependency discovery, reporting, and management tool |
CN111344668A (en) * | 2017-11-09 | 2020-06-26 | 国际商业机器公司 | Dynamic selection of deployment configuration for software applications |
US10747544B1 (en) | 2019-06-27 | 2020-08-18 | Capital One Services, Llc | Dependency analyzer in application dependency discovery, reporting, and management tool |
CN112114858A (en) * | 2019-06-19 | 2020-12-22 | 和硕联合科技股份有限公司 | Method for managing software service and server |
US10915428B2 (en) | 2019-06-27 | 2021-02-09 | Capital One Services, Llc | Intelligent services and training agent for application dependency discovery, reporting, and management tool |
US11082361B2 (en) * | 2016-09-02 | 2021-08-03 | Pivotal Software, Inc. | On-demand resource provisioning |
US11093378B2 (en) | 2019-06-27 | 2021-08-17 | Capital One Services, Llc | Testing agent for application dependency discovery, reporting, and management tool |
US11354222B2 (en) | 2019-06-27 | 2022-06-07 | Capital One Services, Llc | Discovery crawler for application dependency discovery, reporting, and management tool |
US11379292B2 (en) | 2019-06-27 | 2022-07-05 | Capital One Services, Llc | Baseline modeling for application dependency discovery, reporting, and management tool |
US11442716B2 (en) * | 2014-06-02 | 2022-09-13 | Google Llc | Cloud orchestration engine |
US11463321B2 (en) * | 2015-12-15 | 2022-10-04 | At&T Intellectual Property I, L.P. | Method and apparatus for creating a custom service |
CN115190010A (en) * | 2022-07-01 | 2022-10-14 | 北京友友天宇系统技术有限公司 | Distributed recommendation method and device based on software service dependency relationship |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7950007B2 (en) * | 2006-06-15 | 2011-05-24 | International Business Machines Corporation | Method and apparatus for policy-based change management in a service delivery environment |
US8555247B2 (en) | 2006-10-13 | 2013-10-08 | International Business Machines Corporation | Systems and methods for expressing temporal relationships spanning lifecycle representations |
US9251498B2 (en) * | 2006-10-23 | 2016-02-02 | Oracle International Corporation | Facilitating deployment of customizations of enterprise applications |
ATE540503T1 (en) * | 2007-11-21 | 2012-01-15 | Alcatel Lucent | NORMALIZATION DEVICE AND METHOD FOR REQUESTING A KEY/VALUE PAIR OF A DEVICE |
US9047155B2 (en) * | 2009-06-30 | 2015-06-02 | Red Hat, Inc. | Message-based installation management using message bus |
US9329951B2 (en) * | 2009-07-31 | 2016-05-03 | Paypal, Inc. | System and method to uniformly manage operational life cycles and service levels |
CN101655795B (en) * | 2009-09-25 | 2012-10-10 | 金蝶软件(中国)有限公司 | Method for creating service embodiment and system thereof |
EP2325800A1 (en) * | 2009-11-02 | 2011-05-25 | Accenture Global Services Limited | Web portal application customization method and system using profiles |
JPWO2011099053A1 (en) * | 2010-02-10 | 2013-06-13 | 株式会社日立製作所 | Product line type development support equipment |
US8930942B2 (en) * | 2010-05-26 | 2015-01-06 | Tibco Software Inc. | Capability model for deploying componentized applications |
US8527747B2 (en) | 2010-09-20 | 2013-09-03 | International Business Machines Corporation | Future system that can participate in systems management activities until an actual system is on-line |
US8713183B2 (en) * | 2011-03-27 | 2014-04-29 | Hewlett-Packard Development Company, L.P. | Resource compatability for data centers |
US8914794B2 (en) * | 2011-06-30 | 2014-12-16 | Rockwell Automation Technologies, Inc. | Multiple deployment of applications with multiple configurations in an industrial automation environment |
US9086923B2 (en) * | 2011-09-16 | 2015-07-21 | Rutgers, The State University Of New Jersey | Autonomic workflow management in dynamically federated, hybrid cloud infrastructures |
US8949429B1 (en) * | 2011-12-23 | 2015-02-03 | Amazon Technologies, Inc. | Client-managed hierarchical resource allocation |
US8843889B2 (en) * | 2012-04-04 | 2014-09-23 | International Business Machines Corporation | Managing application template artifacts in a networked computing environment |
US8949824B2 (en) * | 2012-09-28 | 2015-02-03 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
US9235491B2 (en) | 2012-09-28 | 2016-01-12 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
US9317269B2 (en) | 2012-09-28 | 2016-04-19 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
US9436443B2 (en) * | 2014-08-28 | 2016-09-06 | At&T Intellectual Property I, L.P. | Software defined network controller |
JP2018055479A (en) * | 2016-09-29 | 2018-04-05 | 富士通株式会社 | Service condition processing program, device, and method |
US10073678B2 (en) * | 2016-10-06 | 2018-09-11 | International Business Machines Corporation | Locating features in a layered software application |
US10547506B2 (en) | 2016-12-13 | 2020-01-28 | International Business Machines Corporation | Determining identities for executing cloud processing and approvers of the executing |
US10623252B2 (en) | 2016-12-13 | 2020-04-14 | International Business Machines Corporation | Performing actions that have been defined for provisioned instances |
US11153273B2 (en) | 2016-12-13 | 2021-10-19 | International Business Machines Corporation | Generating and managing names of instances |
US11044145B2 (en) | 2016-12-13 | 2021-06-22 | International Business Machines Corporation | Configuring and naming of cloud provisioning entities |
US11188390B2 (en) * | 2017-06-05 | 2021-11-30 | Umajin Inc. | Method for configuring a server kit by a server management system |
US11922564B2 (en) | 2017-06-05 | 2024-03-05 | Umajin Inc. | Generative content system that supports location-based services and methods therefor |
US12001917B2 (en) | 2017-06-05 | 2024-06-04 | Umajin Inc. | Hub-and-spoke classification system and methods |
US12020354B2 (en) | 2017-06-05 | 2024-06-25 | Umajin Inc. | Hub and spoke classification system |
EP3635538A4 (en) | 2017-06-05 | 2021-03-10 | Umajin Inc. | Methods and systems for an application system |
US11726822B2 (en) | 2017-06-05 | 2023-08-15 | Umajin Inc. | Systems and methods for providing digital twin-enabled applications |
US11983641B2 (en) | 2017-06-05 | 2024-05-14 | Umajin Inc. | Asset tracking system and methods |
US20200201613A1 (en) * | 2017-06-23 | 2020-06-25 | Flux7 Labs Inc | Method, System, and Platform for Implementing an Enterprise DevOps Framework (EDF) |
CN109309654B (en) * | 2017-07-28 | 2022-01-21 | 京东方科技集团股份有限公司 | Method for creating resources, corresponding registration method, server and client device |
US11055134B2 (en) | 2017-11-30 | 2021-07-06 | International Business Machines Corporation | Performing an action on a composite of software instances |
US11075801B2 (en) | 2018-04-17 | 2021-07-27 | Hewlett Packard Enterprise Development Lp | Systems and methods for reconfiguration control using capabilities |
US11140049B2 (en) * | 2018-09-07 | 2021-10-05 | Juniper Networks, Inc. | Dynamic intent assurance and programmability in computer networks |
US11175802B2 (en) * | 2018-09-21 | 2021-11-16 | Sap Se | Configuration object deletion manager |
CN111399806B (en) * | 2019-01-03 | 2023-09-01 | 百度在线网络技术(北京)有限公司 | Component management method and device, electronic equipment and storage medium |
CN110515698A (en) * | 2019-08-16 | 2019-11-29 | 济南浪潮数据技术有限公司 | Resource application method, system, electronic device and storage medium |
CN110532000B (en) * | 2019-09-06 | 2023-01-10 | 程延辉 | Kbroker distributed operating system for operation publishing and operation publishing system |
US11620454B2 (en) * | 2020-02-05 | 2023-04-04 | Hatha Systems, LLC | System and method for determining and representing a lineage of business terms and associated business rules within a software application |
US11144289B1 (en) | 2020-05-19 | 2021-10-12 | International Business Machines Corporation | Dynamic automation of selection of pipeline artifacts |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6286047B1 (en) * | 1998-09-10 | 2001-09-04 | Hewlett-Packard Company | Method and system for automatic discovery of network services |
US6330689B1 (en) * | 1998-04-23 | 2001-12-11 | Microsoft Corporation | Server architecture with detection and recovery of failed out-of-process application |
US20030167270A1 (en) * | 2000-05-25 | 2003-09-04 | Werme Paul V. | Resource allocation decision function for resource management architecture and corresponding programs therefor |
US20040103195A1 (en) * | 2002-11-21 | 2004-05-27 | International Business Machines Corporation | Autonomic web services hosting service |
US20050102665A1 (en) * | 2003-11-10 | 2005-05-12 | International Business Machines (Ibm) Corporation | Automatic parallel non-dependent component deployment |
US6901442B1 (en) * | 2000-01-07 | 2005-05-31 | Netiq Corporation | Methods, system and computer program products for dynamic filtering of network performance test results |
US20050138084A1 (en) * | 2001-01-08 | 2005-06-23 | International Business Machines Corporation | Efficient application deployment on dynamic clusters |
US7013461B2 (en) * | 2001-01-05 | 2006-03-14 | International Business Machines Corporation | Systems and methods for service and role-based software distribution |
US7366768B2 (en) * | 1997-10-06 | 2008-04-29 | Verizon Business Global Llc | Deploying service modules among service nodes distributed in an intelligent network |
US20080168424A1 (en) * | 2006-06-15 | 2008-07-10 | Ajay Mohindra | Management of composite software services |
US7464154B2 (en) * | 2001-05-18 | 2008-12-09 | Network Resonance, Inc. | System, method and computer program product for analyzing data from network-based structured message stream |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6163861A (en) * | 1996-08-23 | 2000-12-19 | Nippon Telegraph And Telephone Corporation | Error compensating method and apparatus and medium storing an error compensation program |
US6330710B1 (en) | 1998-06-19 | 2001-12-11 | At&T Corp. | Servlet-based architecture for dynamic service composition |
US6336138B1 (en) | 1998-08-25 | 2002-01-01 | Hewlett-Packard Company | Template-driven approach for generating models on network services |
US6697806B1 (en) | 2000-04-24 | 2004-02-24 | Sprint Communications Company, L.P. | Access network authorization |
US7076728B2 (en) | 2000-12-22 | 2006-07-11 | International Business Machines Corporation | Method and apparatus for end-to-end content publishing system using XML with an object dependency graph |
US7694303B2 (en) | 2001-09-25 | 2010-04-06 | Sun Microsystems, Inc. | Method for dynamic optimization of multiplexed resource partitions |
WO2003063009A1 (en) | 2002-01-18 | 2003-07-31 | Bea Systems, Inc. | System, method and interface for controlling server lifecycle |
US20040003390A1 (en) | 2002-06-27 | 2004-01-01 | Microsoft Corporation | System and method for installing a software application in a non-impactfull manner |
US7313793B2 (en) * | 2002-07-11 | 2007-12-25 | Microsoft Corporation | Method for forking or migrating a virtual machine |
US7243306B1 (en) | 2002-07-17 | 2007-07-10 | International Business Machines Corporation | Service descriptor for a multitier compute infrastructure |
WO2004021207A1 (en) * | 2002-08-29 | 2004-03-11 | Telegea | Systems and methods for improving service delivery |
US7096459B2 (en) | 2002-09-11 | 2006-08-22 | International Business Machines Corporation | Methods and apparatus for root cause identification and problem determination in distributed systems |
US20040060054A1 (en) | 2002-09-20 | 2004-03-25 | International Business Machines Corporation | Composition service for autonomic computing |
US7103597B2 (en) | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7526452B2 (en) | 2002-12-16 | 2009-04-28 | International Business Machines Corporation | Apparatus, methods and computer programs for metering and accounting for services accessed over a network |
US20060294238A1 (en) | 2002-12-16 | 2006-12-28 | Naik Vijay K | Policy-based hierarchical management of shared resources in a grid environment |
US7426736B2 (en) | 2003-05-22 | 2008-09-16 | International Business Machines Corporation | Business systems management solution for end-to-end event management using business system operational constraints |
US20040261060A1 (en) | 2003-06-20 | 2004-12-23 | Haselden J. Kirk | Dependency based package deployment |
US7703029B2 (en) | 2003-07-28 | 2010-04-20 | Sap Ag | Grid browser component |
US7584454B1 (en) | 2003-09-10 | 2009-09-01 | Nextaxiom Technology, Inc. | Semantic-based transactional support and recovery for nested composite software services |
US7103874B2 (en) | 2003-10-23 | 2006-09-05 | Microsoft Corporation | Model-based management of computer systems and distributed applications |
US7568195B2 (en) | 2003-12-16 | 2009-07-28 | Microsoft Corporation | Determining a maximal set of dependent software updates valid for installation |
WO2005081672A2 (en) * | 2004-01-30 | 2005-09-09 | International Business Machines Corporation | Componentized automatic provisioning and management of computing environments for computing utilities |
US7340654B2 (en) | 2004-06-17 | 2008-03-04 | Platform Computing Corporation | Autonomic monitoring in a grid environment |
US7712100B2 (en) | 2004-09-14 | 2010-05-04 | International Business Machines Corporation | Determining a capacity of a grid environment to handle a required workload for a virtual grid job request |
US7222149B2 (en) | 2004-09-17 | 2007-05-22 | Microsoft Corporation | Ordering decision nodes in distributed decision making |
GB0421646D0 (en) | 2004-09-29 | 2004-10-27 | British Telecomm | Sharing data processing resources |
US7668741B2 (en) | 2005-01-06 | 2010-02-23 | International Business Machines Corporation | Managing compliance with service level agreements in a grid environment |
US20060195559A1 (en) | 2005-02-28 | 2006-08-31 | University Of Westminster | Services for grid computing |
US7945041B2 (en) | 2005-05-27 | 2011-05-17 | International Business Machines Corporation | Method, system and program product for managing a customer request |
US20070050431A1 (en) | 2005-08-26 | 2007-03-01 | Microsoft Corporation | Deploying content between networks |
US7899903B2 (en) | 2005-09-30 | 2011-03-01 | Microsoft Corporation | Template based management system |
US7620653B1 (en) | 2006-02-01 | 2009-11-17 | Amazon Technologies, Inc. | Service for retrieving and aggregating data used to generate web pages or other content items |
US8566447B2 (en) * | 2006-04-10 | 2013-10-22 | Bank Of America Corporation | Virtual service switch |
US7950007B2 (en) | 2006-06-15 | 2011-05-24 | International Business Machines Corporation | Method and apparatus for policy-based change management in a service delivery environment |
US7496893B2 (en) | 2006-06-15 | 2009-02-24 | International Business Machines Corporation | Method for no-demand composition and teardown of service infrastructure |
US7519711B2 (en) | 2006-06-15 | 2009-04-14 | International Business Machines Corporation | Method for middleware assisted system integration in a federated environment |
-
2006
- 2006-06-15 US US11/453,508 patent/US20070294364A1/en not_active Abandoned
-
2007
- 2007-06-14 CN CN2007800189670A patent/CN101454766B/en not_active Expired - Fee Related
- 2007-06-14 EP EP07796091A patent/EP2035943A4/en not_active Withdrawn
- 2007-06-14 WO PCT/US2007/013940 patent/WO2007146367A2/en active Search and Examination
-
2008
- 2008-03-24 US US12/054,191 patent/US8677318B2/en not_active Expired - Fee Related
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7366768B2 (en) * | 1997-10-06 | 2008-04-29 | Verizon Business Global Llc | Deploying service modules among service nodes distributed in an intelligent network |
US6330689B1 (en) * | 1998-04-23 | 2001-12-11 | Microsoft Corporation | Server architecture with detection and recovery of failed out-of-process application |
US6286047B1 (en) * | 1998-09-10 | 2001-09-04 | Hewlett-Packard Company | Method and system for automatic discovery of network services |
US6901442B1 (en) * | 2000-01-07 | 2005-05-31 | Netiq Corporation | Methods, system and computer program products for dynamic filtering of network performance test results |
US20030167270A1 (en) * | 2000-05-25 | 2003-09-04 | Werme Paul V. | Resource allocation decision function for resource management architecture and corresponding programs therefor |
US7013461B2 (en) * | 2001-01-05 | 2006-03-14 | International Business Machines Corporation | Systems and methods for service and role-based software distribution |
US20050138084A1 (en) * | 2001-01-08 | 2005-06-23 | International Business Machines Corporation | Efficient application deployment on dynamic clusters |
US7464154B2 (en) * | 2001-05-18 | 2008-12-09 | Network Resonance, Inc. | System, method and computer program product for analyzing data from network-based structured message stream |
US20040103195A1 (en) * | 2002-11-21 | 2004-05-27 | International Business Machines Corporation | Autonomic web services hosting service |
US20050102665A1 (en) * | 2003-11-10 | 2005-05-12 | International Business Machines (Ibm) Corporation | Automatic parallel non-dependent component deployment |
US20080168424A1 (en) * | 2006-06-15 | 2008-07-10 | Ajay Mohindra | Management of composite software services |
Cited By (128)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080275935A1 (en) * | 2006-06-15 | 2008-11-06 | Ajay Mohindra | Method and apparatus for middleware assisted system integration in a federated environment |
US8191043B2 (en) | 2006-06-15 | 2012-05-29 | International Business Machines Corporation | On-demand composition and teardown of service infrastructure |
US7945671B2 (en) | 2006-06-15 | 2011-05-17 | International Business Machines Corporation | Method and apparatus for middleware assisted system integration in a federated environment |
US8677318B2 (en) | 2006-06-15 | 2014-03-18 | International Business Machines Corporation | Management of composite software services |
US20080168424A1 (en) * | 2006-06-15 | 2008-07-10 | Ajay Mohindra | Management of composite software services |
US20080244575A1 (en) * | 2007-03-30 | 2008-10-02 | Novell, Inc. | Tessellated virtual machines conditionally linked for common computing goals |
US8146080B2 (en) * | 2007-03-30 | 2012-03-27 | Novell, Inc. | Tessellated virtual machines conditionally linked for common computing goals |
US20080256538A1 (en) * | 2007-04-10 | 2008-10-16 | Novell, Inc. | Storage configurations for tessellated virtual machines |
US20080256535A1 (en) * | 2007-04-10 | 2008-10-16 | Novell, Inc. | Tessellated virtual machines for common computing goals |
US9262143B2 (en) * | 2007-05-25 | 2016-02-16 | International Business Machines Corporation | Method and apparatus for template-based provisioning in a service delivery environment |
US20080294777A1 (en) * | 2007-05-25 | 2008-11-27 | Alexei Karve | Method and apparatus for template-based provisioning in a service delivery environment |
US20090300184A1 (en) * | 2007-05-25 | 2009-12-03 | International Business Machines Corporation | Method and Apparatus for Template-Based Provisioning in a Service Delivery Environment |
US20080301637A1 (en) * | 2007-05-31 | 2008-12-04 | Stark Scott M | Profile service based deployment configuration |
US9009699B2 (en) | 2007-05-31 | 2015-04-14 | Red Hat, Inc. | Providing a POJO-based microcontainer for an application server |
US20080301629A1 (en) * | 2007-05-31 | 2008-12-04 | Stark Scott M | Integrating aspect oriented programming into the application server |
US8640146B2 (en) | 2007-05-31 | 2014-01-28 | Red Hat, Inc. | Providing extensive ability for describing a management interface |
US7886035B2 (en) * | 2007-05-31 | 2011-02-08 | Red Hat, Inc. | Profile service based deployment configuration |
US8327341B2 (en) | 2007-05-31 | 2012-12-04 | Red Hat, Inc. | Integrating aspect oriented programming into the application server |
US20080301627A1 (en) * | 2007-05-31 | 2008-12-04 | Red Hat, Inc. | Providing extensive ability for describing a management interface |
US20080301711A1 (en) * | 2007-05-31 | 2008-12-04 | Stark Scott M | Providing a POJO-based microcontainer for an application server |
US20080307415A1 (en) * | 2007-06-11 | 2008-12-11 | Novell, Inc. | Tessellated applications for user computing environments |
US8239505B2 (en) | 2007-06-29 | 2012-08-07 | Microsoft Corporation | Progressively implementing declarative models in distributed systems |
US8099494B2 (en) | 2007-06-29 | 2012-01-17 | Microsoft Corporation | Tuning and optimizing distributed systems with declarative models |
US20090055838A1 (en) * | 2007-08-23 | 2009-02-26 | Microsoft Corporation | Monitoring distributed applications |
US8230386B2 (en) | 2007-08-23 | 2012-07-24 | Microsoft Corporation | Monitoring distributed applications |
US20090165021A1 (en) * | 2007-10-23 | 2009-06-25 | Microsoft Corporation | Model-Based Composite Application Platform |
US20090157872A1 (en) * | 2007-10-23 | 2009-06-18 | Microsoft Corporation | Model-based composite application platform |
US8751626B2 (en) | 2007-10-23 | 2014-06-10 | Microsoft Corporation | Model-based composite application platform |
US8443347B2 (en) | 2007-10-26 | 2013-05-14 | Microsoft Corporation | Translating declarative models |
US8181151B2 (en) | 2007-10-26 | 2012-05-15 | Microsoft Corporation | Modeling and managing heterogeneous applications |
US8099720B2 (en) | 2007-10-26 | 2012-01-17 | Microsoft Corporation | Translating declarative models |
US8225308B2 (en) * | 2007-10-26 | 2012-07-17 | Microsoft Corporation | Managing software lifecycle |
US20090113437A1 (en) * | 2007-10-26 | 2009-04-30 | Microsoft Corporation | Translating declarative models |
US8306996B2 (en) | 2007-10-26 | 2012-11-06 | Microsoft Corporation | Processing model-based commands for distributed applications |
AU2009210699B2 (en) * | 2008-01-30 | 2013-05-23 | Microsoft Technology Licensing, Llc | Managing component programs within a service application |
US20090193439A1 (en) * | 2008-01-30 | 2009-07-30 | Microsoft Corporation | Managing component programs within a service application |
TWI385576B (en) * | 2008-01-30 | 2013-02-11 | Microsoft Corp | Managing component programs within a service application |
US8112771B2 (en) * | 2008-01-30 | 2012-02-07 | Microsoft Corporation | Managing component programs within a service application |
CN101876895A (en) * | 2009-04-28 | 2010-11-03 | 中国科学院计算技术研究所 | Package integrated method of application software under grid computing environment |
US8438251B2 (en) | 2009-10-09 | 2013-05-07 | Oracle International Corporation | Methods and systems for implementing a virtual storage network |
US20110088044A1 (en) * | 2009-10-09 | 2011-04-14 | Oracle International Corporation | Methods and systems for implementing a logical programming model |
US20110087848A1 (en) * | 2009-10-09 | 2011-04-14 | Oracle International Corporation | Methods and systems for implementing a virtual storage network |
US8898621B2 (en) * | 2009-10-09 | 2014-11-25 | Oracle International Corporation | Methods and systems for implementing a logical programming model |
US10380525B2 (en) | 2009-11-02 | 2019-08-13 | International Business Machines Corporation | Comparing utility and warranty of services |
US10713606B2 (en) | 2009-11-02 | 2020-07-14 | International Business Machines Corporation | Comparing utility and warranty of services |
US20110106722A1 (en) * | 2009-11-02 | 2011-05-05 | International Business Machines Corporation | Comparing utility and warranty of services |
US9483746B2 (en) * | 2009-11-02 | 2016-11-01 | International Business Machines Corporation | Comparing utility and warranty of services |
US8631414B2 (en) | 2010-09-15 | 2014-01-14 | Qualcomm Incorporated | Distributed resource management in a portable computing device |
US8806502B2 (en) | 2010-09-15 | 2014-08-12 | Qualcomm Incorporated | Batching resource requests in 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 |
US20120066391A1 (en) * | 2010-09-15 | 2012-03-15 | Qualcomm Incorporated | System and method for managing resources of 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 |
US10419281B2 (en) * | 2010-12-01 | 2019-09-17 | Xieon Networks S.À.R.L. | Method and device for service provisioning in a communication network |
US20140003287A1 (en) * | 2010-12-01 | 2014-01-02 | Nokia Siemens Networks Oy | Method and device for service provisioning in a communication network |
KR101295706B1 (en) | 2010-12-08 | 2013-08-16 | 한국전자통신연구원 | Apparatus for managing of component service and method for detecting error on component service-based business application |
US9026837B2 (en) * | 2011-09-09 | 2015-05-05 | Microsoft Technology Licensing, Llc | Resource aware placement of applications in clusters |
US20130067267A1 (en) * | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Resource aware placement of applications in clusters |
US10755208B2 (en) * | 2012-08-15 | 2020-08-25 | Sap Se | Methods, apparatus and system for mediating services |
US20140052483A1 (en) * | 2012-08-15 | 2014-02-20 | Werner Laber | Methods, apparatus and system for mediating services |
CN102904745A (en) * | 2012-09-05 | 2013-01-30 | 上海寰创通信科技股份有限公司 | Service lifecycle management and monitoring method in network management system based on java management extension (JMX) |
CN103309746A (en) * | 2013-05-13 | 2013-09-18 | 百度在线网络技术(北京)有限公司 | Method and device for building investigation environment |
EP3059900A4 (en) * | 2013-11-15 | 2016-11-02 | Zte Corp | Network service template management method and device |
US9361168B1 (en) | 2014-03-25 | 2016-06-07 | Amazon Technologies, Inc. | Accessing resources across a network boundary |
US9678844B1 (en) * | 2014-03-25 | 2017-06-13 | Amazon Technologies, Inc. | State-tracked testing across network boundaries |
US10795791B2 (en) | 2014-03-25 | 2020-10-06 | Amazon Technologies, Inc. | State-tracked testing across network boundaries |
US11934818B2 (en) | 2014-06-02 | 2024-03-19 | Google Llc | Cloud orchestration engine |
US11442716B2 (en) * | 2014-06-02 | 2022-09-13 | Google Llc | Cloud orchestration engine |
US9223558B2 (en) | 2014-06-02 | 2015-12-29 | International Business Machines Corporation | Software installation and configuration |
US9223560B2 (en) | 2014-06-02 | 2015-12-29 | International Business Machines Corporation | Software installation and configuration |
CN106537338A (en) * | 2014-07-18 | 2017-03-22 | 微软技术许可有限责任公司 | Self-extending cloud |
US10757197B2 (en) * | 2014-07-18 | 2020-08-25 | Microsoft Technology Licensing, Llc | Self-extending cloud |
US20160021197A1 (en) * | 2014-07-18 | 2016-01-21 | Microsoft Corporation | Self-Extending Cloud |
CN105592130A (en) * | 2014-09-26 | 2016-05-18 | 华为技术有限公司 | Service deployment method and device, and service management method |
US20160127478A1 (en) * | 2014-10-29 | 2016-05-05 | At&T Intellectual Property I, L.P. | Creating Services Using Service Modules |
US9882993B2 (en) * | 2014-10-29 | 2018-01-30 | At&T Intellectual Property I, L.P. | Creating services using service modules |
US20160124739A1 (en) * | 2014-10-30 | 2016-05-05 | Google Inc. | Minimizing Image Copying During Partition Updates |
US20170262276A1 (en) * | 2014-10-30 | 2017-09-14 | Google Inc. | Minimizing Image Copying During Partition Updates |
US9778926B2 (en) * | 2014-10-30 | 2017-10-03 | Google Inc. | Minimizing image copying during partition updates |
US10055216B2 (en) * | 2014-10-30 | 2018-08-21 | Google Llc | Minimizing image copying during partition updates |
US10033598B2 (en) | 2014-12-05 | 2018-07-24 | Accenture Global Services Limited | Type-to-type analysis for cloud computing technical components with translation through a reference type |
US11303539B2 (en) * | 2014-12-05 | 2022-04-12 | Accenture Global Services Limited | Network component placement architecture |
US20160164746A1 (en) * | 2014-12-05 | 2016-06-09 | Accenture Global Services Limited | Network component placement architecture |
US10148528B2 (en) | 2014-12-05 | 2018-12-04 | Accenture Global Services Limited | Cloud computing placement and provisioning architecture |
US10148527B2 (en) | 2014-12-05 | 2018-12-04 | Accenture Global Services Limited | Dynamic network component placement |
US10547520B2 (en) | 2014-12-05 | 2020-01-28 | Accenture Global Services Limited | Multi-cloud provisioning architecture with template aggregation |
US10033597B2 (en) | 2014-12-05 | 2018-07-24 | Accenture Global Services Limited | Type-to-type analysis for cloud computing technical components with translation scripts |
US11902103B2 (en) * | 2015-12-15 | 2024-02-13 | At&T Intellectual Property I, L.P. | Method and apparatus for creating a custom service |
US11463321B2 (en) * | 2015-12-15 | 2022-10-04 | At&T Intellectual Property I, L.P. | Method and apparatus for creating a custom service |
US20230033174A1 (en) * | 2015-12-15 | 2023-02-02 | At&T Intellectual Property I, L.P. | Method and apparatus for creating a custom service |
US20220368649A1 (en) * | 2016-09-02 | 2022-11-17 | Pivotal Software, Inc. | On-demand resource provisioning |
US11665107B2 (en) * | 2016-09-02 | 2023-05-30 | Pivotal Software, Inc. | On-demand resource provisioning |
US11425053B2 (en) * | 2016-09-02 | 2022-08-23 | Pivotal Software, Inc. | On-demand resource provisioning |
US11082361B2 (en) * | 2016-09-02 | 2021-08-03 | Pivotal Software, Inc. | On-demand resource provisioning |
US20190260634A1 (en) * | 2016-11-29 | 2019-08-22 | Huawei Technologies Co., Ltd. | Service state transition method and apparatus |
US10938630B2 (en) * | 2016-11-29 | 2021-03-02 | Huawei Technologies Co., Ltd. | Service state transition method and apparatus |
US11146620B2 (en) | 2017-09-14 | 2021-10-12 | Cisco Technology, Inc. | Systems and methods for instantiating services on top of services |
WO2019060228A1 (en) * | 2017-09-14 | 2019-03-28 | Cisco Technology, Inc. | Systems and methods for instantiating services on top of services |
CN111344668A (en) * | 2017-11-09 | 2020-06-26 | 国际商业机器公司 | Dynamic selection of deployment configuration for software applications |
JP7257728B2 (en) | 2017-11-09 | 2023-04-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, computer program and computer system for dynamic selection of deployment configurations of software applications |
US10782953B2 (en) * | 2017-11-09 | 2020-09-22 | International Business Machines Corporation | Dynamic selection of deployment configurations of software applications |
JP2021502622A (en) * | 2017-11-09 | 2021-01-28 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Methods, computer programs and computer systems for dynamic selection of software application deployment configurations |
CN112114858A (en) * | 2019-06-19 | 2020-12-22 | 和硕联合科技股份有限公司 | Method for managing software service and server |
US11050643B2 (en) | 2019-06-19 | 2021-06-29 | Pegatron Corporation | Method for managing software service, and server |
US11093378B2 (en) | 2019-06-27 | 2021-08-17 | Capital One Services, Llc | Testing agent for application dependency discovery, reporting, and management tool |
US11675692B2 (en) | 2019-06-27 | 2023-06-13 | Capital One Services, Llc | Testing agent for application dependency discovery, reporting, and management tool |
US11379292B2 (en) | 2019-06-27 | 2022-07-05 | Capital One Services, Llc | Baseline modeling for application dependency discovery, reporting, and management tool |
US11354222B2 (en) | 2019-06-27 | 2022-06-07 | Capital One Services, Llc | Discovery crawler for application dependency discovery, reporting, and management tool |
US11221854B2 (en) | 2019-06-27 | 2022-01-11 | Capital One Services, Llc | Dependency analyzer in application dependency discovery, reporting, and management tool |
US10747544B1 (en) | 2019-06-27 | 2020-08-18 | Capital One Services, Llc | Dependency analyzer in application dependency discovery, reporting, and management tool |
US11556459B2 (en) | 2019-06-27 | 2023-01-17 | Capital One Services, Llc | Intelligent services for application dependency discovery, reporting, and management tool |
US10922083B2 (en) | 2019-06-27 | 2021-02-16 | Capital One Services, Llc | Determining problem dependencies in application dependency discovery, reporting, and management tool |
US12111752B2 (en) | 2019-06-27 | 2024-10-08 | Capital One Services, Llc | Intelligent services for application dependency discovery, reporting, and management tool |
US10915428B2 (en) | 2019-06-27 | 2021-02-09 | Capital One Services, Llc | Intelligent services and training agent for application dependency discovery, reporting, and management tool |
US11614943B2 (en) | 2019-06-27 | 2023-03-28 | Capital One Services, Llc | Determining problem dependencies in application dependency discovery, reporting, and management tool |
US11620211B2 (en) | 2019-06-27 | 2023-04-04 | Capital One Services, Llc | Discovery crawler for application dependency discovery, reporting, and management tool |
US10642719B1 (en) | 2019-06-27 | 2020-05-05 | Capital One Services, Llc | Intelligent services for application dependency discovery, reporting, and management tool |
US11650909B2 (en) | 2019-06-27 | 2023-05-16 | Capital One Services, Llc | Intelligent services and training agent for application dependency discovery, reporting, and management tool |
US11663055B2 (en) | 2019-06-27 | 2023-05-30 | Capital One Services, Llc | Dependency analyzer in application dependency discovery, reporting, and management tool |
US12099438B2 (en) | 2019-06-27 | 2024-09-24 | Capital One Services, Llc | Testing agent for application dependency discovery, reporting, and management tool |
US11354131B2 (en) | 2019-06-27 | 2022-06-07 | Capital One Services, Llc | Determining problem dependencies in application dependency discovery, reporting, and management tool |
US11868237B2 (en) | 2019-06-27 | 2024-01-09 | Capital One Services, Llc | Intelligent services for application dependency discovery, reporting, and management tool |
US10521235B1 (en) | 2019-06-27 | 2019-12-31 | Capital One Services, Llc | Determining problem dependencies in application dependency discovery, reporting, and management tool |
US10929278B2 (en) | 2019-06-27 | 2021-02-23 | Capital One Services, Llc | Intelligent services for application dependency discovery, reporting, and management tool |
US11966324B2 (en) | 2019-06-27 | 2024-04-23 | Capital One Services, Llc | Discovery crawler for application dependency discovery, reporting, and management tool |
US12079668B2 (en) | 2019-06-27 | 2024-09-03 | Capital One Services, Llc | Dependency analyzer in application dependency discovery, reporting, and management tool |
CN110825391A (en) * | 2019-10-31 | 2020-02-21 | 北京金山云网络技术有限公司 | Service management method, device, electronic equipment and storage medium |
CN115190010A (en) * | 2022-07-01 | 2022-10-14 | 北京友友天宇系统技术有限公司 | Distributed recommendation method and device based on software service dependency relationship |
Also Published As
Publication number | Publication date |
---|---|
EP2035943A2 (en) | 2009-03-18 |
US8677318B2 (en) | 2014-03-18 |
US20080168424A1 (en) | 2008-07-10 |
CN101454766B (en) | 2012-10-03 |
EP2035943A4 (en) | 2012-11-21 |
WO2007146367A3 (en) | 2008-09-18 |
CN101454766A (en) | 2009-06-10 |
WO2007146367A2 (en) | 2007-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8677318B2 (en) | Management of composite software services | |
US7496893B2 (en) | Method for no-demand composition and teardown of service infrastructure | |
US11038778B2 (en) | Methods and systems that provision distributed applications that invoke functions provided by a distributed-function-as-a-service feature | |
US11170316B2 (en) | System and method for determining fuzzy cause and effect relationships in an intelligent workload management system | |
US7519711B2 (en) | Method for middleware assisted system integration in a federated environment | |
US8065676B1 (en) | Automated provisioning of virtual machines for a virtual machine buffer pool and production pool | |
US9825877B2 (en) | Method and system for policy based lifecycle management of virtual software appliances | |
US8141090B1 (en) | Automated model-based provisioning of resources | |
US10104053B2 (en) | System and method for providing annotated service blueprints in an intelligent workload management system | |
US7950007B2 (en) | Method and apparatus for policy-based change management in a service delivery environment | |
Lublinsky et al. | A kubernetes ‘bridge’operator between cloud and external resources | |
Birkenheuer et al. | Infrastructure Federation Through Virtualized Delegation of Resources and Services: DGSI: Adding Interoperability to DCI Meta Schedulers | |
Lavacca | Scheduling Jobs on Federation of Kubernetes Clusters | |
US20240330069A1 (en) | Agentless gitops and custom resources for infrastructure orchestration and management | |
woon Ahn et al. | Mirra: Rule-based resource management for heterogeneous real-time applications running in cloud computing infrastructures | |
Menouer et al. | KOptim: Kubernetes Optimization Framework | |
Ibrahim et al. | Grid Maintenance: Challenges and Existing Models | |
Ashok et al. | Grid Computing--the Hasty Computing to Access Internet. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MOHINDRA, AJAY;NAIK, VIJAY K.;REEL/FRAME:017856/0320 Effective date: 20060607 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |