Static analysis for dynamic updates

Oleg Šelajev, Rein Raudjärv, Jevgeni Kabanov · 2013

Dynamic system update problem, DSU, is about replacing a running application with another version without interrupting its work or disrupting its users. Some solutions for DSU support only certain kinds of updates, which makes it dangerous to apply them without confidence that an update succeeds. This paper formalises an approach for a static analysis of updates. We define a method of producing lists of exact changes occurred between versions of packaged Java applications and cover essential for an update system analysis queries: producing a list of all changes in an update and asking if a given dynamic update system supports an update. We introduce a multilevel update event system capable of describing generic packaging modifications as well as Java language specific constructs updates. We analyse recent releases of a few open-source Java projects to determine what changes their updates usually consist of. Described system has an extensible design that allows analysing object-oriented applications and can support different packaging schemes. The method has been implemented and tested in production environments.

Read the paper · More papers on PaperTik