Abstract
Any non-trivial software system has to be upgraded regularly to incorporate bug fixes and security patches or simply to keep up with the inevitable evolution in end-user requirements. Software upgrading is challenging, especially when it comes to online upgrading of running systems. In this paper, we present the current status of Gosh!, a dynamic-software-updating system for Java, which provides comprehensive support for changing class definitions of live objects, including adding, removing and moving fields, methods, classes and interfaces anywhere in the inheritance hierarchy. Prior to the acquisition by zeroturnaround.com, Gosh! was known as Javeleon. In this paper we demonstrate the capabilities of Gosh! by performing a dynamic updating experiment on five consecutive revisions of the classical arcade game Breakout. 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 this finding for future research directions within dynamic software updating.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.