dReAM: Dynamic Refactoring-aware Automated Migration of Java Online Applications
Gharaibeh, Bashar and Dig, Danny and Nguyen, Tien N. and Chang, J. Morris (2007) dReAM: Dynamic Refactoring-aware Automated Migration of Java Online Applications. Publisher UNSPECIFIED, Ames, USA.
Full text available as:
Refactorings in software components (e.g., libraries and frameworks) can change the APIs of the components. In order to use the latest version of a component, applications that reuse those APIs need to be updated. This is traditionally 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 automatically and safely update running applications without restarting them. At the core lies a practical representation of programs to eﬃciently validate the composition of refactorings and other API changes from both component and application. If dReAM ﬁnds that there are no conﬂicts between component and application API changes, the behavior of the application is preserved with respect to the semantics of these API changes. To apply these API changes at runtime, dReAM extends Jikes, a popular JVM. Experiments and a case study of Jigsaw web server shows that the performance overhead imposed by our update tool is less than 5% and the time to apply the update is minimal. Moreover, dReAM is non-intrusive for the current 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