Matches in SemOpenAlex for { <https://semopenalex.org/work/W2463451191> ?p ?o ?g. }
- W2463451191 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 applicationsof 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." @default.
- W2463451191 created "2016-07-22" @default.
- W2463451191 creator A5035838492 @default.
- W2463451191 date "2016-05-12" @default.
- W2463451191 modified "2023-09-25" @default.
- W2463451191 title "Real-World Choreographies" @default.
- W2463451191 cites W122332163 @default.
- W2463451191 cites W131352529 @default.
- W2463451191 cites W1497524189 @default.
- W2463451191 cites W1502856998 @default.
- W2463451191 cites W1508763736 @default.
- W2463451191 cites W1516360493 @default.
- W2463451191 cites W1518754760 @default.
- W2463451191 cites W1521016409 @default.
- W2463451191 cites W1526385399 @default.
- W2463451191 cites W1527815693 @default.
- W2463451191 cites W1554605283 @default.
- W2463451191 cites W1555656963 @default.
- W2463451191 cites W1557561422 @default.
- W2463451191 cites W1563249523 @default.
- W2463451191 cites W1585111997 @default.
- W2463451191 cites W1587329505 @default.
- W2463451191 cites W1601555688 @default.
- W2463451191 cites W1661323653 @default.
- W2463451191 cites W166417490 @default.
- W2463451191 cites W1775663022 @default.
- W2463451191 cites W1779735989 @default.
- W2463451191 cites W1780016311 @default.
- W2463451191 cites W1784055113 @default.
- W2463451191 cites W1927670981 @default.
- W2463451191 cites W1938881678 @default.
- W2463451191 cites W1964137226 @default.
- W2463451191 cites W1965014786 @default.
- W2463451191 cites W1970654924 @default.
- W2463451191 cites W1979914341 @default.
- W2463451191 cites W1990911977 @default.
- W2463451191 cites W1994593991 @default.
- W2463451191 cites W2008838944 @default.
- W2463451191 cites W2023450657 @default.
- W2463451191 cites W2023454621 @default.
- W2463451191 cites W2029414465 @default.
- W2463451191 cites W2034256728 @default.
- W2463451191 cites W2038408649 @default.
- W2463451191 cites W2040105559 @default.
- W2463451191 cites W2046473642 @default.
- W2463451191 cites W2046488919 @default.
- W2463451191 cites W2049321516 @default.
- W2463451191 cites W2054702684 @default.
- W2463451191 cites W2059243982 @default.
- W2463451191 cites W2062901430 @default.
- W2463451191 cites W2088962847 @default.
- W2463451191 cites W2089287449 @default.
- W2463451191 cites W2101161997 @default.
- W2463451191 cites W2103665119 @default.
- W2463451191 cites W2106694164 @default.
- W2463451191 cites W2114146397 @default.
- W2463451191 cites W2114296561 @default.
- W2463451191 cites W2114877704 @default.
- W2463451191 cites W2116346633 @default.
- W2463451191 cites W2119992090 @default.
- W2463451191 cites W2128026023 @default.
- W2463451191 cites W2129620298 @default.
- W2463451191 cites W2129754568 @default.
- W2463451191 cites W2134716336 @default.
- W2463451191 cites W2135158729 @default.
- W2463451191 cites W2135622311 @default.
- W2463451191 cites W2137865376 @default.
- W2463451191 cites W2139204893 @default.
- W2463451191 cites W2141928434 @default.
- W2463451191 cites W2143024421 @default.
- W2463451191 cites W2144114063 @default.
- W2463451191 cites W2146973388 @default.
- W2463451191 cites W2150275961 @default.
- W2463451191 cites W2153074919 @default.
- W2463451191 cites W2154085356 @default.
- W2463451191 cites W2157418168 @default.
- W2463451191 cites W2159080426 @default.
- W2463451191 cites W2159765281 @default.
- W2463451191 cites W2162021078 @default.
- W2463451191 cites W2162612590 @default.
- W2463451191 cites W2163549752 @default.
- W2463451191 cites W2163784380 @default.
- W2463451191 cites W2168287017 @default.
- W2463451191 cites W2181687669 @default.
- W2463451191 cites W2239835736 @default.
- W2463451191 cites W2294580796 @default.
- W2463451191 cites W2342200509 @default.
- W2463451191 cites W2404671718 @default.
- W2463451191 cites W2750574473 @default.
- W2463451191 cites W2949749421 @default.
- W2463451191 cites W2950357746 @default.
- W2463451191 cites W2964107775 @default.
- W2463451191 cites W2987803397 @default.
- W2463451191 cites W3014789883 @default.
- W2463451191 cites W3023060607 @default.
- W2463451191 cites W3037395439 @default.
- W2463451191 cites W3187321874 @default.
- W2463451191 cites W55108525 @default.
- W2463451191 cites W1601999546 @default.
- W2463451191 cites W2610897936 @default.