The present invention relates to computing systems, and, more particularly, to techniques for management of such computing systems.
Most Internet service sites such as electronic commerce (e-commerce) web sites have a multi-tier computing system architecture that partitions the processing of web requests into tiers or stages. Such a multi-tier architecture may, for example, include an edge server stage, an Hypertext Transport Protocol (HTTP) server stage, an application server stage, and a database server stage.
Management systems are typically used to monitor the performance of the computing system and to cause actions to be taken to address performance problems. However, existing management solutions employ only a one-tier management approach. For example, an existing management system provides for dynamic capacity provisioning of the application server tier. However, such an approach does not take into account more than one tier of a multi-tier architecture, nor does it take into account interaction between tiers such as between the application server tier and some other tier.
By way of example, a resource bottleneck can exist in a backend tier such as the database tier. However, since the existing management system employs the one-tier management approach, interaction between the application server tier and the database server tier is not considered. Further, as a result, there is no ability provided by existing management techniques to manage one tier from another tier.
Accordingly, it would be desirable to provide a management approach that is able to take into account multiple tiers of a computing system architecture, and interactions there between, by managing one or more tiers of the computing system from one or more other tiers of the computing system.
Principles of the invention provide a management approach that is able to take into account multiple tiers of a computing system architecture, and interactions there between, by managing one or more tiers of the computing system from one or more other tiers of the computing system (i.e., provide cross-tier management).
For example, in one aspect of the invention, a method for managing a computing system, wherein the computing system includes a first tier and at least a second tier, wherein the first tier and the second tier are configured to respond to a request received by the computing system, includes the steps of monitoring performance of the second tier from the first tier, and sending one or more management commands from the first tier to the second tier based on the monitored performance.
The first tier may be an application server tier of the computing system, and the second tier may be a database server tier of the computing system.
The second tier may include a node agent for receiving the one or more management commands such that management control in the first tier extends to the second tier. The second tier may include an interface for abstracting the one or more management commands with respect to one or more provider-specific database management plug-in modules. The first tier and the second tier may implement a management model including a manageability extension layer, a manageability abstraction layer and a managed resource layer.
In a second aspect of the invention, a method for managing a computing system, wherein the computing system includes a first tier and at least a second tier, wherein the first tier and the second tier are configured to respond to a request received by the computing system, includes the steps of sending performance data from the second tier to the first tier, and receiving one or more management commands from the first tier at the second tier based on the monitored performance.
In a third aspect of the invention, apparatus for managing a computing system, wherein the computing system includes a first tier and at least a second tier, wherein the first tier and the second tier are configured to respond to a request received by the computing system, comprises: a node agent at the second tier configured to: (i) send performance data from the second tier to the first tier; and (ii) receive one or more management commands from the first tier at the second tier based on the monitored performance; and an interface at the second tier configured to abstract the one or more management commands with respect to one or more provider-specific database management plug-in modules.
In a fourth aspect of the invention, a method for managing one or more goals in a system that includes two or more tiers, whereby work progressively flows from tier-to-tier of the system, includes the steps of communicating one or more directives from a higher-level tier to a lower-level tier, and converting the one or more directives at the lower-level tier into instructions executable by a management component specific to the lower-level tier so as to effect the one or more system goals.
For example, work may progressively flow from a first tier to a second tier and subsequently from the second tier to at least a third tier. Accordingly, the communicating step and the converting step may further include communicating one or more directives from the first tier to the second tier, converting the one or more directives at the second tier into instructions executable by a management component specific to the second tier, communicating one or more directives from the second tier to the third tier, and converting the one or more directives at the third tier into instructions executable by a management component specific to the third tier.
In a fifth aspect of the invention, a system for providing cross-tier management of resources in a computer system includes the following layers. A manageability extension layer includes node agent code on a managed resource tier for receiving one or more control and configuration commands for the managed resource from an application server tier. A manageability abstraction layer includes code for interacting with a management interface and thereby defining a service provider interface for abstracting the one or more control and configuration commands. A managed resource layer includes resource-specific code for controlling a managed resource within the managed resource layer.
Advantageously, management principles of the invention may consider interaction between different tiers of the computing system architecture. Furthermore, principles of the invention may also provide the ability to change resource configurations across multiple tiers.
These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.
It is to be understood that the present invention is not limited to any particular multi-tier computing system architecture. Rather, the invention is more generally applicable to any multi-tier computing system architecture in which it would be desirable to provide a management approach that is able to manage one or more tiers of the computing system from one or more other tiers of the computing system.
Before describing management techniques of the invention, we provide a general description of an illustrative multi-tier computing system architecture.
In general, client requests enter the first tier and are routed to an HTTP server. Some fractions of the HTTP requests also require processing by application servers. A fraction of the requests processed by application servers also require services from a database server. Because inter-tier interaction is synchronous, threads/processes in upstream tiers are blocked while waiting for the completion of processing in downstream tiers. Thus, requests may simultaneously consume resources in the HTTP, application, and database server nodes. After processing by some or all of the tiers of the multi-tier computing system, a response to the request is sent to the client.
Principles of the invention provide techniques for enabling cross-tier management of resources in a multi-tier computing system. It is to be understood that principles of the invention identify a managed tier (e.g., database tier 108 in
Management techniques of the invention employ a multi-layer management model. In one embodiment, as illustrated in
As will be illustrated below in the context of
In one embodiment, the node agent code on the managed resource tier includes performance reporting code for sending performance information regarding the managed resource back to the application server tier. While the invention is not limited to any particular management environment, it is particularly well suited for use in a WebSphere™ Deployment Management environment (IBM Corporation of Armonk, N.Y.).
In accordance with a WebSphere™ environment, principles of the invention provide a cross-tier workload management methodology that is Java application server centric. For ease of explaining the concepts, we use a WebSphere™ application server (WAS) as the application tier and DB2™ (IBM Corporation of Armonk, N.Y.) as the backend tier. However, the concepts introduced herein can be easily applied to other application servers and other backend tiers.
As shown, an extended WebSphere™ cell 210 includes an on demand router 212, an application server cluster 214 including WAS nodes 1, 2 and 3 with respective node agents 215-1, 215-2, and 215-3, administrator console 216, client 218, and deployment manager 220. Cell 210 also includes managed database (DB) node 222 including database 1, database 2, DB controller 224, plug-in SPI 226, node agent 228, operating system 230, and plug-ins 232.
In general, a request enters the cell at router 212 and is routed to a particular WAS node in the server cluster 214. The WAS node that handles the request may be selected based on the priority of the request (e.g., high priority requests going to WAS nodes 1 or, and low priority requests going to WAS node 3). Depending on the nature of the request, the WAS node may require assistance of a database server node (e.g., Database 1 or Database 2) in order to respond to the request. Again, the database server node may be selected based on the priority associated with the request.
Typically, WebSphere™ node agents (i.e., 215-1 through 215-3) are used as management (configuration and control) servers between WAS nodes and the WebSphere™ deployment manager 220 in a WebSphere extended deployment or network deployment setup. Note that block 216 is a user interface where a system administrator sets management goals and parameters. Block 218 represents software code that executes management functions.
In accordance with illustrative principles of the invention, the WebSphere™ node agent is extended for other non-application tiers (e.g., the managed DB tier, the storage systems, etc.). Such extension is realized in cell 210 of
It is to be understood that while
Returning to the embodiment of
The management extensions to the node agent provide an abstract interface, to a controlling entity such as the WebSphere™ Deployment manager 220, independent of the underlying virtualization technologies such as OS WLM (e.g., Linux CKRM, AIX WLM, HP-UX WLM, Solaris Resource Manager) and partitioning technologies such as dynamic LPAR, Linux Xen, Meiosys Metacluster, etc. CKRM refers to class-based kernel resource management (http://ckrm.sourceforge.net/), AIX WLM refers to a workload management system (http://www.redboods,ibm.com/abstracts/sg245977.html), dynamic LPAR refers to dynamic logical partitions (http://www-03.ibm.com/servers/eserver/iseries/1par/) and Linux Xen is described at http://kerneltrap.org/node/4168. These are only examples of plug-ins that may be used in the WebSphere™ cell.
The implementation of this interface may be based on open standards such as Java Management Extensions or Web Services Distributed Management (WS-DM).
As shown in
In the case of WebSphere, the preferred management protocol is JMX. This layer also has the processing capability to determine which plug-in of the managed resource layer has to be invoked to achieve control.
Furthermore, the abstraction layer is the layer that serves to hide the implementation details of the resource so that an entity (e.g., system administrator or processing node) that requests some action need only request the action without needing to know how the action is accomplished. For example, if an entity wants to increase the CPU share 10% for an application, it only needs to issue a generic command such as “increase CPU 10%.” The abstraction layer translates this command into an executable command according to the respective grammar understood by the different resources, i.e., since the actual command for plug-in Linux CKRM would be different than the actual command for plug-in AIX WLM.
The managed resource layer contains the implementation of technology specific “glue code” to provide the actual control logic (the glue code refers to the actual command understood by the plug-in). That is, the managed layer contains the resource specific logic to implement the actual control. In
An example of configuration and control could be creating classes for the various database instances in the OS WLM and then creating rules for classifying the processes belonging to these instances into the proper class and applying the proper amount of resource (CPU, IO, memory) shares to the classes based on a request from the controlling entity.
Again, it is to be understood that while
Further, it is to be understood that the individual components/steps may be implemented on one such computer system, or more preferably, on more than one such computer system. In the case of an implementation on a distributed system, the individual computer systems and/or devices may be connected via a suitable network, e.g., the Internet or World Wide Web. However, the system may be realized via private or local networks. The invention is not limited to any particular network.
As shown, the computer system 300 may be implemented in accordance with a processor 302, a memory 304, I/O devices 306, and a network interface 308, coupled via a computer bus 310 or alternate connection arrangement.
It is to be appreciated that the term “processor” as used herein is intended to include any processing device, such as, for example, one that includes a CPU (central processing unit) and/or other processing circuitry. It is also to be understood that the term “processor” may refer to more than one processing device and that various elements associated with a processing device may be shared by other processing devices.
The term “memory” as used herein is intended to include memory associated with a processor or CPU, such as, for example, RAM, ROM, a fixed memory device (e.g., hard drive), a removable memory device (e.g., diskette), flash memory, etc.
In addition, the phrase “input/output devices” or “I/O devices” as used herein is intended to include, for example, one or more input devices (e.g., keyboard, mouse, etc.) for entering data to the processing unit, and/or one or more output devices (e.g., speaker, display, etc.) for presenting results associated with the processing unit.
Still further, the phrase “network interface” as used herein is intended to include, for example, one or more transceivers to permit the computer system to communicate with another computer system via an appropriate communications protocol.
Accordingly, software components including instructions or code for performing the methodologies described herein may be stored in one or more of the associated memory devices (e.g., ROM, fixed or removable memory) and, when ready to be utilized, loaded in part or in whole (e.g., into RAM) and executed by a CPU.
It is to be further appreciated that the present invention also comprises techniques for providing cross-tier management services.
By way of example, a service provider agrees (e.g., via a service level agreement or some informal agreement or arrangement) with a service customer to provide cross-tier management services. That is, by way of one example only, the service provider may host the customer's web site and associated applications (e.g., e-commerce applications). Then, in accordance with terms of the contract between the service provider and the service customer, the service provider provides cross-tier management services which may comprise one or more of the methodologies of the invention described herein.
Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be made by one skilled in the art without departing from the scope or spirit of the invention.
This application is a continuation of U.S. application Ser. No. 11/479,511 filed on Jun. 30, 2006, the disclosure of which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
6253228 | Ferris et al. | Jun 2001 | B1 |
6377993 | Brandt et al. | Apr 2002 | B1 |
6845397 | Lavian et al. | Jan 2005 | B1 |
6859882 | Fung | Feb 2005 | B2 |
6950848 | Yousefi'zadeh | Sep 2005 | B1 |
6976054 | Lavian et al. | Dec 2005 | B1 |
7032119 | Fung | Apr 2006 | B2 |
7058826 | Fung | Jun 2006 | B2 |
7134011 | Fung | Nov 2006 | B2 |
7143153 | Black et al. | Nov 2006 | B1 |
7194664 | Fung et al. | Mar 2007 | B1 |
7212574 | Abrams et al. | May 2007 | B2 |
7237129 | Fung | Jun 2007 | B2 |
7272735 | Fung | Sep 2007 | B2 |
7484111 | Fung | Jan 2009 | B2 |
7512822 | Fung | Mar 2009 | B2 |
7533283 | Fung | May 2009 | B2 |
7552350 | Fung | Jun 2009 | B2 |
7558858 | Eslambolchi et al. | Jul 2009 | B1 |
7558976 | Fung | Jul 2009 | B2 |
7562239 | Fung | Jul 2009 | B2 |
RE40866 | Fung | Aug 2009 | E |
7702739 | Cheng et al. | Apr 2010 | B1 |
7822967 | Fung | Oct 2010 | B2 |
8074092 | Fung | Dec 2011 | B2 |
20010037374 | Shrum et al. | Nov 2001 | A1 |
20020004912 | Fung | Jan 2002 | A1 |
20020004913 | Fung | Jan 2002 | A1 |
20020004915 | Fung | Jan 2002 | A1 |
20020007464 | Fung | Jan 2002 | A1 |
20020052941 | Patterson | May 2002 | A1 |
20020062454 | Fung | May 2002 | A1 |
20020073189 | Koontz et al. | Jun 2002 | A1 |
20020083170 | Collazo | Jun 2002 | A1 |
20020174214 | Carl et al. | Nov 2002 | A1 |
20030023505 | Eglen et al. | Jan 2003 | A1 |
20030078960 | Murren et al. | Apr 2003 | A1 |
20030172362 | Mack-Crane et al. | Sep 2003 | A1 |
20030188208 | Fung | Oct 2003 | A1 |
20030200473 | Fung | Oct 2003 | A1 |
20030208638 | Abrams et al. | Nov 2003 | A1 |
20030229623 | Chang et al. | Dec 2003 | A1 |
20040015600 | Tiwary et al. | Jan 2004 | A1 |
20040030739 | Yousefi'zadeh | Feb 2004 | A1 |
20050021742 | Yemini et al. | Jan 2005 | A1 |
20050021754 | Alda et al. | Jan 2005 | A1 |
20050049901 | Diao et al. | Mar 2005 | A1 |
20050086645 | Diao et al. | Apr 2005 | A1 |
20050108582 | Fung | May 2005 | A1 |
20050172161 | Cruz et al. | Aug 2005 | A1 |
20050182843 | Reistad et al. | Aug 2005 | A1 |
20050268063 | Diao et al. | Dec 2005 | A1 |
20050273643 | Carroll et al. | Dec 2005 | A1 |
20050278381 | Diao et al. | Dec 2005 | A1 |
20050283539 | Betts et al. | Dec 2005 | A1 |
20060015512 | Alon et al. | Jan 2006 | A1 |
20060210051 | Tomisawa | Sep 2006 | A1 |
20060248324 | Fung | Nov 2006 | A1 |
20060248325 | Fung | Nov 2006 | A1 |
20060248358 | Fung | Nov 2006 | A1 |
20060248359 | Fung | Nov 2006 | A1 |
20060248360 | Fung | Nov 2006 | A1 |
20060248361 | Fung | Nov 2006 | A1 |
20060253717 | Fung | Nov 2006 | A1 |
20060259797 | Fung | Nov 2006 | A1 |
20060265608 | Fung | Nov 2006 | A1 |
20060265609 | Fung | Nov 2006 | A1 |
20060277606 | Yunus et al. | Dec 2006 | A1 |
20070101173 | Fung | May 2007 | A1 |
20070240006 | Fung | Oct 2007 | A1 |
20070245165 | Fung | Oct 2007 | A1 |
20070282988 | Bornhoevd et al. | Dec 2007 | A1 |
20080097961 | Dias et al. | Apr 2008 | A1 |
20080215729 | Diao et al. | Sep 2008 | A1 |
20090006445 | Shemenzon et al. | Jan 2009 | A1 |
20090144568 | Fung | Jun 2009 | A1 |
Entry |
---|
“Class-Based Kernel Resource Management,” http://ckrm.sourceforge.net/, 2006, pp. 1-3. |
“AIX 5L Workload Manager (WLM),” IBM, Redbooks, International Technical Support Organization, www.redbooks.ibm.com/abstracts/sg245977.html, Jun. 2001, 354 pages. |
A. Dave et al., “IBM eServer® i5 and iSeries™ Logical Partitioning FAQs,” IBM, http://www-03.ibm.com/servers/eserver/iseries/lpar/, Jun. 2004, pp. 1-12, Version 1.00. |
“Linux: Xen 2.0 Released,” KernelTrap.org, http://kerneltrap.org/node/4168, Nov. 2004, pp. 1-3. |
D.A. Menascé et al., “Preserving QoS of E-Commerce Sites Through Self-Tuning: A Performance Model Approach,” Proceedings of the ACM Conference Electronic Commerce, Oct. 2001, 11 pages., Florida. |
B. Urgaonkar et al., “Dynamic Provisioning of Multi-Tier Internet Applications,” Proceedings of the 2nd IEEE International Conference on Autonomic Computing (ICAC-05), 2005, pp. 1-12. |
Y. Diao et al., “Incorporating Cost of Control Into the Design of a Load Balancing Controller,” Proceedings of IEEE Real-Time and Embedded Technology and Application Systems Symposium, May 2004, pp. 376-387, Canada. |
Y. Diao et al., “Using MIMO Linear Control for Load Balancing in Computing Systems,” Proceedings of the American Control Conference, Jun. 2004, pp. 2045-2050, Boston. |
Y. Diao et al., “Comparative Studies of Load Balancing with Control and Optimization Techniques,” Proceedings of American Control Conference, Jun. 2005, pp. 1484-1490, Oregon. |
Number | Date | Country | |
---|---|---|---|
20080215729 A1 | Sep 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11479511 | Jun 2006 | US |
Child | 12119828 | US |