Programming Wireless Sensor Networks: From Static to Adaptive Models

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 pro-

[1]  Albrecht Schmidt,et al.  Ubiquitous computing - computing in context , 2003 .

[2]  Viktor K. Prasanna,et al.  The Abstract Task Graph: a methodology for architecture-independent programming of networked sensor systems , 2005, EESR '05.

[3]  Ian F. Akyildiz,et al.  Sensor Networks , 2002, Encyclopedia of GIS.

[4]  Kamin Whitehouse,et al.  Clairvoyant: a comprehensive source-level debugger for wireless sensor networks , 2007, SenSys '07.

[5]  Koen Langendoen,et al.  Efficient code distribution in wireless sensor networks , 2003, WSNA '03.

[6]  Lei Zhang,et al.  Integration of RFID into Wireless Sensor Networks: Architectures, Opportunities and Challenging Problems , 2006, 2006 Fifth International Conference on Grid and Cooperative Computing Workshops.

[7]  Feng Zhao,et al.  Tiny web services: design and implementation of interoperable and evolvable sensor networks , 2008, SenSys '08.

[8]  Johan J. Lukkien,et al.  Predicting real-time properties of component assemblies: a scenario-simulation approach , 2004, Proceedings. 30th Euromicro Conference, 2004..

[9]  Adam Dunkels,et al.  Efficient application integration in IP-based sensor networks , 2009, BuildSys '09.

[10]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[11]  Wei Hong,et al.  TASK: sensor network in a box , 2005, Proceeedings of the Second European Workshop on Wireless Sensor Networks, 2005..

[12]  Romain Rouvoy,et al.  Scalable Processing of Context Information with COSMOS , 2007, DAIS.

[13]  Bruce H. Krogh,et al.  Energy-efficient surveillance system using wireless sensor networks , 2004, MobiSys '04.

[14]  Gail E. Kaiser,et al.  A control theory foundation for self-managing computing systems , 2005, IEEE Journal on Selected Areas in Communications.

[15]  David E. Culler,et al.  Active Message Communication for Tiny Networked Sensors , 2000 .

[16]  Sang Hyuk Son,et al.  Event Detection Services Using Data Service Middleware in Distributed Sensor Networks , 2003, Telecommun. Syst..

[17]  Muneeb Ali,et al.  Protothreads: simplifying event-driven programming of memory-constrained embedded systems , 2006, SenSys '06.

[18]  Len Bass,et al.  Technical Concepts of Component-Based Software Engineering, Volume 2 , 2000 .

[19]  Ramesh Govindan,et al.  Reliable and efficient programming abstractions for wireless sensor networks , 2007, PLDI '07.

[20]  Aleksandar Milenkovic,et al.  Wireless sensor networks for personal health monitoring: Issues and an implementation , 2006, Comput. Commun..

[21]  Nirvana Meratnia,et al.  Decentralized enterprise systems: a multiplatform wireless sensor network approach , 2007, IEEE Wireless Communications.

[22]  Franco Zambonelli,et al.  A survey of autonomic communications , 2006, TAAS.

[23]  Chenyang Lu,et al.  Agilla: A Mobile Agent Middleware for Sensor Networks , 2006 .

[24]  Jean-Philippe Babau,et al.  Component-Based Real-Time Operating System for Embedded Applications , 2009, CBSE.

