Wireless Sensor Networks (WSNs) are rapidly emerging as a new type of distributed pervasive systems, with applications in a diverse range of domains such as traffic management, building environment management, target tracking, etc. However, the difficulty that a typical domain-expert application developer (e.g., a building system designer) encounters in developing applications for them is still a hindrance to their wide spread acceptance. Most, if not all, WSN application design is currently performed at the node-level, with developers manually customizing various protocols to realize their applications. Various high-level programming abstractions have been proposed recently, to assist in application development for WSNs. This technique of specifying the application at a high-level is known as macroprogramming.

Additionally, since the goal of WSN macroprogramming  research is to make application development easier for the domain expert, we believe that it is absolutely necessary to make easy-to-use toolkits for macroprogramming available to them in order to both make their task easier, as well as to gain feedback about the macroprogramming paradigms themselves.


Our efforts are currently focussed on supporting application development on sensor networks using data-driven macroprogramming. In this technique, the application developer specifies the WSN application as a set of tasks running on the system’s nodes – producing, processing and acting on data items or streams to achieve the system’s goals. As a concrete use case, we focus on the Abstract Task Graph (ATaG) macroprogramming framework, where applications are specified using a mixed declarative-imperative programming model. In addition to the task graph, the developer must provide imperative code for each task to specify its actions when it fires. ATaG programs are platform-independent, in that the information about the target network is needed only during compilation, and the same ATaG program can be used for different deployments of sensor nodes.

We have already enabled support for developing applications on heterogenous two-tier sensor networks, with Sun SPOT and regular J2SE nodes, connected by gateway nodes which have both network interfaces. Additionally, we have released Srijan, a graphical toolkit which provides an easy-to-use graphical front-end to the various steps involved in developing an application using the ATaG macroprogramming framework.

We are currently working on widening our scope to sensing-and-actuation augmented pervasive systems, which treat the embedded sensing and actuation elements not as a monolithic component, but as first-class members of the system. Our research is focussed on three related challenges

  1. What is a suitable high-level abstraction for application development for sensing/actuation augmented pervasive systems?,
  2. How does one provide efficient middleware support for interoperability in such large heterogeneous systems?, and
  3. What does the compilation process to convert the high-level application specifications to node-level for these systems look like, including the optimizations possible in it?

To address the above, We are working on novel high-level programming abstractions, QoS-aware robust middleware support, and optimizations during the compilation process of applications intended for large-scale sensing/actuation augmented pervasive systems.


Supporting Grant

Related Software

Presentations (registered users only)


Energy-Efficient Task Mapping for Data-driven Sensor Network Macroprogramming
Pathak Animesh; Prasanna Viktor K.
In IEEE Transactions on Computers (accepted)
Accès au texte intégral
Supporting Heterogeneity in Data Driven Sensor Network Macroprogramming
Gowda Mahanth K.; Pathak Animesh
In Second student research symposium on High Performance Computing (HPC 2009) (16/12/2009)
Accès au texte intégral
Srijan: a graphical toolkit for sensor network macroprogramming
Pathak Animesh; Gowda Mahanth K.
In 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering (24/08/2009) 301-302
Accès au texte intégral