Software update management in wireless sensor networks

Wireless sensor networks (WSNs) have recently emerged as a promising platform for many non-traditional applications, such as wildfire monitoring and battlefield surveillance. Due to bug fixes, feature enhancements and demand changes, the code running on deployed wireless sensors often needs to be updated, which is done through energy-consuming wireless communication. Since the energy supply of battery-powered sensors is limited, the network lifetime is reduced if more energy is consumed for software update, especially at the early stage of a WSNs life when bug fixes and feature enhancements are frequent, or in WSNs that support multiple applications, and frequently demand a subset of sensors to fetch and run different applications. In this dissertation, I propose an energy-efficient software update management framework for WSNs. The diff-based software update process can be divided into three phases: new binary generation, diff-patch generation, and patch distribution. I identify the energy-saving opportunities in each phase and develop a set of novel schemes to achieve overall energy efficiency. In the phase of generating new binary after source code changes, I design an update-conscious compilation approach to improve the code similarity between the new and old binaries. In the phase of generating update patch, I adopt simple primitives in the literature and develop a set of advanced primitives. I then study the energy-efficient patch distribution in WSNs and develop a multicast-based code distribution protocol to effectively disseminate the patch to individual sensors. In summary, this dissertation successfully addresses an important problem in WSNs. Update-conscious compilation is the first work that compiles the code with the goal of improving code similarity, and proves to be effective. The other components in the proposed framework also advance the state of the art. The proposed software update management framework benefits all WSN users, as software update is indispensable in WSNs. The techniques developed in this framework can also be adapted to other platforms such as the smart phone network.

[1]  Santosh Pande,et al.  Storage assignment optimizations through variable coalescence for embedded processors , 2003, LCTES '03.

[2]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools (2nd Edition) , 2006 .

[3]  Joel Koshy,et al.  Remote incremental linking for energy-efficient reprogramming of sensor networks , 2005, Proceeedings of the Second European Workshop on Wireless Sensor Networks, 2005..

[4]  Alejandro P. Buchmann,et al.  Towards multi-purpose wireless sensor networks , 2005, 2005 Systems Communications (ICW'05, ICHSN'05, ICMCS'05, SENET'05).

[5]  Mahmut T. Kandemir,et al.  Improving Offset Assignment on Embedded Processors Using Transformations , 2000, HiPC.

[6]  Santosh Pande,et al.  An optimization framework for embedded processors with auto-addressing mode , 2010, TOPL.

[7]  Krste Asanovic,et al.  Energy-aware lossless data compression , 2006, TOCS.

[8]  Chenyang Lu,et al.  Multi-Application Deployment in Shared Sensor Networks Based on Quality of Monitoring , 2010, 2010 16th IEEE Real-Time and Embedded Technology and Applications Symposium.

[9]  Issa M. Khalil,et al.  Stream: Low Overhead Wireless Reprogramming for Sensor Networks , 2007, IEEE INFOCOM 2007 - 26th IEEE International Conference on Computer Communications.

[10]  Rainer Leupers,et al.  Offset assignment using simultaneous variable coalescing , 2006, TECS.

[11]  Edward A. Lee,et al.  DSP Processor Fundamentals: Architectures and Features , 1997 .

[12]  David E. Culler,et al.  TOSSIM: accurate and scalable simulation of entire TinyOS applications , 2003, SenSys '03.

[13]  Yong Wang,et al.  Energy-efficient computing for wildlife tracking: design tradeoffs and early experiences with ZebraNet , 2002, ASPLOS X.

[14]  Wendi B. Heinzelman,et al.  Adaptive protocols for information dissemination in wireless sensor networks , 1999, MobiCom.

[15]  Jonathan W. Hui,et al.  Securing the Deluge network programming system , 2006, 2006 5th International Conference on Information Processing in Sensor Networks.

[16]  Manu Sridharan,et al.  Demand-driven points-to analysis for Java , 2005, OOPSLA '05.

[17]  M.L. Soffa,et al.  Capturing the effects of code improving transformations , 1998, Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192).

[18]  Montserrat Ros,et al.  A hamming distance based VLIW/EPIC code compression technique , 2004, CASES '04.

[19]  Randy H. Katz,et al.  Emerging challenges: Mobile networking for “Smart Dust” , 2000, Journal of Communications and Networks.

[20]  David E. Culler,et al.  The mote revolution: low power wireless sensor network devices , 2004 .

[21]  Songwu Lu,et al.  GRAdient Broadcast: A Robust Data Delivery Protocol for Large Scale Sensor Networks , 2005, Wirel. Networks.

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

[23]  Yang Yu,et al.  Supporting concurrent applications in wireless sensor networks , 2006, SenSys '06.

[24]  Andrew W. Appel,et al.  Iterated register coalescing , 1996, TOPL.

[25]  Gérard Cornuéjols,et al.  An algorithmic framework for convex mixed integer nonlinear programs , 2008, Discret. Optim..

[26]  R. Kling,et al.  IMOTE2: Serious Computation at the Edge , 2008, 2008 International Wireless Communications and Mobile Computing Conference.

[27]  エフエム・エスエス・インターナショナル Microsoft Systems Management Serverリソースガイドアップデート , 1997 .

[28]  Edgar H. Callaway,et al.  Wireless Sensor Networks: Architectures and Protocols , 2003 .

