R.J. De Araujo Macedo
University of Newcastle upon Tyne. 1995.
It is widely accepted that group communication (multicast) is a powerful abstraction that can be used whenever a collection of distributed processes co-operate to achieve a common goal such as load-sharing or fault-tolerance. Due to the uncertainties inherent to distributed systems (emerging from communication and/or process failures), group communication protocols have to face situations where, for instance, a sender process fails when a multicast is underway or where messages from different senders arrive in an inconsistent order at different destination processes. Further complications arise if processes belong to multiple groups.