Open Access
Controlled, systematic, and efficient code replacement for running Java programs
Angela Nicoara
- 01 Jan 2007
- Vol. 569
66
TL;DR: The PROSE project as mentioned in this paper performs reversible and systematic changes to running Java applications without requiring them to be shutdown, motivated by scenarios such as hotfixes, online program instrumentation and debugging, and evolution of critical legacy applications.
read more
Abstract: We present a system that performs reversible and systematic changes to running Java applications without requiring them to be shutdown. PROSE is motivated by scenarios such as hotfixes, online program instrumentation and debugging, and evolution of critical legacy applications. Modifications take the form of replacement method bodies, and can use both type-based and regular expression patterns to select code for replacement. New code can make use of replaced method implementations cleanly, facilitating code evolution. Changes are composable, and may be reordered or selectively withdrawn at any time. Furthermore, the modifications are expressed as Java classes, providing additional development benefits. We describe the architecture of PROSE, the challenges of using aggressive inlining to achieve performance, and use standard benchmarks to demonstrate code performance comparable (or better than) compile-time systems from the Aspect-Oriented Programming community.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Dynamic software updates: a VM-centric approach
Suriya Subramanian,Michael Hicks,Kathryn S. McKinley +2 more
- 15 Jun 2009
TL;DR: The design and implementation of Jvolve, a DSU-enhanced Java VM that can support 20 of 22 updates to three open-source programs--Jetty web server, JavaEmailServer, and CrossFTP server--based on actual releases occurring over 1 to 2 years are presented.
•Proceedings Article
Java 2 Platform Enterprise Edition (J2EE) for Building Web-Based Enterprise Applications
G. Pour
- 29 Jul 2001
TL;DR: J2EE offers “Write Once, Run Anywhere” platform, and takes advantage of JDBC API for database access, CORBA technology for interaction with existing enterprise resources, a security model that protects data in Internet applications.
71
Bytecodes meet combinators: invokedynamic on the JVM
John R. Rose
- 25 Oct 2009
TL;DR: To generalize method calls on the JVM, the JSR 292 Expert Group has designed a new invokedynamic instruction that provides user-defined call site semantics, balancing the conciseness of bytecode with the dynamic flexibility of function pointers.
Composing Synchronization and Real-Time Constraints
Lodewijk Bergmans,Mehmet Aksit +1 more
- 27 Oct 1995
TL;DR: This paper proposes modular and composable synchronization and real-time specification extensions to the object-oriented model, and the applicability of the proposed mechanisms is illustrated through a number of examples.
61
Flexible feature binding in software product lines
Marko Rosenmüller,Norbert Siegmund,Sven Apel,Gunter Saake +3 more
- 01 Jun 2011
TL;DR: This work presents an approach that integrates static and dynamic feature binding seamlessly, which allows a programmer to implement an SPL once and to decide per feature at deployment time whether it should be bound statically or dynamically.
55
References
Aspect-oriented programming
Gregor Kiczales,Erik Hilsdale +1 more
- 01 Sep 2001
TL;DR: This tutorial shows how to use AOP to implement crosscutting conerns in a concise modular way and includes a description of their underlying model, in terms of which a wide range of AOP languages can be understood.
5.6K
On the criteria to be used in decomposing systems into modules
TL;DR: In this paper, the authors discuss modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time, and the effectiveness of modularization is dependent upon the criteria used in dividing the system into modules.
•Book
The Java Language Specification
James Gosling,Bill Joy,Guy L. Steele +2 more
- 12 Sep 1996
TL;DR: The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.
Pin: building customized program analysis tools with dynamic instrumentation
Chi-Keung Luk,Robert Cohn,Robert Muth,Harish Patil,Artur Klauser,Geoff Lowney,Steven Wallace,Vijay Janapa Reddi,Kim Hazelwood +8 more
- 12 Jun 2005
TL;DR: The goals are to provide easy-to-use, portable, transparent, and efficient instrumentation, and to illustrate Pin's versatility, two Pintools in daily use to analyze production software are described.
Related Papers (5)
Zoran Budimlić,Ken Kennedy +1 more
- 01 Jan 2001
Kazuaki Ishizaki,Shahrokh Daijavad,Toshio Nakatani +2 more
- 17 Jul 2011