Mechanisms for object caching in distributed applications using Java RMI

Remote Method Invocation (RMI), a mechanism to access remote objects in Java-based distributed applications, uses network communication for each method invocation. Consequently, using RMI in a wide-area environment can cause poor application performance. One solution to improve performance is to cache the objects such that network communication is not necessary for each method invocation. In this paper, we present mechanisms to transparently add object caching to RMI. These mechanisms are compatible with existing RMI applications and use an event-based model to support different consistency policies. The mechanisms also include the ability to adaptively select the consistency policy for an object based on its usage pattern. A novel feature of our mechanisms is the use of a ‘reduced object’, which is a partial representation of the RMI object. We experimentally evaluate and demonstrate the benefits of our mechanisms. Copyright © 2006 John Wiley & Sons, Ltd.

[1]  Mustaque Ahamad,et al.  Distributed Object Implementations for Interactive Applications , 2000, Middleware.

[2]  Jason Maassen,et al.  Efficient Java RMI for parallel programming , 2001, TOPL.

[3]  Rachid Guerraoui,et al.  Implementation of the GARF replicated objects platform , 1995, Distributed Syst. Eng..

[4]  Andrew S. Tanenbaum,et al.  Globe: a wide area distributed system , 1999, IEEE Concurr..

[5]  Urs Hölzle,et al.  Removing unnecessary synchronization in Java , 1999, OOPSLA '99.

[6]  Emin Gün Sirer,et al.  Static Analyses for Eliminating Unnecessary Synchronization from Java Programs , 1999, SAS.

[7]  Steven Lester Halter,et al.  Enterprise Java Performance , 2000 .

[8]  A. Bakker,et al.  Design and Implementation of the Globe Middleware , 2003 .

[9]  Miguel Castro,et al.  Providing Persistent Objects in Distributed Systems , 1999, ECOOP.

[10]  Michael Philippsen,et al.  Compiler optimized remote method invocation , 2003, 2003 Proceedings IEEE International Conference on Cluster Computing.

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

[12]  Carlo Ghezzi,et al.  Enhancing Remote Method Invocation through Type-Based Static Analysis , 2004, FASE.

[13]  John Eberhard,et al.  Efficient Object Caching for Distributed Java RMI Applications , 2001, Middleware.

[14]  Tim Brecht,et al.  Exploiting dynamic proxies in middleware for distributed, parallel, and mobile Java applications , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[15]  Andrew S. Tanenbaum,et al.  From remote objects to physically distributed objects , 1999, Proceedings 7th IEEE Workshop on Future Trends of Distributed Computing Systems.

[16]  Marc Shapiro,et al.  Structure and Encapsulation in Distributed Systems: The Proxy Principle , 1986, ICDCS.

[17]  M. Frans Kaashoek,et al.  Rover: a toolkit for mobile information access , 1995, SOSP.

[18]  Vijay Karamcheti,et al.  Object views: language support for intelligent object caching in parallel and distributed computations , 1999, OOPSLA '99.

[19]  John Eberhard,et al.  Object-based commutativity analysis for real-time applications , 2005, 10th IEEE International Workshop on Object-Oriented Real-Time Dependable Systems.

[20]  Steve Counsell,et al.  Applications of dynamic proxies in distributed environments , 2005, Softw. Pract. Exp..

[21]  Assaf Schuster,et al.  A high performance cluster JVM presenting a pure single system image , 2000, JAVA '00.

[22]  Chandra Krintz,et al.  Reducing transfer delay using Java class file splitting and prefetching , 1999, OOPSLA '99.

[23]  Rachid Guerraoui,et al.  Building Reliable Client-Server Software Using Actively Replicated Objects , 1995 .

[24]  Jason Maassen,et al.  Parallel application experience with replicated method invocation , 2001, Concurr. Comput. Pract. Exp..