Towards a Formal Specification of the Spread Group Communication System

Mark-Oliver Stehr, Carolyn Talcott, and Grit Denker (in collaboration with Yair Amir)

This work is supported by:
the DARPA FTN Project Composable Formal Models for High-Assurance Fault Tolerant Networks and
the ONR MURI Project CONTESSA.

Keywords: Group Communication System, Spread, Extended Virtual Synchrony Semantics, Failure Atomicity, Formal Specification, Secure Group Communication

The Spread group communication system (see Spread web page) emerged from the work on Transis and Totem and has been designed to cope with node failure and network partitions. To this end the semantics of extended virtual synchrony (also called failure atomicity) has been extended to deal with the case of network partitions. In addition, Spread provides different levels of service with different reliability and ordering gurantees: Messages can be reliable, fifo, causally ordered, totally ordered (also called agreed), or safe, where the later means that messages are only delivered if it is known that everybody in the group has actually received it. Stronger properties such as virtual synchrony and security are achieved at higher layers by Flush Spread and Secure Spread (see Secure Spread web page). The later is built upon the Cliques toolkit (see Cliques web page ) which we have specified as an independent component (see this link).

Our effort to develop a formal specification of Spread is based on the references below, the Spread source code, and discussions with the Spread team. An important goal is to obtain a mathematically satisfactory and conceise description that abstracts from implementation specific aspects and covers the most general behaviour that an application of Spread can observe. All this is done in a modular way so that different layers can be specified independently and composed at the specification level.

The current state of our specification is available below, but please note that it is a snapshot of ongoing work and still incomplete regarding various aspects.

In the CONTESSA project this specification is used as a basis for our work on Adaptive Group Communication.

Relevant References:

  1. Yair Amir: Replication Using Group Communication Over a Partitioned Network, Ph.D. thesis, Hebrew University of Jerusalem, 1995. Available here .
  2. Louise E. Moser, Yair Amir, P. Michael Melliar-Smith and Deborah A. Agarwal: Extended Virtual Synchrony The 14th IEEE International Conference on Distributed Computing Systems (IC-DCS), pages 56-65, June 1994. Available here .
  3. John Schultz: Partitionable Virtual Synchrony Using Extended Virtual Synchrony, Masters Thesis, Masters Thesis, Johns Hopkins University, 2001. Available here .
  4. Yair Amir and Jonathan Stanton: The Spread Wide Area Group Communication System, Technical Report CNDS-98-4. Available here .
  5. Y. Amir, Y. Kim, C. Nita-Rotaru, J. Schultz, J. Stanton, G. Tsudik: Secure Group Communication Using Robust Contributory Key Agreement. IEEE Transactions on Parallel and Distributed Systems archive, pp. 468 - 480, 15(5), IEEE Press, 2004.
  6. S. Gutierrez-Nolasco, N. Venkatasubramanian, M.-O. Stehr, and C. Talcott: Exploring Adaptability of Secure Group Communication using Formal Prototyping Techniques. In Proceedings of the 3rd Workshop on Reflective and Adaptive Middleware (RM2004). October 19, 2004, Toronto, Ontario, Canada. To appear in ACM Digital Library. Paper available in ps and pdf. Extended version available here.

Presentations:

  1. Formal Specification of Group Communication Middleware, Workshop on Context Sensitive Systems Assurance (Contessa'03), April 1, 2003, Philadelphia. Slides available here: ps pdf.
  2. Composable Formal Models for High-Assurance Fault Tolerance Networks, FTN PI Meeting, July 21-23, 2003, Honolulu, Hawaii. Slides available here: ps pdf.

The Formal Specification in Maude 2.0 (available here) can be found here.
This package contains the following files:

Supplementary documentation including proofs of GCS properties can be found here.
This package contains the following files: