Specifications and Proofs for Ensemble Layers
Jason Hickey5, Nancy Lynch6 and Robbert van Renesse5
| (5) |
Dept. of Computer Science, Cornell University, Cornell |
| (6) |
Laboratory for Computer Science, Massachusetts Institute of Technology, Massachusets |
Abstract
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.
Support for this research was provided by DARPA contract F30602-95-1-0047 (Cornell), and DARPA contract F19628-95-C-0118,
AFOSR contract F49620-97-1-0337, and NSF grants CCR-9804665 and CCR-9225124 (MIT).
References secured to subscribers.