Friends: A flexible architecture for implementing fault tolerant and secure distributed applications

  • Jean-Charles Fabre
  • Tanguy Pérennou
Session 1 Distributed Fault Tolerance
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1150)


FRIENDS is a software-based architecture for implementing fault-tolerant and, to some extent, secure applications. This architecture is composed of sub-systems and libraries of metaobjects. Transparency and separation of concerns is provided not only to the application programmer but also to the programmers implementing metaobjects for fault tolerance, secure communication and distribution. Common services required for implementing metaobjects are provided by the sub-systems. Metaobjects are implemented using object-oriented techniques and can be reused and customised according to the application needs, the operational environment and its related fault assumptions. Flexibility is increased by a recursive use of metaobjects. Examples and experiments are also described.


Fault Tolerance Secure Communication Authentication Server Method Invocation Application 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]
    Maes P., “Concepts and Experiments in Computational Reflection”, in Proc. of OOPSLA'87, Orlando, USA, 1987, pp. 147–155.Google Scholar
  2. [2]
    Kiczales G., des Rivières J. and Bobrow D.G., The Art of the Metaobject Protocol, MIT Press, 1991.Google Scholar
  3. [3]
    Paepcke A., “PCLOS: Stress Testing CLOS — Experiencing the Metaobject Protocol”, in Proc. of OOPSLA'90, 1990, pp. 194–211.Google Scholar
  4. [4]
    Honda Y. and Tokoro M., “Soft Real-Time Programming through Reflection”, in Proc. of the Int. Workshop on Reflection and Meta-level Architecture, November 1992, pp. 12–23.Google Scholar
  5. [5]
    Chiba S. and Masuda T., “Designing an Extensible Distributed Language with Meta-level Architecture”, in Proc. of ECOOP '93, LNCS 707, Springer-Verlag, Kaiserslautern, Germany, 1993, pp. 482–501.Google Scholar
  6. [6]
    Agha G., Frølund S., Panwar R. and Sturman D., “A Linguistic Framework for Dynamic Composition of Dependability Protocols”, in Proc. of DCCA-3, 1993, pp. 197–207.Google Scholar
  7. [7]
    Stroud R.J., “Transparency and Reflection in Distributed Systems”, ACM Operating Systems Review, 22 (2), April 1993, pp. 99–103.Google Scholar
  8. [8]
    Powell D., “Distributed Fault Tolerance — Lessons Learnt from Delta-4”, in Hardware and Software Architecture for Fault Tolerance: Experiences and Perspectives (M. Banâtre and P.A. Lee, Eds.), LNCS 774, Springer Verlag, 1994, pp.199–217.Google Scholar
  9. [9]
    Birman K.J., “Replication and Fault tolerance in the Isis System”, ACM Operating Systems Review, 19 (5), 1985, pp. 79–86.Google Scholar
  10. [10]
    Detlefs D., Herlihy M.P. and Wing J.M., “Inheritance of Synchronization and Recovery Properties in Avalon/C++”, Computer, 21 (12), December 1988, pp. 57–69.Google Scholar
  11. [11]
    Shrivastava S.K., Dixon G.N. and Parrington G.D., “An Overview of the Arjuna Distributed Programming System”, IEEE Software, 8 (1), 1991, pp. 66–73.Google Scholar
  12. [12]
    Masuhara H., Matsuoka S., Watanabe T. and Yonezawa A., “Object-Oriented Concurrent Reflective Languages can be Implemented Efficiently”, in Proc. of OOPSLA'92, 1992, pp. 127–144.Google Scholar
  13. [13]
    Powell D., “Failure Mode Assumptions and Assumption Coverage”, in Proc. of FTCS-22, Boston, USA, 1992, pp. 386–395.Google Scholar
  14. [14]
    Fabre J.C., Nicomette V., Pérennou T., Wu Z. and Stroud R.J., “Implementing Fault-tolerant Applications using Reflective Object-Oriented Programming”, in Proc. of FTCS-25, Pasadena, USA, June 1995, pp. 489–498.Google Scholar
  15. [15]
    Rozier M., Abrossimov V., Armand F., Boule I., Gien M., Guillemont M., Hermann F., Kaiser C., Langlois S., Leonard P. and Neuhauser W., “Overview of the Chorus Distributed Operating System”, Chorus Systèmes Technical Report CS-TR-90-25, 1990, 45 p.Google Scholar
  16. [16]
    Yokote Y., “The Apertos Reflective Operating System: The Concept and Its Implementation”, in Proc. of OOPSLA'92, 1992, pp. 414–434.Google Scholar
  17. [17]
    Chiba S.,”Open C++ Release 1.2 Programmer's Guide”, Technical Report No. 93-3, Dept. of Information Science, University of Tokyo, 1993.Google Scholar
  18. [18]
    Needham R.M. and Schroeder M.D., “Using Encryption for Authentication in Large Networks of Computers”, Comm. of the ACM, 21 (12), December 1978, pp. 993–999Google Scholar
  19. [19]
    Rodrigues L. and Veríssimo P., “xAMp: A Protocol Suite for Group Communication”, in Proc. of SRDS-11, 1992, pp. 112–121.Google Scholar
  20. [20]
    Deswarte Y., Blain L. and Fabre J.C., “Intrusion Tolerance in Distributed Computing Systems”, Proc. of the 1991 IEEE Symp. on Research in Security and Privacy, Oakland, USA, 1991, pp.110–121.Google Scholar
  21. [21]
    Waldén K. and Nerson J.M., Seamless Object-Oriented Software Architecture, Analysis and Design of Reliable Systems, The Object-Oriented Series, Prentice Hall, 1995, 438 p.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Jean-Charles Fabre
    • 1
  • Tanguy Pérennou
    • 2
  1. 1.LAAS-CNRS & INRIAToulouse cedexFrance
  2. 2.LAAS-CNRSToulouse cedexFrance

Personalised recommendations