Change management of distributed systems

  • Authors:
  • Jeff Kramer;Jeff Magee

  • Affiliations:
  • University of London, London, UK;University of London, London, UK

  • Venue:
  • EW 3 Proceedings of the 3rd workshop on ACM SIGOPS European workshop: Autonomy or interdependence in distributed systems?
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

One of the major challenges in the use of distributed computing systems is the accomodation of evolutionary change. Systems evolve as human needs change, technology changes and the application environment changes. These changes may require modification of a function already provided by the system, or extension by the introduction of new functions. In general, evolutionary changes are difficult to accomodate as they cannot be predicted at the time the system is designed. Consequently, systems should be sufficiently flexible to permit arbitrary, incremental changes. Furthermore we believe that systems must be capable of supporting such change dynamically, without interrupting the processing of those parts of the system which are not directly affected.Distributed systems are specified and constructed in terms of their software structure (configuration). It is therefore appropriate that changes should be specified in terms of structure and managed at the configuration level in terms of software components (nodes) and their interconnections [1]. Change management should thus permit the introduction of arbitrary changes to a system configuration and separate the application concerns from those at the configuration level. This permits the formulation of general structural rules for change without the need to consider application state, and the specification of application actions without knowledge of the actual changes which may be introduced. In addition, the changes can be effected in such a way as to leave the modified system in a consistent state, and cause minimal disturbance to the application during change.As in most issues, that of autonomy versus interdependence is not a clearcut choice. Interdependence is obviously essential for the interactions between software nodes, while autonomy is desirable for resource control and fault tolerance. As far as change management is concerned, autonomous software nodes enable change to be more easily introduced. In addition, one can identify degrees of autonomy/interdependence. The current work on change management has identified two particular classes of interdependence involving dependent and independent transactions which 'quantify' the effect of interdependence on change. In addition, the complexity of the application contribution in terms of initialisation and finalisation actions to preserve consistency, provide some 'qualitative' indication of the effect of interdependence.This position paper briefly outlines the model adopted for change management and indicates the conclusions that can be drawn relating to autonomy/interdependence. A full description of the model together with a detailed example is given in [2]. The principles described in the model have been implemented and tested in the Conic environment [1,3,4] for distributed systems.