This project aims at producing an extensible web-based framework to specify and analyse systems of coordinated components. It will involve developing a server with a graphical web-based frontend, and the design of an extensible architecture with clear separations between the core model, the frontends, and the backends.
Synchronous dataflow coordination languages describe high-level and expressive communication patterns between concurrent objects. Reo is a visual synchronous coordination model that can be used to specify, analyse, and execute systems of orchestrated concurrent objects. The largest collection of tools to analyse, specify, and execute Reo systems is currently developed as an extensible plugin for Eclipse. This collection relies heavily on the data structures used within Eclipse, making it non-trivial to start contributing and to reuse existing algorithms. Furthermore, there is currently poor support for these tools.
A recent extension to Reo addresses its static nature - Reo connectors typically have a fixed set of ports and channels. This extension adds new mechanisms to express collections of similar connectors. E.g., a special merger with an arbitrary number of entries. A prototype tool that type-checks such families of connectors exists in github.com/joseproenca/parameterised-connectors, but it lacks a good (visual and interactive) tool support.
The goal of this project is to design and prototype a unifying and extensible framework for Reo based on web-tools, possibly including the following tasks.