Multiparty Session Programming with Global Protocol Combinators

05/13/2020
by   Keigo Imai, et al.
0

Multiparty Session Types (MPST) is a typing discipline for communication protocols. It ensures the absence of communication errors and deadlocks for well-typed communicating processes. The state-of-the-art implementations of the MPST theory rely on (1) runtime linearity checks to ensure correct usage of communication channels and (2) external domain-specific languages for specifying and verifying multiparty protocols. To overcome these limitations, we propose a library for programming with global combinators – a set of functions for writing and verifying multiparty protocols in OCaml. Local behaviours for all processes in a protocol are inferred at once from a global combinator. We formalise global combinators and prove a sound realisability of global combinators – a well-typed global combinator derives a set of local types, by which typed endpoint programs can ensure type and communication safety. Our approach enables fully-static verification and implementation of the whole protocol, from the protocol specification to the process implementations, to happen in the same language. We compare our implementation to untyped and continuation-passing style implementations, and demonstrate its expressiveness by implementing a plethora of protocols. We show our library can interoperate with existing libraries and services, implementing DNS (Domain Name Service) protocol and the OAuth (Open Authentication) protocol.

READ FULL TEXT

page 1

page 2

page 3

page 4

01/22/2021

A Decentralized Analysis of Multiparty Protocols

Protocols provide the unifying glue in concurrent and distributed softwa...
10/02/2019

RecordFlux: Formal Message Specification and Generation of Verifiable Binary Parsers

Various vulnerabilities have been found in message parsers of protocol i...
09/14/2020

Statically Verified Refinements for Multiparty Protocols

With distributed computing becoming ubiquitous in the modern era, safe d...
09/24/2021

Automated Modular Verification for Race-Free Channels with Implicit and Explicit Synchronization

Ensuring the correctness of software for communication centric programs ...
03/04/2022

A Theory of Protocol Composition

Real-world communication protocols are often built out of a number of si...
05/31/2019

From Global Choreographies to Provably Correct and Efficient Distributed Implementations

We define a method to automatically synthesize provably-correct efficien...
04/03/2020

Generating Interactive WebSocket Applications in TypeScript

Advancements in mobile device computing power have made interactive web ...