ERCIM News No.35 - October 1998
Dynamic Updating of Software Components in TINA-based Systems
by Marcin Solarski
Change management is indispensable in most distributed software systems which are continually being modified throughout their life cycle. Maintenance breaks for introducing changes in mission-critical applications are impractical or not acceptable. To address the problem, GMD Institute for Open Communication Systems is working on a software technology that supports online update of system components. One of the research goals is to develop a dynamic updating infrastructure based on the Platin platform, which is an implementation of a TINA DPE (Telecommunications Information Networking Architecture Distributed Processing Environment) developed at GMD Institute for Open Communication Systems.
Most software systems are evolving during their life time. The spectrum of software change is wide and ranges from introducing program corrections or performance improvements of existing system components to complex changes of the overall functionality and structure of the system necessary to adapt the system to new user requirements. Traditionally, the system parts to update have to be stopped and a system shutdown for a maintenance break follows, in which the system functionality is heavily degraded or even not available at all.
This approach, however, is not suitable in large-scale distributed systems that have to be high available, like system providing telecommunication services. The reason for that is that excessive system functionality has to be inactivated when the system components are shut down for a maintenance break, as the granularity of the system components to update is often overly coarse, a typical unit of change being a program or library.
To address the problems of managing changes in high-available systems, scientists at GMD Institute for Open Communication Systems are working on the foundations of a software technology and needed infrastructure that provides a systematical support for replacing system components on the fly. The infrastructure shall fulfill the following requirements:
- an update of a component is transparent to the rest of the system
- the loss of system functionality during the update is minimized
- a process of the system upgrade needs minimal human intervention
- the update capabilities of software do not significantly impact the effort required to build such software
- the system update is reliable.
Our approach is to elaborate a component model which defines the key concepts necessary to describe the evolutionary aspects of software systems. This model will be compliant with the RM-ODP (Reference Model of Open Distributed Processing) and TINA standards. As a proof of concept, the model will be then validated in the context of a concrete programming environment. This validation will result in a design of a dynamic updating facility embedded in the Platin platform, which is a CORBA based (Common Object Request Broker Architecture) realization of TINA DPE developed at GMD Institute for Open Communication Systems, and a prototype of this facility in Java.
As the dynamic updating problem in the context of distributed application involves addressing many concerns of distributed systems that have been investigated in other research and industrial projects, an important part of our work will be adaptation and integration of the results from the related research, especially in the area of fault tolerance, object migration, and component-oriented technologies, such as JavaBeans, CORBA or DCOM (Distributed Component Object Model).
The infrastructure supporting dynamic updating of software components is presented in the figure. The elements of the infrastructure are described as follows:
- Dynamic Update Facility (DUF) provides basic mechanisms enabling component replacing at system runtime. The mechanisms are embedded in the TINA DPE platform and use other services of the platform, like dynamic loading of components, component state storing/restoring or inter-component reference management.
- Platin Platform is a CORBA-based TINA DPE. Extended with the DUF facility, the platform forms a complete execution environment for distributed software components capable of being dynamically updated.
- Development support environment consists of a set of development tools which support the programmer to develop updateable components. Their aim is to minimize the effort of providing components with dynamic update capability.
To achieve the goals presented above and build a dynamic updating infrastructure, several technical problems have to be addressed. They can be roughly divided into two groups: (a) the ones concerning the evolutionary aspects of the component model, including component versioning and a definition of component substitutability; and (b) the ones related to preserving consistency of a software system during and across system updates. The latter issues comprise a correct transfer and transformation of the computational state of a component between its different implementation versions, keeping integrity of component interactions and handling the update of constantly active components.
The technology and software infrastructure that is to be worked out in this project will allow a more flexible management of evolution in TINA-based systems. This will result in their better high availability and a significant decrease in maintenance costs with respect to system shutdown during maintenance breaks.
Marcin Solarski - GMD
Tel: +49 30 3463 7131