Applied Choreographies

Saverio Giallorenzo, Fabrizio Montesi, Maurizio Gabbrielli [2018].
In proceedings of FORTE 2018, pp. 21-40.


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.

Additional notes
Cite (BibTeX)
Click to expand
  author       = {Saverio Giallorenzo and
                  Fabrizio Montesi and
                  Maurizio Gabbrielli},
  editor       = {Christel Baier and
                  Lu{\'{\i}}s Caires},
  title        = {Applied Choreographies},
  booktitle    = {Formal Techniques for Distributed Objects, Components, and Systems
                  - 38th {IFIP} {WG} 6.1 International Conference, {FORTE} 2018, Held
                  as Part of the 13th International Federated Conference on Distributed
                  Computing Techniques, DisCoTec 2018, Madrid, Spain, June 18-21, 2018,
  series       = {Lecture Notes in Computer Science},
  volume       = {10854},
  pages        = {21--40},
  publisher    = {Springer},
  year         = {2018},
  url          = {\_2},
  doi          = {10.1007/978-3-319-92612-4\_2},
  timestamp    = {Sat, 09 Apr 2022 12:37:51 +0200},
  biburl       = {},
  bibsource    = {dblp computer science bibliography,}

A PDF is available (possibly a preprint):

Download PDF