H. Kosch, L. Böszörményi, H. Hellwagner (Eds.): Euro-Par 2003, LNCS 2790, pp. 1027–1037, 2003.
© Springer-Verlag Berlin Heidelberg 2003
Programming Coordinated Motion Patterns with the
TOTA Middleware
Marco Mamei
1,2
, Franco Zambonelli
2
, and Letizia Leonardi
1
1
Dipartimento di Ingegneria dell’Informazione – Università di Modena e Reggio Emilia
Via Vignolese 905 – Modena – ITALY
2
Dipartimento di Ingegneria dell’Informazione – Università di Modena e Reggio Emilia
Via Allegri 13 – Reggio Emilia – ITALY
{mamei.marco, franco.zambonelli, letizia.leonardi}@unimo.it
Abstract. In this paper, we present TOTA (“Tuples On The Air”), a novel
middleware to coordinate the movements of a large number of autonomous
components (i.e. agents) in a ubiquitous computing scenario. The key idea in
TOTA is to rely on spatially distributed tuples for both representing contextual
information and supporting uncoupled and adaptive interactions between
application components. The TOTA middleware takes care both of propagating
tuples across a network on the basis of application-specific rules and of
adaptively re-shaping the resulting distributed structures accordingly to changes
in the network structures. Application agents – via a simple API – can locally
sense such distributed structures to achieve context-awareness and to effectively
coordinate their movements.
1 Introduction
Computing is becoming intrinsically ubiquitous and mobile [6]. Computer-based
systems are going to be embedded in all our everyday objects and in our everyday
environments. These systems will be typically communication enabled, and capable of
interacting with each other in the context of complex distributed applications, e.g., to
support our cooperative activities [4], to monitor and control our environments [2],
and to improve our interactions with the physical world [9]. Also, since most of the
embeddings will be intrinsically mobile, distributed software processes and
components (from now on, we adopt the term “agents” to generically indicate the
active components of a distributed application) will have to effectively interact with
each other and effectively orchestrate their motion coordination activities despite the
network and environmental dynamics induced by mobility.
The above scenario introduces peculiar challenging requirements in the
development of distributed software systems: (i) since new agents can leave and arrive
at any time, and can roam across different environments, applications have to be
adaptive, and capable of dealing with such changes in a flexible and unsupervised
way; (ii) the activities of the software systems are often contextual, i.e., strictly related
to the environment in which the systems execute (e.g., a room or a street), whose