Optimising Java RMI programs by communication restructuring

  • Authors:
  • Kwok Cheung Yeung;Paul H. J. Kelly

  • Affiliations:
  • Imperial College, London, UK;Imperial College, London, UK

  • Venue:
  • Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present an automated run-time optimisation framework that can improve the performance of distributed applications written using Java RMI whilst preserving its semantics. Java classes are modified at load-time in order to intercept RMI calls as they occur. RMI calls are not executed immediately, but are delayed for as long as possible. When a dependence forces execution of the delayed calls, the aggregated calls are sent over to the remote server to be executed in one step. This reduces network overhead and the quantity of data sent, since data can be shared between calls. The sequence of calls may be cached on the server side along with any known constants in order to speed up future calls. A remote server may also make RMI calls to another remote server on behalf of the client if necessary. Our results show that the techniques can speed up distributed programs significantly, especially when operating across slower networks. We also discuss some of the challenges involved in maintaining program semantics, and show how the approach can be used for more ambitious optimisations in the future.