reasoning (Costa, Lucena et. al., 2008), case-based
reasoning (Amodt and Plaza, 1994) and genetic
algorithm (Mitchell, 1998), and also service
discovery and selection implementation that can be
used by the agents. JAAF-S can be instantiated to
implement, for instance, biological, ubiquitous
computing and autonomic computing systems.
This paper is organized as follow. Section 2
presents some related work. In Section 3 the Java
Autonomic Agent Framework for Service is
detailed, while Section 4 states a case study by
describing the use of the framework to help
implementation of agents capable of discovering and
selecting Web services and also able to adapt
themselves to changes in the requirement. Finally,
Section 5 concludes and presents some future work.
2 RELATED WORKS
Rainbow (Garlan, Cheng, Huang, Schmerl and
Steenkiste, 2004) uses an abstract architectural
model at runtime to monitor the properties of an
executing system, to evaluate the model for
constraint violation, and — if a problem occurs — to
perform global and module adaptations on the
running system. However, Rainbow presents two
limitations: (i) it uses mechanisms based on a fixed
self-adaptation process, based on (Dobson, S.,
Denazis et. al., 2006), to monitor and adapt the
system behavior at runtime, and (ii) it uses only
constraints (rules) to verify problems (or violations)
beyond utility functions (Petrucci and Loques, 2007)
to determine the most appropriate adaptation within
a set of applicable ones. Designed to treat these
limitations, the JAAF-S enables the elaboration of
different self-adaptation processes and provides not
only rule-based reasoning and utility functions, but
also case-based reasoning (CBR) mechanisms.
According to CBR is an efficient way to implement
some of the properties of autonomic systems. Beside
this, the JAAF-S provides support to discovery
services based on OWL-S (Martin et. al., 2009).
Such technology presents important properties to
perform automatic discovery, selection and
composition of services.
The Agent Building and Learning Environment
(ABLE) (Bigus, Schlosnagle, Pilgrim et. al., 2002)
provides an autonomic management in the form of a
multi-agent architecture; that is, each autonomic
manager is implemented as an agent or a set of
agents, thus allowing different autonomic tasks to be
separated and encapsulated into different agents.
Although ABLE provides different reasoning
mechanisms, it does not have the intention of
providing support to the elaboration of different self-
adaptation processes.
The work in (Poggi, Tomaiuolo and Turci, 2007)
proposes a framework with the aim of supporting
agent-based service oriented architecture. The
peculiar characteristic and strength of this work is
the integration of the agent technology with web
services, workflow, rule engine and semantic web.
Similar to this, the JAAF-S works with web
services, rule engine and semantic web. But in
addition our framework provides case-based
reasoning and different mechanisms to discover and
select web services.
3 JAAF-S
JAAF-S is a framework implemented by the use of
software agents and extends JADE (Bellifemine,
Caire, Trucco, Rimassa, Mungenast, 2007), a FIPA-
compliant framework to implement multi-agent
systems (MAS) developed in Java, in order to
represent four concepts: (i) agents that perform self-
adaptation, (ii) plans executed by agents
representing self-adaptation processes (or control-
loops), (iii) activities that are the steps of such
processes, and (iv) techniques that can be used to
discover and select services.
More details about the JAAF-S implementation
can be seen in the class diagram depicted in Figure
1, which illustrates the main JAAF-S classes. The
self-adaptive agents are represented by the
AdaptationAgent class and the self-adaptation
process by the PlanAdaptation class. The
PlanAdaptation class extends the JADE
FSMBehaviour class that provides support to the
implementation of finite automata composed of
activities (or behaviors) represented by the
Behaviour class. Therefore, in order to implement an
autonomic agent it is necessary to perform three
tasks: (i) create an agent by extending the
AdaptationAgent class, (ii) create new activities or
instantiate some default provided by the framework,
and (iii) create a self-adaptation process by
extending the PlanAdaptation class.
In order to work with services it is important to
instantiate MatchingSelection and SelectionStrategy
classes to give support to the discovery and selection
of services.
JAAF-S already provides a self-adaptation process,
mentioned on (Dobson, Denazis et. al., 2006),
represented by the ControlLoop class that is
composed of four activities: Collect, Analyze,
Decision and Effector, quickly introduced below.
Due to space limitations, we will detail in the
ICSOFT 2009 - 4th International Conference on Software and Data Technologies
246