Wireless Sensor Networks (WSNs) are a rapidly emerging research area because of their vast application vistas in real-world environments, as well as their rapid deployments at low cost and with high flexibility. In 2003, Technology Review ranked WSNs among 10 emerging technologies that will change the world. WSNs consist of tiny sensor nodes that can be easily embedded in the environment, establish a wireless ad-hoc network, and compose a distributed system to collaboratively sense physical phenomena and process sensed data, or to react to the environment based on the sensed data. To practically use this technology, WSNs must be able to operate unattended for long periods of time, especially when deployed in inaccessible places. Moreover, their new applications in heterogeneous and ubiquitous settings make the autonomy of their operations very important. This introduces several new requirements, such as reconfiguration of WSNs to meet future unpredictable needs, remote maintenance of sensor software, adapting WSN functionality against changes in heterogeneous environments, and remote patching of sensor software to handle after-deployment faults.
To address these requirements, we need to study the fundamental issue of reprogramming and software reconfiguration in WSNs and devise a framework that provides the primitives required to enable dynamicity in sensor software. This thesis focuses on this issue and presents a set of WSN programming frameworks that simplify application development in a range of settings, from static deployments with pre-defined and constant conditions to dynamic deployments with changing and unpredictable requirements. In particular, the contributions of this thesis are mainly within the following four areas.
The first part presents a distributed middleware system, called WiSeKit, to enable adaptation and reconfiguration of WSN applications in ubiquitous and context-aware environments. WiSeKit proposes a middleware software framework that formulates the process of adaptive WSN application development and abstracts the underlying technological adaptation processes. The adaptation strategy is inspired by the main activities of the feedback control loop, including context-awareness, adaptation reasoning, and software reconfiguration. In particular, it introduces a novel context processing model to monitor various context information (e.g., sensor resources and environmental changes) in WSNs. The analyzed context data is delivered to a hierarchical adaptation reasoning framework to make decisions about what adaptation to perform. Finally, WiSeKit proiii poses a component-based reconfiguration approach to implement the adaptation choices.
The second part of this thesis presents a new component-based programming model for WSNs, called Remora. This programming abstraction is proposed not only to simplify programming in WSNs, but also to address the third goal of WiSeKit—component-based reconfiguration. Remora offers a well-structured programming paradigm that fits very well with resource limitations of WSNs. Furthermore, the special attention to event handling in Remora makes it more practical for WSN applications, which are inherently event-driven. More importantly, the mutualism between Remora and underlying system software promises a new direction towards separation of concerns in WSNs.
In the third part, we reconsider Remora in order to extend it with the capability of compositional component reconfiguration and therefore meet the component-based reconfiguration requirement of WiSeKit. The dynamicity of Remora is achieved by the principle of in-situ reconfigurability, referring to minimizing the overhead of component reconfiguration through a set of in-situ updating guidelines. This is achieved within RemoWare, a run-time system leveraging on the concept of in-situ reconfigurability to allow component-based reprogramming in WSNs. New binary update preparation, code distribution, run-time linking, dynamic memory allocation and loading, and system state preservation are the main features supported by RemoWare.
The last contribution of this thesis is dedicated to providing a software framework for WSNs that enables the development of distributed sensor services and their integration with existing IT systems. This is achieved by extending Remora with an interaction model inspired by the REST architectural style in order to facilitate interoperability of sensor services with the Internet through Web service-enabled components. The provision of such framework is very important in WiSeKit when processing context information provided by heterogeneous nodes in the network.
To evaluate the different parts of the proposed framework, we always analyze our solutions from two complementary perspectives. On one hand, we quantify the programming effort in developing non-trivial reference test use-cases both using our solutions and with mainstream programming tools. On the other hand, we explore the system performance based on metrics such as network overhead, energy overhead, and resource usage.
List of papers. Papers is this thesis are listet as Chapter 7 - Chapter 12. Chapter 10 is removed from the thesis due to copyright restrictions.
Chapter 7 Amirhosein Taherkordi, Romain Rouvoy, Quan Le-Trung, and Frank Eliassen A Self-Adaptive Context Processing Framework for Wireless Sensor Networks Copyright ACM, 2008. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in MidSens '08 Proceedings of the 3rd international workshop on Middleware for sensor networks doi:10.1145/1462698.1462700
Chapter 8 Amirhosein Taherkordi, Quan Le-Trung, Romain Rouvoy, and Frank Eliassen WiSeKit: A Distributed Middleware to Support Application-Level Adaptation in Sensor Networks. DAIS '09 Proceedings of the 9th IFIP WG 6.1 International Conference on Distributed Applications and Interoperable Systems. Lecture Notes in Computer Science, 2009, Volume 5523/2009, 44-58. The original publication is available at www.springerlink.com. doi:10.1007/978-3-642-02164-0_4
Chapter 9 Amirhosein Taherkordi, Frédéric Loiret, Romain Rouvoy, and Frank Eliassen A Generic Component-based Approach for Programming, Composing and Tuning Sensor Software The Computer Journal (2011) 54 (8): 1248-1266. This is a pre-copy-editing, author-produced PDF of an article accepted for publication following peer review. The definitive publisher-authenticated version is available online at: doi:10.1093/comjnl/bxq102
Chapter 10 Amirhosein Taherkordi, Frédéric Loiret, Romain Rouvoy, and Frank Eliassen Optimizing Sensor Network Reprogramming via In-situ Reconfigurable Components Submitted, not yet published.
Chapter 11 Amirhosein Taherkordi, Romain Rouvoy, and Frank Eliassen A Component-based Approach for Service Distribution in Sensor Networks Copyright ACM, 2010. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in MidSens '10 Proceedings of the 5th International Workshop on Middleware Tools, Services and Run-Time Support for Sensor Networks doi:10.1145/1890784.1890789
Chapter 12 Daniel Romero, Gabriel Hermosillo, Amirhosein Taherkordi, Russel Nzekwa, Romain Rouvoy, and Frank Eliassen The DigiHome Service-Oriented Platform Software: Practice and Experience, Article first published online: 4 OCT 2011. The definitive version is available at www3.interscience.wiley.com. doi:10.1002/spe.1125