Multiparty asynchronous session types

Communication is a central elements in software development. As a potential typed foundation for structured communication-centered programming, session types have been studied over the past decade for a wide range of process calculi and programming languages, focusing on binary (two-party) sessions. This work extends the foregoing theories of binary session types to multiparty, asynchronous sessions, which often arise in practical communication-centered applications. Presented as a typed calculus for mobile processes, the theory introduces a new notion of types in which interactions involving multiple peers are directly abstracted as a global scenario. Global types retain the friendly type syntax of binary session types while specifying dependencies and capturing complex causal chains of multiparty asynchronous interactions. A global type plays the role of a shared agreement among communication peers and is used as a basis of efficient type-checking through its projection onto individual peers. The fundamental properties of the session type discipline, such as communication safety, progress, and session fidelity, are established for general n-party asynchronous interactions.

[1]  Sophia Drossopoulou,et al.  Objects and session types , 2009, Inf. Comput..

[2]  Lucia Acciai,et al.  A Type System for Client Progress in a Service-Oriented Calculus , 2008, Concurrency, Graphs and Models.

[3]  Vasco Thudichum Vasconcelos,et al.  Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited: Two Systems for Higher-Order Session Communication , 1998, SecReT@ICALP.

[4]  Shin Saito,et al.  An Implicitly-Typed Deadlock-Free Process Calculus , 2000, CONCUR.

[5]  Nobuko Yoshida,et al.  Session-Based Distributed Programming in Java , 2008, ECOOP.

[6]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[7]  Laura Bocchi,et al.  Meeting Deadlines Together , 2015, CONCUR.

[8]  Nobuko Yoshida,et al.  Strong normalisation in the pi -calculus , 2004, Inf. Comput..

[9]  Laura Bocchi,et al.  Timed Multiparty Session Types , 2014, CONCUR.

[10]  Jules Villard,et al.  Heaps and Hops , 2011 .

[11]  Ilaria Castellani,et al.  Typing access control and secure information flow in sessions , 2014, Inf. Comput..

[12]  António Ravara,et al.  Modular session types for distributed object-oriented programming , 2010, POPL '10.

[13]  João Costa Seco,et al.  The Conversation Calculus: A Model of Service-Oriented Computation , 2008, ESOP.

[14]  Juan Chen,et al.  Secure distributed programming with value-dependent types , 2011, Journal of Functional Programming.

[15]  Jean-Yves Girard,et al.  Linear Logic , 1987, Theor. Comput. Sci..

[16]  Laura Bocchi,et al.  Asynchronous Distributed Monitoring for Multiparty Session Enforcement , 2011, TGC.

[17]  Luca Padovani,et al.  Contracts for Mobile Processes , 2009, CONCUR.

[18]  Flemming Nielson,et al.  Topology-Dependent Abstractions of Broadcast Networks , 2007, CONCUR.

[19]  Nobuko Yoshida,et al.  Synchronous Multiparty Session Types , 2009, Electron. Notes Theor. Comput. Sci..

[20]  Nobuko Yoshida,et al.  Multiparty Session Nets , 2014, TGC.

[21]  Joshua D. Guttman,et al.  Strand Spaces: Proving Security Protocols Correct , 1999, J. Comput. Secur..

[22]  Kohei Honda,et al.  Types for Dynamic Interaction , 1993 .

[23]  Nobuko Yoshida,et al.  On asynchronous eventful session semantics , 2016, Math. Struct. Comput. Sci..

[24]  K. V. S. Prasad A Prospectus for Mobile Broadcasting Systems , 2006, Electron. Notes Theor. Comput. Sci..

[25]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[26]  Nobuko Yoshida,et al.  Structuring Communication with Session Types , 2014, Concurrent Objects and Beyond.

[27]  Luca Padovani,et al.  A theory of contracts for Web services , 2007, TOPL.

[28]  Joshua D. Guttman,et al.  Choreographies with Secure Boxes and Compromised Principals , 2009, ICE.

[29]  Dezani Mariangiola,et al.  On Progress for Structured Communications , 2008 .

[30]  Atsushi Igarashi,et al.  A generic type system for the Pi-calculus , 2004, Theor. Comput. Sci..

[31]  Antonio Vallecillo,et al.  Typing the Behavior of Objects and Component Using Session Types , 2003, FOCLASA.

