Real-World Choreographies

Saverio Giallorenzo 1, 2
2 FOCUS - Foundations of Component-based Ubiquitous Systems
CRISAM - Inria Sophia Antipolis - Méditerranée , DISI - Dipartimento di Informatica - Scienza e Ingegneria [Bologna]
Abstract : Since the early days of the Internet, distributed software applications have become one of the leading forces behind the development and economic growth of our society. Nonetheless, the practice of programming distributed systems is one of the most error-prone. Developers strive to correctly implement separate components that, put together, enact an agreed protocol. If one component fails to follow such protocol, it could lead to system blocks or misbehaviours. Ensuring that all components correctly follow the intended protocol is very difficult due to the inherent non-determinism of distributed programs. This led practitioners and theoretical researchers to explore new tools to assist the development of distributed systems. Choreographies are one of these tools. They have been introduced to describe from a global viewpoint the exchange of messages among the components of a distributed system. Moreover, since they describe atomic communications (not split into I/Os), they are free from deadlocks and race conditions by design. Recent theoretical results proved that it is possible to define proper Endpoint Projection (EPP) functions to compile choreographic specifications into their single components. Since EPPs are behaviour preserving, projected systems also enjoy freedom from deadlocks and races by construction. Some of these results have been implemented, however much work has to be done to make choreographies a suitable tool for real-world programming. Aim of this PhD is to formalise non-trivial features of distributed systems with choreographies and to translate our theoretical results into the practice of implemented systems. To this purpose, we provide two main contributions. The first contribution tackles one of the most challenging features of distributed development: programming correct and consistent runtime updates of distributed systems. There is no affirmed technology for structuring runtime updates of distributed applications. Moreover, the non-determinism of distributed systems easily leads to partial applications of updates and to inconsistent systems. Our solution is a theoretical model of dynamic choreographies, called DIOC. DIOC provides a clear definition of which components and behaviours can be updated. We prove that systems compiled from a DIOC definition are correct and consistent after any update. Finally, we refine our theoretical model with constructs for a finer control over updates. On this refinement, we develop a framework for programming adaptable distributed systems, called AIOCJ. The second contribution covers one of the main issues of implementing theoretical results on choreographies: formalising the compilation from choreographies to executable programs. There is a sensible departure between choreographic frameworks like Chor (the first on this paradigm) and AIOCJ and their theoretical models: their theories abstract communications with synchronisation on names (a la CCS/π-calculus) yet they compile to Jolie programs, an executable language that uses correlation — a renowned technology of Service-Oriented Computing — for message routing. This discontinuity breaks the chain of proven correctness from choreographies to implemented systems. Our solution is a theory of Applied Choreographies (AC) that models correlation-based message passing. With AC, we formalise the key theoretical problems and the guiding principles that developers should follow to obtain correct implementations. Finally, we prove our approach by defining a correct compiler from AC to the calculus behind the Jolie language.
Complete list of metadatas

Cited literature [105 references]  Display  Hide  Download

https://hal.inria.fr/tel-01336757
Contributor : Saverio Giallorenzo <>
Submitted on : Monday, June 27, 2016 - 9:16:27 AM
Last modification on : Wednesday, October 10, 2018 - 10:09:06 AM
Long-term archiving on : Wednesday, September 28, 2016 - 10:26:53 AM

Identifiers

  • HAL Id : tel-01336757, version 1

Collections

Citation

Saverio Giallorenzo. Real-World Choreographies. Distributed, Parallel, and Cluster Computing [cs.DC]. Università degli studi di Bologna, 2016. English. ⟨tel-01336757⟩

Share

Metrics

Record views

328

Files downloads

177