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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
1.3. Thesis <strong>State</strong>ment 3<br />
event-driven model has been that its support in the underlying system software<br />
can be implementred resource efficiently.<br />
Secondly, the association of events to actions is static—there is no explicit support<br />
<strong>for</strong> adopting this association depending on the program state. As a consequence,<br />
in actions, programmers must manually dispatch the control flow to the<br />
appropriate function based on the current state. The additional code <strong>for</strong> state<br />
management and state-based function demultiplexing can obscure the logical<br />
structure of the application and is an additional source of error. Also, it hampers<br />
modularity since even minor changes in the state space of a program may<br />
require modifying multiple actions and may thus affect much of the program’s<br />
code base.<br />
While the identified issues are not particularly troublesome in relatively small<br />
programs, such as application prototypes and test cases, they pose significant<br />
problems in larger programs. But as the field of wireless sensor networks matures,<br />
its applications are getting more complex—projects grow and so does the<br />
code base and the number of programmers involved. Leaving these issues unsolved<br />
may severely hamper the field of wireless sensor networks to mature.<br />
1.3 Thesis <strong>State</strong>ment<br />
Because of the limitations outlined in the previous section, we argue that the<br />
simple event/action-abstraction of the event-driven programming model is inadequate<br />
<strong>for</strong> large or complex sensor network programs. The natural question<br />
then is, can the inadequacies of the event-driven programming model be repaired<br />
without impairing its positive aspects? In this dissertation we answer this<br />
question affirmatively. Concretely, we present the Object <strong>State</strong> <strong>Model</strong> (OSM),<br />
a programming model that extends the event-driven programming paradigm<br />
with an explicit abstraction and notion of hierarchical and concurrent program<br />
states. Our thesis is that such a state-based model allows to specify well-structured,<br />
modular, and memory-efficient sensor-node programs, yet requires as little runtimeresources<br />
as the event-driven model.<br />
1.4 Contributions<br />
The main contribution of this work then is to show<br />
• that OSM provides adequate abstractions <strong>for</strong> the specification of well structured<br />
and highly modular programs,<br />
• how OSM supports memory-efficient programming, and, finally,<br />
• that OSM does not incur significant overhead in the underlying system<br />
software and can thus indeed be implemented on resource-constrained<br />
sensor nodes.<br />
In this dissertation we present four elements to support our claim: (1) OSM,<br />
an abstract, state-based programming model, which is a state-extension to the<br />
conventional event-based programming model, (2) an implementation language