[29]  David E. Culler,et al.  Incremental network programming for wireless sensors , 2004, 2004 First Annual IEEE Communications Society Conference on Sensor and Ad Hoc Communications and Networks, 2004. IEEE SECON 2004..

[30]  Andrew W. Appel,et al.  Optimal spilling for CISC machines with few registers , 2001, PLDI '01.

[31]  Johan Eker,et al.  Feedback linking: optimizing object code layout for updates , 2006, LCTES.

[32]  Amit Rao,et al.  Storage assignment optimizations to generate compact and efficient code on embedded DSPs , 1999, PLDI '99.

[33]  Srinivas Devadas,et al.  Analysis and Evaluation of Address Arithmetic Capabilities in Custom DSP Architectures , 1997, Des. Autom. Embed. Syst..

[34]  Taewhan Kim,et al.  Address assignment combined with scheduling in DSP code generation , 2002, DAC '02.

[35]  Johan Eker,et al.  Feedback linking: optimizing object code layout for updates , 2006 .

[36]  Dr. Rainer Leupers LANCE : A C Compiler Platform for Embedded Processors , .

[37]  Mary Lou Soffa,et al.  Predicting the impact of optimizations for embedded systems , 2003, LCTES '03.

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

[39]  John Regehr,et al.  Eliminating stack overflow by abstract interpretation , 2003, TECS.

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

[41]  Rainer Leupers,et al.  A uniform optimization technique for offset assignment problems , 1998, Proceedings. 11th International Symposium on System Synthesis (Cat. No.98EX210).

[42]  Keith D. Cooper,et al.  Improvements to graph coloring register allocation , 1994, TOPL.

[43]  James R. Larus,et al.  Cache-conscious structure definition , 1999, PLDI '99.

[44]  John Cocke,et al.  A methodology for the real world , 1981 .

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

[46]  John L. Hennessy,et al.  Register allocation by priority-based coloring , 1984, SIGPLAN '84.

[47]  Koen De Bosschere,et al.  alto: a link-time optimizer for the Compaq Alpha , 2001, Softw. Pract. Exp..

[48]  Rainer Leupers,et al.  Algorithms for address assignment in DSP code generation , 1996, Proceedings of International Conference on Computer Aided Design.

[49]  D. H. Bartley,et al.  Optimizing stack frame accesses for processors with restricted addressing modes , 1992, Softw. Pract. Exp..

[50]  Brad Calder,et al.  Reducing code size with echo instructions , 2003, CASES '03.

[51]  Nigamanth Sridhar,et al.  Abstractions for safe concurrent programming in networked embedded systems , 2006, SenSys '06.

[52]  Mary Lou Soffa,et al.  An approach to ordering optimizing transformations , 1990, PPOPP '90.

[53]  John Regehr,et al.  Pluggable abstract domains for analyzing embedded software , 2006, LCTES '06.

[54]  Weijia Li,et al.  UCC: update-conscious compilation for energy efficiency in wireless sensor networks , 2007, PLDI '07.

[55]  Kent D. Wilken,et al.  Optimal and Near‐optimal Global Register Allocation Using 0–1 Integer Programming , 1996, Softw. Pract. Exp..

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

[57]  Mary Lou Soffa,et al.  Incremental register reallocation , 1990, Softw. Pract. Exp..

[58]  Rajeev Gandhi,et al.  Sluice: Secure Dissemination of Code Updates in Sensor Networks , 2005, 26th IEEE International Conference on Distributed Computing Systems (ICDCS'06).

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

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

[61]  Vivek Sarkar,et al.  Linear scan register allocation , 1999, TOPL.

[62]  Sasikanth Avancha,et al.  Security for Sensor Networks , 2004 .

[63]  Montserrat Ros,et al.  A post-compilation register reassignment technique for improving hamming distance code compression , 2005, CASES '05.

[64]  Etienne Morel,et al.  Global optimization by suppression of partial redundancies , 1979, CACM.

[65]  Christopher W. Fraser An instruction for direct interpretation of LZ77‐compressed programs , 2006, Softw. Pract. Exp..

[66]  Michael D. Smith,et al.  Quality and speed in linear-scan register allocation , 1998, PLDI.

[67]  Jens Palsberg,et al.  Avrora: scalable sensor network simulation with precise timing , 2005, IPSN 2005. Fourth International Symposium on Information Processing in Sensor Networks, 2005..

[68]  David Ryan Koes,et al.  A global progressive register allocator , 2006, PLDI '06.

[69]  Rahul Shah Vulnerability Assessment of Java Bytecode , 2005 .

[70]  Gary S. Tyson,et al.  Practical exhaustive optimization phase order exploration and evaluation , 2009, TACO.

[71]  Rajiv Gupta,et al.  Data Compression Transformations for Dynamically Allocated Data Structures , 2002, CC.

[72]  Kurt Keutzer,et al.  Storage assignment to decrease code size , 1996, TOPL.

[73]  John Cocke,et al.  Register Allocation Via Coloring , 1981, Comput. Lang..

[74]  Michael Franz Adaptive Compression of Syntax Trees and Iterative Dynamic Code Optimization: Two Basic Technologies for Mobile Object Systems , 1996, Mobile Object Systems.