Composition of Interacting Computations

  • Farhad Arbab


The field of programming has been concerned with software composition since its very inception. Our models for software composition have brought us up to a new plateau of software complexity and composition. To tackle the challenges of composition at this level requires new models for software composition centered on interaction as a first-class concept. Interaction has been studied as an inseparable concern within concurrency theory. Curiously, however, interaction has not been seriously considered as a first-class concept in constructive models of computation.

Composition of systems out of autonomous subsystems pivots on coordination concerns that center on interaction. Coordination models and languages represent a recent approach to design and development of concurrent systems. In this chapter, we present a brief overview of coordination models and languages, followed by a framework for their classification. We then focus on a specific coordination language, called Reo, and demonstrate how it provides a powerful and expressive model for flexible composition of behavior through interaction.

Reo serves as a good example of a constructive model of computation that treats interaction as a (in fact, the only) first-class concept. It uniquely focuses on the compositional construction of connectors that enable and coordinate the interactions among the constituents in a concurrent system, without their knowledge. We show how Reo allows complex behavior in a system to emerge as a composition of primitive interactions.


Data Item Coordination Model Tuple Space Abstract Data Type Dine Philosopher 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Hoare, C.: Communicating Sequential Processes. Prentice Hall International Series in Computer Science. Prentice-Hall, 1985.Google Scholar
  2. 2.
    Milner, R.: A Calculus of Communicating Systems. Volume 92 of Lecture Notes in Computer Science. Springer, 1980.Google Scholar
  3. 3.
    Milner, R.: Elements of interaction. Communications of the ACM 36, 1993, pp. 78–89.CrossRefGoogle Scholar
  4. 4.
    Sangiorgi, D., Walker, D.: The Pi-Calculus-A Theory of Mobile Processes. Cambridge University Press, 2001.Google Scholar
  5. 5.
    Bergstra, J.A., Klop, J.W.: Process algebra for synchronous communication. Information and Control 60, 1984, pp. 109–137.zbMATHMathSciNetCrossRefGoogle Scholar
  6. 6.
    Bergstra, J.A., Klop, J.W.: Process algebra: specification and verification in bisimulation semantics. In Hazewinkel, M., Lenstra, J.K., Meertens, L.G.L.T., eds.: Mathematics and Computer Science II. CWI Monograph 4. North-Holland, Amsterdam, 1986, pp. 61–94.Google Scholar
  7. 7.
    Fokkink, W.: Introduction to Process Algebra. Texts in Theoretical Computer Science, An EATCS Series. Springer-Verlag, 1999.Google Scholar
  8. 8.
    Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.Google Scholar
  9. 9.
    Wegner, P.: Interaction as a basis for empirical computer science. ACM Computing Surveys 27, 1995, pp. 45–48.CrossRefGoogle Scholar
  10. 10.
    Wegner, P.: Interactive foundations of computing. Theoretical Computer Science 192, 1998, pp. 315–351.zbMATHMathSciNetCrossRefGoogle Scholar
  11. 11.
    Goldin, D., Smolka, S., Attie, P., Sonderegger, E.: Turing machines, transition systems, and interaction. Information and Computation Journal 194, 2004, pp. 101–128.zbMATHMathSciNetCrossRefGoogle Scholar
  12. 12.
    van Leeuwen, J., Wiedermann, J.: On the power of interactive computing. In van Leeuwen, J., Watanabe, O., Hagiya, M., Mosses, P.D., Ito, T., eds.: Proceedings of the 1st International Conference on Theoretical Computer Science — Exploring New Frontiers of Theoretical Informatics, IFIP TCS’2000 (Sendai, Japan, August 17–19, 2000.. Volume 1872 of LNCS. Springer-Verlag, Berlin-Heidelberg-New York-Barcelona-Hong Kong-London-Milan-Paris-Singapore-Tokyo, 2000, pp. 619–623.Google Scholar
  13. 13.
    van Leeuwen, J., Wiedermann, J.: Beyond the turing limit: Evolving interactive systems. In Pacholski, L., Ruicka, P., eds.: SOFSEM 2001: Theory and Practice of Informatics: 28th Conference on Current Trends in Theory and Practice of Informatics. Volume 2234 of Lecture Notes in Computer Science. Springer-Verlag, 2001, pp. 90–109.Google Scholar
  14. 14.
    Wegner, P., Goldin, D.: Interaction as a framework for modeling. Lecture Notes in Computer Science 1565, 1999, pp. 243–257.CrossRefGoogle Scholar
  15. 15.
    (PVM) Scholar
  16. 16.
    (MPI) Scholar
  17. 17.
    (COM+) Scholar
  18. 18.
    (CORBA) Scholar
  19. 19.
    Carriero, N., Gelernter, D.: Linda in context. Communications of the ACM 32, 1989, pp. 444–458.CrossRefGoogle Scholar
  20. 20.
    Leler, W.: Linda meets Unix. IEEE Computer 23, 1990, pp. 43–54.Google Scholar
  21. 21.
    (Jini) Scholar
  22. 22.
    Oaks, S., Wong, H.: Jini in a Nutshell. O’Reilly & Associates, 2000.Google Scholar
  23. 23.
    Banâtre, J.P., Le Métayer, D.: Programming by multiset transformations. Communications of the ACM 36, 1993, pp. 98–111.CrossRefGoogle Scholar
  24. 24.
    Arbab, F., Herman, I., Spilling, P.: An overview of Manifold and its implementation. Concurrency: Practice and Experience 5, 1993, pp. 23–70.Google Scholar
  25. 25.
    Bonsangue, M., Arbab, F., de Bakker, J., Rutten, J., Scutellá, A., Zavattaro, G.: A transition system semantics for the control-driven coordination language Manifold. Theoretical Computer Science 240, 2000, pp. 3–47.zbMATHMathSciNetCrossRefGoogle Scholar
  26. 26.
    Bergstra, J., Klint, P.: The ToolBus Coordination Architecture. In Ciancarini, P., Hankin, C., eds.: Proc. 1st Int. Conf. on Coordination Models and Languages. Volume 1061 of Lecture Notes in Computer Science., Cesena, Italy, Springer-Verlag, Berlin, 1996, pp. 75–88.Google Scholar
  27. 27.
    Arbab, F.: Reo: A channel-based coordination model for component composition. Mathematical Structures in Computer Science 14, 2004, pp. 329–366.zbMATHMathSciNetCrossRefGoogle Scholar
  28. 28.
    Andreoli, J.M., Ciancarini, P., Pareschi, R.: Interaction Abstract Machines. In: Trends in Object-Based Concurrent Computing. MIT Press, 1993, pp. 257–280.Google Scholar
  29. 29.
    Papadopoulos, G., Arbab, F.: Coordination models and languages. In Zelkowitz, M., ed.: Advances in Computers — The Engineering of Large Systems. Volume 46. Academic Press, 1998, pp. 329–400.Google Scholar
  30. 30.
    Andreoli, J.M., Hankin, C., Le Métayer, D., eds.: Coordination Programming: Mechanisms, Models and Semantics. Imperial College Press, 1996.Google Scholar
  31. 31.
    Ciancarini, P., Hankin, C., eds.: 1st Int. Conf. on Coordination Languages and Models. Volume 1061 of Lecture Notes in Computer Science. Springer-Verlag, 1996.Google Scholar
  32. 32.
    Garlan, D., Le Métayer, D., eds.: 2nd Int. Conf. on Coordination Languages and Models. Volume 1282 of Lecture Notes in Computer Science. Springer-Verlag, 1997.Google Scholar
  33. 33.
    Omicini, A., Zambonelli, F., Klusch, M., Tolksdorf, R.: Coordination of Internet Agents: Models, Technologies, and Applications. Springer, ISBN 3-540-41613-7, 2001.Google Scholar
  34. 34.
    Baier, C., Sirjani, M., Arbab, F., Rutten, J.: Modeling component connectors in Reo by Constraint Automata. Science of Computer Programming 61, 2006, pp. 75–113 extended version.zbMATHMathSciNetCrossRefGoogle Scholar
  35. 35.
    Zlatev, Z., Diakov, N., Pokraev, S.: Construction of negotiation protocols for E-Commerce applications. ACM SIGecom Exchanges 5, 2004, pp. 11–22.Google Scholar
  36. 36.
    Clarke, D., Arbab, F., Costa, D.: Modeling coordination in biological systems. In: Proc. of the International Symposium on Leveraging Applications of Formal Methods (ISoLA 2004), 2004.Google Scholar
  37. 37.
    Diakov, N., Arbab, F.: Compositional construction of web services using Reo. In: Proc. of International Workshop on Web Services: Modeling, Architecture and Infrastructure (WSMAI), INSTICC Press, 2004, pp. 49–58.Google Scholar
  38. 38.
    Arbab, F., Baier, C., de Boer, F., Rutten, J.: Models and temporal logics for timed component connectors. In: Proc. of the IEEE International Conference on Software Engineering and Formal Methods (SEFM), IEEE Computer Society, 2004, pp. 198–207.Google Scholar
  39. 39.
    Arbab, F., Rutten, J.: A coinductive calculus of component connectors. In M. Wirsing, D. P., Hennicker, R., eds.: Recent Trends in Algebraic Development Techniques, Proceedings of 16th International Workshop on Algebraic Development Techniques (WADT 2002). Volume 2755 of Lecture Notes in Computer Science., Springer-Verlag, 2003, pp. 35–56.Google Scholar
  40. 40.
    Arbab, F.: Abstract Behavior Types: A foundation model for components and their composition. Science of Computer Programming 55, 2005, pp. 3–52 extended version.zbMATHMathSciNetCrossRefGoogle Scholar
  41. 41.
    Rutten, J.: Component connectors. In van Breugel, F., eds.: Mathematical Techniques for Analyzing Concurrent and Probabilistic Systems. CRM Monograph Series. American Mathematical Society, 2004. ISSN: 1065-8599 [60], 2004, pp. 73–87.Google Scholar
  42. 42.
    Mehta, N., Sirjani, M., Arbab, F.: Effective modeling of software architectural assemblies using Constraint Automata. Technical Report SEN-R0309, Centrum voor Wiskunde en Informatica, Kruislaan 413, 1098 SJ Amsterdam, The Netherlands, 2003.Google Scholar
  43. 43.
    Mehta, N.R., Medvidovic, N., Sirjani, M., Arbab, F.: Modeling behavior in compositions of software architectural primitives. In: Automated Software Engineering, IEEE Computer Society, 2004, pp. 371–374.Google Scholar
  44. 44.
    Rutten, J.: Elements of stream calculus (an extensive exercise in coinduction). In Brookes, S., Mislove, M., eds.: Proc. of 17th Conf. on Mathematical Foundations of Programming Semantics, Aarhus, Denmark, pp. 23–26, May 2001. Volume 45 of Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam, 2001.Google Scholar
  45. 45.
    Barringer, H., Kuiper, R., Pnueli, A.: A really abstract current model and its temporal logic. In: Proceedings of Thirteenth Annual ACM Symposium on principles of Programming Languages, ACM, 1986, pp. 173–183.Google Scholar
  46. 46.
    de Bakker, J., Kok, J.: Towards a Uniform Topological Treatment of Streams and Functions on Streams. In Brauer, W., ed.: Proceedings of the 12th International Colloquium on Automata, Languages and Programming. Volume 194 of Lecture Notes in Computer Science., Nafplion, Springer-Verlag, 1985, pp. 140–148.Google Scholar
  47. 47.
    Kok, J.: Semantic Models for Parallel Computation in Data Flow, Logic-and Object-Oriented Programming. PhD thesis, Vrije Universiteit, Amsterdam, 1989.Google Scholar
  48. 48.
    Broy, M., Stolen, K.: Specification and development of interactive systems. Volume 62 of Monographs in Computer Science. Springer, 2001.Google Scholar
  49. 49.
    Arbab, F.: Computing and Interaction. In Smolka, S., Wegner, P., eds.: Interactive Computation: The New Paradigm. Springer-Verlag [61], 2006.Google Scholar
  50. 50.
    Brock, J., Ackerman, W.: Scenarios: A model of non-determinate computation. In: Proceedings of the International Colloquium on Formalization of Programming Concepts, Springer-Verlag, 1981, pp. 252–259.Google Scholar
  51. 51.
    (Petri Nets World) Scholar
  52. 52.
    Diakov, N., Zlatev, Z., Pokraev, S.: Composition of negotiation protocols for e-commerce applications. In Cheung, W., Hsu, J., eds.: The 2005 IEEE International Conference on e-Technology, e-Commerce and e-Service, 2005, pp. 418–423.Google Scholar
  53. 53.
    Halbwachs, N.: Synchronous programming of reactive systems. Kluwer Academic Publishers, 1993.Google Scholar
  54. 54.
    Berry, G.: The Esterel v5 language primer version 5.21 release 2.0. Technical report, INRIA, 1999. Scholar
  55. 55.
    Berry, G., Cosserat, L.: The synchronous programming languages Esterel and its mathematical semantics. In Brookes, Winskel, G., eds.: Seminar on Concurrency. Volume 197 of Lecture Notes in Computer Science. Springer Verlag, 1984, pp. 389–448.Google Scholar
  56. 56.
    Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous data flow programming language Lustre. Proceedings of the IEEE 79, 1991, pp. 1305–1320.CrossRefGoogle Scholar
  57. 57.
    le Guernic, P., Benveniste, A., Bournai, P., Gautier, T.: Signal — a data flow-oriented language for signal processing. IEEE Transactions on Acoustics, Speech, and Signal Processing [see also IEEE Transactions on Signal Processing] 34, 1986, pp. 362–3740.CrossRefGoogle Scholar
  58. 58.
    Arbab, F., Baier, C., de Boer, F., Rutten, J., Sirjani, M.: Synthesis of Reo circuits for implementation of component-connector automata specifications. In Jacquet, J.M., Picco, G., eds.: Proc. of the 7th International Conference on Coordination Models and Languages (Coordination 2005). Volume 3454 of Lecture Notes in Computer Science., Springer-Verlag, 2005, pp. 236–251.Google Scholar
  59. 59.
    Keil, D., Goldin, D.: Modeling indirect interaction in open computational systems. In: Proc. 1st Int’l workshop on Theory and Practice of Open Computational Systems (TAPOCS), IEEE Computer Society Press, 2003.Google Scholar
  60. 60.
    Panangaden, P., van Breugel, F., eds.: Mathematical Techniques for Analyzing Concurrent and Probabilistic Systems. CRM Monograph Series. American Mathematical Society, 2004. ISSN: 1065-8599.Google Scholar
  61. 61.
    Goldin, D., Smolka, S., Wegner, P., eds.: Interactive Computation: The New Paradigm. Springer-Verlag, 2006 (this volume).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Farhad Arbab
    • 1
    • 2
  1. 1.Center for Mathematics and Computer Science (CWI)AmsterdamThe Netherlands
  2. 2.Leiden UniversityLeidenThe Netherlands

Personalised recommendations