Communicating object group and protocols for distributed systems Weijia Jia 1 Department of Computer Science, City University of Hong Kong, 83 Tat Chee Ave. Kowloon, Hong Kong Received 4 May 1997; received in revised form 8 August 1997; accepted 27 August 1997 Abstract Distributed communicating object groups, relevant algorithms and object communication protocols are presented. The dis- tributed communicating object group system (called DCO) is built on the basis of hierarchy group communication protocols for networks. The system can be used as a speci®cation and design environment for distributed fault-tolerant object-oriented (OO) applications. By combining distributed process group with the powerful OO concepts, the novelty of DCO lies in its provision of methodology for construction of communicating object groups, reliable communication protocols, group membership and man- agement. The mechanisms of grouping user objects enable application objects to communicate transparently over network. Communication details implemented by underlying group multicast protocol are thus hidden from users. This makes the objects completely responsible for their modi®cation, protection, execution and communication. DCO is used to relieve application de- signers from diculty of designing object communication and reliability. Multiple layers of object group protocols are given and their design and implementation experiences are presented. Ó 1999 Elsevier Science Inc. All rights reserved. 1. Introduction Motivation: Computation or information processing in object-oriented (OO) framework is represented as a sequence of message passing among objects. Thus, the decomposition of a system into a collection of concur- rently executable objects is ¯exible and the resulting system structures become very natural. Distributed OO programming/system, with concepts of class, inheri- tance, polymorphism, dynamic binding, information hiding and message passing, is a powerful programming and design methodology. Distribution is combined with the OO, which enhances system modularity and safety. The central issues in exploitation of distributed com- putation are what resource should be distributed, whose activities should be carried out in cooperative way and how such activities should interact with one another. In designing a software system that exploits modularity and distribution, these issues boil down to the problem of how the system should be decomposed into compo- nents that can be activated cooperatively and what function should be given to each component to enhance reliability. To maintain system modularity and trans- parency, decomposition should be natural and modular. To achieve reliability, information objects should be replicated and work cooperatively to maintain the con- sistency. DCO is accommodated with communicating objects, groups and communication protocols, intending to achieve modularity and system availability. A commu- nicating object is a passive object (no process associated with it), self-contained and provided with a uni®ed communication interface. The objects are grouped and they cooperate by passing messages. DCO is intended to guarantee properties of message ordering, atomicity and dynamic group membership and fault tolerance. Con- ducting research of DCO can be further explained in respect of: · Load sharing. A non-replicated object can be replaced by an object-group whenever the object becomes overload without having to modify applications which use the object. Distribution and load sharing can thus be increased step by step, provided some toolkits are built to oer abstraction mechanism such as Remote Method Invocations, Remote multicast, delegation object (Proxy), which allow communica- tion with an object group as if it was a non-replicated object. · Fault tolerance. Availability and fault tolerance are increased by using an object group to implement a The Journal of Systems and Software 45 (1999) 113±126 1 Tel.: +852 2788 9701; fax: +852 2788 8614; e-mail: wjia@cs.ci- tyu.edu.hk. 0164-1212/99/$ ± see front matter Ó 1999 Elsevier Science Inc. All rights reserved. PII: S 0 1 6 4 - 1 2 1 2 ( 9 8 ) 1 0 0 7 2 - 9