Wireless sensor network (WSN) architectures often feature a (single) base station in charge of coordinating the application functionality. Although this assumption simplified the path to adoption of WSN technology, researchers are now being attracted by more decentralized architectures with multiple sinks and heterogeneous nodes. These scenarios are brought to an extreme in Wireless Sensor and Actor Networks (WSANs), where sensing and acting nodes collaborate in a decentralized fashion to implement complex control loops. In these settings, new programming abstractions are required to manage complexity and heterogeneity without sacrificing efficiency.In this paper we propose and define a logical neighborhood programming abstraction. A logical neighborhood includes nearby nodes that satisfy predicates over their static (e.g., type) or dynamic (e.g., sensed values) characteristics. The span of the neighborhood and the definition of its predicates are specified declaratively, along with requirements about the cost of the communication involved. Logical neighborhoods enable the programmer to "illuminate" different areas of the network according to the application needs, effectively replacing the physical neighborhood provided by wireless broadcast with a higher-level, application-defined notion of proximity.This paper presents the definition of a declarative language for specifying logical neighborhoods, highlighting its expressiveness, flexibility and simplicity. Moreover, although the language constructs are readily implemented using existing communication mechanisms, we briefly report about a novel routing scheme we expressly designed to support efficiently our abstractions.
The different versions of the original document can be found in:
DOIS: 10.1145/1142680.1142691 10.1145/1322263.1322311