Implementing Software-Fault Tolerance in C++ and Open C++: An Object-Oriented and Reflective Approach

This paper reports our experience with the use of the C++ language and Open C++ (a reflective version of C++) to implement reusable, dependable control structures that support the prevision of software-fault tolerance in the application layer. We first implement the support using an object library approach and then re-design it using a reflective one. We demonstrate through a realistic experiment why reflection and metaobject protocols are particularly suitable for the development of fault-tolerant programs.

[1]  Cecília M. F. Rubira,et al.  Fault tolerance in concurrent object-oriented software through coordinated error recovery , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[2]  Jean-Charles Fabre,et al.  Implementing fault tolerant applications using reflective object-oriented programming , 1995 .

[3]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

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

[5]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

[6]  Algirdas Avizienis,et al.  The N-Version Approach to Fault-Tolerant Software , 1985, IEEE Transactions on Software Engineering.

[7]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[8]  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.

[9]  Brian Randell,et al.  Software fault tolerance: t/(n-1)-variant programming , 1992 .

[10]  J. Xu,et al.  Toward an object-oriented approach to software fault tolerance , 1994, Proceedings of IEEE Workshop on Fault-Tolerant Parallel and Distributed Systems.

[11]  Jie Xu,et al.  Dynamic Adjustment of Dependability and Efficiency in Fault-Tolerant Software , 1995 .

[12]  Yennun Huang,et al.  Software Implemented Fault Tolerance Technologies and Experience , 1993, FTCS.

[13]  Michael R. Lyu Software Fault Tolerance , 1995 .

[14]  Yennun Huang,et al.  Software Fault Tolerance in the Application Layer , 1995 .

[15]  Santosh K. Shrivastava,et al.  An overview of the Arjuna distributed programming system , 1991, IEEE Software.

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