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.
Please contact:
Marcin Solarski - GMD
Tel: +49 30 3463 7131
E-mail: solarski@fokus.gmd.de