Our research in mobile agents (see Section 14) led us to think about new ways to use mobile code to support information gathering, processing, and dissemination. The result was the ``Solar'' project, which aimed to support context-aware applications in pervasive computing.
The complexity of developing context-aware pervasive-computing applications calls for distributed software infrastructures that assist applications to collect, aggregate, and disseminate contextual data. We designed, implemented, and evaluated a Context Fusion Network (CFN), called Solar, which is built with a scalable and self-organized service overlay. Solar is flexible and allows applications to select distributed data sources and compose them with customized data-fusion operators into a directed acyclic information flow graph. Such a graph represents how an application computes high-level understandings of its execution context from low-level sensory data. To manage application-specified operators on a set of overlay nodes called Planets, Solar provides several unique services such as application-level multicast with policy-driven data reduction to handle buffer overflow, context-sensitive resource discovery to handle environment dynamics, and proactive monitoring and recovery to handle common failures.
Solar [Che04a] is a middleware infrastructure with two kinds of clients: sensors as data sources and applications as data sinks. A sensor may publish a data stream, by pushing data items called events into Solar. Some sensors also may have a pull-based interface, allowing users to query its current state. Applications ask Solar to find specified sensors and to execute application-supplied data-fusion operators to compute context. An operator is an independent data processing module that takes one or more data sources as input and acts as another data source.