Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
Exploiting virtual synchrony in distributed systems
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Compositional specification and verification of distributed systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
A framework for protocol composition in Horus
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
A new look at membership services (extended abstract)
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Building secure and reliable network applications
Building secure and reliable network applications
Specifying and using a partitionable group communication service
PODC '97 Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing
Building adaptive systems using ensemble
Software—Practice & Experience - Special issue on multiprocessor operating systems
Distributed Algorithms
System Support for Partition-Aware Network Applications
ICDCS '98 Proceedings of the The 18th International Conference on Distributed Computing Systems
The ensemble system
Verbalization of high-level formal proofs
AAAI '99/IAAI '99 Proceedings of the sixteenth national conference on Artificial intelligence and the eleventh Innovative applications of artificial intelligence conference innovative applications of artificial intelligence
Automated Fast-Track Reconfiguration of Group Communication Systems
TACAS '99 Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Proving Hybrid Protocols Correct
TPHOLs '01 Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics
Fault-Tolerant Distributed Theorem Proving
CADE-16 Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction
I/O Automaton Models and Proofs for Shared-Key Communication Systems
CSFW '99 Proceedings of the 12th IEEE workshop on Computer Security Foundations
Programming with Live Distributed Objects
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Multi-process systems analysis using event b: application to group communication systems
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Hi-index | 0.00 |
Ensemble is a widely used group communication system that supports distributed programming by providing precise guarantees for synchronization, message ordering, and message delivery. Ensemble eases the task of distributed-application programming, but as a result, ensuring the correctness of Ensemble itself is a difficult problem. In this paper we use I/O automata for formalizing, specifying, and verifying the Ensemble implementation. We focus specifically on message total ordering, a property that is commonly used to guarantee consistency within a process group. The systematic verification of this protocol led to the discovery of an error in the implementation.