Using I/O automata for developing distributed systems

This paper describes a new experimental programming language, IOA, for modeling and implementing distributed systems, plus designs for a set of tools to support IOA programming. The language and tools are based on the I/O automaton model for reactive systems, which has been used extensively for research on distributed algorithms. The language supports structured modeling of distributed systems using shared-action composition and levels of abstraction. The tools are intended to support system design, several kinds of analysis, and generation of eÆcient runnable code.

[1]  Nancy A. Lynch,et al.  Implementing sequentially consistent shared objects using broadcast and point-to-point communication , 1995, Proceedings of 15th International Conference on Distributed Computing Systems.

[2]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[3]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[4]  Nancy A. Lynch,et al.  A dynamic view-oriented group communication service , 1998, PODC '98.

[5]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[6]  Anna E. Chefter A simulator for the IOA language , 1998 .

[7]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[8]  Nancy A. Lynch,et al.  Specifications and Proofs for Ensemble Layers , 1999, TACAS.

[9]  Nancy A. Lynch,et al.  Computer-Assisted Verification of an Algorithm for Concurrent Timestamps , 1996, FORTE.

[10]  Kenneth J. Goldman,et al.  Distributed algorithm simulation using input/output automata , 1990 .

[11]  Robbert van Renesse,et al.  Optimizing layered communication protocols , 1997, Proceedings. The Sixth IEEE International Symposium on High Performance Distributed Computing (Cat. No.97TB100183).

[12]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[13]  Nancy A. Lynch,et al.  Forward and backward simulations, part II: timing-based systems , 1993 .

[14]  Nancy A. Lynch,et al.  IOA: A Language for Specifying, Programming, and Validating Distributed Systems Draft , 1997 .

[15]  Robbert van Renesse,et al.  Horus: a flexible group communication system , 1996, CACM.

[16]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[17]  Stephen J. Garland,et al.  A Guide to LP, The Larch Prover , 1991 .

[18]  Nancy A. Lynch,et al.  Computer-Assisted Simulation Proofs , 1993, CAV.

[19]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[20]  Nancy A. Lynch,et al.  Specifying and using a partitionable group communication service , 2001, TOCS.

[21]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[22]  I. G. BONNER CLAPPISON Editor , 1960, The Electric Power Engineering Handbook - Five Volume Set.

[23]  Mark Anthony Shawn Smith Formal verification of TCP and T/TCP , 1997 .

[24]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[25]  Steve Sims,et al.  TAME: A PVS Interface to Simplify Proofs for Automata Models , 1998 .

[26]  F. Vaandrager Forward and Backward Simulations Part I : Untimed Systems , 1993 .