Synchronizability for Verification of Asynchronously Communicating Systems

  • Samik Basu
  • Tevfik Bultan
  • Meriem Ouederni
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7148)


Message-based communication is an increasingly common interaction mechanism used in concurrent and distributed systems where components interact with each other by sending and receiving messages. It is well-known that verification of systems that use asynchronous message-based communication with unbounded FIFO queues is undecidable even when the component behaviors are expressed using finite state machines. In this paper we show that there is a sub-class of such systems, called synchronizable systems, for which certain reachability properties (over send actions and over states with no pending receives) remain unchanged when asynchronous communication is replaced with synchronous communication. Hence, if a system is synchronizable, then the verification of these reachability properties can be done on the synchronous version of the system and the results hold for the asynchronous case. We present a technique for deciding if a given system is synchronizable. Our results are applicable to a variety of domains including verification and analysis of interactions among processes at the OS level, coordination in service-oriented computing and interactions among distributed programs. In this paper we focus on analysis of channel contracts in the Singularity OS. Our experimental results show that almost all channel contracts in the Singularity OS are synchronizable, and, hence, their properties can be analyzed using synchronous communication semantics.


State Machine Destination State Equivalence Check Synchronous Communication Asynchronous System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Armstrong, J.: Getting Erlang to talk to the outside world. In: Proc. ACM SIGPLAN Workshop on Erlang, pp. 64–72 (2002)Google Scholar
  2. 2.
    Banavar, G., Chandra, T., Strom, R.E., Sturman, D.: A Case for Message Oriented Middleware. In: Jayanti, P. (ed.) DISC 1999. LNCS, vol. 1693, pp. 1–17. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  3. 3.
    Basu, S., Bultan, T.: Choreography conformance via synchronizability. In: Proc. 20th Int. World Wide Web Conf., WWW (2011)Google Scholar
  4. 4.
    Basu, S., Bultan, T., Ouederni, M.: Deciding choreography realizability. In: Proc. 39th Symp. Principles of Programming Languages, POPL (2012)Google Scholar
  5. 5.
    Brand, D., Zafiropulo, P.: On communicating finite-state machines. J. ACM 30(2), 323–342 (1983)MathSciNetzbMATHGoogle Scholar
  6. 6.
    Carbone, M., Honda, K., Yoshida, N., Milner, R., Brown, G., Ross-Talbot, S.: A theoretical basis of communication-centred concurrent programmingGoogle Scholar
  7. 7.
    Cécé, G., Finkel, A.: Verification of programs with half-duplex communication. Information and Computation 202, 166–190 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Fähndrich, M., Aiken, M., Hawblitzel, C., Hodson, O., Hunt, G.C., Larus, J.R., Levi, S.: Language support for fast and reliable message-based communication in singularity os. In: Proc. 2006 EuroSys Conf., pp. 177–190 (2006)Google Scholar
  9. 9.
    Fu, X., Bultan, T., Su, J.: Analysis of interacting BPEL web services. In: Proc. 13th Int. World Wide Web Conf., pp. 621–630 (2004)Google Scholar
  10. 10.
    Fu, X., Bultan, T., Su, J.: Synchronizability of conversations among web services. IEEE Trans. Software Eng. 31(12), 1042–1055 (2005)CrossRefGoogle Scholar
  11. 11.
    Garavel, H., Lang, F.: SVL: A Scripting Language for Compositional Verification. In: Proc. of FORTE, pp. 377–394 (2001)Google Scholar
  12. 12.
    Garavel, H., Mateescu, R., Lang, F., Serwe, W.: CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 158–163. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  13. 13.
    Heußner, A., Leroux, J., Muscholl, A., Sutre, G.: Reachability Analysis of Communicating Pushdown Systems. In: Ong, L. (ed.) FOSSACS 2010. LNCS, vol. 6014, pp. 267–281. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  14. 14.
    Honda, K., Vasconcelos, V.T., Kubo, M.: Language Primitives and Type Discipline for Structured Communication-Based Programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 122–138. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  15. 15.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: Proc. 35th Symp. Prin. Programming Languages (POPL), pp. 273–284 (2008)Google Scholar
  16. 16.
    Hunt, G.C., Larus, J.R.: Singularity: rethinking the software stack. Operating Systems Review 41(2), 37–49 (2007)CrossRefGoogle Scholar
  17. 17.
    Java Message Service,
  18. 18.
    Larus, J., Hunt, G.: Using the singularity research development kit. In: Tutorial, Int. Conf. Arch. Support for Prog. Lang. and OS (2008)Google Scholar
  19. 19.
    Manohar, R., Martin, A.J.: Slack Elasticity in Concurrent Computing. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol. 1422, pp. 272–285. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  20. 20.
    Menascé, D.A.: Mom vs. rpc: Communication models for distributed applications. IEEE Internet Computing 9(2), 90–93 (2005)CrossRefGoogle Scholar
  21. 21.
  22. 22.
    Siegel, S.F.: Efficient Verification of Halting Properties for MPI Programs with Wildcard Receives. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 413–429. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  23. 23.
    Singularity design note 5: Channel contracts. singularity rdk documentation, v1.1 (2004),
  24. 24.
    Stengel, Z., Bultan, T.: Analyzing singularity channel contracts. In: Proc. 18th Int. Symp. on Software Testing and Analysis (ISSTA), pp. 13–24 (2009)Google Scholar
  25. 25.
    La Torre, S., Madhusudan, P., Parlato, G.: Context-Bounded Analysis of Concurrent Queue Systems. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 299–314. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  26. 26.
    Vakkalanka, S., Vo, A., Gopalakrishnan, G., Kirby, R.M.: Precise dynamic analysis for slack elasticity: adding buffering without adding bugs. In: 17th Euro. MPI Conf. Advances in Message Passing Interface, pp. 152–159 (2010)Google Scholar
  27. 27.
    Web Service Choreography Description Language, WS-CDL (2005),

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Samik Basu
    • 1
  • Tevfik Bultan
    • 2
  • Meriem Ouederni
    • 3
  1. 1.Iowa State UniversityUSA
  2. 2.University of CaliforniaSanta BarbaraUSA
  3. 3.University of MalagaSpain

Personalised recommendations