μSETL: A set based programming abstraction for wireless sensor networks

Programming wireless sensor networks is a major challenge, even for experienced programmers. To alleviate this problem, prior work has proposed a paradigm shift from node-level microprogramming to macroprogramming, where the user specifies a distributed application using a single macroprogram that is automatically translated into a set of node-level microprograms. This paper makes the case that node-level microprogramming itself can be made much easier by using the right set of programming abstractions. To support this claim, this paper presents μSETL, a programming abstraction for sensor networks based on set theory. Sets offer a powerful formalism and high expressiveness, yet are a natural way of thinking about resource abstraction in sensor networks. In addition to the set abstraction, μSETL features programming constructs that enable event-driven programming at a high level of abstraction, thereby significantly simplifying node-level microprogramming. μSETL consists of a set-based programming language, a compiler that translates μSETL programs into node-specific application code, and a runtime environment that provides various services to support the set-based programming abstraction. μSETL has been implemented using the Contiki operating system and runs on the Telos motes. Experimental results demonstrate that μSETL enables programmers to write various sensor network applications in a natural and highly compact manner with minimal overheads.

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

[2]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

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

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

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

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

[7]  Joel Koshy,et al.  VMSTAR: synthesizing scalable runtime environments for sensor networks , 2005, SenSys '05.

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

[9]  Adam Dunkels,et al.  Cross-Level Sensor Network Simulation with COOJA , 2006, Proceedings. 2006 31st IEEE Conference on Local Computer Networks.

[10]  David E. Culler,et al.  Active sensor networks , 2005, NSDI.

[11]  Kamin Whitehouse,et al.  MacroLab: a vector-based macroprogramming framework for cyber-physical systems , 2008, SenSys '08.

[12]  Kamin Whitehouse,et al.  Semantic Streams: A Framework for Composable Semantic Interpretation of Sensor Data , 2006, EWSN.

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

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

[15]  Luca Mottola,et al.  Programming storage-centric sensor networks with Squirrel , 2010, IPSN '10.

[16]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

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

[18]  Wei Hong,et al.  TinyDB: an acquisitional query processing system for sensor networks , 2005, TODS.

[19]  Matt Welsh,et al.  Programming Sensor Networks Using Abstract Regions , 2004, NSDI.

[20]  Luca Mottola,et al.  Logical Neighborhoods: A Programming Abstraction for Wireless Sensor Networks , 2006, DCOSS.

[21]  David E. Culler,et al.  Hood: a neighborhood abstraction for sensor networks , 2004, MobiSys '04.

[22]  David E. Culler,et al.  Taming the underlying challenges of reliable multihop routing in sensor networks , 2003, SenSys '03.

[23]  Yong Yao,et al.  The cougar approach to in-network query processing in sensor networks , 2002, SGMD.

[24]  Philip Levis,et al.  The design and implementation of a declarative sensor network system , 2007, SenSys '07.

[25]  Ramesh Govindan,et al.  Macro-programming Wireless Sensor Networks Using Kairos , 2005, DCOSS.

[26]  Edmond Schonberg,et al.  Programming with Sets: An Introduction to SETL , 1986 .

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