A Framework for Communication Support in Object Oriented Distributed Systems

Process group abstraction makes development of complex distributed applications much easier. In object oriented distributed systems, objects have well defined interfaces and interact with each other by sending messages. To implement the process group abstraction in object oriented distributed systems, an object oriented framework called the Cortex framework is proposed. This framework provides the different levels of semantics that are needed for group communication, group membership, naming, reliable communication, fault tolerance and object replication, for a fault model. An application developer can use this framework to develop distributed applications in general and fault-tolerant distributed applications in particular. This makes the application development cycle shorter. The different levels of semantics (synchronization guarantees) provided by the Cortex framework allows the application developer to optimize cost, performance and fault-tolerance. The system integrates group membership abstraction with name service. New algorithms are proposed for causal unicast, causal multicast and total ordering of messages using IP multicast. Special attention is also given to performance and garbage collection. The framework is implemented in Java, using SUN's JDK 1.1.1 and tested on Solaris 2.5 and Windows NT. It uses IP multicast for unreliable multicast. The framework provides classes for reliable unicast delivery, multicast delivery, causal multicast delivery, totally ordered delivery and safe delivery of messages. A study of the performance of the framework under various conditions is done. A Fault-Tolerant Internet Whiteboard (FTIW) is also implemented to illustrate the usefulness of the framework. The framework is implemented keeping in mind the requirements of a typical distributed system on the the Internet. It provides for the integration of name service with group communication and fault handling. This is important as a reference to an object is obtained from the name service. It also treats clients different from a member process in a group. This ensures that a client does not differentiate between a group object and a singular (regular) object.

[1]  Robbert van Renesse Why bother with CATOCS? , 1994, OPSR.

[2]  Sape J. Mullender Distributed Systems (2nd edition) , 1993 .

[3]  Jo-Mei Chang,et al.  Reliable broadcast protocols , 1984, TOCS.

[4]  Kenneth P. Birman,et al.  A response to Cheriton and Skeen's criticism of causal and totally ordered communication , 1994, OPSR.

[5]  Ralph E. Johnson,et al.  Frameworks = (components + patterns) , 1997, CACM.

[6]  Andrew S. Tanenbaum,et al.  Group communication in the Amoeba distributed operating system , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[7]  Flaviu Cristian,et al.  Synchronous and Asynchronous Group Communication. , 1996 .

[8]  T. Biggerstaff,et al.  Reusability Framework, Assessment, and Directions , 1987, IEEE Software.

[9]  Sam Toueg,et al.  Unreliable failure detectors for reliable distributed systems , 1996, JACM.

[10]  Robbert van Renesse,et al.  Horus: a flexible group communication system , 1996, CACM.

[11]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[12]  David C. Rine,et al.  Readings in Object-Oriented Systems and Applications , 1994 .

[13]  Samuel T. Chanson,et al.  Process groups and group communications: classifications and requirements , 1990, Computer.

[14]  Yair Amir,et al.  Transis: A Communication Sub-system for High Availability , 1992 .

[15]  Robbert van Renesse,et al.  Reliable Distributed Computing with the Isis Toolkit , 1994 .

[16]  Weijia Jia,et al.  An efficient and reliable group multicast protocol , 1995, Proceedings ISADS 95. Second International Symposium on Autonomous Decentralized Systems.

[17]  Louise E. Moser,et al.  Fast message ordering and membership using a logical token-passing ring , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[18]  Newtop: a fault-tolerant group communication protocol , 1995, Proceedings of 15th International Conference on Distributed Computing Systems.

[19]  Colin J. Fidge,et al.  Timestamps in Message-Passing Systems That Preserve the Partial Ordering , 1988 .

[20]  Danny Dolev,et al.  The Design of the Transis System , 1994, Dagstuhl Seminar on Distributed Systems.

[21]  Virgil D. Gligor,et al.  A fault-tolerant protocol for atomic broadcast , 1988, Proceedings [1988] Seventh Symposium on Reliable Distributed Systems.

