Unreliable failure detectors for reliable distributed systems
Journal of the ACM (JACM)
Programming languages and systems for prototyping concurrent applications
ACM Computing Surveys (CSUR)
Distributed Algorithms
Guest Editors' Introduction: Model-Driven Development
IEEE Software
Automatic Verification and Discovery of Byzantine Consensus Protocols
DSN '07 Proceedings of the 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks
The Chubby lock service for loosely-coupled distributed systems
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Principles of the Spin Model Checker
Principles of the Spin Model Checker
A fault tolerance bisimulation proof for consensus
ESOP'07 Proceedings of the 16th European conference on Programming
Hi-index | 0.00 |
We examine the use of formal model-driven development for creation and improvement of distributed algorithms. We use the integrated modeling and verification tool UPPAAL as our supporting tool. Instead of the traditional design, code and test-cycles known from agile paradigms, we employ formal model, verification and correction-cycles. The success of this approach is demonstrated on a distributed agreement algorithm from 1996 by Chandra and Toueg. We improve the number of communication rounds needed in the best-case from n to 2 where n is the number of agents. We end the paper with a correctness argument for systems with n agents. Formal model-driven development thus seems to be a fruitful approach for development of distributed algorithms.