Group communication services versus wide-area networks
Jeremy B. Sussman, Keith Marzullo · 1999
A group communication service provides an application with an abstraction of the network and processes that comprise the application. Such an abstraction allows the application developer to more easily consider the possible variations in quality of service under which the application runs, and thus eases the development process. We examine the abstraction provided by group communication services in wide-area networks to understand whether group communication services do indeed aid the development of distributed applications in this context. We present a model for group communication services that allows a greater understanding of the knowledge underpinnings of group-based programming. This model allows one to compare existing group communication services in terms of their semantic difference, rather than their syntactic differences. We present a distributed application that is designed to effectively run on a partitionable wide-area network. This application benefits from the group communication service abstraction, and allows one to examine the utility of different group communication services. We present solutions to some of the problems that have limited the use of group communication services. In particular, we present a group membership algorithm built for use in a wide-area network, and a group-based communication paradigm that allows the processes to make progress during the periods of instability in the system without compromising the correctness of the application.