ReoLive: Analysing Connectors in Your Browser

  • Rúben Cruz
  • José ProençaEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11176)


Connectors describe how to combine independent components by restricting the possible interactions between their interfaces. In this work, connectors are specified using an existing calculus of connectors for Reo connectors. Currently there are no tools to automatically analyse these connectors, other than a type-checker for a embedded domain specific language. A collection of tools for different variations of Reo connectors exists, but most use a heavy Eclipse-based framework that is not actively supported.

We propose a set of web-based tools for analysing connectors—named ReoLive—requiring only an offline Internet browser with JavaScript support, which also supports a client-server architecture for more complex operations. We also show that the analysis included in ReoLive are correct, by formalising the encoding of the connector calculus into Port Automata and into mCRL2 programs. We include extensions that generate such automata, mCRL2 processes, and graphical representations of instances of connectors, developed in the Scala language and compiled into JavaScript. The resulting framework is publicly available, and can be easily experimented without any installation or a running server.



This work is financed by the ERDF – European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation – COMPETE 2020 Programme and by National Funds through the Portuguese funding agency, FCT – Fundação para a Ciência e a Tecnologia, within projects POCI-01-0145-FEDER-016692 (first author) and POCI-01-0145-FEDER-029946 (second author).


  1. 1.
    Arbab, F.: Reo: a channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14(3), 329–366 (2004)MathSciNetCrossRefGoogle Scholar
  2. 2.
    Baier, C., Sirjani, M., Arbab, F., Rutten, J.J.M.M.: Modeling component connectors in Reo by constraint automata. Sci. Comput. Program. 61(2), 75–113 (2006)MathSciNetCrossRefGoogle Scholar
  3. 3.
    ter Beek, M.H., de Vink, E.P.: Using mCRL2 for the analysis of software product lines. In: Proceedings of the 2nd FME Workshop on Formal Methods in Software Engineering, FormaliSE 2014, pp. 31–37. ACM, New York (2014)Google Scholar
  4. 4.
    Gadducci, F., Montanari, U.: The tile model. In: Proof, Language, and Interaction, pp. 133–166. MIT Press (2000)Google Scholar
  5. 5.
    Groote, J.F., Mathijssen, A., Reniers, M., Usenko, Y., van Weerdenburg, M.: The formal specification language mCRL2. In: Methods for Modelling Software Systems (MMOSS), Dagstuhl Seminar Proceedings (2007)Google Scholar
  6. 6.
    Koehler, C., Clarke, D.: Decomposing port automata. In: Proceedings of SAC 2009, pp. 1369–1373. ACM, New York (2009)Google Scholar
  7. 7.
    Kokash, N., Krause, C., de Vink, E.P.: Reo + mCRL2: a framework for model-checking dataflow in service compositions. FAC 24(2), 187–216 (2012)MathSciNetzbMATHGoogle Scholar
  8. 8.
    MacLane, S.: Categorical algebra. Bull. Am. Math. Soc. 71(1), 40–106 (1965)MathSciNetCrossRefGoogle Scholar
  9. 9.
    Proença, J., Clarke, D.: Typed connector families and their semantics. Sci. Comput. Program. 146, 28–49 (2017)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.HASLabINESC TECBragaPortugal
  2. 2.Dep. InformaticsUniversidade do MinhoBragaPortugal

Personalised recommendations