U.S. patent application number 11/479511 was filed with the patent office on 2008-01-03 for method and apparatus for cross-tier management in multi-tier computing system architecture.
This patent application is currently assigned to International Business Machines Corporation. Invention is credited to Yixin Diao, Hidayatullah Habeebullah Shaikh, Maheswaran Surendra.
Application Number | 20080005317 11/479511 |
Document ID | / |
Family ID | 38878117 |
Filed Date | 2008-01-03 |
United States Patent
Application |
20080005317 |
Kind Code |
A1 |
Diao; Yixin ; et
al. |
January 3, 2008 |
Method and apparatus for cross-tier management in multi-tier
computing system architecture
Abstract
Techniques are disclosed for providing cross-tier management in
a multi-tier computing system architecture. For example, 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. In one embodiment, 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.
Inventors: |
Diao; Yixin; (White Plains,
NY) ; Shaikh; Hidayatullah Habeebullah; (Mohegan
Lake, NY) ; Surendra; Maheswaran; (Croton-on-Hudson,
NY) |
Correspondence
Address: |
Ryan, Mason & Lewis, LLP
90 Forest Avenue
Locust Valley
NY
11560
US
|
Assignee: |
International Business Machines
Corporation
Armonk
NY
|
Family ID: |
38878117 |
Appl. No.: |
11/479511 |
Filed: |
June 30, 2006 |
Current U.S.
Class: |
709/224 ;
714/E11.207 |
Current CPC
Class: |
H04L 41/00 20130101 |
Class at
Publication: |
709/224 |
International
Class: |
G06F 15/173 20060101
G06F015/173 |
Claims
1. A method for managing a computing system, wherein the computing
system comprises 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, the method comprising 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.
2. The method of claim 1, wherein the first tier comprises an
application server tier of the computing system.
3. The method of claim 1, wherein the second tier comprises a
database server tier of the computing system.
4. The method of claim 1, wherein the second tier comprises a node
agent for receiving the one or more management commands such that
management control in the first tier extends to the second
tier.
5. The method of claim 1, wherein the second tier comprises an
interface for abstracting the one or more management commands with
respect to one or more provider-specific database management
plug-in modules.
6. The method of claim 1, wherein the first tier and the second
tier implement a management model comprising a manageability
extension layer, a manageability abstraction layer and a managed
resource layer.
7. A method for managing a computing system, wherein the computing
system comprises 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, the method comprising 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.
8. The method of claim 7, wherein the first tier comprises an
application server tier of the computing system.
9. The method of claim 7, wherein the second tier comprises a
database server tier of the computing system.
10. The method of claim 7, wherein the second tier comprises a node
agent for receiving the one or more management commands such that
management control in the first tier extends to the second
tier.
11. The method of claim 7, wherein the second tier comprises an
interface for abstracting the one or more management commands with
respect to one or more provider-specific database management
plug-in modules.
12. The method of claim 7, wherein the first tier and the second
tier implement a management model comprising a manageability
extension layer, a manageability abstraction layer and a managed
resource layer.
13. Apparatus for managing a computing system, wherein the
computing system comprises 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; the
apparatus comprising: 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.
14. The apparatus of claim 13, wherein the first tier comprises an
application server tier of the computing system.
15. The apparatus of claim 13, wherein the second tier comprises a
database server tier of the computing system.
16. A method for managing one or more goals in a system that
comprises two or more tiers, whereby work progressively flows from
tier-to-tier of the system, the method comprising 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.
17. The method of claim 16, wherein work progressively flows from a
first tier to a second tier and subsequently from the second tier
to at least a third tier.
18. The method of claim 17, wherein the communicating step and the
converting step further comprise: communicating one or more
directives from the first tier to the second tier; and converting
the one or more directives at the second tier into instructions
executable by a management component specific to the second
tier.
19. The method of claim 18, wherein the communicating step and the
converting step further comprise: 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.
20. A system for providing cross-tier management of resources in a
computer system, comprising: a manageability extension layer
comprising 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 comprising code for interacting with a management
interface and thereby defining a service provider interface for
abstracting the one or more control and configuration commands; and
a managed resource layer comprising resource-specific code for
controlling a managed resource within the managed resource layer.
Description
FIELD OF THE INVENTION
[0001] The present invention relates to computing systems, and,
more particularly, to techniques for management of such computing
systems.
BACKGROUND OF THE INVENTION
[0002] 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.
[0003] 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.
[0004] 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.
[0005] 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.
SUMMARY OF THE INVENTION
[0006] 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).
[0007] 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.
[0008] 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.
[0009] 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.
[0010] 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.
[0011] 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.
[0012] 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.
[0013] 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.
[0014] 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.
[0015] 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.
[0016] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] FIG. 1 illustrates a multi-tier computing system
architecture in which cross-tier management techniques may be
implemented, according to an embodiment of the invention.
[0018] FIG. 2A illustrates a cross-tier management model, according
to an embodiment of the invention.
[0019] FIG. 2B illustrates a cross-tier management methodology for
managing a database tier from an application server tier, according
to an embodiment of the invention.
[0020] FIG. 3 illustrates a computer system wherein cross-tier
management techniques may be implemented, according to an
embodiment of the invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0021] 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.
[0022] Before describing management techniques of the invention, we
provide a general description of an illustrative multi-tier
computing system architecture.
[0023] FIG. 1 depicts such a multi-tier computing system
architecture. Each tier comprises one or more nodes (e.g., hardware
entities) that are dedicated to a specific kind of processing. In
architecture 100 depicted in FIG. 1, the first tier or edge server
tier 102 provides load balancing and request routing. The second
tier or HTTP server tier 104 performs HTTP parsing and response
generation. The third tier 106 contains application servers
typically providing a Java 2 Platform Enterprise Edition (J2EE) for
business logic (e.g., the software used to execute the particular
e-commerce application). The fourth tier 108 contains database
server nodes that manage persistent data. The architecture may
include a fifth tier (not shown) as well, if a separate storage
system is used (e.g., a storage area network).
[0024] 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.
[0025] 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 FIG. 1) and a
managing tier (e.g., application server tier 106 in FIG. 1).
[0026] Management techniques of the invention employ a multi-layer
management model. In one embodiment, as illustrated in FIG. 2A,
such model 200 includes a manageability extension layer 202, a
manageability abstraction layer 204, and a managed resource layer
206.
[0027] As will be illustrated below in the context of FIG. 2B, the
manageability extension layer includes node agent software code
that resides on a managed resource tier for receiving control and
configuration commands for a managed resource from an application
server tier (managing tier). The manageability abstraction layer
includes software code for interacting with a management interface
and thereby defining a service provider interface (SPI). The
managed resource layer includes resource-specific software code for
controlling a managed resource within the managed resource
layer.
[0028] 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.TM. Deployment Management environment (IBM
Corporation of Armonk, N.Y.).
[0029] In accordance with a WebSphere.TM. 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.TM. application server
(WAS) as the application tier and DB2.TM. (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.
[0030] FIG. 2B illustrates a cross-tier management methodology
according to an embodiment of the invention. In the context of FIG.
2B, we illustrate how model 200 can be applied to controlling a
database server tier from an application server tier. The
controlling entity is WebSphere.TM. Application Server (WAS) tier
and the backend controlled tier is a database tier.
[0031] As shown, an extended WebSphere.TM. 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.
[0032] 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.
[0033] Typically, WebSphere.TM. node agents (i.e., 215-1 through
215-3) are used as management (configuration and control) servers
between WAS nodes and the WebSphere.TM. 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.
[0034] In accordance with illustrative principles of the invention,
the WebSphere.TM. 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 FIG. 2B by node agent 228,
located in managed DB node 222. This is considered the
manageability extension layer (202 of FIG. 2A) of the cross-tier
management model of the invention.
[0035] It is to be understood that while FIG. 2B illustrates the
application server (WAS) tier managing the database (DB) tier, we
can place node agents in other tiers with non-identical functions
to facilitate distributed administration and workload management
beyond WAS instances. For example, besides the WAS tier and the DB
tier, suppose we have a third tier, e.g., a storage tier, as well.
Hence, the management infrastructure is as follows. WAS is the
managing server with respect to DB, the managed resource, and thus
WAS puts agent code in the DB tier. Similarly, DB is the managing
server with respect to storage, the managed resource, and thus DB
puts agent code in the storage tier.
[0036] Returning to the embodiment of FIG. 2B, the placement of
node agent 228 on the database node 222 allows the database to be
managed from the application server tier. This node agent 228 can
receive any control and configuration commands for different
databases thereon from the application tier via deployment manager
220. Node agent 228 can also send back any performance related
information of the databases back to the application tier.
[0037] The management extensions to the node agent provide an
abstract interface, to a controlling entity such as the
WebSphere.TM. 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.redbooks.ibm.com/abstracts/sg245977.html), dynamic LPAR
refers to dynamic logical partitions
(http://www-03.ibm.com/servers/eserver/iseries/lpar/) 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.TM.
cell.
[0038] The implementation of this interface may be based on open
standards such as Java Management Extensions or Web Services
Distributed Management (WS-DM).
[0039] As shown in FIG. 2B, DB controller 224 provides abstraction
from platform specific workload management capability. This is
considered the manageability abstraction layer (204 of FIG. 2A) of
the cross-tier management model of the invention. DB controller 224
defines a Service Provider Interface (SPI) 226 that is implemented
by the managed resource layer (206 of FIG. 2A). The manageability
abstraction layer contains the logic to interact with any
management infrastructure such as JMX or WS-DM. JMX: Java
Management Extensions are described at
http://java.sun.com/products/JavaManagement/, and WS-DM: Web
Services Distributed Management is described at
(www.oasis-open.org/committees/wsdm/).
[0040] 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.
[0041] 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.
[0042] 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 FIG. 2B, plug-ins 232
define this layer. The control of the DB tier resources (230) can
be achieved using various options such as Linux CKRM, AIX WLM,
dynamic LPAR, or DB2 WLM.
[0043] 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.
[0044] Again, it is to be understood that while FIG. 2B illustrates
management of a second tier (database server tier) from a first
tier (application server tier), the management model of FIG. 2A may
be applied to three or more tiers of a computing system. That is,
principles of the invention may be used to manage end-to-end goals
in a system that includes three or more tiers whereby work
progressively flows from a first tier to a second tier and
subsequently from the second tier to the third tier, and so on to
other subsequent tiers. For example, the first tier manages the
second tier and the second tier manages the third tier and so on.
Such tier-to-tier management is achieved by employing management
translation layers that allow the higher-level tier to communicate
directives (commands) to the lower-level tier. The lower level tier
converts/accepts these directives into its own/native management
capability.
[0045] FIG. 3 is a block diagram illustrating an illustrative
hardware implementation of a computer system in accordance with
which one or more components/steps of a management system (e.g.,
components/steps described in the context of FIGS. 1, 2A, and 2B)
may be implemented, according to an embodiment of the present
invention. For example, the illustrative architecture of FIG. 3 may
be used in implementing any and all of the components (i.e., nodes,
node agents, database servers, deployment manager, DB controller,
plug-ins, etc.) of any of the tiers shown in FIGS. 1, 2A, and
2B.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] It is to be further appreciated that the present invention
also comprises techniques for providing cross-tier management
services.
[0054] 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.
[0055] 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.
* * * * *
References