The widespread deployment of inexpensive communication technologies, computational resources in the networking infrastructure and network-capable end devices offers a rich design space for novel distributed applications and services. Exploration of this space has given rise, for instance, to the notions of grid and peer-to-peer computing. Both technologies promise to change the way we think about and use computing by harvesting geographically distributed resources to create a universal source of pervasive computing power that will support new classes of applications.
Despite the growing interest in these environments and the increasing availability of the necessary hardware and network infrastructure, few actual applications are readily available or widely deployed. This scarcity results from a number of technical challenges that must be addressed before the full potential of these technologies can be realized. Most of these applications, as well as the services they utilize, are expected to handle dynamically varying demand on resources and to run in large, heterogeneous, and dynamic environments, where the availability of resources cannot be guaranteed a priori – all of this while providing acceptable levels of performance.
In this talk, I will present “Active Streams”, a novel middleware approach for building adaptive distributed systems aimed at such environments. I will describe the design and implementation of its supporting framework and present some experimental results that illustrate its use and demonstrate its performance and flexibility.