Automated Choreography Repair

Choreography analysis is a crucial problem in concurrent and distributed system development. A choreography specifies the desired ordering of message exchanges among the components of a system. The realizability of a choreography amounts to determining the existence of components whose communication behavior conforms to the given choreography. The realizability problem has been shown to be decidable. In this paper, we investigate the repairability of un-realizable choreographies, where the goal is to identify a set of changes to a given un-realizable choreography that will make it realizable. We present a technique for automatically repairing un-realizable choreographies and provide formal guarantees of correctness and termination. We demonstrate the viability of our technique by applying it to several representative unrealizable choreographies from Singularity OS channel contracts and Web services.

[1]  Niels Lohmann,et al.  Realizability is controllability , 2009, ZEUS.

[2]  Rajeev Alur,et al.  Realizability and verification of MSC graphs , 2005, Theor. Comput. Sci..

[3]  Ivan Lanese,et al.  Amending Choreographies , 2013, WWV.

[4]  Tevfik Bultan,et al.  Analyzing singularity channel contracts , 2009, ISSTA.

[5]  Nobuko Yoshida,et al.  Multiparty asynchronous session types , 2008, POPL '08.

[6]  Chao Cai,et al.  Towards the theoretical foundation of choreography , 2007, WWW '07.

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

[8]  Tevfik Bultan,et al.  Realizability analysis for message-based interactions using shared-state projections , 2010, FSE '10.

[9]  Gwen Salaün,et al.  Counterexample Guided Synthesis of Monitors for Realizability Enforcement , 2012, ATVA.

[10]  Paola Inverardi,et al.  A Model-Based Synthesis Process for Choreography Realizability Enforcement , 2013, FASE.

[11]  Xiang Fu,et al.  Conversation protocols: a formalism for specification and verification of reactive electronic services , 2003, Theor. Comput. Sci..

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

[13]  James R. Larus,et al.  Singularity: rethinking the software stack , 2007, OPSR.

[14]  Joe Armstrong Getting Erlang to talk to the outside world , 2002, ERLANG '02.

[15]  Prabir Nandi,et al.  Conversational Browser , 2002 .

[16]  Hans-Arno Jacobsen,et al.  A distributed framework for reliable and efficient service choreographies , 2011, WWW.

[17]  Xiang Fu,et al.  Specification of realizable service conversations using collaboration diagrams , 2007, IEEE International Conference on Service-Oriented Computing and Applications (SOCA '07).