40 Years of Computing at Newcastle

Department Technical Report Series No. 517

Specification and Verification of a Self-Timed Token Ring Protocol

J-C. Fabre
V. Nicomette
T. Perenou
R.J. Stroud
Z. Wu

University of Newcastle upon Tyne. 1995.

Abstract

This paper shows how reflection and object-oriented programming can be used to ease the implementation of classical fault tolerance mechanisms in distributed applications. When the underlying runtime system does not provide fault tolerance transparently, classical approaches to implementing fault tolerance mechanisms often imply mixing functional programming with non-functional programming (e.g., error processing mechanisms). This means that "normal" programmers must be aware of which fault tolerance mechanism is used and how to use it. An alternative approach based on reflective object-oriented programming is presented. The use of reflection can help to improve the transparency of fault tolerance mechanisms to the programmer and more generally provides a clearer separation between functional and non-functional programming. The implementation of some classical replication techniques using a reflective approach is presented in detail and illustrated by several examples, which have been prototyped on a network of Unix workstations. Lessons learnt from our experiments are drawn and future work is discussed.


Department Technical Report Series - 1995
Department Technical Report Series Index
Contents Page - 40 Years of Computing at Newcastle
Technical Report Abstract No. 517, 30 June 1997