This Article 
 Bibliographic References 
 Add to: 
Reflective Fault-Tolerant Systems: From Experience to Challenges
February 2003 (vol. 52 no. 2)
pp. 237-254

Abstract—This paper presents research work performed on the development and the verification of dependable reflective systems based on MetaObject Protocols (MOPs). We describe our experience, we draw the lessons learned from both a design and a validation viewpoint, and we discuss some possible future trends on this topic. The main originality of this work relies on the combination of both design and validation issues for the development of reflective systems, which has led to the definition of a reflective framework for the next generation of fault-tolerant systems. This framework includes: 1) the specification of a MetaObject Protocol suited to the implementation of fault-tolerant systems and 2) the definition of a general test strategy to guide its verification. The proposed approach is generic and solves many issues related to the use and evolution of system platforms with dependability requirements. Two different instances of the specified MOP have been implemented in order to study the impact of the MOP architecture in the development of a reflective fault-tolerant system. As far as the test strategy is concerned, a different testing level is associated with each reflective mechanism defined in the MOP. For each testing level, we characterize the test objectives and the required test environments. According to this experience, several new research challenges are finally identified.

[1] J.S. Plank, M. Beck, and G. Kingsley, “Compiler-Assisted Memory Exclusion for Fast Checkpointing,” IEEE Technical Committee on Operating Systems and Application Environments, special issue on fault tolerance, vol. 7, no. 4, pp. 10-14, 1995.
[2] P. Maes, "Concepts and Experiments in Computational Reflection," Proc. OOPSLA '87, pp. 147-155,Orlando, Fla., 1987.
[3] G. Kiczales, J.d. Rivières, and D.G. Bobrow, The Art of the MetaObject Protocol, Cambridge, Mass.: The MIT Press, 1992.
[4] G. Agha et al., “A Linguistic Framework for Dynamic Composition of Dependability Protocols,” Proc. Dependable Computing for Critical Applications 3, pp. 345-363, 1993.
[5] B. Garbinato, R. Guerraoui, and K. Mazouni, “Implementation of the GARF Replicated Objects Platform,” Distributed Systems Eng. J., vol. 2, pp. 14-27, 1995.
[6] J.-C. Fabre and T. Perennou, “A Metaobject Architecture for Fault-Tolerant Distributed Systems: The FRIENDS Approach,” IEEE Trans. Computers, vol. 47, no. 1, pp. 78-95, Jan. 1998.
[7] D. Powell, Delta-4: A Generic Architecture for Dependable Distributed Computing. Springer-Verlag, 1991.
[8] L.E. Moser et al., “The Eternal System: An Architecture for Enterprise Applications,” Proc. Third Int'l Enterprise Distributed Object Computing Conf., pp. 214-222, 1999.
[9] 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.
[10] F.M. Costa, G.S. Blair, and G. Coulson, “Experiments with an Architecture for Reflective Middleware,” Integrated Computer-Aided Eng., vol. 7, no. 4, pp. 313-325, 2000.
[11] Sun, Java Object Serialization Specification—Release 1.2, , 1996.
[12] OMG, CORBA 2.5 Specification, , 2001.
[13] G. v. Bochmann and A. Petrenko, "Protocol Testing: Review of Methods and Relevance for Software Testing," Proc. ACM Symp. Software Testing and Analysis, pp. 109-124 1994.
[14] S. Barbey, M. Ammann, and A. Strohmeier, “Open Issues in Testing Object-Oriented Software,” Proc. European Conf. Software Quality, pp. 257-267, 1994.
[15] R.V. Binder, Testing Object-Oriented Systems Models, Patterns, and Tools. Addison-Wesley, 1999.
[16] S. Chiba, “A Metaobject Protocol for C++,” Proc. OOPSLA '95, pp. 285–299, ACM, 1995.
[17] I. Welch and R. Stroud, “Adaptation of Connectors in Software Architectures,” Proc. ECOOP '98, Workshop Reflective OO Programming Systems, pp. 145-146, 1998.
[18] E. Marsden, J.-C. Ruiz, and J.-C. Fabre, “Towards Validating Reflective Architectures: Formalization of a MOP,” Proc. Middleware 2000, Workshop Reflective Middleware, pp. 33-35, 2000.
[19] M.O. Killijian, “Fault-Tolerance on CORBA Using Metaobject Protocols and Reflective Languages,” INPT PhD thesis, no. 1641 (in French), 2000.
[20] J.C. Ruiz et al., “Optimized Object State Checkpointing Using Compile-Time Reflection,” Proc. IEEE Workshop Embedded Fault-Tolerant Systems, pp. 46-48, 1998.
[21] M.O. Killijian, J.C. Ruiz, and J.C. Fabre, “Portable Serialization of CORBA Objects: A Reflective Approach,” Proc. 17th Ann. ACM Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 68-82, 2002.
[22] M.-O. Killijian and J.-C. Fabre, “Implementing a Reflective Fault-Tolerant CORBA System,” Proc. 19th Symp. Reliable Distributed Systems, pp. 154-163, 2000.
[23] OMG, Fault-Tolerant CORBA Specification v 1.0, , 1998.
[24] S. Chiba, “Macro Processing in Object-Oriented Languages,” Proc. Technology of Object-Oriented Languages and Systems, pp. 113-126, 1998.
[25] M. Tatsubori et al., “OpenJava: A Class-Based Macro System for Java,” Reflection and Software Engi., pp. 119-135, 2000.
[26] J.C. Ruiz, P. Thévenod-Fosse, and J.-C. Fabre, “Testing MOP-Based Reflective Architectures,” Proc Second Int'l Conf. Dependable Systems and Networks, pp. 327-336, 2001.
[27] J.C. Ruiz, J.-C. Fabre, and P. Thévenod-Fosse, “Testing MetaObject Protocols Generated by Open-Compilers for Safety-Critical Systems,” Proc. Third Int'l Conf. Metalevel Architectures and Separation of Crosscutting Concerns, pp. 134-152, 2001.
[28] P. Thévenod-Fosse, H. Waeselynck, and Y. Crouzet, “Software Statistical Testing,” Predictably Dependable Computing Systems, B. Randell, H. Kopetz, and B. Littlewood, eds., pp. 253-272, Springer Verlag, 1995.
[29] D. Kung, P. Hsia, and J. Gao, Testing Object-Oriented Software, 1998.
[30] G. Kiczales et al., “Aspect-Oriented Programming,” Proc. European Conf. Object-Oriented Programming, pp. 220-242, 1997.
[31] F. Kon et al., “The Case for Reflective Middleware,” Comm. ACM, vol. 45, no. 6, pp. 33-38, 2002.
[32] J.-P. Fassino et al., “THINK: A Software Framework for Component-Based Operating System Kernels,” Proc. Usenix Ann. Technical Conf., 2002.
[33] F. Taïani, J.-C. Fabre, and M.-O. Killijian, “Principles of Multi-Level Reflection for Fault-Tolerant Architectures,” Proc. 2002 Pacific Rim Int'l Symp. Dependable Computing, 2002.

Index Terms:
Fault tolerance, reflective architectures, metaobject protocols, testing.
Juan Carlos Ruiz, Marc-Olivier Killijian, Jean-Charles Fabre, Pascale Thévenod-Fosse, "Reflective Fault-Tolerant Systems: From Experience to Challenges," IEEE Transactions on Computers, vol. 52, no. 2, pp. 237-254, Feb. 2003, doi:10.1109/TC.2003.1176989
Usage of this product signifies your acceptance of the Terms of Use.