Programming is an artform that fights back.
—Chad Z. Hower
As sensing devices become more complex, applications are being developed that exploit the increased power these devices provide. Traditional programming models and abstractions only inadequately capture these newly found evices, and thus there is a need to develop different types of techniques that naturally exploit the power of these sensing devices. Sensor programming models should essentially support abstractions over collections of sensor devices, heterogeneous data emanating from these devices, and their data storage capabilities. A sensor network can be viewed from several angles. Our view is committed to a programmer’s perspective where a programmer would like to program the nodes in the network at a fairly detailed level, and at the same time is interested in programming the network at the abstract group (cluster) level. At the node level, a sensor can be viewed as a sensing device that senses the environment measuring, for example, temperature, pressure, and smoke intensity. At the higher level, we view a collection of nodes as a distributed source of data streams.
7.1 PROGRAMMING CHALLENGES IN WIRELESS SENSOR NETWORKS
One of the main challenges in wireless sensor programming involves updating and managing several resource-constrained nodes that interact in real time with the physical world, where these nodes cannot be easily accessed. We first discuss some of the system interfaces ...