The Paths to Choreography Extraction

Choreographies are global descriptions of interactions among concurrent components, most notably used in the settings of verification and synthesis of correct-by-construction software. They require a top-down approach: programmers first write choreographies, and then use them to verify or synthesize their programs. However, most software does not come with choreographies yet, which prevents their application. To attack this problem, previous work investigated choreography extraction, which automatically constructs a choreography that describes the behavior of a given set of programs or protocol specifications. We propose a new extraction methodology that improves on the state of the art: we can deal with programs that are equipped with state and internal computation; time complexity is dramatically better; and we capture programs that work by exploiting asynchronous communication.

[1]  Samik Basu,et al.  Choreography conformance via synchronizability , 2011, WWW.

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

[3]  Ivan Lanese,et al.  Dynamic Choreographies - Safe Runtime Updates of Distributed Applications , 2015, COORDINATION.

[4]  Luís Cruz-Filipe,et al.  Choreographies in Practice , 2016, FORTE.

[5]  Matthew Hennessy,et al.  An efficiency preorder for processes , 1991, Acta Informatica.

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

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

[8]  Fabrizio Montesi,et al.  Progress as Compositional Lock-Freedom , 2014, COORDINATION.

[9]  Jan Mendling,et al.  Business Process Model and Notation , 2012, Lecture Notes in Business Information Processing.

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

[11]  Fabrizio Montesi,et al.  Choreographies, logically , 2017, Distributed Computing.

[12]  Nobuko Yoshida,et al.  Pabble: Parameterised Scribble for Parallel Programming , 2014, 2014 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[13]  T. D. Fletcher,et al.  Web Services Choreography Description Language Version 1.0, W3C , 2004 .

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

[15]  Luís Cruz-Filipe,et al.  A Core Model for Choreographic Programming , 2015, FACS.

[16]  Raheel Ahmad,et al.  The π-Calculus: A theory of mobile processes , 2008, Scalable Comput. Pract. Exp..

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

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

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

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

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

[22]  Roger M. Needham,et al.  Using encryption for authentication in large networks of computers , 1978, CACM.

[23]  Luís Cruz-Filipe,et al.  Choreographies, Divided and Conquered , 2016, ArXiv.

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

[25]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

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