Abstract
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.
The authors thank Gwen Salaün for fruitful discussions on the CADP implementation. This work has been partially supported by the US National Science Foundation grants CCF1117708, CCF1116836, CCF0702758, and project TIN2008-05932 funded by the Spanish Ministry of Innovation and Science and FEDER.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Armstrong, J.: Getting Erlang to talk to the outside world. In: Proc. ACM SIGPLAN Workshop on Erlang, pp. 64–72 (2002)
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)
Basu, S., Bultan, T.: Choreography conformance via synchronizability. In: Proc. 20th Int. World Wide Web Conf., WWW (2011)
Basu, S., Bultan, T., Ouederni, M.: Deciding choreography realizability. In: Proc. 39th Symp. Principles of Programming Languages, POPL (2012)
Brand, D., Zafiropulo, P.: On communicating finite-state machines. J. ACM 30(2), 323–342 (1983)
Carbone, M., Honda, K., Yoshida, N., Milner, R., Brown, G., Ross-Talbot, S.: A theoretical basis of communication-centred concurrent programming
Cécé, G., Finkel, A.: Verification of programs with half-duplex communication. Information and Computation 202, 166–190 (2005)
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)
Fu, X., Bultan, T., Su, J.: Analysis of interacting BPEL web services. In: Proc. 13th Int. World Wide Web Conf., pp. 621–630 (2004)
Fu, X., Bultan, T., Su, J.: Synchronizability of conversations among web services. IEEE Trans. Software Eng. 31(12), 1042–1055 (2005)
Garavel, H., Lang, F.: SVL: A Scripting Language for Compositional Verification. In: Proc. of FORTE, pp. 377–394 (2001)
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)
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)
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)
Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: Proc. 35th Symp. Prin. Programming Languages (POPL), pp. 273–284 (2008)
Hunt, G.C., Larus, J.R.: Singularity: rethinking the software stack. Operating Systems Review 41(2), 37–49 (2007)
Java Message Service, http://java.sun.com/products/jms/
Larus, J., Hunt, G.: Using the singularity research development kit. In: Tutorial, Int. Conf. Arch. Support for Prog. Lang. and OS (2008)
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)
Menascé, D.A.: Mom vs. rpc: Communication models for distributed applications. IEEE Internet Computing 9(2), 90–93 (2005)
Microsoft Message Queuing Service, http://www.microsoft.com/windowsserver2003/technologies/msmq/default.mspx
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)
Singularity design note 5: Channel contracts. singularity rdk documentation, v1.1 (2004), http://www.codeplex.com/singularity
Stengel, Z., Bultan, T.: Analyzing singularity channel contracts. In: Proc. 18th Int. Symp. on Software Testing and Analysis (ISSTA), pp. 13–24 (2009)
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)
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)
Web Service Choreography Description Language, WS-CDL (2005), http://www.w3.org/TR/ws-cdl-10/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Basu, S., Bultan, T., Ouederni, M. (2012). Synchronizability for Verification of Asynchronously Communicating Systems. In: Kuncak, V., Rybalchenko, A. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2012. Lecture Notes in Computer Science, vol 7148. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-27940-9_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-27940-9_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-27939-3
Online ISBN: 978-3-642-27940-9
eBook Packages: Computer ScienceComputer Science (R0)