Choreographies meet Communication Failures

12/14/2017
by   Fabrizio Montesi, et al.
0

Choreographies are global descriptions of communication structures, inspired by the "Alice and Bob" notation of security protocols. They have been successfully employed in the design and implementation of distributed systems. However, there is still limited evidence of the applicability of choreographies in the real-world setting of distributed programming, where communication actions may fail. In this work, we propose the first choreography model that allows for communication failures and the programming of user-defined code to deal with such failures. We validate our model by implementing common strategies for handling communication failures in a robust way, which in turn can be used as a library by choreographies that assume reliable communication. We equip our model with a typing discipline that can statically verify reliability properties, in particular at-most-once and exactly-once delivery. We demonstrate the applicability of our model by defining a semantics-preserving compilation procedure towards a process calculus equipped with unreliable I/O actions.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/10/2023

Designing Asynchronous Multiparty Protocols with Crash-Stop Failures

Session types provide a typing discipline for message-passing systems. H...
research
01/25/2023

MAGπ: Types for Failure-Prone Communication

Multiparty Session Types (MPST) are a typing discipline for communicatio...
research
03/12/2021

Meta-Modeling of Assembly Contingencies and Planning for Repair

The World Robotics Challenge (2018 2020) was designed to challenge t...
research
03/07/2023

Real-World Choreographic Programming: An Experience Report

Choreographic programming is a programming paradigm, whereby the overall...
research
07/04/2022

On implementing SWMR registers from SWSR registers in systems with Byzantine failures

The implementation of registers from (potentially) weaker registers is a...
research
10/23/2017

Are Multiagent Systems Resilient to Communication Failures?

A challenge in multiagent control systems is to ensure that they are app...
research
08/17/2022

When malloc() Never Returns NULL – Reliability as an Illusion

For decades, the guidance given to software engineers has been to check ...

Please sign up or login with your details

Forgot password? Click here to reset