Workshop do Projeto ARGO – Junho/2001
An Overview of the Mobile Group Approach
Raimundo J. A. Macêdo, Flávio M. Assis Silva
Distributed Systems Laboratory – LaSiD/UFBa
{macedo, fassis}@ufba.br
Abstract
We have introduced the concept of mobile groups as a basic mechanism for the reliable coordination of migrating processes [1,2,3]. Analogously to traditional group systems [4], mobile groups also provide message delivery guarantees and a sort of virtual synchrony. However, mobile groups provide these guarantees despite the mobility of its members. 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). In this work, we discuss the motivations for the mobile groups, define their properties, and outline a membership protocol for such groups.
Key-words : group communication, mobile groups, mobile agents, fault-tolerance, distributed algorithms.
Extended Abstract
In traditional group communication systems [4], after a 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 only 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.
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, a group of agents being used to find some resource in parallel over the Internet might require a mutually consistent view of already visited sites (a more detailed description of such a scenario is described in [1]). As another example, a group of agents being used to perform parallel tasks of a workflow might need to react consistently upon the failures of other agents in order to achieve an acceptable final state for the workflow. At the system level, coordination of replicas of an agent is an underlying requirement for implementing fault tolerance of an agent-based execution (for guaranteeing exactly-once property, for instance) [3].
In order to fulfil part of the requirement of such scenarios, we presented the concept of mobile groups [1,2,3]. Mobile groups are an extension of the traditional concept of groups that supports moving processes as members of a group. A moving process has the ability to change its location in the distributed environment while belonging to a group. Analogously to traditional group communication systems, mobile groups also provide message delivery guarantees and a sort of virtual synchrony. However, mobile groups provide these guarantees despite the mobility of their members. 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 migrations). An implementation of mobile groups by using conventional group systems is not satisfactory because process mobility would be hidden from the group actions history. In other words, a mobile group configuration (or view) will reflect not only the set of members of a group but also their corresponding locations.
Apart from the conventional agent based applications, mobile groups could also be a useful mechanism to cope with another dimension of mobility where mobile devices can change their access point in a network. This kind of mobility, usually referred to as mobile computing, has some times been addressed through a mobile agent mechanism. The rationale behind these classes of solutions lie in the fact that the mobile agents do not need continuos network connectivity as connections should last just the necessary time to inject agents from terminals into the fixed network. With this approach, end users may access services and obtain the related results upon reconnection. In this scenario, the agent executing on behalf of a disconnected user (or terminal) and all assigned services could form a unique mobile group. Furthermore, mobile groups could also be used to co-ordinate the activities of a set of mobile users (who collaborate within a given computation) each one represented by a mobile agent. The mutually consistent dissemination of device (or terminals) connection and disconnection events throughout the group agents, can then be used to dynamically adapt the applications (working on the user side) to new connections and related environments.
References
[1] R. J. de A. Macêdo, F. M. de A. Silva, "Mobile Groups", Proceedings of the 19th Brazilian Symposium on Computer Networks, Florianópolis, pages 66-81, May/2001.
[2] R. J. de A. Macêdo, F. M. de A. Silva, "Integrating Mobility into Groups", Proceedings of Fourth European Research Seminar on Advances in Distributed System (ERSADS’01), Bertinoro, Italy. Pages 209-214. May/2001.
[3] F. M. de A. Silva, R. J. de A. Macêdo, "Reliable Communication for Mobile Agents with Mobile Groups", Proceedings of the Workshop on Software Engineering and Mobility (co-located with ACM/IEEE ICSE 2001), Toronto, Ontario, Canada. May/2001.
[4] K. Birman. The Process Group Approach to Reliable Distributed Computing. Communications of the ACM, Vol. 9, No. 12. pp. 36-53, December 1993.