Software Adaptation in Wireless Sensor Networks

We present design concepts, programming constructs, and automatic verification techniques to support the development of adaptive Wireless Sensor Network (WSN) software. WSNs operate at the interface between the physical world and the computing machine and are hence exposed to unpredictable environment dynamics. WSN software must adapt to these dynamics to maintain dependable and efficient operation. However, developers are left without proper support to develop adaptive functionality in WSN software. Our work fills this gap with three key contributions: (i) design concepts help developers organize the necessary adaptive functionality and understand their relations, (ii) dedicated programming constructs simplify the implementations, (iii) custom verification techniques allow developers to check the correctness of their design before deployment. We implement dedicated tool support to tie the three contributions, facilitating their practical application. Our evaluation considers representative WSN applications to analyze code metrics, synthetic simulations, and cycle-accurate emulation of popular WSN platforms. The results indicate that our work is effective in simplifying the development of adaptive WSN software; for example, implementations are provably easier to test and to maintain, the run-time overhead of our dedicated programming constructs is negligible, and our verification techniques return results in a matter of seconds.

[1]  Amy L. Murphy,et al.  Pervasive games in a mote-enabled virtual world using tuple space middleware , 2006, NetGames '06.

[2]  Anind K. Dey,et al.  Understanding and Using Context , 2001, Personal and Ubiquitous Computing.

[3]  Philip Levis,et al.  Collection tree protocol , 2009, SenSys '09.

[4]  Edward Nash Yourdon Classics in Software Engineering , 1979 .

[5]  Peng Li,et al.  T-check: bug finding for sensor networks , 2010, IPSN '10.

[6]  David Garlan,et al.  Context is key , 2005, CACM.

[7]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

[8]  Kay Römer,et al.  PDA: Passive distributed assertions for sensor networks , 2009, 2009 International Conference on Information Processing in Sensor Networks.

[9]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[10]  Schahram Dustdar,et al.  COPAL-ML: a macro language for rapid development of context-aware applications in wireless sensor networks , 2011, SESENA '11.

[11]  Fausto Giunchiglia,et al.  NUSMV: a new symbolic model checker , 2000, International Journal on Software Tools for Technology Transfer.

[12]  Albrecht Schmidt,et al.  There is more to context than location , 1999, Comput. Graph..

[13]  Konrad Iwanicki,et al.  Bringing Modern Unit Testing Techniques to Sensornets , 2014, TOSN.

[14]  Reza Olfati-Saber,et al.  Distributed Kalman filtering for sensor networks , 2007, 2007 46th IEEE Conference on Decision and Control.

[15]  Pedro José Marrón,et al.  COOJA/MSPSim: interoperability testing for wireless sensor networks , 2009, SimuTools.

[16]  Matt Welsh,et al.  Flask: staged functional programming for sensor networks , 2008, ICFP 2008.

[17]  Michael Jackson,et al.  The World and the Machine , 1995, 1995 17th International Conference on Software Engineering.

[18]  Philip Levis,et al.  The nesC language: a holistic approach to networked embedded systems , 2003, SIGP.

[19]  Gian Pietro Picco Software engineering and wireless sensor networks: happy marriage or consensual divorce? , 2010, FoSER '10.

[20]  Andry Rakotonirainy,et al.  Context-oriented programming , 2003, MobiDe '03.

[21]  Bill N. Schilit,et al.  Context-aware computing applications , 1994, Workshop on Mobile Computing Systems and Applications.

[22]  Gregory D. Abowd,et al.  Towards a Better Understanding of Context and Context-Awareness , 1999, HUC.

[23]  Doina Bucur,et al.  Bug-Free Sensors: The Automatic Verification of Context-Aware TinyOS Applications , 2009, AmI.

[24]  Brice Morin,et al.  A model-driven approach to develop adaptive firmwares , 2011, SEAMS '11.

[25]  Friedemann Mattern,et al.  ICT for Green – How Computers Can Help Us to Conserve Energy , 2010 .

[26]  Philip Koopman,et al.  Better Embedded System Software , 2010 .

