Multiparty Languages: The Choreographic and Multitier Cases (Pearl)

Authors Saverio Giallorenzo , Fabrizio Montesi , Marco Peressotti , David Richter , Guido Salvaneschi , Pascal Weisenburger



PDF
Thumbnail PDF

File

LIPIcs.ECOOP.2021.22.pdf
  • Filesize: 0.95 MB
  • 27 pages

Document Identifiers

Author Details

Saverio Giallorenzo
  • Università di Bologna, Italy
  • INRIA, Sophia Antipolis, France
Fabrizio Montesi
  • University of Southern Denmark, Odense, Denmark
Marco Peressotti
  • University of Southern Denmark, Odense, Denmark
David Richter
  • Technical University of Darmstadt, Germany
Guido Salvaneschi
  • University of St. Gallen, Switzerland
Pascal Weisenburger
  • University of St. Gallen, Switzerland

Acknowledgements

We thank the anonymous reviewers for their useful feedback and comments.

Cite AsGet BibTex

Saverio Giallorenzo, Fabrizio Montesi, Marco Peressotti, David Richter, Guido Salvaneschi, and Pascal Weisenburger. Multiparty Languages: The Choreographic and Multitier Cases (Pearl). In 35th European Conference on Object-Oriented Programming (ECOOP 2021). Leibniz International Proceedings in Informatics (LIPIcs), Volume 194, pp. 22:1-22:27, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2021)
https://doi.org/10.4230/LIPIcs.ECOOP.2021.22

Abstract

Choreographic languages aim to express multiparty communication protocols, by providing primitives that make interaction manifest. Multitier languages enable programming computation that spans across several tiers of a distributed system, by supporting primitives that allow computation to change the location of execution. Rooted into different theoretical underpinnings - respectively process calculi and lambda calculus - the two paradigms have been investigated independently by different research communities with little or no contact. As a result, the link between the two paradigms has remained hidden for long. In this paper, we show that choreographic languages and multitier languages are surprisingly similar. We substantiate our claim by isolating the core abstractions that differentiate the two approaches and by providing algorithms that translate one into the other in a straightforward way. We believe that this work paves the way for joint research and cross-fertilisation among the two communities.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Multiparadigm languages
  • Software and its engineering → Concurrent programming languages
  • Software and its engineering → Distributed programming languages
