A Constraint-based Method to Compute Semantics of Channel-based Coordination Models

Reo is an exogenous channel-based coordination language that acts as "glue code" to tie together software components and services. The building blocks of Reo models are connectors that impose constraints on the data-flow in component or service-based architectures in terms of data synchronization, buffering, mutual exclusion, etc. Several semantic models have been introduced to formalize the behavior of Reo. These models differ in terms of expressiveness, computation complexity and purposes that they serve. Automated verification of data-aware and context dependent Reo compositions requires an efficient comprehensive semantic model. In this paper, we present a method and a tool for building formal automata-based semantics of Reo that unifies various aspects of existing semantics. We express the behavior of a Reo network as a mixed system of Boolean and numerical constraints constructed compositionally by conjuncting the assertions for its constituent parts. The solutions of this system are found with the help of off-the-shelf constraint solvers and are used to construct the constraint automaton with state memory that gives the sound and complete semantics of Reo with respect to existing models. Our approach is more efficient and scalable compared to the existing methods for generating formal semantics of Reo connectors.  

hosted by