[27]  Sriram K. Rajamani,et al.  The SLAM project: debugging system software via static analysis , 2002, POPL '02.

[28]  John A. Stankovic,et al.  Context-aware wireless sensor networks for assisted living and residential monitoring , 2008, IEEE Network.

[29]  JeongGil Ko,et al.  Wireless Sensor Networks for Healthcare , 2010, Proceedings of the IEEE.

[30]  Jie Yang,et al.  Sensor Fusion Using Dempster-Shafer Theory , 2002 .

[31]  Eelco Visser,et al.  Meta-programming with Concrete Object Syntax , 2002, GPCE.

[32]  Stephan Merz,et al.  Model Checking , 2000 .

[33]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[34]  Hidehiko Masuhara,et al.  EventCJ: a context-oriented programming language with declarative event-based context transition , 2011, AOSD '11.

[35]  M. Welsh,et al.  The Regiment Macroprogramming System , 2007, 2007 6th International Symposium on Information Processing in Sensor Networks.

[36]  Guy Gogniat,et al.  Closed-loop--based self-adaptive Hardware/Software-Embedded systems: Design methodology and smart cam case study , 2011, TECS.

[37]  Adam Dunkels,et al.  Improving Sensornet Performance by Separating System Configuration from System Logic , 2010, EWSN.

[38]  Muhammad Hamad Alizai,et al.  Energy Harvesting and Wireless Transfer in Sensor Network Applications , 2016, ACM Trans. Sens. Networks.

[39]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[40]  Lothar Thiele,et al.  Low-power wireless bus , 2012, SenSys '12.

[41]  Jakob E. Bardram The Java Context Awareness Framework (JCAF) - A Service Infrastructure and Programming Framework for Context-Aware Applications , 2005, Pervasive.

[42]  Fredrik Gustafsson,et al.  Statistical Sensor Fusion , 2013 .

[43]  Matteo Pradella,et al.  An Analysis of Language-Level Support for Self-Adaptive Software , 2013, TAAS.

[44]  Youngki Lee,et al.  SeeMon: scalable and energy-efficient context monitoring framework for sensor-rich mobile environments , 2008, MobiSys '08.

[45]  Matt Welsh,et al.  Flask: staged functional programming for sensor networks , 2008, ICFP.

[46]  Luciano Baresi,et al.  Anquiro: enabling efficient static verification of sensor network software , 2010, SESENA '10.

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

[48]  Matteo Pradella,et al.  Context-oriented programming: A software engineering perspective , 2012, J. Syst. Softw..

[49]  Anis Koubaa,et al.  Smart-HOP: A Reliable Handoff Mechanism for Mobile Wireless Sensor Networks , 2012, EWSN.

[50]  Albrecht Schmidt,et al.  Multi-sensor Activity Context Detection for Wearable Computing , 2003, EUSAI.

[51]  Lewis Girod,et al.  Wireless Sensor Networks: Deployments and Design Frameworks , 2010 .

[52]  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.

[53]  Lothar Thiele,et al.  pTUNES: Runtime parameter adaptation for low-power MAC protocols , 2012, 2012 ACM/IEEE 11th International Conference on Information Processing in Sensor Networks (IPSN).

[54]  Adrian David Cheok,et al.  Pervasive games: bringing computer entertainment back to the real world , 2005, CIE.

[55]  David Wood,et al.  Self-adaptive routing in multi-hop sensor networks , 2011, 2011 7th International Conference on Network and Service Management.

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

[57]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[58]  David E. Culler,et al.  Telos: enabling ultra-low power wireless research , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[59]  Jie Yang,et al.  Sensor fusion using Dempster-Shafer theory [for context-aware HCI] , 2002, IMTC/2002. Proceedings of the 19th IEEE Instrumentation and Measurement Technology Conference (IEEE Cat. No.00CH37276).

[60]  Klaus Wehrle,et al.  KleeNet: discovering insidious interaction bugs in wireless sensor networks before deployment , 2010, IPSN '10.

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

[62]  Daniel Kroening,et al.  SATABS: SAT-Based Predicate Abstraction for ANSI-C , 2005, TACAS.