The design of safety-critical applications must include redundancies aimed at Fault Tolerance purposes. An adaptable use of such redundancies can optimise resource utilisation; in case of faults, it can preserve fundamental services and allow a graceful degradation of the system. A programming notation, named FERT, has been recently introduced for the design of adaptable applications. With this notation, the designer of a safety-critical Real-Time application can specify alternative fault tolerance policies for each component of the application and obtain an adaptable run-time behaviour. This paper is meant as a contribution to this notation and to its possible implementation. Namely, it deals with the specification of a communication semantics (including failure semantics) and with execution support problems such as the definition of value of a computation and adaptive planning at run-time. Some related issues are also addressed as future work.
Read full abstract