Using I/O automata for developing distributed systems
Stephen J. Garland, Nancy Ann Lynch · 2000
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 efficient runnable code. 13.1 Introduction Distributed systems are required to provide increasingly powerful services, with increasingly strong guarantees of performance, fault-tolerance, and security. At the same time, the networks in which these systems run are growing larger and becoming less predictable. It is no wonder that distributed systems have become very complex. The best approach to managing the increased complexity involves organi...