Richard D. Schlichting, Principal Investigator
Department of Computer Science
The University of Arizona
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)