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