A Fault-tolerance Linguistic Structure for Distributed Applications
  The structures for the expression of fault-tolerance provisions into the application software are the central topic of this dissertation. Structuring techniques provide means to control complexity, the latter being a relevant factor for the introduction of design faults. This fact and the ever increasing complexity of today's distributed software justify the need for simple, coherent, and effective structures for the expression of fault-tolerance in the application software. A first contribution of this dissertation is the definition of a base of structural attributes with which application-level fault-tolerance structures can be qualitatively assessed and compared with each other and with respect to the above mentioned need. This result is then used to provide an elaborated survey of the state-of-the-art of software fault-tolerance structures. The key contribution of this work is a novel structuring technique for the expression of the fault-tolerance design concerns in the application layer of those distributed software systems that are characterized by soft real-time requirements and with a number of processing nodes known at compile-time. The main thesis of this dissertation is that this new structuring technique is capable of exhibiting satisfactory values of the structural attributes in the domain of soft real-time, distributed and parallel applications. Following this novel approach, beside the conventional programming language addressing the functional design concerns, a special-purpose linguistic structure (the so-called "recovery language") is available to address error recovery and reconfiguration. This recovery language comes into play as soon as an error is detected by an underlying error detection layer, or when some erroneous condition is signaled by the application processes. 
Vincenzo De Florio
cs.DC