Describing and managing a J2EE application |
The
target application that we use for our experiments in self-management
is a multitier J2EE server deployed on a cluster. This application is
organized as follows.
The components of the various tiers are replicated on several nodes to improve performance and availability.
This architecture is represented on the following figure.
The
goal of autonomic management is to allow this application to resist
wide load variations (self-optimization), hardware of software failures
(self-repair) and attacks (self-protection). To achieve this goal, we
need to be able to dynamically reconfigure the application on the nodes
of the cluster, e.g., by increasing the replication degree of an
overloaded tier, or by allocatiing a new node to replace a failed one,
assuming that a reserve of free nodes is available.
As described in the section on autonomic computing, we take an architecture-driven
approach, based on a semi-formal description of the managed system, in
terms of an assemly of components, each of which wraps a part of the
application and provides a uniform management interface. This approach
has the following benefits:
The Fractal component model is the base for component wrapping and for global architecture description.
To
give an idea of how an application's global structure is described
using the Fractal Architecture Description Language, consider the
application described by the following figure.
This application is described by this fragment of Fractal ADL code. Notice in particular:
|