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. 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.
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.