[25]  Limin Wang,et al.  MNP: Multihop Network Reprogramming Service for Sensor Networks , 2004, 25th IEEE International Conference on Distributed Computing Systems (ICDCS'05).

[26]  David E. Culler,et al.  The dynamic behavior of a data dissemination protocol for network programming at scale , 2004, SenSys '04.

[27]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[28]  Tarek F. Abdelzaher,et al.  EnviroSuite: An environmentally immersive programming framework for sensor networks , 2006, TECS.

[29]  Rajarshi Das,et al.  Achieving Self-Management via Utility Functions , 2007, IEEE Internet Computing.

[30]  Mani B. Srivastava,et al.  A dynamic operating system for sensor nodes , 2005, MobiSys '05.

[31]  Takeo Kanade,et al.  Software Engineering for Self-Adaptive Systems II , 2013, Lecture Notes in Computer Science.

[32]  Ian F. Akyildiz,et al.  Wireless sensor and actor networks: research challenges , 2004, Ad Hoc Networks.

[33]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[34]  Frank Eliassen,et al.  A component-based approach for service distribution in sensor networks , 2010, MidSens '10.

[35]  Jenna Burrell,et al.  Vineyard computing: sensor networks in agricultural production , 2004, IEEE Pervasive Computing.

[36]  Dominique Guinard,et al.  SOCRADES: A Web Service Based Shop Floor Integration Infrastructure , 2008, IOT.

[37]  Jason O. Hallstrom,et al.  An RPC design for wireless sensor networks , 2005, IEEE International Conference on Mobile Adhoc and Sensor Systems Conference, 2005..

[38]  Gabor Karsai,et al.  Smart Dust: communicating with a cubic-millimeter computer , 2001 .

[39]  Wouter Joosen,et al.  DAVIM: Adaptable Middleware for Sensor Networks , 2008, IEEE Distributed Systems Online.

[40]  Ryan Newton,et al.  Building up to macroprogramming: an intermediate language for sensor networks , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[41]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[42]  Adam Dunkels,et al.  An adaptive communication architecture for wireless sensor networks , 2007, SenSys '07.

[43]  Deborah Estrin,et al.  A Remote Code Update Mechanism for Wireless Sensor Networks , 2003 .

[44]  T. Luckenbach,et al.  TinyREST – a Protocol for Integrating Sensor Networks into the Internet , 2005 .

[45]  John A. Stankovic,et al.  ALARM-NET: Wireless Sensor Networks for Assisted-Living and Residential Monitoring , 2006 .

[46]  Frank Eliassen,et al.  Programming Sensor Networks Using Remora Component Model , 2010, DCOSS.

[47]  Frank Eliassen,et al.  WiSeKit: A Distributed Middleware to Support Application-Level Adaptation in Sensor Networks , 2009, DAIS.

[48]  François Ingelrest,et al.  SensorScope: Out-of-the-Box Environmental Monitoring , 2008, 2008 International Conference on Information Processing in Sensor Networks (ipsn 2008).

[49]  David E. Culler,et al.  The nesC language: A holistic approach to networked embedded systems , 2003, PLDI.

[50]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java: Experiences with Auto-adaptive and Reconfigurable Systems , 2006 .

[51]  Margaret Martonosi,et al.  Impala: a middleware system for managing autonomic, parallel sensor systems , 2003, PPoPP '03.

[52]  Peter J. Denning,et al.  Computing as a discipline , 1989, Computer.

[53]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[54]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming, 2nd Edition , 2002, Addison-Wesley component software series.

[55]  Andrew Tokmakoff,et al.  Managing Trustworthiness in Component-based Embedded Systems , 2007, STM.

[56]  Luca Mottola,et al.  FiGaRo: Fine-Grained Software Reconfiguration for Wireless Sensor Networks , 2008, EWSN.

[57]  Peter I. Corke,et al.  The Design and Evaluation of a Mobile Sensor/Actuator Network for Autonomous Animal Control , 2007, 2007 6th International Symposium on Information Processing in Sensor Networks.

[58]  Kay Römer,et al.  The design space of wireless sensor networks , 2004, IEEE Wireless Communications.

[59]  Adam Dunkels,et al.  Run-time dynamic linking for reprogramming wireless sensor networks , 2006, SenSys '06.

[60]  Arthur I. Karshmer,et al.  Living assistance systems: an ambient intelligence approach , 2006, ICSE.

[61]  Frank Eliassen,et al.  A comprehensive solution for application-level adaptation , 2009 .

[62]  Gordon S. Blair,et al.  A generic component model for building systems software , 2008, TOCS.

[63]  Gordon S. Blair,et al.  The case for reflective middleware , 2002, CACM.

[64]  Cecilia Mascolo,et al.  Selective Reprogramming of Mobile Sensor Networks through Social Community Detection , 2010, EWSN.

[65]  Frank Eliassen,et al.  The DigiHome Service‐Oriented Platform , 2013, Softw. Pract. Exp..

[66]  Johan J. Lukkien,et al.  A Component Framework for Consumer Electronics Middleware , 2005, Component-Based Software Development for Embedded Systems.

[67]  Philip Levis,et al.  Maté: a tiny virtual machine for sensor networks , 2002, ASPLOS X.

[68]  Frank Eliassen,et al.  A self-adaptive context processing framework for wireless sensor networks , 2008, MidSens '08.

[69]  Cecilia Mascolo,et al.  CARISMA: Context-Aware Reflective mIddleware System for Mobile Applications , 2003, IEEE Trans. Software Eng..

[70]  Mani B. Srivastava,et al.  Multi-level software reconfiguration for sensor networks , 2006, EMSOFT '06.

[71]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[72]  Yoav Shoham,et al.  Agent-Oriented Programming , 1992, Artif. Intell..

[73]  Wouter Joosen,et al.  LooCI: a loosely-coupled component infrastructure for networked embedded systems , 2009, MoMM.

[74]  Cecilia Mascolo,et al.  The RUNES Middleware for Networked Embedded Systems and its Application in a Disaster Management Scenario , 2007, Fifth Annual IEEE International Conference on Pervasive Computing and Communications (PerCom'07).

[75]  Pedro José Marrón,et al.  FlexCup: A Flexible and Efficient Code Update Mechanism for Sensor Networks , 2006, EWSN.

[76]  Barry Porter,et al.  Lorien: a pure dynamic component-based operating system for wireless sensor networks , 2009, MidSens '09.

[77]  Deborah Estrin,et al.  Habitat monitoring with sensor networks , 2004, CACM.

[78]  David E. Culler,et al.  Incremental network programming for wireless sensors , 2004, SECON.

[79]  Matt Welsh,et al.  Sensor networks for emergency response: challenges and opportunities , 2004, IEEE Pervasive Computing.

[80]  Ryan Newton,et al.  Region streams: functional macroprogramming for sensor networks , 2004, DMSN '04.

[81]  Luca Mottola,et al.  Programming wireless sensor networks , 2011, ACM Comput. Surv..

[82]  Kamin Whitehouse,et al.  Declarative tracepoints: a programmable and application independent debugging system for wireless sensor networks , 2008, SenSys '08.

[83]  Charles P. Shelton,et al.  A framework for scalable analysis and design of system-wide graceful degradation in distributed embedded systems , 2003, Proceedings of the Eighth International Workshop on Object-Oriented Real-Time Dependable Systems, 2003. (WORDS 2003)..

[84]  Roy H. Campbell,et al.  A Middleware for Context-Aware Agents in Ubiquitous Computing Environments , 2003, Middleware.

[85]  Vijay Raghunathan,et al.  μSETL: A set based programming abstraction for wireless sensor networks , 2011, Proceedings of the 10th ACM/IEEE International Conference on Information Processing in Sensor Networks.

[86]  Julia L. Lawall,et al.  Proceedings of the 2002 Usenix Annual Technical Conference Think: a Software Framework for Component-based Operating System Kernels , 2022 .

[87]  Rajesh K. Gupta,et al.  Programming models for sensor networks: A survey , 2008, TOSN.

[88]  Gordon S. Blair,et al.  Dynamic reconfiguration in sensor middleware , 2006, MidSens '06.