Keywords
  • Distributed Programming
  • Choreographies
  • Multitier Languages

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Jonathan Aldrich, Craig Chambers, and David Notkin. ArchJava: Connecting software architecture to implementation. In Proceedings of the 24th International Conference on Software Engineering, ICSE '02, pages 187-197, New York, NY, USA, 2002. ACM. URL: https://doi.org/10.1145/581339.581365.
  2. Davide Ancona, Viviana Bono, Mario Bravetti, Joana Campos, Giuseppe Castagna, Pierre-Malo Deniélou, Simon J. Gay, Nils Gesbert, Elena Giachino, Raymond Hu, Einar Broch Johnsen, Francisco Martins, Viviana Mascardi, Fabrizio Montesi, Rumyana Neykova, Nicholas Ng, Luca Padovani, Vasco T. Vasconcelos, and Nobuko Yoshida. Behavioral types in programming languages. Foundations and Trends in Programming Languages, 3(2-3):95-230, 2016. Google Scholar
  3. Marco Carbone, Kohei Honda, and Nobuko Yoshida. Structured communication-centered programming for web services. ACM Trans. Program. Lang. Syst., 34(2):8:1-8:78, 2012. URL: https://doi.org/10.1145/2220365.2220367.
  4. Marco Carbone and Fabrizio Montesi. Deadlock-freedom-by-design: multiparty asynchronous global programming. In Roberto Giacobazzi and Radhia Cousot, editors, The 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '13, Rome, Italy - January 23 - 25, 2013, pages 263-274. ACM, 2013. URL: https://doi.org/10.1145/2429069.2429101.
  5. Luca Cardelli and Andrew D. Gordon. Mobile ambients. In Maurice Nivat, editor, Foundations of Software Science and Computation Structure, First International Conference, FoSSaCS'98, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS'98, Lisbon, Portugal, March 28 - April 4, 1998, Proceedings, volume 1378 of Lecture Notes in Computer Science, pages 140-155. Springer, 1998. URL: https://doi.org/10.1007/BFb0053547.
  6. Satish Chandra, Vijay Saraswat, Vivek Sarkar, and Rastislav Bodik. Type inference for locality analysis of distributed data structures. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '08, pages 11-22, New York, NY, USA, 2008. ACM. URL: https://doi.org/10.1145/1345206.1345211.
  7. Philippe Charles, Christian Grothoff, Vijay Saraswat, Christopher Donawa, Allan Kielstra, Kemal Ebcioglu, Christoph von Praun, and Vivek Sarkar. X10: An object-oriented approach to non-uniform cluster computing. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA '05, pages 519-538, New York, NY, USA, 2005. ACM. URL: https://doi.org/10.1145/1094811.1094852.
  8. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. Links: Web programming without tiers. In Frank S. de Boer, Marcello M. Bonsangue, Susanne Graf, and Willem P. de Roever, editors, Formal Methods for Components and Objects, 5th International Symposium, FMCO 2006, Amsterdam, The Netherlands, November 7-10, 2006, Revised Lectures, volume 4709 of Lecture Notes in Computer Science, pages 266-296. Springer, 2006. URL: https://doi.org/10.1007/978-3-540-74792-5_12.
  9. Ezra E. K. Cooper and Philip Wadler. The RPC calculus. In Proceedings of the 11th ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, PPDP '09, pages 231-242, New York, NY, USA, 2009. ACM. URL: https://doi.org/10.1145/1599410.1599439.
  10. Luís Cruz-Filipe and Fabrizio Montesi. Choreographies in practice. In Elvira Albert and Ivan Lanese, editors, Formal Techniques for Distributed Objects, Components, and Systems - 36th IFIP WG 6.1 International Conference, FORTE 2016, Held as Part of the 11th International Federated Conference on Distributed Computing Techniques, DisCoTec 2016, Heraklion, Crete, Greece, June 6-9, 2016, Proceedings, volume 9688 of Lecture Notes in Computer Science, pages 114-123. Springer, 2016. URL: https://doi.org/10.1007/978-3-319-39570-8_8.
  11. Mila Dalla Preda, Maurizio Gabbrielli, Saverio Giallorenzo, Ivan Lanese, and Jacopo Mauro. Dynamic choreographies: Theory and implementation. Logical Methods in Computer Science, 13(2), 2017. URL: https://doi.org/10.23638/LMCS-13(2:1)2017.
  12. Mattias De Wael, Stefan Marr, Bruno De Fraine, Tom Van Cutsem, and Wolfgang De Meuter. Partitioned global address space languages. ACM Computing Surveys, 47(4), May 2015. URL: https://doi.org/10.1145/2716320.
  13. Pierre-Malo Deniélou and Nobuko Yoshida. Dynamic multirole session types. In Thomas Ball and Mooly Sagiv, editors, Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011, Austin, TX, USA, January 26-28, 2011, pages 435-446. ACM, 2011. URL: https://doi.org/10.1145/1926385.1926435.
  14. David Garlan and Mary Shaw. An introduction to software architecture. Technical report, Carnegie Mellon University, Pittsburgh, PA, USA, 1994. Accessed 2020-05-05. URL: http://www.cs.cmu.edu/afs/cs/project/vit/ftp/pdf/intro_softarch.pdf.
  15. Saverio Giallorenzo, Ivan Lanese, and Daniel Russo. Chip: A choreographic integration process. In On the Move to Meaningful Internet Systems. OTM 2018 Conferences - Confederated International Conferences: CoopIS, C&TC, and ODBASE 2018, Valletta, Malta, October 22-26, 2018, Proceedings, Part II, pages 22-40. Springer, 2018. URL: https://doi.org/10.1007/978-3-030-02671-4_2.
  16. Saverio Giallorenzo, Fabrizio Montesi, and Marco Peressotti. Choreographies as objects. CoRR, abs/2005.09520, 2020. URL: http://arxiv.org/abs/2005.09520.
  17. Carl Hewitt, Peter Bishop, and Richard Steiger. A universal modular Actor formalism for artificial intelligence. In Proceedings of the 3rd International Joint Conference on Artificial Intelligence, IJCAI '73, pages 235-245, San Francisco, CA, USA, 1973. Morgan Kaufmann Publishers Inc. Accessed 2020-05-05. URL: http://ijcai.org/Proceedings/73/Papers/027B.pdf.
  18. Kohei Honda, Aybek Mukhamedov, Gary Brown, Tzu-Chun Chen, and Nobuko Yoshida. Scribbling interactions with a formal foundation. In Raja Natarajan and Adegboyega K. Ojo, editors, Distributed Computing and Internet Technology - 7th International Conference, ICDCIT 2011, Bhubaneshwar, India, February 9-12, 2011. Proceedings, volume 6536 of Lecture Notes in Computer Science, pages 55-75. Springer, 2011. URL: https://doi.org/10.1007/978-3-642-19056-8_4.
  19. Kohei Honda, Nobuko Yoshida, and Marco Carbone. Multiparty asynchronous session types. J. ACM, 63(1):9, 2016. Also: POPL, pages 273-284, 2008. URL: https://doi.org/10.1145/2827695.
  20. Intl. Telecommunication Union. Recommendation Z.120: Message Sequence Chart, 1996. Google Scholar
  21. Tanakorn Leesatapornwongsa, Jeffrey F. Lukman, Shan Lu, and Haryadi S. Gunawi. TaxDC: A taxonomy of non-deterministic concurrency bugs in datacenter distributed systems. In Proc. of ASPLOS, pages 517-530, 2016. Google Scholar
  22. Alberto Lluch-Lafuente, Flemming Nielson, and Hanne Riis Nielson. Discretionary information flow control for interaction-oriented specifications. In Logic, Rewriting, and Concurrency, volume 9200 of Lecture Notes in Computer Science, pages 427-450. Springer, 2015. Google Scholar
  23. Hugo A. López and Kai Heussen. Choreographing cyber-physical distributed control systems for the energy sector. In SAC, pages 437-443. ACM, 2017. Google Scholar
  24. Hugo A. López, Flemming Nielson, and Hanne Riis Nielson. Enforcing availability in failure-aware communicating systems. In FORTE, volume 9688 of Lecture Notes in Computer Science, pages 195-211. Springer, 2016. Google Scholar
  25. Shan Lu, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In Proc. of ASPLOS, pages 329-339, 2008. Google Scholar
  26. Nenad Medvidovic and Richard N. Taylor. A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering, 26(1):70-93, 2000. URL: https://doi.org/10.1109/32.825767.
  27. Robin Milner. A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science. Springer, 1980. URL: https://doi.org/10.1007/3-540-10235-3.
  28. Fabrizio Montesi. Choreographic Programming. Ph.D. Thesis, IT University of Copenhagen, 2013. URL: http://www.fabriziomontesi.com/files/choreographic_programming.pdf.
  29. Tom Murphy VII, Karl Crary, Robert Harper, and Frank Pfenning. A symmetric modal lambda calculus for distributed computing. In 19th IEEE Symposium on Logic in Computer Science (LICS 2004), 14-17 July 2004, Turku, Finland, Proceedings, pages 286-295. IEEE Computer Society, 2004. URL: https://doi.org/10.1109/LICS.2004.1319623.
  30. Roger M. Needham and Michael D. Schroeder. Using encryption for authentication in large networks of computers. Commun. ACM, 21(12):993-999, 1978. Google Scholar
  31. Object Management Group. Business Process Model and Notation. http://www.omg.org/spec/BPMN/2.0/, 2011.
  32. Peter W. O'Hearn. Experience developing and deploying concurrency analysis at facebook. In Andreas Podelski, editor, Static Analysis - 25th International Symposium, SAS 2018, Freiburg, Germany, August 29-31, 2018, Proceedings, volume 11002 of Lecture Notes in Computer Science, pages 56-70. Springer, 2018. URL: https://doi.org/10.1007/978-3-319-99725-4_5.
  33. Dewayne E. Perry and Alexander L. Wolf. Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes, 17(4):40-52, October 1992. URL: https://doi.org/10.1145/141874.141884.
  34. Gabriel Radanne, Jérôme Vouillon, and Vincent Balat. Eliom: A core ML language for tierless web programming. In Atsushi Igarashi, editor, Proceedings of the 14th Asian Symposium on Programming Languages and Systems, APLAS '16, pages 377-397, Berlin, Heidelberg, 2016. Springer-Verlag. URL: https://doi.org/10.1007/978-3-319-47958-3_20.
  35. Bob Reynders, Frank Piessens, and Dominique Devriese. Gavial: Programming the web with multi-tier FRP. The Art, Science, and Engineering of Programming, 4(3):6:1-6:32, 2020. URL: https://doi.org/10.22152/programming-journal.org/2020/4/6.
  36. Manuel Serrano, Erick Gallesio, and Florian Loitsch. Hop: a language for programming the web 2.0. In Peri L. Tarr and William R. Cook, editors, Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA, pages 975-985. ACM, 2006. URL: https://doi.org/10.1145/1176617.1176756.
  37. W3C. WS Choreography Description Language. http://www.w3.org/TR/ws-cdl-10/, 2004.
  38. Pascal Weisenburger, Mirko Köhler, and Guido Salvaneschi. Distributed system development with ScalaLoci. Proceedings of the ACM on Programming Languages, 2(OOPSLA):129:1-129:30, 2018. URL: https://doi.org/10.1145/3276499.
  39. Pascal Weisenburger and Guido Salvaneschi. Multitier modules. In Alastair F. Donaldson, editor, Proceedings of the 33rd European Conference on Object-Oriented Programming (ECOOP '19), volume 134 of Leibniz International Proceedings in Informatics (LIPIcs), pages 3:1-3:29, Dagstuhl, Germany, 2019. Schloss Dagstuhl - Leibniz-Zentrum für Informatik. URL: https://doi.org/10.4230/LIPIcs.ECOOP.2019.3.
  40. Pascal Weisenburger, Johannes Wirth, and Guido Salvaneschi. A survey of multitier programming. ACM Computing Surveys, 53(4), 2020. URL: https://doi.org/10.1145/3397495.
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail