Abstract
Asynchronous communication is often viewed as a single entity, the counterpart of synchronous communication. Although the basic concept of asynchronous communication is the decoupling of send and receive events, there is actually room for a variety of additional specification of the communication, for instance in terms of ordering. Yet, these different asynchronous communications are used interchangeably and seldom distinguished. This paper is a contribution to the study of these models, their differences, and how they are related. In this paper, the variety of point-to-point asynchronous communication paradigms is considered with two approaches. In the first and theoretical one, communication models are specified as properties on the ordering of events in distributed executions. In the second and more practical approach that involves composition of peers, they are modeled with transition systems and message histories as part of a framework. The described framework enables to model peer composition and compatibility properties. Besides, an implemented tool chain based on the TLA+ formalism and model checking is also proposed and illustrated. The conformance of the two approaches is highlighted. A hierarchy is established between the studied communication models. From the execution viewpoint, it completes existing work in the area by introducing more asynchronous communication models and showing their differences. The framework is shown to offer abstract implementations of the communication models. Both the correctness and the completeness of the descriptions in the framework are studied. This reveals necessary restrictions on the behavior of the peers so that the communication models are actually implementable.
Similar content being viewed by others
References
Ait-Bachir A, Dumas M, Fauvet MC (2008) BESERIAL: behavioural service analyser. In: Business process management international conference. Demo session., LNCS 5240, pp 374–377
Berry G, Boudol G (1992) The chemical abstract machine. Theor Comput Sci 96(1): 217–248
Basu S, Bultan T, Ouederni M (2012) Synchronizability for verification of asynchronously communicating systems. In: 13th international conference on verification, model checking, and abstract interpretation, VMCAI’12. Springer-Verlag, pp 56–71
Brogi A, Canal C, Pimentel E, Vallecillo A (2004) Formalizing web service choreographies. Electron Notes Theor Comput Sci 105: 73–94
Benatallah B, Casati F, Toumani F (2004) Analysis and management of web service protocols. In: Conceptual modeling–ER 2004, Lecture Notes in Computer Science, vol 3288. Springer, pp 524–541
Birman KP (1996) Building secure and reliable network applications. Manning
Birman KP, Joseph TA (1987) Reliable communication in the presence of failures. ACM Trans Comput Syst 5(1): 47–76
Babaoğlu Ö, Marzullo K (1993) Consistent global states of distributed systems: fundamental concepts and mechanisms. In: Mullender SJ (ed) Distributed systems, 2nd edn. ACM Press Frontier Series, pp 55–96
Boudol G (1992) Asynchrony and the Pi-calculus. Research Report RR-1702, INRIA
Beauxis R, Palamidessi C, Valencia FD (2008) On the asynchronous nature of the asynchronous \({\pi}\)-calculus. In: De Nicola R, Degano P, Meseguer J (eds) Concurrency, graphs and models, Lecture notes in computer science. Springer, pp 473–492
Brand D, Zafiropulo P (1983) On communicating finite-state machines. J ACM 30(2): 323–342
Charron-Bost B, Mattern F, Tel G (1996) Synchronous, asynchronous, and causally ordered communication. Distrib Comput 9(4): 173–191
Coulouris G, Dollimore J, Kindberg T. (1994) Distributed systems: concepts and design, 2nd edn. Addison Wesley
Cristian F, Fetzer C (1999) The timed asynchronous distributed system model. IEEE Trans Parallel Distrib Syst 10(6): 642–657
Cardelli L, Gordon AD (1998) Mobile ambients. In: First international conference on foundations of software science and computation structure, FoSSaCS ’98. Springer-Verlag, pp 140–155
Charpentier M (1997) A Unity mapping operator for distributed programs. In: Fitzgerald J, Jones CB, Lucas P (eds) 4th Int’l symposium of formal methods europe (FME’97), Lecture notes in computer science, vol 1313. Springer-Verlag, pp 665–684
Chevrou F, Hurault A, Mauran P, Quéinnec P (2016) Mechanized refinement of communication models with TLA+. In: International ABZ Conference. Springer-Verlag, p 6
Chevrou F, Hurault A, Quéinnec P (2015) Automated verification of asynchronous communicating systems with TLA+. In: Electronic communications of the EASST (PostProceedings of the 15th international workshop on automated verification of critical systems), vol 72
Chandy KM, Lamport L (1985) Distributed snapshots: determining global states of distributed systems. ACM Trans Comput Syst 3(1): 63–75
Chae HS, Lee J-S, Bae JH (2008) An approach to checking behavioral compatibility between web services. Int J Softw Eng Knowl Eng 18(2): 223–241
Cleaveland R, Parrow J, Steffen B (1993) The concurrency workbench: A semantics-based tool for the verification of concurrent systems. ACM Trans Program Lang Syst 15(1): 36–72
Canal C, Pimentel E, Troya JM (2001) Compatibility and inheritance in software architectures. Sci Comput Program 41(2): 105–138
Durán F, Ouederni M, Salaún G (2012) A generic framework for n-protocol compatibility checking. Sci Comput Program 77(7-8): 870–886
Défago X, Schiper A, Urbán P (2004) Total order broadcast and multicast algorithms: taxonomy and survey. ACM Comput Surv 36: 372–421
Deng S, Wu Z, Zhou M, Li Y, Wu J (2006) Modeling service compatibility with pi-calculus for choreography. In: 25th International conference on conceptual modeling, Conceptual Modeling-ER 2006. Springer-Verlag, pp 26–39
Fournet C, Gonthier G (1996) The reflexive cham and the join-calculus. In: 23rd ACM symposium on principles of programming languages, POPL ’96. ACM, pp 372–385
Fournet C, Gonthier G, Lévy J-J, Maranget L, Rémy D. (1996) A calculus of mobile agents. In: Montanari U, Sassone V (eds) CONCUR, Lecture Notes in Computer Science, vol 1119, pp 406–421
Filliâtre J-C (2013) One logic to use them all. In: 24th international conference on automated deduction (CADE-24), Lecture Notes in Artificial Intelligence, vol 7898, Lake Placid. Springer, pp 1–20
Foster H, Uchitel S, Magee J, Kramer J (2004) Compatibility verification for web service choreography. In: IEEE international conference on web services, pp 738
Gardiner P, Goldsmith M, Hulance J, Jackson D, Roscoe B, Scattergood B, Armstrong P (2010) FDR2 user manual. Technical report, Oxford University
Garavel H, Lang F, Mateescu R, Serwe W (2013) CADP 2011: a toolbox for the construction and analysis of distributed processes. Int J Softw Tools Technol Transf 15(2):89–107
Holzmann GJ (2004) The spin model checker: primer and reference manual. Addison-Wesley
Honda K, Tokoro M (1991) An object calculus for asynchronous communication. In: Proceedings of the European conference on object-oriented programming, ECOOP ’91. Springer-Verlag, pp 133–147
Kshemkalyani AD, Singhal M (1998) Necessary and sufficient conditions on information for causal message ordering and their optimal implementation. Distribut Comput 11(2): 91–111
Kshemkalyani AD, Singhal M (2011) Distributed computing: principles, algorithms, and systems. Cambridge University Press
Lamport L (1978) Time, clocks and the ordering of events in a distributed system. Commun ACM 21(7): 558–565
Lamport L(2002) Specifying systems. Addison Wesley
Lamport L(2009) The PlusCal algorithm language. In: Leucker M, Morgan C (eds) Theoretical aspects of computing, Lecture notes in computer science, vol 5684. Springer, pp 36–60
Li X, Fan Y, Sheng QZ, Maamar Z, Zhu H (2011) A Petri net approach to analyzing behavioral compatibility and similarity of web services. IEEE Trans Syst Man Cybern 41(3): 510–521
Lohmann N, Wolf K (2011) Decidability results for choreography realization. In: 9th International conference on service-oriented computing, ICSOC’11. Springer-Verlag, pp 92–107
Lynch NA (1996) Distributed algorithms. Morgan Kaufmann Publishers Inc.
Martens A (2003) On compatibility of web services. Petri Net Newsletter, pp 12–20
Mattern F (1989) Virtual time and global state in distributed systems. In: Cosnard M, Robert Y, Quinton P, Raynal M (eds) Int’l workshop on parallel and distributed algorithms. Elsevier Science Publishers, pp 215–226
Meyer B (1992) Applying “design by contract”. Computer 25(10): 40–51
Milner R (1982) A calculus of communicating systems. Springer-Verlag New York, Inc.,
Milner R (1999) Communicating and mobile systems: the \({\pi}\)-calculus. Cambridge University Press, Cambridge
Misra J (1983) Detecting termination of distributed computations using markers. In: Proceedings of the second annual ACM symposium on principles of distributed computing, PODC ’83. ACM, pp 290–294
Manna Z, Pnueli A (1992) The temporal logic of reactive and concurrent systems–specification. Springer-Verlag
Ouederni M, Salaün G, Bultan T (2013) Compatibility checking for asynchronously communicating software. In: International symposium on formal aspects of component software (FACS 2013), LNCS, vol 8348, pp 310–328
Palamidessi C (2003) Comparing the expressive power of the synchronous and the asynchronous pi-calculi. Math Struct Comput Sci 13(5): 685–719
Peterson LL, Buchholz NC, Schlichting RD (1989) Preserving and using context information in interprocess communication. ACM Trans Comput Syst 7(3): 217–246
Prakash R, Raynal M, Singhal M (1997) An adaptive causal ordering algorithm suited to mobile computing environments. J Parallel Distrib Comput 41(2): 190–204
Raynal M (2010) Communication and agreement abstractions for fault-tolerant asynchronous distributed systems. Synthesis Lectures on Distributed Computing Theory. Morgan and Claypool Publishers,
Raynal M (2013) Distributed algorithms for message-passing systems. Springer
Raynal M, Schiper A, Toueg S (1991) The causal ordering abstraction and a simple way to implement it. Inf Process Lett 39: 343–350
Sighireanu M, Chaudet C, Garavel H, Herbert M, Mateescu R, Vivien B (2000) LOTOS NT user manual
Schwarz R, Mattern F (1994) Detecting causal relationships in distributed computations: in search of the holy grail. Distrib Comput 7(3): 149–174
Tel G (2000) Introduction to distributed algorithms, 2nd edn. Cambridge University Press
Tan W, Fan Y, Zhou M (2009) A Petri net-based method for compatibility analysis and composition of web services in business process execution language. IEEE Trans Autom Sci Eng 6(1): 94–106
Author information
Authors and Affiliations
Corresponding author
Additional information
Stephan Merz, Jun Pang, and Jin Song Dong
Rights and permissions
About this article
Cite this article
Chevrou, F., Hurault, A. & Quéinnec, P. On the diversity of asynchronous communication. Form Asp Comp 28, 847–879 (2016). https://doi.org/10.1007/s00165-016-0379-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-016-0379-x