DYNAMIC INTERACTION SPACES

Size: px
Start display at page:

Download "DYNAMIC INTERACTION SPACES"

Transcription

1 Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Dottorato di Ricerca in Informatica XVII Ciclo Anno Accademico DYNAMIC INTERACTION SPACES AND SITUATED MULTI-AGENT SYSTEMS: FROM A MULTI-LAYERED MODEL TO A DISTRIBUTED ARCHITECTURE Giuseppe Vizzari Ph.D. Thesis Thesis advisor: Prof. Stefania Bandini Thesis tutor: Prof. Giancarlo Mauri Ph.D. Coordinator: Prof. Giancarlo Mauri

2

3 CONTENTS 1 State of the art in Agent Interaction Models Introduction A taxonomy of Agent Interaction Models Direct interaction models Agent Communication Languages The discovery issue The ontology issue Indirect interaction models Artifact mediated interaction Spatially grounded/space mediated Formalization of indirect agent interaction models Hybrid approaches Interaction models and agent environment modelling Multilayered Multi Agent Situated System Model overview Model basics Applications and chapter outline Formal definition MMASS Space: Agent Environment MMASS Fields: At a Distance Interaction MMASS Agents Agent Behavior MMASS Turing Machine Control agent type Head agent type Cell agent type Discussion MMASS Life A MAS modelling of Conway s Life Life agents

4 2 3 Mechanisms supporting MMASS interaction model Supporting MMASS: issues, scenarios and design choices Field diffusion Centralized approach Distributed approach Proposed algorithm and structures Discussion Reaction Synchronous environments Asynchronous environments Agent movement Multiple layer issues Stellar configuration Bridge configuration Superposed configuration Site deployment Supporting technologies Middlewares for information diffusion Supports for specification and configuration A MMASS case study Pervasive applications in the automotive context Spatial abstraction layer Emergency management layer Touristic information and advertisement layer Towards an implementation Layers and technologies Interactions and strategies Conclusions and future developments 135

5 ACKNOWLEDGEMENTS There are many people I would like to thank before actually starting this dissertation. First of all I would like to thank Prof. Stefania Bandini, my PhD Advisor, for her constant attention and for being an unceasing source of stimuli to do better. Then I would also like to thank Prof. Carla Simone as this work builds on results of her previous collaboration with Stefania Bandini. I would also like to thank Prof. Giancarlo Mauri for his tutoring activity and his support on specific aspects of this work. I would like to thank Prof. Andrea Omicini and Prof. Paolo Petta for their useful comments of preliminary versions of this work. Thanks to all the friends at the Laboratory of Artificial Intelligence (it s hard to write the new name, the old one is still in my fingers!) at the Department of Computer Science, Systems and Communication of University of Milan-Bicocca. I also want to thank all the students I have supervised in their degree thesis during these years; I hope it was a useful experience (or at least not so painful or harmful!) for you, it surely was for for me. Agents environment and interaction is important, and you all contributed in realizing a very good work environment for that strange kind of agent that I am. My very special thanks to Sara Manzoni for her collaboration and discussions on agent related topics, but also for her help and understanding in general. I d also like to thank Paolo Mereghetti and Fabio Sartori, friends and companions in these years of our PhD course (and many other activities). Last but not least, I would like to thank my parents, my brother and my sister-in-law for their support and understanding throughout all these years. It would not have been possible for me to write this dissertation without the fruitful interactions with so many people which I could not explicitly thank here. I hope I will be able to thank them, along with everyone which appears in this page, with my everyday actions more than with simple words.

6 4

7 INTRODUCTION Technological innovation is constantly transforming the environment wherein we live, work and interact. The growing availability of ever smaller computational devices and pervasive network connectivity allow to conceive new applications that support users in interactions among themselves, and with computer systems. These applications should be able to exploit information obtained by the interaction with the environment and with other autonomous entities placed in it. Agent based models, and interaction models defined for these systems, can provide abstractions, models and instruments (both conceptual and computational) for the design and development of complex context-aware systems. The research area in which this PhD thesis can be set is thus focused on the modelling, design and implementation of Multi Agent Systems (MAS) [Fer99]. The latter are systems made up of a set of autonomous components which interact, for instance according to collaboration or competition schemes, in order to contribute in realizing an overall behaviour that could not be generated by single entities by themselves. The main matter of this thesis is to focus on agent interaction models, which are the formal and computational frameworks defining mechanisms which allow these autonomous entities to interact. In particular, the main goal of this thesis is to propose an interaction model exploiting spatial information in order to provide interaction mechanisms that are aware of the context in which the involved entities are placed. The proposed interaction model is the one defined by the Multilayered Multi Agent Situated System, which is a formal and computational framework for the definition of MASs characterized by an explicit representation of agents environment and interaction mechanisms that are dependant on spatial features of this environment and of the context of interaction. MMASS agents are situated, meaning by that that they have a specific position in the environment. Such a position and, more generally, the spatial context in which agents are situated, determines their pos-

8 6 sibility to perceive, act and interact with other entities. In fact, agents which wish to interact have two available mechanisms: the first one, agent reaction, provides the possibility to define a coordinated change in the state of entities that are placed in adjacent positions of the environmental spatial structure. Such a change may take place only when the involved entities have previously agreed to take part in the interaction (in order not to violate agent autonomy). Another mechanism, allowing instead the interaction among distant entities (i.e. agents whose positions are not adjacent in the environmental spatial structure) provides the possibility for agents to emit signals which are spread in the environment, modulating their intensity throughout the diffusion in the space according to specific rules related to the type of signal, and possibly reaching other entities. The latter, according to their state and perceptive capabilities, may be able to perceive these signals (according to their state and perceptive capabilities), and activate specific actions according to their behavioural specifications. MMASS agents environment is multilayered, meaning by that that it is composed of several interconnected spatial structures, possibly related to different aspects of the environment (for instance abstractions of a physical space but also topologies based on a non physical notion of adjacency). These layers are connected by means of interfaces, which regulate the exchange of fields among them. In other words, agents placed in one layer may influence other entities, not only those positioned in the same layer, but also those that are situated in other ones that may be reached by their signals, according to the diffusion functions and to the spatial structure of the environment. Traditionally agent interaction models provide a direct exchange of information among the communication partners, and the related mechanisms completely disregard information related to agent environment and context. In fact, provided that an entity is able to address its communicative acts to another one, the related messages will be delivered by the underlying platform without considering any contextual element. Indirect models for agent interaction have also been defined, and they provide a medium which agents may observe and modify in order to dynamically establish a relationship among them. This medium represents a possible way of introducing constraints to interaction mechanisms: according to the metaphor adopted to define these constraints these models allow to represent and exploit different kinds of information, for instance related to organizational aspects or spatial abstractions of agents environment. The MMASS interaction model can be classified as a spatially grounded agent interaction model.

9 7 The MMASS model is formally defined, and its concepts and related mechanisms are exemplified with the description of specific elements of applications ranging from theoretical ones (e.g. the modelling of a Deterministic Turing Machine) to application-oriented ones (e.g. simulation of pedestrian movement in realistic environments). The MMASS interaction model presents specific issues that must be faced in order to design computational mechanisms supporting the abstract and formal ones defined by the model. A significant part of this work is devoted to the analysis of these issues and to the proposal of approaches to the design and implementation of mechanisms supporting the MMASS agent interaction model in the various possible situations (i.e. synchronous vs. asynchronous, centralized vs. distributed situations). This part of the work is aimed at the design of mechanisms supporting the implementation of an infrastructure for MAS engineering (see, e.g., [OOR04]). The rationale of this work is to move the burden of interaction from agents to their environment, actualized by an infrastructure, which represents a suitable support for their operation, and specifically, for their interaction. A specific case study is finally described in order to show how the MMASS and the related interaction model can be fruitfully adopted for the modelling of a context-aware, distributed application. The thesis is organized into four chapters and more precisely: the first one describes the state of the art in agent interaction models, defining a taxonomy and discussing advantages and issues related to the various described approaches and models; it will be shown how conceptual choices about the agent interaction model have a deep influence both on the modelling activity and on the derived software system. There are several overviews and surveys of the MAS area (see, e.g., [Nwa96, WJ95]) but none of them is specifically focused on agent interaction models, and some other works are specifically devoted to the analysis of coordination models and infrastructures that can be exploited in the design and development of agent based systems (see, e.g., [Pap01, BMZ04]). The goal of this chapter is to give a taxonomy of existing agent interaction models and set MMASS into this part of the research in MASs; Chapter Two formally defines the MMASS model, introducing the related concepts and mechanisms, defining their semantics and also showing examples describing elements of various applications. In particular the spatial structure of agents environment

10 8 is introduced, then the field-based interaction mechanism is described and concepts related to the definition of agents, their perceptive capabilities and behavioural specification are also defined; two comprehensive examples (a MMASS modelling of the Deterministic Turing Machine and of Conway s Life) are finally presented in order to show the model expressiveness; issues and proposed mechanisms supporting the interaction model defined by the MMASS are described in Chapter Three; in particular the main topics that are discussed are related to the design of algorithms supporting field diffusion (with specific reference to distributed systems), and to mechanisms supporting reaction as a coordinated change of state among adjacent agents (with reference synchronous and asynchronous systems); a first proposal for mechanisms supporting agent mobility is also sketched; a brief overview of possible viable supporting technologies (specifically devoted to information diffusion in distributed environment and supporting the definition, configuration and execution of MMASS based applications) is also given; Chapter Four is related to a case study describing the application of the MMASS model to an application in the automotive context; more precisely the aim of this Chapter is to show how the MMASS interaction mechanisms can be fruitfully adopted to model pervasive context-aware systems integrating different aspects of a specific reality; in particular the case study provides the exploitation of spatial information related to the position of some specific agents, but also the modelling of logical aspects as well (e.g. the workload level of operators in an assistance centre). The work presented in this thesis has been partially presented to scientific workshops, conferences and journals related to the MASs research area. In particular, the main references to these works are the following: 1. Stefania Bandini, Sara Manzoni, and Giuseppe Vizzari. Situated cellular agents: a model to simulate crowding dynamics. IEICE Transactions on Information and Systems: Special Issues on Cellular Automata, E87-D(3): , Stefania Bandini, Sara Manzoni, and Giuseppe Vizzari. Towards a specification and execution environment for simulations based on mmass: Managing at a distance interaction. In Robert Trappl,

11 9 editor, Proceedings of the 17th European Meeting on Cybernetics and Systems Research, pages Austrian Society for Cybernetic Studies, Sara Manzoni, Fabrizio Nunnari, and Giuseppe Vizzari. Towards a model for ubiquitous and mobile computing. In Theory and practice of open computational systems (TAPOCS) at WETICE 2004 (Workshops on Enabling Technologies: Infrastructure for the Collaborative Enterprise), pages IEEE Computer Society, Giuseppe Vizzari and Stefania Bandini. Coordinated change of state for situated agents. In WOA 2004 Sistemi Complessi e Agenti Razionali, Flavio De Paoli and Giuseppe Vizzari. Context dependent management of field diffusion: an experimental framework. In Giuliano Armano, Flavio De Paoli, Andrea Omicini, and Eloisa Vargiu, editors, WOA 2003 dagli Oggetti agli Agenti Sistemi Intelligenti e Computazione Pervasiva. Pitagora Editrice, Stefania Bandini, Sara Manzoni, and Giuseppe Vizzari. A spatially dependant communication model for ubiquitous systems. In The First International Workshop on Environments for Multiagent Systems, LNCS. Springer-Verlag, 2004 (in press). 7. Stefania Bandini, Giancarlo Mauri, and Giuseppe Vizzari. Supporting action-at-a-distance in situated cellular agents. Fundamenta Informaticae, 2004 (in press). 8. Stefania Bandini, Sara Manzoni, and Giuseppe Vizzari. Towards a platform for mmass based simulations: focusing on field diffusion. Applied Artificial Intelligence, 2004 (to appear).

12 10

13 CHAPTER 1 STATE OF THE ART IN AGENT INTERACTION MODELS 1.1 INTRODUCTION Interaction is a key aspect in Multi Agent Systems (MAS). There is a plethora of definitions for the concept of agent and most of them emphasize the fact that this kind of entity should be able to interact with their environment and with other entities in order to solve problems or simply reach their goals according to coordination, cooperation or competition schemes. The essence of a MAS is the fact that the global system dynamics emerges from the local behaviours and interactions among its composing parts. Strictly speaking, for some kind of MAS the global dynamics is just the sum of local behaviours and interactions, so we cannot always speak of emergent behaviour when we talk about a MAS. However the assumptions that underlie the design of an interaction model (or the choice of an existing one for the design and implementation of a specific application) are so important that they have a deep impact on the definition of what an agent is (e.g. an interpreter of a specific language, a perceiver of signals). Therefore it is almost an obvious consequence that interaction mechanisms have a huge impact on the modeling, design and development of applications based on a specific kind of MAS, which in turn is based on a particular interaction model. It is thus not a surprise that a significative part of the research that was carried out in the agent area was focused on this aspect. Moreover this is a convergence point in which many different aspects must meet in order to define models which can lead to instruments, tools and middleware/platforms facilitating the development of MAS-based applications. Theoretical research is needed to devise effec-

14 12 STATE OF THE ART IN AGENT INTERACTION MODELS tive communication models, to clarify their expressive power, to proof specific properties, to put them in relation with each other, and ultimately to define which are better for which kind of application (from a conceptual point of view). Applied research is also needed in order to put concepts to the test of concrete domains, situations and scenarios; from this point of view contribution is needed from various areas, from distributed systems and computer networks to software engineering. It is very frequent to find different approaches, with totally different philosophies and rationales, from bottom-up approaches which tend to develop new middlewares and platforms (often as extensions of existing ones), in order to test them against real-world applications, to top-down approaches that try to develop on thorough theoretical analysis and research on specific subjects even long before getting to actual software design and development. This chapter represents an attempt to define a conceptual taxonomy of currently known/available agent interaction models, trying to define advantages and issues related to them, both from a conceptual and a technical point of view. A sketch of this taxonomy will be delineated in Section 1.2, while the rationale behind the classification and details on various classes will be described later. Section 1.3 will describe approaches that provide a direct interaction among communication partners; the main languages and components of systems based on this approach will be briefly introduced, along with main benefits and issues of this approach. Section 1.4 will instead introduce indirect interaction models, which provide the creation of intermediate levels among communicating agents. Section will discuss the possibility to obtain a comprehensive formalization of indirect interaction models, and later on also the possibility to describe hybrid approaches will be delineated. Finally Section 1.6 will discuss the relationships among interaction models and the concept of agent environment. 1.2 A TAXONOMY OF AGENT INTERACTION MODELS There are many possible dimensions and aspects of agent interaction models that can be chosen and adopted in order to define a possible taxonomy. These choices have a rationale, a motivation, and generally it is to highlight differences in various approaches, often with the aim of showing that an approach is more suited than others in a specific situation. This taxonomy has a similar motivation: the first aspect that was considered to classify agent interaction models is related to the fact that agents communicate directly (for instance exchanging messages), and thus the model does not include an abstraction of the ac-

15 1.3 DIRECT INTERACTION MODELS 13 Agent interaction Direct Indirect Acquaintance a priori ACL based Guided/mediated by artifacts Mediated by agents environment Agent discovery through middle agents Agent discovery through middle agents and acquaintance models Figure 1.1: The proposed taxonomy of Agent Interaction Models. tual communication channel, or there is some media interposed among the communication partners which is explicitly included in the interaction model. While the former approach (with specific reference to Agent Communication Language based models) is the most widely adopted in the agent area it has its drawbacks, and most of them they are related to the issue of agents acquaintance. The way ACL-based agent interaction models deal with this issue is the subject of another dimension of the taxonomy, providing direct a-priori acquaintance among agents, the adoption of middle agents for information discovery and the development of more complex acquaintance models to tackle issues related to the representation and maintenance of acquaintance information but also to robustness and scalability of the agent infrastructure. Direct interaction models will be more thoroughly described in Section 1.3. However there are other agent interaction models providing an indirect communication among them. Some of these approaches provide the creation and exploitation of artifacts that represent a media for agent interaction (the metaphor of the blackboard is dominant in this area). Other indirect interaction models are more focused on modelling agent environment as the place where agent interactions take place, which thus influences interactions and thus agent behaviour. Section 1.4 describes these indirect interaction approaches, whose rationale seems to be move the burden of interaction outside the agent. 1.3 DIRECT INTERACTION MODELS The first and most widely adopted kind of agent interaction model provide a direct information exchange between communication partners.

16 14 STATE OF THE ART IN AGENT INTERACTION MODELS This approach abstracts away from the details related to the communication channel that allows the interaction, and does not include it as an element of the abstract interaction model. Generally the related mechanisms provide thus a point-to-point message-passing protocol regulating the exchange of messages among agents. There are various aspects of the communicative act that must be modelled (ranging from low level technical considerations on message format to conceptual issues related to the formal semantics of messages and conversations), but generally this approach provides the definition of suitable languages to cover these aspects. While this approach is generally well-understood and can be implemented in a very effective way (especially as it is substantially based on the vast experience of computer networks protocols), in the agent context it requires specific architectural and conceptual solutions to tackle issues related to the agent acquaintance/discovery and ontological issues AGENT COMMUNICATION LANGUAGES Intuitively an Agent Communication Language (ACL) provides agents with a means of exchanging information and knowledge. This vague definition inherently includes the point of view on the conception of the term agent, which is thought to be an intelligent autonomous entity whose features include some sort of social ability [WJ95]. According to some approaches this kind of feature is the one that ultimately defines the essence of agency [GK94]. Leaving aside the discussion on the definition and conception of agency, this section will focus on what the expression social ability effectively means. To do so we will briefly compare these approaches to those that allow the exchange of information among distributed components in legacy systems 1 (e.g. RPC, RMI, CORBA). In fact they share some of the basic issues of ALCs, and especially the definition of a communication channel allowing the reliable exchange of messages over a computer network (i.e. the lower level aspects of the communication). What distinguishes ACLs from such efforts are the objects of discourse and their semantic complexity; in particular there are two aspects which distributed computing protocols and architectures do not have to deal with: autonomy of interacting components: modern systems components (even though they can be quite complex and can be considered as self sufficient with reference to supplying a specific ser- 1 With this expression we mean pieces of software which are not designed to interact with agents and agent based systems.

17 1.3 DIRECT INTERACTION MODELS 15 Communication intent (i.e. speech act) Ontological level (i.e. contents) Message format (i.e. fields, sizes) Communication semantics Message content semantics Message syntax Figure 1.2: Layers and concerns of an Agent Communication Language. vice) have a lower degree of autonomy than the one that is generally associated to agents; the information conveyed in messages does not generally require a comprehensive ontological approach, as structures and categories can be considered to be shared by system components. With reference to autonomy, while traditional software components offer services and generally perform the required actions as a reaction to the external requests, agents may decide not to carry out a task that was required by some other system entity. Moreover generally agents are considered temporally continuous and proactive, while this is not generally true for common software components. With reference to the second point, generally components have specific interfaces which assume an agreement on a set of shared data structures. The semantics of the related information, and the semantics of messages/method invocation/service requests, is generally given on some kind of (more or less formally specified) modelling language, but is tightly related to component implementation. For agent interaction a more explicit and comprehensive view on domain concepts must be specified. In order to be able to effectively exchange knowledge, agents must share an ontology (see, e.g., [Gru95]), that is a representation of a set of categories of objects, concepts, entities, properties and relations among them. In other words, the same concept, object or entity must have a uniform meaning and set of properties across the whole system. ASPECTS AND LAYERS IN ACL MODELS More schematically an ACL must thus face: technical issues, mostly related to the message format specification and delivery, which are almost completely shared with distributed computing protocols;

18 16 STATE OF THE ART IN AGENT INTERACTION MODELS semantical issues related both to the single message contents and to conversational aspects. Figure 1.2 sketches a three layer organization of an ACL [LFP99], separating the semantics of the content from the one related to the message as a part of a conversation. ACLs in fact provide the attachment of a speech act or performative to every message, indicating whether it represents an assertion, a query, a request or any other supported primitive. This aspect will be analyzed later on. The lower layer deals with technical details of message syntax and effective transport. Generally this layer defines a specific format for messages, indicating what kind of information must be specified (e.g. message sender and recipient, message identifier, and so on) and how much memory is devoted to these fields. Moreover lower level protocols are often adopted and exploited in order to implement communication channels between agents (for instance the Zeus platform uses raw TCP/IP [NNLC99], while Jade may exploit different protocols as transports, from CORBA to HTTP [Rim03]). The message content is generally opaque to the previous layer and is the focus of the second layer, which has to deal with ontological issues (i.e. what agents may talk about) and with the possible expressions that can be stated with reference to elements specified by the ontology (i.e. what can they say about objects). In other words this layer deals with the message content, that must be referred to the shared ontology and may thus specify propositions on domain objects. According to several approaches these issues are (to a certain degree) independent from the other layers [LFP99]. Generally they are thus delegated to a specific content language, which thus regulates how propositions are expressed, rather than managing low level technical details or capturing propositional attitudes. The main matter of ACLs is thus the definition of communication semantics. As previously introduced, generally messages are associated to a speech act of performative which indicates the intention of the sender, the meaning of the message in the communication (mentalistic approach to communication semantics definition). For instance an agent could inform another one about a new fact (that should thus be added to the knowledge base of the receiver), of could require a service or an information. To specify a semantics of the ACL means to specify what happens in all of these cases, in other words what is the effect of all the performatives provided by the language. To this purpose axiomatic and logical approaches are generally adopted, as they are naturally suited to model agents mental states (i.e. beliefs, desires, intentions) and decision mak-

19 1.3 DIRECT INTERACTION MODELS 17 Figure 1.3: Conversational specification for the FIPA request performative. ing processes (e.g. theories of rationality). The matter is that agents are not simple programming language interpreters, they are supposed to be autonomous, and they should thus be able to make decisions on their behaviours. For instance, an agent is allowed to decide if it should accept or refuse a task which was required by another entity. This kind of specification must thus express the minimal set of constraints that an agent must comply in order to be a correct interpreter of the ACL without hindering (or even denying) its autonomy. These considerations indicate that another possibility for the specification of the semantics of an ACL is similar to the one adopted for the specification of conversation protocols [CLF01] (objectivist approach to communication semantics definition). While the formal specification of admitted conversations is generally expressed through Colored Petri Nets, Figure 1.3 informally illustrates the possible conversations related to the request performative. Agent autonomy is thus limited by the formal specification of ACL semantics in fact, for instance, it is not allowed not to answer to a request message, simply ignoring it. Issues related to ACLs semantics are still controversial and open: in [NRW04] some limitations of the mentalistic and objectivist approaches are highlighted and a different approach based on expectable consequences of utterances is described. ACL COMMUNICATION INFRASTRUCTURE So far only the issues related to agent-to-agent communication were introduced, but the approach also has to deal with the acquaintance problem, in other words, how agents become aware of the presence of other

20 18 STATE OF THE ART IN AGENT INTERACTION MODELS [...conversation...] inform(address(b)) Agent B Agent A query(address(b)) Middle Agent query(who_provides(x)) inform(address(n)) Agent n [...conversation...] Agent presence and capabilities notification Figure 1.4: A sample scenario of application for a middle agent. entities in the system. In general agents may be thought to have some a-priori acquaintance information, but in an open society of software agents the most interesting and useful interactions cannot be predefined but emerge at run time according to domain specific considerations. For instance, in a multi agent system modelling a supply-chain, a society that needs a specific raw material will search for the supplier which provides it at the best conditions according to its own considerations and preferences (e.g. the cost of the product is more important than the reliability of the supplier). In order to allow this possibility the most common approach is the implementation of facilitators or middle agents that may implement a yellow pages service providing: basic name-address translation: a middle agent providing this service (also called Agent Name Server) receives a message from any other agent which has to declare its name and network address. By storing this data it is able to supply the address of an active agent to other agents that know its name. This is a basic service that is necessary even for systems exploiting only static a-priori acquaintance information (in order to allow network addresses in-

21 1.3 DIRECT INTERACTION MODELS 19 dependence); information on agent capabilities (services): this is a more advanced service that requires a preliminary indication of services offered by agents (and a dynamic update of this information, in case of dynamism in agent capabilities) and allows the expression of queries requiring the names and addresses of agents capable of providing a specific service. Of course, services and the attributes adopted for their description should be included in the common ontology. Of course agents must have a predefined information on how to reach a middle agent, that plays thus a similar role to well known services in computer networks (i.e. a-priori information own by agents has been reduced, not eliminated). Figure 1.4 shows two sample conversations among Agent A and a Middle Agent. In preliminary phases all agents in the scenario have notified the middle agents about their presence and capabilities; the name and especially the address of this agent must be known a priori by all agents willing to join the system. Suppose that Agent A has also a predefined acquaintance with Agent B (i.e. it knows its name) and wants to start a conversation with it. In order to obtain its (network) address it must query the middle agent asking for the address of Agent B; once obtained it it will be possible to set up a conversation. Another possibility is that Agent A wants to know who is able to perform a specific service X; once again it will query the middle agent asking for agents that notified that they are capable of supplying this service. In this case the middle agent replies that Agent n is able to perform that task and thus another conversation will start. MAIN ACL MODELS The ACL approach, just like the mentalistic and deliberative school, is probably the most diffused in the agent area. There are two main representatives of this approach and more precisely KQML [FFMM94] and Foundation for Intelligent Physical Agents (FIPA) ACL 2. The former is a result of the DARPA Knowledge Sharing Effort, while the latter is an attempt to develop specifications supporting the interoperation among agents and agent-based applications. They have been adopted and implemented by several platforms for multi-agent systems development, and even though they share the same approach they present significative differences that hinder (or possibly prevent) attempts to make inte- 2