[22]  Michael J. Fischer,et al.  The Consensus Problem in Unreliable Distributed Systems (A Brief Survey) , 1983, FCT.

[23]  Louise E. Moser,et al.  Extended virtual synchrony , 1994, 14th International Conference on Distributed Computing Systems.

[24]  Hector Garcia-Molina,et al.  Ordered and reliable multicast communication , 1991, TOCS.

[25]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[26]  Pankaj Jalote,et al.  Fault tolerance in distributed systems , 1994 .

[27]  Samuel T. Chanson,et al.  A bibliography on multicast and group communications , 1989, OPSR.

[28]  Robert Cooper Experience with causally and totally ordered communication support: a cautionary tale , 1994, OPSR.

[29]  Danny Dolev,et al.  The Transis approach to high availability cluster communication , 1996, CACM.

[30]  Dan Harkey,et al.  Essential client/server survival guide , 1994 .

[31]  Kenneth P. Birman,et al.  Reliable communication in the presence of failures , 1987, TOCS.

[32]  Ganesha Beedubail,et al.  Fault tolerant objects in distributed systems using hot replication , 1996, Conference Proceedings of the 1996 IEEE Fifteenth Annual International Phoenix Conference on Computers and Communications.

[33]  Doug Lea,et al.  Concurrent programming in Java - design principles and patterns , 1996, Java series.

[34]  Douglas C. Schmidt,et al.  Object-oriented application frameworks , 1997, CACM.

[35]  Flaviu Cristian,et al.  Atomic Broadcast: From Simple Message Diffusion to Byzantine Agreement , 1995, Inf. Comput..

[36]  André Schiper,et al.  Lightweight causal and atomic group multicast , 1991, TOCS.

[37]  Samuel T. Chanson,et al.  Reliable group communication in distributed systems , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[38]  Santosh K. Shrivastava To CATOCS or not to CATOCS, that is the … , 1994, OPSR.

[39]  Richard D. Schlichting,et al.  Preserving and using context information in interprocess communication , 1989, TOCS.

[40]  Udo Poochfganeshb Replicated Naming Service in Spring , 1995 .

[41]  André Schiper,et al.  A New Algorithm to Implement Causal Ordering , 1989, WDAG.

[42]  Yves Lepage,et al.  MBONE, multicasting tomorrow's Internet , 1996 .

[43]  Kenneth P. Birman,et al.  The process group approach to reliable distributed computing , 1992, CACM.

[44]  Danny Dolev,et al.  On the minimal synchronism needed for distributed consensus , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[45]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1983, PODS '83.

[46]  André Schiper,et al.  The Causal Ordering Abstraction and a Simple Way to Implement it , 1991, Inf. Process. Lett..

[47]  R. Van Renesse Causal controversy at Le Mont St.-Michel (5th ACM SIGOPS Workshop 1992) : Models and paradigms for distributed systems structuring , 1993 .

[48]  David R. Cheriton,et al.  Understanding the limitations of causally and totally ordered communication , 1994, SOSP '93.

[49]  Flaviu Cristian,et al.  Agreeing on who is present and who is absent in a synchronous distributed system , 1988, [1988] The Eighteenth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[50]  André Schiper,et al.  From group communication to transactions in distributed systems , 1996, CACM.

[51]  Nancy A. Lynch,et al.  Consensus in the presence of partial synchrony , 1988, JACM.

[52]  Louise E. Moser,et al.  Broadcast Protocols for Distributed Systems , 1990, IEEE Trans. Parallel Distributed Syst..

[53]  Dan Harkey,et al.  The Essential Distributed Objects Survival Guide , 1995 .

[54]  Thomas J. Mowbray,et al.  The essential CORBA - systems integration using distributed objects , 1995 .

[55]  Kenneth P. Birman,et al.  Exploiting virtual synchrony in distributed systems , 1987, SOSP '87.

[56]  Tim Howes,et al.  Lightweight Directory Access Protocol , 1995, RFC.