SuperStabilizing protocols for dynamic distributed systems
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Formal Methods in System Design - Special issue on symmetry in automatic verification
Constraint satisfaction as a basis for designing nonmasking fault-tolerance
Journal of High Speed Networks
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
The local detection paradigm and its applications to self-stabilization
Theoretical Computer Science
Synthesis of concurrent systems with many similar processes
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Unified Modeling Language reference manual
The Unified Modeling Language reference manual
Synthesis of concurrent programs for an atomic read/write model of computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
IEEE Transactions on Software Engineering
Computing strongly connected components in a linear number of symbolic steps
SODA '03 Proceedings of the fourteenth annual ACM-SIAM symposium on Discrete algorithms
Automating the Addition of Fault-Tolerance
FTRTFT '00 Proceedings of the 6th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems
Self-stabilizing census with cut-through constraint
ICDCS '99 Workshop on Self-stabilizing Systems
Infinite Games and Verification (Extended Abstract of a Tutorial)
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
The Triumph and Tribulation of System Stabilization
WDAG '95 Proceedings of the 9th International Workshop on Distributed Algorithms
The Theory of Weak Stabilization
WSS '01 Proceedings of the 5th International Workshop on Self-Stabilizing Systems
Synthesizing Distributed Systems
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Synthesis of fault-tolerant concurrent programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scalable Self-Stabilization via Composition
ICDCS '04 Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS'04)
Self-stabilizing clock synchronization in the presence of Byzantine faults
Journal of the ACM (JACM)
Computations on distributed discrete-event systems
Computations on distributed discrete-event systems
Automatic synthesis of fault-tolerance
Automatic synthesis of fault-tolerance
Exploiting Symbolic Techniques in Automated Synthesis of Distributed Programs with Large State Space
ICDCS '07 Proceedings of the 27th International Conference on Distributed Computing Systems
FTSyn: a framework for automatic synthesis of fault-tolerance
International Journal on Software Tools for Technology Transfer (STTT)
Revising Distributed UNITY Programs Is NP-Complete
OPODIS '08 Proceedings of the 12th International Conference on Principles of Distributed Systems
Multicore Constraint-Based Automated Stabilization
SSS '09 Proceedings of the 11th International Symposium on Stabilization, Safety, and Security of Distributed Systems
Nash Equilibria in Stabilizing Systems
SSS '09 Proceedings of the 11th International Symposium on Stabilization, Safety, and Security of Distributed Systems
Symbolic synthesis of finite-state controllers for request-response specifications
CIAA'03 Proceedings of the 8th international conference on Implementation and application of automata
Robustness in the presence of liveness
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
CHARME'05 Proceedings of the 13 IFIP WG 10.5 international conference on Correct Hardware Design and Verification Methods
Hi-index | 0.00 |
Design and verification of Self-Stabilizing (SS) network protocols are difficult tasks in part because of the convergence property that requires an SS protocol to recover to a set of legitimate states from any state in its state space. Once an SS protocol reaches a legitimate state, it remains in the set of legitimate states as long as there are no faults, called the closure property. Distribution issues exacerbate the design complexity of SS protocols as processes should collaborate and take local actions that result in global convergence. Most existing design techniques are manual, and mainly focus on protocols whose global state can be corrected if the local states of all processes are corrected, called the locally correctable protocols. After manual design, an SS protocol has to be verified for closure and convergence. Previous work observes that verifying SS protocols is a harder problem than designing them as developers have to ensure the correctness of closure and convergence functionalities and their noninterference. An algorithmic method for the design of convergence generates protocols that are correct by construction, thereby eliminating the need for verification. In order to facilitate the design of SS protocols, this article presents a lightweight method for algorithmic addition of convergence to finite-state nonstabilizing protocols, including nonlocally correctable protocols. The proposed method enables the reuse of design efforts in the development of different self-stabilizing protocols. Moreover, for the first time (to the best of our knowledge), this article presents an algorithmic method for the addition of convergence to symmetric protocols that consist of structurally similar processes. The proposed approach is supported by a software tool that automatically adds convergence to nonstabilizing protocols. We have used the proposed method/tool to automatically generate several self-stabilizing protocols with up to 40 processes (and 340 states) in a few minutes on a regular PC. Surprisingly, our tool has synthesized both protocols that are the same as their manually designed versions as well as alternative solutions for well-known problems in the literature (e.g., Dijkstra’s token ring, maximal matching, graph coloring, agreement and leader election in a ring). Moreover, the proposed method has helped us detect a design flaw in a manually designed self-stabilizing protocol.