[32]  Mariangiola Dezani-Ciancaglini,et al.  Self-adaptive multiparty sessions , 2014, Service Oriented Computing and Applications.

[33]  Nobuko Yoshida,et al.  Compositional Choreographies , 2013, CONCUR.

[34]  Luca Padovani,et al.  On Global Types and Multi-Party Session , 2012, Log. Methods Comput. Sci..

[35]  Nobuko Yoshida,et al.  Type-Safe Eventful Sessions in Java , 2010, ECOOP.

[36]  Sophia Drossopoulou,et al.  Session Types for Object-Oriented Languages , 2006, ECOOP.

[37]  Wang Yi,et al.  Communicating Timed Automata: The More Synchronous, the More Difficult to Verify , 2006, CAV.

[38]  Massimo Merro,et al.  An Observational Theory for Mobile Ad Hoc Networks , 2007, MFPS.

[39]  Mariangiola Dezani-Ciancaglini,et al.  BASS: boxed ambients with safe sessions , 2006, PPDP '06.

[40]  Laura Bocchi,et al.  A Theory of Design-by-Contract for Distributed Multiparty Interactions , 2010, CONCUR.

[41]  Peter Thiemann,et al.  Session Types for Asynchronous Communication , 2007 .

[42]  Nobuko Yoshida,et al.  Multiparty Compatibility in Communicating Automata: Characterisation and Synthesis of Global Session Types , 2013, ICALP.

[43]  Nobuko Yoshida,et al.  Structured Communication-Centred Programming for Web Services , 2007, ESOP.

[44]  Frank Pfenning,et al.  Session Types as Intuitionistic Linear Propositions , 2010, CONCUR.

[45]  Philip Wadler Propositions as sessions , 2012, ICFP '12.

[46]  Laura Bocchi,et al.  Monitoring Networks through Multiparty Session Types , 2013, FMOODS/FORTE.

[47]  Bernard P. Zajac Applied cryptography: Protocols, algorithms, and source code in C , 1994 .

[48]  Davide Sangiorgi,et al.  Session types revisited , 2012, PPDP.

[49]  Riccardo Pucella,et al.  Haskell session types with (almost) no class , 2008, Haskell '08.

[50]  Ivan Lanese,et al.  AIOCJ: A Choreographic Framework for Safe Adaptive Distributed Applications , 2014, SLE.

[51]  Luca Padovani,et al.  Global progress for dynamically interleaved multiparty sessions , 2014, Mathematical Structures in Computer Science.

[52]  Nobuko Yoshida,et al.  Multiparty session types as coherence proofs , 2015, Acta Informatica.

[53]  Peter Thiemann,et al.  An Implementation of Session Types , 2004, PADL.

[54]  Davide Sangiorgi,et al.  Typing and subtyping for mobile processes , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[55]  Kohei Honda,et al.  Types for Dyadic Interaction , 1993, CONCUR.

[56]  Nobuko Yoshida,et al.  Practical interruptible conversations: distributed dynamic verification with multiparty session types and Python , 2015, Formal Methods Syst. Des..

[57]  Patrick Th. Eugster,et al.  Efficient Session Type Guided Distributed Interaction , 2010, COORDINATION.

[58]  Cédric Fournet,et al.  Secure Enforcement for Global Process Specifications , 2009, CONCUR.

[59]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[60]  Samik Basu,et al.  Deciding choreography realizability , 2012, POPL '12.

[61]  Laura Bocchi,et al.  Resolving Non-determinism in Choreographies , 2014, ESOP.

[62]  Nobuko Yoshida,et al.  Global Principal Typing in Partially Commutative Asynchronous Sessions , 2009, ESOP.

[63]  Fritz Henglein,et al.  Trustworthy Pervasive Healthcare Services via Multiparty Session Types , 2012, FHIES.

[64]  Nobuko Yoshida,et al.  Two Session Typing Systems for Higher-Order Mobile Processes , 2007, TLCA.

[65]  Nobuko Yoshida,et al.  Global escape in multiparty sessions † , 2014, Mathematical Structures in Computer Science.

[66]  Mario Bravetti,et al.  Towards a Unifying Theory for Choreography Conformance and Contract Compliance , 2007, SC@ETAPS.

[67]  Naoki Kobayashi,et al.  A New Type System for Deadlock-Free Processes , 2006, CONCUR.

