Protocol classes for designing reliable distributed environments

  • Benoît Garbinato
  • Pascal Felber
  • Rachid Guerraoui
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1098)


In this paper, we present Bast, an extensible library of protocol classes. The latter is aimed at helping system programmers to build distributed programming environments. Protocol classes constitute the basic structuring components for higher-level programming models, such as the transactional model, and add flexibility to distributed environments. We focus on classes that implement a generic agreement protocol named DTM (Dynamic-Terminating-Multicast). To the programmer, the DTM generic protocol appears as a set of classes that can be specialized to solve agreement problems in distributed systems. In particular, we show how those classes can be derived to build atomic commitment and reliable total order protocols. An overview of the Smalltalk design and implementation of the Bast library is also presented.


Total Order Validity Condition Failure Detector Consensus Protocol Remote Object 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    G. Agha, S. FrØlund, R. Panwar, and D. Sturman. A linguistic framework for dynamic composition of dependability protocols. In Dependable Computing for Critical Applications III Proceedings (DCCA-3), pages 197–207. IFIP Transactions, 1993. Elsevier.Google Scholar
  2. 2.
    M. Aksit, K. Wakita, J. Bosh, L. Bergmans, and A. Yonezawa. Abstracting object interactions using composition filters. In Object-Based Distributed Programming, volume 791 of Lecture Notes in Computer Science, pages 152–184. Springer Verlag, 1993.Google Scholar
  3. 3.
    P.A. Bernstein, V. Hadzilacos, and N. Goodman. Concurrency Control and Recovery in Database Systems. Addison Wesley, 1987.Google Scholar
  4. 4.
    K. Birman and R. Van Renesse. Reliable Distributed Computing with the Isis Toolkit. IEEE Computer Society Press, 1993.Google Scholar
  5. 5.
    A. Black. Understanding transactions in the operating system context. Operating Systems Review, 25(28):73–77, January 1991.CrossRefGoogle Scholar
  6. 6.
    S. Brandt and O.L Madsen. Object-oriented distributed programming in Beta. In Object-Based Distributed Programming, volume 791 of Lecture Notes in Computer Science, pages 185–212. Springer Verlag, 1993.Google Scholar
  7. 7.
    R. Campbell, N. Islam, D. Ralia, and P. Madany. Designing and implementing Choices: An object-oriented system in C++. Communications of the ACM, 36(9):117–126, September 1993.CrossRefGoogle Scholar
  8. 8.
    T.D. Chandra and S. Toueg. Unreliable failure detectors for reliable distributed systems. Technical Report TR94-1458, Cornell University, Computer Science Department, October 1994. A preliminary version appears in PODC'91.Google Scholar
  9. 9.
    B. Garbinato, R. Guerraoui, and K.R. Mazouni. Implementation of the GARF replicated object plateform. Distributed Systems Engineering Journal, 2:14–27, 1995.CrossRefGoogle Scholar
  10. 10.
    A.J. Goldberg and A.D. Robson. SMALLTALK-80: The Language and its Implementation. Addison Wesley, 1983.Google Scholar
  11. 11.
    Object Management Group and X/Open. The Common Object Request Broker: Architecture and Specification. Object Management Group, 1990. Document No. 91.12.1 (Revision 1.1).Google Scholar
  12. 12.
    R. Guerraoui. Modular atomic objects. Theory and Practice of Object Systems, 1(2):89–100, 1995.Google Scholar
  13. 13.
    R. Guerraoui. Revisiting the relationship between non-blocking atomic commitment and consensus. In J.-M. Hélary and M. Raynal, editors, Distributed Algorithms — 9th International Workshop on Distributed Algorithms (WDAG'95), volume 972 of Lecture Notes in Computer Science, pages 87–100. Springer Verlag, September 1995.Google Scholar
  14. 14.
    R. Guerraoui and A. Schiper. A generic multicast primitive to support transactions on replicated objects in distributed systems. In IEEE International Workshop on Future Trends in Distributed Computing Systems (FTDCS-95), August 1995. Korea.Google Scholar
  15. 15.
    R. Guerraoui and A. Schiper. Transaction model vs virtual synchrony model: Bridging the gap. In Theory and Practice in Distributed Systems, volume 938 of Lecture Notes in Computer Science, pages 121–132. Springer Verlag, 1995.Google Scholar
  16. 16.
    L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558–565, July 1978.zbMATHCrossRefGoogle Scholar
  17. 17.
    N. Lynch, M. Merrit, W. Weihl, and A. Fekete. Atomic Transactions. Morgan Koffmann, 1994.Google Scholar
  18. 18.
    O.L Madsen. Building abstractions for object-oriented programming. Technical report, University of Arhus, Computer Science Department, February 1993.Google Scholar
  19. 19.
    D. McCue. Developing a class hierarchy for object-oriented transaction processing. In European Conference on Object-Oriented Programming Proceedings (ECOOP'92), volume 615 of Lecture Notes in Computer Science, pages 413–426, Utrecht (Netherland), June/July 1992. Springer Verlag.Google Scholar
  20. 20.
    S. Mishra, L. Peterson, and R. Schlichting. Experience with modularity in Consul. Software-Practice and Experience, 23(10):1053–1075, October 1993.Google Scholar
  21. 21.
    S. Mullender, editor. Distributed Systems. ACM Press, 1989.Google Scholar
  22. 22.
    G. Parrington and S. Schrivastava. Implementing concurrency control in reliable distributed object-oriented systems. In European Conference on Object-Oriented Programming Proceedings (ECOOP'88), Norway, August 1988.Google Scholar
  23. 23.
    L. Peterson, N. Hutchinson, S. O'Malley, and M. Abott. Rpc in the x-Kernel: Evaluating new design techniques. ACM Symposium on Operating Systems Principles, 23(10):91–101, November 1989.CrossRefGoogle Scholar
  24. 24.
    S. Popovitch, G. Kaiser, and S. Wu. An object-based approach to implementing distributed concurrency control. In IEEE Conference on Distributed Computing Systems Proceedings, pages 65–72, Arlington (Texas), May 1991.Google Scholar
  25. 25.
    D. Ritchie. A stream input-output system. Bell Laboratories Technical Journal, 63(8):1897–1910, 1984.Google Scholar
  26. 26.
    A. Schiper and R. Guerraoui. Faul-tolerant total order “multicast” with an unreliable failure detector. Technical report, Operating System Laboratory (Computer Science Department) of the Swiss Federal Institute of Technology, November 1995.Google Scholar
  27. 27.
    D.C. Schmidt. ASX: an object-oriented framework for developing distributed applications. In Proceedings of the 6 th USENIX C++ Technical Conference. USENIX Association, April 1994.Google Scholar
  28. 28.
    R. van Renesse and K. Birman. Protocol composition in Horus. ACM Principles of Distributed Computing, 1995.Google Scholar
  29. 29.
    J. Wing. Decomposing and recomposing transaction concepts. In Workshop OBDP93, pages 111–122, 1994.Google Scholar
  30. 30.
    Y. Yokote. The Apertos reflective operating system: The concept and its implementation. In Object-Oriented Programming Systems, Languages and Applications Conference Proceedings (OOPSLA '92), pages 414–434. ACM Press, October 1992. Special Issue of Sigplan Notices.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Benoît Garbinato
    • 1
  • Pascal Felber
    • 1
  • Rachid Guerraoui
    • 1
  1. 1.Laboratoire de Systèmes d'Exploitation Département d'InformatiqueEcole Polytechnique Fédérale de LausanneLausanneSuisse

Personalised recommendations