Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1352592.1352617acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article

Controlled, systematic, and efficient code replacement for running java programs

Published: 01 April 2008 Publication History

Abstract

In this paper we present PROSE, a system that performs reversible and systematic changes to running Java applications without requiring them to be shut down. PROSE is motivated by scenarios such as hotfixes, online program instrumentation and debugging, and evolution of critical legacy applications. In PROSE, changes to running applications are performed by replacing method bodies. To select which code to replace, PROSE supports matching based on both type information and regular expressions. New code can invoke the method it replaces, facilitating code evolution. Changes are composable, and may be reordered or selectively withdrawn at any time. Furthermore, the dynamic changes are expressed as Java classes rather than through an additional programming language. We describe the architecture of PROSE, the challenges of using aggressive inlining to achieve performance, and use standard benchmarks to demonstrate code performance comparable with, or better than, compile-time systems from the Aspect-Oriented Programming community.

References

[1]
Sameer Ajmani, Barbara Liskov, and Liuba Shrira. Scheduling and Simulation: How to Upgrade Distributed Systems. In Proceedings of the 9th Workshop on Hot Topics in Operating Systems (HotOS IX), Lihue, Hawai, May 2003.
[2]
Sameer Ajmani, Barbara Liskov, and Liuba Shrira. Modular Software Upgrades for Distributed Systems. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'06), Nantes, France, July 2006.
[3]
Bowen Alpern, C. R. Attanasio, John J. Barton, Michael G. Burke, Perry Cheng, Jong-Deok Choi, Anthony Cocchi, Stephen J. Fink, David Grove, Michael Hind, Susan Flynn-Hummel, Derek Lieber, Vassily Litvinov, Mark F. Mergen, Ton Ngo, James R. Russell, Vivek Sarkar, Mauricio J. Serrano, Janice C. Shepherd, Stephen E. Smith, V. C. Sreedhar, Harini Srinivasan, and John Whaley. The Jalapeno virtual machine. In IBM System Journal, 39(1), 2000.
[4]
Joe Armstrong, Robert Virding, Claes Wikström, and Mike Williams. Concurrent Programming in Erlang. Prentice Hall, 2nd edition, 1996.
[5]
AspectBench Compiler (abc) website. http://abc.comlab.ox.ac.uk/.
[6]
AspectJ website. http://www.eclipse.org/aspectj/.
[7]
AspectWerkz website. http://aspectwerkz.codehaus.org/.
[8]
Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, Ondrej Lhoták, Oege de Moor, Damien Sereni, Ganesh Sittampalam, and Julian Tibble. Optimising AspectJ. In Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'05), Chicago, USA, 2005.
[9]
Roger Barga, David Lomet, and Gerhard Weikum. Recovery Guarantees for General Multi-Tier Applications. In Proceedings of the IEEE International Conference on Data Engineering (ICDE'02), San Jose, California, 2002.
[10]
Christoph Bockisch, Michael Haupt, Mira Mezini, and Klaus Ostermann. Virtual Machine Support for Dynamic Join Points. In Proceedings of the International Conference on Aspect-Oriented Software Development (AOSD'04), pages 83--92, Lancaster, UK, 2004.
[11]
George Candea, Shinichi Kawamoto, Yuichi Fujiki, Greg Friedman, and Armando Fox. Microreboot - A Technique for Cheap Recovery. In Proceedings of the 6th USENIX Symposium on Operating Systems Design and Implementation (OSDI'04), California, USA, 2004.
[12]
Mikhail Dmitriev. Application of the HotSwap Technology to Advanced Profiling. In Proceedings of the ECOOP'02 Workshop on Unanticipated Software Evolution, 2002.
[13]
ECMA International. Standard ECMA-335, Common Language Infrastructure (CLI), 4 edition, June 2006.
[14]
Erich Gamma and Kent Beck. Contributing to Eclipse: Principles, Patterns, and Plug-Ins. Addison-Wesley, 2004.
[15]
Michael Haupt. Virtual Machine Support for Aspect-Oriented Programming Languages. PhD thesis, Darmstadt University of Technology, 2006.
[16]
Erik Hilsdale and Jim Hugunin. Advice Weaving in AspectJ. In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD'04), Lancaster, UK, 2004.
[17]
JAC website. http://jac.objectweb.org.
[18]
Java Grande Forum. Java Grande benchmark suite. http://www.javagrande.org, 2006.
[19]
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-Oriented Programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP '97), vol. 1241 of LNCS, pag. 220--242, Springer-Verlag, Jyvaskyla, Finland, 1997.
[20]
Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace Vijay Janapa Reddi, and Kim Hazelwood. Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'05), Chicago, Illinois, USA, 2005.
[21]
Angela Nicoara and Gustavo Alonso. Dynamic AOP with PROSE. In Proceedings of the International Workshop on Adaptive and Self-Managing Enterprise Applications (ASMEA'05) in conjunction with the 17th Conference on Advanced Information Systems Engineering (CAiSE'05), Porto, Portugal, June 2005.
[22]
Marek Olszewski, Keir Mierle, Adam Czajkowski, and Angela Demke Brown. JIT Instrumentation - A Novel Approach To Dynamically Instrument Operating Systems. In Proceedings of the ACM EuroSys 2007 Conference (EuroSys'07), Lisbon, Portugal, 2007.
[23]
Phoenix Project, Database Group, Microsoft Research. http://www.research.microsoft.com/db/phoenix/.
[24]
Spec - Standard Performance Evaluation Corporation. http://www.specorg/osg/jvm98/.
[25]
Sun Microsytems. Java 2 Platform, Standard Edition (J2SE). http://java.sun.com/j2se, 2006.
[26]
Michael Swift, Muthukaruppan Annamalai, Brian N. Bershad, and Henry M. Levy. Recovering Device Drivers. In Proceedings of the 6th USENIX Symposium on Operating Systems Design and Implementation (OSDI'04), California, USA, 2004.
[27]
TPC-W Benchmark Specification. http://www.tpc.org/tpcw/specs.asp.

Cited By

View all
  • (2024)The Cost of Profiling in the HotSpot Virtual MachineProceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3679007.3685055(112-126)Online publication date: 13-Sep-2024
  • (2018)An approach for managing the dynamic reconfiguration of software architecturesInternational Journal of Computational Science and Engineering10.5555/3282692.328270017:2(220-233)Online publication date: 1-Jan-2018
  • (2016)A dynamic instance binding mechanism supporting run-time variability of role-based software systemsCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892687(137-142)Online publication date: 14-Mar-2016
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
Eurosys '08: Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
April 2008
346 pages
ISBN:9781605580135
DOI:10.1145/1352592
  • cover image ACM SIGOPS Operating Systems Review
    ACM SIGOPS Operating Systems Review  Volume 42, Issue 4
    EuroSys '08
    May 2008
    321 pages
    ISSN:0163-5980
    DOI:10.1145/1357010
    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: 01 April 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. PROSE
  2. dynamic bytecode instrumentation
  3. inlining
  4. run-time method code replacement
  5. run-time modification

Qualifiers

  • Research-article

Conference

Eurosys '08
Sponsor:
Eurosys '08: Eurosys 2008 Conference
April 1 - 4, 2008
Glasgow, Scotland UK

Acceptance Rates

Overall Acceptance Rate 241 of 1,308 submissions, 18%

Upcoming Conference

EuroSys '25
Twentieth European Conference on Computer Systems
March 30 - April 3, 2025
Rotterdam , Netherlands

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)3
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)The Cost of Profiling in the HotSpot Virtual MachineProceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3679007.3685055(112-126)Online publication date: 13-Sep-2024
  • (2018)An approach for managing the dynamic reconfiguration of software architecturesInternational Journal of Computational Science and Engineering10.5555/3282692.328270017:2(220-233)Online publication date: 1-Jan-2018
  • (2016)A dynamic instance binding mechanism supporting run-time variability of role-based software systemsCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892687(137-142)Online publication date: 14-Mar-2016
  • (2016)Low-Disruptive Dynamic Updating of Internetware ApplicationsInternetware10.1007/978-981-10-2546-4_8(163-183)Online publication date: 3-Dec-2016
  • (2013)An Analysis of Language-Level Support for Self-Adaptive SoftwareACM Transactions on Autonomous and Adaptive Systems10.1145/2491465.24914668:2(1-29)Online publication date: 1-Jul-2013
  • (2013)Towards performance monitoring overhead reduction2013 IEEE 11th International Symposium on Intelligent Systems and Informatics (SISY)10.1109/SISY.2013.6662557(135-140)Online publication date: Sep-2013
  • (2012)Dynamic aspect-oriented programming in javaTransactions on Aspect-Oriented Software Development IX10.5555/2434958.2434962(92-122)Online publication date: 1-Jan-2012
  • (2012)Re-usability in complex event pattern monitoring2012 IEEE 10th International Symposium on Applied Machine Intelligence and Informatics (SAMI)10.1109/SAMI.2012.6208970(265-270)Online publication date: Jan-2012
  • (2012)Programming strategies for runtime adaptability7th International Workshop on Reconfigurable and Communication-Centric Systems-on-Chip (ReCoSoC)10.1109/ReCoSoC.2012.6322875(1-8)Online publication date: Jul-2012
  • (2012)Dynamic Aspect-Oriented Programming in Java: The HotWave ExperienceTransactions on Aspect-Oriented Software Development IX10.1007/978-3-642-35551-6_3(92-122)Online publication date: 2012
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media