homeresources & publications › state-centric programming for sensor and actuator network systems


State-centric programming for sensor and actuator network systems


Networked embedded systems such as wireless sensor and actuator networks require new programming models and software tools to support the rapid design and prototyping of sensing and control applications. Unlike centralized platforms, these distributed sensor/actuator network (DSAN) systems are characterized by a massive number of failure-prone nodes, limited energy and bandwidth resources, and the need to rapidly respond to all kinds of physical events. We must fundamentally re-think the organization and programming of these deeply embedded systems. What is the appropriate mental model for application developers to reason about the collective behaviors of a system when programming a distributed application so that the application is portable, scalable, and robust to individual node and link failures? What are the organizational principles for application developers to build large applications by mixing and matching various ad hoc communication protocols while being shielded away from dealing with a multitude of communication events? How does the software architecture expose constraints of the underlying systems to enable application developers to consider important performance trade-offs? In this article, we describe an emph{state-centric, agent-based} design methodology to mediate between an application developer's mental model on physical phenomena and the distributed execution of DSAN applications. We introduce the notion of emph{collaboration groups} that abstracts out common patterns in application-specific communication and resource allocation. An application developer specifies a computation as the creation, combination, and transformation of states, which naturally map to the vocabulary used by signal processing and control engineers. More specifically, an application program is written as algorithms for state update and observation, with input supplied by dynamically created collaboration groups. As a result, programs written in the state-centric framework is more invariant to changes in system configurations, making the resulting software more modular and portable across multiple platforms. While this design methodology is widely applicable to many DSAN applications, we will use a distributed tracking application with sensor networks to introduce state-centric programming, and demonstrate how it can raise the abstraction level for application developers.


Liu, J. ; Chu, M. ; Liu, J. J. ; Reich, J. E. ; Zhao, F. State-centric programming for sensor and actuator network systems. IEEE Pervasive Computing. 2003 October/December; 2 (4): 50-62.