A new method is disclosed, for upgrading the software in a real-time
distributed software system comprising several processes running in
parallell. The method involves a preparatory procedure in which the new
software is installed. Then, the software is activated, the components
ordered to save configuration data and transaction data in a database,
whereupon the components are stopped. When the preparatory procedure is
completed, a restart procedure is invoked. This involves selecting start
level (full upgrade involving all components, or a partial upgrade
concerning just one or a few components). The modules concerned are
started from the new software version. On each start level a number of
start phases are defined. These are sequential steps performed during the
restart operation. Each module subscribes to a number of these phases.
Some of the phases are defined as synchronisation points, here called
service levels, which all modules have to arrive at before the process is
allowed to commence. During this process, each module is given the
responsibility of converting any configuration data or transaction data
belonging to it, if needed. The conversion is done by reading the old
data from the database mentioned above and converting said data to the
format required by the new software.