22 20 STATE OF THE ART IN AGENT INTERACTION MODELS Figure 1.5: Semantics of the KQML tell performative and FIPA inform communicative act ( from Agent communication languages: the current landscape, Y. Labrou, T. Finin and Y. Peng, in IEEE Intelligent Systems 2(14), 1999). grate the two languages (or, more precisely, suites of languages). The set of performatives is substantially different, for instance KQML includes some facilitation primitives (e.g. broker, recommend, recruit) whereas FIPA ACL does not, and the semantics of the two languages is specified with different approaches. KQML performatives semantics is specified in an axiomatic way, by stating preconditions, postconditions and completion conditions (involving both the communication partners), while FIPA ACL adopts the concepts of feasibility preconditions and rational effect. While the rationale behind the two kinds of semantics is similar, and essentially to define a compromise between agents autonomy and predictability/control of the communication, a translation between the two languages in general is not possible, even if there can be ways to approximate KQML primitives in FIPA s framework and viceversa. Figure 1.5 shows a comparison between the semantics of the KQML tell performative and FIPA inform communicative act, which have a very similar meaning and semantics. While the ACL approach has several advantages, and in particular it allows a straightforward and effective implementation exploiting existing communication infrastructures for distributed systems, it also presents some drawbacks. For instance a direct interaction among agents presents serious security issues. In the following two of the main issues related to agent acquaintance/discovery and ontological issues will be analyzed THE DISCOVERY ISSUE The growing diffusion of technologies and their evolution allows to devise systems and applications that were unconceivable just a few years ago. The Internet is a clear example of how these factors can have a

23 1.3 DIRECT INTERACTION MODELS 21 deep effect on everyday life of a significative amount of people. Research and results of the MAS area surely represent a relevant effort towards the development of systems that exploit the new possibilities in order to obtain applications that are more flexible, open, aware of their context, both in a conceptual and in a physical sense [ZP02]. Curiously the openess and flexibility requisites can be problematic for ACL based approaches. In fact the need to have an ontology shared by all agents in the system and the presence of an infrastructure for the management of agent acquaintance, addressing and in general for brokering, that is centered on specific key nodes (i.e. middle agents) can be a severe impediment to open, flexible system development. The ontology issue will be better analyzed in Section 1.3.3, while now some approaches to tackle issues related to agent discovery and acquaintance will be briefly introduced. The main issues related to the agent infrastructure required for the management of an ACL-based direct interaction model can be summarized as follows: communication overhead: in order to find out what is the best communication partner, or simply to translate its symbolic identifier into a physical address, an agent must set-up a communication with a middle agent (playing respectively the role of broker or agent name server); centralization of key roles: information on entities available in the system and on their capabilities is stored in centralized stored in specific points (even just one) of the system; middle agents are crucial entities which may represent a bottleneck (from a performance evaluation point of view) but also a weak spot a for system robustness. In order to tackle the first issue some approaches propose the adoption of real acquaintance models [MPv01] as a mean of having an efficient representation, maintenance and exploration of what is often defined social knowledge. More than just providing a knowledge representation approach to better structure information related to agents acquaintance and some kind of caching method to reduce the network load generated by queries to middle agents, this approach also recognizes the need for a more complex and structured infrastructure for the distribution and maintenance of social knowledge. In fact one one feature that all the approaches tackling the above specified issues have in common is the presence of many different middle agents in a MAS, as shown in Figure 1.6. This redundancy can increase the robustness of the system,

24 22 STATE OF THE ART IN AGENT INTERACTION MODELS Agent 3 Agent 4 Agent 2 Middle agent 2 Agent 1 Middle agent 1 Middle agents infrastructure Middle agent k Agent n Figure 1.6: Many ACL based models provide a number of middle-agents, in order to tackle issues deriving from a centralization of social knowledge. and also allows to balance the load generated by requests of common agents and to reduce the latency of each request. Of course this redundancy must be suitably managed in order not to introduce inconsistencies in social knowledge. An approach to tackle this issue is related to teamwork-based techniques [KC00] which essentially provide a group of middle agents where everyone of them is connected to all the others, forming thus a complete graph. This approach allows to obtain a robust infrastructure for the diffusion and maintenance of social knowledge, but presents scalability and network load issues. Another approach provides a reduction of the number of connections among middle agents introducing a dynamical hierarchical teams architecture [Tic04]. A thorough analysis of structural characteristics that must be preserved by the network of middle agents in order to obtain specific levels of robustness and scalability allows the reduction of connections among them thanks to the introduction of a hierarchical structure. While the results of this work are useful to design and analyze networks of middle agents, other approaches provide a self-organization approach to obtain a flexible, dynamic, yet effective, way of obtaining a robust infrastructure for social knowledge [Wan02]. An analysis of types of middle agents, infrastructures for MASs and their application for Web Services and their interoperation can be found in [Syc01] THE ONTOLOGY ISSUE In order to interact agents need a conceptualization of the domain of interest and a shared vocabulary to communicate facts related to this

25 1.3 DIRECT INTERACTION MODELS 23 domain. This conceptualization is expressed in an ontology, that must be defined in a formal language such as a programming language or a formal logic. An ontology abstracts the essence of the domain of interest and defines various types of objects, their properties and relationships. To communicate in an effective way agents must share these concepts and their representation, and thus these definitions should be represented in an artifact shared by the agents which mean to interact. Moreover, in general the formal representation of these concepts has an impact on the definition of agent behaviour, so it should be known to agent developers. In current systems based on an ACL approach to agent interaction, the ontology is a file, made up of expressions in a formal language, which is somehow replicated in all agents platforms. Despite the fact that mechanisms supporting this replication could allow a certain degree of flexibility (e.g. non conflicting ontology extensions) this scheme has some intrinsic problems, and more precisely: ontological knowledge representation issues: these are actually foundational issues, related to the basic question what should be represented? An ontology should be just a representation of concepts that are relevant to our system, what exists for the goals of the modelled system, or it should be some sort of general-purpose scheme? What kind of relationships should be represented? What kind of constraints should be represented? the assumption providing agents agreement on a single ontology is not feasible in an open systems scenario. In fact, it is implicitly assumed that all agents developers must comply to this shared conceptualization in the modelling, design and implementation of their agents (with reference both to their interactions and their behavioural specification) [HJ02]. This shared artifact becomes a conceptual bottleneck, limiting the feasibility of the whole system, but also reducing its flexibility allowing just non-contradicting modifications of the ontology (or causing a cascade of modifications in agents interactions and behaviours). Of course, in order to introduce a limited form of flexibility, an infrastructure for the management and distribution of ontology related information must be implemented and maintained. An attempt to tackle some of these issues are related to the detection of discrepancies among ontologies owned by the communication partners [BvEP04]. The latter, whenever such an anomaly occurs, set up a

26 24 STATE OF THE ART IN AGENT INTERACTION MODELS dialogue in order to allow the receiver of a not understood message to align its private ontology with the one owned by the sender. 1.4 INDIRECT INTERACTION MODELS From a strictly technical point of view, agent communication is generally indirect even in direct agent interaction models. In fact most of these approaches provide the adoption of some kind of communication infrastructure supplying a reliable end-to-end message passing mechanism. Nonetheless, the adoption of a conceptually direct agent interaction model brings specific issues that were previously introduced. This section will focus on models providing the presence of an intermediate entity mediating (allowing and regulating) agent interaction. This communication abstraction is not merely a low level implementation detail, but a first class concept of the model. This has clearly an impact on agents and on the way they can interact, through the introduction of new concepts and mechanisms for discovery, information exchange and coordination. The main characteristic of mediated interaction models that distinguishes them from the ones that provide direct communication among agents is name uncoupling. Agents do not need a direct acquaintance of each others, as the interaction medium either supplies awareness of the presence of other entities or the interaction mechanisms do not need agents to be aware of each other. Of course agents must be aware of the interaction media, which represents an abstraction of their environment. Other characteristics of these models are also time and space uncoupling (i.e. interacting agents do not need to be at the same place, they do not even need to exists ate the same time), but these features can also be obtained in direct interaction models through a careful design of the communication mechanisms and infrastructure. In this section agent interaction models which provide indirect mechanisms of communication will be classified into artifact mediated and spatially grounded models. The distinction is based on the inspiration and metaphor on which these models are rooted. The former provide the design and implementation of an artifact which emulates concrete objects of agents environment whose goal is the communication of autonomous entities (the metaphor of the blackboard is extremely frequent in this category). Spatially grounded agent interaction models bring the metaphor of modelling agent environment to the extreme, recognizing that there are situations in which spatial features and information represent a key factor and cannot be neglected in analyzing and modelling a system.

27 1.4 INDIRECT INTERACTION MODELS 25 Both of these approaches provide interaction mechanisms that are deeply different from point-to-point message exchange among entities. In fact, the media which enables interaction intrinsically represents a context influencing agent communication. The following subsection will focus on artifact mediated interaction, while spatially grounded models will be described later on ARTIFACT MEDIATED INTERACTION In the real world a number of physical agents interact sharing resources, by having a competitive access to them (e.g. cars in streets and crossroads), but also collaborating in order to perform tasks which could not be carried out by single entities alone, due to insufficient competencies or abilities (e.g. people that carry a very heavy burden together). Very often, in order to regulate the interactions related to these resources, we build concrete artifacts, such as traffic lights on the streets, or neatly placed handles on large heavy boxes. Exploiting this metaphor, some approaches to agent interaction tend to model and implement abstractions allowing the cooperation of entities through a shared resource, whose access is regulated according to precisely defined rules. Blackboard-based architectures are the first examples of this kind of models, and later they have been modified in order to better fit the distributed approach and principles of MASs. In particular the concept of tuple space, first introduced in Linda, represents a pervasive modification to the basic blackboard model. This model, the related coordination language and other models that are rooted on it are extremely diffused. Finally the concepts of coordination artifact and agent coordination context, are aimed at a more comprehensive definition of the role, functionalities and possibilities of these approaches to agent interaction, beyond basic tuple spaces and towards context aware interaction models. BLACKBOARD BASED SYSTEMS The first example of mediated interaction model is representd by blackboard systems [EM88]. A blackboard is a shared data repository that enables cooperating software modules to communicate in an indirect and anonymous way. As shown in Figure 1.7, a typical blackboard system consists of tree kinds of components: knowledge sources (KSs), that are independent computational modules which compose the expertise needed to solve a problem;

28 26 STATE OF THE ART IN AGENT INTERACTION MODELS Knowledge Source 1 Knowledge Source 2 Control component Blackboard Knowledge Source 3 Knowledge Source n Figure 1.7: A conceptual diagram for a typical blackboard architecture. the blackboard is a global data repository containing the shared data; interaction between KSs only happens through the blackboard; a control component which manages conflicts of access to the shared data among the KSs. In fact the latter may access the blackboard autonomously, without being triggered by a centralized control system. There are various implementations of blackboard-based systems, with different rules for shared data access control. In some of these systems the autonomy of KSs is actually very limited, as the control component acts as a sort of centralized scheduler. Such a tight control of a single component, makes this approach unsuitable for MASs given their distributed nature. Nonetheless the idea of a virtual data structure shared by interacting autonomous entities was exploited in order to create several indirect agent interaction models. LINDA-LIKE INTERACTION MODELS The Linda [Gel85] coordination language probably represents the most relevant blackboard based model. It is based in the concept of tuple space, that is an associative blackboard allowing agents to share and retrieve data (i.e. tuples) through some data-matching mechanism (such as pattern-matching or unification) integrated within the blackboard. Linda also defines a very simple language defining mechanisms for accessing the tuple space. Its basic primitives are: out, that allows agents to put a tuple in the tuple space;

29 1.4 INDIRECT INTERACTION MODELS 27 in, which allows to take a tuple that matches a given pattern out of the tuple space; if no such tuple is present, agent suspends its operation until a tuple matching the specified pattern is inserted in the tuple space by another entity through an out operation; rd, that allows to non-destructively read a tuple that matches a given pattern; like in also this operation can suspend agent operation. Through this very limited set of simple operations it is possible to obtain complex coordinated agents behaviours. The rationale of this approach is to keep separated computation and coordination contexts as much as possible [GC92], by providing specific abstractions for agent interaction. With respect to direct interaction models, part of the burden of coordination is in fact moved from the agent to the infrastructure. The evolution of this approach has basically followed two directions: the extension of the coordination language and infrastructure, in order to increase its expressiveness or usability, and the modelling and implementation of distributed tuple spaces. In fact, on one hand, the very simple coordination language and infrastructure allows to obtain complex combined behaviours or interacting agents, but this is not an easy task as the provided abstractions are very basic ones. The main modifications to the Linda model provided extensions to the language (i.e. definition of new primitives, like non blocking in) and the possibility to program and extend the default behaviour of language primitives in order to adapt the coordination model to application specific needs. On the other hand, while a conceptually centralized virtual data structure can be a useful abstraction, a centralized implementation is characterized by a number of serious issues hindering its suitability in the MAS context, especially for the implementation of distributed systems. With reference to this issue, the Lime middleware [PMR99] represents an interesting distributed implementation of a Linda-like model (the traditional primitives are supported, augmented with other operations such as non-blocking read and in operations). Lime is designed to support the interaction of agents that are capable of moving in wired and ad-hoc networks. Instead of communicating through one centralized tuple space, in Lime each agent carries it s own tuple space and when agents reside on the same host (or a connected one), their tuple spaces are transparently merged. In this way agents have the illusion of a locally shared tuple space, whose management and maintenance in a distributed environment is delegated to lower conceptual levels implemented by the middleware. Other relevant approaches which provide

30 28 STATE OF THE ART IN AGENT INTERACTION MODELS a distribution of tuple spaces are MARS [CLZ00] and TuCSoN [OZ99]. These approaches also provide an extension to the basic Linda model by allowing a programmable behaviour for the tuple spaces. In other words the observational behaviour of MARS and TuCSoN tuple spaces is not fixed by the coordination model but can be tailored according to the application specific considerations. BEYOND TUPLE SPACES The title of this Section, and the class that was introduced in order to group these particular indirect agent interaction models, makes reference to the concept of artifact. The previously introduced models are surely artifacts, that is a man-made object built for a specific purpose, but none of those models actually specified what characterizes a coordination artifact [ORV + 04]. The concept, first introduced in [ROD03], is defines as an abstract model that takes inspiration from concrete objects supporting the interaction of physical entities. More precisely a coordination artifact is characterized by: a usage interface, defined in terms of a set of operations which allow agents to perform actions that modify the state of the artifact or simply perceive the outcome of a previously executed action; a set of operating instructions, which formally define how the artifact should be used in order to exploit its coordination service. Operating instructions should thus specify the protocol for agentartifact interaction, and the mentalistic semantics of actions and perceptions; a coordination behaviour specification, that formally describes the coordinating behaviour of the artifact, in terms of coordination rules required for enacting the coordination service. The previously introduced models and middlewares can surely fit this definition, provided that suitable formal definition of operating instructions and coordination behaviour of the interaction media are given (an activity which was performed for TuCSoN). Another interesting effort towards a full development of artifact based interaction models potential is represented by the concept of Agent Coordination Context [Omi02]. The rationale of the approach is to have a more comprehensive modelling of agents environment. In particular, when an artifact based indirect agent interaction model is adopted, these artifacts represent specific key points of the environment. Being conceptually centered, they are sorts of access points for

31 1.4 INDIRECT INTERACTION MODELS 29 Agent layer ACC layer (organization) Coordination artifact layer (coordination) Fabric/topology layer Operating environment layer agents ACC use and management tuple centre management node topology, discovery, connection, communication machines, OSs, networks, resources Figure 1.8: Layers, concerns and managed objects in an Agent Coordination Context based architecture. agents which require coordination services. It is thus possible to enrich the basic coordination model with additional functionalities, for instance, in order to: represent the set of roles activated and played (dynamically) inside a structured organization; define and enact/enforce formal contracts between the agent (or role) and the Institution (organization); implement security policies, specifying agents action/operation (access) to organizational resources. In this framework an agent may enter a coordination context for a working session, assuming a specific role and the related permissions and responsibilities. The act of assuming a specific role and access the coordination context is like signing a formal contract, a sort of Service Level Agreement. The conceptual centralization makes possible to implement and enact a Role-based Access Control to the services managed by the agent coordination context. Underlying this organizational level, the basic coordination services may be supplied by a traditional artifact based interaction model (see Figure 1.8), but the overall system offers much more than the services provided by a common Linda-like model.

32 30 STATE OF THE ART IN AGENT INTERACTION MODELS SPATIALLY GROUNDED/SPACE MEDIATED While the previously described indirect approaches define artifacts for agent interaction taking inspiration from actual concrete object of the real world, other approaches bring the metaphor of agent environment to the extreme by taking into account its spatial features. In these approaches agents are situated in an environment whose spatial features are represented (possibly in an explicit way) and have an influence on their perception, interaction and thus on their behaviour. The concept of perception, which is really abstract and metaphoric in direct interaction models and has little to do with the physical world (agents essentially perceive their state of mind, which includes the effect of received messages, like new facts in their knowledge base), here is related to a more direct modelling of what is often referred to as local point of view. In fact these approaches provide the implementation of an infrastructure for agent communication which allows them perceive the state of the environment in their position (and possibly in nearby locations). They can also cause local modifications to the state of the environment, generally through the emission of signals, emulating some kind of physical phenomenon (e.g. waves, pheromones). In some models a certain form of direct interaction is also allowed, but only for agents whose position allows a sort of contact (e.g. adjacent agents in discrete spaces). In other words agents interact in a different way according to their position in the spatial structure of the environment. The ancestors of these models can be identified in two different areas. On one hand Cellular Automata (CA) [Wol86], with their intrinsic spatial representation due to the neighborhood geometries, have often been considered environmental models for MASs. On the other hand, research in the area of robotic has always been focused on the development of physical agents. Even if autonomy is not a fundamental characteristic of robotic agents, models for their interactions were often considered in devising interaction models for situated agents. The concept of potential fields and gradients have been widely adopted for generating robot motion [Kha86]. SPACE AND SIMULATION The first kind of application domain whose features indicate that spatial features of the environment are key factors in the problem solving activity is simulation. In particular, there are a number of situations in which the reality to be modelled can be considered as being made up of a set of autonomous interacting entities placed in a physical en-

33 1.4 INDIRECT INTERACTION MODELS 31 vironment, acting according to their state and local perceptions. Situations and scenarios that can be classified in this category are biological systems, crowds and pedestrian in real environments, but also cars in streets and even malls in cities and extra-urban areas. In this kind of situation the space and position of agents influences its perception, behaviour and possible interactions with other entities in the system. Therefore these elements must be modelled, whatever interaction model is adopted to implement a simulation system for these realities. However, in direct interaction approaches concepts related to the spatial context in which interaction takes place are not elements of the model and must be unnaturally introduced in interacting entities (that should regulate their own interaction) or in third-part modules (e.g. other middle agents implementing a sort of space agent). In fact, in the last two cases, conceptual elements (i.e. interaction and spatial context management) would be mixed-up with other aspects related to domain specific issues (e.g. agents behaviour) and often delegated to ad-hoc implementations. Indirect interaction approaches seem to be more suited to model these situations, but artifacts for agent interactions and traditional coordination languages generally do not consider spatial features of the environment, focusing on rules of interaction related to abstract aspects of the collaboration activities related to specific (real or virtual) objects. The most widely used indirect interaction models in the simulation area context borrow an explicit spatial representation from CAs: in general, a grid or lattice of cells is adopted as an abstraction of a physical environment. Agents have a position in this grid and are only allowed to perceive the state of the cell they are situated on, and cells in their neighborhood (defined in similar way as for CAs). The first platform for MAS based simulations based on this approach was Swarm [MBLA96], a discrete event simulation toolkit developed at the Santa Fe Institute in the complex systems research area. There is a large number of platforms conceptually based on it (the most recent and relevant are Ascape 3, Repast 4, and Mason 5 ), whose differences are generally very limited. All these platforms generally provide an explicit representation of the environment in which agents are placed and also mechanisms for the diffusion of signals. This mechanism of agent interaction takes inspiration from the real world, in which physical agents often interact by modifying the state of the environment by emitting signals eclab/projects/mason/

34 32 STATE OF THE ART IN AGENT INTERACTION MODELS such as sounds, lights (but also through modifications of their own appearance), chemical substances (like pheromones). These signals may spread into the spatial structure of the environment and they may have an instantaneous effect and vanish, but may also persist in the environment indefinitely or vanishing according to specific laws. The behaviour of other entities depends on their perception of such signals, which may have (for instance) a repulsive or attractive effect. More than a specific model this should be considered a metaphor for building indirect, spatially grounded interaction models. In fact, in the above mentioned platforms, this diffusion mechanism is not well documented and, even though it allows a certain degree of configurability (e.g. through the definition of constants regulating signals diffusion and evaporation), it does not allow the definition of specific diffusion functions. Moreover the possibility to distribute signals over the spatial structure and the mechanism to regulate this process exploit specific spatial features. Therefore diffusion is strictly related to the definition and implementation of the spatial structure and, as a consequence, is only available for particular regular lattices (square and hexagonal grids). Specific models for situated MASs (see, e.g, [FM96]) have also been defined, but to our knowledge no simulation (nor general purpose) multi agent platform is based on these models. Some recent proposals are focused on the coordination of actions in situated MASs and on synchronization issues [WH03]. In this approach a model for simultaneous agent actions is defined: it includes centralized and (local) regional synchronization mechanisms for agent coordination. In particular, actions can be independent or interfering among each other; in the latter case, they can be mutually exclusive (concurrent actions), requiring a contemporary execution in order to have a successful outcome (joint actions), or having a more complex influence among each other (both positive or negative). Other works that are particularly relevant from a spatial modelling point of view are described in [MR96, GMR01]. These works however are focused on environment exploration and map building and do not define a comprehensive agent interaction model. SPACE, OTHER APPLICATIONS AND PERVASIVE SYSTEMS While it is clear the usefulness (and sometimes the actual need) of modelling spatial information for sake of simulating complex systems, the same is not generally true for other purposes. Nonetheless sometimes space is an important element of the system that has to be modelled, for instance when its goal is to coordinate the motion and activities of

35 1.4 INDIRECT INTERACTION MODELS 33 Figure 1.9: A diagram showing a Co-Field related to the presence of a single entity and the combined effects of multiple agents (from Co- Fields: Towards a Unifying Approach to the Engineering of Swarm Intelligent Systems, M. Mamei, L. Leonardi and F. Zambonelli, In Engineering Societies in the Agents World III (ESAW2002)). physical agents in a real environment. Moreover the current trend of technological innovations is actually transforming the environment where human actors live and the way in which they perceive their interactions. Computers are disappearing, meaning by that that their computational power is no more concentrated in identifiable spots, rather it is ubiquitous and can be potentially embedded in almost every object populating the environment. Interaction is also changing its nature, since it is no more necessarily performed through traditional devices connected to traditional computers. Computation is spread in the environment, actors move in it carrying mobile devices of different kinds and access the network in different (wired and un-wired) ways. In this new scenario the movement in a space and the related possibility to interact with other actors, according to the current location, represent new dimensions that must be taken into account as first class concepts. The environment influences what can be done and how tasks are performed, as the location influences communication capabilities, resources and available services. A first model for indirect agent interaction in distributed environments taking into account its spatial features is represented by the Co- Fields [MLZ02] approach. This model proposes the adoption of a computational fields (Co-Fields), that are signals generated by agents and diffusing over the network infrastructure modulating their intensity ac-

