Bast, A Framework for Reliable Distributed Computing

Although useful in the development of distributed systems, current reliable distributed environments, such as group communication toolkits (e.g., ISIS, TOTEM, PHOENIX) or transactional monitors (e.g., ENCINA, TUXEDO), are hardly extensible or customisable for specific application needs. The limitations of those systems are mainly due to their underlying distributed protocols, which are usually designed and implemented in an ad hoc manner. This paper presents BAST, an object-oriented framework for building fault-tolerant distributed applications. We also show how BAST is used to implement distributed protocols, by providing centralised and distributed design patterns . In particular, we present how we built atomic commitment and atomic multicast protocols, which provide adequate support for a wide range of fault-tolerant distributed applications. We detail customisation facilities of BAST and discuss our design in the light of different alternatives. Finally, we present BAST implementations in Smalltalk and Java, and we point out some optimisation issues.

[1]  Rachid Guerraoui,et al.  Using the Strategy Design Pattern to Compose Reliable Distributed Protocols , 1997, COOTS.

[2]  Rachid Guerraoui,et al.  Flexible protocol composition in BAST , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[3]  Larry L. Peterson,et al.  A dynamic network architecture , 1992, TOCS.

[4]  Roy Friedman,et al.  A framework for protocol composition in Horus , 1995, PODC '95.

[5]  André Schiper Early consensus in an asynchronous system with a weak failure detector , 1997, Distributed Computing.

[6]  Rachid Guerraoui,et al.  Transaction Model vs. Virtual Synchrony Model: Bridging the Gap , 1994, Dagstuhl Seminar on Distributed Systems.

[7]  J. Meigs,et al.  WHO Technical Report , 1954, The Yale Journal of Biology and Medicine.

[8]  Rachid Guerraoui Revistiting the Relationship Between Non-Blocking Atomic Commitment and Consensus , 1995, WDAG.

[9]  Larry L. Peterson,et al.  Design of the x-kernel , 1988, SIGCOMM '88.

[10]  Marshall T. Rose,et al.  The Open book - a practical perspective on OSI , 1990 .

[11]  I. Bey,et al.  Delta-4: A Generic Architecture for Dependable Distributed Computing , 1991, Research Reports ESPRIT.

[12]  Ralph Johnson,et al.  A framework for network protocol software , 1995, OOPSLA.

[13]  Larry Peterson,et al.  Avoca: an environment for programming with protocols , 1990 .

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

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

[16]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[17]  Rachid Guerraoui Modular Atomic Objects , 1995, Theory Pract. Object Syst..

[18]  Benoît Garbinato,et al.  Modeling Protocols as Objects for Structuring Reliable Distributed Systems , 1997 .

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

[20]  Ralph E. Johnson,et al.  Design Patterns: Abstraction and Reuse of Object-Oriented Design , 1993, ECOOP.

[21]  Shivakant Mishra,et al.  Consul: a communication substrate for fault-tolerant distributed programs , 1993, Distributed Syst. Eng..

[22]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[23]  Douglas C. Schmidt,et al.  ASX: An Object-Oriented Framework for Developing Distributed Applications , 1994, C++ Conference.

[24]  Benoît Garbinato Protocol objects and patterns for structuring reliable distributed systems , 1998 .

[25]  Roy H. Campbell,et al.  Designing and implementing Choices: an object-oriented system in C++ , 1993, CACM.

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

[27]  Larry L. Peterson,et al.  A language-based approach to protocol implementation , 1993, TNET.

[28]  Rachid Guerraoui,et al.  Software-Based Replication for Fault Tolerance , 1997, Computer.

[29]  A. Fleischmann Distributed Systems , 1994, Springer Berlin Heidelberg.

[30]  Alan Borning,et al.  Multiple Inheritance in Smalltalk-BO , 1982, AAAI.

[31]  James A. Gosling,et al.  The java language environment: a white paper , 1995 .

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

[33]  Gail E. Kaiser,et al.  An object-based approach to implementing distributed concurrency control , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[34]  Shivakant Mishra,et al.  Experience with modularity in consul , 1993, Softw. Pract. Exp..

[35]  Santosh K. Shrivastava,et al.  Implementing Concurrency Control in Reliable Distributed Object Oriented Systems , 1988 .

[36]  Rachid Guerraoui,et al.  Right Abstractions on Adequate Frameworks for Building Adaptable Distributed Applications , 1997 .

[37]  Sam Toueg,et al.  The weakest failure detector for solving consensus , 1992, PODC '92.

[38]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

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

[40]  Larry L. Peterson,et al.  RPC in the x-Kernel: evaluating new design techniques , 1989, SOSP '89.

[41]  Rachid Guerraoui,et al.  Implementation of the GARF replicated objects platform , 1995, Distributed Syst. Eng..

[42]  Rachid Guerraoui,et al.  Total order multicast to multiple groups , 1997, Proceedings of 17th International Conference on Distributed Computing Systems.

[43]  I. G. BONNER CLAPPISON Editor , 1960, The Electric Power Engineering Handbook - Five Volume Set.

[44]  Dennis M. Ritchie,et al.  A stream input-output system , 1990 .

[45]  Rachid Guerraoui,et al.  Protocol Classes for Designing Reliable Distributed Environments , 1996, ECOOP.