Reflective Fault-Tolerant Systems: From Experience to Challenges

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]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[2]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[3]  Ian Welch,et al.  Adaptation of Connectors in Software Architectures , 1998, ECOOP Workshops.

[4]  Edward V. Berard,et al.  Testing Object-Oriented Software , 2021, TOOLS.

[5]  Shigeru Chiba,et al.  OpenJava: A Class-Based Macro System for Java , 1999, Reflection and Software Engineering.

[6]  Julia L. Lawall,et al.  Proceedings of the 2002 Usenix Annual Technical Conference Think: a Software Framework for Component-based Operating System Kernels , 2022 .

[7]  Priya Narasimhan,et al.  The Eternal system: an architecture for enterprise applications , 1999, Proceedings Third International Enterprise Distributed Object Computing. Conference (Cat. No.99EX366).

[8]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[9]  Alexandre Petrenko,et al.  Protocol testing: review of methods and relevance for software testing , 1994, ISSTA '94.

[10]  Jean-Charles Fabre,et al.  Portable serialization of CORBA objects: a reflective approach , 2002, OOPSLA '02.

[11]  Yves Crouzet,et al.  Software Statistical Testing , 1995 .

[12]  Yasuhiko Yokote,et al.  The Apertos reflective operating system: the concept and its implementation , 1992, OOPSLA.

[13]  Jean-Charles Fabre,et al.  Optimized Object State Checkpointing using Compile-Time Reflection , 2002 .

[14]  François Taïani,et al.  Principles of multi-level reflection for fault tolerant architectures , 2002, 2002 Pacific Rim International Symposium on Dependable Computing, 2002. Proceedings..

[15]  Jean-Charles Fabre,et al.  A strategy for testing MetaObject protocols in reflective architectures , 2001, 2001 International Conference on Dependable Systems and Networks.

[16]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[17]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[18]  Shigeru Chiba Macro processing in object-oriented languages , 1998, Proceedings Technology of Object-Oriented Languages. TOOLS 28 (Cat. No.98TB100271).

[19]  Shinji Chiba OpenC++ 2.5 Reference Manual , 1997 .

[20]  Wooyoung Kim A Linguistic Framework for Dynamic Composition of Dependability Protocols , 1993 .

[21]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[22]  Micah Beck,et al.  Compiler-Assisted Memory Exclusion for Fast Checkpointing , 1995 .

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

[24]  Jean-Charles Fabre,et al.  A Metaobject Architecture for Fault-Tolerant Distributed Systems: The FRIENDS Approach , 1998, IEEE Trans. Computers.

[25]  MaesPattie Concepts and experiments in computational reflection , 1987 .

[26]  Alfred Strohmeier,et al.  Open Issues in Testing Object-Oriented Software , 1994 .

[27]  Jean-Charles Fabre,et al.  Testing MetaObject Protocols Generated by Open Compilers for Safety-Critical Systems , 2001, Reflection.

[28]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[29]  Marc-Olivier Killijian Tolérance aux fautes sur CORBA par protocole à métaobjets et langages réflexifs , 2000 .

[30]  Claude Caci,et al.  Testing object-oriented systems , 2000, SOEN.

[31]  Gordon S. Blair,et al.  Experiments with an architecture for reflective middleware , 2000, Integr. Comput. Aided Eng..

[32]  Gul Agha,et al.  A LINGUISTIC FRAMEWORK FOR DYNAMIC COMPOSITION OF DEPENDABILITY PROTOCOLS , 1993 .

[33]  Robert J. Allen A formal approach to software architecture , 1997 .

[34]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[35]  Gordon S. Blair,et al.  The case for reflective middleware , 2002, CACM.

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

[37]  Jean-Charles Fabre,et al.  Implementing a reflective fault-tolerant CORBA system , 2000, Proceedings 19th IEEE Symposium on Reliable Distributed Systems SRDS-2000.