Description:DReflect - A Reflective Middleware for Transparently and Effectively Distributing Objects on a Grid System
Abstract:Our purpose is to develop a middleware for transparently executing a Java \ legacy\ application over the Grid, by
intercepting and relocating object allocations, and by supporting totally transparent access to the relocated objects.
Reflection (enhanced by the use of Javassist) is used to modify the bytecode of the legacy application, for all modifications necessary to a distributed execution, so that (for instance) all local method invocations to relocated objects are transformed into RPC calls; this way the legacy application needs no modification for execution over the Grid.
As allocation policy, we use load balancing is used, but we also try to detect connections between interacting objects and to place strongly interacting ones next to each other, in order to minimize the amount of data to be trasmitted on the network. Also, we account for potential differences in the software environment: for each class a set of dependencies can be specified, so that its instances are not allocated on hosts missing those dependencies.
<br>A Java VM, release >= 5.0
<br>The Javassist library, freely available from http://www.csg.is.titech.ac.jp/~chiba/javassist/ (no need for system-wide installation, it is deployed together with our middleware).^