On Communicating Finite-State Machines
Journal of the ACM (JACM)
Model checking
Getting Erlang to talk to the outside world
Proceedings of the 2002 ACM SIGPLAN workshop on Erlang
Language Primitives and Type Discipline for Structured Communication-Based Programming
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
A Case for Message Oriented Middleware
Proceedings of the 13th International Symposium on Distributed Computing
SVL: A Scripting Language for Compositional Verification
FORTE '01 Proceedings of the IFIP TC6/WG6.1 - 21st International Conference on Formal Techniques for Networked and Distributed Systems
Realizability and Verification of MSC Graphs
ICALP '01 Proceedings of the 28th International Colloquium on Automata, Languages and Programming,
Communications of the ACM - E-services: a cornucopia of digital offerings ushers in the next Net-based evolution
Incremental elaboration of scenario-based specifications and behavior models using implied scenarios
ACM Transactions on Software Engineering and Methodology (TOSEM)
Theoretical Computer Science - Implementation and application of automata
MOM vs. RPC: Communication Models for Distributed Applications
IEEE Internet Computing
Language support for fast and reliable message-based communication in singularity OS
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Singularity: rethinking the software stack
ACM SIGOPS Operating Systems Review - Systems work at Microsoft Research
Multiparty asynchronous session types
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Programming Erlang: Software for a Concurrent World
Programming Erlang: Software for a Concurrent World
Non-desynchronizable Service Choreographies
ICSOC '08 Proceedings of the 6th International Conference on Service-Oriented Computing
Realizability of Choreographies Using Process Algebra Encodings
IFM '09 Proceedings of the 7th International Conference on Integrated Formal Methods
Analyzing singularity channel contracts
Proceedings of the eighteenth international symposium on Software testing and analysis
A Tool for Choreography Analysis Using Collaboration Diagrams
ICWS '09 Proceedings of the 2009 IEEE International Conference on Web Services
CADP 2006: a toolbox for the construction and analysis of distributed processes
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Realizability analysis for message-based interactions using shared-state projections
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Choreography conformance via synchronizability
Proceedings of the 20th international conference on World wide web
Analysis of realizability conditions for web service choreographies
FORTE'06 Proceedings of the 26th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
Synchronizability for verification of asynchronously communicating systems
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Multiparty session types meet communicating automata
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Counterexample guided synthesis of monitors for realizability enforcement
ATVA'12 Proceedings of the 10th international conference on Automated Technology for Verification and Analysis
A constraint-based approach to quality assurance in service choreographies
ICSOC'12 Proceedings of the 10th international conference on Service-Oriented Computing
VerChor: a framework for verifying choreographies
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part II
Hi-index | 0.00 |
Since software systems are becoming increasingly more concurrent and distributed, modeling and analysis of interactions among their components is a crucial problem. In several application domains, message-based communication is used as the interaction mechanism, and the communication contract among the components of the system is specified semantically as a state machine. In the service-oriented computing domain such communication contracts are called "choreography" specifications. A choreography specification identifies allowable ordering of message exchanges in a distributed system. A fundamental question about a choreography specification is determining its realizability, i.e., given a choreography specification, is it possible to build a distributed system that communicates exactly as the choreography specifies? Checking realizability of choreography specifications has been an open problem for several years and it was not known if this was a decidable problem. In this paper we give necessary and sufficient conditions for realizability of choreographies. We implemented the proposed realizability check and our experiments show that it can efficiently determine the realizability of 1) web service choreographies, 2) Singularity OS channel contracts, and 3) UML collaboration (communication) diagrams.