36 34 STATE OF THE ART IN AGENT INTERACTION MODELS cording to the distance from the emission source. In this way around an agent a gradient indicating its current position is generated; moreover, when the agent moves in the environment, the network infrastructure keeps this gradient up to date, modulating the intensity of the related field in the space. Figure 1.9 shows a diagram representing a Co-Field generated by a single entity and a Co-Field related to the presence of a single entity and the combined effects of fields generated by multiple agents. With a suitable definition of composition functions aggregating fields generated by different agents, several complex coordinated behaviours can be generated. Agents may be driven to keep a regular formation, by staying at a certain distant from the others, or may be attracted by a certain point of the space in order to generate a meeting. This model has been applied to various situations requiring the coordinated motion of autonomous entities (e.g. traffic simulation and management, routing of network packets, avatars in video games), but it was also proposed in various pervasive computing scenarios (e.g. ambient intelligence in museum). The middleware implementing the network infrastructure required for Co-Fields diffusion and maintenance is called Tuples On The Air (TOTA) [MZ04]. In fact, even if it is not based on a notion of a conceptually shared tuple space, every node of the TOTA network contains a tuple space in which local agents may inject tuples representing a Co-Field. However the infrastructure is responsible for diffusing this tuple on neighboring nodes, modulating the value of the related fields according to the related propagation rule, which is part of the field specification and implementation. The Multilayered Multi Agent Situated System model can also be classified in the indirect, spatially grounded, agent interaction models category. In the following chapters the model will be thoroughly described and its possible applications will be described also with several examples FORMALIZATION OF INDIRECT AGENT INTERACTION MODELS Unlike direct agent interaction models, mediated approaches present very deep differences: for instance artifact-based ones do not provide abstractions for the management of spatial features of agents environment. Moreover, some artifact-based interaction models are very elegant and simple (although very powerful), and they allow the definition of a very compact semantics, for instance with a process algebra, while some spatially grounded approaches hardly have a formal specification.

37 1.5 HYBRID APPROACHES 35 While some researchers point out that a formalization of indirect interaction models would be a useful contribution towards the development of more suitable models for open systems [GK04], the differences among artifact-based and spatially grounded agent interaction models seems so deep that such a unified formal model cannot be easily defined. 1.5 HYBRID APPROACHES One of the distinguishing features of indirect agent interaction models is represented by name uncoupling. When these interaction models are adopted agents do not need to have acquaintance information (neither a priori, nor obtained through a middle agent) in order to communicate as they become aware of each other through the interaction media. In particular spatially based approaches represent a promising way of modelling location based services, at least with reference to the management of spatial information. For instance, a field based approach can easily model concepts like distance and locality (even physically intended). In other words these models and the underlying metaphors seem to be very suitable for agent discovery, and information distribution in pervasive computing situations. On the other hand, artifact based approaches or even direct interaction models seem to be more suited for high level semantical coordination on specific abstract subjects. An integration of the different approaches is not only possible but probably suitable, at least in specific cases in which the adoption of spatial metaphor may be suitably exploited. Some relevant works providing a form of combined approaches to agent interaction provide the modelling of spatial features of agents environment, such as topologies or hierarchies of places in which an agent may be situated, and Linda like indirect interaction mechanisms for agent interaction. For instance, the HiMAT model [COZ99] allows to define hierarchical environmental structures related to network domains, where every node of the infrastructure is a coordination artifact. In this way it is possible to define, in the same framework, the space on which mobile agents may be situated, the rules for agent interaction and also the authentication and authorization policies that regulate agent mobility and access to resources present in various places. Moreover, the previously introduced TOTA middleware adopts a similar approach for the implementation of TOTA network nodes: Co-Fields are effectively implemented as tuples, that are distributed among several tuple spaces.

38 36 STATE OF THE ART IN AGENT INTERACTION MODELS 1.6 INTERACTION MODELS AND AGENT ENVIRON- MENT MODELLING In general, the multi-agent research community agrees on the fact that environments are essential for MASs, yet most researchers neglect to integrate the environment as a primary abstraction in their models and tools for multi-agent systems [WMP04]. There is no consensus on what are the features, properties, responsibilities and services that should characterize an agent environment. Nonetheless they are surely deeply related to agent interaction models. In the description of the various briefly described interaction models the environmental modelling factor has naturally been introduced. In fact some of these models actually draw inspiration from the physical world, from physical or conceptual artifacts we build in order to coordinate our behaviours, from the ways adopted by very simple entities in order to obtain complex emergent behaviours (e.g. ants). To implement these models, much work and attention has been devoted to the environmental aspects of MASs. In these models the environment is a first class abstraction, just like agents. Direct agent interaction models do not provide abstractions representing agent environment, and some services such as agent discovery must be introduced, modelled and implemented through the available concepts. In particular, middle agents must be implemented in order to manage acquaintance information. This point is problematic for this kind of model and, as previously introduced, there are several approaches which are trying to make implementations based on this approach more robust and scalable. In other words, they are trying to develop a better environment for agents relying on direct interaction models. Nonetheless, while in this way some problems related to nonfunctional requirements will likely be solved, these models are still far from being useful for modelling agents environment.

39 CHAPTER 2 MULTILAYERED MULTI AGENT SITUATED SYSTEM 2.1 MODEL OVERVIEW With reference to the taxonomy defined in Chapter 1 the interaction model defined for the Multilayered Multi Agent Situated System can be classified into the spatially grounded agent interaction models. In fact one of the main features of MMASS agents is their position into an environment, which influences their possible perceptions, the interactions with other entities present in the system, and thus their own behaviour. Model fundamental concepts will be briefly introduced, then its current applications will be briefly described, in order to introduce the Chapter outline MODEL BASICS Agent environment is composed by a set of graphs interconnected by interfaces, forming thus a multilayered structure with some interfaces among layers. Every layer, and thus every graph, may represent a specific aspect of agents environment: for instance one of them may represent an abstraction of agents physical environment, while other ones may be related to other conceptual topologies such as organization charts or dependency graphs. Interfaces represent specific points where these aspect interact: for instance, organizational information can influence the behaviour of entities placed in a spatial abstraction layer. Figure 2.1 show a sample MMASS environment made up of two layers connected by an interface; the meaning and mechanisms related to these interfaces will be better described later on.

40 38 MULTILAYERED MULTI AGENT SITUATED SYSTEM Agents are situated in nodes of these graphs, which are called sites. Every site may host at most one agent (according to the non penetrability principle), and every agent is situated in a single site at a given time (non ubiquity principle). Agents inherit the spatial relationships defined for the site it is occupying; in other words an agent positioned in site p is considered adjacent to agents placed in sites adjacent to p. The adjacency relation among agents is a necessary condition for the applicability of reaction, the first kind of interaction mechanism defined by the MMASS model. In fact this operation involves two or more agents that are placed in sites forming a clique (i.e. a complete subgraph) and allows them to synchronously change their state, after they have performed an agreement. Figure 2.1: Two MMASS layers connected by an interface. This interaction mechanism is not the only one defined by the model. In fact MMASS provides the possibility for agents to emit fields, that are signals able to diffuse through the environment that can be perceived by other agents according to specific rules. Field-based interaction mechanism is physically inspired, intrinsically multicast, like pheromone approaches, but it is more general than the latter. In fact MMASS fields are not just related to an intensity value and may convey more complex kind of information. Moreover for every field type a diffusion function must be specified in order to define how related signals are modulated (e.g. attenuated) during their diffusion in the environment, from the source of emission to destination sites. Other functions specify how fields of the same kind can be composed (for instance in order to obtain the intensity of a given field type at a given site) or compared. Fields are generally diffused in a single layer of the spatial representation of the environment, but through the definition of interfaces they may also extend their influence to layers different from the one in which they have been emitted. From a semantic point of view fields themselves are neutral even if

41 2.1 MODEL OVERVIEW 39 A B B A C Figure 2.2: A sketch of MMASS interaction mechanisms: on the left, reaction among adjacent agents A and B, on the right field emission by agent A. they can have related information in addition to their intensity; they are only signals, with an indication on how they diffuse in the environment, how they can be compared and composed. Different agent types may be able to perceive them or not and, in the first case, they may have completely different reaction. With reference to perception, an agent may perceive a field with a non null intensity active in the site it is situated on according to two parameters characterizing its type and related to the specific field type. The first one is the sensitivity threshold, indicating the minimum field intensity that an agent of that type is able to perceive. The second is the receptiveness coefficient and it represents an amplification factor modulating (amplifying or attenuating) field value before the comparison with the sensitivity threshold. Thanks to these parameters it is possible to model dynamism in the perceptive capabilities of agents of a give type, since these parameters are related to agent state. In this way, for instance, the same agent that was unable to perceive a specific field value could become more sensitive (increase its own receptiveness coefficient) as a consequence of a change in its state. This allows to model physical aspects of perception, but also conceptual ones such as agent interests. Reaction and field emission are two of the possible actions available for the specification of agent behaviour, related to the specification of how agents may interact. Other actions are related to the possibility to move (transport operation) and change the state upon the perception of a specific field (trigger operation). Actions can be thus classified into inter agent (react and emit, also sketched in Figure 2.2), and intra agent (trigger and transport) primitives. These primitives are part of a language for the specification of MMASS agents behaviour [BMS02] that also provides the possibility to dynamically modify the structure of agent environment, in order to generate new sites and edges (or destroy existing ones) and create (or destroy) agents of a specific type, with a

42 40 MULTILAYERED MULTI AGENT SITUATED SYSTEM given initial state. Agent type is in fact a specification of agent state, perceptive capabilities and behaviour APPLICATIONS AND CHAPTER OUTLINE The MMASS model represents thus a very rich and flexible framework for the definition of multi agent based applications. It allows to model heterogeneity both in the definition of entities, through the concept of agent type, and in the interactions among such entities, thanks to the two interaction mechanisms: reaction and field emission). The first one allows to model forms of interaction for which it is preferable not to alter agents environment (for instance in order to avoid the possibility of overhearing), but only in specific contexts (i.e. agents must be situated in adjacent sites). The second mechanism allows to realize multicast forms of interactions exploiting contextual factors, such as agents positions, state and perceptive capabilities, type of field conveying the signal and environmental structure. Agent environment may be represented by a single layer spatial structure or can be composed by many of these layers, suitably interconnected by interfaces regulating the interchange of signals. Agents may move throughout their environment or they can achieve their goals simply interacting among them and changing their state accordingly. In this chapter several different situations will be exploited in order to better exemplify the various elements of the model. Static agents Mobile agents Single layer Conway s Life Crowd modelling Mutiple layer Shopping centres localization Context-aware distributed systems Table 2.1: Some MMASS applications, classified according to agents and environmental features, that will be adopted to exemplify model concepts. The single layered applications which will be introduced are a multiagent version of Conway s Game of Life [BMVssb] and a specific crowd modelling which was adopted to simulate pedestrian in realistic environments [BMV04a]. The former is a typical CA application, that will be shown here in order to show model s expressiveness against a well known application. Crowd modelling is instead aimed at representing the behaviour of pedestrian in meaningful abstractions of the physical environment, for instance in order to support expert architects and de-

43 2.2 FORMAL DEFINITION 41 cision makers in their design process. Such a model could be used to perform simulations and verify the suitability of architectural designs to specific conditions such as emergencies and evacuations. The significance of single layered models and the application domains required a particular attention, especially as the model presents several similarities with CAs. A specific class of MMASS models was described in order better define relationships with CAs and focus on single layered scenarios. More precisely Situated Cellular Agents (SCA) [BMS03] are MMASS models characterized by a single layered spatial structure of the environment and particular restrictions on the definition of field values (which must be a proper subset of agents state). Other applications providing a multilayered structure of agents environment are related to the localization of shopping centres in extra urban areas [BMPS01] and to the development of context aware distributed systems taking into account spatial features of the environment [MNV04, BMVssa]. These examples are different from those providing a single layered environment, as there are several aspects which influence the behaviour of agents. For instance, in the first case, more than just spatial information also strategic considerations related to competition on the customers present in the environment must be modelled in order to define successful localization of shopping centers. In the second case, spatial information may be related to physical position and network connectivity, but other conceptual aspects such as activities in a to do list associated to an agent and collaborations required by specific activities should be represented in separated layers. The following section formally introduces elements and concepts defined by the MMASS model, defining its semantics. In particular the first aspect that will be described is the structure of the environment, then the asynchronous mechanism of interaction through fields will be defined, and finally agent types, perceptive and behaviour capabilities will be illustrated. Two sample MMASS models, the first representing a Deterministic Turing Machine and the other one modelling Conway s Life Cellular Automata, are then briefly introduced, in order to show its expressiveness and computational power. 2.2 FORMAL DEFINITION MMASS SPACE: AGENT ENVIRONMENT The environment defined by the MMASS model is composed by a set of layers connected by means of interfaces, which allow the exchange

44 42 MULTILAYERED MULTI AGENT SITUATED SYSTEM of signals among them. Every layer has a specific spatial structure, in which a signals may be diffused and perceived by agents which are placed on them. In other words every layer of this structure, also called Multi Agent Situated System (MASS), is similar to the overall model but is limited to a single layered spatial representation. Definition 1 A MASS M is defined by the triple Space M, F M, A M where Space M represents the structured environment where the set A M of agents is situated, acts autonomously and interacts via the diffusion of the set F M of fields. Fields will be formally defined in Section 2.2.2, and agent definition will be given in Section Space is defined as a connected undirected graph, with an adjacency relation defined for the set of composing nodes, hereinafter called sites. Fields (emitted by agents) propagate along the edges of this graph and leave on sites information about their passage. Edges connecting different sites specify possible paths that agents and fields can follow, respectively in their movement and diffusion in the spatial structure of the environment. Definition 2 A Space S is a pair where P S, E S P S is a non empty, countable set of sites; E S P S P S is an irreflexive, symmetric and not transitive relation between sites, called adjacency; p P S, q P S e E S, e = (p, q) (i.e. a Space is a connected graph); given two spaces S i, S j : S i S j, P i P j = (i.e. different spaces have no sites in common). Sites can contain at most one agent, and an arbitrary set of active fields (i.e. fields with a non null intensity). Definition 3 Each site p P is defined as a 3 tuple a p, F p, P p

45 2.2 FORMAL DEFINITION 43 where: a p A { } is the agent situated in p (a p = when no agent is situated in p, that is p is empty); F p F is the set of fields active in p (F p = when no field is active in p); P p P q P p, e E, e = (p, q) (i.e. P p is the set of sites adjacent to p). In order to allow intra-mass interaction between different MMASS layers (i.e. intra MASS interaction) the model introduces the notion of interface. The latter specifies that a specific connection among two sites situated in different layers is present with reference to a specific field type. Definition 4 An interface I (j,k) is defined as a 3 tuple pj, p k, F τ where p j P j, p k P k, with j k. P j and P k are respectively related to MASS j and MASS k (remember that MASS i = S i, F i, A i with S i = P i, E i ). With reference to the diffusion of field of type F τ the indicated sites are considered adjacent and placed on the same spatial layer. In other words fields of type F τ reaching p i will be diffused in its adjacent sites (P p ) and also in p j. In order to formally introduce the definition of Multilayered Multi Agent Situated System, it is useful to define the concept of intra-layer path, an arbitrary length sequence of interfaces connecting two MASSs. Definition 5 An intra-layer path IP ath (i,j) connecting MASS i and MASS j is a sequence of interfaces I (a1,b 1 ),..., I (an,b n ) so that a 1 = i and b n = j (i.e. the path starts from MASS i and ends in MASS j ); i : 1 < i < n, (b i 1 = a i ) (b i = a i+1 ) (i.e. every intermediate interface i connects the arrival MASS of the previous interface and the starting MASS of the following one). Definition 6 A Multilayered Multi Agent Situated System (MMASS) is defined by the pair M, I

46 44 MULTILAYERED MULTI AGENT SITUATED SYSTEM Touristic information and advertisement layer Other conceptual representation layer Emergency management layer Spatial abstraction layer Figure 2.3: A sample multilayered structure of agent environment. where M = { MASS 1,..., MASS n } is the set of layers composing the environment; I = { Int 1,..., Int m } is the set of interfaces; i, j N, i j, 1 i, j n, IP ath (i,j) = I (a1,b 1 ),..., I (ak,b k ) with I (a1,b 1 ),..., I (ak,b k ) I (i.e. there is no isolated MASS in the system). The multilayered, graph-based representation of agents environment adopted by the MMASS model presents some similarities with the spatial model presented in [MR96, GMR01]. Although that model allows to represent multiple layers of spatial representation, they are just hierarchical abstractions of a physical space (i.e. a cluster of nodes is represented as a single one in a higher level layer). This is just one of the possible configurations for a MMASS multilayered environment (a topic that will be more thoroughly analyzed in Section 3.5), but in general even if the underlying structures are similar, the MMASS model also allows to represent layers that are not related to physical space abstractions, but that are constructed according to a logical notion of adjacency. Example: Figure 2.3 shows a sample MMASS environmental structure, and more precisely it is related to a pervasive computing scenario. One of the layers represents a

