27-12-2012, 01:53 PM
Towards a Taxonomy of Adaptive Agent-based Collaboration Patterns for
Autonomic Service Ensembles
1Towards a Taxonomy.pdf (Size: 1.01 MB / Downloads: 37)
ABSTRACT
Services are increasingly becoming the building block of
today’s distributed systems. However, to support the
development of robust complex applications made up of
ensembles of cooperating service components and to
promote autonomic features, adaptive collaboration
patterns among components have to be enforced. In this
paper, we introduce a taxonomy of adaptive agent-based
collaboration patterns, for their analysis and exploitation
in the area of autonomic service ensembles. The
preliminary proposed taxonomy has two main
advantages: (i) it enables the reuse of existing experience
from the agents’ world in the area of autonomic service
systems, and (ii) it can provide useful suggestions to
designer for the choice of the most suitable patterns.
INTRODUCTION
Designers and developers consider service components as
the building blocks that can be put together in order to
achieve the system-level objectives of distributed systems
[19]. Service components, as components in general, have
to be well-defined and to expose a clear interface, in order
to be reusable, testable and, more importantly, easily
composable into ensembles. In this context, two aspects
must be taken into consideration: (i) the characterization
of the service components themselves, in terms of internal
organization, and (ii) the characterization of their means
of composition into ensembles. To describe service
components and service components ensembles, and
beside the (not less important) adoption of formal
modeling approaches, the software engineering practice
suggests the adoption of descriptive design patterns [17].
THE AGENT PARADIGM
Software agents are autonomous entities that carry out
tasks on behalf of users. Among many definitions of
software agents, nearly all of them converge on qualifying
autonomy – i.e., the capability of acting in autonomy
rather then simply upon request – as the key peculiar
feature of the agents in comparison with other
computational entities. One of the most exploited
definitions is the one reported by M. Wooldridge in [42].
It characterizes an agent as a computational entity that is
situated in some environment, and which is capable of
autonomous actions in this environment in order to meet
its design objectives. To this end, an agent can exhibit
three well-defined features: reactivity, proactivity (strictly
related to goal-orientedness) and sociality. These three
features are detailed in the following, and are the ones we
take into consideration for our analysis of adaptive
collaboration patterns.
Connection with Autonomic Service Systems
Considering modern complex service-based systems, the
identified features of agents and MASs are fundamental to
promote autonomic behavior in services and service
ensembles, via proper adaptive collaboration patterns.
First of all, for a service component to adapt its behavior
to the dynamic and possibly unexpected changes that
occur around it, the component must be able to sens and
react to such changes, and modify its behavior (i.e., select
proper actions) accordingly. This directly connects with
the reactivity feature of agents. This is a key base feature
required by any service component to be able to exhibit at
least some minimal form of adaptability, a feature that
then somehow reflects at the level of ensembles, if all its
service components are reactive. Of course, beside basic
reactivity, which is often not enough to face complex
situations in an autonomous way, one can think at arming
service components with the agent-based feature of goalorientedness.
Again, this can be applied both to the level
of individual service components, which have their own
goals to achieve, and to ensembles of components, where
common goals can be shared by all the components of an
ensemble. This means that the components must have a
description of the goal and the needed logic to achieve it,
which must be adaptive because of the dynamism,
unpredictability and heterogeneity of today’s complex
service systems.
PATTERNS TAXONOMY
A service component, as such, has some intrinsic features.
It is recommended that a component, like an agent, is
autonomous and can react to environmental changes; that
is in some way social; and that has some goals that guide
its acting (is goal-oriented). Then, to make a service
component collaborate, it can be useful to classify what
we call adaptive collaboration patterns that help
components to interact one to each other, and at the same
time to be adaptive in the collaboration. It is important to
recall that a pattern can be defined as adaptive, when its
decisions and the interactions outcome, are defined at run
time, on the base of the current status of the entire system
(environment, resources, interactions with other
components, etc).
Adaptive Patterns for Service Components
An example of adaptive pattern is the one that describes a
“reactive” component. This component is capable to
modify its behavior in reaction to an external event.
Components that adopt this pattern are sensitive to events
that happen in its environment, on the base of such events,
adapt their behavior and are able to interact with the
environment itself. In this pattern, any general feedback
loop is not present, so here adaptability can emerge only
from the interactions with the environment, as we can see
in Figure 1. An example of component that use this
pattern is the one described one based in the Shaw’s
control architecture [27] that react to the environment
changes making its sensors sense both the executing
system and its operating environment, and then
converting observations into modeled value. Another
adaptive pattern to describe the single component presents
“internal feedback loops”, like patterns to describe goaloriented
agents. The component is not limited to react to
external events, but it actively tries to adapt its behavior,
even without waiting for external stimuli. So adaptation
and awareness are more explicit inside the component
(see Figure 2). This kind of adaptive pattern, when we
consider the single component, but at the component
ensemble, has to be executed inside collaboration
schemes (e.g. patterns) that support argumentation and
negotiation, because it will be necessary to integrate the
internal goals of the component, with the ensemble goals.
RELATED WORK
Individual adaptation of components has been a very
important thread of research since the early years of
intelligent agents [20] and of reflective computing [40],
and several architectures and mechanisms to enable selfadaptation
has been proposed so far, typically based on
goal-oriented agents and internal feedback loops (whether
implicitly or explicitly architected within the component).
For instance, the ACE component model defined in the
context of the CASCADAS project2 defines a very clean
architecture enabling service components to dynamically
adapt their behavior based on their context and on
internally engineered feedback loops [5, 25]. The already
mentioned autonomic computing approach of the BM has
inspired several works related to enforcing adaptability
via external feedback loops [22]. This approach is to most
extent also shared by many works in the area autonomic
communications [14, 32].
CONCLUSIONS
In this paper, we have argued that agent-based computing
can play a key role in supporting the design and
development of future autonomic service systems, and
have proposed a preliminary taxonomy of adaptive
collaboration patterns, properly accounting for both the
architecture of individual components and for the
interaction patterns among ensembles of components. The
benefit that our work would like to give, as preliminary as
it can be, is twofold. Firstly, we think that a wide range of
experiences in the area of agents and multi-agent systems
can be reused to support adaptive collaboration patterns
for service ensembles in complex applications scenarios,
and our effort can represent a first useful step in this
direction.