On the Optimization of Multiple Applications for Sensor Networks
Wireless Sensor Networks are an important example of networked embedded systems, and they have a key role to play in the development and materialization of the concept of an Internet of Things. Most current deployments of sensor networks are very application-specific and only target a particular goal. This negatively impacts the cost-effectiveness of the network, thereby reducing the incentive to deploy a sensing infrastructure in the first place. Multi-purpose sensor networks can overcome these limitations, where they can be used for more than one application simultaneously. To promote the role of wireless sensor networks as an infrastructure technology, support for multiple independent applications is essential, such that different users can concurrently submit their applications to accomplish diverse goals. In this dissertation, we address various challenges that arise when the support of multiple applications is enabled on a sensor network, mainly with respect to application development, installation and execution. First, we propose a holistic programming framework called Nano-CF that is built on top of the Nano-RK operating system that allows independent users to deploy applications at a network level, and coordinates network activity. Then, we propose various approaches to reduce the resource consumption at different levels in a sensor network. Most sensor networking applications are designed for sampling one or more sensors, conduct signal processing on the sensed data, and communicate this data with other devices in the network. With more than one such application executing on the network, it is highly probable that some redundancies occur across applications. In this work, we identify and eliminate these redundancies through a compile-time approach that identifies the temporal overlap across the execution of the applications. Moreover, we augment the Nano-CF framework with a hierarchical task-assignment scheme that selectively eliminates the redundancies while simultaneously conforming to the resource constraints of the sensor node and the application requirements. Finally, we propose a network-level scheme called Network-Harmonized Scheduling that coordinates the packet transmissions in a simple and distributed way such that the radio can be used efficiently in a multi-hop network with multiple applications releasing packets periodically.