A repository of Reo Connectors

The animations on this web site provide insight into the behavior of Reo connector circuits. For more information about Reo please go to the main Reo website.

Reo is an exogenous coordination language based on a calculus of connector composition. In Reo, complex coordinators, called connectors, are compositionally built out of simpler ones. Reo connectors resemble electronic circuits. The simplest (atomic) connectors in Reo consist of a set of distributed mobile channels with well-defined behavior supplied by users. A Reo connector circuit constitutes an explicit definition of a concrete (coordination/interaction/concurrency) protocol. The semantics of a Reo connector is independent of that of the specific entities that it engages in an application to collaborate and communicate through that connector. As such, Reo offers an environment for compositional construction of protocols.

Reo can be used in parallel or distributed environments as a language for coordination of concurrent processes, or as a "glue language" for compositional construction of connectors that orchestrate component instances in a component-based system. Reo connectors are dynamically reconfigurable and specifically cater to the requirements of distributed systems composed of heterogeneous mobile black-box components.

A concurrent application in Reo contains independent active entities, written in different languages. These active entities do not directly communicate with or even know each other. Each can communicate only with its environment, through normal I/O of passive data. Construction of a concurrent application in Reo consists of composing a number of these active entities together with connectors that exogenously coordinate the interactions among them, without the knowledge of those entities.

In the formal connector calculus model that underlies Reo, every connector denotes a concrete interaction (protocol). Simple composition rules in Reo allow construction of arbitrarily complex protocols out of a handful of primitive connectors, called channels. The formal semantics of Reo exists in various semantic models, each serving a different purpose, e.g., correctness proofs, reasoning about various properties of connectors, (centralized and distributed) implementation, etc. Based on such formal models, the expressive high-level graphical language of Reo encourages modular definition of arbitrarily complex coordination protocols, using a small set of simple primitive interactions. Reo's surprising expressiveness arises out of its unique property of allowing arbitrary combinations of exclusion, synchrony, and asynchrony in a single coherent compositional model.