We use cookies to distinguish you from other users and to provide you with a better experience on our websites. Close this message to accept cookies or find out how to manage your cookie settings.
To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Before venturing into the study of choreographies, we introduce the formalism of inference systems. Inference systems are widely used in the fields of formal logic and programming languages and they were later applied to theory of choreographies as well.
To model system implementations, we define the language of Simple Processes. In this language, systems are defined in the classical style of giving a separate program for each process. Process programs use send and receive actions that need to match during execution in order to achieve a communication. We discuss how implementations of choreographies from the previous chapter can be written in terms of this language. We also formulate in our setting the key properties of parallelism, communication safety, and starvation-freedom, respectively: the capability of executing independent communications in any order; the property that processes never attempt to interact by performing incompatible actions; and the property that every running process eventually gets to act.
We explore conservative extensions to Recursive Choreographies, which aim at making choreographies easier to read or to write. These extensions are given as syntactic sugar and include constructs for request-reply interactions, message destructuring, and distributed conditions.
We study the properties of Recursive Choreographies and its related notion of EPP in depth. Endpoint projection is proven to guarantee choreography compliance and communication safety in this setting. Starvation-freedom does not hold anymore in general, due to the possibilities opened by general recursion in Recursive Choreographies, but it holds for the tail-recursive fragment of the language. Under some reasonable assumptions, the weaker property of deadlock-freedom holds for any implementation returned by EPP. That is, the EPP of a choreography never gets stuck.
Concurrent and distributed systems based on message passing have become important drivers of our technological advancement. Their programming requires the integration of communicating processes, at the heart of which we find the notion of choreography: a document that prescribes the communications that processes should perform in order to reach a common goal. We say that a system has the property of choreography compliance if the interactions that take place among processes follow the agreed-upon choreography.
We introduce choreographic choice, another construct for choosing between alternative choreographies. Differently from conditionals, choreographic choices are not necessarily resolved by a single process but might require performing interactions instead.
We equip processes with the capabilities of storing values (memory) and performing local computation. The resulting choreographic and process languages are called, respectively, Stateful Choreographies and Stateful Processes. We update the notion of EPP to these new languages.
The syntax of choreographies is enhanced with the possibility of writing and invoking recursive procedures, yielding the language of Recursive Choreographies. This opens the door to modelling protocols that allow for retries and data streams of unbounded length. The language of process implementations and the notion of EPP are updated accordingly.
We introduce endpoint projection (EPP), a translation of choreographies into implementations given in terms of compositions of processes. Endpoint projection is proven to guarantee choreography compliance by establishing a correspondence between the semantics of source choreographies and their corresponding implementations returned by EPP for them. Choreographies can be seen as descriptions of desired emergent behaviour for communicating processes. Endpoint projection is a way to obtain processes that will collectively implement the desired emergent behaviour. Building on the correctness of EPP and the properties of choreographies, we prove that the implementations generated by EPP are always communication-safe and starvation-free.
We extend our choreographic and process languages with conditionals (if-then-else). The introduction of conditionals has deep ramifications for the theory of EPP since it makes it possible to write choreographies where processes do not have enough information to know what they are supposed to do. This is known as knowledge of choice. We study principles for the transmission of knowledge and extend EPP to address knowledge of choice.