Implementing a reflective fault-tolerant CORBA system

The use of reflection is becoming popular today for the implementation of non-functional mechanisms such as fault tolerance. The main benefits of reflection are separation of concerns between the application and the mechanisms and transparency from the application programmer point of view. Unfortunately, metaobject protocols (MOPs) available today are not satisfactory with respect to necessary features needed for implementing fault tolerance mechanisms. Previously, we proposed a specialised MOP based on Corba, well adapted for such mechanisms (M.-O. Killijian and J.C. Fabre, 1998). We deliberately focus on the implementation of this metaobject protocol using compile-time reflection and its use for implementing distributed fault tolerance. We present the design and the implementation of a fault-tolerant Corba system using this metaobject together with some preliminary experimental results. From the lessons learnt from this work, we briefly address the benefits of reflection in other layers of a system for dependability issues.

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

[2]  Jean-Charles Fabre,et al.  Using Compile-Time Reflection for Objects'State Capture , 1999, Reflection.

[3]  Shigeru Chiba,et al.  A metaobject protocol for fault-tolerant CORBA applications , 1998, Proceedings Seventeenth IEEE Symposium on Reliable Distributed Systems (Cat. No.98CB36281).

[4]  Chita R. Das,et al.  Issues in the design of a reflective library for checkpointing C++ objects , 1999, Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems.

[5]  Omg CORBA/IIOP 2.2 Specification , 1998 .

[6]  B. Ramkumar,et al.  Portable checkpointing for heterogeneous architectures , 1997, Proceedings of IEEE 27th International Symposium on Fault Tolerant Computing.

[7]  Priya Narasimhan,et al.  A fault tolerance framework for CORBA , 1999, Digest of Papers. Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing (Cat. No.99CB36352).

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

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

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

[11]  Takashi Masuda,et al.  Designing an Extensible Distributed Language with a Meta-Level Architecture , 1993, ECOOP.

[12]  Paulo Veríssimo,et al.  Reliable broadcast for fault-tolerance on local computer networks , 1990, Proceedings Ninth Symposium on Reliable Distributed Systems.

[13]  Rachid Guerraoui,et al.  The design of a CORBA group communication service , 1996, Proceedings 15th Symposium on Reliable Distributed Systems.

[14]  Pattie Maes,et al.  Meta-Level Architectures and Reflection , 1988 .

[15]  Ralph E. Johnson,et al.  Wrappers to the Rescue , 1998, ECOOP.

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