skip to main content
10.1145/1621607.1621620acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
research-article

Classifying Java class transformations for pervasive virtualized access

Published: 04 October 2009 Publication History

Abstract

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.

References

[1]
S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovic, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications, pages 169--190, New York, NY, USA, October 2006. ACM Press.
[2]
Michael Factor, Assaf Schuster, and Konstantin Shagin. Instrumentation of standard libraries in object-oriented languages: the Twin Class Hierarchy approach. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 288--300, 2004.
[3]
Sheng Liang and Gilad Bracha. Dynamic class loading in the Java virtual machine. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 36--44, 1998.
[4]
Phil McGachey, Antony L. Hosking, and J. Eliot B. Moss. Pervasive load-time transformation for transparently distributed Java. In Proceedings of the International Workshop on Bytecode Semantics, Verification, Analysis, and Transformation, 2009.
[5]
David Saff, Shay Artzi, Jeff H. Perkins, and Michael D. Ernst. Automatic test factoring for Java. In Proceedings of the International Conference on Automated Software Engineering, pages 114--123, 2005.
[6]
Standard Performance Evaluation Corporation. SPEC JBB2005 Benchmark. http://www.spec.org/jbb2005,.
[7]
Standard Performance Evaluation Corporation. SPEC JVM2008 Benchmark. http://www.spec.org/jvm2008/,
[8]
Sun Microsystems, Inc. The JVM Tool Interface. http://java.sun.com/j2se/1.5.0/docs/guide/jvmti.
[9]
E. Tilevich and Y. Smaragdakis. J-Orchestra: Enhancing Java programs with distribution capabilities. ACM Transactions on Software Engineering and Methodology, 2009. To appear.
[10]
Eli Tilevich and Yannis Smaragdakis. J-Orchestra: Automatic Java application partitioning. In Boris Magnusson, editor, Proceedings of the European Conference on Object-Oriented Programming, volume 2374 of Lecture Notes in Computer Science, pages 178--204. Springer-Verlag, 2002.
[11]
Eli Tilevich and Yannis Smaragdakis. Transparent program transformations in the presence of opaque code. In Proceedings of the International Conference on Generative Programming and Component Engineering, Lecture Notes in Computer Science, pages 89--94, 2006.
[12]
Eli Tilevich, Yannis Smaragdakis, and Marcus Handte. Appletizing: Running legacy Java code remotely from a Web browser. In Proceedings of the IEEE International Conference on Software Maintanance, pages 91--100, 2005.
[13]
YourKit, LLC. The yourkit java profiler. URL http://www.yourkit.com/.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
GPCE '09: Proceedings of the eighth international conference on Generative programming and component engineering
October 2009
194 pages
ISBN:9781605584942
DOI:10.1145/1621607
  • General Chair:
  • Jeremy Siek,
  • Program Chair:
  • Bernd Fischer
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 2
    GPCE '09
    February 2010
    182 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1837852
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 October 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. java
  2. object model
  3. program transformation

Qualifiers

  • Research-article

Conference

GPCE'09
Sponsor:
GPCE'09: Generative Programming and Component Engineering
October 4 - 5, 2009
Colorado, Denver, USA

Acceptance Rates

GPCE '09 Paper Acceptance Rate 18 of 62 submissions, 29%;
Overall Acceptance Rate 56 of 180 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media