Conductor : An Adaptive Agent Framework


Mobile computer users experience wide and rapid swings in network capabilities. As mobile computing comes into greater use, an increasingly smooth scale of connectivity options will become available. Most applications use protocols designed to work in one particular networking environment (usually wired), and do not degrade gracefully when that environment degrades. Therefore, when network degradations do occur, little or no functionality is preserved. In a mobile environment, this is a serious problem, since a well connected network is the exception, not the norm.

Adaptive methods can be used to bridge the gap between the communication requirements of the application and the capabilities of the network. One approach is to alter the communication protocol used by the application to either reduce the application requirements or improve the facilities provided by the network. A typical adaptation might filter unnecessary data when transmission is costly, provide encryption when the network is insecure, provide dynamic caching when network latency is high, or allow dissimilar clients and servers to communicate. Adaptation allows the user to trade communication cost for lower quality application services or added functionality for computing overhead, providing a spectrum of cost and benefit tradeoffs.

Systems using single proxy to provide adaptation have previously been constructed for adapting to "last-mile" connectivity issues. In a more complex network architecture, however, adaptation may be required at several points along the communication path. This added complexity requires a richer and more distributed service for environmental monitoring, reliability, and the selection and deployment of adaptations.

Conductor is a middle-ware facility for deploying adaptation agents into a network. It allows connection-oriented application-level protocols to be tailored to specific distributed network characteristics. The Conductor run-time is deployed on nodes through a network providing support for environmental monitoring and adaptation deployment. Conductor intercepts network connections, dynamically selects a set of adaptor agents, deploys the combination of required agents along the connection path, routes the data flow through the agents, and monitors the network conditions for changes. Because Conductor operates on protocols, adaptation can be provided transparently to applications. Conductor also provides additional reliability mechanisms which maintain connection integrity despite adaptor or link failures. Thus, Conductor provides transparent adaptation of network applications over a wide variety of architectures, allowing users to obtain maximal usability and minimal cost under unfavorable conditions.

Key Researchers

Mark Yarvis
Dr. Peter Reiher
Dr. Gerald Popek

Additional Contributors

Jun Li
  • Security architecture (co-author)
Kevin Eustice
  • Multi-path planning extensions

Conductor Details

Please note: While the information below is a useful introduction to Conductor, it is somewhat outdated. Please see the Publications and Presentations section below for more up-to-date information.

Why Adaptation?
Why Distributed Adaptation?
Conductor Architecture
Coordinating Adaptation
Adaptation and Reliability
Adaptation and Security
Links to Related Work

Publications and Presentations

Publications and presentations are now listed on my publications page



If you have additional questions about this research, please feel free to e-mail

Last updated February 2002