An Asynchronous Communication Model for Distributed Concurrent Objects

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.

[1]  Pierre America,et al.  Pool-T: a parallel object-oriented language , 1987 .

[2]  Benjamin C. Pierce,et al.  Pict: a programming language based on the Pi-Calculus , 2000, Proof, Language, and Interaction.

[3]  Jean-Marc Geib,et al.  Object-Based Parallel and Distributed Computation , 1996, Lecture Notes in Computer Science.

[4]  Denis Caromel,et al.  Reactive Programming in Eiffel// , 1995, OBPDC.

[5]  Martin Wirsing,et al.  Formal Syntax and Semantics of Java , 1999 .

[6]  Einar Broch Johnsen,et al.  An Asynchronous Communication Model for Distributed Concurrent Objects , 2004, SEFM.

[7]  Earl T. Barr,et al.  Runtime Support for Type-Safe Dynamic Java Classes , 2000, ECOOP.

[8]  Gregory R. Andrews,et al.  Foundations of Multithreaded, Parallel, and Distributed Programming , 1999 .

[9]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[10]  Einar Broch Johnsen,et al.  Creol: A type-safe object-oriented model for distributed concurrent systems , 2006, Theor. Comput. Sci..

[11]  Cédric Fournet,et al.  The reflexive CHAM and the join-calculus , 1996, POPL '96.

[12]  Steve Vinoski,et al.  CORBA: integrating diverse applications within distributed heterogeneous environments , 1997, IEEE Commun. Mag..

[13]  Ole-Johan Dahl Monitors revisited , 1994 .

[14]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[15]  Johan Dovland,et al.  Verification of concurrent objects with asynchronous method calls , 2005, IEEE International Conference on Software - Science, Technology & Engineering (SwSTE'05).

[16]  Tom Lyche,et al.  From object-orientation to formal methods : essays in memory of Ole-Johan Dahl , 2004 .

[17]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[18]  Einar Broch Johnsen,et al.  A Run-Time Environment for Concurrent Objects With Asynchronous Method Calls , 2005, WRLA.

[19]  Einar Broch Johnsen,et al.  Inheritance in the Presence of Asynchronous Method Calls , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[20]  Carlo Ghezzi,et al.  CJava: Introducing Concurrent Objects in Java , 1997, OOIS.

[21]  Oscar Nierstrasz,et al.  A Tour of Hybrid A Language for Programming with Active Objects , 1992 .

[22]  Luca Cardelli,et al.  Modern concurrency abstractions for C# , 2002, TOPL.

[23]  Andrew D. Gordon,et al.  A Concurrent Object Calculus: Reduction and Typing , 1998, HLCL.

[24]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[25]  Einar Broch Johnsen,et al.  A Compositional Formalism for Object Viewpoints , 2002, FMOODS.

[26]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[27]  Jin Song Dong,et al.  Sensors and Actuators in TCOZ , 1999, World Congress on Formal Methods.

[28]  Einar Broch Johnsen,et al.  A Dynamic Class Construct for Asynchronous Concurrent Objects , 2005, FMOODS.

[29]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[30]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[31]  Einar Broch Johnsen,et al.  A Dynamic Binding Strategy for Multiple Inheritance and Asynchronously Communicating Objects , 2004, FMCO.

[32]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[33]  Clemens Fischer CSP-OZ: a combination of object-Z and CSP , 1997 .

[34]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[35]  Frank S. de Boer,et al.  Verification for Java's Reentrant Multithreading Concept , 2002, FoSSaCS.

[36]  Amir Pnueli,et al.  Understanding UML: A Formal Semantics of Concurrency and Communication in Real-Time UML , 2002, FMCO.

[37]  Christiano Braga,et al.  Rewriting Logic as a Semantic Framework for Modular Structural Op-erational Semantics , 2001 .

[38]  G. Stewart Von Itzstein,et al.  On Implementing High Level Concurrency in Java , 2003, Asia-Pacific Computer Systems Architecture Conference.

[39]  Elie Najm,et al.  A Formal Semantics for the ODP Computational Model , 1995, Comput. Networks ISDN Syst..

[40]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[41]  Vasco Thudichum Vasconcelos,et al.  Typed Concurrent Objects , 1994, ECOOP.

[42]  A classical mind: essays in honour of C. A. R. Hoare , 1994 .

[43]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[44]  Jan A. Bergstra,et al.  Process Algebra for Synchronous Communication , 1984, Inf. Control..

[45]  Gul Agha,et al.  Abstracting Interaction Patterns: A Programming Paradigm for Open Distributed Systems , 1997 .

[46]  John Derrick,et al.  Specification, Refinement and Verification of Concurrent Systems—An Integration of Object-Z and CSP , 2001, Formal Methods Syst. Des..

[47]  MeseguerJosé Conditional rewriting logic as a unified model of concurrency , 1992 .

[48]  M. Clavel Reflection in Rewriting Logic: Metalogical Foundations and Metaprogramming Applications , 2000 .

[49]  Cliff B. Jones,et al.  Developing methods for computer programs including a notion of interference , 1981 .

[50]  Michael Philippsen A survey of concurrent object-oriented languages , 2000 .

[51]  Einar Broch Johnsen,et al.  Object-Oriented Specification and Open Distributed Systems , 2004, Essays in Memory of Ole-Johan Dahl.

[52]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[53]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[54]  Gregory R. Andrews,et al.  Concurrent programming - principles and practice , 1991 .

[55]  Neelam Soundarajan,et al.  Inheritance: from code reuse to reasoning reuse , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[56]  Martin Wirsing,et al.  An Event-Based Structural Operational Semantics of Multi-Threaded Java , 1999, Formal Syntax and Semantics of Java.

[57]  Olaf Owe,et al.  A Notation for Combining Formal Reasoning, Object Orientation and Openness , 1999 .

[58]  Michael Philippsen,et al.  A survey of concurrent object-oriented languages , 2000, Concurr. Pract. Exp..

[59]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[60]  Liuba Shrira,et al.  Promises: linguistic support for efficient asynchronous procedure calls in distributed systems , 1988, PLDI '88.

[61]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

[62]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[63]  José Meseguer,et al.  Rewriting Logic Semantics: From Language Specifications to Formal Analysis Tools , 2004, IJCAR.

[64]  William G. Griswold,et al.  Adding Implicit Invocation to Languages: Three Approaches , 1993, ISOTAS.

[65]  Shojiro Nishio,et al.  Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software , 1993 .

[66]  Kathleen Fisher,et al.  A Calculus for Concurrent Objects , 1996, CONCUR.

[67]  米沢 明憲 ABCL : an object-oriented concurrent system , 1990 .

[68]  Farhad Arbab,et al.  Reo: A Channel-based Coordination Model for Component Composition , 2005 .

[69]  Per Brinch Hansen,et al.  Java's insecure parallelism , 1999, SIGP.

[70]  Mary Shaw Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status , 1993, ICSE Workshop on Studies of Software Design.

[71]  Carlo Ghezzi,et al.  Programming language concepts , 1982 .