Skip to main content

Applied Choreographies

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNPSE,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/ 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.

The original version of this chapter was revised: An acknowledgment has been added. The correction to this chapter is available at https://doi.org/10.1007/978-3-319-92612-4_11

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Change history

  • 08 December 2018

    In the originally published version of this chapter the acknowledgment was missing. This has been added.

References

  1. Montesi, F.: Choreographic Programming. Ph.D. thesis, IT University of Copenhagen (2013)

    Google Scholar 

  2. Carbone, M., Montesi, F.: Deadlock-freedom-by-design: multiparty asynchronous global programming. In: POPL, pp. 263–274. ACM (2013)

    Google Scholar 

  3. W3C WS-CDL Working Group: WS-CDL version 1.0 (2004). http://www.w3.org/TR/2004/WD-ws-cdl-10-20040427/

  4. OMG: Business Process Model and Notation. http://www.omg.org/spec/BPMN/2.0/

  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. Basu, S., Bultan, T., Ouederni, M.: Deciding choreography realizability. In: POPL, pp. 191–202. ACM (2012)

    Google Scholar 

  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_4

    Chapter  Google Scholar 

  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_5

    Chapter  Google Scholar 

  9. Pi4soa (2008). http://www.pi4soa.org

  10. JBoss Community: Savara. http://www.jboss.org/savara/

  11. Chor Programming Language. http://www.chor-lang.org/

  12. AIOCJ framework. http://www.cs.unibo.it/projects/jolie/aiocj.html

  13. Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. J. ACM (JACM) 63(1), 9 (2016)

    Article  MathSciNet  Google Scholar 

  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)

    Article  Google Scholar 

  15. Carbone, M., Montesi, F., Schürmann, C.: Choreographies, logically. Distrib. Comput. 31(1), 51–67 (2018)

    Article  MathSciNet  Google Scholar 

  16. Carbone, M., Montesi, F., Schürmann, C., Yoshida, N.: Multiparty session types as coherence proofs. Acta Inf. 54(3), 243–269 (2017)

    Article  MathSciNet  Google Scholar 

  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. Milner, R. (ed.): A Calculus of Communicating Systems. LNCS, vol. 92. Springer, Heidelberg (1980). https://doi.org/10.1007/3-540-10235-3

    Book  MATH  Google Scholar 

  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. Giallorenzo, S.: Real-World Choreographies. Ph.D. thesis, University of Bologna, Italy (2016)

    Google Scholar 

  21. OASIS: WS-BPEL (2007). http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html

  22. Gabbrielli, M., Giallorenzo, S., Montesi, F.: Applied choreographies. Technical report (2018). http://www.saveriogiallorenzo.com/publications/AC/AC_tr.pdf

  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_30

    Chapter  Google Scholar 

  24. Sangiorgi, D., Walker, D.: The \(\pi \)-Calculus: A Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)

    MATH  Google Scholar 

  25. Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)

    MATH  Google Scholar 

  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)

    Article  MathSciNet  Google Scholar 

  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_9

    Chapter  Google Scholar 

  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_4

    Chapter  Google Scholar 

  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_9

    Chapter  Google Scholar 

  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_22

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  32. Neykova, R., Yoshida, N.: Multiparty session actors. Logical Methods Comput. Sci. 13(1) (2017)

    Google Scholar 

Download references

Acknowledgements

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

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Saverio Giallorenzo .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 IFIP International Federation for Information Processing

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Giallorenzo, S., Montesi, F., Gabbrielli, M. (2018). Applied Choreographies. In: Baier, C., Caires, L. (eds) Formal Techniques for Distributed Objects, Components, and Systems. FORTE 2018. Lecture Notes in Computer Science(), vol 10854. Springer, Cham. https://doi.org/10.1007/978-3-319-92612-4_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-92612-4_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-92611-7

  • Online ISBN: 978-3-319-92612-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics