Treffer: Fault Tolerance - Concepts and Implementation Issues.
Weitere Informationen
This tutorial presents an overview of the techniques that can be used by developers to produce software that can tolerate design faults and faults of the surrounding environment, and it offers an introduction on how such techniques can be implemented in a standard programming language. After reviewing the basic terms and concepts of fault tolerance, the most well-known fault-tolerance techniques exploiting software-, information- and time redundancy are presented, classified according to the kind of concurrency they support. The tutorial then concentrates on a specific technique for achieving fault tolerance using backward error recovery: transactions. Transactions group together a set of operations and give them the so-called ACID properties: Atomicity, Consistency, Isolation and Durability. After presenting different transaction models, pessimistic and optimistic concurrency control, and different ways of performing crash recovery are reviewed. Finally, the design of an object-oriented framework that provides support for open multithreaded transactions is outlined. The framework offers different interfaces for application programmers: a procedural, an object-based, an object-oriented and an aspect-oriented one. The interfaces are presented in detail, and their advantages and disadvantages are analyzed. [ABSTRACT FROM AUTHOR]