Connectors meet Choreographies

We present Cho-Reo-graphies (CR), a new language model that unites two powerful programming paradigms for concurrent software based on communicating processes: Choreographic Programming and Exogenous Coordination. In CR, programmers specify the desired communications among processes using a choreography, and define how communications should be concretely animated by connectors given as constraint automata (e.g., synchronous barriers and asynchronous multi-casts). CR is the first choreography calculus where different communication semantics (determined by connectors) can be freely mixed; since connectors are user-defined, CR also supports many communication semantics that were previously unavailable for choreographies. We develop a static analysis that guarantees that a choreography in CR and its user-defined connectors are compatible, define a compiler from choreographies to a process calculus based on connectors, and prove that compatibility guarantees deadlock-freedom of the compiled process implementations.

[1]  Kung-Kiu Lau,et al.  Exogenous connectors for software components , 2005, CBSE'05.

[2]  Elizabeth Latronico,et al.  System Design, Modeling, and Simulation Using Ptolemy Ii Ontologies , 2013 .

[3]  Farhad Arbab,et al.  Partially distributed coordination with Reo and constraint automata , 2015, Service Oriented Computing and Applications.

[4]  F. Arbab What Do You Mean , Coordination ? , 1998 .

[5]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[6]  Farhad Arbab,et al.  The IWIM Model for Coordination of Concurrent Activities , 1996, COORDINATION.

[7]  Saverio Giallorenzo,et al.  Real-World Choreographies , 2016 .

[8]  Shan Lu,et al.  TaxDC: A Taxonomy of Non-Deterministic Concurrency Bugs in Datacenter Distributed Systems , 2016, ASPLOS.

[9]  Nobuko Yoshida,et al.  Protocol-based verification of message-passing parallel programs , 2015, OOPSLA.

[10]  Farhad Arbab,et al.  PrDK: Protocol Programming with Automata , 2016, TACAS.

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

[12]  Farhad Arbab,et al.  Reo: A Channel-based Coordination Model for Component Composition , 2005 .

[13]  Edward A. Lee,et al.  Ptolemy: A Framework for Simulating and Prototyping Heterogenous Systems , 2001, Int. J. Comput. Simul..

[14]  Philip Wadler,et al.  Coherence Generalises Duality: A Logical Explanation of Multiparty Session Types , 2016, CONCUR.

[15]  Flemming Nielson,et al.  Enforcing Availability in Failure-Aware Communicating Systems , 2016, FORTE.

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

[17]  Luís Cruz-Filipe,et al.  On Asynchrony and Choreographies , 2017, ICE@DisCoTec.

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

[19]  Roberto Bruni,et al.  A basic algebra of stateless connectors , 2006, Theor. Comput. Sci..

[20]  Luís Cruz-Filipe,et al.  Procedural Choreographic Programming , 2017, FORTE.

[21]  Erik P. de Vink,et al.  Dreams: a framework for distributed synchronous coordination , 2012, SAC '12.

[22]  Yuanyuan Zhou,et al.  Learning from mistakes: a comprehensive study on real world concurrency bug characteristics , 2008, ASPLOS.

[23]  Farhad Arbab,et al.  Puff, The Magic Protocol , 2011, Formal Modeling: Actors, Open Systems, Biological Systems.

[24]  José Proença,et al.  Synchronous Coordination of Distributed Components , 2011 .

[25]  Joseph Sifakis,et al.  The Algebra of Connectors - Structuring Interaction in BIP , 2008, IEEE Trans. Computers.

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

[27]  Joseph Sifakis,et al.  Rigorous Component-Based System Design Using the BIP Framework , 2011, IEEE Software.

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

[29]  Fabrizio Montesi,et al.  Kickstarting Choreographic Programming , 2014, WS-FM.

[30]  Sung-Shik T. Q. Jongmans Automata-theoretic protocol programming , 2016 .

[31]  Davide Ancona,et al.  Behavioral Types in Programming Languages , 2016, Found. Trends Program. Lang..

[32]  Ivan Lanese,et al.  Bridging the Gap between Interaction- and Process-Oriented Choreographies , 2008, 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods.

[33]  Luís Cruz-Filipe,et al.  A core model for choreographic programming , 2020, Theor. Comput. Sci..

[34]  Christel Baier,et al.  Modeling component connectors in Reo by constraint automata , 2004, Sci. Comput. Program..

[35]  Christel Baier,et al.  Synthesis of Reo Circuits for Implementation of Component-Connector Automata Specifications , 2005, COORDINATION.

[36]  Ivan Lanese,et al.  Foundations of Session Types and Behavioural Contracts , 2016, ACM Comput. Surv..

[37]  Ivan Lanese,et al.  Dynamic Choreographies: Theory And Implementation , 2017, Log. Methods Comput. Sci..

[38]  Joseph Sifakis,et al.  Modeling Heterogeneous Real-time Components in BIP , 2006, Fourth IEEE International Conference on Software Engineering and Formal Methods (SEFM'06).

[39]  Kim S. Larsen,et al.  The Paths to Choreography Extraction , 2017, FoSSaCS.

[40]  Joseph Sifakis,et al.  Causal semantics for the algebra of connectors , 2008, Formal Methods Syst. Des..

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

[42]  Christel Baier,et al.  Synthesis of Reo Connectors for Strategies and Controllers , 2014, Fundam. Informaticae.

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