Abstract :
The paper describes two different approaches to supporting and managing the run-time evolution of distributed applications. The evolution models and implementations of the DRASTIC and GRUMPS projects are presented and contrasted. Within the context of related work, the paper argues that there is too little support for software engineers in constructing distributed applications that may be evolved at run-time. DRASTIC and GRUMPS address this problem by providing programming language layers that place the support for run-time change at the centre of an applicationʹs design. The paper goes on to present four core ideas that are generally applicable for the construction of run-time support layers. In addition, the lessons learned from conducting this research are discussed. The core ideas and the lessons learned are used to derive ten principles that may be exploited when designing other run-time evolution support systems. The paper ends with a discussion of the open issues that face those working in the field of distributed run-time evolution support.