Overview of Adaptive Distributed Systems

Designing and Implementing Adaptive Distributed Systems

Richard D. Schlichting, Principal Investigator
Department of Computer Science
The University of Arizona


The goal of this project is to develop new techniques for designing and implementing adaptive distributed computing systems that can evolve their behavior based on changes in the environment. Since adaptation must often be coordinated among multiple sites in a distributed system, the primary focus is on providing a distribution support layer - that is, a software layer implementing strong execution guarantees regarding the distributed state of the application - that can adapt to changes. The types of environmental changes being considered include processor and link failures, changes in communication patterns and frequency, changes in failure rates, and changed application requirements.

The first component of the project is developing a conceptual model for adaptive distributed systems. In the model, the adaptation process is divided into three phases: change detection, agreement, and action. The change detection phase might, for example, involve monitoring message flow between sites or sending control/test messages to the change detection processes on other sites. The change could also be initiated by the user or the application. The agreement phase is often some kind of distributed agreement algorithm, for example, a majority vote or agreement on maximum value. In some cases, an expensive distributed agreement protocol can be replaced by the decision of central coordinator, or each site can make a decision independently of others. The action phase can range from simply modifying the timeout period for a network protocol or reassigning roles in a primary/backup fault-tolerance scheme to taking corrective action, such as aborting deadlocked computations, or even changing the algorithm used to provide the service.

The second component of the project is investigating implementation techniques using an event-driven approach that has been developed for configurable services. In this approach, individual properties of a communication service are implemented as separate software modules called micro-protocols. Micro-protocols are configured together into a composite protocol using a standard runtime system that provides for shared data and implements an event-driven execution model. This composite protocol is externally indistinguishable from simple protocol objects, which allows it to be combined hierarchically with either simple protocols or other composite protocols. In our x-kernel based prototype of the approach, this means that composite protocols export the standard x-kernel Uniform Protocol Interface and are implemented so that they can be combined hierarchically using the system's standard composition facilities. The net result is a flexible two-level model that provides facilities for closer coupling when needed, while still preserving the testing, reuse, and customization advantages of a modular system.

The project is extending this approach to support adaptive systems. Among the techniques to be explored are runtime rebinding of events to micro-protocols and the use of dynamic code modification techniques. The latter will allow the micro-protocols configured into a composite protocol to be changed at runtime, an important feature for supporting long-term evolution of the software.


back to Adaptive Distributed Systems home page

------------------------------------------------------------------------
http://www.cs.arizona.edu/adaptiveds/overview.html
Last updated March 2, 1998
Matti Hiltunen (hiltunen@cs.arizona.edu)