FTSyn: A framework for automatic synthesis of fault-tolerance
Document Type
Article
Publication Date
10-2008
Department
Department of Computer Science
Abstract
In this paper, we present a software framework for adding fault-tolerance to existing finite-state programs. The input to our framework is a fault-intolerant program and a class of faults that perturbs the program. The output of our framework is a fault-tolerant version of the input program. Our framework provides (1) the first automated tool for the synthesis of fault-tolerant distributed programs, and (2) an extensible platform for researchers to develop a repository of heuristics that deal with the complexity of adding fault-tolerance to distributed programs. We also present a set of heuristics for polynomial-time addition of fault-tolerance to distributed programs. We have used this framework for automated synthesis of several fault-tolerant programs including a simplified version of an aircraft altitude switch, token ring, Byzantine agreement, and agreement in the presence of Byzantine and fail-stop faults. These examples illustrate that our framework can be used for synthesizing programs that tolerate different types of faults (process restarts, Byzantine and fail-stop) and programs that are subject to multiple faults (Byzantine and fail-stop) simultaneously. We have found our framework to be highly useful for pedagogical purposes, especially for teaching concepts of fault-tolerance, automatic program transformation, and the effect of heuristics.
Publication Title
International Journal on Software Tools for Technology Transfer
Recommended Citation
Ebnenasir, A.,
Kulkarni, S.,
&
Arora, A.
(2008).
FTSyn: A framework for automatic synthesis of fault-tolerance.
International Journal on Software Tools for Technology Transfer,
10(5), 455-471.
http://doi.org/10.1007/s10009-008-0083-0
Retrieved from: https://digitalcommons.mtu.edu/michigantech-p/4786