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.
Similar content being viewed by others
References
Abadi M., Cardelli L. (1996) A Theory of Objects. Monographs in Computer Science. Springer, Berlin Heidelberg New York
Á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)
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
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
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
Andrews G.R. (2000) Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, Reading
Arbab F. (2004) Reo: A channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14(3): 329–366
Benton N., Cardelli L., Fournet C. (2004) Modern concurrency abstractions for C#. ACM Trans. Program. Lang. Syst. 26(5): 769–804
Bergstra J., Klop J.W. (1984) Process algebra for synchronous communication. Inf. Control. 60(1–3): 109–137
Brinch Hansen P. (1999) Java’s insecure parallelism. ACM SIG-PLAN Notices 34(4): 38–45
Cardelli L. (1995) A language with distributed scope. Comput. Syst. 8(1): 27–59
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
Carriero N., Gelernter D. (1989) Linda in context. Commun. ACM 32(4): 444–458
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
Clavel M. (2000) Reflection in Rewriting Logic: Metalogical Foundations and Metaprogramming Applications. CSLI Publications, Stanford
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
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)
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
Dahl, O.-J., Myrhaug, B., Nygaard, K. (Simula 67) Common base language. Technical Report S-2. Norsk Regnesentral (Norwegian Computing Center), Oslo, Norway (1968)
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)
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
Dijkstra E.W. (1975) Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM 18(8): 453–457
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)
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
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
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)
Ghezzi, C., Jazayeri, M. Programming Language Concepts, 3rd edn. Wiley, (1998)
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
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)
Gosling J., Joy B., Steele G.L., Bracha G. (2000) The Java language specification, 2nd edn. Java series. Addison-Wesley, Reading
Hoare C.A.R. (1974) Monitors: an operating systems structuring concept. Commun. ACM 17(10): 549–557
Hoare C.A.R. (1985) Communicating Sequential Processes. International Series in Computer Science. Prentice-Hall, Englewood Cliffs
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
International Telecommunication Union: Open distributed processing – reference model parts 1–4. Technical report. ISO/IEC, Geneva (1995)
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
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
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)
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
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
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)
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)
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
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
Jones, C.B. Development methods for computer programmes including a notion of interference. PhD thesis, Oxford University (l981)
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)
Liskov B.H., Wing J.M. (1994) A behavioral notion of subtyping. ACM Trans. on Program. Lang. and Syst. 16(6): 1811–1841
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)
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
Meseguer J. (1992) Conditional rewriting logic as a unified model of concurrency. Theor. Comput. Sci. 96, 73–155
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)
Milner R. (1999) Communicating and Mobile Systems: The π-Calculus. Cambridge University Press, Cambridge
Najm E., Stefani J.-B. (1995) A formal semantics for the ODP computational model. Comput. Netw. ISDN Syst. 27, 1305–1329
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
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)
Philippsen M. (2000) A survey on concurrent object-oriented languages. Concurrency: Pract. Exp. 12(10): 917–980
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
Sangiorgi D., Walker D. (2001) The π-Calculus: A Theory of Mobile Processes. Cambridge University Press, Cambridge
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
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
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
Vinoski S. CORBA: integrating diverse applications within distributed heterogeneous environments. IEEE Commun. Mag. 14(2), (1997)
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
Yonezawa A. (1990) ABCL: An Object-Oriented Concurrent System. Series in Computer Systems. The MIT Press, Cambridge
Author information
Authors and Affiliations
Corresponding author
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
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-006-0011-2