Efficient Object Caching for Distributed Java RMI Applications

  • John Eberhard
  • Anand Tripathi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2218)


Java-based distributed applications generally use RMI (Remote Method Invocation) for accessing remote objects. When used in a wide-area environment, the performance of such applications can be poor because of the high latency of RMI. This latency can be reduced by caching objects at the client node. However, the use of caching introduces other issues, including the expense of caching the object as well as the expense of managing the consistency of the object. This paper presents a middleware for object caching in Java RMI-based distributed applications. The mechanisms used by the middleware are fully compatible with Java RMI and are transparent to the clients. Using this middleware, the system designer can select the caching strategy and consistency protocol most appropriate for the application. The paper illustrates the benefits of using these mechanisms to improve the performance of RMI applications


Consistency Manager Action List Server Proxy Instance Variable Cache Replacement 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Aldrich, J., Chambers, C., Sirer, E. G., and Eggers, S. Static analyses for eliminating unnecessary synchronization from Java programs. In Proceedings of the Sixth International Static Analysis Symposium (Venezia, Italy, Sept. 1999), pp. 19–38.Google Scholar
  2. 2.
    Archibald, J., and Baer, J.-L. Cache coherence protocols: Evaluation using a multiprocessor simulation model. ACM Transactions on Computer Systems t4,4 (Nov. 1986), 278–298.Google Scholar
  3. 3.
    Aridor, Y., Factor, M., Teperman, A., Eliam, T., and Schuster, A. A high performance cluster JVM presenting a pure single system image. In Proc of 2000 Java grande conference (San Francisco, CA, June 2000), pp. 168–177.Google Scholar
  4. 4.
    Bakker, A., van Steen, M., and Tanenbaum, A. S. From remote objects to physically distributed objects. In Proceedings of the 7th IEEE Workshop on Future Trends of Distributed Computing Systems (Cape Town, South Africa, Dec. 1999), pp. 47–52.Google Scholar
  5. 5.
    Bogda, J., and Holzle, U. Removing unnecessary synchronization in Java. In Proceedings of the 14th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (Denver, Colorado, Nov. 1999), pp. 35–46.Google Scholar
  6. 6.
    Dahm, M. Byte code engineering with the JavaClass API. Tech. Rep. B-17-98, Freie Universitat Berlin, July 1999.Google Scholar
  7. 7.
    Garbinato, B., Guerraoui, R., and Masouni, K. R. Implementation of the GARF replicated objects platform. Distributed Systems Engineering Journal 1,1 (Mar. 1995).Google Scholar
  8. 8.
    Gray, J., and Shenoy, P. Rules of thumb in data engineering. In Proceedings of the 16th International Conference on Data Engineering (San Diego, CA, Feb. 2000), pp. 3–12.Google Scholar
  9. 9.
    Halter, S. L., and Munroe, S. J. Enterprise Java Performance. Prentice Hall PTR, 2000.Google Scholar
  10. 10.
    Hu, Y. C., Yu, W., Cox, A., Wallach, D., and Zwaenepoel, W. Runtime support for distributed sharing in typed languages. In Proceedings of LCR2000: The Fifth Workshop on Languages, Compilers, and Run-time Systems for Scalable Computers (Rochester, NY, May 2000).Google Scholar
  11. 11.
    Kleinoder, J., and Golm, M. MetaJava: An efficient run-time meta architecture for Java. In Proceedings of the Fifth Workshop on Object-Orientation in Operating Systems (IWOOOS’ 96) (Seattle, Washington, Oct. 1996), pp. 54–61.Google Scholar
  12. 12.
    Krintz, C., Calder, B., and Holzle, U. Reducing transfer delay using Java class file splitting and prefetching. In Proceedings of the 14th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (Denver, Colorado, Nov. 1999), pp. 276–291.Google Scholar
  13. 13.
    Krishnaswamy, V., Ganev, I. B., Dharap, J. M., and Ahamad, M. Distributed object implementations for interactive application. In Proceeeding of Middleware 2000 (New York, New York, Apr. 2000), pp. 45–70.Google Scholar
  14. 14.
    Krishnaswamy, V., Walther, D., Bhola, S., Bommaiah, E., Riley, G., Topol, B., and Ahamad, M. Efficient implementation of Java remote method invocation (RMI). In Proceedings of the 4th USENIX Conference on Object-Oriented Technologies and Systems (COOTS) (Sante Fe, New Mexico, Apr. 1998).Google Scholar
  15. 15.
    Levy, E., and Silberschatz, A. Distributed file systems: concepts and examples. ACM Computing Surveys 22,4 (Dec. 1990), 321–374.CrossRefGoogle Scholar
  16. 16.
    Lipkind, I., Pechtchanski, I., and Karamcheti, V. Object views: Language support for intelligent object caching in parallel and distributed computations. In Proceedings of the 14th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (Denver, Colorado, November 1999), pp. 447–460.Google Scholar
  17. 17.
    Liskov, B., Castro, M., Shrira, L., and Adya, A. Providing persistent objects in distributed systems. In Proceedings of ECOOP’99 (Lisbon, Portugal, June 1999), pp. 230–257.Google Scholar
  18. 18.
    Nester, C., Philippsen, M., and Haumacher, B. A more efficient RMI for Java. In Proceedings of The ACM 1999 Java Grande Conference (San Francisco, June 1999), pp. 153–159.Google Scholar
  19. 19.
    Shapiro, M. Structure and encapuslation in distributed system — the proxy principle. In Proceedings of the Sixth International Conference on Distributed Computing Systems (May 1986).Google Scholar
  20. 20.
    SUN Microsystems. Java remote method invocation specification, 1997.
  21. 21.
    Transaction Processing Performance Council. TPC benchmark C., 1999.
  22. 22.
    VAN Steen, M., Homburg, P., and Tanenbaum, A. S. Globe: A wide-area distributed system. IEEE Concurrency 7,1 (Mar. 1999), 70–78.CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2001

Authors and Affiliations

  • John Eberhard
    • 1
  • Anand Tripathi
    • 1
  1. 1.Department of Computer ScienceUniversity of MinnesotaMinneapolis

Personalised recommendations