Hybrid Multiparty Session Types – Full Version

02/03/2023
by   Lorenzo Gheri, et al.
0

Multiparty session types (MPST) are a specification and verification framework for distributed message-passing systems. The communication protocol of the system is specified as a global type, from which a collection of local types (local process implementations) is obtained by endpoint projection. A global type is a single disciplining entity for the whole system, specified by one designer that has full knowledge of the communication protocol. On the other hand, distributed systems are often described in terms of their components: a different designer is in charge of providing a subprotocol for each component. The problem of modular specification of global protocols has been addressed in the literature, but the state of the art focuses only on dual input/output compatibility. Our work overcomes this limitation. We propose the first MPST theory of multiparty compositionality for distributed protocol specification that is semantics-preserving, allows the composition of two or more components, and retains full MPST expressiveness. We introduce hybrid types for describing subprotocols interacting with each other, define a novel compatibility relation, explicitly describe an algorithm for composing multiple subprotocols into a well-formed global type, and prove that compositionality preserves projection, thus retaining semantic guarantees, such as liveness and deadlock freedom. Finally, we test our work against real-world case studies and we smoothly extend our novel compatibility to MPST with delegation and explicit connections.

READ FULL TEXT
research
06/07/2023

Monitoring Blackbox Implementations of Multiparty Session Protocols

We present a framework for the distributed monitoring of networks of com...
research
05/10/2023

Designing Asynchronous Multiparty Protocols with Crash-Stop Failures

Session types provide a typing discipline for message-passing systems. H...
research
09/17/2020

A type language for message passing component-based systems

Component-based development is challenging in a distributed setting, for...
research
07/08/2021

Generalising Projection in Asynchronous Multiparty Session Types

Multiparty session types (MSTs) provide an efficient methodology for spe...
research
06/26/2019

A Computational Framework for Adaptive Systems and its Verification

Modern computer systems are inherently distributed and feature autonomou...
research
09/17/2020

An Abstract Framework for Choreographic Testing

We initiate the development of a model-driven testing framework for mess...
research
05/08/2023

Behavioural Types for Local-First Software

Peer-to-peer systems are the most resilient form of distributed computin...

Please sign up or login with your details

Forgot password? Click here to reset