Dynamic Software Updating and Run-time Composition
Peter Fritzson, subproject leader
Jens Gustavsson, PhD student
Traditionally, a new version of a program is introduced
by shutting down the executing version and then starting the new one.
This approach is not viable for systems where very high availability is required,
such as telephone switching systems. Dynamic updating,
i.e. updating programs without shutting them down,
has been a research area for several decades but none of the presented
updating systems has proven to be practical enough for widespread use.
In this subproject we investigate methods for dynamic updating of software
components and their relationship to aspect-oriented development.
As a research testbed, we use
JDrums (Java Distributed Run-time Updating Management System),
a prototype of an updating system for Java programs.
The goal of our work is to show how a useful object-oriented
dynamic updating system can be built, and to evaluate the approach.
This will result in a new tool, called JPatch.
We joined the RISE project in July 2004.
At this time, we could use the JDrums prototype system as a research platform.
JDrums was developed in a previous joint
development effort by Linköping University and Växjö university.
Our main research activity since then was to evaluate and improve the approach:
Even though JDrums is quite powerful, it has some shortcomings,
e.g. some complex restructurings of the program are impossible
and classes with methods that are always on the call stack
of some thread cannot be updated.
We proposed solutions for these shortcomings, and implemented
a new version of JDrums called JPatch.
We also demonstrated how runtime evolution of software can be
treated as an aspect.
The subproject has achieved its goals and is being finished in summer 2005.
A PhD thesis on this topic is being written by Jens Gustavsson
in spring/summer 2005.
Jens Gustavsson and T Staijen and Uwe Assmann:
Runtime Evolution as an Aspect.
Proceedings of First International Workshop on
Foundations of Unanticipated Software Evolution.
Barcelona, Spain, 2004.
- Jens Gustavsson:
Strategies for Handling the Activity Problem in Runtime Software Evolution
by Reducing Activity.
Proceedings of International Conference on Software Maintenance,
Chicago, Illinois, USA, 2004.
- Jens Gustavsson:
Dynamic Updating of Computer Programs -
Proposed Improvements to the JDrums Updating System. Submitted, 2005.
- Jens Gustavsson: (title to be announced), PhD thesis,
Linköpings universitet, forthcoming (2005).
- JPatch is a dynamic updating system for Java applications.
It comes with a component model that allows updates of Java methods
in running applications. However, everything works on a standard JVM.
This subproject is part of the RISE project at PELAB, IDA, Linköpings universitet,
from July 2004 to June 2005
and thereby supported by
Peter Fritzson (petfr \at ida.liu.se)