Abstract We present the concept of mobile groups as a basic mechanism for both the reliable migration and the coordination of mobile processes. Analogously to traditional group systems, mobile groups also provide message delivery guarantees and virtual synchrony. Furthermore, they make process mobility not only visible for the group, but also consistently ordered with other group actions (such as crashes, joins, leaves, and other migrations). The mobile groups approach represents a novel mobility support mechanism which can be used to handle reliability of mobile distributed systems (such as the mobile agent systems), at the application and system level (e.g., for coordinating distributed agents and for reliable agent migration, respectively). In this paper, we discuss the motivations for the mobile groups, formally define their basic properties, and present a membership protocol for such groups. We also discuss some implementation issues and present the advantages of mobile groups against mechanisms commonly employed for the coordination of mobile processes or agents. 1. Introduction Process Groups have been widely used as a mechanism for supporting consistent execution of sets of co-operating processes in distributed systems [3,23]. In a process group, processes communicate with each other by exchanging messages which are multicast to the whole group. In order to preserve consistency, the group communication protocols guarantee certain properties such as atomic delivery (either all processes deliver a message or no one delivers it), message ordering guarantees (e.g., causal and total), and virtual synchrony where modifications on the group membership (caused by events such as process crashes and joins, etc.) are consistently ordered with respect to message delivery. In such an environment, operational processes perceive a mutually consistent ordered sequence of events, though, in reality, they may happen in an arbitrary order. In traditional group communication systems [14,18,16,5,6], after a process member joins a group, it generally remains at the same location in the distributed environment (until it crashes or leaves the group). However, such stationary processes are not the unique way of structuring distributed applications. Some form of migrating process, i.e., a process that can change the node in which it is running, during its execution, is being frequently proposed as a basic component for designing distributed applications. An example of such migrating processes that have attracted the attention of researchers in the last years are the mobile agents. The mobile agent concept is being proposed to support different types of applications, including electronic commerce, workflow management, network management, and distributed information retrieval [1,2]. Similarly to distributed applications based on static processes, applications based on processes that can migrate also need forms of reliable co-operation between processes. This need may appear at the application or at the system level. At the application level, for example, consider the case of a user who wants to find some resource in the Internet. A group of agents might be used to look for the resource in parallel. The actions of the agents should, however, be coordinated. For example, if some of them fail, another one must be created to complete a desired minimum set of agents looking for the resource. In order to coordinate the creation of new agents, a coordinator for the group should be elected. Additionally, each agent should choose locations to visit that have not been previously visited by other agents in the group. In this scenario, the members of the group need a mutually consistent view of the group configuration (i.e., group members and corresponding locations) and other events (such as process crashes and message delivery). As another example, a group of agents being Coordination of Mobile Processes with Mobile Groups Raimundo J. Araújo Macêdo and Flávio M. Assis Silva Distributed Systems Laboratory – LaSiD Computing Science Department, Federal University of Bahia Campus de Ondina, CEP: 40170-110, Salvador-BA, Brazil {macedo, fassis}@ufba.br Proceedings of the International Conference on Dependable Systems and Networks (DSN’02) 0-7695-1597-5/02 $17.00 © 2002 IEEE