Professional Documents
Culture Documents
KEY WORDS : Autonomic management, Legacy systems, Self- • Autonomic management allows the required reconfig-
optimization, Cluster, J2EE urations to be performed without human intervention,
thus saving administrator’s time.
1
• Control loops which link probes to reconfiguration ser- In this context, the increasing number of Internet users
vices and implement autonomic behaviors. has led to the need of highly scalable and highly available
services. Moreover, several studies show that the com-
We used Jade to implement self-optimization in a clus- plexity of multi-tier architectures with their dynamically
tered J2EE application. Here, self-optimization consists in generated documents represent a large portion of web re-
dynamically increasing or decreasing the number of replicas quests, and that the rate at which dynamic documents are
(at any tier of the J2EE architecture) in order to accommo- delivered is often one or two orders of magnitudes slower
date load peaks. than static documents [10, 11]. This places a significant
The rest of the paper is organized as follows. Section 2 burden on servers [7]. To face high loads and provide
details the context of this work. Section 3 presents the de- higher scalability of Internet services, a commonly used
sign principles underlying Jade. Section 4 describes the im- approach is the replication of servers in clusters. Such
plementation of self-optimization. Results of our experi- an approach usually defines a particular (hardware or soft-
mental evaluation are described in Section 5, while related ware) component in front of the cluster of replicated servers,
work is discussed in Section 6. Finally, Section 7 draws our which dynamically balances the load among the replicas.
conclusions. Here, different load balancing algorithms may be used,
e.g. Random, Round-Robin, etc. Among the existing J2EE
clustering solutions we can cite C-JDBC for a cluster of
2 Experimental Context: Multi-Tier Internet database servers [8], JBoss clustering for a cluster of JBoss
Services EJB servers [6], mod jk for a cluster of Tomcat Servlet
servers [17], and the L4 switch for a cluster of replicated
As experimental environment, we made use of the Java 2 Apache web servers [19].
Platform, Enterprise Edition (J2EE), which defines a model Clustered multi-tier J2EE systems represent an interest-
for developing web applications [20] in a multi-tiered ar- ing experimental environment for our autonomic manage-
chitecture. Such applications usually receive requests from ment environment, since they bring together all the chal-
web clients, that flow through a web server (provider of lenges addressed by Jade:
static content), then to an application server to execute the
business logic of the application and generate web pages • the management of a variety of legacy systems, since
on-the-fly, and finally to a database that persistently stores each tier in the J2EE architecture embeds a different
data (see Figure 1). piece of software (e.g. a web server, an application
server, or a database server),
Upon an HTTP client request, either the request targets a The main motivation for Jade is to allow software to be
static web document, in which case the web server directly managed by programs (instead of humans). Since the man-
returns that document to the client; or the request refers to a aged software is very hererogeneous, our key design choice
dynamic document, in which case the web server forwards was to rely on a component model to provide a uniform
that request to the application server. When the application management interface for any managed resource.
server receives a request, it runs one or more software com- Therefore, any software managed with Jade is wrapped
ponents (e.g. Servlets, EJBs) that query a database through in a component which interfaces its administration proce-
a JDBC driver (Java DataBase Connection driver) [21]. Fi- dures.
nally, the resulting information is used to generate a web The component model that we use (Fractal [5]) is
document on-the-fly that is returned to the web client. overviewed in Section 3.1. We then describe in Section 3.2
2
the wrapping of J2EE tiers in Fractal components. Sec- a control behavior for the component, such as controlling
tion 3.3 and Section 3.4 respectively present how appli- the activities in the components (suspend, resume) or mod-
cations can be deployed and reconfigured, thanks to this ifying some of its attributes. The Fractal model allows
component-based approach. for arbitrary (including user defined) classes of controller.
It specifies, however, several useful forms of controllers,
3.1 The Fractal Component Model which can be combined and extended to yield components
with different control features. This includes the following
controllers :
The Fractal component model is a general component
model which is intended to implement, deploy, monitor, and
• Attribute controller: An attribute is a configurable
dynamically configure, complex software systems, includ-
property of a component. This controller supports an
ing in particular operating systems and middleware. This
interface to expose getter and setter methods for its at-
motivates the main features of the model: composite com-
tributes.
ponents (to have a uniform view of applications at various
levels of abstraction), introspection capabilities (to moni- • Binding controller: supports an interface to allow
tor, and control the execution of a running system), and re- binding and unbinding its client interfaces to server in-
configuration capabilities (to deploy, and dynamically con- terfaces by means of primitive bindings.
figure a system).
A Fractal component is a run-time entity that is encapsu- • Content controller: for composite components, sup-
lated, and that has a distinct identity. A component has one ports an interface to list, add and remove subcompo-
or more interfaces. An interface is an access point to a com- nents in its contents.
ponent, that supports a finite set of methods. Interfaces can
• Life-cycle controller: This controller allows an explicit
be of two kinds: server interfaces, which correspond to ac-
control over a component execution. Its associated in-
cess points accepting incoming method calls, and client in-
terface includes methods to start and stop the execution
terfaces, which correspond to access points supporting out-
of the component.
going method calls. The signatures of both kinds of inter-
face can be described by a standard Java interface decla-
Several implementations of the Fractal model have been
ration, with an additional role indication (server or client).
issued in different contexts, e.g. an implementation devoted
A Fractal component can be composite, i.e. defined as an
to the configuration of operating systems on a bare hardware
assembly of several sub-components, or primitive, i.e. en-
(Think) or an implementation on top of the Jave virtual ma-
capsulating an executable program.
chine (Julia) targeted to the configuration of middleware or
Communication between Fractal components is only applications. The work reported in this paper relies on this
possible if their interfaces are bound. Fractal supports both later implementation of Fractal.
primitive bindings and composite bindings. A primitive
binding is a binding between one client interface and one
3.2 Component-based management
server interface in the same address space. A composite
binding is a Fractal component that embodies a commu-
nication path between an arbitrary number of component In order to allow software to be managed by programs
interfaces. These bindings are built out of a set of prim- (instead of humans), any software managed with Jade is
itive bindings and binding components (stubs, skeletons, wrapped in a Fractal component which interfaces its admin-
adapters, etc.). The Fractal model thus provides two mecha- istration procedures, through the provision of controllers.
nisms to define the architecture of an application: bindings Thanks to Fractal’s hierachical model, arbitrary sophisti-
between component interfaces, and encapsulation of com- cated organizations can be modelized.
ponents in a composite. This provides a means to:
The above features (hierarchical components, explicit • Manage legacy entities using a uniform model (the
bindings between components, strict separation between Fractal control interface), instead of relying on
component interfaces and component implementation) are software-specific, hand-managed, configuration files.
relatively classical. The originality of the Fractal model lies
in its open reflective features. In order to allow for well • Manage complex environments with different points of
scoped dynamic reconfiguration, components in Fractal can view. For instance, using appropriate composite com-
be endowed with controllers, which provide access to a ponents, it is possible to represent the network topol-
component internals, allowing for component introspection ogy, the configuration of the J2EE middleware, or the
and the control of component behaviour. configuration of an application on the J2EE middle-
A controller provides a control interface and implements ware.
3
• Add a control behavior to the encapsulated legacy en-
tities (e.g. monitoring, interception and reconfigura-
tion).
4
J2EE application, how many replicas are created for each as CPU/memory usage, or higher-level information such as
tier, how are the tiers bound together, etc ... client response times.
A Software Installation Service component (a com- Analysis/decision components (or reactors) represent the
ponent of Jade) allows retrieving the encapsulated soft- actual reconfiguration algorithm, e.g. repairing a failed el-
ware resources involved in the multi-tier J2EE application ement in case of a self-recovery manager, or resizing the
(e.g., Apache Web server software, MySQL database server cluster of replicated servers upon load changes in case of
software, etc.) and installing them on nodes of the cluster. a self-optimization manager. Reactors receive notifications
A Cluster Manager component is responsible for the allo- from sensors and make use of actuators when a reconfigu-
cation of nodes (from a pool of available nodes) which will ration operation is necessary.
host the replicated servers of each tier. Actuators represent the individual mechanisms neces-
The deployment of an application is the interpretation sary to implement reconfiguration operations, e.g. allocat-
of an ADL description, using the Software Installation Ser- ing a new node to a cluster of replicas, adding/removing a
vice and the Cluster Manager to deploy application’s com- replica to the cluster of replicated servers, updating connec-
ponents on nodes. The autonomic administration software tions between the tiers.
is also described using this ADL and deployed in the same Sensors, Actuators and Reactors are implemented as
way. However, this description of the administration soft- Fractal components, which allows reusing and combining
ware is separated from that of the application. them to assemble specific autonomic managers. Moreover,
this allows autonomic managers to be deployed and man-
3.4 Implementing autonomic managers aged using the same Jade framework (Jade administrates it-
self).
Autonomic computing is achieved through autonomic
managers, which implement feedback control loops. These 4 Implementation of Self-Optimization
loops regulate and optimize the behavior of the managed
system. Figure 3 illustrates control loops in the Jade au- In this section, we discuss the means of implementing
tonomic management system. It shows two managers that self-optimization in replicated cluster-based systems, us-
regulate two specific aspects of the platform (self-recovery, ing the framework described in Section 3. Optimization
detailed in [4], and self-optimization, discussed in this pa- is defined using two main criteria: performance, as per-
per). Each autonomic manager in Jade is based on a con- ceived by the clients (e.g. response time) or by the applica-
trol loop that includes sensor, actuator and analysis/decision tion’s provider (e.g. global throughput); and resource usage
components. (e.g. processor occupation). One may then define an “opti-
mal” region using a combination of these criteria. Providing
self-optimization for a system consists in maintaining the
Jade
Self-recovery
manager
system in the optimal region, in the presence of dynamic
Repair
Self-optimization
Software
changes, e.g. widely varying workload. Here, we consider
Installation
manager
Resize service implementing self-optimization using resizing techniques,
sensor actuator
sensor
sensor
actuator
actuator i.e. dynamically increasing or decreasing the number of
sensor
sensor
actuator
actuator
nodes allocated to the application.
sensor actuator Cluster
manager
5
the control loop has the following sensors, actuators and re- balancer. This recovery log is implemented as a particular
actors. database whose purpose is to keep track of all the requests
The sensors periodically measure the chosen perfor- that affect the state of the database. Basically, all write re-
mance (or QoS) criteria, i.e. a combination of CPU usage quests are logged and indexed as strings in this recovery log.
and user-perceived response time. In our expriments with When a new server is inserted in the clustered database, the
Tomcat and MySQL servers, the used sensor is a probe that state of this server is initially known and is potentially not
collects CPU usage information on all the nodes where such up-to-date. The recovery log enables us to know the exact
a server is deployed. This probe computes a moving average set of write requests to replay on this server to make it be
of the collected data in order to remove artifacts character- up-to-date. Once these requests have been processed by the
izing the CPU consumption. It finally computes an average newly allocated server, we can reinsert it in the clustered
CPU load across all nodes, so as to observe a general load database as an active and up-todate replica. Symmetrically,
indication of the whole replicated server. removing a database replica is realized by keeping trace of
The actuators are used to reconfigure the system. the state of this replica. This state is stored as the index
Thanks to the uniform management interface provided by value in the recovery log corresponding to the last write re-
Jade, the actuators are generic, since increasing or decreas- quest that it has executed before being disabled.
ing the number of replicas of an application is implemented
as adding or removing components in the application struc- 4.2 Generality of the approach
ture.
The reactors implement an analysis/decision algorithm. One of our objectives when building Jade was to provide
They receive notifications from sensors, and react, if an environment for building autonomic managers which
needed, by increasing or decreasing the number of replicas manages a variety of specific legacy systems. Jade is built
allocated to the controlled tier. In our experiments, the de- on top of a set of generic components which are assembled
cision logic implemented to trigger such a reconfiguration in a specific way so as to implement the required autonomic
is based on thresholds on CPU loads provided by sensors. managers.
The main operations performed by the reactor when For instance, the self-optimization autonomic manager is
more replicas are required are the following: allocate free realized by the means of a control-loop which is composed
nodes for the application, deploy the required software on of three kinds of components:
the new nodes if necessary, perform state reconciliation The sensors: the set of sensors that we currently use is
with other replicas in case of servers with dynamic data, and rather generic with respect to the J2EE experiment that we
integrate the new replicas with the load balancer. Similarly, conducted. Indeed, they provide estimators mainly related
if the clustered server is under-utilized, the main operations to resource usage and can therefore be used under various
performed by the reactor are the following: unbind some contexts.
replicas from the load balancer, stop these replicas, and re- The decision logic: the logic which is in charge of decid-
lease the nodes hosting these replicas if no longer used. To ing a reconfiguration policy of the system consists in a set
create an additional replica (i.e. node + software server), the of triggers based on thresholds. Such a logic is generic and
reactor uses the services provided by Jade, e.g. the Cluster can be used in many cases.
Manager component to allocate new nodes, the Software The actuators: The wrappers provide a uniform represen-
Installation Service component to install the required soft- tation of the managed system as a set of components which
ware. expose a uniform interface. Thus the actuators are built us-
One important issue to address when managing repli- ing this uniform interface and are therefore fully generic.
cated servers with dynamic data (modifiable state) is data However, in the context of the J2EE use-case, some com-
consistency. This was not a problem in the case of the web ponents are submitted to some specificities:
container (Tomcat) as our evaluation application was com- Though the wrapper components provide a uniform in-
posed of servlets with no dynamically changing session in- terface which is used to build the actuators, the implemen-
formation. In the case of database servers, the load bal- tation of these wrappers is specific to the legacy software
ancer that we used was C-JDBC; C-JDBC plays the role of they wrap.
load balancer and replication consistency manager [8], each The implementation of the decision logic is based on
server containing a full copy of the whole database (full mir- thresholds. This implies a configuration of the various pa-
roring). rameters characterizing the thresholds. This configuration
To manage a dynamic set of database servers, a newly is specific to the managed system. For instance, the thresh-
allocated server must synchronize its state with respect to olds of the self-optimization manager have been determined
the whole clustered database before it is activated. To do manually with some benchmarks. Note that the determina-
so, a ”recovery log” has been added to the C-JDBC load- tion of these parameters constitutes a key challenge of this
6
manager. With Jade, as soon as the required wrappers have been
Even if the set of sensors used in the current prototype implemented, such a reconfiguration can easily be imple-
is generic, some sensors can be specifically written for a mented in an administration application. The operations re-
particular aspect we are interested in. For example, a sen- quired to perform this same reconfiguration are simply few
sor specific to optimization may provide an estimator of the operations on the involved components in the management
response-time to client requests. However the CPU was layer, namely:
known to be the bottleneck resource as far as our J2EE sys- Apache1.stop()
tem was concerned. // unbind Apache1 from Tomcat1
Apache1.unbind("ajp-itf")
// bind Apache1 to Tomcat2
5 Evaluation Apache1.bind("ajp-itf",tomcat2-itf)
// restart Apache1
This section describes a qualitative and quantitative eval- Apache1.start()
uation conducted with Jade.
5.2 Quantitative evaluation
5.1 Qualitative evaluation
Testbed application
In this section, we show the benefits of using Jade to The evaluation of the self-optimization management im-
perform system reconfiguration, compared to an ad-hoc ap- plemented in Jade has been realized with RUBiS [1], a
proach. Figure 4 illustrates a scenario where, initially, an J2EE application benchmark based on servlets, which im-
Apache web server (Apache1) is running on node1, and plements an auction site modeled over eBay. It defines 26
connected to a Tomcat Servlet server (Tomcat 1) running web interactions, such as registering new users, browsing,
on node2. In this scenario we want to reconfigure the clus- buying or selling items. RUBiS also provides a benchmark-
tered middleware layer by replacing the connection between ing tool that emulates web client behaviors and generates
Apache1 and Tomcat1 by a connection between Apache1 a tunable workload. This benchmarking tool gathers statis-
and a new server Tomcat2. tics about the generated workload and the web application
behavior.
Hardware environment
The experimental evaluation has been performed on a
cluster of x86-compatible machines. The experiments re-
quired up to 9 machines: one node for the Jade manage-
ment platform, one node for the load-balancer in front of
the replicated web/application servers, up to two nodes for
the replicated web and application servers, one node for the
Figure 4. Reconfiguration scenario database load-balancer, up to three nodes for the replicated
database servers, one node for the client emulator (which
emulates up to 500 clients). The number of nodes actually
Without the Jade infrastructure, this simple reconfigura-
tion scenario requires the following steps to be manually used during these experiments varies, according to the dy-
done (with very low reactivity), in a legacy-dependent way: namic changes of the workload, and thus to the dynamic
first log on node1, then stop the Apache server by running resizing of the application. All the nodes are connected
the Apache shutdown script, then edit and update the con- through a 100Mbps Ethernet LAN to form a cluster.
figuration file (worker.properties) in Apache to specify its
Software Environment
binding to the new Tomcat server (Tomcat2 on node3) as
follows: The nodes run various versions of the Linux kernel. The
J2EE application has been deployed using open source mid-
worker.worker.port=8098 dleware solutions: Jakarta Tomcat 3.3.2 [22] for the web
worker.worker.host=node3 and servlet servers, MySQL 4.0.17 [13] for the database
worker.worker.type=ajp13 servers, C-JDBC 2.0.2 [8] for the database load-balancer,
worker.worker.lbfactor=100 PLB 0.3 [15] for the application server load-balancer. We
worker.list=worker, loadbalancer
used RUBiS 1.4.2 as the running J2EE application. These
worker.loadbalancer.type=lb
experiments have been realized with Sun’s JVM JDK
worker.loadbalancer.balanced_workers=worker
1.5.0.04. We used the MySQL Connector/J 3.1.10 JDBC
Finally, the Apache server is restarted by running the httpd driver to connect the database load-balancer to the database
script. servers.
7
Evaluation Scenario the maximum thresholds have been determined so that the
In order to evaluate the performance optimization as- response time for clients’ requests remains acceptable when
pect of the Jade management platform, we have designed the reconfigurations start.
a scenario that illustrates the dynamic allocation and deal-
Autonomic Reconfiguration
location of nodes to tackle performance issues related to a
Figure 5 shows the effect of the control loop on the
changing workload. This scenario is described below.
number of replicas, for both the application and database
We aim at showing the dynamic allocation and dealloca-
servers. This behavior may be explained as follows. As
tion of nodes in response to workload variations. Therefore
the workload progressively increases (180 clients), the av-
we have submitted our managed J2EE system to the follow-
erage resource consumption of the clustered database also
ing workload: (i) at the beginning of the experiment, the
increases, which triggers the allocation of one new database
managed system is submitted to a medium workload: 80
server. The system now contains two database servers. The
emulated clients; then (ii) the load increases progressively
workload continues to grow (320 clients), and triggers a sec-
up to 500 emulated clients: 21 new emulated clients every
ond node allocation for the clustered database. Thus the
minute; finally (iii) the load decreases symmetrically down
system is here composed of one Tomcat server and three
to the initial load (80 clients).
MySQL database servers. The workload increases further
Initially, the J2EE system is deployed with one appli- (420 clients). Now the resource consumption of the Tomcat
cation server (Tomcat) and one database server (MySQL). servers reaches a threshold, which triggers the allocation
The optimization manager reacts to the load variation by of one new Tomcat server. The system is now composed
allocating and freeing nodes, as described below. of two Tomcat servers and three MySQL databases. The
In this experiment, we have deployed two instances of workload then increases (500 clients) without saturating this
a control loop in order to tackle performance issues of the configuration, and then starts decreasing. The workload de-
clustered database and the clustered application server. Pe- crease (400 clients) implies a decrease of the resource con-
riodically, the resource usage of the nodes participating to sumption of the Tomcat servers, which triggers the deallo-
the managed service is monitored. In practice, the sensor cation of one Tomcat server. The workload decrease con-
of the control loops gathers the CPU usage of these nodes tinues (280 clients) and implies this time a low resource
every second and computes a spatial (over these nodes) and consumption of the clustered database, which triggers the
temporal (over the last period) average CPU usage value. deallocation of one database server.
This average CPU usage value is compared to minimum and
maximum thresholds. The objective is to keep the CPU us- 4
# of database backends
age value between these two thresholds. Therefore, if this # of application servers
value is over the maximum threshold, the replicas are over- 3.5
8
trigger dynamic reconfigurations. 1
CPU used (Moving average)
# of enterprise servers
CPU without Jade
Max threshold
Min threshold
1 0.8
CPU used (Moving average)
# of database backends
CPU without Jade
Max threshold 2
Min threshold
0.8 0.6
# of servers
3
0.6
CPU usage (%)
0.4
# of backends
1
2
0.4 0.2
1
0.2 0
0 500 1000 1500 2000 2500 3000
Time (s)
0
0 500 1000 1500
Time (s)
2000 2500 3000 Figure 7. Behavior of the application tier
300000
One of the control loops is dedicated to the performance
optimization of the clustered database. When the aver- 250000
age CPU usage reaches the maximum threshold set for the
database, the control loop triggers the deployment of a new
Latency (ms)
200000
200000
time waiting for the database. This explains why the CPU
usage measured during high loads remains moderate. 150000
Response time
100000
We now consider the impact on performance in terms of
client request response times. Figure 8 and Figure 9 show 50000
Jade. In both cases, the workload was increased by a fac- Figure 9. Response time with Jade
tor of 5, and then decreased by a factor of 5. Here, Jade
was able to maintain the web client perceived response time
stable (around 590 ms in average), while the same experi- Intrusivity
ment run without Jade results in a continuously increasing We also evaluated the intrusivity induced by the Jade
client response time (10.42 s in average) when the workload management system. The intrusivity has been measured by
increases. comparing two executions of the J2EE application: when
9
it is run and managed by Jade and when it is run by hand, required by any application are all installed and accessible
without Jade. During this evaluation, the J2EE application on any machine in the cluster. Therefore, allocating addi-
has been submitted to a medium workload so that its exe- tional resources to an application can be implemented at the
cution under the control of Jade didn’t induce any dynamic level of the protocol that routes requests to the machines
reconfiguration. This intrusivity is quantified in terms of (Neptune [18] and DDSD [26]). Some of them (e.g. Clus-
average throughput, response time, processor and memory ter Reserves [3] or Sharc [24]) assume control over the CPU
usage of the J2EE application in Table 1. allocation on each machine, in order to provide strong guar-
antees on resource allocation.
with Jade without Jade In a second category of projects, the unit of resource al-
Throughput (req./s) 12 12 location is an individual machine (therefore applications are
Resp.time (ms) 89 87 isolated, from a security point of view). A machine may be
CPU usage (%) 12.74 12.42 dynamically allocated to an application by a hosting center,
Memory usage (%) 20.1 17.5 and the software components of that application must be dy-
namically deployed on the allocated machine. Projects like
Table 1. Performance overhead Jade, Oceano [2], QuID [16], OnCall [14], Cataclysm [23]
or [25] fall into this category.
10
form. We have used a dynamic capacity provisioning tech- ACM/IFIP/USENIX International Middleware Conference,
nique in which each replicated tier of the middleware layer Rio de Janeiro, Brazil, June 2003.
is able to dynamically acquire or release servers to react [8] E. Cecchet, J. Marguerite, and W. Zwaenepoel. C-JDBC:
Flexible Database Clustering Middleware. In USENIX An-
to load variations. Specifically, we showed that dynamic
nual Technical Conference, Freenix track, Boston, MA, June
provisioning of nodes, using a very simple threshold-based 2004. http://c-jdbc.objectweb.org/.
control algorithm, helps regulating the load on the servers [9] D. Garlan, S. Cheng, A. Huang, B. Schmerl, and
at different tiers, and thus protects the users again perfor- P. Steenkiste. Rainbow: Architecture-based self adaptation
mance degradation due to overload, while avoiding static with reusable Infrastructure. IEEE Computer, 37(10), 2004.
reservation of resources in the cluster. This is only a first [10] X. He and O. Yang. Performance Evaluation of Distributed
Web Servers under Commercial Workload. In Embedded In-
step, whose main intent was to demonstrate the ability of
ternet Conference 2000, San Jose, CA, Sept. 2000.
Jade to implement specific autonomic components for vari- [11] A. Iyengar, E. MarcNair, and T. Nguyen. An Analysis of
ous aspects. Web Server Performance. In IEEE Global Telecommuni-
Part of our future work will focus on improving the self- cations Conference (GLOBECOM’97), Phoenix, AR, Nov.
optimizing algorithm by setting incrementally and dynam- 1997.
[12] J. O. Kephart and D. M. Chess. The Vision of Autonomic
ically its parameters. Furthermore we intend to work on
Computing. IEEE Computer Magazine, 36(1), 2003.
the problem of conflicting autonomic policies. Managers [13] MySQL. MySQL Web Site. http://www.mysql.com/.
have their own goal and control loops and therefore require [14] J. Norris, K. Coleman, A. Fox, and G. Candea. OnCall: De-
a way to arbitrate potential conflicts. The component-based feating Spikes with a Free-Market Application Cluster. In 1st
approach gives us a way to build an infrastructure as a set International Conference on Autonomic Computing (ICAC-
of hierarchical and interconnected components, which may 2004), May 2004.
[15] PLB. PLB - A free high-performance load balancer for Unix.
help implementing policy arbitration managers. We also in- http://plb.sunsite.dk/.
tend to apply our self-optimization techniques on other use [16] S. Ranjan, J. Rolia, H. Fu, and E. Knightly. QoS-Driven
cases to show the genericity of our approach. Server Migration for Internet Data Centers. In 10th Interna-
tional Workshop on Quality of Service (IWQoS 2002), Miami
Beach, FL, May 2002.
References [17] G. Shachor. Tomcat Documentation. The Apache Jakarta
Project. http://jakarta.apache.org/tomcat/
tomcat-3.3-doc/.
[1] C. Amza, E. Cecchet, A. Chanda, A. Cox, S. Elnikety, R. Gil, [18] K. Shen, H. Tang, T. Yang, and L. Chu. Integrated re-
J. Marguerite, K. Rajamani, and W. Zwaenepoel. Specifica- source management for cluster-based internet services. In
tion and Implementation of Dynamic Web Site Benchmarks. 5th USENIX Symposium on Operating System Design and
In IEEE 5th Annual Workshop on Workload Characteriza- Implementation (OSDI-2002), Dec. 2002.
tion (WWC-5), Austin, TX, Nov. 2002. [19] S. Sudarshan and R. Piyush. Link Level Load
[2] K. Appleby, S. Fakhouri, L. Fong, G. Goldszmidt, and Balancing and Fault Tolerance in NetWare 6.
M. Kalantar. Oceano - SLA based management of a com- NetWare Cool Solutions Article. Mar. 2002.
puting utility. In 7th IFIP/IEEE International Symposium on http://developer.novell.com/research/
Integrated Network Management, Seattle, WA, May 2001. appnotes/2002/march/03/a020303.pdf%.
[3] M. Aron, P. Druschel, and W. Zwaenepoel. Cluster Reserves: [20] Sun Microsystems. Java 2 Platform Enterprise Edition
a mechanism for resource management in cluster-based net- (J2EE). http://java.sun.com/j2ee/.
work servers. In International Conference on Measurement [21] Sun Microsystems. Java DataBase Connection (JDBC).
and Modeling of Computer Systems (ACM SIGMETRICS- http://java.sun.com/jdbc/.
2000), Santa Clara, CA, June 2000. [22] The Apache Software Foundation. Apache Tomcat. http:
[4] S. Bouchenak, F. Boyer, D. Hagimont, and S. Krakowiak. //tomcat.apache.org/.
Architecture-Based Autonomous Repair Management: An [23] B. Urgaonkar and P. Shenoy. Cataclysm: Handling Ex-
Application to J2EE Clusters. In 24th IEEE Symposium treme Overloads in Internet Services. Technical report, De-
on Reliable Distributed Systems (SRDS-2005), Orlando, FL, partment of Computer Science, University of Massachusetts,
Oct. 2005. Nov. 2004.
[24] B. Urgaonkar and P. Shenoy. Sharc: Managing CPU and
[5] E. Bruneton, T. Coupaye, and J. B. Stefani. Recursive
network bandwidth in shared clusters. IEEE Transactions on
and Dynamic Software Composition with Sharing. In
Parallel and Distributed Systems, 15(1), 2004.
International Workshop on Component-Oriented Program- [25] B. Urgaonkar, P. Shenoy, A. Chandra, and P. Goyal. Dy-
ming (WCOP-02), Malaga, Spain, June 2002. http:// namic Provisiong of Multi-Tier Internet Applications. In 2nd
fractal.objectweb.org. International Conference on Autonomic Computing (ICAC-
[6] B. Burke and S. Labourey. Clustering With JBoss 3.0. Oct.
2005), Seattle, WA, June 2005.
2002. http://www.onjava.com/pub/a/onjava/ [26] H. Zhu, H. Ti, and Y. Yang. Demand-driven service differen-
2002/07/10/jboss.html. tiation in cluster-based network servers. In 20th Annual Joint
[7] E. Cecchet, A. Chanda, S. Elnikety, J. Marguerite, and Conference of the IEEE Computer and Communication So-
W. Zwaenepoel. Performance Comparison of Middleware cieties (INFOCOM-2001), Anchorage, AL, Apr. 2001.
Architectures for Generating Dynamic Web Content. In 4th
11