Abstract
We present a hybrid synthesis method for automatic addition of fault-tolerance to distributed programs. In particular, we automatically specify and add pre-synthesized fault-tolerance components to programs in the cases where existing heuristics fail to add fault-tolerance. Such addition of pre-synthesized components has the advantage of reusing pre-synthesized fault-tolerance components in the synthesis of different programs, and as a result, reusing the effort put in the synthesis of one program for the synthesis of another program. Our synthesis method is sound in that the synthesized fault-tolerant program satisfies its specification in the absence of faults, and provides desired level of fault-tolerance in the presence of faults. We illustrate our synthesis method by adding pre-synthesized components with linear topology to a token ring program that tolerates the corruption of all processes. Also, we have reused the same component in the synthesis of a fault-tolerant alternating bit protocol. Elsewhere, we have applied this method for adding presynthesized components with hierarchical topology.
This work was partially sponsored by NSF CAREER CCR-0092724, DARPA Grant OSURS01-C-1901, ONR Grant N00014-01-1-0744, NSF grant EIA-0130724, and a grant from Michigan State University.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Kulkarni, S.S., Arora, A.: Automating the addition of fault-tolerance. Formal Techniques in Real-Time and Fault-Tolerant Systems, 82 (2000)
Kulkarni, S.S., Arora, A., Chippada, A.: Polynomial time synthesis of Byzantine agreement. In: Symposium on Reliable Distributed Systems (2001)
Kulkarni, S.S., Ebnenasir, A.: The complexity of adding failsafe fault-tolerance. In: International Conference on Distributed Computing Systems, pp. 337–334 (2002)
Kulkarni, S.S., Ebnenasir, A.: Enhancing the fault-tolerance of nonmasking programs. In: International Conference on Distributed Computing Systems, pp. 441–450 (2003)
Kulkarni, S.S.: Component-based design of fault-tolerance. PhD thesis, Ohio State University (1999)
Ebnenasir, A., Kulkarni, S.S.: FTSyn: A framework for automatic synthesis of fault-tolerance, http://www.cse.msu.edu/~ebnenasi/research/tools/ftsyn.htm
Ebnenasir, A., Kulkarni, S.S.: Hierarchical presynthesized components for automatic addition of fault-tolerance: A case study. In: In the extended abstracts of the ACM workshop on the Specification and Verification of Component-Based Systems (SAVCBS), Newport Beach, California (2004)
Alpern, B., Schneider, F.B.: Defining liveness. Information Processing Letters 21, 181–185 (1985)
Arora, A., Gouda, M.G.: Closure and convergence: A foundation of faulttolerant computing. IEEE Transactions on Software Engineering 19(11), 1015–1027 (1993)
Arora, A., Kulkarni, S.S.: Detectors and correctors: A theory of fault-tolerance components. In: International Conference on Distributed Computing Systems, pp. 436–443 (May 1998)
Attie, P., Emerson, A.: Synthesis of concurrent programs for an atomic read/write model of computation. ACM TOPLAS (a preliminary version of this paper appeared in PODC96) 23(2) (March 2001)
Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1990)
Kulkarni, S.S., Ebnenasir, A.: Adding fault-tolerance using presynthesized components. Technical report MSU-CSE-03-28, Department of Computer Science, Michigan State University, East Lansing, Michigan, USA. A revised version is available at http://www.cse.msu.edu/~sandeep/auto_component_techreport.ps (2003)
Arora, A., Kulkarni, S.S.: Component based design of multi-tolerant systems. IEEE Transactions on Software Engineering (1998)
Zaremski, A.M., Wing, J.M.: Specification matching of software components. In: Proceedings of the 3 rd ACM SIGSOFT Symposium on the Foundations of Software Engineering (1995)
Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Communications of the ACM (1974)
Liu, Z., Joseph, M.: Transformations of programs for fault-tolerance. Formal Aspects of Computing (1992)
Tomlinson, A.I., Garg, V.K.: Detecting relational global predicates in distributed systems. In: Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging, San Diego, California, pp. 21–31 (May 1993)
Mittal, N.: Techniques for Analyzing Distributed Computations. PhD thesis, The University of Texas at Austin (2002)
Arora, A., Attie, P.C., Emerson, E.A.: Synthesis of fault-tolerant concurrent programs. In: Proceedings of the 17th ACM Symposium on Principles of Distributed Computing (PODC) (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kulkarni, S.S., Ebnenasir, A. (2005). Adding Fault-Tolerance Using Pre-synthesized Components. In: Dal Cin, M., Kaâniche, M., Pataricza, A. (eds) Dependable Computing - EDCC 5. EDCC 2005. Lecture Notes in Computer Science, vol 3463. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11408901_6
Download citation
DOI: https://doi.org/10.1007/11408901_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25723-3
Online ISBN: 978-3-540-32019-7
eBook Packages: Computer ScienceComputer Science (R0)