Challenges in Programming Sensor Networks

The proliferation of networked embedded devices such as wireless sensors ushers in an entirely new class of computing platforms. We need new ways to organize and program them. Unlike existing platforms, systems such as sensor networks are decentralized, embedded in physical world, and interact with people. In addition to computing, energy and bandwidth resources are constrained and must be negotiated. Uncertainty, both in systems and about the environment, is a given. Many tasks require collaboration among devices, and the entire network may have to be regarded as a processor. We argue that the existing node-centric programming of embedded devices is inadequate and unable to scale up. We need new service architectures, inter-operation protocols, programming models that are resource-aware and resource-efficient across heterogeneous devices that can range from extremely limited sensor motes to more powerful servers. I will supplement these discussions with concrete examples arising from our own work and the work of others.