Pervasive Load-Time Transformation for Transparently Distributed Java

Phil McGachey*, Antony L. Hosking, J. Eliot B. Moss

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

3 Citations (Scopus)

Abstract

The transformation of large, off-the-shelf Java applications to support complex new functionality essentially requires generation of an entirely new application that retains the execution semantics of the original. We describe such a whole-program modification in the context of RuggedJ, a dynamic transparent Java distribution system. We discuss the proxy-based object model that allows remote Java objects to be referenced in the same way as those residing on the current virtual machine, the optimizations that allow us to bypass proxies in the case of purely local or remote object, and the mechanisms needed to guarantee that static data remain unique in a distributed system. We then detail some of the more interesting features involved when implementing this object model in rewritten bytecode, including transformations required within method bodies and coordination between bytecode and the run-time system that distributes an application across the network.

Original languageEnglish
Pages (from-to)47-64
Number of pages18
JournalElectronic Notes in Theoretical Computer Science
Volume253
Issue number5
DOIs
Publication statusPublished - 1 Dec 2009
Externally publishedYes

Fingerprint

Dive into the research topics of 'Pervasive Load-Time Transformation for Transparently Distributed Java'. Together they form a unique fingerprint.

Cite this