Cloud computing and falling hardware prices today offer unprecedented access to cheap and flexible computer clusters. Unfortunately, developing the distributed applications that are needed to take full advantage of this extra capacity is still a daunting task. Application programmers must concern themselves not only with application logic, but also with the mechanics of distribution: tracking remote data, global synchronization, network configuration and so forth.
RuggedJ is a transparent Java distribution framework that relieves much of the burden from distributed programming. We inject distribution logic into standard Java applications, and we deploy the rewritten code across a dynamic run-time infrastructure. This way, we maintain the semantics of the original application while providing powerful distribution capabilities such as dynamic application partitioning, object location transparency and replication of immutable state.
This dissertation describes the design and implementation of our prototype RuggedJ transparent distribution infrastructure. It discusses both the bytecode rewriting techniques that allow us to distribute code and the run-time infrastructure that manages the distributed application. We investigate the properties of distributable applications (those that benefit from distribution), and describe techniques to optimize performance for the RuggedJ platform. Finally, we demonstrate that the system can distribute several realistic applications, and show that these applications exhibit scalability when running on a cluster beyond that possible on a single machine.
@phdthesis{McGachey2010PhD, author = {McGachey, Philip}, title = {Transparent Distribution for Java Applications}, school = {Purdue University}, year = {2006}, type = {PhD dissertation}, month = {May} }