Transparent communication for distributed objects in Java

We describe a native-code implementation of Java that supports distributed objects. In order to foster the correctness of distributed programs, remote access is syntactically and semantically indistinguishable from local access. This transparency is provided by the runtime system through the implicit generation of remote references to an object when it is passed as an argument or returned from a remote method call. Consistency is achieved through the use of a distributed (and thus scalable) global addressing scheme. Experiments show that application performance is a function of data layout, access algorithm, and local workload. For distributed applications, such as distributed databases, these factors may not be known statically, suggesting the importance of runtime support.

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

[2]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[3]  Laxmikant V. Kalé,et al.  Design and Implementation of Parallel Java with Global Object Space , 1997, PDPTA.

[4]  Robert Wilson,et al.  Compiling Java just in time , 1997, IEEE Micro.

[5]  Michael Philippsen,et al.  JavaParty – transparent remote objects in Java , 1997 .

[6]  John H. Hartman,et al.  Toba: Java for Applications - A Way Ahead of Time (WAT) Compiler , 1997, COOTS.

[7]  Thomas J. Mowbray,et al.  The essential CORBA - systems integration using distributed objects , 1995 .

[8]  Suresh Jagannathan,et al.  Higher-order distributed objects , 1995, TOPL.

[9]  Michael Burrows,et al.  Performance of Firefly RPC , 1990, ACM Trans. Comput. Syst..

[10]  Laxmikant V. Kalé,et al.  CHARM++: a portable concurrent object oriented system based on C++ , 1993, OOPSLA '93.

[11]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[12]  R. Kent Dybvig,et al.  Revised5 Report on the Algorithmic Language Scheme , 1986, SIGP.

[13]  Michael Burrows,et al.  Performance of Firefly RPC , 1989, SOSP '89.

[14]  Edward Wobber,et al.  Network objects , 1994, SOSP '93.

[15]  Vladimir Getov,et al.  High-Performance Parallel Programming in Java: Exploiting Native Libraries , 1998, Concurr. Pract. Exp..

[16]  Amnon Barak,et al.  Adaptive placement of parallel Java agents in a scalable computing cluster , 1998, Concurr. Pract. Exp..

[17]  Alan L. Cox,et al.  Java/DSM: A Platform for Heterogeneous Computing , 1997, Concurr. Pract. Exp..

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

[19]  George F. Riley,et al.  Efficient Implementation of Java Remote Method Invocation (RMI) , 1998, COOTS.

[20]  Harold Abelson,et al.  Revised5 report on the algorithmic language scheme , 1998, SIGP.

[21]  Mauricio J. Serrano,et al.  Thin locks: featherweight synchronization for Java , 1998, PLDI '98.

[22]  Jonathan Rees,et al.  Revised3 report on the algorithmic language scheme , 1986, SIGP.

[23]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.

[24]  Geoffrey C. Fox,et al.  Java for parallel computing and as a general language for scientific and engineering simulation and modeling , 1997 .

[25]  Roger Riggs,et al.  Java-centric distributed computing , 1997, IEEE Micro.

[26]  David E. Culler,et al.  A case for NOW (networks of workstation) , 1995, PODC '95.

[27]  Vaidy S. Sunderam,et al.  IceT: Distributed Computing and Java , 1997, Concurr. Pract. Exp..

[28]  Marc Shapiro,et al.  An implementation of complete, asynchronous, distributed garbage collection , 1998, PLDI '98.

[29]  Vladimir Getov,et al.  High-performance parallel programming in Java: exploiting native libraries , 1998 .

[30]  Daniel M. Zimmerman,et al.  benefits and drawbacks of current Java mobile agent systems , 1997 .

[31]  Jack Dongarra,et al.  A User''s Guide to PVM Parallel Virtual Machine , 1991 .

[32]  Robert H. Halstead,et al.  Lazy task creation: a technique for increasing the granularity of parallel programs , 1990, LISP and Functional Programming.

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

[34]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[35]  Michael Philippsen,et al.  JavaParty - Transparent Remote Objects in Java , 1997, Concurr. Pract. Exp..