TY - GEN
T1 - Classifying java class transformations for pervasive virtualized access
AU - McGachey, Phil
AU - Hosking, Antony L.
AU - Moss, J. Eliot B.
PY - 2009
Y1 - 2009
N2 - The indirection of object accesses is a common theme for target domains as diverse as transparent distribution, persistence, and program instrumentation. Virtualizing accesses to fields and methods (by redirecting calls through accessor and indirection methods) allows interposition of arbitrary code, extending the functionality of an application beyond that intended by the original developer. We present class modifications performed by our RuggedJ transparent distribution platform for standard Java virtual machines. RuggedJ abstracts over the location of objects by implementing a single object model for local and remote objects. However the implementation of this model is complicated by the presence of native and system code; classes loaded by Java's bootstrap class loader can be rewritten only in a limited manner, and so cannot be modified to conform to RuggedJ's complex object model. We observe that system code comprises the majority of a given Java application: an average of 76% in the applications we study. We consider the constraints imposed upon pervasive class transformation within Java, and present a framework for systematically rewriting arbitrary applications. Our system accommodates all system classes, allowing both user and system classes alike to be referenced using a single object model.
AB - The indirection of object accesses is a common theme for target domains as diverse as transparent distribution, persistence, and program instrumentation. Virtualizing accesses to fields and methods (by redirecting calls through accessor and indirection methods) allows interposition of arbitrary code, extending the functionality of an application beyond that intended by the original developer. We present class modifications performed by our RuggedJ transparent distribution platform for standard Java virtual machines. RuggedJ abstracts over the location of objects by implementing a single object model for local and remote objects. However the implementation of this model is complicated by the presence of native and system code; classes loaded by Java's bootstrap class loader can be rewritten only in a limited manner, and so cannot be modified to conform to RuggedJ's complex object model. We observe that system code comprises the majority of a given Java application: an average of 76% in the applications we study. We consider the constraints imposed upon pervasive class transformation within Java, and present a framework for systematically rewriting arbitrary applications. Our system accommodates all system classes, allowing both user and system classes alike to be referenced using a single object model.
KW - Java
KW - Object model
KW - Program transformation
UR - http://www.scopus.com/inward/record.url?scp=70450171137&partnerID=8YFLogxK
U2 - 10.1145/1621607.1621620
DO - 10.1145/1621607.1621620
M3 - Conference contribution
AN - SCOPUS:70450171137
SN - 9781605588629
T3 - GPCE'09 - Proceedings of the 8th International ACM SIGPLAN Conference on Generative Programming and Component Engineering
SP - 75
EP - 84
BT - GPCE'09 - Proceedings of the 8th International ACM SIGPLAN Conference on Generative Programming and Component Engineering
T2 - 8th International ACM SIGPLAN Conference on Generative Programming and Component Engineering, GPCE'09
Y2 - 4 October 2009 through 5 October 2009
ER -