Database of Research Tools Developed Using CADP

Formal Analysis of Choreography Specifications

Organisation: Inria Grenoble - Rhône-Alpes (FRANCE)
University of Nantes (FRANCE)
University of California at Santa Barbara (USA)
Sharif University of Technology (IRAN)

Functionality: Formal analysis of choreographies.

Tools used: Python
CADP (Construction and Analysis of Distributed Processes)

Period: 2012

Description: Many software systems are now built using independently developed services, which are mostly geographically and organizationally distributed. The specification and analysis of interactions among such distributed systems is a major concern for ensuring their correctness and reliability. In order to simplify the construction of these systems, their design often relies on a contract, which describes from a global point of view the admissible interaction sequences exchanged between the participants. In the area of Service Oriented Computing (SOC), this contract is called choreography and the participants are called peers. The peers correspond to a distributed implementation of this choreography, and can be derived by projection, i.e., by projecting the choreography specification to each peer by ignoring the messages that are not sent or received by that peer. A crucial question in this context is to check whether the peers behave exactly as required in the choreography. This property is called realizability and particularly matters when the system is built following a top-down development process. Choreographies can be specified using specification languages such as Web Services Choreography Description Language (WS-CDL) and visualized using graphical formalisms such as collaboration diagrams.

This work proposes an encoding of collaboration diagrams into the LOTOS process algebraic language for choreography analysis. LOTOS provides the necessary level of expressiveness to describe all the collaboration diagram interaction constraints and is equipped with the state-of-the-art state space exploration and verification functionalities of the CADP toolbox. This encoding allows the designer to (i) check the temporal properties of choreographies using CADP, (ii) check the realizability of choreographies for both synchronous communication and bounded asynchronous communication, and (iii) automate the peer generation process. Realizability indicates whether peers can be generated from a given choreography specification in such a way that the interactions of the generated peers exactly match the choreography specification.

When a choreography is not realizable, a new approach is proposed, which identifies all (message ordering) problems which prevent realizability of a choreography, and provides a possible solution to enforce them. This is done by automatically generating monitors, which act as local controllers interacting with their peer and the rest of the system in order to make the peers respect the choreography requirements. These monitors are obtained by first generating the set of distributed peers by projection from the choreography specification. Then, the system synchronizability (i.e., the system behavior, considering the send messages, preserves the same message sequences under synchronous and 1-bounded asynchronous communication) and realizability properties are verified using equivalence checking. If one of these properties is violated, the generated counterexample is exploited to augment the monitors with a new synchronization message. Monitors are obtained through an iterative process, automatically refining their behaviors. The successive addition of these messages will finally enforce both synchronizability and realizability.

This approach has been automated by encoding choreographies into the value-passing process algebra LNT, one of the input languages of CADP. This makes possible the reuse of existing state space exploration tools for generating peers and distributed systems, and equivalence checking techniques for verifying synchronizability and realizability. The process is fully supported (no human intervention) by calling various tools, some reused from CADP, others newly implemented (e.g., for automating the iterative part of the process). The approach has been validated on hundreds of examples, some of them borrowed from real-world scenarios found in the literature.

Conclusions: The proposed framework for modeling and analyzing choreographies, based on value-passing process algebras and the CADP toolbox, is directly applicable to all notations which are transformable into conversation protocols (e.g., BPMN 2.0, collaboration diagrams, WS-CDL, Singularity channels, MSC, etc.).

Publications: [Salaun-Bultan-Roohi-12] Gwen Salaün, Tevfik Bultan, and Nima Roohi. "Realizability of Choreographies Using Process Algebra Encodings". IEEE Transactions on Services Computing 5(3):290-304, 2012.
Available on-line at:
or from our FTP site in PDF or PostScript

[Gudemann-Salaun-Ouederni-12] Matthias Güdemann, Gwen Salaün, and Meriem Ouederni. "Counterexample Guided Synthesis of Monitors for Realizability Enforcement". Proceedings of the 10th International Symposium on Automated Technology for Verification and Analysis ATVA'2012 (Thiruvananthapuram, India), Lecture Notes in Computer Science vol. 7561, pages 238-253. Springer Verlag, October 2012.
Available on-line at:
or from our FTP site in PDF or PostScript

[Poizat-Salaun-12] Pascal Poizat and Gwen Salaün. "Checking the Realizability of BPMN 2.0 Choreographies". Proceedings of the 27th Symposium on Applied Computing SAC'2012 (Riva del Garda, Italy), pages 1927-1934. ACM Computer Society Press, March 2012.
Available on-line at:
or from our FTP site in PDF or PostScript

[Dumont-12] Alexandre Dumont. "A LOTOS NT Library for Modelisation, Analysis, and Validation of Distributed Systems". Internship Report, Ecole Nationale Supérieure d'Informatique et Mathématiques Appliquées de Grenoble (ENSIMAG), June 2012.
Available on-line at:
or from our FTP site in PDF or PostScript

Gwen Salaün
Inria Grenoble - Rhône-Alpes
655, avenue de l'Europe
F-38330 Montbonnot Saint Martin
Tel: +33 (0)4 76 61 54 28
Fax: +33 (0)4 76 61 52 52

Further remarks: This tool, amongst others, is described on the CADP Web site:

Last modified: Fri Feb 19 09:13:01 2016.

Back to the CADP research tools page