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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
9 Conclusions and Future Work<br />
In this final chapter, we conclude by summarizing the contributions of our work<br />
and by discussing its limitations. We also propose future work addressing concrete<br />
limitations of our approach.<br />
9.1 Conclusions<br />
Event-driven programming is a popular paradigm in the domain of sensor networks<br />
in general. For sensor networks that are operating at the very low end<br />
of the resource spectrum it is in fact the predominant programming model. Unlike<br />
the multi-threaded programming model, system support <strong>for</strong> event-driven<br />
programming requires very little of a system’s resources. The event-driven programming<br />
model has been adopted by a large number of programming frameworks<br />
<strong>for</strong> sensor networks, among them TinyOS / NesC, which currently may<br />
be the most popular of all.<br />
Despite its popularity, the event-driven programming model has significant<br />
shortcomings. Particularly in large and complex programs these shortcomings<br />
lead to issues with the readability and structure of the program code, its modularity<br />
and correctness, and, ironically, also the memory efficiency of the developed<br />
programs. Concretely, an event-driven program typically uses more RAM<br />
as a functionally equivalent sequential program because in the event-driven<br />
model a lot of temporary data has to be stored in global variables. A sequential<br />
program would use local variables instead, which are automatically memory<br />
managed and thus their memory is reused.<br />
With respect to these problems, the main contribution of this dissertation is to<br />
show how the event-based model can be extended so that it allows to specify<br />
well-structured, modular, and memory-efficient programs, yet requires as little<br />
runtime support as the original model. We have significantly improved sensornode<br />
programming by extending the event-driven model to a state-based model<br />
with a explicit notion of hierarchical and concurrent program states. We have<br />
also introduced a novel technique to use states as a scoping and lifetime qualifier<br />
<strong>for</strong> variables, so they can be automatically memory managed. This can lead to<br />
significant memory savings in temporary data structures. In the following we<br />
will list our contributions towards our solution in more detail.<br />
9.2 Contributions<br />
Below we will summarize our contributions towards the problem analysis, the<br />
solution approach and its implementation, as well as the evaluation. Some contributions<br />
have also been published in [21, 72, 74].