We then investigate the effects of dynamic updating by performing a dynamic updating experiment on five consecutive revisions of the classical arcade game Breakout using the dynamic updating system Gosh! Based on the result of this experiment we show that dynamic updating of class definitions for live objects may under some circumstances result in different run-time behavior than would be observed after a cold restart of the upgraded application.Finally, we conclude by discussing the implication of integrating the dynamic updating model of Gosh! The successful integration of these two systems will set a new standard for dynamic software updating in Java.
Today software systems play a critical role in society’s infrastructures and many are required to provide uninterrupted services in their constantly changing environments.
As the problem domain and the operational context of such software changes, the software itself must be updated accordingly.
We discuss how patches are generated mostly automatically, how they are applied using dynamic-linking technology, and how code is compiled to make it updateable.
To concretely illustrate our system, we have implemented a dynamically updateable web server, Flash Ed.
Thus, they permit to update the application feature by updating the underlying programming constructs without affecting the behaviour of the other application features.
Such a linguistic approach provides the benefit of easy addition/removal of application features (with a special focus on non-functional features) to/from a running application by separating the implementation of the new feature from the original application, allowing for the application to remain unaware of any extensions.
Second, Kitsune makes the important aspects of updating explicit in the program text, making its semantics easy to understand while keeping programmer work to a minimum.
Finally, the programmer can write simple specifications to direct Kitsune to generate code that traverses and transforms old-version state for use by the new code; such state transformation is often necessary, and is significantly more difficult in prior DSU systems.
We present a new approach that provides type-safe dynamic updating of native code in an extremely flexible manner (functions and types may be updated, and at any time) and permits the use of automated tools to aid the programmer in the updating process.