explicit connection actions in multiparty session types
play

Explicit Connection Actions in Multiparty Session Types Raymond Hu - PowerPoint PPT Presentation

Explicit Connection Actions in Multiparty Session Types Raymond Hu and Nobuko Yoshida Imperial College London 1 / 20 Outline Background: multiparty session types (MPST) Scribble: ongoing work on implementing and applying MPST to


  1. Explicit Connection Actions in Multiparty Session Types Raymond Hu and Nobuko Yoshida Imperial College London 1 / 20

  2. Outline ◮ Background: multiparty session types (MPST) ◮ Scribble: ongoing work on implementing and applying MPST to practice × Standard MPST do not support sessions with dynamic or optional involvement of participants ◮ MPST with explicit connection actions ◮ MP sessions as a dynamically evolving configuration of binary connections ◮ Modelling-based well-formedness for MPST protocols ◮ Session subtyping and role progress ◮ Multiparty correlation of binary connections ◮ Motivating examples ◮ Web services choreography (Travel Agency) ◮ Microservices industry use case (Supplier Info) ◮ Standardised application-layer protocol (FTP) 2 / 20

  3. MPST (background) ◮ Standard presentation: three-layer framework ◮ Global type G = A → B : � U 1 � . B → C : � U 2 � . C → A : � U 3 � Global description of multiparty message passing G protocol/choreography Projection Participants abstracted as roles ◮ Local types T Alice T Bob T Carol T A = ! � B , U 1 � . ? � C , U 3 � Type checking Localised view of the protocol for each role ◮ Endpoint processes P Alice P Bob P Carol P A = a [ A ]( x ) . x ! � B , u 1 � . x ?( C , y ) Perform I/O via special primitives on channels ◮ Communication safety is ensured for a parallel composition of well-typed endpoints [POPL08] Multiparty asynchronous session types . Honda, Yoshida and Carbone. [CONCUR08] Global progress in dynamically interleaved multiparty sessions . Bettini, Coppo, D’Antoni, Luca, Dezani-Ciancaglini and Yoshida. 3 / 20

  4. MPST (background) ◮ Standard presentation: three-layer framework ◮ Global type G = A → B : � U 1 � . B → C : � U 2 � . C → A : � U 3 � Global description of multiparty message passing G protocol/choreography Projection Participants abstracted as roles ◮ Local types T Alice T Bob T Carol T A = ! � B , U 1 � . ? � C , U 3 � Type checking Localised view of the protocol for each role ◮ Endpoint processes P Alice P Bob P Carol P A = a [ A ]( x ) . x ! � B , u 1 � . x ?( C , y ) Perform I/O via special primitives on channels ◮ Communication safety is ensured for a parallel composition of well-typed endpoints [POPL08] Multiparty asynchronous session types . Honda, Yoshida and Carbone. [CONCUR08] Global progress in dynamically interleaved multiparty sessions . Bettini, Coppo, D’Antoni, Luca, Dezani-Ciancaglini and Yoshida. 3 / 20

  5. MPST (background) ◮ Standard presentation: three-layer framework ◮ Global type G = A → B : � U 1 � . B → C : � U 2 � . C → A : � U 3 � Global description of multiparty message passing G protocol/choreography Projection Participants abstracted as roles ◮ Local types T Alice T Bob T Carol T A = ! � B , U 1 � . ? � C , U 3 � Type checking Localised view of the protocol for each role ◮ Endpoint processes P Alice P Bob P Carol P A = a [ A ]( x ) . x ! � B , u 1 � . x ?( C , y ) Perform I/O via special primitives on channels ◮ Communication safety is ensured for a parallel composition of well-typed endpoints [POPL08] Multiparty asynchronous session types . Honda, Yoshida and Carbone. [CONCUR08] Global progress in dynamically interleaved multiparty sessions . Bettini, Coppo, D’Antoni, Luca, Dezani-Ciancaglini and Yoshida. 3 / 20

  6. MPST (background) ◮ Standard presentation: three-layer framework ◮ Global type G = A → B : � U 1 � . B → C : � U 2 � . C → A : � U 3 � Global description of multiparty message passing G protocol/choreography Projection Participants abstracted as roles ◮ Local types T Alice T Bob T Carol T A = ! � B , U 1 � . ? � C , U 3 � Type checking Localised view of the protocol for each role ◮ Endpoint processes P Alice P Bob P Carol P A = a [ A ]( x ) . x ! � B , u 1 � . x ?( C , y ) Perform I/O via special primitives on channels ◮ Communication safety is ensured for a parallel composition of well-typed endpoints [POPL08] Multiparty asynchronous session types . Honda, Yoshida and Carbone. [CONCUR08] Global progress in dynamically interleaved multiparty sessions . Bettini, Coppo, D’Antoni, Luca, Dezani-Ciancaglini and Yoshida. 3 / 20

  7. Web Services use case: Travel Agency ◮ W3C Choreography working group requirements use case https://www.w3.org/TR/ws-chor-reqs/#UC-001 Agent Client Service Loop query(Str) quote(Int) Alt pay(Str) confirm(Int) accpt(Int) reject() [ECOOP06] Session Types for Object-Oriented Languages . Dezani-Ciancaglini, Mostrous, Yoshida and Drossopoulou. “Buyer-Seller-Shipper” [CONCUR08] Global progress in dynamically interleaved multiparty sessions . Bettini, Coppo, D’Antoni, Luca, Dezani-Ciancaglini and Yoshida. “Three-Buyer” [FTPL16] Behavioral Types in Programming Languages . Ancona et al. “Customer-Agency” 4 / 20

  8. Travel Agency in MPST (naive attempt) ◮ As a Scribble global protocol (asynchronous MPST global type): global protocol Travel(role C, role A, role S) { choice at C { query(Str) from C to A; quote(Int) from A to C; do Travel(C, A, S); } or { pay(Str) from C to S; confirm(Int) from S to C; accpt(Int) from C to A; } or { reject() from C to A; } } × Not a valid global type ◮ “Unfinished role” error ◮ Ruled out by syntactic well-formedness: Each involved participant must be present in all choice cases ◮ A session cannot have dynamic or optional involvement of participants ◮ MPST literature uses work arounds: e.g. , adding extra messages, decomposing into separate protocols, session delegation , ... 5 / 20

  9. Travel Agency in MPST (naive attempt) ◮ As a Scribble global protocol (asynchronous MPST global type): global protocol Travel(role C, role A, role S) { choice at C { query(Str) from C to A; quote(Int) from A to C; do Travel(C, A, S); } or { pay(Str) from C to S; confirm(Int) from S to C; accpt(Int) from C to A; } or { reject() from C to A; } } × Not a valid global type ◮ “Unfinished role” error ◮ Ruled out by syntactic well-formedness: Each involved participant must be present in all choice cases ◮ A session cannot have dynamic or optional involvement of participants ◮ MPST literature uses work arounds: e.g. , adding extra messages, decomposing into separate protocols, session delegation , ... 5 / 20

  10. Travel Agency in MPST (naive attempt) ◮ As a Scribble global protocol (asynchronous MPST global type): global protocol Travel(role C, role A, role S) { choice at C { query(Str) from C to A; quote(Int) from A to C; do Travel(C, A, S); } or { pay(Str) from C to S; confirm(Int) from S to C; accpt(Int) from C to A; } or { reject() from C to A; } } × Not a valid global type ◮ “Unfinished role” error ◮ Ruled out by syntactic well-formedness: Each involved participant must be present in all choice cases ◮ A session cannot have dynamic or optional involvement of participants ◮ MPST literature uses work arounds: e.g. , adding extra messages, decomposing into separate protocols, session delegation , ... 5 / 20

  11. Travel Agency in MPST (naive attempt) ◮ As a Scribble global protocol (asynchronous MPST global type): global protocol Travel(role C, role A, role S) { choice at C { query(Str) from C to A; quote(Int) from A to C; do Travel(C, A, S); } or { pay(Str) from C to S; confirm(Int) from S to C; accpt(Int) from C to A; } or { reject() from C to A; } } × Not a valid global type ◮ “Unfinished role” error ◮ Ruled out by syntactic well-formedness: Each involved participant must be present in all choice cases ◮ A session cannot have dynamic or optional involvement of participants ◮ MPST literature uses work arounds: e.g. , adding extra messages, decomposing into separate protocols, session delegation , ... 5 / 20

  12. Travel Agency in MPST (naive attempt) ◮ As a Scribble global protocol (asynchronous MPST global type): global protocol Travel(role C, role A, role S) { choice at C { query(Str) from C to A; quote(Int) from A to C; do Travel(C, A, S); } or { pay(Str) from C to S; confirm(Int) from S to C; accpt(Int) from C to A; } or { reject() from C to A; } } × Not a valid global type ◮ “Unfinished role” error ◮ Ruled out by syntactic well-formedness: Each involved participant must be present in all choice cases ◮ A session cannot have dynamic or optional involvement of participants ◮ MPST literature uses work arounds: e.g. , adding extra messages, decomposing into separate protocols, session delegation , ... 5 / 20

  13. Travel Agency in MPST (naive attempt) ◮ As a Scribble global protocol (asynchronous MPST global type): global protocol Travel(role C, role A, role S) { choice at C { query(Str) from C to A; quote(Int) from A to C; do Travel(C, A, S); } or { pay(Str) from C to S; confirm(Int) from S to C; accpt(Int) from C to A; } or { reject() from C to A; } } × Not a valid global type ◮ “Unfinished role” error ◮ Ruled out by syntactic well-formedness: Each involved participant must be present in all choice cases ◮ A session cannot have dynamic or optional involvement of participants ◮ MPST literature uses work arounds: e.g. , adding extra messages, decomposing into separate protocols, session delegation , ... 5 / 20

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend