Dynamic TinyOS: Modular and Transparent Incremental Code-Updates for Sensor Networks

Long-term deployments of sensor networks in physically inaccessible environments make remote re-programmability of sensor nodes a necessity. Ranging from full image replacement to virtual machines, a variety of mechanisms exist today to deploy new software or to fix bugs in deployed systems. However, TinyOS - the current state of the art sensor node operating system - is still limited to full image replacement as nodes execute a statically-linked system-image generated at compilation time. In this paper we introduce Dynamic TinyOS to enable the dynamic exchange of software components and thus incrementally update the operating system and its applications. The core idea is to preserve the modularity of TinyOS, i.e.~its componentization, which is lost during the normal compilation process, and enable runtime composition of TinyOS components on the sensor node. The proposed solution integrates seamlessly into the system architecture of TinyOS: It does not require any changes to the programming model of TinyOS and existing components can be reused transparently. Our evaluation shows that Dynamic TinyOS incurs a low performance overhead while keeping a smaller - upto one third - memory footprint than other comparable solutions.

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

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

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

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

[5]  David E. Culler,et al.  The Emergence of Networking Abstractions and Techniques in TinyOS , 2004, NSDI.

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

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

[8]  Gustavo Alonso,et al.  A virtual machine for sensor networks , 2007, EuroSys '07.

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

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

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

[12]  Dario Pompili,et al.  Deployment analysis in underwater acoustic wireless sensor networks , 2006, Underwater Networks.

[13]  Saurabh Bagchi,et al.  Zephyr: efficient incremental reprogramming of sensor nodes using function call indirections and difference computation , 2009 .

[14]  Matt Welsh,et al.  Deploying a wireless sensor network on an active volcano , 2006, IEEE Internet Computing.

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

[16]  Peter I. Corke,et al.  A Java compatible virtual machine for wireless sensor nodes , 2008, SenSys '08.

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

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

[19]  Ramesh Govindan,et al.  TOSThreads: thread-safe and non-invasive preemption in TinyOS , 2009, SenSys '09.