Partitioning of Java applications to support dynamic updates

The requirement for 24/7 availability of distributed applications complicates their maintenance and evolution as shutting down such applications to perform updates may not be an acceptable solution. Therefore, there is a need to be able to update these applications dynamically, i.e. without shutting them down. Current solutions for building dynamically updatable Java applications require that applications either are prepared for updates from the outset, comply with a specific framework, or are executed in a modified virtual machine. In this work, we present a novel approach to creating dynamically updatable Java applications based on the concept of partitioning applications into units of dynamic updates and illustrate how this approach better addresses the problems of adding update support to existing applications than traditional approaches.

[1]  Deepak Gupta,et al.  A Formal Framework for On-line Software Version Change , 1996, IEEE Trans. Software Eng..

[2]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[3]  Frantisek Plasil,et al.  Behavior Protocols for Software Components , 2002, IEEE Trans. Software Eng..

[4]  Robert Gray,et al.  Dynamic C++ Classes - A Lightweight Mechanism to Update Code in a Running Program , 1998, USENIX Annual Technical Conference.

[5]  Yannis Smaragdakis,et al.  J-Orchestra: Automatic Java Application Partitioning , 2002, ECOOP.

[6]  Francisco Reverbel,et al.  The JBoss Extensible Server , 2003, Middleware.

[7]  Mikhail Dmitriev,et al.  Safe class and data evolution in large and long-lived Java applications , 2001 .

[8]  Frantisek Plasil,et al.  SOFA/DCUP: architecture for component trading and dynamic updating , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[9]  Shigeru Chiba,et al.  A Bytecode Translator for Distributed Execution of "Legacy" Java Software , 2001, ECOOP.

[10]  Eric Jul,et al.  A framework for evolutionary, dynamically updatable, component-based systems , 2004, 24th International Conference on Distributed Computing Systems Workshops, 2004. Proceedings..

[11]  Pascal Costanza Transmigration of Object Identity : The Programming Language Gilgul , 2001 .

[12]  Muga Nishizawa,et al.  An Easy-to-Use Toolkit for Efficient Java Bytecode Translators , 2003, GPCE.

[13]  Scott Nettles,et al.  Dynamic software updating , 2001, PLDI '01.

[14]  Juha Lindfors,et al.  JMX: Managing J2EE with Java Management Extensions , 2002 .

[15]  Günter Kniesel Type-Safe Delegation for Run-Time Component Adaptation , 1999, ECOOP.

[16]  Gordon S. Blair,et al.  Supporting adaptable distributed systems with FORMAware , 2004, 24th International Conference on Distributed Computing Systems Workshops, 2004. Proceedings..