Multicast and Group Communication for Modern Applications

Danny Dolev, Hebrew University, Jerusalem, Israel

Group communication is an important and widely used building block for many distributed applications. Applications in modern networks typically require the coordination of large and dynamic sets of processes at different sites. The group communication abstraction is essential for a modular design of groupware and other multi-user applications in such networks. An important aspect of group communication is the maintenance of group membership, and the semantics of interleaving membership change notifications within the flow of regular messages. For example, some group communication systems provide virtual synchrony semantics which synchronize membership notifications with regular messages and thus simulates to the application a "benign" world in which message delivery is reliable within the set of live processes.

Different applications utilize group communication for different purposes, and hence require different semantics of the group membership service they utilize. For example, video conferencing applications need a general knowledge of which peers are "around" in order to know whom to multicast the video image to, and who to expect to receive video from. Such applications do not require the synchronization of membership change notifications with regular messages. On the other end of the spectrum, consistent data replication may greatly benefit from strong semantics such as virtual synchrony. Computer Supported Cooperative Work (CSCW) groupware and multimedia applications involve different services that require different Qualities of Service (QoS) and different semantics form the group membership which they use, for example, an on-line conferencing application may incorporate multimedia multicast as well as coordination and sharing of consistent information.

We describe a new architecture in which we construct a group membership service that provides a variety of service levels and semantics. In our design, the membership is maintained by a separate server. Thus, the maintenance of membership induces a very low overhead in case membership changes are infrequent, and the strong semantics required by some parts of the application induce no overhead for the parts that require weaker semantics.

We describe in detail two different service semantics geared towards different kinds of applications: simple semantics of membership approximation, and full virtual synchrony. We discuss existing group communication systems as well as the theoretical limitations of such systems.

This work was done as part of the Transis project.