This Article 
 Bibliographic References 
 Add to: 
A Metaobject Architecture for Fault-Tolerant Distributed Systems: The FRIENDS Approach
January 1998 (vol. 47 no. 1)
pp. 78-95

Abstract—The FRIENDS system developed at LAAS-CNRS is a metalevel architecture providing libraries of metaobjects for fault tolerance, secure communication, and group-based distributed applications. The use of metaobjects provides a nice separation of concerns between mechanisms and applications. Metaobjects can be used transparently by applications and can be composed according to the needs of a given application, a given architecture, and its underlying properties. In FRIENDS, metaobjects are used recursively to add new properties to applications. They are designed using an object oriented design method and implemented on top of basic system services. This paper describes the FRIENDS software-based architecture, the object-oriented development of metaobjects, the experiments that we have done, and summarizes the advantages and drawbacks of a metaobject approach for building fault-tolerant systems.

[1] G. Agha, S. Frølund, R. Panwar, and D. Sturman, "A Linguistic Framework for Dynamic Composition of Dependability Protocols," Proc. DCCA-3, pp. 197-207, 1993.
[2] R.J. Stroud, "Transparency and Reflection in Distributed Systems," ACM Operating Systems Review, vol. 22, no. 2, pp. 99-103, Apr. 1993.
[3] B. Garbinato, R. Guerraoui, and K. Mazouni, "Implementation of the GARF Replicated Objects Plateform," Distributed Systems Eng. J., vol. 2, pp. 14-27, Mar. 1995.
[4] J.C. Fabre, V. Nicomette, T. Perennou, R.J. Stroud, and Z. Wu, Implementing Fault Tolerant Applications Using Reflective Object-Oriented Programming Proc 25th IEEE Int'l Symp. Fault-Tolerant Computing (FTCS-25), pp. 489-498, 1995.
[5] J.C. Fabre and T. Pérennou, "FRIENDS: A Flexible Architecture for Implementing Fault-Tolerant and Secure Distributed Applications", Proc. EDCC-2, Lecture Notes in Computer Science, vol. 1,150, pp. 3-20,Taormina, Italy, Oct.2-4, 1996.
[6] P. Maes, "Concepts and Experiments in Computational Reflection," Proc. OOPSLA '87, pp. 147-155,Orlando, Fla., 1987.
[7] G. Kiczales, J. des Rivières, and D. Bobrow, The Art of the Metaobject Protocol. MIT Press, 1991.
[8] A. Paepcke, "PCLOS: Stress Testing CLOS—Experiencing the Metaobject Protocol," Proc. OOPSLA '90, pp. 194-211, 1990.
[9] Y. Honda and M. Tokoro, "Soft Real-Time Programming Through Reflection," Proc. Int'l Workshop Reflection and Metalevel Architecture, pp. 12-23, Nov. 1992.
[10] S. Chiba and T. Masuda, “Designing an Extensible Distributed Language with a Meta-Level Architecture,” Proc. Seventh European Conf. Object-Oriented Programming, O. Nierstraz, ed., pp. 482–501, July 1993.
[11] G. Kiczales and J. Lamping, "Issues in the Design and Specification of Class Libraries," Proc. OOPSLA '92, pp. 435-451, 1992.
[12] D. Powell, "Distributed Fault Tolerance—Lessons Learnt from Delta-4," Hardware and Software Architecture for Fault Tolerance: Experiences and Perspectives, M. Banâtre and P.A. Lee, eds., Lecture Notes in Computer Science, vol. 774, pp. 199-217. Springer Verlag, 1994.
[13] K. Birman, "Replication and Fault-Tolerance in the ISIS System," Proc. 10th ACM Symp. Operating Systems Principles, pp. 79-86, Dec. 1985.
[14] D. Detlefs, M. Herlihy, and J. Wing, “Inheritance of Synchronization and Recovery Properties in Avalon /C++,” Computer, vol. 21, no. 12, Dec. 1988.
[15] S.K. Shrivastava, G.N. Dixon, and G.D. Parrington, "An Overview of the Arjuna Distributed Programming System," IEEE Software, vol. 8, no. 1, pp. 66-73, 1991.
[16] H. Masuhara, S. Matsuoka, T. Watanabe, and A. Yonezawa, “Object-Oriented Concurrent Reflective Languages Can Be Implemented Efficiently,” Proc. Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '92), pp. 127–145, Oct. 1992.
[17] D. Powell, Failure Mode Assumptions and Assumption Coverage Proc. 22nd Int'l Symp. Fault-Tolerant Computing (FTCS-22), pp. 386-395, 1992.
[18] S.E. Mitchell, A.J. Wellings, and A. Burns, "Developing a Real-Time Metaobject Protocol," Proc. IEEE Workshop Object-Oriented Real-Time Dependable Systems, 1997.
[19] J. Xu, B. Randell, and A.F. Zorzo, "Implementing Software Fault Tolerance in C++ and Open C++: An Object Oriented and Reflective Approach," Proc. CADTED '96, pp. 224-229.Beijing, China: Int'l Academic Publishing, 1996.
[20] R.J. Stroud and Z. Wu, "Using Metaobject Protocols to Implement Atomic Data Types," Proc. ECOOP '95, Lecture Notes in Computer Science, vol. 952, pp. 165-189, 1995.
[21] M. Rozier, V. Abrossimov, F. Armand, I. Boule, M. Gien, M. Guillemont, F. Hermann, C. Kaiser, S. Langlois, P. Leonard, and W. Neuhauser, "Overview of the Chorus Distributed Operating System," Chorus Systems Technical Report CS-TR-90-25, 1990.
[22] Y. Yokote, “The Apertos Reflective Operating System: The Concept and Its Implementation,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '92), pp. 414–434, Oct. 1992.
[23] S. Chiba, "Open C++ Release 1.2 Programmer's Guide," Technical Report No. 93-3, Dept. of Information Science, Univ. of Tokyo, 1993.
[24] R.M. Needham and M.D. Schroeder, "Using Encryption for Authentication in Large Networks of Computers," Comm. ACM, vol. 21, no. 12, pp. 993-999, Dec. 1978
[25] K. Waldén and J.M. Nerson, "Seamless Object-Oriented Software Architecture, Analysis and Design of Reliable Systems," The Object-Oriented Series. Prentice Hall, 1995.
[26] L. Rodrigues and P. Veríssimo, "xAMp: A Protocol Suite for Group Communication," Proc. SRDS-11, pp. 112-121, 1992.

Index Terms:
Metalevel architecture, metaobject protocols, distributed fault tolerance, object-oriented methods and languages, reusability.
Jean-Charles Fabre, Tanguy Pérennou, "A Metaobject Architecture for Fault-Tolerant Distributed Systems: The FRIENDS Approach," IEEE Transactions on Computers, vol. 47, no. 1, pp. 78-95, Jan. 1998, doi:10.1109/12.656088
Usage of this product signifies your acceptance of the Terms of Use.