Puff, The Magic Protocol

  • Farhad Arbab

Abstract

Traditional models of concurrency resort to peculiarly indirect means to express interaction and study its properties. Formalisms such as process algebras/calculi, concurrent objects, actors, agents, shared memory, message passing, etc., all are primarily action-based models that provide constructs for the direct specification of things that interact, rather than a direct specification of interaction (protocols). Consequently, interaction in these formalisms becomes a derived or secondary concept whose properties can be studied only indirectly, as the side-effects of the (intended or coincidental) couplings or clashes of the actions whose compositions comprise a model.

Treating interaction as an explicit first-class concept, complete with its own composition operators, allows to specify more complex interaction protocols by combining simpler, and eventually primitive, protocols. Reo [20,11,12,6] serves as a premier example of such an interaction-based model of concurrency. In this paper, we describe Reo and its support tools. We show how exogenous coordination in Reo reflects an interaction-centric model of concurrency where an interaction (protocol) consists of nothing but a relational constraint on communication actions. In this setting, interaction protocols become explicit, concrete, tangible (software) constructs that can be specified, verified, composed, and reused, independently of the actors that they may engage in disparate applications.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
  2. 2.
  3. 3.
    Extensible Coordination Tools home page, http://reo.project.cwi.nl/cgi-bin/trac.cgi/reo/wiki/Tools
  4. 4.
    mCRL2 home page, http://www.mcrl2.org
  5. 5.
  6. 6.
  7. 7.
    Vereofy home page, http://www.vereofy.de/
  8. 8.
    Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press (1986)Google Scholar
  9. 9.
    Aichernig, B.K., Arbab, F., Astefanoaei, L., de Boer, F.S., Meng, S., Rutten, J.J.M.M.: Fault-based test case generation for component connectors. In: Chin, W.-N., Qin, S. (eds.) TASE, pp. 147–154. IEEE Computer Society (2009)Google Scholar
  10. 10.
    Apt, K.: Principles of Constraint Programming. Cambridge University Press, Cambridge (2003)Google Scholar
  11. 11.
    Arbab, F.: Reo: a channel-based coordination model for component composition. Mathematical. Structures in Comp. Sci. 14(3), 329–366 (2004)Google Scholar
  12. 12.
    Arbab, F.: Abstract Behavior Types: a foundation model for components and their composition. Sci. Comput. Program. 55(1-3), 3–52 (2005)Google Scholar
  13. 13.
    Arbab, F., Aştefănoaei, L., de Boer, F.S., Dastani, M.M., Meyer, J.-J., Tinnermeier, N.: Reo Connectors as Coordination Artifacts in 2APL Systems. In: Bui, T.D., Ho, T.V., Ha, Q.T. (eds.) PRIMA 2008. LNCS (LNAI), vol. 5357, pp. 42–53. Springer, Heidelberg (2008)Google Scholar
  14. 14.
    Arbab, F., Baier, C., de Boer, F.S., Rutten, J.J.M.M.: Models and temporal logical specifications for timed component connectors. Software and System Modeling 6(1), 59–82 (2007)Google Scholar
  15. 15.
    Arbab, F., Bruni, R., Clarke, D., Lanese, I., Montanari, U.: Tiles for Reo. In: Corradini, A., Montanari, U. (eds.) WADT 2008. LNCS, vol. 5486, pp. 37–55. Springer, Heidelberg (2009)Google Scholar
  16. 16.
    Arbab, F., Chothia, T., Meng, S., Moon, Y.-J.: Component connectors with QoS guarantees. In: Murphy, A.L., Vitek, J. (eds.) COORDINATION 2007. LNCS, vol. 4467, pp. 286–304. Springer, Heidelberg (2007)Google Scholar
  17. 17.
    Arbab, F., Chothia, T., van der Mei, R., Meng, S., Moon, Y.-J., Verhoef, C.: From coordination to stochastic models of QoS. In: Field, Vasconcelos (eds.) [45], pp. 268–287Google Scholar
  18. 18.
    Arbab, F., Koehler, C., Maraikar, Z., Moon, Y.-J., Proença, J.: Modeling, testing and executing Reo connectors with the Eclipse Coordination Tools. Tool demo session at FACS 2008 (2008)Google Scholar
  19. 19.
    Arbab, F., Kokash, N., Meng, S.: Towards using Reo for compliance-aware business process modeling. In: Margaria, T., Steffen, B. (eds.) ISoLA. CCIS, vol. 17, pp. 108–123. Springer, Heidelberg (2008)Google Scholar
  20. 20.
    Arbab, F., Mavaddat, F.: Coordination Through Channel Composition. In: Arbab, F., Talcott, C. (eds.) COORDINATION 2002. LNCS, vol. 2315, pp. 22–39. Springer, Heidelberg (2002)Google Scholar
  21. 21.
    Arbab, F., Meng, S.: Synthesis of Connectors From Scenario-Based Interaction Specifications. In: Chaudron, M.R.V., Szyperski, C.A., Reussner, R. (eds.) CBSE 2008. LNCS, vol. 5282, pp. 114–129. Springer, Heidelberg (2008)Google Scholar
  22. 22.
    Arbab, F., Meng, S., Baier, C.: Synthesis of Reo circuits from scenario-based specifications. Electr. Notes Theor. Comput. Sci. 229(2), 21–41 (2009)Google Scholar
  23. 23.
    Arbab, F., Meng, S., Moon, Y.-J., Kwiatkowska, M.Z., Qu, H.: Reo2MC: a tool chain for performance analysis of coordination models. In: van Vliet, H., Issarny, V. (eds.) ESEC/SIGSOFT FSE, pp. 287–288. ACM (2009)Google Scholar
  24. 24.
    Arbab, F., Rutten, J.J.M.M.: A Coinductive Calculus of Component Connectors. In: Wirsing, M., Pattinson, D., Hennicker, R. (eds.) WADT 2003. LNCS, vol. 2755, pp. 34–55. Springer, Heidelberg (2003)Google Scholar
  25. 25.
    Baeten, J.C.M., Weijland, W.P.: Process Algebra. Cambridge University Press (1990)Google Scholar
  26. 26.
    Baier, C.: Probabilistic models for Reo connector circuits. Journal of Universal Computer Science 11(10), 1718–1748 (2005)Google Scholar
  27. 27.
    Baier, C., Blechmann, T., Klein, J., Klüppelholz, S.: Formal Verification for Components and Connectors. In: de Boer, F.S., Bonsangue, M.M., Madelaine, E. (eds.) FMCO 2008. LNCS, vol. 5751, pp. 82–101. Springer, Heidelberg (2009)Google Scholar
  28. 28.
    Baier, C., Blechmann, T., Klein, J., Klüppelholz, S.: A uniform framework for modeling and verifying components and connectors. In: Field, Vasconcelos (eds.) [45], pp. 247–267Google Scholar
  29. 29.
    Baier, C., Blechmann, T., Klein, J., Klüppelholz, S., Leister, W.: Design and Verification of Systems with Exogenous Coordination Using Vereofy. In: Margaria, T., Steffen, B. (eds.) ISoLA 2010. LNCS, vol. 6416, pp. 97–111. Springer, Heidelberg (2010)Google Scholar
  30. 30.
    Baier, C., Klein, J., Klüppelholz, S.: Modeling and Verification of Components and Connectors. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 114–147. Springer, Heidelberg (2011)Google Scholar
  31. 31.
    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)Google Scholar
  32. 32.
    Baier, C., Wolf, V.: Stochastic Reasoning About Channel-Based Component Connectors. In: Ciancarini, P., Wiklicky, H. (eds.) COORDINATION 2006. LNCS, vol. 4038, pp. 1–15. Springer, Heidelberg (2006)Google Scholar
  33. 33.
    Bergstra, J.A., Klop, J.W.: Process algebra for synchronous communication. Information and Control 60, 109–137 (1984)Google Scholar
  34. 34.
    Blechmann, T., Baier, C.: Checking equivalence for Reo networks. Electr. Notes Theor. Comput. Sci. 215, 209–226 (2008)Google Scholar
  35. 35.
    Bonsangue, M.M., Clarke, D., Silva, A.: Automata for context-dependent connectors. In: Field, Vasconcelos (eds.) [45], pp. 184–203Google Scholar
  36. 36.
    Bonsangue, M.M., Izadi, M.: Automata based model checking for Reo connectors. In: Arbab, F., Sirjani, M. (eds.) FSEN 2009. LNCS, vol. 5961, pp. 260–275. Springer, Heidelberg (2010)Google Scholar
  37. 37.
    Changizi, B., Kokash, N., Arbab, F.: A unified toolset for business process model formalization. In: Proc. of the 7th International Workshop on Formal Engineering approaches to Software Components and Architectures, FESCA 2010 (2010); satellite event of ETAPSGoogle Scholar
  38. 38.
    Clarke, D.: Coordination: Reo, Nets, and Logic. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2007. LNCS, vol. 5382, pp. 226–256. Springer, Heidelberg (2008)Google Scholar
  39. 39.
    Clarke, D.: A basic logic for reasoning about connector reconfiguration. Fundam. Inform. 82(4), 361–390 (2008)Google Scholar
  40. 40.
    Clarke, D., Costa, D., Arbab, F.: Modelling Coordination in Biological Systems. In: Margaria, T., Steffen, B. (eds.) ISoLA 2004. LNCS, vol. 4313, pp. 9–25. Springer, Heidelberg (2006)Google Scholar
  41. 41.
    Clarke, D., Costa, D., Arbab, F.: Connector colouring I: Synchronisation and context dependency. Sci. Comput. Program. 66(3), 205–225 (2007)Google Scholar
  42. 42.
    Clarke, D., Proença, J., Lazovik, A., Arbab, F.: Deconstructing Reo. Electr. Notes Theor. Comput. Sci. 229(2), 43–58 (2009)Google Scholar
  43. 43.
    Clarke, D., Proença, J., Lazovik, A., Arbab, F.: Channel-based coordination via constraint satisfaction. Sci. Comput. Program. 76(8), 681–710 (2011)Google Scholar
  44. 44.
    Costa, D.: Formal Models for Context Dependent Connectors for Distributed Software Components and Services. PhD thesis, Vrije Universiteit Amsterdam (2010), http://dare.ubvu.vu.nl//handle/1871/16380
  45. 45.
    Field, J., Vasconcelos, V.T. (eds.): COORDINATION 2009. LNCS, vol. 5521, pp. 225–246. Springer, Heidelberg (2009)Google Scholar
  46. 46.
    Fokkink, W.: Introduction to Process Algebra. Texts in Theoretical Computer Science, An EATCS Series. Springer, Heidelberg (1999)Google Scholar
  47. 47.
    Gadducci, F., Montanari, U.: The tile model. In: Plotkin, G.D., Stirling, C., Tofte, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner, pp. 133–166. MIT Press, Boston (2000)Google Scholar
  48. 48.
    Grabe, I., Jaghoori, M.M., Aichernig, B.K., Baier, C., Blechmann, T., de Boer, F.S., Griesmayer, A., Johnsen, E.B., Klein, J., Klüppelholz, S., Kyas, M., Leister, W., Schlatte, R., Stam, A., Steffen, M., Tschirner, S., Xuedong, L., Yi, W.: Credo methodology: Modeling and analyzing a peer-to-peer system in credo. Electr. Notes Theor. Comput. Sci. 266, 33–48 (2010)Google Scholar
  49. 49.
    Groote, J.F., Mathijssen, A., Reniers, M.A., Usenko, Y.S., van Weerdenburg, M.: The formal specification language mCRL2. In: Brinksma, E., Harel, D., Mader, A., Stevens, P., Wieringa, R. (eds.) MMOSS. Dagstuhl Seminar Proceedings, vol. 06351. Internationales Begegnungs- und Forschungszentrum fuer Informatik (IBFI), Schloss Dagstuhl (2006)Google Scholar
  50. 50.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall (1985)Google Scholar
  51. 51.
    Hoare, C.A.R., Jifeng, H.: Unifying Theories of Programming. Prentice Hall, London (1998)Google Scholar
  52. 52.
    Izadi, M., Bonsangue, M.M., Clarke, D.: Modeling component connectors: Synchronisation and context-dependency. In: Cerone, A., Gruner, S. (eds.) SEFM, pp. 303–312. IEEE Computer Society (2008)Google Scholar
  53. 53.
    Izadi, M., Bonsangue, M.M., Clarke, D.: Büchi automata for modeling component connectors. Software and System Modeling 10(2), 183–200 (2011)Google Scholar
  54. 54.
    Izadi, M., Movaghar, A.: Failure-based equivalence of constraint automata. Int. J. Comput. Math. 87(11), 2426–2443 (2010)Google Scholar
  55. 55.
    Jongmans, S.-S.T.Q., Arbab, F.: Correlating formal semantic models of Reo connectors: Connector coloring and constraint automata. In: Silva, A., Bliudze, S., Bruni, R., Carbone, M. (eds.) ICE. EPTCS, vol. 59, pp. 84–103 (2011)Google Scholar
  56. 56.
    Jongmans, S.-S.T.Q., Krause, C., Arbab, F.: Encoding context-sensitivity in Reo into non-context-sensitive semantic models. In: Meuter, Roman (eds.) [82], pp. 31–48Google Scholar
  57. 57.
    Kanters, O.: QoS analysis by simulation in Reo (2010)Google Scholar
  58. 58.
    Kemper, S.: SAT-based Verification for Timed Component Connectors. Electr. Notes Theor. Comput. Sci. 255, 103–118 (2009)Google Scholar
  59. 59.
    Kemper, S.: Compositional Construction of Real-Time Dataflow Networks. In: Clarke, D., Agha, G. (eds.) COORDINATION 2010. LNCS, vol. 6116, pp. 92–106. Springer, Heidelberg (2010)Google Scholar
  60. 60.
    Kitchin, D., Quark, A., Cook, W.R., Misra, J.: The Orc Programming Language. In: Lee, D., Lopes, A., Poetzsch-Heffter, A. (eds.) FMOODS 2009. LNCS, vol. 5522, pp. 1–25. Springer, Heidelberg (2009)Google Scholar
  61. 61.
    Klein, J., Klüppelholz, S., Stam, A., Baier, C.: Hierarchical Modeling and Formal Verification. An Industrial Case Study Using Reo and Vereofy. In: Salaün, G., Schätz, B. (eds.) FMICS 2011. LNCS, vol. 6959, pp. 228–243. Springer, Heidelberg (2011)Google Scholar
  62. 62.
    Klüppelholz, S., Baier, C.: Symbolic model checking for channel-based component connectors. Electr. Notes Theor. Comput. Sci. 175(2), 19–37 (2007)Google Scholar
  63. 63.
    Koehler, C., Arbab, F., de Vink, E.P.: Reconfiguring Distributed Reo Connectors. In: Corradini, A., Montanari, U. (eds.) WADT 2008. LNCS, vol. 5486, pp. 221–235. Springer, Heidelberg (2009)Google Scholar
  64. 64.
    Koehler, C., Costa, D., Proença, J., Arbab, F.: Reconfiguration of Reo connectors triggered by dataflow. In: Ermel, C., Heckel, R., de Lara, J. (eds.) Proceedings of the 7th International Workshop on Graph Transformation and Visual Modeling Techniques (GT-VMT 2008), vol. 10, pp. 1–13 (2008); Home Page, http://www.easst.org/eceasst/, ECEASST ISSN 1863-2122
  65. 65.
    Koehler, C., Lazovik, A., Arbab, F.: ReoService: Coordination modeling tool. In: Krämer, et al. (eds.) [73], pp. 625–626Google Scholar
  66. 66.
    Koehler, C., Lazovik, A., Arbab, F.: ReoService: Coordination Modeling Tool. In: Krämer, B.J., Lin, K.-J., Narasimhan, P. (eds.) ICSOC 2007. LNCS, vol. 4749, pp. 625–626. Springer, Heidelberg (2007)Google Scholar
  67. 67.
    Kokash, N., Krause, C., de Vink, E.P.: Data-aware design and verification of service compositions with Reo and mCRL2. In: SAC 2010: Proc. of the 2010 ACM Symposium on Applied Computing, pp. 2406–2413. ACM, New York (2010)Google Scholar
  68. 68.
    Kokash, N., Arbab, F.: Formal behavioral modeling and compliance analysis for service-oriented systems. In: de Boer, F.S., Bonsangue, M.M., Madelaine, E. (eds.) FMCO 2008. LNCS, vol. 5751, pp. 21–41. Springer, Heidelberg (2009)Google Scholar
  69. 69.
    Kokash, N., Arbab, F.: Applying Reo to service coordination in long-running business transactions. In: Shin, S.Y., Ossowski, S. (eds.) SAC, pp. 1381–1382. ACM (2009)Google Scholar
  70. 70.
    Kokash, N., Arbab, F., Changizi, B., Makhnist, L.: Input-output conformance testing for channel-based service connectors. In: Aceto, L., Mousavi, M.R. (eds.) PACO. EPTCS, vol. 60, pp. 19–35 (2011)Google Scholar
  71. 71.
    Kokash, N., Krause, C., de Vink, E.P.: Verification of Context-Dependent Channel-Based Service Models. In: de Boer, F.S., Bonsangue, M.M., Hallerstede, S., Leuschel, M. (eds.) FMCO 2009. LNCS, vol. 6286, pp. 21–40. Springer, Heidelberg (2010)Google Scholar
  72. 72.
    Kokash, N., Krause, C., de Vink, E.P.: Time and data-aware analysis of graphical service models in Reo. In: Fiadeiro, J.L., Gnesi, S., Maggiolo-Schettini, A. (eds.) SEFM, pp. 125–134. IEEE Computer Society (2010)Google Scholar
  73. 73.
    Krämer, B.J., Lin, K.-J., Narasimhan, P. (eds.): ICSOC 2007. LNCS, vol. 4749. Springer, Heidelberg (2007)Google Scholar
  74. 74.
    Krause, C.: Integrated structure and semantics for Reo connectors and Petri nets. In: ICE 2009: Proc. 2nd Interaction and Concurrency Experience Workshop. Electronic Proceedings in Theoretical Computer Science, vol. 12, p. 57 (2009)Google Scholar
  75. 75.
    Krause, C.: Reconfigurable Component Connectors. PhD thesis, Leiden University (2011), https://openaccess.leidenuniv.nl/handle/1887/17718
  76. 76.
    Krause, C., Maraikar, Z., Lazovik, A., Arbab, F.: Modeling dynamic reconfigurations in Reo using high-level replacement systems. Sci. Comput. Program. 76(1), 23–36 (2011)Google Scholar
  77. 77.
    Lazovik, A., Arbab, F.: Using Reo for service coordination. In: Krämer, et al. (eds.) [73], pp. 398–403Google Scholar
  78. 78.
    Maraikar, Z., Lazovik, A.: Reforming mashups. In: Proceedings of the 3rd European Young Researchers Workshop on Service Oriented Computing (YR-SOC 2008). Imperial College London (June 2008)Google Scholar
  79. 79.
    Meng, S., Arbab, F.: On Resource-Sensitive Timed Component Connectors. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468, pp. 301–316. Springer, Heidelberg (2007)Google Scholar
  80. 80.
    Meng, S., Arbab, F.: QoS-driven service selection and composition. In: Billington, J., Duan, Z., Koutny, M. (eds.) ACSD, pp. 160–169. IEEE (2008)Google Scholar
  81. 81.
    Meng, S., Arbab, F.: Connectors as designs. Electr. Notes Theor. Comput. Sci. 255, 119–135 (2009)Google Scholar
  82. 82.
    De Meuter, W., Roman, G.-C. (eds.): COORDINATION 2011. LNCS, vol. 6721. Springer, Heidelberg (2011)Google Scholar
  83. 83.
    Milner, R.: A Calculus of Communicating Systems. LNCS, vol. 92. Springer, Heidelberg (1980)Google Scholar
  84. 84.
    Milner, R.: Elements of interaction - turing award lecture. Commun. ACM 36(1), 78–89 (1993)Google Scholar
  85. 85.
    Misra, J., Cook, W.R.: Computation orchestration. Software and System Modeling 6(1), 83–110 (2007)Google Scholar
  86. 86.
    Moon, Y.-J.: Stochastic Models for Quality of Service of Component Connectors. PhD thesis, Leiden University (2011)Google Scholar
  87. 87.
    Moon, Y.-J., Silva, A., Krause, C., Arbab, F.: A compositional semantics for stochastic Reo connectors. In: Mousavi, Salaün (eds.) [88], pp. 93–107Google Scholar
  88. 88.
    Mousavi, M.R., Salaün, G. (eds.): Proceedings Ninth International Workshop on the Foundations of Coordination Languages and Software Architectures. EPTCS, vol. 30 (2010)Google Scholar
  89. 89.
    Mousavi, M.R., Sirjani, M., Arbab, F.: Formal semantics and analysis of component connectors in Reo. Electr. Notes Theor. Comput. Sci. 154(1), 83–99 (2006)Google Scholar
  90. 90.
    Odersky, M.: Report on the programming language Scala (2002), http://lamp.epfl.ch/~odersky/scala/reference.ps
  91. 91.
    Proença, J.: Synchronous Coordination of Distributed Components. PhD thesis, Leiden University (2011), https://openaccess.leidenuniv.nl/handle/1887/17624
  92. 92.
    Proença, J., Clarke, D.: Coordination models Orc and Reo compared. Electr. Notes Theor. Comput. Sci. 194(4), 57–76 (2008)Google Scholar
  93. 93.
    Proença, J., Clarke, D., de Vink, E.P., Arbab, F.: Decoupled execution of synchronous coordination models via behavioural automata. In: Mousavi, M.R., Ravara, A. (eds.) FOCLASA. EPTCS, vol. 58, pp. 65–79 (2011)Google Scholar
  94. 94.
    Rutten.: Behavioural differential equations: A coinductive calculus of streams, automata, and power series. TCS: Theoretical Computer Science, 308 (2003)Google Scholar
  95. 95.
    Rutten, J.J.M.M.: Elements of stream calculus (an extensive exercise in coinduction). Electr. Notes Theor. Comput. Sci., 45 (2001)Google Scholar
  96. 96.
    Rutten, J.J.M.M.: A coinductive calculus of streams. Mathematical Structures in Computer Science 15(1), 93–147 (2005)Google Scholar
  97. 97.
    Sangiorgi, D., Walker, D.: PI-Calculus: A Theory of Mobile Processes. Cambridge University Press, New York (2001)Google Scholar
  98. 98.
    Schumm, D., Turetken, O., Kokash, N., Elgammal, A., Leymann, F., van den Heuvel, W.-J.: Business Process Compliance Through Reusable Units of Compliant Processes. In: Daniel, F., Facca, F.M. (eds.) ICWE 2010. LNCS, vol. 6385, pp. 325–337. Springer, Heidelberg (2010)Google Scholar
  99. 99.
    Talcott, C.L., Sirjani, M., Ren, S.: Comparing three coordination models: Reo, ARC, and PBRD. Sci. Comput. Program. 76(1), 3–22 (2011)Google Scholar
  100. 100.
    Verhoef, C., Krause, C., Kanters, O., van der Mei, R.: Simulation-based performance analysis of channel-based coordination models. In: Meuter, Roman [82], pp. 187–201Google Scholar
  101. 101.
    Wegner, P.: Coordination as comstrainted interaction (extended abstract). In: Ciancarini, P., Hankin, C. (eds.) COORDINATION 1996. LNCS, vol. 1061, pp. 28–33. Springer, Heidelberg (1996)Google Scholar
  102. 102.
    Yokoo, M.: Distributed Constraint Satisfaction: Foundations of Cooperaton in Multi-Agent Systems. Springer Series on Agent Technology. Springer, New York (2000) NTTGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Farhad Arbab
    • 1
    • 2
  1. 1.Foundations of Software EngineeringCWIAmsterdamThe Netherlands
  2. 2.Leiden Institute for Advanced Computer ScienceLeiden UniversityLeidenThe Netherlands

Personalised recommendations