-
IntroductionDistributed collaborative adaptive systems relying on the Internet for connectivity are increasingly used for applications such as weather monitoring, industrial environment monitoring, and distributed target tracking [13,16]. In many of these applications, a variety of data must be distributed in real time to multiple end users at distant geographical locations. These data streams and end users may have differing QoS requirements for the data based on the ultimate use of the data. The data-dissemination infrastructure must therefore be able to adapt in an application-specific manner to meet these differing data requirements. Collaborative Adaptive Sensing of the Atmosphere (CASA) [16], an example of these emerging distributed collaborative adaptive systems, is based on a dense network of weather radars that operate collaboratively to detect tornadoes and other hazardous atmospheric conditions. The underlying network infrastructure itself may be affected by such adverse weather conditions, and as such one cannot rely on ISP-provided QoS guarantees or service-level agreements. CASA application software must thus monitor the underlying network, link availability, link quality, and other performance measures, and then use this information to get the best possible service out of the available network facilities. The use of an overlay network paradigm is helpful in meeting such application needs. Application-aware processing such as selective frame discards for video streaming has shown promising results in improving the content quality [9] under congested network conditions. However, adaptive data-selection mechanisms in traditional applications based on end-to-end data delivery relied on end-host applications to adapt to network conditions [2,9,21]. Active networks [20] introduced the concept of innetwork processing, where routers and switches of the network perform customized computations on messages being forwarded.Overlay networks have been proposed to provide a range of useful services for enhancing QoS for Internet applications including bandwidth guarantees [1,3,11,19,22]. With overlay networking, application-aware processing can be implemented at intermediate nodes, thus significantly enhancing the ability of the application to adapt to network conditions and improve the QoS provided to the end users. Examples of these functionalities include application-aware data forwarding and data drops, as well as application-aware rate control during network congestion at intermediate nodes [7]. It is often desirable to use the same overlay infrastructure for multiple simultaneous applications such as weather radar data streaming, and video streaming to multiple end users. A general-purpose overlay architecture that supports deployment of application-aware services on the overlay nodes in the network, and a programming interface required for such services that can leverage such an overlay network infrastructure to support application-specific QoS requirements will significantly enhance the overla...