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.
@inproceedings{DBLP:conf/forte/GiallorenzoMG18, 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, Proceedings}, series = {Lecture Notes in Computer Science}, volume = {10854}, pages = {21--40}, publisher = {Springer}, year = {2018}, url = {https://doi.org/10.1007/978-3-319-92612-4\_2}, doi = {10.1007/978-3-319-92612-4\_2}, timestamp = {Sat, 09 Apr 2022 12:37:51 +0200}, biburl = {https://dblp.org/rec/conf/forte/GiallorenzoMG18.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }
A PDF is available (possibly a preprint):