Advertisement

Applied Choreographies

  • Saverio Giallorenzo
  • Fabrizio Montesi
  • Maurizio Gabbrielli
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10854)

Abstract

Choreographic Programming is a paradigm for distributed programming, where high-level “Alice and Bob” descriptions of communications (choreographies) are used to synthesise correct-by-construction programs. However, implementations of choreographic models use message routing technologies distant from their related theoretical models (e.g., CCS/ Open image in new window channels). This drives implementers to mediate discrepancies with the theory through undocumented, unproven adaptations, weakening the reliability of their implementations.

As a solution, we propose the framework of Applied Choreographies (AC). In AC, programmers write choreographies in a language that follows the standard syntax and semantics of previous works. Then, choreographies are compiled to a real-world execution model for Service-Oriented Computing (SOC). To manage the complexity of this task, our compilation happens in three steps, respectively dealing with: implementing name-based communications using the concrete mechanism found in SOC, projecting a choreography to a set of processes, and translating processes to a distributed implementation in terms of services.

Notes

Acknowledgements

This work was partially supported by the Independent Research Fund Denmark, grant no. DFF-7014-00041.

References

  1. 1.
    Montesi, F.: Choreographic Programming. Ph.D. thesis, IT University of Copenhagen (2013)Google Scholar
  2. 2.
    Carbone, M., Montesi, F.: Deadlock-freedom-by-design: multiparty asynchronous global programming. In: POPL, pp. 263–274. ACM (2013)Google Scholar
  3. 3.
    W3C WS-CDL Working Group: WS-CDL version 1.0 (2004). http://www.w3.org/TR/2004/WD-ws-cdl-10-20040427/
  4. 4.
    OMG: Business Process Model and Notation. http://www.omg.org/spec/BPMN/2.0/
  5. 5.
    Lanese, I., Guidi, C., Montesi, F., Zavattaro, G.: Bridging the gap between interaction - and process-oriented choreographies. In: SEFM, pp. 323–332. IEEE (2008)Google Scholar
  6. 6.
    Basu, S., Bultan, T., Ouederni, M.: Deciding choreography realizability. In: POPL, pp. 191–202. ACM (2012)Google Scholar
  7. 7.
    Honda, K., Mukhamedov, A., Brown, G., Chen, T.-C., Yoshida, N.: Scribbling interactions with a formal foundation. In: Natarajan, R., Ojo, A. (eds.) ICDCIT 2011. LNCS, vol. 6536, pp. 55–75. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-19056-8_4CrossRefGoogle Scholar
  8. 8.
    Dalla Preda, M., Gabbrielli, M., Giallorenzo, S., Lanese, I., Mauro, J.: Dynamic choreographies. In: Holvoet, T., Viroli, M. (eds.) COORDINATION 2015. LNCS, vol. 9037, pp. 67–82. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-19282-6_5CrossRefGoogle Scholar
  9. 9.
    Pi4soa (2008). http://www.pi4soa.org
  10. 10.
    JBoss Community: Savara. http://www.jboss.org/savara/
  11. 11.
    Chor Programming Language. http://www.chor-lang.org/
  12. 12.
  13. 13.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. J. ACM (JACM) 63(1), 9 (2016)MathSciNetCrossRefGoogle Scholar
  14. 14.
    Carbone, M., Honda, K., Yoshida, N.: Structured communication-centered programming for web services. ACM Trans. Program. Lang. Syst. 34(2), 8:1–8:78 (2012)CrossRefGoogle Scholar
  15. 15.
    Carbone, M., Montesi, F., Schürmann, C.: Choreographies, logically. Distrib. Comput. 31(1), 51–67 (2018)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Carbone, M., Montesi, F., Schürmann, C., Yoshida, N.: Multiparty session types as coherence proofs. Acta Inf. 54(3), 243–269 (2017)MathSciNetCrossRefGoogle Scholar
  17. 17.
    Qiu, Z., Zhao, X., Cai, C., Yang, H.: Towards the theoretical foundation of choreography. In: WWW, pp. 973–982. IEEE Computer Society Press (2007)Google Scholar
  18. 18.
    Milner, R. (ed.): A Calculus of Communicating Systems. LNCS, vol. 92. Springer, Heidelberg (1980).  https://doi.org/10.1007/3-540-10235-3CrossRefzbMATHGoogle Scholar
  19. 19.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, I and II. Inf. Comput. 100, 1–40, 41–77 (1992)Google Scholar
  20. 20.
    Giallorenzo, S.: Real-World Choreographies. Ph.D. thesis, University of Bologna, Italy (2016)Google Scholar
  21. 21.
  22. 22.
    Gabbrielli, M., Giallorenzo, S., Montesi, F.: Applied choreographies. Technical report (2018). http://www.saveriogiallorenzo.com/publications/AC/AC_tr.pdf
  23. 23.
    Montesi, F., Yoshida, N.: Compositional choreographies. In: D’Argenio, P.R., Melgratti, H. (eds.) CONCUR 2013. LNCS, vol. 8052, pp. 425–439. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-40184-8_30CrossRefGoogle Scholar
  24. 24.
    Sangiorgi, D., Walker, D.: The \(\pi \)-Calculus: A Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)zbMATHGoogle Scholar
  25. 25.
    Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)zbMATHGoogle Scholar
  26. 26.
    Coppo, M., Dezani-Ciancaglini, M., Yoshida, N., Padovani, L.: Global progress for dynamically interleaved multiparty sessions. Math. Struct. Comput. Sci. 26(2), 238–302 (2016)MathSciNetCrossRefGoogle Scholar
  27. 27.
    Montesi, F., Carbone, M.: Programming services with correlation sets. In: Kappel, G., Maamar, Z., Motahari-Nezhad, H.R. (eds.) ICSOC 2011. LNCS, vol. 7084, pp. 125–141. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-25535-9_9CrossRefGoogle Scholar
  28. 28.
    Montesi, F., Guidi, C., Zavattaro, G.: Service-oriented programming with Jolie. In: Bouguettaya, A., Sheng, Q., Daniel, F. (eds.) Web Services Foundations, pp. 81–107. Springer, New York (2014).  https://doi.org/10.1007/978-1-4614-7518-7_4CrossRefGoogle Scholar
  29. 29.
    Dalla Preda, M., Giallorenzo, S., Lanese, I., Mauro, J., Gabbrielli, M.: AIOCJ: a choreographic framework for safe adaptive distributed applications. In: Combemale, B., Pearce, D.J., Barais, O., Vinju, J.J. (eds.) SLE 2014. LNCS, vol. 8706, pp. 161–170. Springer, Cham (2014).  https://doi.org/10.1007/978-3-319-11245-9_9CrossRefGoogle Scholar
  30. 30.
    Hu, R., Yoshida, N., Honda, K.: Session-based distributed programming in Java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 516–541. Springer, Heidelberg (2008).  https://doi.org/10.1007/978-3-540-70592-5_22CrossRefGoogle Scholar
  31. 31.
    Demangeon, R., Honda, K., Hu, R., Neykova, R., Yoshida, N.: Practical interruptible conversations: distributed dynamic verification with multiparty session types and python. Formal Methods Syst. Des. 46(3), 197–225 (2015)CrossRefGoogle Scholar
  32. 32.
    Neykova, R., Yoshida, N.: Multiparty session actors. Logical Methods Comput. Sci. 13(1) (2017)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2018

Authors and Affiliations

  • Saverio Giallorenzo
    • 1
  • Fabrizio Montesi
    • 1
  • Maurizio Gabbrielli
    • 2
  1. 1.University of Southern DenmarkOdenseDenmark
  2. 2.Università di Bologna/InriaBolognaItaly

Personalised recommendations