Safe Class Sharing among Java Processes

The execution of multiple, mutually distrusting applications or multiple instances of the same application for different users in a Java Virtual Machine (JVM) requires a form of multi-processing which protects the integrity of the JVM as well as the integrity of individual applications.
Existing solutions protect processes by loading applicaiton classes in dedicated process class loaders and by allowing sharing of only the core Java classes between processes. These techniques are costly in terms of memory consumption, startup time and inter-domain communication.
This paper describes a new approach which overcomes these limitations. It proposes a byte code transformation which allows the safe sharing of application classes between processes even in the presence of static fields. The feasibility of our approach is verified in a quantitative performance evaluation.

By: Jens Krause and Bernhard Plattner

Published in: RZ3230 in 2000

LIMITED DISTRIBUTION NOTICE:

This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.

rz3230.pdf

Questions about this service can be mailed to reports@us.ibm.com .