21.08.2013 Views

A State-Based Programming Model for Wireless Sensor Networks

A State-Based Programming Model for Wireless Sensor Networks

A State-Based Programming Model for Wireless Sensor Networks

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Abstract<br />

<strong>Sensor</strong> nodes are small, inexpensive, and programmable devices that combine<br />

an autonomous power supply with computing, sensing, and wireless communication<br />

capabilities. <strong>Networks</strong> of sensor nodes can be deployed in the environment<br />

at a large scale to unobtrusively monitor phenomena of the real world.<br />

<strong>Wireless</strong> sensor networks are an emerging field of research with many potential<br />

applications. So far, however, only few applications have actually been realized.<br />

This is in part due to the lack of appropriate programming support, which<br />

makes the development of sensor-network applications tedious and error prone.<br />

This dissertation contributes a novel programming model and development environment<br />

<strong>for</strong> the efficient, modular, and well structured programming of wireless<br />

sensor nodes.<br />

Today there are two principal programming models used <strong>for</strong> sensor nodes,<br />

the multi-threaded model and the event-driven model. The multi-threaded model<br />

requires system support that is often considered too heavy <strong>for</strong> sensor nodes that<br />

operate at the low end of the resource spectrum. To cope with this issue, the<br />

event-driven model has been proposed. It requires very little runtime support<br />

by the system software and can thus be implemented even on the most constrained<br />

sensor nodes.<br />

The simple and lightweight approach to system software, however, tends to<br />

make event-driven applications in turn quite memory inefficient: Since the eventdriven<br />

model limits the use of local variables, programmers need to store temporary<br />

data in global variables. The memory of global variables, however, cannot<br />

easily and automatically be reused, hence the memory inefficiency. To counter<br />

this effect, programmers can resort to manual memory management, though<br />

this significantly affects program correctness and code modularity. In addition<br />

to its drawback of memory inefficiency, event-driven programming requires developers<br />

to manually keep track of the current program-state, which makes code<br />

modularization and debugging difficult, and leads to unstructured code.<br />

The key contribution of this dissertation is to show that the inadequacies of<br />

the event-driven model can be remedied without impairing its positive aspects,<br />

particularly its memory-efficient realization in sensor-node system software.<br />

Concretely, we present the Object <strong>State</strong> <strong>Model</strong> (OSM), a programming model<br />

that extends the event-driven programming paradigm with a notion of hierarchical<br />

and concurrent program states. Our thesis is that such a state-based model<br />

allows to specify well-structured, modular, and memory-efficient programs, yet requires<br />

as few runtime-resources as the event-driven model. To support this claim, we also<br />

present a programming environment based on the OSM model (including a programming<br />

language and compiler), as well as a sensor-node operating system<br />

capable of executing OSM programs.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!