ISU Electrical and Computer Engineering Archives

Dynamic Refactoring-aware Automated Update of Java Online Applications

Gharaibeh, Bashar and Nguyen, Tien N. and Chang, Morris and Dig, Danny (2008) Dynamic Refactoring-aware Automated Update of Java Online Applications. Publisher UNSPECIFIED.

Full text available as:

PDF - Requires Adobe Acrobat Reader or other PDF viewer.


Refactorings of software components (e.g., libraries and frameworks) can change the APIs of the components. To use the latest version of a component, applications that reuse those APIs need to be updated. Traditionally, this is done manually, which is error-prone, tedious, and disruptive. The problem is exacerbated for long-running applications (e.g., servers) that cannot be shut down, updated, and restarted. This paper presents a practical approach and our tool, dReAM, to automat- ically and safely update running Java applications without restarting them. At the core lies a formal representation of programs to validate the composition of refactorings and other API changes to both component and application. If dReAM ¯nds that there are no con°icts between components and API changes, then the running application can be safely transformed to work with the new API. To apply these API changes at runtime, dReAM extends JikesRVM, a popular JVM. Case studies on Jigsaw web server and James mail server shows that the performance overhead imposed by our update tool is less than 5%, and running applications will remain responsive during the update period. More- over, dReAM is non-intrusive for the development process: application and component developers do not need to write any annotations nor do they need to compile their programs in a special way.

EPrint Type:Technical Report
Subjects:Computer Engineering > SOFTWARE SYSTEMS > Software Engineering
ID Code:410
Identification Number:Identification Number UNSPECIFIED
Deposited By:Bashar Gharaibeh
Deposited On:02 July 2008

Archive Staff Only: edit this record