handled by a single toolkit or communication mech-
anism. For example, one system may need to com-
bine CORBA communication mechanisms with mid-
dleware that specifically addresses the distribution of
media data (e.g. video/sound), or combine data dis-
covery mechanisms, e.g. based upon data dissemina-
tion techniques such as multicast, with point-to-point
agent communication systems. All these communi-
cation mechanisms provide dedicated and optimum
solutions to specific problems or provide access to a
large base of associated tools and libraries and should
be integrated for opportunistically satisfying all the
systems needs and constraints.
Supporting ubiquitous and mobile systems adds
an element of dynamicity that is also difficult to han-
dle. Contrary to static and offline integration scenar-
ios, where all the communication links can be pre-
configured, in open / ubiquitous environments, the
different elements are dynamically distributed. This
makes it vital to be able to alter communication path-
ways at run-time, e.g. by contacting different servers
while the user moves within a ubiquitous infrastruc-
ture or interacting on-demand through portable and/or
wearable devices that can be characterized by differ-
ent computational, network and presentation capabil-
ities. In these cases using multiple communication
mechanisms may be instrumental in guaranteeing the
adaptability of the system to such an environment.
However, in addition to the complexity of manag-
ing distinct data-exchange formats, combining multi-
ple communication mechanisms also adds the over-
head of managing their their relationships, for exam-
ple, to guarantee some global policies, such as poli-
cies for security or resource management. For in-
stance, it might be appropriate for all the mechanisms
employed to respect some high-level run-time policy
dictated by a specific application. For example, in
tele-conferencing systems, session termination may
require the closure of all the single connections that
were established in the process. In general, limited
resources in terms of memory, network bandwidth,
CPU, etc, often posits a conservative approach con-
sisting of shutting down unused modules and gener-
ally releasing resources after use is usually preferable.
Conversely, if one data connection carrying one type
of data terminates prematurely, e.g. for a problem iso-
lated to a specific transport layer, it should be possible
to detect the condition and re-establish the communi-
cation, e.g. to restore a session, or to support more
sophisticated error-recovery procedures.
Such an approach is advocated in the RETSINA
architecture. RETSINA supports the specification (in
an agent communication language such as KQML
or FIPA-ACL) of the conversational policies agents
should adhere to in their interactions and the rel-
evant ontologies for achieving semantic interoper-
ability. Crucially, the ACL-level is used to coordi-
nate multiple heterogeneous communication systems
in order to bind together different functional compo-
nents and support agent-based applications running
under a wide variety of conditions, e.g. different op-
erating systems, devices and programming languages.
This approach results in a two tiered communication
strategy, in which low-level communications, called
backchannels, are represented and coordinated in the
ACL level. However, RETSINA provides only ACL-
level, implementation-agnostic specifications which
can lead to the development of such features.
3 SoSAA
SoSAA incorporates modularity by applying the prin-
ciples of hybrid agent control architectures. Popu-
larised by their use in robotics (e.g. in (Gat, 1992)),
hybrid control architectures are layered architectures
combining low-level behaviour-based systems with
high-level, deliberative reasoning apparatus. From
a control perspective, this enables the delegation of
many of the details of the agent’s control to the be-
haviour system, which closely monitors the agent’s
sensory-motor apparatus without symbolic reasoning.
The original solution advocated by SoSAA is to
apply a hybrid integration strategy to the system’s in-
frastructure, as illustrated in Fig. 1. SoSAA com-
bines a low-level component-based framework with
a MAS-based high-level framework. The low-level
framework operates by imposing clear boundaries be-
tween architectural modules (the components) and
guiding the developers in assembling these compo-
nents into a system architecture. It then provides a
run-time computational environment to the high-level
framework, which then augments it with its multi-
agent organisation, ACL-level interaction, and goal-
oriented reasoning capabilities.
The fundamental motivation behind such an ap-
proach is that application agents in SoSAA do not
just collaborate to carry out the different objectives of
the system, e.g. championing different sub-goals by
attending to different functional requirements. Each
agent is first of all a member of an agent community
inhabiting the same computational environment. As
such, it may be required to compete with the other
agents for the computational resources in the system.
Under this perspective, SoSAA provides a platform
from which these agents can access the system’s re-
sources (e.g. hardware, CPU, data, network), coordi-
nate their activities and resolve possible conflicts aris-
ICSOFT 2009 - 4th International Conference on Software and Data Technologies
154