On the Interaction of Mobile Processes and Objects

Java's remote method invocation mechanism provides a number of features that extend the functionality of traditional client/server-based distributed systems. However, there are a number of characteristics of the language that influence its utility as a vehicle in which to express lightweight mobile processes. Among these are its highly imperative sequential core, the close coupling of control and state as a consequence of its object model, and the fact remote method calls are not properly tail-recursive. These features impact the likelihood that Java can easily support process and object mobility for programs which exhibit complex communication and distribution patterns.

[1]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

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

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

[4]  Willy Zwaenepoel,et al.  Munin: distributed shared memory based on type-specific memory coherence , 1990, PPOPP '90.

[5]  Barton P. Miller,et al.  Process migration in DEMOS/MP , 1983, SOSP '83.

[6]  Doug Lea,et al.  Concurrent programming in Java - design principles and patterns , 1996, Java series.

[7]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .

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

[9]  Sape Mullender,et al.  Distributed systems , 1989 .

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

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

[12]  Anne Rogers,et al.  Supporting dynamic data structures on distributed-memory machines , 1995, TOPL.

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

[14]  Nicholas Carriero,et al.  Piranha scheduling: Strategies and their implementation , 1995, International Journal of Parallel Programming.

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

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

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

[18]  George Cybenko,et al.  AGENT TCL: Targeting the Needs of Mobile Computers , 1997, IEEE Internet Comput..

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