47 2.2 FORMAL DEFINITION 45 Figure 2.4: A sample bidimensional spatial structure for crowd modelling and simulation. spatial abstraction of a physical environment, and is used to generate spatial context-awareness information which is suitably exploited by other layers which are connected to it by means of interfaces. These layers may exploit this kind of information in order to supply location aware services (e.g. touristic information provisioning and emergency management). All these layers are graphs, while in other cases such as crowd modelling, the spatial environmental structure could be better modelled in terms of a grid. In particular Figure 2.4 shows sample bidimensional spatial structure for crowd modelling and simulation. The environment is a museum room, where agents representing humans move according to their interests and present artworks. On the left part of the figure a 3D visualization of a museum room is shown, and on the right its corresponding abstract representation (black squares are occupied by walls, grey ones represents artworks, while agents are represented by black circles MMASS FIELDS: AT A DISTANCE INTERACTION Fields are signals that agents may emit and that are spread throughout the environment according to their own definition. They represent the mechanism allowing entities to asynchronously interact with each other. Each field of a MASS is characterized by a type τ, defining the set of values it can assume during its diffusion in the space. Field type

48 46 MULTILAYERED MULTI AGENT SITUATED SYSTEM also specifies the diffusion function that defines how its values is modulated throughout the space according to its spatial structure. Moreover, field comparison and field composition functions are defined in order to manage the perception mechanism. Given F the set of fields defined for a MMASS, F = t T F t with T the set of field types, and F ti F tj when i j (in other words types define a partition of the set of fields). Definition 7 A field type F t is defined by the 4 tuple where: W t, Diffusion t, Compare t, Compose t W t denotes the set of values that the field can assume; Diffusion t : P W t P (W t ) + is the diffusion function of the field computing the values of a field on a given site taking into account in which site and with which value it has been generated. Given the general spatial structure of a MASS there are a number of different paths for diffusion, and as the nature of this function is not defined (e.g. it is not constrained to be monotonically decreasing), it is in general not possible to define a single diffusion value. Nonetheless, very often only the shortest path is significative, and the function assumes a single value for a given field emitted at a specific source site. Compose t : (W t ) + W t is a commutative function (i.e. given wt 1, wt 2 W t, Compose t (wt 1, wt 2 ) = Compose t (wt 2, wt 1 )) that specifies how field values of the same type are combined (for instance, in order to obtain the unique value of a specific field type at a site); Compare t : W t W t {T rue, F alse} is the function that compares field values. For instance, in order to verify whether an agent can perceive a field value, the field value at a site and agent sensitivity threshold are compared by this function (see the definition of agent perception in the following section). Generally the set W t is defined as a partially ordered set (where Compare t is the partial order), including the null field, whose properties are: w t W t, Compose t (w t, ) = w t (i.e. is the identity element for the Compose t function);

49 2.2 FORMAL DEFINITION 47 A Figure 2.5: Sample effects of the emission of field f g of type F g in a regular grid (on the left) and in a graph structure (on the right). w t W t, w t, Compare t (w t, ) = true (i.e. is the least element of W t ). An additional notation that will be used later on is f p g indicates the unique value of a given field type F g at a specific site p. With reference to the persistency of fields in the environment, there are different possibilities. First of all, fields may have an instantaneous effect on the involved agents and disappear after the diffusion operation has been performed. On the other hand they might persist in the environment until another field of the same type cancels them through a suitable composition (this happens when the composition function for two fields assumes the null field value ). There is also the possibility to define a sort of evaporation function in order to obtain a gradual decrease of field intensity. The definition of these aspects is strictly related to the application domain: for instance an evaporation function for synchronous systems will be discrete and based on time steps while asynchronous systems will require a continuous function related to system time. Example: in the context of crowd modelling and simulation, fields can be exploited in order to generate effects based on the gradient that they can generate around the diffusion site. A suitable diffusion function must be defined in order to indicate the source of emission. A simple field type F g, defined in order to generate attraction/repulsion effects from the source of emission, assumes values in R +, its Compose and Compare functions are respectively the sum and the less than relation, and p P

50 48 MULTILAYERED MULTI AGENT SITUATED SYSTEM A B Figure 2.6: Effect of the composition function definition for field type F g in a regular grid (on the left) and in a graph structure (on the right). Diffusion g (p 0, f p 0 g, p) = { f p 0 g dist(p 1+dist(p 0,p) 2 0, p) < f p 0 g 0 otherwise where p 0 and f p 0 g are respectively the site in which the field has been emitted and its emission value. The effect of this definition for the related field type is to generate a sort of crowding field, whose higher value indicates that the related site is in an area in which a high number of agents is emitting this kind of signal. Through a suitable definition of agent behaviour (e.g. having agents that emit continuously or cyclically fields of this type), this kind of signal allows to model the local presence of these agents in the environment. Figure 2.5 illustrates the effect of the emission of this kind of field in a regular lattice and in a graph structured environments, while Figure 2.6 shows the effect of the definition of a composition function that sums the values of signals of the same kind. In the following section it will be shown how agents may perceive the local status of active fields (i.e. their values in the site an agent is placed on and also in adjacent sites), and exploit these perception in order to implement context-aware behaviours MMASS AGENTS Each MASS is populated by a set A of individuals called agents. Each agent is characterized its state and position, which represent its dynamical aspects, and by its type, which is instead static. In particular it defines the possible values for the states of this kind of agents, their perceptive capabilities and behavioural specification.

51 2.2 FORMAL DEFINITION 49 Definition 8 An agent a A is defined by the 3 tuple where: s, p, τ s Σ τ denotes the agent state; p P is the site of the MASS space where the agent is situated; τ is the agent type describing the set of states the agent can assume, a function to express agent sensitivity to fields (i.e. agent perceptive capabilities), and the actions that characterize agent behavioural specification (i.e. agent capabilities). We will also denote the type of an agent a as τ a, and its position as p a. Definition 9 An agent type τ is defined by the 3 tuple where: Σ τ, P erception τ, Action τ Σ τ is the set of states that agents of type τ can assume; P erception τ : Σ τ [N W f1 ]... [N W f T ] is a function that relates to each agent state the vector of pairs ( ) ( ) ( ) c 1 τ (s), t 1 τ (s), c 2 τ (s), t 2 τ (s),..., c T τ (s), t T τ (s) where for each t (t = 1... T ), c t τ (s) and t t τ (s) express respectively the sensitivity coefficient and sensitivity threshold for fields of type t. An agent of type τ in state s Σ τ can perceive a field f t if and only if it is verified Compare ft (c t τ (s) w ft, t t τ (s)) that is, when the first component of the i th pair of the perception function (i.e. sensitivity coefficient c t τ (s)) multiplied for the received field value w ft is greater than the second component of the pair (i.e. sensitivity threshold t t τ (s)); Action τ is the set of actions that constitute the behavioural specification for agents of type τ.

52 50 MULTILAYERED MULTI AGENT SITUATED SYSTEM The mechanisms for the specification of agent behaviour will be more thoroughly analyzed later on, and now its perceptive capabilities will be further described. The main feature of the perception mechanism is the possibility of an agent to neglect the perception of a field, according to its own internal state and to the intensity of the field itself. There are thus different kinds of factors influencing the possibility to interact through the field emission-diffusion-perception mechanism: contextual ones, such as the spatial structure of the environment, the position of agents involved in the interaction; related to the nature of signals, and essentially the diffusion, comparison and composition functions defined by the field type; related to the nature and state of the interaction partners, and more precisely to their sensitivity coefficient and threshold for the specific field type. The nature of field-based communication is thus quite different from point-to-point message passing, being intrinsically multicast and dependant on the spatial structure of the environment and in general on the context. The potential receivers of a field are generally unknown to the emitter, and are ultimately determined by the field itself, by the state and type of the receiver, and on the spatial context (i.e. the spatial structure of the environment and their positions). In particular sensitivity coefficient and threshold are a way to model physical and possibly even cognitive aspects of perception. The latter may in fact represent physical limits of the sensor related to a specific field type (e.g. a human earing system is generally unable to perceive ultrasound), while sensitivity coefficient may vary according to agent interests (e.g. a predator which has just carried out a successful hunting will be temporarily less interested in signals emitted by preys). Example: with reference to the previously defined field f g, generating a gradient usable in the crowding context, a possible simple perception function for agents of type A ped sensitive to this kind of field uniformly maps any state s into (c, t) with c, t R +,where c may be part of agent state (and thus a possibly dynamic value) indicating its receptiveness to this field type, while t is a threshold for filtering low intensity fields. In a more complex example we could model the fact that particular agents states make them less interested in

53 2.2 FORMAL DEFINITION 51 specific fields (i.e. mapping agent state to lower sensitivity coefficient) or are less likely to perceive the signal due to a physical impairment, making perceivable only high intensity fields (i.e. mapping agent state to more selective sensitivity thresholds). For instance, agent state s could simply be a boolean value indicating wether or not it is able to perceive a signal or not: in this case, defining c = s could model this kind of perceptive capability. Behavior and abilities of an agent are encoded by the set Actions τ of actions that define whether and how each agent of type τ changes its state and/or its position, how it interacts with other neighboring and at a distance agents AGENT BEHAVIOR BASIC ELEMENTS For the definition of Action τ (i.e. the behavioural specification for agents of type τ) four basic actions are available. In particular they can be grouped into intra agent actions, which modify its state or position, and inter agent actions, which instead are related to the two mechanisms defined for agent interaction. More precisely trigger and transport allow an agent to respectively change its state or move towards an adjacent vacant site according to specific conditions (such as the perception of a specific field). With reference to agent communication, asynchronous interaction among non-adjacent agents takes place through the field emission diffusion perception mechanism. An agent may emit a field of a specific type with an emission value when specific conditions are verified (e.g. its state matches a specific pattern, or a specific field was perceived). The field propagates throughout the space according to the diffusion function specified in its type, combining with other fields of the same type according to the composition function. If a field is active (i.e. not null) in a site, an agent positioned in it may perceive it according to its P erception τ function and its current state (i.e. if the current sensitivity of the agent to that type of field is such that it can perceive it). Reaction defines instead the synchronous interaction among a set of agents placed in sites forming a clique (a completely connected subgraph of the spatial structure) according to a two step process. First of all all agent must be in a condition allowing them to select a react action, and one of these conditions is the completion of an agreement

54 52 MULTILAYERED MULTI AGENT SITUATED SYSTEM process. The latter allows the involved agents to synchronize in order to change their states at the same time. These four primitive actions (trigger, transport, emit and react), compose the Language for MASS (i.e. L*MASS) which will be now formally introduced. To this purpose, the formalisms that will be used will be briefly summarized. In the following an agent a = s, p, τ will be considered (i.e. an agent of type τ whose current state is s and whose position is site p). Moreover given p = a, F p, P p, F p is the set of fields active in p and P p is the set of sites adjacent to p. To define the above introduced actions a form action condit effect form will be adopted, where action is an expression of the type f(x 1... x n ) where f specifies the action name and x i are terms which can appear in condit and effect expressions. These terms may include expressions related to: the state s of the agent a, for whom the action is defined; the site p on which it is placed on, and also on adjacent ones (i.e. those included in P p ); these expressions may be related to active fields but also on the presence of other agents and their agreement to take part in a reaction operation. Please note that, due to agent autonomy, no condition on other agents can be expressed with the exception of observable facts, such as the presence of an entity in an adjacent site or its agreement to take part in a coordinated action. This represents the only direct interaction allowed by the model, but also this interaction mechanism is related to the environment as it allowed only for groups of agents whose sites form a clique. Moreover the effects of actions may only involve a change in the related agent state or they may influence the environment through a local modification. The latter may be represented by the emission and diffusion of a field or the change in the state of two sites, involved in a transport action. TRIGGER ACTION Definition 10 A trigger action trigger(s, s ) is defined as follows: action:trigger(s, s [) condit:a = s, p, τ, S cond (s), perceive(f t ), F cond (f t ), a 1,..., a i A ( pa1,..., p ai P p, τ a1 = τ 1,..., τ ai = τ i, S rel (p, p a1,..., p ai ) )] effect:a = s, p, τ

55 2.2 FORMAL DEFINITION 53 where a = s, p, τ indicates the current state of the agent for whom the action is specified. Not all parameters must be specified: for instance it is possible to specify trigger actions that are activated for a generic state and position. Some optional conditions can be specified, for instance to indicate that constraints to agent state, expressed by S cond (s), must be verified in order to activate the operation. Another possible guard to this action is the need for a specific field to be perceived. More precisely ) perceive(f t ) is verified when f t F p and Compare ft (c t τ (s) w ft, t t τ (s) = T rue (that is, the field f t is active in p and agents of type τ in state s can perceive it). Moreover additional conditions can be specified on f t, for instance in order to indicate some kind of constraint on its value. The second optional group of conditions is related to the presence of a specific set of agents, of given types, in specific sites with given spatial relationships with p, the site on which agent a is positioned. First of all the position of these agents must be adjacent to p, then their sites must verify the relation indicated by S rel (p, p a1,..., p ai ). The effect of a trigger action is a change in agent state from s to s. Example: with reference to the crowd modelling example, and to the previously defined agent type A ped and related perceptive capabilities, we could use the trigger action in order to make the related agent become insensitive to a specific field when it becomes adjacent to an agent of a specific type (that could be the source of this kind of signal). This could happen thanks to the application of a transport action (which will be described later on) to one of the two agents. The trigger action can be specified as follows: action:trigger(1, 0) condit:a = 1, p, τ, perceive(f g ), a s A ( p as P p τ as = Source ) effect:a = 0, p, τ in this case the fact that an agent of type Source becomes adjacent to an agent of type A ped that is currently sensitive to fields of type F g causes a change in the agent state, making it insensitive to these fields, considering that the sensitivity coefficient for this kind of field is c = s. TRANSPORT ACTION Definition 11 A transport action transport(p, q [, f t, s, a 1,..., a i ]) is specified as follows:

56 54 MULTILAYERED MULTI AGENT SITUATED SYSTEM action:transport(p, q [, f t, s, a 1,..., a i ]) condit:a = s, p, τ, A q =, q P p [, perceive(f t ), F cond (f t ), a 1,..., a i A ( p a1,..., p ai P p τ a1 = τ 1,..., τ ai = τ i S rel (p, q, p a1,..., p ai ) ) ], F rel (p, P p ) effect:position(q), empty(p) where the basic conditions are verified when the agent position is p, q P p and q =, F q, P q (that is, the destination site q is adjacent to the starting one and no agent is situated in it). Among the optional conditions perceive(f i ) and F cond (f t ) have the same meaning as in trigger. Moreover even the transport action can be activated by the presence of an agent (or a set of agents) of a specific type in an adjacent site (or set of sites) will cause the movement of agent a to a site q having some specific spatial relationship S rel with the source site and the site/s where the triggering agent/s is/are positioned. The last optional condition F rel (p, P p ) can be used to specify that a relation on values of active fields in sites p, q, p a1,..., p ai must be verified (e.g. the destination site must be the one with the highest value for a given field type). The effect of the execution of a transport is a change in the position of the agent undertaking the action and, as a consequence, a change in the space where the agent is situated. In particular its position has changed from p to q (i.e. a = s, q, τ ) and sites p and q have changed respectively to p =, F p, P p and q = a, F q, P q. Example: transport actions are crucial in the context of crowd modelling and simulation. In order to exploit the gradient related to the presence of agents, generated by the fields of type F g, a possible definition of transport could be the following: action:transport(p, q) condit:a = s, p, τ, A q =, q P p, perceive(f g ), suitable(q) effect:a = s, q, τ, A p = where suitable represents a particular case of the condition F rel. More precisely suitable(q) is verified if r P p Compare(f r g, f g ) = true a r =. In other words this action specifies that the agent a, upon perception of a field of type F g must move towards the adjacent vacant site which presents the highest value for this field type.

57 2.2 FORMAL DEFINITION 55 EMISSION ACTION Definition 12 A field emission action emit(p [, s, f t, a 1,..., a i ]) is defined as follows: action:emit(p [, s, f[ t, a 1,..., a i ]) condit:a = s, p, τ, perceive(f t ), a 1,..., a i A ( p a1,..., p ai P p τ a1 = τ 1,..., τ ai = τ i S rel (p, p a1,..., p a1 ) )] effect:added(f, p) where the conditions are analogous to the previous actions definitions. The effect of an emit action (i.e. added(f, p)) is a modification in the state of a set of sites in the space determined by Diffusion t. In particular the set P e of sites that will be affected by this action is P e = { q P Diffusion g (p, f t, q) } (i.e. the set of sites for which the diffusion function is not the null field). Given q P e, the set F q of fields active in it after the diffusion will be: { } F q Diffusion g (p, f t, q), Compose t, Compare t if the set F q (representing fields that were active in the site q before the emission) did not include fields of type F t; ( ) { F q {f t} ( Compose t Diffusiong (p, f t, q), w t), Composet, } Compare t where f t = w t, Compose t, Compare t was the unique non null field of type F t active in q before the emission. Example: field emissions are often adopted in order to generate a locality effect, that is the effect of some event (that could even be the mere presence of an object in the environment) whose influence goes beyond the sites that are adjacent to the one where the event took place. In the Life example, which will be more extensively described in Section 2.4, the field emission mechanism was adopted to generate the concept of crowding of an area. All alive cells emit a vitality signal through the following action: ( action: emit s, Diffusion Fl, <, +, p) condit: a = v, s, l, c, p, Life, (v = alive) ( ) effect: added s, Diffusionn Fl, <, +, p

58 56 MULTILAYERED MULTI AGENT SITUATED SYSTEM REACTION ACTION Definition 13 A reaction action reaction(s, a p1,..., a pi, s ) is specified as follows: action:reaction(s, a p1,..., a pi, s ) condit:a = s, p, τ, p 1,..., p i P p, agreed(a p1,..., a pi ) ] τ ap1 = τ 1,..., τ api = τ i effect:a = s, p, τ [, S cond (s), where the condition which has not yet been introduced is agreed(a p1,..., a pn ). It specifies that a synchronization process has been successfully carried out and involved agents (a p1,..., a pn ) have agreed to change their state according to a primitive analogous to the one specified for agent a. Such an agreement process implicitly provides an information exchange among the involved agents: this information can be part of the new state of the agent a. Specific conditions on the type of agents taking part to the reaction may also be optionally specified. The effect of a reaction is the synchronous change in state of the involved agents; in particular, agent a changes its state to s. In some cases the fact that other involved agents must be specified only according to their relative positions with reference to the site in which agent a is placed, may not be feasible. For instance it could be useful to specify that an agent tries to react with any agent of a given type that becomes adjacent to it. In this case a set of react actions should be specified, so we can think of extensions like macros that allow the specification of this kind of composed reactions. Example: reaction is related to interactions among adjacent placed in adjacent sites, which require a form of coordination. The change of state in the involved entities requires a form of synchronization, so the field diffusion mechanism is not suited to model this kind of interaction. A sample situation in which this action was adopted is in the Deterministic Turing Machine (DTM) modelling and simulation, that will be more extensively described in Section 2.3. In particular the following example shows part of the behavioural specification of the agent related to the DTM control unit, which must receive from the head the symbol read from the tape:

59 2.2 FORMAL DEFINITION 57 ( ) action: reaction q, σ, 0, c, A [2,i], q, σ, 0, c condit: A C = q, σ, 0, c, [3, 1], Control, c = r h, τ A[2,i] = Head effect: A C = σ = rec σ (A [2,i] ) q, σ, 0, c, [3, 1], Control, c = c s, In order to have an effective reaction, the behavioural specification for agent type Head must include a compatible reaction. In particular, the counterpart of the previous reaction is specified as follows: ( action: reaction condit: H = τ A[3,1] = Control effect: H = σ, δ, p, A [3,1], σ, δ, p ) σ, δ, p, [2, i], Head, p = w c, send σ (A [3,1], σ), σ, δ, p, [2, i], Head, p = r c ADDITIONAL ACTIONS The above specified actions do not allow to dynamically change the environmental structure (e.g. adding connections among sites), nor they allow the creation and destruction of agents. Further actions can be specified to this aim, extending the basic kernel of L*MASS. It must be noted that, though agents and fields were classified into types which have names, there was no need to introduce identifiers for sites and agents, as the environmental structure made available all the information required to interact with them. In order to introduce these actions, sites must be extended with a unique identifier, in order for agents to be able to talk about them. For instance, when an agent means to create a link between the site it is occupying and another one which is not still adjacent to the previous, it must be able to refer to that site. Moreover somehow it must have some previous information about it (e.g. it has passed through that site, or some other agent has communicated information about the site through a field emission or a reaction). The additional actions which have currently been considered are the following: AddEdge(q), AddSite(q): the executing agent may add a site to the neighborhood of the site p it is placed on (i.e. add it to P p, and thus add the couple p, q to the adjacency relation E S related to its space S), or respectively create a new site q, initially completely

60 58 MULTILAYERED MULTI AGENT SITUATED SYSTEM vacant (i.e. no active field nor agent), and add it to the neighborhood of p; DeleteSite(q): the agent may delete a site q from its neighborhood, provided that the site to be deleted is vacant (i.e. it does not contain an agent) and the deletion does not generate isolated sites (the deriving space S = P S, E S, with P S = P S {q} and E S = { a, b E S a, b q }, must be a connected graph). The basic DeleteSite action may be extended to a recursive semantics, which provides the deletion of any site which would become isolated because of the removal of q, but this would also require that all of the sites to be removed were empty; Create(b): the executing agent creates an agent b by specifying its parameters: its type, its initial state (one of the states specifiable for its type), and its position (a vacant site in the neighborhood of the creating agent). A lesser form of this action Clone(b) only allows the creation of agents of the same type of the creator; Clear(): the agent deletes itself from its environment, terminating its execution. The occupying site will become vacant after the execution of this action. Issues related to dynamic deep modifications of agent environment do not just require the definition of specific actions allowing agents to perform these operations. There are several fundamental questions related to these aspects that must be answered. For instance, which agents are allowed perform these operations? How can an agent be aware of agent types different from its own? Should these aspects be delegated to external entities which have a broader view than common agents and are responsible for the dynamic configuration of agent environment and also manage the birth of new agents? In a distributed and open system perspective choices related to these issues have a huge impact on model expressiveness, but also sustainability. Some preliminary work in this context was performed. For instance, a highly dynamic scenario could also require the creation and dynamic management of different layers and interfaces [PV03]. However, a thorough analysis of the impact of the inclusion of these actions in the language is object of current and future works. This analysis will consider the Actor model [Agh86], which provides primitives for the management of agent creation, task assignment, and concepts for the management of entities that are external to the system. This model provides a direct interaction mechanism for actors, adopting the concepts of actors addresses

61 2.2 FORMAL DEFINITION 59 and mailboxes. Specific actor types are defined to obtain system openness: receptionists are actors that may receive communications from outside the system, and external actors are ones that are not present within the system but whose address is known to one or more internal actors. In this framework, even for the MMASS model specific agent types, possibly external to the basic system, could be conceived in order to manage actions that are not related to common system operation but are instead focused on configuration and maintenance. ACTION SELECTION STRATEGIES Actions represent basic components of agent behaviour, but the preconditions of several different actions may be verified at a specific moment. A comprehensive agent behavioural specification requires thus the definition of a strategy for the management of action conflicts. The first possible approach is a nondeterministic choice among the actions that may be activated. Another possibility is to define a priority level of various actions, guiding the choice among the actions that might be executed. A similar mechanism is adopted by rule-based systems, which allow the specification of a salience for every production rule (see, e.g., [FH03]). The decision on the strategy to be adopted for a specific system depends on features of the specific domain to be modelled, so the model does not have a thorough specification of these mechanisms. However, action selection strategies do not have to be system-wide, and could also be related to agent types. In this case, agent type would become Σ τ, P erception τ, Behaviour τ, where Behaviour τ includes the previous Action τ and also a selection strategy. For instance, in the case of action selection through the definition of priorities, Behaviour τ = P ri τ, Action τ N, where P ri τ is a constant indicating the kind of action selection strategy and every action is related to a natural number indicating the related priority. Model definition does not make any assumption on system synchronicity, and there are several issues related to the concurrent execution of agents. For instance the transport action requires to consider the case of concurrent attempts to move to the same site. This conflict is handled on a first in first served basis, considering the site as a shared resource whose access is mutually exclusive, with a non deterministic choice in case of contemporaneous requests (i.e. in current implementations the transport operation may fail). Other strategies, for instance considering agents features for the choice of the agent which effectively moves to the contended site, are clearly domain dependant. The agreement process is not specified for the same reason, but is also a possibly

62 60 MULTILAYERED MULTI AGENT SITUATED SYSTEM problematic mechanism [BDMS02]. Issues related to the design and implementation of mechanisms supporting the interaction model defined by the MMASS will be more thoroughly analyzed in Chapter MMASS TURING MACHINE A deterministic one tape Turing Machine (DTM from now on) consists of a finite state control, a read-write head, and a tape, made up of a biinfinite sequence of cells numbered..., -2, -1, 0, 1, 2,.... In addition, a DTM is characterized by: a finite alphabet Σ = {σ 1,..., σ n }, which is taken as an ordered set; a blank symbol b b / Σ; a finite set of states Q, including a distinguished start state q 0 and two distinguished final states q y and q n ; a state transition function δ : Q {q y, q n } Σ Q Σ, where = { 1, 1}. The input of the DTM is a string x Σ, which is initially written in tape cells 1 through x, one symbol per cell. The DTM starts in state q 0, with the tape scanning cell 1. The computation proceeds in a step-bystep fashion, and more precisely: if the current state is q y or q n the computation ends, respectively accepting or rejecting the string; otherwise, q Q {q y, q n }, a symbol s Σ is in the cell being scanned by the head. Suppose that δ(q, s) = (q, s, d), with q Q, s Σ, and d. The tape head will erase s and write s in its place, then it will move one cell to the left if d = 1, or to the right if d = 1. At the same time, the control changes from q to q. In order to model this kind of machine with the MMASS model some preliminary considerations must be done. The DTM tape has an infinite set of cells and positions, whereas the spatial structure of a MMASS layer is made up of a countable set of sites. By relaxing this constraint, and providing a level (the head level) of sequentially interconnected sites (site in position p is connected to sites on the same level in positions p 1 and p + 1) representing possible head positions. All of these sites are also connected to a single site, related to the DTM control,

63 2.3 MMASS TURING MACHINE 61 A c Control level [3,1] H Head level [2,k] C C -k 1 k C Cells level [1,k] -k 1 k Figure 2.7: The basic structure of the MMASS Turing Machine. which forms the control level. Underlying the head level, there is a set of sites related to DTM tape cells. Every cell site is only connected to the related site on the head level. Formally, we have that, this MMASS system is made up of a single MASS, whose spatial structure Space is defined as follows: P S = Cont l Head l Cell l, where every site is identified by a pair [i, j] and the three components of P S are related to the three site levels previously introduced. In particular Cont l = { [3, 1] } represents the control level, Head l = {..., [2, k],..., [2, k],... } represents the head level and Cell l = {..., [1, k],..., [1, k],... } ; E S = CH e HT e, the two components of the set of edges are respectively related to connections among the control unit and head positions, and { among the latter and the underlying cells. In particular CH e =..., ( [3, 1], [2, k] ),..., ( [3, 1], [2, k] ) },... and { HT e =..., ( [2, k], [1, k] ),..., ( [2, k], [1, k] )}. On this structure three types of agents are positioned: a single agent A C of type Control, which is positioned on the only site of the control level; a single agent H of type Head, that is initially positioned on the site related to cell position 1; an infinite set of agents of type Cell.

64 62 MULTILAYERED MULTI AGENT SITUATED SYSTEM Figure 2.7 summarizes both the structure of the environment and the placement of agents inside it. A formal through definition of these agent types will be given later on, but a brief schema of how these agents interact will be given in order to clarify the sequence of actions performed by the entities. In particular, for every sequence of computation of the DTM, the following actions and interactions are performed: H reads the symbol stored in the underlying cell C i through a reaction; H communicates the read symbol to A C through a reaction; A C computes the value to be written on the current position of the tape, the head movement and the next state of control through a trigger; A C communicates the symbol to be written on the current tape position, and the next head position to H through a reaction; H writes the symbol to the underlying cell C i through a reaction; H moves according towards the next position through a transport. In the following, the specification of the introduced agent types will be given. The proposed approach does not provide the adoption of field based interaction, so the perceptive capabilities of these agent types are not relevant and will not be specified CONTROL AGENT TYPE The Control agent type is defined as follows: S Control, P erception Control, Action Control where S Control is defined as Q ( Σ {b} ) P hase Control, where P hase Control = {r h, c s, w h } represents the set of phases of the computation cycle of the control unit. The behavioural specification Action Control for this type of agent includes the following actions: ) ( q, σ, 0, c, δ Q (q, σ), δ Σ (q, σ), δ (q, σ), c action: trigger condit: A C = q / {q y, q n } effect: A C = q, σ, 0, c, [3, 1], Control, c = c s, c = w h, δ Q (q, σ), δ Σ (q, σ), δ (q, σ), c, [3, 1], Control

65 2.3 MMASS TURING MACHINE 63 ( ) action: reaction q, σ, 0, c, A [2,i], q, σ, 0, c condit: A C = effect: A C = q, σ, 0, c, [3, 1], Control q, σ, 0, c, [3, 1], Control, c = r h, τ A[2,i] = Head, c = c s, σ = rec σ (A [2,i] ) ( ) action: reaction q, σ, 0, c, A [2,i], q, σ, 0, c condit: A C = q, σ, 0, c, [3, 1], Control, c = w h, send σ (A [2,i], σ), τ A[2,i] = Head effect: A C = q, σ, 0, c, [3, 1], Control, c = r h The trigger action is related to the change of state in the control unit, while the two reactions are respectively devoted to reading the symbol from the head and to writing the computed new symbol to the head. The agreement processes related to these reactions are made up of two related operations that are included in the behavioural specification of the Head agent, which must receive (or send) a symbol the reaction partner in order to effectively perform the action HEAD AGENT TYPE The Head agent type is defined as follows: S Head, P erception Head, Action Head where S Head is defined as (Σ {b} ) P hase Head, where P hase Head = {r t, w t, r c, w c, m} represents the set of phases of the computation cycle of the head agents. The behavioural specification Action Head for this kind of agent provides the following actions: ( ) action: transport [2, i], [2, i + δ], σ, δ, p condit: H = effect: H = σ, δ, p, [2, i], Head σ, δ, p, [2, i + δ], Head, p = m, p = r t ( action: reaction σ, δ, p, A [1,i], σ, δ, p ) condit: H = effect: H = σ, δ, p, [2, i], Head σ, δ, p, [2, i], Head, p = r t, τ A[1,i] = Cell, p = w c, σ = rec σ (A [1,i] )

66 64 MULTILAYERED MULTI AGENT SITUATED SYSTEM ( action: reaction σ, δ, p, A [3,1], σ, δ, p ) condit: H = σ, δ, p, [2, i], Head, p = w c, send σ (A [3,1], σ), τ A[3,1] = Control effect: H = σ, δ, p, [2, i], Head, p = r c ( action: reaction σ, δ, p, A [1,i], σ, δ, p ) condit: H = effect: H = σ, δ, p, [2, i], Head σ, δ, p, [2, i], Head, p = r c, τ A[1,i] = Cell, p = w t, σ = rec σ (A [1,i] ) ( action: reaction σ, δ, p, A [3,1], σ, δ, p ) condit: H = σ, δ, p, [2, i], Head, p = w t, send σ (A [3,1], σ), τ A[3,1] = Control effect: H = σ, δ, p, [2, i], Head, p = m The transport action is related to the movement of the agent in the head level, while the four reactions are respectively devoted to reading the current symbol from the underlying cell, to communicating the read symbol to the control unit, to reading the newly computed symbol from the agent A C and finally to writing this symbol to the underlying cell. Two of the reactions (those involving agent A C ) are the counterparts to the reactions specified in Action Control. The remaining two reactions require a suitable definition of compatible reactions in the behavioural specification of Cell agents CELL AGENT TYPE The Cell agent type is defined as follows: S Cell, P erception Cell, Action Cell where S Cell is defined as (Σ {b} ) P hase Cell, where P hase Cell = {r h, w h } represents the set of phases of the computation cycle for cell agents. The behavioural specification Action Cell for this kind of agent provides the following actions:

67 2.3 MMASS TURING MACHINE 65 ( action: reaction σ, p, A [2,i], σ, p ) condit: H = effect: H = σ, p, [1, i], Cell σ, δ, p, [1, i], Cell, p = r t, τ A[2,i] = Head, p = w t, σ = rec σ (A [2,i] ) ( action: reaction σ, δ, p, A [2,i], σ, δ, p ) condit: H = σ, δ, p, [1, i], Cell, p = w h, send σ (A [2,i], σ), τ A[2,i] = Head effect: H = σ, δ, p, [1, i], Cell, p = r h The two specified reactions are respectively devoted to receiving the new symbol to be written in the cell from the head (which must be in position [2, i]), to communicating the read symbol to the control unit, to reading the newly computed symbol from the agent A C and finally to writing this symbol to the underlying cell. Two of the reactions (those involving agent A C ) are the counterparts to the reactions specified in Action Head DISCUSSION The model that was described in this Section is derived from a previous work [BMPSss], which described how to simulate a DTM with a Reaction Diffusion Machine [BS04], a model on which the MMASS is based and that provides a similar interaction model among entities. In that modelling approach, the interactions among elements of the DTM were realized with the diffusion of fields, while here only reactions among adjacent agents were adopted. This approach seems more suited to the specific simulated situation, which provides a strict synchronization of their activities. Moreover, the interacting entities have adjacent positions, so the adoption of a mechanism supporting action-at-a-distance seems unnecessary. It must be noted that the transport action for the Head agent does not only provide a change in its position, but also a modification in its state. The specification of the transport action does not provide this kind of effect, so this action would not be allowed. However the same effect could be obtained by introducing a trigger operation, with the same preconditions and the only effect of changing the phase of computation from m to r t. This action should be activated only after the execution of the transport, a behaviour that could be obtained specifying a prioritybased action selection strategy, and associating the same priority level

68 66 MULTILAYERED MULTI AGENT SITUATED SYSTEM to all introduced actions with the exception of this newly specified phase transition generating trigger. The illegal transport action can be thus obtained through a combination of two primitive (legal) actions, and represents a sort of macro action, which was specified as it allows a more compact definition of agent behavioural specification. 2.4 MMASS LIFE Conway s Game of Life is a typical example of a cellular automaton, but even a very interesting one as it represents one of the simplest examples of emergent behaviour. In fact elaborate patterns and behaviours emerge from its simple rules, based on the concept of neighborhood in a regular grid. Cells can be either dead or alive, and transition rules are essentially based on two concepts: loneliness: a cell that has not enough live neighbors will die or remain dead; overcrowding: a cell that has too many live neighbors will die or remain dead. Balance between loneliness and overcrowding determines the conditions that allow a cell to remain alive or switch its state from dead to alive. Figure 2.8 shows a sample situation illustrating various possible transitions generated by these rules A MAS MODELLING OF CONWAY S LIFE Modelling this kind of situation with a SCA requires the definition of a suitable mechanism to represent transition rules in terms of reaction between agents or through the perception deliberation action mechanism. The concept of crowding modelled in Life is strictly bound to neighborhood, while a more general idea of locality could be modelled through the use of a vitality field. Every live agent is a source of this kind of field that is diffused in the space, degrading during its propagation in the space from the source site. Every agent could be characterized by its state (dead or alive), by an indication of its strength (i.e. the starting intensity of the vitality field it emits), and by two values representing respectively the loneliness and overcrowding thresholds. Agent behaviour could be specified as follows: if it is alive it emits a vitality field whose starting intensity is equal to its strength;

69 2.4 MMASS LIFE 67 if the intensity of the vitality field in its place is below the loneliness or above the overcrowding thresholds its next state will be dead; otherwise (i.e. local vitality intensity is between the thresholds) its next state will be alive LIFE AGENTS The spatial structure of Life is a regular grid of uniform cells. This means that suitably defined homogeneous agents of type Lif e must be placed in every cell of the environment, that will be a regular grid of sites. Agent state, Σ Life is defined by A, S, L, C where A = {dead, alive} indicates if the agent is dead or alive, S = R + represents agent strength, L = R + is the loneliness threshold, C = R + is the crowding threshold; c > l is a non triviality condition expressed to avoid inconsistent situations (an agent cannot feel alone and pressed from overcrowding at the same time). The vitality field F l assumes values in R +, its Compose and Compare functions are respectively the sum and the less than relation between field intensity, and p P Diffusion Fl (p 0, f, p) = { f dist(p0, p) f > dist(p 0, p) 0 otherwise where dist(p, q) is the function representing the distance from site p to site q. Perception function for agents of this type uniformly maps any state s into 1, 0, in other words agents do not alter field intensity, as their receptiveness coefficient is 1, and perceive any not null vitality field. Agent behaviour can be specified as follows: ( action: emit s, Diffusion Fl, <, +, p) condit: a = v, s, l, c, p, Life, (v = alive) ( ) effect: added s, Diffusionn Fl, <, +, p

70 68 MULTILAYERED MULTI AGENT SITUATED SYSTEM Figure 2.8: An example of the evolution of an homogeneous Life SCA system.

71 2.4 MMASS LIFE 69 ( ) action: trigger v, s, l, c, f, Diffusion Fl, <, +, dead, s, l, c condit: a = effect: a = v, s, l, c, p, Life dead, s, l, c, p, Life, (f < l), (av = alive) ( ) action: trigger v, s, l, c, f, Diffusion Fl, <, +, dead, s, l, c condit: a = effect: a = v, s, l, c, p, Life dead, s, l, c, p, Life, (f > c), (v = alive) ( ) action: trigger v, s, l, c, f, Diffusion Fl, <, +, alive, s, l, c condit: a = effect: a = v, s, l, c, p, Life alive, s, l, c, p, Life, (f > l), (f < c), (v = dead) The first element specifies that alive agents must emit a vitality field whose intensity is equal to agent s strength; the second and third conditions represent conditions bringing to agent death, respectively from loneliness and over overcrowding; the last point specifies when an agent switches from dead to alive state. In this specific case an alive agent will generally have at least one possible action, but may also have two actions whose conditions are verified. In this case, in order to obtain a global behaviour that is consistent with Conway s Life, a sort of fairness principle, combined with priorities. More precisely we have that an agent which has just executed a state transition from dead to alive must perform an emission before dying anew. In order to face this kind of issue, for the implementation of this model one of the design choices was to have a synchronous system, and specify an order among possible actions. First of all, all alive agents perform their emission, vitality field is diffused, then state transitions are performed and the cycle starts over again. Having included agent strength, loneliness and overcrowding thresholds in its state it is possible to refer to them in conditions and actions, but even to modify them, obtaining thus more complex, dynamic and possibly heterogeneous situations. Figure 2.9 shows the effects of some possible heterogeneity conditions on agents perceptive capabilities and strength.

72 70 MULTILAYERED MULTI AGENT SITUATED SYSTEM Figure 2.9: A fragment from a simulation showing the effects of heterogeneity in agent perceptive capabilities and strength.

73 CHAPTER 3 MECHANISMS SUPPORTING MMASS INTERACTION MODEL 3.1 SUPPORTING MMASS: ISSUES, SCENARIOS AND DESIGN CHOICES The previous Chapter has described the MMASS model, the defined concepts and mechanisms, exemplifying them in different application domains. The aim of this Chapter is to describe various issues related to the design and implementation of systems based on this model. The aim of this part of the work is the design of mechanisms supporting the implementation of an infrastructure for MAS engineering (see, e.g., [OOR04]). The rationale is to move the burden of interaction from agents to their environment, actualized by an infrastructure, which represents a suitable support for their operation, and specifically, for their interaction. Such an environment would allow users (i.e. MAS designers) to focus on the modelling activity and more precisely on the definition of agents behaviours, adopting the existing interaction model and reusing the related underlying mechanisms. In this framework, an architecture and algorithms supporting concepts and mechanisms defined by the model must be designed, and choices taken in this phase determine the applicability of the related algorithms and architecture to different application domains and scenarios. On the other hand, specific application domains and contexts may point out specific solutions that may be less general, but compensate this loss with a higher efficiency. In the following, proposed approaches and solutions for the de-

74 72 MECHANISMS SUPPORTING MMASS INTERACTION MODEL sign and implementation of MMASS defined concepts and mechanisms will be described and discussed with reference to application domains, contexts and characteristics. MMASS based systems may be made up of a single layer of spatial representation or multiple layers connected by means of interfaces. Some design issues are related to concept and mechanisms that are exploited even on single layer systems, while multi layered ones present specific problems. The following Sections will focus on general design issues of MMASS based system, and more precisely on supporting field diffusion, reaction and concurrency issues related to agent movement. Section 3.5 will instead focus on design issues related to systems requiring multiple layers. Considerations on existing languages, tools, middlewares and platforms that could be exploited in the design and implementation of MMASS based systems will end the Chapter. The described mechanisms supporting field diffusion are partially described in [BMV04b, BMVar, BMVssb], while the proposed mechanisms supporting reaction are discussed in [VB04]. 3.2 FIELD DIFFUSION Chapter 2 formally introduced the concepts of field, diffusion, and perception and introduced them as an interaction mechanism allowing broadcast and multicast communication. Fields, in fact, can propagate throughout the space reaching several (possibly all) agents, according to their positions and perceptive capabilities, the spatial structure of the environment, field type definition. Field diffusion is thus a modification of a resource that is shared by agents. Moreover this resource can be centralized in a single computational unit managing all the system but also distributed over a networked environment. Design choices on who actually performs this operation on agent environment, and on the kind of algorithms adopted to implement the diffusion mechanism will be described in the following subsection, discussing choices and proposals with reference to their feasibility and suitability to application domains, contexts and their characteristics CENTRALIZED APPROACH A centralized approach to the field diffusion management provides a unique module whose task is to receive information related to emitted fields from various agents and suitably update in a global fashion the

75 3.2 FIELD DIFFUSION 73 S1 S2 F3 S5 S7 Diffusion Handler F2 S3 F1 S4 Figure 3.1: A centralized diffusion handler must provide a mechanism for concurrent diffusion management. data structures related to the spatial representation, as shown in Figure 3.1. A first consideration on this kind of approach is related to the centralized or distributed deployment of sites in computational units. Sites represent the minimal part of agent environment, and it is thus possible to think of them as minimal computational units that can be distributed on a computer network. In this case, a centralized approach providing a single module performing field diffusion would not be particularly suitable. In fact such a module is responsible to compute the value of the diffused field for every site of the layer, and would thus require global information on its spatial structure (i.e. the distance from the site where the field was emitted and the one on which the diffused value is being computed). Moreover, such a monolithic implementation of this mechanism clearly presents a bottleneck in this module, as it should handle all remote interactions between agents. However, a centralized approach could be suitable to contexts in which the whole system is localized on a single computational unit, as the requirement on global information on the structure of the environment would be more easily satisfied. In fact, a single data structure aggregating sites in a structured way is available in a single computational unit, and it is possible to compute distances among sites with traditional algorithms for graphs, or even much simpler ones, if the spatial structure is regular. However, such a global data structure may represent an issue, as write accesses (i.e. field emission) should be mutually exclusive. The granularity of this structure must thus reach a deeper level of detail, providing the representation of the single site as an entity of its own,

76 74 MECHANISMS SUPPORTING MMASS INTERACTION MODEL S Figure 3.2: In regular structures diffusion may be implemented in a very simple way. to allow a reasonable possibility of concurrent management of different fields diffusion. Even doing so, splitting the spatial structure into smaller parts corresponding to sites, a centralized approach providing a single entity to manage the diffusion of all fields emitted in the space might represent an issue. As many agents may emit fields concurrently, the diffusion handler should implement a multi-threaded server and a suitable queuing mechanism should be designed and implemented. However, by doing so, an element of synchronicity in the diffusion operation would be introduced. These considerations are clearly significant for asynchronous systems, as in a synchronicity assumption the field diffusion can be performed just after the emission, before any other agent action can be performed. The MMASS model allows the representation of heterogeneous systems in terms of both agent types and interactions among them, that can thus be synchronous (i.e. reaction between adjacent agents) and asynchronous (i.e. field emission and perception). The centralized approach seems thus only appropriate for the implementation of MMASSbased systems deployed on a single computational unit, and possibly provided with a synchronous dynamic DISTRIBUTED APPROACH When the MMASS to be implemented must be spread over a network of computer, a suitable approach to field diffusion management should thus provide asynchronous and distributed mechanisms. Sites, as atomic elements of the model, are responsible for the diffusion of fields and must communicate and collaborate to perform this operation.

77 3.2 FIELD DIFFUSION 75 D S F Figure 3.3: A flooding approach to diffusion determines field replication over the spatial structure. The destination site receives two copies of field F, possibly with different intensity values. A site may be triggered into performing this operation as a consequence of an emission action performed by an agent positioned in it, or also by the reception of a field that was emitted somewhere else in the environment and was transmitted by an adjacent site. At this point, the site should compute the value of the field according to the diffusion function defined for that type of field and transmit the field to some or possibly all adjacent sites, provided that is its value is not null. The choice on which sites the field should be transmitted is not trivial, due to the generally non regular structure of the environment. In regular environment a general rule indicating which paths must be followed in order to perform diffusion can be easily specified (for instance, see Figure 3.2). Fields should reach every site once and it should be easy to compute actual value of the diffused field at a give site. Considering that the diffusion function is generally dependant on the distance of the site for which it is being computed from the source of the emission, the preservation of this metric in field diffusion is a desirable property for the diffusion algorithm. These considerations lead to an analysis of how existing algorithms, designed in the area of distributed systems and networking [Tan96] (more precisely routing protocols), could be used or adapted to this situation. The first, and probably the simplest, algorithm we considered was flooding: to emit a field an agent must interact with the underlying site, which sends it to the adjacent ones that will in turn do the same

78 76 MECHANISMS SUPPORTING MMASS INTERACTION MODEL (avoiding to send back the field to the source site). Field intensity must be modified according to the diffusion function: this operation can be performed by the transmitting or receiving site, but the former choice avoids unnecessary field transmissions (i.e. totally decayed fields). Considering that the field may keep track of the number of edges crossed from the source of emission, the computation of the actual diffusion path followed by the field can be easily computed. No additional structure is required and this algorithm is well known for its robustness (that is not crucial in this situation), a feature that is obtained thanks to a massive replication of sent messages. This is more than just a performance issue, as a specific field could reach a site through different paths (for instance, see Figure 3.3). In most situations fields should reach destination sites only once, through a single path (generally the shortest one), and thus flooding would not represent a good choice. In fact a field could reach a site through a path different from the shortest one, and its value would thus be inconsistent. This problem can be partially solved by having sites that can avoid diffusing fields that have already passed through them, unless their intensity is higher (or lower, if the diffusion function grows with the distance) than the current one. To do so every emit action should be associated to an unique identifier, to allow the recognition of previously diffused fields. This modification to the basic flooding algorithm assures that inconsistent situations are just temporary and will be eventually corrected. It also limits the number of field transmissions between sites but the duration and cost of a diffusion operation cannot be determined a priori as it only relies on a possibly irregular spatial structure. Different other routing algorithms were considered, namely link state and distance vector variants, and the idea of having a preliminary phase providing for each site the construction of a data structure representing the network configuration seemed suitable to this kind of problem. In fact it could represent a way to enable sites to compute paths for the diffusion of fields, using for instance a source routing approach. These paths could be built in accordance to the diffusion strategy, with fields reaching sites following just the shortest path or every path not having cycles. Said structures could be computed once for every site (when the application is started) and then stored, if the number of agents sites ratio is high and the emission of fields is frequent. Otherwise a more economic approach should provide the generation of those structures by request and a partial storage of them in a sort of cache, to keep limited memory occupation. Some approaches to this problem will be described in the next section.

79 3.2 FIELD DIFFUSION 77 S1 S2 S5 S7 S3 F S4 Figure 3.4: The MST centered in the source site (S5) guides the diffusion of field F. At the k-th transmission, the diffused field reaches sites distant k hops from the emission site. global notconnectedsites, MST, frontier; procedure buildmst(rootsite) begin MST:=null; frontier:=rootsite; notconnectedsites:=allsites; notconnectedsites.remove(rootsite) until notconnectedsites=null expandnode(frontier.getfirstnode()); end procedure expandnode(node) begin foreach e in node.outstandingedges begin newmst:=mst; newmst.add(edge); if not hascycles(newmst) then begin MST:=newMST; notconnectedsites.remove(node.getadj(e)); frontier.addlast(node.getadj(e)); end end end Figure 3.5: Pseudo-code for layered BSF MST building procedure.

80 78 MECHANISMS SUPPORTING MMASS INTERACTION MODEL PROPOSED ALGORITHM AND STRUCTURES The algorithm that is being described here provides the generation of infrastructures to guide field diffusion and a specification of how sites should perform it, according to the diffusion function related to the specific field type. It was designed under the assumption of an irregular space (i.e. undirected, non weighted graph), with a high agents sites ratio and very frequent field emissions. Fields propagate instantly throughout the space, according to the modulation specified by the field type diffusion function; in general fields could diffuse throughout all sites in the space. Under these assumptions we considered the possibility of storing a spatial structure representation for each site, and namely a minimum spanning tree (MST) connecting it to all other sites, as the use of said structures is frequent and the overhead for their construction for every diffusion operation would be relevant. There are several algorithms for MST building, but previously explained design choices led to approaches that could be easily adapted to work in a distributed and concurrent environment. The breadth first search (BSF) algorithm starts exploring the graph from a node that will be the root of the MST, and incrementally expands knowledge on the structure by visiting at phase k those nodes that are distant k hops from the root (for instance, see Figure 3.4). A pseudo-code formalization of the related algorithm is shown in Figure 3.5. This process can be performed by nodes themselves (sites, in this case), that could offer a basic service of local graph inspection that could even be useful in case of dynamism in its structure. The root site could inspect its neighborhood and require adjacent sites to do the same, iterating this process with newly known sites until there is no more addition to the visited graph. An important side effect of this approach is that this MST preserves the distance between sites and the root: in other words the path from a site to the root has a number of hops equal to its distance from the root. Fields then propagate through arcs of the MST and thus the computation of the diffusion function is facilitated. The diffusion procedure is more precisely described in Figure 3.6. The complexity of the MST construction using this approach is the order of O(n + e) where n is the number of sites and e is the number of edges in the graph. Such an operation should be performed by every site, but with a suitable design of the underlying protocol they could proceed in parallel. Field diffusion requires at most O(log b n), where b is the branching factor of the MST centered in the source site and the field propagation between adjacent sites is performed in constant

81 3.2 FIELD DIFFUSION 79 procedure diffuse(recsite,field) begin if recsite=this then begin this.addfield(field); forall e in this.outstandingedges this.getadj(e).diffuse(this,field); end else begin this.addfield(field.computevalue(this)); currentmst:=field.sourcesite.getmst(); propagatesites:=currentmst.getedges(this); propagatesites.remove(this.getedge(recsite)); forall e in propagatesites this.getadj(e).diffuse(this,field); end end Figure 3.6: Pseudo-code for diffusion procedure exploiting a MST centered on emission source. time. The issue with this approach is the memory occupation of all those structures, that is O(n 2 ) (in fact it is made up of n MSTs, each of those provides n 1 arcs); moreover if the agents sites ratio is not high or field emission is not very frequent to keep stored the MST for every site could be pointless, as many of those structures could remain unused. There are different correctives to this approach, and two possibilities were considered: the first provides the storage of just one MST, requiring a central data structure with the distances between different sites, the other provides the construction of MSTs by request and the caching of this structure in a limited buffer. The first approach uses a single MST whose edges are used to propagate fields that will thus reach every site just once (see Figure 3.7). For the diffusion of a field, the source site becomes the root of the tree and exploits it to send the related information to other sites. However this structure does not preserve the actual distance between nodes so, to effectively compute the actual value of a field in the destination site according to the diffusion function, another structure storing distances among nodes is needed. This structures size is O(n 2 ), so according to the asymptotic memory occupation this approach is comparable to the previous one, and the same holds for the time complexity related to the building of these structures. To perform a diffusion operation, instead, a field must visit n 1 sites in

82 80 MECHANISMS SUPPORTING MMASS INTERACTION MODEL S1 S2 S1 S2 S1 S2 S3 S4 S5 S S5 S6 S S3 F S S S4 S Figure 3.7: A single MST allows the diffusion of a field over the space without replications, but a separate structure is needed to compute field intensity in destination sites. Gray squares are unnecessary, but even not considering them the structure size is O(n 2 ). the worst case. This approach seems thus comparable to the previous one according to the space occupation, and even worse according to the complexity of the diffusion operation, but this comparison is related to asymptotical costs and related constants could be relevant (at least for a certain values of n) so these results should be supported (or possibly confuted) by tests and benchmarks. The second modification does not bring substantial changes in the infrastructures and algorithms, but limits the memory occupation by defining a MST cache facility that will allow the storage of a constant number of these structures. By doing so the space complexity is reduced to O(n), but the diffusion operation is more complex, because it depends on the cache hit rate. If the MST centered on the source site has already been built and is still in the cache the cost of diffusion is at most O(log b n), otherwise the MST must be constructed and the cost grows to O(n + e). This approach seems thus the most effective, especially in a scenario where the agents sites ratio is not high and agents do not have a high mobility. A suitable strategy for cache management (possibly derived by virtual memory handling policies), and especially for MST replacement in the related buffer, should be defined and implemented. The main issue with this approach is the location of this cache, in a distributed scenario: generally caches are centralized, so this approach is probably more suited to systems providing irregular spatial structures in a centralized scenario.

83 3.2 FIELD DIFFUSION 81 Figure 3.8: Presented approaches and features are shown in this table DISCUSSION To design an algorithm for field diffusion over a generally irregular spatial structure, in the context of the MMASS model, several aspects must be taken into account. The model is meant to be general and thus makes no assumption on the synchronicity of the system, and on the form and nature of the diffusion function, directing the field propagation in the environment. Results of the analysis that has been carried out are summarized in Figure 3.8: there is no generally optimal algorithm or strategy, but every situation presents specific features that must be taken into account in the choice (or design) of a strategy for field diffusion. For instance, the flooding approach, even with the indicated correctives, seems generally not convincing. However, in a networked environment with a very high number of sites, it could be very expensive to build secondary structures guiding fields diffusion. Moreover, building MSTs covering all sites in the space could be an unnecessary burden if the area of propagation of a field is a very small portion of the whole environment. In this case flooding would simply stop diffusing fields that are completely decayed (i.e. null valued fields). These are just some examples of how the specific reality to be modelled, scenario of application, its features and requirements (functional and not-functional) have a deep impact on the choice related to the strategies to handle field diffusion, and thus on structures and algorithms. In general, in centralized systems, it could be possible to implement different diffusion algorithms related to specific spatial structures, for instance to exploit regularities, in order to obtain efficient, even if non general, diffusion strategies.

84 82 MECHANISMS SUPPORTING MMASS INTERACTION MODEL 3.3 REACTION Reaction is an activity that involves two or more agents that are placed in sites forming a clique (i.e. a complete subgraph) and allows them to synchronously change their state, after they have performed an agreement. The model does not formally specify what this agreement process consists of, and how the activities related to this process influence agent behavior. This choice is due to the fact that such an agreement process could be very different in different application domains (e.g. user authentication, transactions). Especially in a networked environment an agreement process could bring to possible deadlocks. In order to better focus this subject, more details on internal mechanisms related to agent, to the environment and its composing parts must be given SYNCHRONOUS ENVIRONMENTS In synchronous situations, and especially in centralized systems, an agent might be related to a single thread of execution, evaluating possible available actions in a sequential fashion and communicating with the environment, not only for functional reasons (e.g. perform action which modify the environment) but also to maintain system synchronicity (i.e. agent threads wait until the environment signals them that the global system time step has advanced). The environment is thus provided with at least one thread of execution of its own, that is responsible for the management of field diffusion, other modifications of the environment (as consequences of agents actions), and enforce system synchronicity. A simpler scenario, providing a sequential execution of agents behaviours (which would be triggered by the environment, which is related to the only thread of execution in the whole system) could provide a much simpler management of reaction. This kind of approach is adopted by several platforms and libraries specifically focused on supporting the implementation of Multi-Agent Based Simulations (e.g. Repast 1, Mason [LBP + 03] 2 ), as it prevents concurrency issues and allows to obtain compact and efficient simulations with a high number of entities. The price of these characteristics is essentially that agents are not provided with a thread of execution of their own (according to some definitions they could not be called agents at all), and the execution of their behaviours is sequential (but not necessarily deterministic) eclab/projects/mason/

85 3.3 REACTION 83 begin turn:=0; do begin localcontext:=environment.sense(turn); nextaction:=actionselect(localcontext); outcome:=environment.act(nextaction,turn); if outcome<>fail then turn:=turn+1; end while(true); end Figure 3.9: Agent behaviour thread in a synchronous situation, expressed into pseudo-code. In the following, more details on agent and environment activities and threads of execution will be given; the situation that will be considered provides one thread for every agent, and a synchronous system. The described approach is valid both for centralized and for distributed situations; in the latter case one of the sites must be elected as a representative of the whole environment, and interactions with the environment can be implemented through a remote invocation protocol (e.g. RMI or others, according to the chosen implementation platform). AGENT BEHAVIOUR MANAGEMENT THREAD The sequence of actions performed in the agent behaviour thread is the following: sense its local context: in order to understand what are the actions whose preconditions are verified, the agent has to collect information required for action selection, and more precisely: active fields in the site it is positioned on and adjacent ones; agents placed in adjacent sites, and their types; select which action to perform: according to the action selection strategy specified for the system (or for the specific agent type), the agent must select one action to be performed at that turn (if no action s preconditions are satisfied, the agent will simply skip the turn);

86 84 MECHANISMS SUPPORTING MMASS INTERACTION MODEL begin turn:=0; do begin until(forall i in 1..n, agent_i.actionperformed=true) begin collect(agent_i,action,agentturn) if agentturn=turn then begin manage(agent_i,action, turn); agent_i.actionperformed:=true; end else agent_i.wait(); end turn:=turn+1; forall i in 1..n agent_i.actionperformed:=false; notifyallagents(); end while(true); end Figure 3.10: Environment behaviour thread in a synchronous situation, expressed into pseudo-code. perform the selected action: in order to perform the previously selected action, the agent must notify the environment, because the action provides a modification of agent s local context or simply to maintain system synchronicity. The last step in agent behavioural management cycle may cause a suspension of the related thread by the environment. In fact an agent may be trying to perform an action for turn t while other ones still did not perform their actions for turn t 1. A pseudo-code specification of agent behavioural thread sequence of activities is shown in Figure 3.9. Agents must thus keep track of current turn and of the previously performed action. In fact, as will be introduced in the following subsection, system dynamics might require an agent to reconsider its action when it is involved in a reaction process. ENVIRONMENT MANAGEMENT THREAD The environment, more than just managing information on agents spatial context, also acts as a monitor in order to handle concurrency issues

87 3.3 REACTION 85 procedure reactionmanagement(agent, action, turn) begin involvedagents:=action.getreactionpartners(); reactingagents:=new list(); reactingagents.add(agent); agreed:=true; forall agent_i in involvedagents begin if agent_i.agreereaction(involvedagents) = false then begin agreed:=false; break; end reactingagents.add(agent_i) end if agreed=true then forall agent_i in reactingagents agent_i.performreact(turn); else forall agent_i in reactingagents agent_i.notifyfailure(turn); end Figure 3.11: Reaction management procedure in a synchronous situation, expressed into pseudo-code. (e.g. synchronization, agreements among agents). Agents must notify the environment of their actions, and the latter will manage these actions performing modifications to the involved structures (e.g. sites and active fields) related to the following turn. The state of the current one must be preserved, in order to allow its sensing and inspection by agents which still did not act in that turn. The environment may also put an agent into a wait condition, whenever performing its action would break system synchronicity. This wait ends when all agents have performed their action for the current turn, and thus all entities are free to perform actions for the next one. The environment must thus keep track of the actions performed by agents in the current turn, and then notify waiting agents whenever system time advances. More schematically, a pseudo-code description of the environment thread of execution is shown in Figure In particular the manage function inspects the specified action (which includes the required preconditions and parameters), checks if it is valid and then calls the appropriate subfunctions which effectively perform actions. The previously introduced sequences require a slight integration to specify how reaction actions are managed. In this case the beginning of

88 86 MECHANISMS SUPPORTING MMASS INTERACTION MODEL an agreement process stops other agent actions until this process is over, either positively (when all other involved agents agreed) or negatively (when the agreement failed). In this way, also system time advancement is stopped until the reaction process is over, preserving system synchronicity. The reaction is triggered by the agent which first requires the execution of this action to the environment. The latter becomes the leader of the group of involved agents, queries them asking if they agree to take part in the reaction, if an agreement is reached it signals them to change their state, then starts again the normal system behaviour, allowing the advancement of global system time step and thus agent execution. More schematically the environment procedure devoted to the management of reaction is shown in An agent receiving a notifyfailure will have a fail outcome, and thus will not advance its time step and will start its behavioural cycle for the current turn. The reactionmanagement procedure is one of the specific subroutines invoked by the the environment thread of execution previously shown in Figure 3.10 through the manage function. EXAMPLES A sample scenario illustrating the evolution of a centralized synchronous MMASS system is shown is Figure Scenario (a) provides the presence of a set of agents (Agent-1,..., Agent-n), which do not require the execution of reaction actions. The system dynamics is the following: Agent-2 performs a trigger (action 1); Agent-1 emits a field (action 2) and as a consequence the environment performs its diffusion (action 2.1); Agent-2 also tries to perform an emission (action 3), but the environment puts it into a wait condition, as other agents did not perform their actions in that turn; agents that are not shown in the Figure perform their actions, which are managed by the environment; eventually Agent-n performs a transport action (action n), and as a consequence the environment performs its movement (action n.1), advances system time (action n.2) and eventually notifies agents. Agent-2 emit action (action 3) will now be managed.

89 3.3 REACTION 87 Agent-1 2: emit 2.1: diffuse n.2: advance (a) 1: trigger Agent-2 1.1: actiondone Environment 3: emit n.1: move Agent-n n: transport 2.3: performreact Agent-1 2: react [Agent-2, Agent-3] 2.6: advance (b) Agent-2 2.1: agree [Agent-1, Agent-3] 2.1.1: agreed Environment 1: trigger 2.4: performreact 1.1: actiondone 2.2: agree [Agent-1, Agent-2] Agent : agreed 2.5: performreact 2.2.1: select Figure 3.12: A sample scenario illustrating the evolution of a centralized synchronous MMASS system. In (a) Agent-2 is put into a wait condition to preserve system synchronicity. In (b) Agent-n, an agreement process for a reaction among Agent-1, Agent-2 and Agent-n is shown.

90 88 MECHANISMS SUPPORTING MMASS INTERACTION MODEL A different case is shown in scenario (b), which exemplifies the sequence generated by a reaction request. Agent-1, Agent-2 and Agent-3 are positioned in sites forming a clique. In this case system dynamics is the following: Agent-3 performs a trigger (action 1); Agent-1 requires the environment to perform a reaction with Agent-2 and Agent-3 (action 2); as a consequence to this request, the environment asks Agent-2 if it intends to agree in preforming the reaction (action 2.1) and it receives a positive reply (action 2.1.1); the environment then asks Agent-3 if it wishes to reconsider its action for the current turn (action 2.2); the agent performs anew an action selection (action 2.2.1) and decides to agree(action 2.2.1); the environment indicates all involved agents that they must perform the reaction (actions ) and then advances system time. DISCUSSION The previously described approach to the management of agents, their cycle of execution, their environment and reaction mechanisms provides a key role of the environment, which represents a sort of medium ensuring specific properties, and especially system synchronicity. This is a global feature of the system, and the simplest way to ensure it is to have a conceptually centralized unit to which all entities must refer in order to perform their actions. This medium and artifact mediated interaction models (introduced in Section 1.4.1) seem thus very similar, in fact, both provide an indirect interaction among agents and must tackle issues related to the concurrent access to shared resources. The main difference is the fact that, for instance, a Linda tuple space does not provide abstractions for the definition of spatial information (e.g. a topology, an adjacency relation), that should be modelled, represented and implemented. An interesting feature of advanced artifact based interaction models, and more precisely reactive and programmable tuple spaces, is the possibility to specify a behaviour for the artifact, which could be a way to implement interaction mechanisms defined by the MMASS model. The described approach provides computational costs that could be avoided, in a centralized situation, by providing a single thread of exe-

91 3.3 REACTION 89 begin do begin localcontext:=mysite.sense(); nextaction:=actionselect(localcontext); outcome:=site.act(nextaction); while(true); end Figure 3.13: Agent behaviour thread in an asynchronous situation, expressed in pseudo-code. cution, preventing synchronization issues by activating agents in a sequential (although non necessarily deterministic) way (i.e. adopting the approach exploited by Swarm like simulation platforms). Whenever autonomy and proactiveness are not central elements in agent modelling, this could be a feasible and cost effective choice. It could be the case of simulations characterized by a large number of entities endowed with very simple behavioural specification. However, the described approach can useful when integrating into a single environment entities characterized by a higher degree of autonomy, proactiveness and heterogeneity (for instance, reactive and deliberative agents developed with deeply different approaches) ASYNCHRONOUS ENVIRONMENTS In an asynchronous situation, the mechanisms for the management of agents and their interactions with the environment, are on one hand simpler than in a synchronous case (i.e. there is no need to ensure that every agent acts once per turn), but can also be more complex as there less constraints on action timings. In a centralized situation, it is still possible to delegate the management of shared resources to an environment entity, whose task is actually simpler than in a synchronous situation as it does not have to maintain global system synchronicity, although it must guarantee the consistent access to shared resources. This Section will then focus on a distributed and asynchronous scenario. AGENT RELATED THREADS In a distributed and asynchronous situation, even if it would be possible to elect a single representative of agents environment (like in the synchronous and distributed case, described in the previous Section), this

92 90 MECHANISMS SUPPORTING MMASS INTERACTION MODEL begin do begin reactionrequest:=mysite.getreactionrequest(); newreactmanager:=new ReactManagerThread(reactionRequest); newreactmanager.start(); while(true); end Figure 3.14: Agent reaction detection thread in an asynchronous situation, expressed in pseudo-code. possibility would represent a bottleneck and is not even necessary. In fact, the main reason for the presence of a single representative of agent environment was to assure system synchronicity. Agents will now collaborate directly with the sites they are placed on, and their behavioural threads must be changed. A pseudo-code formalization of agent behaviour thread in an asynchronous situation is shown in Figure Another change that can be introduced in the agent is the presence of a distinct thread for the management of reaction requests. In fact the agreement process required by the reaction process can require a certain number of interaction among agents which are placed in computational units spread over a network. This means that a relevant delay may occur from the beginning of an agreement process and its outcome (either positive or negative). Being in an asynchronous situation there is no need to stop agent behavior in order to wait for this process to end. An agent may be provided with three kinds of threads: its behavioural thread, which is very similar to the one related to the synchronous situation, and whose structure is shown in Figure 3.13; a thread which is devoted to the detection of reaction requests; this thread is responsible to query the site for pending reaction requests (which may occur concurrently) and start the third kind of thread which will manage the agreement process; a pseudo-code formalization of this thread is shown in Figure 3.14; threads that are devoted to the effective management of the reaction process; a pseudo-code formalization of this thread is shown in Figure This kind of thread must check if the agent effectively

93 3.3 REACTION 91 begin myreactaction:=this.getaction(reactionrequest); if myreactaction<>null then begin if reactionrequest.author <> this then begin agreed:=checkagreement(reactionrequest); site.replyreactreq(reactionrequest, agreed); end if agreed=true then begin agreemreached:=site.getreactagreement(reactionrequest); if agreemreached=true then this.changestate(myreaction.nextstate); end end else site.replyreactreq(reactionrequest, false); end Figure 3.15: Agent reaction management thread in an asynchronous situation, expressed in pseudo-code. agrees to perform the reaction, through the checkagreement invocation (only if it is not the one which actually started the reaction process). This means that first of all the agent must have a react action matching the one specified by the request (this is checked through the getaction invocation). Then it must wait the notification of the success or failure of the agreement (the getreactagreement invocation may in fact suspend this thread) and, in the former case, change the agent state. A diagram showing the three kinds of thread related to a single agent are shown in SITE RELATED THREADS Similar considerations on the internal structure of agents may be also done for sites. The latter act as a interfaces between agents and the rest of the environment, and must manage events generated both internally and externally. In particular, internal events are generated by an agent that is positioned on the site, and more precisely they are the following ones:

94 92 MECHANISMS SUPPORTING MMASS INTERACTION MODEL Agent basic threads Reaction agreement request Reaction agreement request Behavioural thread Reaction detection thread Additional threads for reaction management Figure 3.16: Threads of execution related to a single MMASS agent in a distributed asynchronous environment. sense the local context: the site must provide an agent with the information it needs to select which action it may perform (active fields in the site and adjacent ones, agents in adjacent positions and related types); transport request: when an agent attempts a transport action, the site it is positioned on must communicate with the destination one in order to verify if it is empty, and eventually allow the agent movement, which frees the current site; more details on transport action issues will be given in Section 3.4; reaction request: upon reception of a reaction request by the overlaying agent, the site must propagate it to involved agents sites, which in turn will notify them. The site must wait for their replies and then notify all involved entities of the agreement operation outcome; in other words, the site where the reaction is generated is the leader of the group of involved sites; a pseudo-code formalization of the reaction management procedure for the leader site is shown in Figure 3.17; field emission: when a field is generated in a site it must be added to the set of active fields present in the site, and it must be prop-

95 3.3 REACTION 93 agated to other adjacent sites according to the chosen diffusion algorithm (see Section 3.2). With reference to reaction, and especially on the selection of a leader site, there are some additional elements that must be integrated with the previous description of site behaviour. In an asynchronous environment, there is the possibility that two agents concurrently start two related reactions. For instance, given three agents A, B and C, placed in sites forming a clique, agent A and Agent B require their respective sites to react among themselves and with agent C. There is not a single site which started the reaction, so a leader must be chosen. Whenever this kind of situation occurs an election protocol must be invoked. The first and probably simplest solution, is to associate a unique identifier related to every site (a very simple way of obtaining it could be the adoption of a combination of the IP address and TCP port related to the site) and assume that the one with the lowest identifier becomes the leader of the reaction group, and others will behave as the reaction request was generated by the leader. Externally generated events are consequences of internal events generated by agents in other sites; more precisely they are the following ones: inspect the site: upon request, the site must provide to adjacent sites information related to active fields and to the presence (or absence) of an agent in it; diffusion propagation: when a field generated in a different site is propagated to the current one the latter must evaluate its value through the related diffusion function and, if the value is not null, it must propagate the field to other adjacent sites according to the adopted diffusion algorithm (see Section 3.2); reaction request: upon reception of a reaction request by the leader of a reaction group, the site must forward it to the overlaying agent, wait for its response and transmit it back to the leader; then it must wait for the outcome of the reaction and notify the overlaying agent; a more schematic description of non-leader sites behavior for management of reaction is shown in Figure 3.18; transport: when a remote agent attempts a transport action, the destination site must verify if its state has changed from the previous inspection performed by the agent, and if it is still empty will

96 94 MECHANISMS SUPPORTING MMASS INTERACTION MODEL procedure reactionmanagement(agent, action) begin involvedagents:=action.getreactionpartners(); reactingagents:=new list(); reactingagents.add(agent); agreed:=true; forall agent_i in involvedagents begin adjsite:=agent_i.getsite(); adjsite.reqagreement(action); end until(forall a in involvedagents, a.gotresponse) begin if receiveagreeresp(agent_i,action) = false then begin agreed:=false; break; end reactingagents.add(agent_i) end if agreed=true then forall agent_i in reactingagents begin adjsite:=agent_i.getsite(); adjsite.performreact(action); end else forall agent_i in reactingagents begin adjsite:=agent_i.getsite(); adjsite.performreact(adjsite); end end Figure 3.17: Reaction management procedure for the leader site in an asynchronous situation, expressed into pseudo-code.

97 3.3 REACTION 95 procedure reactionmanagement(site, action) begin if this.agent <> null then begin this.agent.notifyreaction(action); agreed:=getreactreply(agent,action); site.replyreact(agreed); if agreed=true then if site.reqagreement()=true then this.agent.setreactagreement(action,true); end else site.replyreact(false); end Figure 3.18: Reaction management procedure for non-leader sites in an asynchronous situation, expressed into pseudo-code. allow the transport action, blocking subsequent incoming transports; more details on transport action issues will be given in Section 3.4. Site is thus responsible for many concurrent activities; the proposed structure of threads for a site is shown in Figure 3.19: there are two threads respectively detecting internal and external events, and these two threads generate additional ones in order to effectively manage them. INTER-THREAD COMMUNICATION Both agents and sites are provided with a set of threads which must be able to communicate among themselves in a safe and consistent way. For instance, agent reaction management thread in an asynchronous situation communicates to the underlying site by means of a replyreactrequest invocation (see Figure 3.15). The latter performs a write operation on a thread-safe queue, that is a structure with synchronized accessors (observers and modifiers) that may be accessed by site threads but also by the ones related to the agent that is placed on it. The replyreactrequest invocation inserts an event in this queue, and notifies threads that were waiting for the generation of events. In this case the thread interested in the agent reply to the reaction request is the one related to the underlying site which effectively manages the agreement process with other involved entities. It could be either the leader, which is put into a wait condition by the and the

98 96 MECHANISMS SUPPORTING MMASS INTERACTION MODEL Site basic threads Emission action request Propagate field request Reaction action request Internal event detection thread Remote event detection thread Internal event External event management management Figure 3.19: Threads of execution related to a single MMASS site in a distributed asynchronous environment. receiveagreeresp invocation (see Figure 3.17), or any other involved site, which is put into a wait condition by a getreactreply invocation (see Figure 3.18). PRECAUTIONS ON NETWORK COMMUNICATION What was still not considered is the possibility to have failures in network transmission, even if to design a robust distributed protocol for reaction management is not the focus of this work. Moreover the chosen technologies supporting network communication could implement mechanisms assuring a reliable form of communication. However, considering the simple loss of messages related to the orchestration of reaction, a simple protocol providing the transmission acknowledgements and the definition of timeouts in order to avoid deadlock situations could be easily implemented. Whenever this kind of issue is detected, the agents threads related to the management of reaction could simply try to repeat the whole process from the beginning. Moreover, the fact that every agent is related to multiple threads of control, greatly reduces the dangers and issues related to possible deadlocks. In fact, the agent behaviour thread is separated from the management of reactions, and the same can be said for what concerns site specific functions (e.g. threads

99 3.4 AGENT MOVEMENT 97 related to field diffusion are separated from those managing reactions). In this way a failure in a reaction process does not hinder the possibility of the agent to continue its common behaviour, leaving aside the specific reaction that caused the problem. This price of these advantages is that agents and sites are more complex from a computational perspective, and require more resources both in terms of memory and processor time. There are also some functional requirements that must be considered: the execution of an action during an agreement process might change the preconditions that brought an agent to accept the proposed agreement. In specific cases this could represent a serious issue, and in this case the possibility of the reaction management thread to temporarily block the agent behavioural one should be introduced, suitably exploiting the inter thread interaction mechanism. DISCUSSION Some of the concurrency issues that were described in this Section are common also in direct agent interaction models. In fact, they are generally designed to work in an asynchronous situation in which messages may be sent and received at any time. In order not to miss any message, the communication partners require some kind of indirection mechanism and structure. For instance, the abstraction of mailbox is adopted by Zeus [NNLC99], and Jade [Rim03] uses queues for managing agent messages. In both cases, specific threads of execution, in addition to those that are related to agents, are adopted to manage communication channels and message exchange. In the area of situated MASs, an approach to the management of coordinated actions [WH03] provides mechanisms that are similar to those that were introduced in this Section. In fact it provides a centralized synchronization, similar to the one provided by the environment described in Section A distributed mechanism for agent coordination is also described, but it provides a personal synchronizer for every agent while in the approach described in Section every site is responsible for providing this kind of service to the hosted agent. 3.4 AGENT MOVEMENT One of the available primitives for the specification of agent behaviour is the transport action. Its effect is to change the position of the related agent, causing thus a change in a localized portion of the environment.

100 98 MECHANISMS SUPPORTING MMASS INTERACTION MODEL (a) (b) 2.A:select A A 1.A:tryToMove B B 1.B:tryToMove Figure 3.20: Two conflicting transport actions: agent B effectively moves while agent A is forced to reconsider its behaviour according to the new situation. This aspect requires to consider the possibility of concurrent attempts to move to the same empty site, both in synchronous and in asynchronous situations. This conflict is generally handled on a first in first served basis, considering the site as a shared resource whose access is mutually exclusive, with a non deterministic choice in case of contemporaneous requests. A site acts as a monitor, and the attempt to move in it is managed as an attempt to lock the monitor. The transport operation may thus fail returning a negative outcome (see Figures 3.9 and 3.13): at a lower level of abstraction, agents implement a trytomove operation, whose failure in synchronous situations causes a new evaluation of the action selection strategy, like in a failed agreement case in an attempt to perform a reaction. A sample diagram showing this mechanism is shown in Figure More complex strategies, exploiting for instance agents features (i.e. sort of quickness characteristics) in order to choose which agent is effectively able to perform the transport action, would require a more elaborate pattern for the management of these conflicts. In a centralized and synchronous scenario, the environment may act as an arbiter choosing which transport action succeeds, possibly according to agent type or state. The former case may represent a sort of violation to agent autonomy and especially privacy, but it could have a semantical meaning especially in simulation applications. However, the definition of these strategies is strongly influenced by the specific application domain. In a distributed environment this kind of approach could also be adopted, but the arbiter would be represented by the contended site. However this operation could require higher number of connect operations with respect to the non-deterministic choice approach, making it a very expensive solution, given the related network latencies. The management of concurrent access to a shared resource (i.e. an

101 3.4 AGENT MOVEMENT 99 empty site) is not the only issue with reference to agent mobility. While in a centralized system moving an agent means to modify attributes and references in certain data structures, in a distributed environment it means to move its state, behavioural specification and perceptive capabilities from one computational unit to a different one, connected though a computer network. While transmitting a state means to communicate some data, a behaviour and perceptive system are quite different: in fact, in general they are not just related to parameters and are expressed into some form code, that is, portions (or even comprehensive software computational abstractions, such as objects) of programming languages expressions and constructs. Code mobility [FPV98] and mobile agents [WPM99] represent important areas of software engineering and agent research. The idea is to move agents towards network nodes which, for instance, contain information sources they must access and exploit the related computational resources. Some of the main general topics and issues investigated in this research area are the following: transportation: agent movement is related to the transmission of data related to agent state and possibly code related to its behaviour; this operation presents various issues related, for instance, to the reliability of communication and information transmission (e.g. loss or duplication of agent related information); authentication: the identity of agents moving across a computer network must be ensured; agent identity, especially in environments in which these entities have a high degree of dynamism, can be a serious issue that is often overlooked [Böl04]; secrecy: information owned by an agent should be protected by the computational unit it is placed on; security: the computational unit should be protected by the hosted agents, which should be able to perform only specific operations; performance issues: related both to network load and performance, but also to the impact of hosted agents activities on the performance of the single network node; interoperability/communication/brokering services: especially in the case of open systems development, the management of heterogeneity and provisioning of information on available agents, services, resources and nodes represent open issues. Some of the above described issues are particularly related to the design, development and operation of open systems, in which agents

102 100 MECHANISMS SUPPORTING MMASS INTERACTION MODEL can be heterogeneous and thus do not have to be defined according to a specific model. Agent behaviours are not generally bound to a specific set of allowed actions, and often an agent may interact directly with a common programming language API, and thus with the computational unit. This case presents evident security issues, and thus the most adopted approach provides the presence of a platform regulating agent movement and mediating its access to local resources. This underlying platform must define, enforce and enact specific strategies to limit interactions among agents and computational units, in order to ensure security and privacy. Summarizing, there are two main approaches to agent mobility, characterized by: the delegation of the management of these strategies to a technological platform which mediates all interaction among agents and the computational unit in which they are hosted; such a platform implements for agents services that are very similar to those offered by the sandbox [GMPS97], to which is delegated the management of applets; a more strict definition of agent allowed actions and interactions with the underlying platform, in order to simplify its design and implementation. While the first approach does specify constraints on the interaction among agents and nodes which host them, these constraints are expressed at a technical level, through the specification of an API which defines what are the available services, their parameters and so on. This activity and this kind of specification are of course necessary in order to implement a platform supporting agent mobility, but issues related to this topic could also be benefit from an attention even at a higher level of abstraction. The MMASS model specifically defines available actions for the definition of agent behaviours, and also specifies an agent interaction model. From this point of view, a network node could be conceived as a set of two connected sites, one of which hosts a static agent encapsulating resources and behavioural specification for that network node (Figure 3.21 shows a sample configuration of this kind). The other one is empty and ready to host ordinary agents, which can interact with the rest of the system (i.e. other ordinary entities and the hosting site) in a uniform way. While the former site is only connected to the one that may host an ordinary agent, the latter is connected to the rest of the system. This kind of approach provides the same attention to the modelling of agents and network nodes, related

103 3.4 AGENT MOVEMENT 101 Network node 3 N3 Network node 1 Network node 2 A B N1 N2 Figure 3.21: A sample configuration providing an agent for every network node (N i ) and a site for a possibly hosted ordinary agent (A and B). resources and behaviour. Moreover, the fact that available actions belong to a limited set, allows to design and implement in a simple way an interpreter for these actions, and thus a platform supporting the definition of agents in terms of a specific scripting language. In this framework agents may be related to a single textual element (e.g. an XML file), including their state, perceptive capabilities and behavioural specification. Such element may be more easily transferred than, for instance, java bytecode, and the fact that code is interpreted according to specific mechanisms that are provided by the underlying technological platform, but is not directly executable, limits security issues. Moreover the actual interfacing among the MAS and legacy resources (e.g. databases, sensors) is delegated, encapsulated and embodied by the network node agent, which is static and may thus be linked to code expressed into another programming language (e.g. Java, C++). The approach that provides the specification of code and behaviours through markup languages has been already successfully adopted for code mobility (see, e.g., [MZE02]). A detailed analysis, design and implementation of this approach is object of future works. Section 3.6 will briefly describe some related works and technologies that could be significant for the implementation of a platform for MMASS based systems, and some of them could also be useful for the implementation of agent mobility over a network.

104 102 MECHANISMS SUPPORTING MMASS INTERACTION MODEL 3.5 MULTIPLE LAYER ISSUES The MMASS model provides the possibility to represent different aspects of agents environment through the definition of multiple layers interconnected by means of interfaces. In this Section some issues specifically related to the management of the presence of multiple layers in a MMASS-based system will be discussed. The presence of several layers of spatial representation, related to physical spaces or to logical topologies, do not present specific issues in the case of a centralized system. The environment related entities (i.e. sites, edges and interfaces) reside on a single machine and thus their deployment does not represent a problem. In the case of a distributed system, instead, the decision on mappings between computational units and environmental parts is not trivial. In some cases the basic unit of spatial representation, that is a site, can be mapped to a single computational unit of a computer network. Edges defined by the spatial structures can be mapped as acquaintance information stored in sites, which thus know the address of adjacent sites. Interfaces could be managed in a similar way, but limiting the kind of signal that can be transferred towards that specific address. In the previous section another possible kind of deployment, providing the creation of specific agents related to network nodes was also proposed to support agent mobility. In this case more than one single site would be hosted by a network node. In order to understand if there are other possible ways to deploy sites on a distributed system a sketch of typical situations providing an environment made up of different layers of spatial representation will be illustrated STELLAR CONFIGURATION From a conceptual point of view, we can have a single layer, for instance related to an abstraction of a physical environment, whose agents generate, capture and interpret signals that will be spread into other layers. In turn agents placed in those layers will react and produce some kind of behaviour accordingly; the latter could eventually have consequences and effects that extend their influence back to the first layer (e.g. offering services to entities placed in the first layer). This kind of situation and structure could be defined as stellar, as many different layers are all connected to the first one, which is observed by means of interfaces acting as probes in this environment. A typical monitoring and control system could be modelled with this kind of environmental configuration. The central layer could represent the monitored reality, including distributed intelligent sensors and actuators which could be modelled

105 3.5 MULTIPLE LAYER ISSUES 103 Layer B Layer D Layer C Layer C Layer B Layer B Layer A Layer E Layer A Layer C Layer A (a) (b) (c) Figure 3.22: Typical configurations and main information flows in multilayered environments: stellar (a), bridge (b) and superposed (c). as agents. Other layers represent abstractions of the aspects that are monitored in the previous layer: for instance, one of the peripheral layer could represent an organization abstraction indicating which operator should be warned about anomalous conditions, and another layer could be devoted to the modelling of activities which can be taken automatically as a response to that kind of situation. A variant of the previously introduced stellar configuration provides the same kind of structure but an inverse sense for information flows. In this scenario, the star centre is a collector of information generated by other layers. An example of this kind of configuration can be taken from the monitoring and control area: in this case there is possibly a single aspect of this reality that must be considered, but the sources of information related to this aspect are intrinsically distributed in distinct environments. In this case roles of peripheral and central layers are simply inverted, with respect to the previous example BRIDGE CONFIGURATION Another possible environmental configuration is related to the presence of different separated layers, related for instance to different physical spatial abstractions or even conceptually separated organizational units, which realize distinct interaction contexts. Another layer could be used as a bridge among these layers, observing signals generated by the related agents, and in case routing them to other layers according to some kind of semantics (e.g. forward signals generated by a layer into other ones as in those layers there is someone interested in that kind of information). The integration of information systems owned by different companies wishing to interact (for instance in order to automatize a supply chain) but maintaining a certain level of privacy could be an example of a scenario where a bridge environment configuration could be suitably adopted.

106 104 MECHANISMS SUPPORTING MMASS INTERACTION MODEL SUPERPOSED CONFIGURATION Finally, we may also model a scenario in which different layers represent distinct perspectives on the same kind of reality which we want to keep separated, instead of mixing them up in a single layer of spatial representation. This could happen because entities are very heterogeneous and could be present at the same time at the same site, violating the non copenetrability constraint. Another reason could be that different perspectives require multiple scales in their spatial representations, or completely different spatial structures hierarchically connected (e.g. a layer corresponding to a regular grid as an abstraction of an environment and a different one represented as a graph related to some kind of paths inside the previous one). Another sample situation related to this kind of configuration could provide different layers related to micro, meso and macro models of a specific reality. These superposed layers must however interact, for instance because the effects of agents represented in a specific layer have an influence on other entities positioned at a different level. No specific information flow from a layer to another is predominant in this kind of configuration. This kind of environmental situation can often be exploited in a simulation scenario, in which a reality may be analyzed at different levels of abstractions, and several sub-systems may interact in complex ways, for instance realizing forms of external regulation. Figure 3.22 illustrates the previously introduced multilayered environment configurations indicating the main information flows on interfaces among layers SITE DEPLOYMENT With reference to the deployment of sites in a distributed environment, and thus the possibility to deploy agents in this environment, one thing that must be noted is that sites of a layer are generally related to a reality that, event though distributed, is in some sense delimited. Moreover, in order to be part of the same layer they must be somehow connected. In the bridge scenario, and especially in the given example, it is possible to think of the peripheral layers as delimited computer networks (of local or also geographical scale) that must be interconnected. The bridge layer implements some kind of interface logic among the previous two layers, and may be subdivided in order to leave the possibility of the firms to specify, manage and monitor policies, rules and information flows in their local network. Sites of the bridge layer should thus be deployed into the two different networks, possibly into network sites

107 3.6 SUPPORTING TECHNOLOGIES 105 which also host other sites belonging to the peripheral layers. In this way the interface among layers, being centralized into a single computational unit, could be implemented in a simple way without having a deep impact on previously discussed mechanisms for field diffusion. The bridge has simply collapsed into into data structures deployed in computational units belonging to other layers. However, the decision to split the layer among the other two ones was arbitrary and specifically related to the specific example. In other words, in a different scenario, a whole layer could also collapse into a single computational unit. This kind of gateway role delegated to specific sites of a given layer could also be exploited in the stellar environment configuration. In this case, however, the interfacing mechanism is simpler as it is specified by a single MMASS interface (or by a set of them) and does not require a whole layer to be specified. Two sites for which an interface has been specified simply must have the other one in their acquaintance. This specific neighborhood is just related to a specific field type, which must be forwarded from one layer to the other one, which will in turn start to diffuse the signal in the destination layer. The same approach could also be adopted to manage interfaces in case of superposed configurations. Summarizing some distinct possibilities were introduced, ranging from two extremes: one computational unit for every site, and a whole layer deployed into a single computational unit. The choice on how sites and agents are deployed in the system ultimately depends on the application domain, to its functional and non-functional requirements. 3.6 SUPPORTING TECHNOLOGIES The development of a platform for MMASS based system, but also the design and implementation of specific ad-hoc MMASS based applications lead to analyze currently existing languages, middlewares and platforms that could be adopted in order to support specific concepts and mechanisms defined by the model. In this Section the most relevant technologies that were currently considered to develop MMASS based applications will be briefly introduced, with specific attention to their suitability to represent and implement elements of the model. In particular we will focus on middlewares devoted to information diffusion and on various technologies that can provide a support to the specification, configuration and management of MMASS based applications. A preliminary choice on the programming language and basic platform was taken, and Java 3 was chosen for the following reasons: 3

108 106 MECHANISMS SUPPORTING MMASS INTERACTION MODEL it is a cross-platform object oriented language, that is widely adopted by the agent community for the development of platforms for the development of MASs; it presents basic and advanced libraries supporting network communication, as well as almost any innovative technology in the Information and Communication Technology area; several open source projects providing tools supporting various phases of design and development activities (ranging from Integrated Developer s Environment to the production of documentation and diagrams) are based on Java; several projects that were considered for the adoption towards an implementation of MMASS concepts and mechanisms were based on Java. The following Subsection will focus on middlewares devoted to information diffusion, while Subsection will describe other support for the specification and configuration of MMASS elements (e.g. fields, agent behaviour) MIDDLEWARES FOR INFORMATION DIFFUSION The previously introduced mechanisms supporting field diffusion provide the delegation of this task to sites, which are computationally active units provided with at least one thread of control (at least in a distributed scenario). This kind of structure and organization of computational units which collaborate, playing in a dynamic way the role of client (e.g. requiring another site to contribute in the diffusion of a signal) of server (e.g. by collaborating in performing diffusion, computing the field value and propagating the diffusion request) is very similar to the Peer-to-Peer (P2P) approach (for an overview on the P2P area see, e.g., [MKL + 02]). Despite the name of this approach seems to indicate that the fluid, dynamic change in roles assumed by computational units is a characterizing factor for this kind of systems, there is no shared definition of what is a P2P system, and some of them also allow a certain degree of centralization of specific resources. Nonetheless generally P2P systems have to deal with the diffusion of information over a (often very large) computer network. In fact, most P2P systems allow the sharing of resources, which can be searched and the accessed by peers. In order to allow the search of a specific resource in a network of peers several approaches can be followed: the first type provides the

109 3.6 SUPPORTING TECHNOLOGIES 107 transmission by the searching peer of a query request to all known peers, which will in turn propagate the request until it is answered (i.e. a peer owning that resource receives the request and replies informing about its availability) or a maximum number of flooding steps occurs. In fact, the basic network mechanism on which this approach is based is flooding; this inspiration makes it very simple and does not require to implement complex strategies and mechanisms for the management of node logic. Moreover peer nodes do not need to store additional information for the description of resources. On the other hand this approach does not even guarantee that whenever a resource is present in the system it will be found (in fact peers that are far from the one which expressed the request may never receive it), and it also presents performance issues (i.e. the generation of a large number of requests as a consequence to a search operation). Another kind of approach provides the possibility of peers to advertise their shared resources, and the storage by the network itself of information supporting search operations. Network nodes must thus have some specific resources (e.g. cache memories) for the storage of metadata (that is used to describe resources), in addition to specific strategies and mechanisms for the management of this kind of information. Some of these approaches also provide a support enhancing robustness of the whole system, and thus the possibility to have a distribution of data (that is resources) more than just meta-data (description of resources). This kind of possibility, although very important for distributed systems in general, is not relevant to our purposes. Summarizing there are two main reasons indicating that protocols, mechanisms and platforms supporting the development of P2P systems can be suitably exploited for the development of MMASS based systems: they provide a support for network communication among peer entities; they provide mechanisms for the diffusion of information into the peer network. There are also other supports for information diffusion, not specifically developed in the P2P area and instead specifically designed and developed in the agent area, that could be very useful for the implementation of field diffusion mechanisms. The one that is closest to the MMASS interaction model, and that is thus the most suitable one for supporting field diffusion over a computer network, is represented by the the Tuples On The Air (TOTA) [MZ04] middleware, a plaftorm for

110 108 MECHANISMS SUPPORTING MMASS INTERACTION MODEL Figure 3.23: Layers and components of project JXTA s software architecture (from Project JXTA v2.0: Java Programmer s Guide). the implementation of the Co-Fields approach, which was previously described in Section In the following a brief description of JXTA will be given, in order to show how a platform supporting the development of P2P distributed computing applications could be adopted for the development of field diffusion mechanism. Later on TOTA and a proposal for its usage in the implementation of field diffusion mechanism will be given. JXTA Project JXTA 4 is an open network computing platform designed to support P2P computing. Its goal is to develop basic building blocks and fundamental services supporting the designs and implementation of applications for peer groups. The term JXTA stands for juxtapose, as in side by side, and it is a recognition that P2P is juxtaposed to client-server or Web-based computing, which are today s traditional distributed computing model. JXTA provides a common set of open protocols and an open source reference implementation for developing P2P applications. JXTA is an 4

111 3.6 SUPPORTING TECHNOLOGIES 109 attempt to standardize the manner in which peers: discover each other and discover any published peer resources (e.g. peers, peer groups, pipes, services); in order for resources to be findable, they must be advertised; advertise resources: an advertisement is a description of any kind of resource present in the system, and in particular it is a language-neutral metadata structure represented as an XML document; specific mechanisms for the diffusion of this kind of information are provided; peers discover resources by searching for their corresponding advertisements, and may cache any discovered advertisements locally; self-organize into peer groups: a peer group is a collection of peers that have agreed upon a common set of services. Peers selforganize into peer groups, each identified by a unique peer group ID. Each peer group can establish its own membership policy from open (anybody can join) to highly secure and protected (sufficient credentials are required to join); communicate with each other: JXTA peers use pipes to send messages to one another. Pipes are an asynchronous and unidirectional message transfer mechanism used for service communication. Pipes are indiscriminate; they support the transfer of any object, including binary code, data strings, and Java technologybased objects; monitor each other: peer groups permit peers to monitor a set of peers for any special purpose (e.g., heartbeat, traffic introspection, or accountability); a specific basic service devoted to this activity is also provided. The JXTA protocols are designed to be independent of programming languages, and independent of transport protocols. The protocols can be implemented in the Java programming language, C/C++, Perl, and numerous other languages. They can be implemented on top of TCP/IP, HTTP, Bluetooth, HomePNA, or other transport protocols. Several JXTA sub-projects (e.g. JXTA Abstraction Layer 5 ) have been started, in order to abstract out the basic functionalities and shield programmers from internal details of the platform and internal mechanisms. Moreover, given the evolving nature of the JXTA API, these 5

112 110 MECHANISMS SUPPORTING MMASS INTERACTION MODEL projects try to provide a immutable API for all the commonly used P2P primitives. JXTA has been adopted by several projects designed and developed with a MAS approach (see, e.g., [SKL + 04, BBMN03]) and recently even the Foundation for Intelligent Physical Agents (FIPA) 6 has issued a preliminary specification for an agent discovery mechanism in ad-hoc networks using JXTA 7. The advertisement mechanism, combined with the definition of peer groups, may represent an information diffusion mechanism supporting also a sort of push transmission of information related to entities and resources that are present in the system. From a technical point of view advertisement information is not distributed to other peers once it is published, but the Peer Discovery Protocol allows to access advertisements published in a specific peer group in a transparent way. This mechanism could also be considered as a support for the diffusion of fields, but there are some fundamental differences due to the fact that advertisement is indiscriminate, that do not allow a simple adoption of the advertisement mechanism. In particular the most relevant issues related to the adoption of the advertisement mechanism for field diffusion are the following: the unmodified advertisement reaches all peers that are allowed to receive it, while field values are modulated according to a specific diffusion function and do not necessarily reach all sites of the environment; in order to allow peers to manage field modulation, every site should be given a representation of the whole environment including at least the distances from the site to all other ones (or a single peer should act as a distance server (supplying this kind of information to other peers). Despite these differences, the JXTA platform may still represent a technological support for the implementation of MMASS based distributed systems. In fact, more than just providing a network communication support, the concept of peer group could represent a viable way of implementing layers of a MMASS environment. TOTA The middleware implementing the network infrastructure required for Co-Fields diffusion and maintenance is called Tuples On The Air

113 3.6 SUPPORTING TECHNOLOGIES 111 (TOTA). This platform relies on the distribution of tuples for both representing contextual information and enabling uncoupled interaction among distributed application components. These tuples however are not associated to a specific node (or to a specific data space) of the network, and are instead injected in the network and can autonomously propagate and diffuse in it according to a specified pattern. TOTA tuples form a sort of spatially distributed data structure able to express not only messages to be transmitted between application components but also some contextual information on the distributed environment. To support this idea, TOTA is composed by a P2P network of (possibly mobile) nodes, each running a local version of the middleware. Each node holds references to a limited set of neighbor nodes, and the structure of the network (determined by these neighborhood relations), is automatically maintained and updated to support dynamic changes (due to nodes mobility or failures). The specific nature of the network scenario determines how each node can discover its neighbors (e.g., in a Mobile Ad Hoc Network (MANET) scenario, TOTA nodes are found within the range of their wireless connection). Upon the distributed space identified by the dynamic network of TOTA nodes, each component is capable of locally storing tuples and letting them diffuse through the network. Tuples are injected in the system from a particular node, and spread hop-by-hop according to their propagation rule, along the network structure. In fact, a TOTA tuple is defined in terms of a content, and a propagation rule T = (C, P ). The content C is an ordered set of typed fields representing the information carried on by the tuple. The propagation rule P determines how the tuple should be distributed and propagated across the network. This determines both the rules for tuple diffusion (i.e. how a tuple is modulated while transmitted across the network) and how such propagation can be affected by the presence or the absence of other tuples in the system (how tuples are to be combined). These tuples can be effectively used to build a distributed data structure that overlays the network and that expresses some kind of contextual and spatial information. Figure 3.24 shows a sample configuration of a ToTa network with a field related to the distance from the central agent. The middleware supports tuples propagation actively and adaptively, maintaining these contextual structures overlaying the network, by constantly monitoring the changes in its structure. For instance, when new nodes enter a MANET, TOTA automatically checks the propagation rules of the already stored tuples and eventually propagates the tuples to the new nodes. On the other hand TOTA does not consider the

114 112 MECHANISMS SUPPORTING MMASS INTERACTION MODEL Figure 3.24: A diagram showing a scenario of use of a TOTA network, the infrastructure supporting Co-Fields approach (from Programming pervasive and mobile computing applications with the tota middleware, M. Mamei and F. Zambonelli, In 2nd IEEE International Conference on Pervasive Computing and Communication (Percom2004). possibility of agents to move from a node to another, and thus there is no support to code mobility. From the application components point of view, executing and interacting basically reduces to inject tuples, perceive local tuples and local events, and act accordingly to some application-specific policy. Software components on a TOTA node can inject new tuples in the network, defining their content and their propagation rule. They have full access to the local content of the node (i.e., of the local tuple space), and can query either the local tuple space or the one-hop neighbor tuple spaces to check for the presence of specific tuples. In addition, components can be notified of events (e.g., changes in tuple space content) occurring either locally or in the one-hop neighborhood. The TOTA middleware is implemented in Java and provides abstract classes and interfaces related to tuples and other relevant elements of the Co-Fields model, which must be extended in order to instantiate concrete fields. In other words, the previously introduced tuple contents C and propagation rule P must be implemented through the Java programming language (in particular field propagation is a method that must be provided by a concrete TOTA tuple). Figure 3.25 shows the API offered by a TOTA node and the basic abstract class for tuple im-

115 3.6 SUPPORTING TECHNOLOGIES 113 Figure 3.25: The TOTA API and the basic abstract class for tuple implementation (from Programming pervasive and mobile computing applications with the tota middleware, M. Mamei and F. Zambonelli, In 2nd IEEE International Conference on Pervasive Computing and Communication (Percom2004).

1.1 Jadex - Engineering Goal-Oriented Agents

1.1 Jadex - Engineering Goal-Oriented Agents 1.1 Jadex - Engineering Goal-Oriented Agents In previous sections of the book agents have been considered as software artifacts that differ from objects mainly in their capability to autonomously execute

More information

Jade: Java Agent DEvelopment Framework Overview

Jade: Java Agent DEvelopment Framework Overview Jade: Java Agent DEvelopment Framework Overview Multiagent Systems LM Sistemi Multiagente LM Stefano Mariani revised by Andrea Omicini s.mariani@unibo.it, andrea.omicini@unibo.it Dipartimento di Informatica:

More information

Agents and areas of application

Agents and areas of application Agents and areas of application Dipartimento di Informatica, Sistemistica e Comunicazione Università di Milano-Bicocca giuseppe.vizzari@disco.unimib.it andrea.bonomi@disco.unimib.it 23 Giugno 2007 Software

More information

Jade: Java Agent DEvelopment Framework Overview

Jade: Java Agent DEvelopment Framework Overview Jade: Java Agent DEvelopment Framework Overview Stefano Mariani s.mariani@unibo.it Dipartimento di Informatica Scienza e Ingegneria (DISI) Alma Mater Studiorum Università di Bologna a Cesena Academic Year

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Distributed Systems L-A Sistemi Distribuiti L-A Andrea Omicini andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year

More information

Triadic Formal Concept Analysis within Multi Agent Systems

Triadic Formal Concept Analysis within Multi Agent Systems Triadic Formal Concept Analysis within Multi Agent Systems Petr Gajdoš, Pavel Děrgel Department of Computer Science, VŠB - Technical University of Ostrava, tř. 17. listopadu 15, 708 33 Ostrava-Poruba Czech

More information

FIPA Agent Software Integration Specification

FIPA Agent Software Integration Specification FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS FIPA Agent Software Integration Specification Document title FIPA Agent Software Integration Specification Document number XC00079A Document source FIPA Architecture

More information

Computer-based systems will be increasingly embedded in many of

Computer-based systems will be increasingly embedded in many of Programming Ubiquitous and Mobile Computing Applications with TOTA Middleware Marco Mamei, Franco Zambonelli, and Letizia Leonardi Universita di Modena e Reggio Emilia Tuples on the Air (TOTA) facilitates

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2011/2012

More information

Chapter 5 INTRODUCTION TO MOBILE AGENT

Chapter 5 INTRODUCTION TO MOBILE AGENT Chapter 5 INTRODUCTION TO MOBILE AGENT 135 Chapter 5 Introductions to Mobile Agent 5.1 Mobile agents What is an agent? In fact a software program is containing an intelligence to help users and take action

More information

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Mariano Tucat Alejandro J. García mt@cs.uns.edu.ar ajg@cs.uns.edu.ar Consejo Nacional de Investigaciones

More information

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach Category Theory in Ontology Research: Concrete Gain from an Abstract Approach Markus Krötzsch Pascal Hitzler Marc Ehrig York Sure Institute AIFB, University of Karlsruhe, Germany; {mak,hitzler,ehrig,sure}@aifb.uni-karlsruhe.de

More information

Software Architectures

Software Architectures Software Architectures Distributed Systems Sistemi Distribuiti Andrea Omicini andrea.omicini@unibo.it Dipartimento di Informatica: Scienza e Ingegneria (DISI) Alma Mater Studiorum Università di Bologna

More information

Annales UMCS Informatica AI IX, 1 (2009) ; DOI: /v x UMCS. Analysis of communication processes in the multi agent systems

Annales UMCS Informatica AI IX, 1 (2009) ; DOI: /v x UMCS. Analysis of communication processes in the multi agent systems Annales Informatica AI IX, 1 (2009) 111 122; DOI: 10.2478/v10065-009-0008-x Analysis of communication processes in the multi agent systems Wojciech Pieprzyca University of Computer Science and Management,

More information

Multi-Agent Programming

Multi-Agent Programming Multi-Agent Programming Brian Logan 1 School of Computer Science University of Nottingham Midlands Graduate School 8th 12th April 2013 1 Slides on Normative Organisations are from an AAMAS 2012 tutorial

More information

Software Architectures

Software Architectures Software Architectures Distributed Systems L-A Sistemi Distribuiti L-A Andrea Omicini andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2008/2009

More information

Environments for Situated Multi-agent Systems: Beyond Infrastructure

Environments for Situated Multi-agent Systems: Beyond Infrastructure Environments for Situated Multi-agent Systems: Beyond Infrastructure Danny Weyns 1, Giuseppe Vizzari 2, and Tom Holvoet 1 1 AgentWise, DistriNet, Katholieke Universiteit Leuven, Belgium {danny.weyns, tom.holvoet}@cs.kuleuven.be

More information

B2SAFE metadata management

B2SAFE metadata management B2SAFE metadata management version 1.2 by Claudio Cacciari, Robert Verkerk, Adil Hasan, Elena Erastova Introduction The B2SAFE service provides a set of functions for long term bit stream data preservation:

More information

Processes in Distributed Systems

Processes in Distributed Systems Processes in Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini andrea.omicini@unibo.it Dipartimento di Informatica Scienza e Ingegneria (DISI) Alma Mater Studiorum Università di

More information

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Announcements.  me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris Announcements Email me your survey: See the Announcements page Today Conceptual overview of distributed systems System models Reading Today: Chapter 2 of Coulouris Next topic: client-side processing (HTML,

More information

Browsing the World in the Sensors Continuum. Franco Zambonelli. Motivations. all our everyday objects all our everyday environments

Browsing the World in the Sensors Continuum. Franco Zambonelli. Motivations. all our everyday objects all our everyday environments Browsing the World in the Sensors Continuum Agents and Franco Zambonelli Agents and Motivations Agents and n Computer-based systems and sensors will be soon embedded in everywhere all our everyday objects

More information

2 The IBM Data Governance Unified Process

2 The IBM Data Governance Unified Process 2 The IBM Data Governance Unified Process The benefits of a commitment to a comprehensive enterprise Data Governance initiative are many and varied, and so are the challenges to achieving strong Data Governance.

More information

ITU-T Y Next generation network evolution phase 1 Overview

ITU-T Y Next generation network evolution phase 1 Overview I n t e r n a t i o n a l T e l e c o m m u n i c a t i o n U n i o n ITU-T Y.2340 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (09/2016) SERIES Y: GLOBAL INFORMATION INFRASTRUCTURE, INTERNET PROTOCOL

More information

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer Mariano Tucat 1 Alejandro J. García 2 Artificial Intelligence Research and Development Laboratory Department

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

Driving Vision Systems by Communication

Driving Vision Systems by Communication Driving Vision Systems by Communication Thorsten Graf and Alois Knoll University of Bielefeld, Faculty of Technology P.O.Box 10 01 31, D-33501 Bielefeld, Germany E-mail: fgraf,knollg@techfak.uni-bielefeld.de

More information

Agent-Oriented Software Engineering. Franco Zambonelli April 2010

Agent-Oriented Software Engineering. Franco Zambonelli April 2010 Agent-Oriented Software Engineering Franco Zambonelli April 2010 1 Outline Part 1: What is Agent-Oriented Software Engineering (AOSE) Why it is important Key concepts. Part 2: Agent-methodologies Key Concepts

More information

Generic and Domain Specific Ontology Collaboration Analysis

Generic and Domain Specific Ontology Collaboration Analysis Generic and Domain Specific Ontology Collaboration Analysis Frantisek Hunka, Steven J.H. van Kervel 2, Jiri Matula University of Ostrava, Ostrava, Czech Republic, {frantisek.hunka, jiri.matula}@osu.cz

More information

SEMANTIC WEB POWERED PORTAL INFRASTRUCTURE

SEMANTIC WEB POWERED PORTAL INFRASTRUCTURE SEMANTIC WEB POWERED PORTAL INFRASTRUCTURE YING DING 1 Digital Enterprise Research Institute Leopold-Franzens Universität Innsbruck Austria DIETER FENSEL Digital Enterprise Research Institute National

More information

Ad hoc and Sensor Networks Chapter 3: Network architecture

Ad hoc and Sensor Networks Chapter 3: Network architecture Ad hoc and Sensor Networks Chapter 3: Network architecture Holger Karl, Andreas Willig, "Protocols and Architectures for Wireless Sensor Networks," Wiley 2005 Goals of this chapter Having looked at the

More information

SEMANTIC COORDINATION THROUGH PROGRAMMABLE TUPLE SPACES

SEMANTIC COORDINATION THROUGH PROGRAMMABLE TUPLE SPACES Alma Mater Studiorum - University of Bologna DEIS - DEPARTMENT OF ELECTRONICS, COMPUTER SCIENCE AND SYSTEMS PhD Course in Electronics, Computer Science and Telecommunications XXIII CYCLE SCIENTIFIC-DISCIPLINARY

More information

Semantic Web in a Constrained Environment

Semantic Web in a Constrained Environment Semantic Web in a Constrained Environment Laurens Rietveld and Stefan Schlobach Department of Computer Science, VU University Amsterdam, The Netherlands {laurens.rietveld,k.s.schlobach}@vu.nl Abstract.

More information

Assignment 5. Georgia Koloniari

Assignment 5. Georgia Koloniari Assignment 5 Georgia Koloniari 2. "Peer-to-Peer Computing" 1. What is the definition of a p2p system given by the authors in sec 1? Compare it with at least one of the definitions surveyed in the last

More information

The Agentcities Network Architecture

The Agentcities Network Architecture The Agentcities Network Architecture Steven Willmott EPFL steven.willmott@epfl.ch Jonathan Dale Fujitsu jonathan.dale@fla.fujitsu.com Jerome Picault Motorola jerome.picault@motorola.com Matteo Somacher

More information

Ad hoc and Sensor Networks Chapter 3: Network architecture

Ad hoc and Sensor Networks Chapter 3: Network architecture Ad hoc and Sensor Networks Chapter 3: Network architecture Goals of this chapter Having looked at the individual nodes in the previous chapter, we look at general principles and architectures how to put

More information

Agent-Oriented Software Engineering

Agent-Oriented Software Engineering Agent-Oriented Software Engineering Lin Zuoquan Information Science Department Peking University lz@is.pku.edu.cn http://www.is.pku.edu.cn/~lz/teaching/stm/saswws.html Outline Introduction AOSE Agent-oriented

More information

From Objects to Agents: The Java Agent Middleware (JAM)

From Objects to Agents: The Java Agent Middleware (JAM) From Objects to Agents: The Java Agent Middleware (JAM) Laboratory of Multiagent Systems LM Laboratorio di Sistemi Multiagente LM Elena Nardini elena.nardini@unibo.it Ingegneria Due Alma Mater Studiorum

More information

Processes in Distributed Systems

Processes in Distributed Systems Processes in Distributed Systems Distributed Systems L-A Sistemi Distribuiti L-A Andrea Omicini andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year

More information

CHALLENGES IN ADAPTIVE WEB INFORMATION SYSTEMS: DO NOT FORGET THE LINK!

CHALLENGES IN ADAPTIVE WEB INFORMATION SYSTEMS: DO NOT FORGET THE LINK! CHALLENGES IN ADAPTIVE WEB INFORMATION SYSTEMS: DO NOT FORGET THE LINK! GEERT-JAN HOUBEN Technische Universiteit Eindhoven PO Box 513, NL-5600 MB Eindhoven, The Netherlands E-mail: g.j.houben@tue.nl In

More information

Middleware Mediated Transactions & Conditional Messaging

Middleware Mediated Transactions & Conditional Messaging Middleware Mediated Transactions & Conditional Messaging Expert Topic Report ECE1770 Spring 2003 Submitted by: Tim Chen John C Wu To: Prof Jacobsen Date: Apr 06, 2003 Electrical and Computer Engineering

More information

Representing Symbolic Reasoning

Representing Symbolic Reasoning Representing Symbolic Reasoning Brian Mastenbrook and Eric Berkowitz 1400 N. Roosevelt Blvd. Schaumburg, IL 60173 chandler@acm.roosevelt.edu eric@cs.roosevelt.edu Abstract Introspection is a fundamental

More information

ICT-SHOK Project Proposal: PROFI

ICT-SHOK Project Proposal: PROFI ICT-SHOK Project Proposal: PROFI Full Title: Proactive Future Internet: Smart Semantic Middleware Overlay Architecture for Declarative Networking ICT-SHOK Programme: Future Internet Project duration: 2+2

More information

Ad hoc and Sensor Networks Chapter 3: Network architecture

Ad hoc and Sensor Networks Chapter 3: Network architecture Ad hoc and Sensor Networks Chapter 3: Network architecture Holger Karl Computer Networks Group Universität Paderborn Goals of this chapter Having looked at the individual nodes in the previous chapter,

More information

Context-Awareness and Adaptation in Distributed Event-Based Systems

Context-Awareness and Adaptation in Distributed Event-Based Systems Context-Awareness and Adaptation in Distributed Event-Based Systems Eduardo S. Barrenechea, Paulo S. C. Alencar, Rolando Blanco, Don Cowan David R. Cheriton School of Computer Science University of Waterloo

More information

Multiagent Systems for Service-Oriented Computing

Multiagent Systems for Service-Oriented Computing for Service-Oriented Computing Challenge: Organizing a decentralized computation What services constitute a service engagement Who provides what services to whom Without the benefit of a central designer

More information

EISAS Enhanced Roadmap 2012

EISAS Enhanced Roadmap 2012 [Deliverable November 2012] I About ENISA The European Network and Information Security Agency (ENISA) is a centre of network and information security expertise for the EU, its Member States, the private

More information

Agent-Oriented Software Engineering. Franco Zambonelli February 2005

Agent-Oriented Software Engineering. Franco Zambonelli February 2005 Agent-Oriented Software Engineering Franco Zambonelli February 2005 1 Outline Part 1: What is Agent-Oriented Software Engineering (AOSE) Why it is important Key concepts. Part 2: Agent-methodologies Key

More information

Definition of Information Systems

Definition of Information Systems Information Systems Modeling To provide a foundation for the discussions throughout this book, this chapter begins by defining what is actually meant by the term information system. The focus is on model-driven

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is

More information

Ant Colony Optimization and its Application to Adaptive Routing in Telecommunication Networks

Ant Colony Optimization and its Application to Adaptive Routing in Telecommunication Networks UNIVERSITÉ LIBRE DE BRUXELLES FACULTÉ DES SCIENCES APPLIQUÉES Ant Colony Optimization and its Application to Adaptive Routing in Telecommunication Networks Gianni Di Caro Dissertation présentée en vue

More information

Grids of Agents for Computer and Telecommunication Network Management

Grids of Agents for Computer and Telecommunication Network Management Grids of Agents for Computer and Telecommunication Network Marcos Dias de Assunção, Carlos Becker Westphall Network and Laboratory Federal University of Santa Catarina Florianópolis, SC, 88049-970, PO

More information

Trust4All: a Trustworthy Middleware Platform for Component Software

Trust4All: a Trustworthy Middleware Platform for Component Software Proceedings of the 7th WSEAS International Conference on Applied Informatics and Communications, Athens, Greece, August 24-26, 2007 124 Trust4All: a Trustworthy Middleware Platform for Component Software

More information

Software Integration Using a Dynamic Wrapper Agent

Software Integration Using a Dynamic Wrapper Agent Software Integration Using a Dynamic Wrapper Agent MIRIAM A. M. CAPRETZ & MARY C. HRYB Department of Electrical and Computer Engineering University of Western Ontario London, Ontario, CANADA N6A 5B9 Abstract:

More information

CHAPTER 7 JAVA AGENT DEVELOPMENT ENVIRONMENT

CHAPTER 7 JAVA AGENT DEVELOPMENT ENVIRONMENT CHAPTER 7 JAVA AGENT DEVELOPMENT ENVIRONMENT 159 Chapter 7 Java Agent Development Environment For more enhanced information resources it requires that the information system is distributed in a network

More information

Distributed simulation of situated multi-agent systems

Distributed simulation of situated multi-agent systems Distributed simulation of situated multi-agent systems Franco Cicirelli, Andrea Giordano, Libero Nigro Laboratorio di Ingegneria del Software http://www.lis.deis.unical.it Dipartimento di Elettronica Informatica

More information

Towards developing multi-agent systems in Ada G. Aranda, J. Palanca, A. Espinosa, A. Terrasa, and A. García-Fornes {garanda,jpalanca,aespinos,aterrasa,agarcia}@dsic.upv.es Information Systems and Computation

More information

Response to the. ESMA Consultation Paper:

Response to the. ESMA Consultation Paper: Response to the ESMA Consultation Paper: Draft technical standards on access to data and aggregation and comparison of data across TR under Article 81 of EMIR Delivered to ESMA by Tahoe Blue Ltd January

More information

Developing an Enterprise Extranet Service

Developing an Enterprise Extranet Service Developing an Enterprise Extranet Service White Paper www.aventail.com Tel 206.215.1111 Fax 206.215.1120 808 Howell Street Second Floor Seattle, WA 98101 Executive Summary A variety of market research

More information

Wireless Sensor Architecture GENERAL PRINCIPLES AND ARCHITECTURES FOR PUTTING SENSOR NODES TOGETHER TO

Wireless Sensor Architecture GENERAL PRINCIPLES AND ARCHITECTURES FOR PUTTING SENSOR NODES TOGETHER TO Wireless Sensor Architecture 1 GENERAL PRINCIPLES AND ARCHITECTURES FOR PUTTING SENSOR NODES TOGETHER TO FORM A MEANINGFUL NETWORK Mobile ad hoc networks Nodes talking to each other Nodes talking to some

More information

FIPA specification and JADE. Tomáš Poch

FIPA specification and JADE. Tomáš Poch FIPA specification and JADE Tomáš Poch Agents System that is situated in some environment, and that is capable of autonomous action in this environment in order to meet its design objectives [Wooldridge

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is

More information

The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne

The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing R. Paul, W. T. Tsai, Jay Bayne 1 Table of Content Introduction Service-Oriented Computing Acceptance of SOA within DOD Policy-based

More information

FIPA ACL Message Structure Specification

FIPA ACL Message Structure Specification 1 2 3 4 5 FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS FIPA ACL Message Structure Specification 6 7 Document title FIPA ACL Message Structure Specification Document number XC00061E Document source FIPA TC

More information

Assistant Professor, School of Computer Applications,Career Point University,Kota, Rajasthan, India Id

Assistant Professor, School of Computer Applications,Career Point University,Kota, Rajasthan, India  Id International Journal of Scientific Research in Computer Science, Engineering and Information Technology 2018 IJSRCSEIT Volume 3 Issue 7 ISSN : 2456-3307 An Architectural Framework of Cloud Computing behind

More information

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examination Architecture of Distributed Systems (2IMN10 / 2II45), on Monday November 2, 2015, from 13.30 to 16.30 hours. Indicate on

More information

Cisco APIC Enterprise Module Simplifies Network Operations

Cisco APIC Enterprise Module Simplifies Network Operations Cisco APIC Enterprise Module Simplifies Network Operations October 2015 Prepared by: Zeus Kerravala Cisco APIC Enterprise Module Simplifies Network Operations by Zeus Kerravala October 2015 º º º º º º

More information

Cybersecurity eit. Software. Certification. Industrial Security Embedded System

Cybersecurity eit. Software. Certification. Industrial Security Embedded System Statement Benefits and limitations of certifications and labels in the context of cyber security Arguments for a balance between customer information and industrial suitability Industrial Security Embedded

More information

INTELLIGENT SYSTEMS OVER THE INTERNET

INTELLIGENT SYSTEMS OVER THE INTERNET INTELLIGENT SYSTEMS OVER THE INTERNET Web-Based Intelligent Systems Intelligent systems use a Web-based architecture and friendly user interface Web-based intelligent systems: Use the Web as a platform

More information

Request for Comments: 1787 T.J. Watson Research Center, IBM Corp. Category: Informational April 1995

Request for Comments: 1787 T.J. Watson Research Center, IBM Corp. Category: Informational April 1995 Network Working Group Y. Rekhter Request for Comments: 1787 T.J. Watson Research Center, IBM Corp. Category: Informational April 1995 Status of this Memo Routing in a Multi-provider Internet This memo

More information

Designing a System Engineering Environment in a structured way

Designing a System Engineering Environment in a structured way Designing a System Engineering Environment in a structured way Anna Todino Ivo Viglietti Bruno Tranchero Leonardo-Finmeccanica Aircraft Division Torino, Italy Copyright held by the authors. Rubén de Juan

More information

Managing the Emerging Semantic Risks

Managing the Emerging Semantic Risks The New Information Security Agenda: Managing the Emerging Semantic Risks Dr Robert Garigue Vice President for information integrity and Chief Security Executive Bell Canada Page 1 Abstract Today all modern

More information

Sistemi ICT per il Business Networking

Sistemi ICT per il Business Networking Corso di Laurea Specialistica Ingegneria Gestionale Sistemi ICT per il Business Networking B2B Integration Docente: Vito Morreale (vito.morreale@eng.it) 1 B2B Interactions Businesses are constantly searching

More information

Organizing Information. Organizing information is at the heart of information science and is important in many other

Organizing Information. Organizing information is at the heart of information science and is important in many other Dagobert Soergel College of Library and Information Services University of Maryland College Park, MD 20742 Organizing Information Organizing information is at the heart of information science and is important

More information

Alignment of Business and IT - ArchiMate. Dr. Barbara Re

Alignment of Business and IT - ArchiMate. Dr. Barbara Re Alignment of Business and IT - ArchiMate Dr. Barbara Re What is ArchiMate? ArchiMate is a modelling technique ("language") for describing enterprise architectures. It presents a clear set of concepts within

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Towards a Component Agent Service Oriented Model

Towards a Component Agent Service Oriented Model Towards a Component Agent Service Oriented Model Nour Alhouda Aboud, Eric Cariou and Eric Gouardères LIUPPA Laboratory Université de Pau et des Pays de l Adour BP 1155 64013 Pau Cedex France {Nour-alhouda.Aboud,

More information

Application Oriented Networks: An SOA Perspective

Application Oriented Networks: An SOA Perspective Oriented s: An SOA Perspective www.thbs.com Introduction Service Oriented Architecture is the hot topic of discussion in IT circles today. So much so, in fact, that SOA is being seen by many as the future

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

Models versus Ontologies - What's the Difference and where does it Matter?

Models versus Ontologies - What's the Difference and where does it Matter? Models versus Ontologies - What's the Difference and where does it Matter? Colin Atkinson University of Mannheim Presentation for University of Birmingham April 19th 2007 1 Brief History Ontologies originated

More information

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology ArchiMate Core Structural Concepts Behavioral Concepts Informational Concepts interaction Technology Application Layer Concept Description Notation Concept Description Notation Actor An organizational

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK PEER-TO-PEER FILE SHARING WITH THE BITTORRENT PROTOCOL APURWA D. PALIWAL 1, PROF.

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

Policy-Based Context-Management for Mobile Solutions

Policy-Based Context-Management for Mobile Solutions Policy-Based Context-Management for Mobile Solutions Caroline Funk 1,Björn Schiemann 2 1 Ludwig-Maximilians-Universität München Oettingenstraße 67, 80538 München caroline.funk@nm.ifi.lmu.de 2 Siemens AG,

More information

Introduction to Distributed Systems. INF5040/9040 Autumn 2018 Lecturer: Eli Gjørven (ifi/uio)

Introduction to Distributed Systems. INF5040/9040 Autumn 2018 Lecturer: Eli Gjørven (ifi/uio) Introduction to Distributed Systems INF5040/9040 Autumn 2018 Lecturer: Eli Gjørven (ifi/uio) August 28, 2018 Outline Definition of a distributed system Goals of a distributed system Implications of distributed

More information

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Spring 90-91

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Spring 90-91 بسمه تعالی Semantic Web Semantic Web Services Morteza Amini Sharif University of Technology Spring 90-91 Outline Semantic Web Services Basics Challenges in Web Services Semantics in Web Services Web Service

More information

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 2 Distributed Information Systems Architecture Chapter Outline

More information

Business Process Framework (etom)

Business Process Framework (etom) Business Process Framework (etom) For The Information and Communications Services Industry Addendum W: Working Together: ITIL and etom GB921 Addendum W Version 11.2 October, 2011 TM Forum 2011 Notice No

More information

CSC8223 Wireless Sensor Networks. Chapter 3 Network Architecture

CSC8223 Wireless Sensor Networks. Chapter 3 Network Architecture CSC8223 Wireless Sensor Networks Chapter 3 Network Architecture Goals of this chapter General principles and architectures: how to put the nodes together to form a meaningful network Design approaches:

More information

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Fall 94-95

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Fall 94-95 ه عا ی Semantic Web Semantic Web Services Morteza Amini Sharif University of Technology Fall 94-95 Outline Semantic Web Services Basics Challenges in Web Services Semantics in Web Services Web Service

More information

A COMPARISON OF REACTIVE ROUTING PROTOCOLS DSR, AODV AND TORA IN MANET

A COMPARISON OF REACTIVE ROUTING PROTOCOLS DSR, AODV AND TORA IN MANET ISSN: 2278 1323 All Rights Reserved 2016 IJARCET 296 A COMPARISON OF REACTIVE ROUTING PROTOCOLS DSR, AODV AND TORA IN MANET Dr. R. Shanmugavadivu 1, B. Chitra 2 1 Assistant Professor, Department of Computer

More information

Architectural Styles II

Architectural Styles II Architectural Styles II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 21, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles II Nov 21, 2012 1 / 66

More information

Monitoring Choreographed Services

Monitoring Choreographed Services Monitoring Choreographed Services L. Ardissono and R. Furnari and A. Goy and G. Petrone and M. Segnan Dipartimento di Informatica, Università di Torino Corso Svizzera 185, 10149 Torino, Italy Abstract.

More information

Understandability and Semantic Interoperability of Diverse Rules Systems. Adrian Walker, Reengineering [1]

Understandability and Semantic Interoperability of Diverse Rules Systems. Adrian Walker, Reengineering [1] Understandability and Semantic Interoperability of Diverse Rules Systems Adrian Walker, Reengineering [1] Position Paper for the W3C Workshop on Rule Languages for Interoperability 27-28 April 2005, Washington,

More information

Topics on Web Services COMP6017

Topics on Web Services COMP6017 Topics on Web Services COMP6017 Dr Nicholas Gibbins nmg@ecs.soton.ac.uk 2013-2014 Module Aims Introduce you to service oriented architectures Introduce you to both traditional and RESTful Web Services

More information

Ontologies for Agents

Ontologies for Agents Agents on the Web Ontologies for Agents Michael N. Huhns and Munindar P. Singh November 1, 1997 When we need to find the cheapest airfare, we call our travel agent, Betsi, at Prestige Travel. We are able

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Other matters: review of the Bakery Algorithm: why can t we simply keep track of the last ticket taken and the next ticvket to be called? Ref: [Coulouris&al Ch 1, 2]

More information

Coordination in Situated Systems

Coordination in Situated Systems Coordination in Situated Systems Engineering MAS Environment in TuCSoN Stefano Mariani, Andrea Omicini {s.mariani, andrea.omicini}@unibo.it Dipartimento di Informatica Scienza e Ingegneria (DISI) Alma

More information

2 The BEinGRID Project

2 The BEinGRID Project 2 The BEinGRID Project Theo Dimitrakos 2.1 Introduction Most of the results presented in this book were created within the BEinGRID project. BEinGRID, Business Experiments in GRID, is the European Commission

More information

ABSTRACT 1. INTRODUCTION

ABSTRACT 1. INTRODUCTION ABSTRACT A Framework for Multi-Agent Multimedia Indexing Bernard Merialdo Multimedia Communications Department Institut Eurecom BP 193, 06904 Sophia-Antipolis, France merialdo@eurecom.fr March 31st, 1995

More information

Applying the Semantic Web Layers to Access Control

Applying the Semantic Web Layers to Access Control J. Lopez, A. Mana, J. maria troya, and M. Yague, Applying the Semantic Web Layers to Access Control, IEEE International Workshop on Web Semantics (WebS03), pp. 622-626, 2003. NICS Lab. Publications: https://www.nics.uma.es/publications

More information