Resource management aspects for sensor network software

The software that runs on a typical wireless sensor network node must address a variety of constraints that are imposed by its purpose and implementation platform. Examples of such constraints include real-time behavior, highly limited RAM and ROM, and other scarce resources. These constraints lead to crosscutting concerns for the implementations of sensor network software: that is, all parts of the software must be carefully written to respect its resource constraints. Neither traditional languages (such as C) nor component-based languages (such as nesC) for implementing sensor network software allow programmers to deal with crosscutting resource constraints in a modular fashion. In this paper we describe Aspect nesC (ANesC), a language we are now implementing to help programmers modularize the implementations of crosscutting concerns within sensor network software. Aspect nesC extends nesC, a component-based dialect of C, with constructs for aspect-oriented programming. In addition to combining the ideas of components and aspects in a single language, ANesC will provide specific and novel constructs for resource-management concerns. For instance, pointcuts can identify program points at which the run-time stack is about to be exhausted or a real-time deadline has been missed. Corrective actions can be associated with these points via "advice." A primary task of the Aspect nesC compiler is to implement such resource-focused aspects in an efficient manner.

[1]  Matt Welsh,et al.  Fidelity and yield in a volcano monitoring sensor network , 2006, OSDI '06.

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

[3]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[4]  Chenyang Lu,et al.  Dynamic Resource Management in a Static Network Operating System , 2006 .

[5]  Eric Eide,et al.  Efficient type and memory safety for tiny embedded systems , 2006, PLOS '06.

[6]  Ramesh Govindan,et al.  Declarative failure recovery for sensor networks , 2007, AOSD.

[7]  Aleksandra Tesanovic Evolving embedded product lines: opportunities for aspects , 2007, ACP4IS.

[8]  Philip Levis,et al.  TinyOS Programming: Introduction , 2009 .

[9]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

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

[11]  Suresh Jagannathan,et al.  Macroprogramming heterogeneous sensor networks using cosmos , 2007, EuroSys '07.

[12]  Gary T. Leavens,et al.  MultiJava: modular open classes and symmetric multiple dispatch for Java , 2000, OOPSLA '00.

[13]  Danilo Beuche,et al.  Variant management for embedded software product lines with pure::consul and AspectC++ , 2003, OOPSLA '03.

[14]  Olaf Spinczyk,et al.  Developing embedded software product lines with AspectC++ , 2006, OOPSLA '06.

[15]  Olaf Spinczyk,et al.  Advances in AOP with AspectC++ , 2005, SoMeT.

[16]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[17]  H. Bluestein A History of Severe-Storm-Intercept Field Programs , 1999 .

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

[19]  Gyula Simon,et al.  Sensor network-based countersniper system , 2004, SenSys '04.

[20]  G. Plotkin,et al.  Proof, language, and interaction: essays in honour of Robin Milner , 2000 .

[21]  Jeongyeup Paek,et al.  A wireless sensor network for structural health monitoring: performance and experience , 2005, The Second IEEE Workshop on Embedded Networked Sensors, 2005. EmNetS-II..

[22]  Thomas Leich,et al.  Highly configurable transaction management for embedded systems , 2007, ACP4IS.