Design-by-contract for flexible multiparty session protocols

Choreographic models support a correctness-by-construction principle in distributed programming. Also, they enable the automatic generation of correct message-based communication patterns from a global specification of the desired system behaviour. In this paper we extend the theory of choreography...

Full description

Bibliographic Details
Main Authors: Gheri, L, Lanese, I, Sayers, N, Tuosto, E, Yoshida, N
Format: Conference item
Language:English
Published: Schloss Dagstuhl – Leibniz-Zentrum für Informatik 2022
_version_ 1797111881747398656
author Gheri, L
Lanese, I
Sayers, N
Tuosto, E
Yoshida, N
author_facet Gheri, L
Lanese, I
Sayers, N
Tuosto, E
Yoshida, N
author_sort Gheri, L
collection OXFORD
description Choreographic models support a correctness-by-construction principle in distributed programming. Also, they enable the automatic generation of correct message-based communication patterns from a global specification of the desired system behaviour. In this paper we extend the theory of choreography automata, a choreographic model based on finite-state automata, with two key features. First, we allow participants to act only in some of the scenarios described by the choreography automaton. While this seems natural, many choreographic approaches in the literature, and choreography automata in particular, forbid this behaviour. Second, we equip communications with assertions constraining the values that can be communicated, enabling a design-by-contract approach. We provide a toolchain allowing to exploit the theory above to generate APIs for TypeScript web programming. Programs communicating via the generated APIs follow, by construction, the prescribed communication pattern and are free from communication errors such as deadlocks.
first_indexed 2024-03-07T08:16:40Z
format Conference item
id oxford-uuid:1a6b5c89-9d8e-43a3-acbe-4a3a8c619207
institution University of Oxford
language English
last_indexed 2024-03-07T08:16:40Z
publishDate 2022
publisher Schloss Dagstuhl – Leibniz-Zentrum für Informatik
record_format dspace
spelling oxford-uuid:1a6b5c89-9d8e-43a3-acbe-4a3a8c6192072024-01-10T15:27:36ZDesign-by-contract for flexible multiparty session protocolsConference itemhttp://purl.org/coar/resource_type/c_5794uuid:1a6b5c89-9d8e-43a3-acbe-4a3a8c619207EnglishSymplectic ElementsSchloss Dagstuhl – Leibniz-Zentrum für Informatik2022Gheri, LLanese, ISayers, NTuosto, EYoshida, NChoreographic models support a correctness-by-construction principle in distributed programming. Also, they enable the automatic generation of correct message-based communication patterns from a global specification of the desired system behaviour. In this paper we extend the theory of choreography automata, a choreographic model based on finite-state automata, with two key features. First, we allow participants to act only in some of the scenarios described by the choreography automaton. While this seems natural, many choreographic approaches in the literature, and choreography automata in particular, forbid this behaviour. Second, we equip communications with assertions constraining the values that can be communicated, enabling a design-by-contract approach. We provide a toolchain allowing to exploit the theory above to generate APIs for TypeScript web programming. Programs communicating via the generated APIs follow, by construction, the prescribed communication pattern and are free from communication errors such as deadlocks.
spellingShingle Gheri, L
Lanese, I
Sayers, N
Tuosto, E
Yoshida, N
Design-by-contract for flexible multiparty session protocols
title Design-by-contract for flexible multiparty session protocols
title_full Design-by-contract for flexible multiparty session protocols
title_fullStr Design-by-contract for flexible multiparty session protocols
title_full_unstemmed Design-by-contract for flexible multiparty session protocols
title_short Design-by-contract for flexible multiparty session protocols
title_sort design by contract for flexible multiparty session protocols
work_keys_str_mv AT gheril designbycontractforflexiblemultipartysessionprotocols
AT lanesei designbycontractforflexiblemultipartysessionprotocols
AT sayersn designbycontractforflexiblemultipartysessionprotocols
AT tuostoe designbycontractforflexiblemultipartysessionprotocols
AT yoshidan designbycontractforflexiblemultipartysessionprotocols