Lazy argument passing in Java RMI

  • Authors:
  • Christopher Line;K. R. Jayaram;Patrick Eugster

  • Affiliations:
  • Purdue University, West Lafayette;Purdue University, West Lafayette;Purdue University, West Lafayette

  • Venue:
  • Proceedings of the 6th international symposium on Principles and practice of programming in Java
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Though often criticized for its inherent synchronization overhead and coupling, the remote method invocation (RMI) paradigm remains one of the most popular abstractions for building distributed applications. Many authors have suggested ways to overcome its drawbacks focusing mostly on the invoker's perspective, for example by multiplexing invocations to replicated server objects, through "future" return values, or even by prohibiting return values altogether. The more global perspective, and in particular the invokee side, has conversely only received little attention. In this paper we take a fresh look at the RMI paradigm, elaborating on argument passing semantics. We identify three lazy ways of passing arguments by value, differing by the moment at which the transfer of the arguments synchronizes with the execution of the method body. We present a preliminary library implementation of our argument passing semantics in Java RMI, and illustrate their individual benefits through examples. We characterize analytically and empirically application scenarios which benefit from lazy argument passing.