Skip to main content
Log in

An Asynchronous Communication Model for Distributed Concurrent Objects

  • Special Section Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

Distributed systems are often modeled by objects that run concurrently, each with its own processor, and communicate by synchronous remote method calls. This may be satisfactory for tightly coupled systems, but in the distributed setting synchronous external calls lead to much waiting; at best resulting in inefficient use of processor capacity, at worst resulting in deadlock. Furthermore, it is difficult to combine active and passive behavior in concurrent objects. This paper proposes an object-oriented solution to these problems by means of asynchronous method calls and conditional processor release points. Although at the cost of additional internal nondeterminism in the objects, this approach seems attractive in asynchronous or unreliable environments. The concepts are integrated in a small object-oriented language with an operational semantics defined in rewriting logic, and illustrated by examples.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Abadi M., Cardelli L. (1996) A Theory of Objects. Monographs in Computer Science. Springer, Berlin Heidelberg New York

    Google Scholar 

  2. Ábrahám-Mumm, E., de Boer F.S., de Roever, W.-P., Verification for Java’s reentrant multithreading concept. In: International Conference on Foundations of Software Science and Computation Structures (FOSSACS’02). Lecture Notes in Computer Science, vol. 2303 pp. 5–20. Springer, Berlin Heidelberg New York (2002)

  3. Agha, G.A. Abstracting interaction patterns: a programming paradigm for open distributed systems. In: Najm, E., Stefani, J.-B.: (eds.) Proceedings 1st IFIP International Conference on Formal Methods for Open Object-based Distributed Systems (FMOODS’96). Paris pp. 135–153 Chapman & Hall, London 1996

  4. Agha G.A., Mason I.A., Smith S.F., Talcott C.L. (1997) A foundation for actor computation. J. Funct. Program. 7(1): 1–72

    Article  MATH  MathSciNet  Google Scholar 

  5. America P. (1987). POOL-T: A parallel object-oriented language. In: Yonezawa A., Tokoro M. (eds). Object-Oriented Concurrent Programming. The MIT Press, Cambridge, pp. 199–220

    Google Scholar 

  6. Andrews G.R. (2000) Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, Reading

    Google Scholar 

  7. Arbab F. (2004) Reo: A channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14(3): 329–366

    Article  MATH  MathSciNet  Google Scholar 

  8. Benton N., Cardelli L., Fournet C. (2004) Modern concurrency abstractions for C#. ACM Trans. Program. Lang. Syst. 26(5): 769–804

    Article  Google Scholar 

  9. Bergstra J., Klop J.W. (1984) Process algebra for synchronous communication. Inf. Control. 60(1–3): 109–137

    Article  MATH  MathSciNet  Google Scholar 

  10. Brinch Hansen P. (1999) Java’s insecure parallelism. ACM SIG-PLAN Notices 34(4): 38–45

    Article  Google Scholar 

  11. Cardelli L. (1995) A language with distributed scope. Comput. Syst. 8(1): 27–59

    Google Scholar 

  12. Caromel D., Roudier Y. (1996). Reactive programming in Eiffel//. In: Briot J.-P., Geib J.M., Yonezawa A. (eds). Proceedings of the Conference on Object-Based Parallel and Distributed Computation. Lecture Notes in Computer Science, vol. 1107 Springer, Berlin Heidelberg New York, pp. 125–147

    Google Scholar 

  13. Carriero N., Gelernter D. (1989) Linda in context. Commun. ACM 32(4): 444–458

    Article  Google Scholar 

  14. Cenciarelli P., Knapp A., Reus B., Wirsing M. (1999). An event-based structural operational semantics of multi-threaded Java. In: Alves-Foss J. (eds). Formal Syntax and Semantics of Java. Lecture Notes in Computer Science, vol. 1523 Springer, Berlin Heidelberg New York, pp. 157–200

    Google Scholar 

  15. Clavel M. (2000) Reflection in Rewriting Logic: Metalogical Foundations and Metaprogramming Applications. CSLI Publications, Stanford

    MATH  Google Scholar 

  16. Clavel M., Durán F., Eker S., Lincoln P., Martí-Oliet N., Meseguer J., Quesada J.F. (2002) Maude: specification and programming in rewriting logic. Theor. Comput. Sci. 285, 187–243

    Article  MATH  Google Scholar 

  17. Cugola, G., Ghezzi, C. CJava: introducing concurrent objects in Java. In: Orlowska, M.E., Zicari, R. (eds.) 4th International Conference on Object Oriented Information Systems (OOIS’97), London, pp. 504–514. Springer, Berlin Heidelberg New York (1997)

  18. Dahl O.-J. (1994). Monitors revisited. In: Roscoe A.W. (eds). A Classical Mind, Essays in Honour of C.A.R. Hoare. Prentice-Hall, Englewood Cliffs, pp. 93–103

    Google Scholar 

  19. Dahl, O.-J., Myrhaug, B., Nygaard, K. (Simula 67) Common base language. Technical Report S-2. Norsk Regnesentral (Norwegian Computing Center), Oslo, Norway (1968)

  20. Damm, W., Josko, B., Pnueli, A., Votintseva, A.: Understanding UML: a formal semantics of concurrency and communication in real-time UML. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) First International Symposium on Formal Methods for Components and Objects (FMCO 2002), Revised Lectures. Lecture Notes in Computer Science, vol. 2852, pp. 71–98. Springer, Berlin Heidelberg New York (2003)

  21. Di Blasio P., Fischer K. (1996). a calculus for concurrent objects. In: Montanari U., Sassone V. (eds). 7th International Conference on Concurrency Theory (CONCUR’96). Lecture Notes in Computer Science, vol. 1119, Springer, Berlin Heidelberg New York, pp. 655–670

    Google Scholar 

  22. Dijkstra E.W. (1975) Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM 18(8): 453–457

    Article  MATH  MathSciNet  Google Scholar 

  23. Dovland, J., Johnsen, E.B., Owe, O. Verification of concurrent objects with asynchronous method calls. In: Proceedings of the IEEE International Conference on Software Science, Technology & Engineering (SwSTE’05), pp. 141–150. IEEE Computer Society Press, Los Alamitos (2005)

  24. Eugster P.T., Felber P.A., Guerraoui R., Kermarrec A.-M. (2003) The many faces of publish/subscribe. ACM Comput. Surv. 35(2): 114–131

    Article  Google Scholar 

  25. Fischer C. (1997). CSP-OZ: a combination of Object-Z and CSP. In: Bowman H., Derrick J. (eds). Proceedings of the 2nd IFIP Workshop on Formal Methods for Open Object-Based Distributed Systems (FMOODS). Chapman & Hall, London, pp. 423–438

    Google Scholar 

  26. Fournet, C., Gonthier, G. The reflexive chemical abstract machine and the join-calculus. In: ACM Symposium on Principles of Programming Languages (POPL), pp. 372–385 (1996)

  27. Ghezzi, C., Jazayeri, M. Programming Language Concepts, 3rd edn. Wiley, (1998)

  28. Goguen J.A., Winkler T., Meseguer J., Futatsugi K., Jouannaud J.-P. (2000). Introducing OBJ. In: Goguen J.A., Malcolm G. (eds). Software Engineering with OBJ: Algebraic Specification in Action, chapter 1. Kluwer, Dordrecht, pp. 3–167

    Google Scholar 

  29. Gordon A.D., Hankin, P.D. A concurrent object calculus: reduction and typing. In: Nestmann U., Pierce, B.C. (eds) HLCL ’98: High-Level Concurrent Languages, Nice, France, September 12, 1998. Electronic Notes in Theoretical Computer Science, vol. 16(3). Elsevier, Amsterdam (1998)

  30. Gosling J., Joy B., Steele G.L., Bracha G. (2000) The Java language specification, 2nd edn. Java series. Addison-Wesley, Reading

    Google Scholar 

  31. Hoare C.A.R. (1974) Monitors: an operating systems structuring concept. Commun. ACM 17(10): 549–557

    Article  MATH  Google Scholar 

  32. Hoare C.A.R. (1985) Communicating Sequential Processes. International Series in Computer Science. Prentice-Hall, Englewood Cliffs

    Google Scholar 

  33. Honda K., Tokoro M. (1991). An object calculus for asynchronous communication. In: America P. (eds). Proceedings of the European Conference on Object-Oriented Programming (ECOOP’91). Lecture Notes in Computer Science, vol. 512, Springer, Berlin Heidelberg New York, pp. 133–147

    Chapter  Google Scholar 

  34. International Telecommunication Union: Open distributed processing – reference model parts 1–4. Technical report. ISO/IEC, Geneva (1995)

  35. Itzstein G.S., Jasiunas M. (2003). On implementing high level concurrency in Java. In: Omondi A., Sedukhin S. (eds). Proceeding of the 8th Asia-Pacific Computer Systems Architecture Conference (ACSAC 2003). Lecture Notes in Computer Science, vol. 2823, Springer, Berlin Heidelberg New York, pp. 151–165

    Google Scholar 

  36. Johnsen E.B., Owe O. (2002). A compositional formalism for object viewpoints. In: Jacobs B., Rensink A. (eds). Proceedings of the 5th International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS’02). Kluwer Dordrecht, pp. 45–60

    Google Scholar 

  37. Johnsen, E.B., Owe, O. An asynchronous communication model for distributed concurrent objects. In; Proceedings of the 2nd IEEE International Conference on Software Engineering and Formal Methods (SEFM’04), pp. 188–197. IEEE Computer Society Press, Los Alamitos (2004)

  38. Johnsen E.B., Owe O. (2004). Object-oriented specification and open distributed systems. In: Owe O., Krogdahl S., Lyche T. (eds). From Object-Orientation to Formal Methods: Essays in Memory of Ole-Johan Dahl. Lecture Notes in Computer Science, vol. 2635, Springer, Berlin Heidelberg New York, pp. 137–164

    Google Scholar 

  39. Johnsen E.B., Owe O. (2005). A dynamic binding strategy for multiple inheritance and asynchronously communicating objects. In: de Boer F.S., Bonsangue M.M., Graf S., de Roever W.-P. (eds). Proceedings of the 3rd International Symposium on Formal Methods for Components and Objects (FMCO 2004). Lecture Notes in Computer Science, vol. 3657, Springer, Berlin Heidelberg New York, pp. 274–295

    Chapter  Google Scholar 

  40. Johnsen, E.B., Owe, O. Inheritance in the presence of asynchronous method calls. In: Proceedings of the 38th Hawaii International Conference on System Sciences (HICSS’05). IEEE Computer Society Press, Los Alamites (2005)

  41. Johnsen, E.B., Owe, O., Axelsen, E.W. A run-time environment for concurrent objects with asynchronous method calls. In: N. Martí-Oliet, (ed.) Proceedings of the 5th International Workshop on Rewriting Logic and its Applications (WRLA’04), March 2004. Electronic Notes in Theoretical Computer Science, vol. 117, pp. 375–392. Elsevier, Amsterdam (2005)

  42. Johnsen E.B., Owe O., Simplot-Ryl I. (2005). A dynamic class construct for asynchronous concurrent objects. In: Steffen M., Zavattaro G. (eds). Proceedings of the 7th International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS’05). Lecture Notes in Computer Science, vol. 3535, Springer, Berlin Heidelberg New York, pp. 15–30

    Google Scholar 

  43. Johnsen E.B., Owe O., Yu I.C. (2005) Creol: a type-safe object-oriented model for distributed concurrent systems. Research Report 327. Department of Informatics, University of Oslo, Norway

    Google Scholar 

  44. Jones, C.B. Development methods for computer programmes including a notion of interference. PhD thesis, Oxford University (l981)

  45. Liskov, B.H., Shrira, L. Promises: linguistic support for efficient asynchronous procedure calls in distributed systems. In: Wise, D.S. (ed.) Proceedings of the SIGPLAN Conference on Programming Lanugage Design and Implementation (PLDI’88). Atlanta, GE, USA, June 1988, pp. 260–267. ACM Press, New York (1988)

  46. Liskov B.H., Wing J.M. (1994) A behavioral notion of subtyping. ACM Trans. on Program. Lang. and Syst. 16(6): 1811–1841

    Article  Google Scholar 

  47. Mahony B.P., Dong, J.S. Sensors and actuators in TCOZ. In: Wing, J.M., Woodcock, J., Davies, J. (eds.) World Congress on Formal Methods (FM’99), Proceedings, Volume II. Lecture Notes in Computer Science, vol. 1709, pp. 1166–1185. Springer, Berlin Heidelberg New York (1999)

  48. Malabarba S., Pandey R., Gragg J., Barr E., Barnes J.F. (2000). Runtime support for type-safe dynamic Java classes. In: Bertino E. (eds). 14th European Conference on Object-Oriented Programming (ECOOP 2000). Lecture Notes in Computer Science, vol. 1850, Springer, Berlin Heidelberg New York, pp. 337–361

    Google Scholar 

  49. Meseguer J. (1992) Conditional rewriting logic as a unified model of concurrency. Theor. Comput. Sci. 96, 73–155

    Article  MATH  MathSciNet  Google Scholar 

  50. Meseguer, J., Rosu, G. Rewriting logic semantics: from language specifications to formal analysis tools. In: Basin, D.A., Rusinowitch, M. (eds.) Automated Reasoning – Proceeding of the Second International Joint Conference (IJCAR 2004). Lecture Notes in Computer Science, vol. 3097, pp. 1–44. Springer, Berlin Heidelberg New York (2004)

  51. Milner R. (1999) Communicating and Mobile Systems: The π-Calculus. Cambridge University Press, Cambridge

    Google Scholar 

  52. Najm E., Stefani J.-B. (1995) A formal semantics for the ODP computational model. Comput. Netw. ISDN Syst. 27, 1305–1329

    Article  Google Scholar 

  53. Nierstrasz O. (1992). A tour of Hybrid – a language for programming with active objects. In: Mandrioli D., Meyer B. (eds). Advances in Object-Oriented Software Engineering. Prentice-Hall, Englewood Cliffs, pp. 167–182

    Google Scholar 

  54. Notkin, D., Garlan, D., Griswold, W.G., Sullivan, K. Adding implicit invocation to languages: three approaches. In: Nishio, S., Yonezawa, A. (eds.) Proceedings of the 1st JSSST International Symposium on Object Technologies for Advanced Software. Lecture Notes in Computer Science, vol. 742, pp. 489–510. Springer, Berlin Heidelberg New York (1993)

  55. Philippsen M. (2000) A survey on concurrent object-oriented languages. Concurrency: Pract. Exp. 12(10): 917–980

    Article  MATH  Google Scholar 

  56. Pierce B.C., Turner D.N. (1998). Pict: a programming language based on the pi-calculus. In: Plotkin G., Stirling C., Tofte M. (eds). Proof, Language and Interaction: Essays in Honour of Robin Milner. The MIT Press, Cambridge

    Google Scholar 

  57. Sangiorgi D., Walker D. (2001) The π-Calculus: A Theory of Mobile Processes. Cambridge University Press, Cambridge

    Google Scholar 

  58. Shaw M. (1994). Procedure calls are the assembly language of software interconnection: connectors deserve first-class status. In: Lamb D.A. (eds). Workshop on Studies of Software Design. Lecture Notes in Computer Science, vol. 1078, Springer, Berlin Heidelberg New York, pp. 17–32

    Google Scholar 

  59. Smith G., Derrick J. (2001) Specification, refinement and verification of concurrent systems – an integration of Object-Z and CSP. Formal Methods Syst. Des. 18(3): 249–284

    Article  MATH  Google Scholar 

  60. Vasconcelos V.T. (1994). Typed concurrent objects. In: Tokoro M., Pareschi R. (eds). Proceedings of the 8th European Conference on Object-Oriented Programming (ECOOP’94). Lecture Notes in Computer Science, vol. 821, Springer, Berlin Heidelberg New York, pp. 100–117

    Google Scholar 

  61. Vinoski S. CORBA: integrating diverse applications within distributed heterogeneous environments. IEEE Commun. Mag. 14(2), (1997)

  62. Yokote Y., Tokoro M. (1987). Concurrent programming in ConcurrentSmalltalk. In: Yonezawa A., Tokoro M. (eds). Object-Oriented Concurrent Programming. The MIT Press, Cambridge, pp. 129–158

    Google Scholar 

  63. Yonezawa A. (1990) ABCL: An Object-Oriented Concurrent System. Series in Computer Systems. The MIT Press, Cambridge

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Einar Broch Johnsen.

Additional information

This paper extends and combines results which have appeared in the proceedings of the 2004 International Conference on Software Engineering and Formal Methods (SEFM) [37] and the 2004 International Workshop on Rewriting Logic and its Applications (WRLA) [41].

Rights and permissions

Reprints and permissions

About this article

Cite this article

Johnsen, E.B., Owe, O. An Asynchronous Communication Model for Distributed Concurrent Objects. Softw Syst Model 6, 39–58 (2007). https://doi.org/10.1007/s10270-006-0011-2

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-006-0011-2

Keywords

Navigation