[68]  Simon Gay,et al.  Asynchronous Functional Session Types , 2007 .

[69]  Nobuko Yoshida,et al.  The Scribble Protocol Language , 2013, TGC.

[70]  Davide Sangiorgi,et al.  Towards a Calculus For Wireless Systems , 2006, MFPS.

[71]  Cédric Fournet,et al.  Secure Implementations for Typed Session Abstractions , 2007, 20th IEEE Computer Security Foundations Symposium (CSF'07).

[72]  Nobuko Yoshida,et al.  Type-Safe Communication in Java with Session Types , 2007 .

[73]  Nobuko Yoshida,et al.  SPY: Local Verification of Global Protocols , 2013, RV.

[74]  Nobuko Yoshida,et al.  Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited: Two Systems for Higher-Order Session Communication , 2007, Electron. Notes Theor. Comput. Sci..

[75]  Nobuko Yoshida,et al.  Practical Interruptible Conversations - Distributed Dynamic Verification with Session Types and Python , 2013, RV.

[76]  Leonardo Gaetano Mezzina How to Infer Finite Session Types in a Calculus of Services and Sessions , 2008, COORDINATION.

[77]  Vasco Thudichum Vasconcelos,et al.  Linear type theory for asynchronous session types , 2009, Journal of Functional Programming.

[78]  Cédric Fournet,et al.  Cryptographic Protocol Synthesis and Verification for Multiparty Sessions , 2009, 2009 22nd IEEE Computer Security Foundations Symposium.

[79]  Steve Vinoski,et al.  Advanced Message Queuing Protocol , 2006, IEEE Internet Computing.

[80]  Ilaria Castellani,et al.  Information flow safety in multiparty sessions , 2016, Math. Struct. Comput. Sci..

[81]  Roberto Bruni,et al.  Multiparty Sessions in SOC , 2008, COORDINATION.

[82]  Simon J. Gay Bounded polymorphism in session types , 2008, Math. Struct. Comput. Sci..

[83]  Nobuko Yoshida,et al.  Multiparty Session Types Meet Communicating Automata , 2012, ESOP.

[84]  Leonard M. Adleman,et al.  Proof of proposition 3 , 1992 .

[85]  Loris D'Antoni,et al.  Global Progress in Dynamically Interleaved Multiparty Sessions , 2008, CONCUR.

[86]  Tzu-Chun Chen,et al.  Specifying Stateful Asynchronous Properties for Distributed Programs , 2012, CONCUR.

[87]  Nobuko Yoshida,et al.  Buffered Communication Analysis in Distributed Multiparty Sessions , 2010, CONCUR.

[88]  Mariangiola Dezani-Ciancaglini,et al.  Asynchronous Session Types and Progress for Object Oriented Languages , 2007, FMOODS.

[89]  Nobuko Yoshida,et al.  Multiparty Session C: Safe Parallel Programming with Message Optimisation , 2012, TOOLS.

[90]  Hugo Torres Vieira,et al.  Conversation types , 2009, Theor. Comput. Sci..

[91]  Laura Bocchi,et al.  Timed Runtime Monitoring for Multiparty Conversations , 2014 .

[92]  James R. Larus,et al.  Language support for fast and reliable message-based communication in singularity OS , 2006, EuroSys.

[93]  Fabrizio Montesi,et al.  Deadlock-freedom-by-design: multiparty asynchronous global programming , 2013, POPL.

[94]  Eduardo Bonelli,et al.  Multipoint Session Types for a Distributed Calculus , 2007, TGC.

[95]  Sophia Drossopoulou,et al.  Bounded Session Types for Object Oriented Languages , 2006, FMCO.

[96]  Lasse Nielsen,et al.  Multiparty Symmetric Sum Types , 2010, EXPRESS.

[97]  Daniel Brand,et al.  On Communicating Finite-State Machines , 1983, JACM.

[98]  Simon J. Gay,et al.  Subtyping for session types in the pi calculus , 2005, Acta Informatica.

[99]  Nobuko Yoshida,et al.  Session-Based Compilation Framework for Multicore Programming , 2009, FMCO.

[100]  Dan Suciu,et al.  Journal of the ACM , 2006 .

[101]  Luca Padovani Contract-Directed Synthesis of Simple Orchestrators , 2008, CONCUR.

[102]  Nobuko Yoshida,et al.  Globally Governed Session Semantics , 2013, CONCUR.

[103]  Nobuko Yoshida,et al.  Dynamic multirole session types , 2011, POPL '11.

[104]  Nobuko Yoshida,et al.  Structured Communication-Centered Programming for Web Services , 2007, TOPL.

[105]  Joshua D. Guttman,et al.  Execution Models for Choreographies and Cryptoprotocols , 2009, PLACES.

[106]  R. Milner,et al.  A Theoretical Basis of Communication-Centred Concurrent Programming , 2005 .

[107]  Nobuko Yoshida,et al.  Graph Types for Monadic Mobile Processes , 1996, FSTTCS.

[108]  Nobuko Yoshida,et al.  Protocols by Default - Safe MPI Code Generation Based on Session Types , 2015, CC.

[109]  Nobuko Yoshida,et al.  Parameterised Multiparty Session Types , 2010, Log. Methods Comput. Sci..

[110]  Nobuko Yoshida,et al.  Session types: towards safe and fast reconfigurable programming , 2012, CARN.

[111]  Mariangiola Dezani-Ciancaglini,et al.  Sessions and Session Types: An Overview , 2009, WS-FM.

[112]  K. V. S. Prasad Broadcast Calculus Interpreted in CCS upto Bisimulation , 2002, EXPRESS.

[113]  Luca Padovani,et al.  A Gentle Introduction to Multiparty Asynchronous Session Types , 2015, SFM.

[114]  Gary Brown,et al.  Scribbling Interactions with a Formal Foundation , 2011, ICDCIT.

[115]  Kohei Honda,et al.  An Interaction-based Language and its Typing System , 1994, PARLE.

[116]  Nobuko Yoshida,et al.  Session-Based Communication Optimisation for Higher-Order Mobile Processes , 2009, TLCA.

[117]  António Ravara,et al.  Type checking a multithreaded functional language with session types , 2006, Theor. Comput. Sci..

[118]  Nobuko Yoshida,et al.  Characteristic Bisimulation for Higher-Order Session Processes , 2015, CONCUR.

[119]  Luca Padovani,et al.  Inference of Global Progress Properties for Dynamically Interleaved Multiparty Sessions , 2013, COORDINATION.

[120]  Nobuko Yoshida,et al.  Web Services, Mobile Processes and Types , 2007, Bull. EATCS.

[121]  Wayne Luk,et al.  Scalable Session Programming for Heterogeneous High-Performance Systems , 2013, SEFM Workshops.

[122]  Charlene O'Hanlon A Conversation with Steve Ross-Talbot , 2006, ACM Queue.

[123]  Romain Demangeon,et al.  Nested Protocols in Session Types , 2012, CONCUR.

[124]  Luca Padovani,et al.  On Global Types and Multi-party Sessions , 2011, FMOODS/FORTE.

[125]  Eduardo Bonelli,et al.  Correspondence assertions for process synchronization in concurrent communications , 2005, J. Funct. Program..

[126]  Nobuko Yoshida,et al.  Pabble: parameterised Scribble , 2015, Service Oriented Computing and Applications.

[127]  Nobuko Yoshida,et al.  Structured Interactional Exceptions in Session Types , 2008, CONCUR.

[128]  Ilaria Castellani,et al.  Session Types for Access and Information Flow Control , 2010, CONCUR.

[129]  Emilio Tuosto,et al.  Synthesising Choreographies from Local Session Types , 2012, CONCUR.

[130]  Luca Padovani,et al.  Deadlock and lock freedom in the linear π-calculus , 2014, CSL-LICS.

[131]  Luca Padovani,et al.  Fair Subtyping for Multi-party Session Types , 2011, COORDINATION.

[132]  Nobuko Yoshida,et al.  Safe Parallel Programming with Session Java , 2011, COORDINATION.

[133]  Emilio Tuosto,et al.  From Communicating Machines to Graphical Choreographies , 2015, POPL.

[134]  Matthew Hennessy,et al.  A distributed Pi-calculus , 2007 .

[135]  Laura Bocchi,et al.  A Multiparty Multi-session Logic , 2012, TGC.

[136]  F. Javier Thayer Fábrega,et al.  Strand spaces: proving security protocols correct , 1999 .