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:
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.
Archive Staff Only: edit this record