Testbed and Software Development Environments


Introduction

Back in the early stages of sensor network research, I was working at Information Science Institute (ISI) getting ready for a DARPA demo.  The demonstration consisted of showing the first implementation of a data dissemination scheme using a small multihop network deployed in the parking lot at the entrance of the building.  The demo was a failure, and at the time I decided to perform the autopsy.  There were many problems, but one of the most important ones was the lack an out-of-band channel and supporting infrastructure to better debug, control and analyze the distributed system interactions in real-time.  Since that episode, it was clear to me that one of the fundamental requirements for sucessfully deploying sensor network systems was the development of better testbeds and software environments that would facilitate the system development and the understanding of sometimes complex interactions in the system.

As part of my research involvement at CENS, I have been quite active and interested in developing infrastructure to support sensor network experimentation using real platforms and systems.


Testbed Management Tools

CENS ceiling arrayThe large number of different hardware platforms available in the lab---more than hundred different type of nodes, including Stargates, iPAQs, PC104s---make the system administration and software management a daunting task.  This is particularly critical in a system research lab, where  multiple users need to experiment with possibly unstable versions of the software, but high degree of availability of scarce resources is still needed.  I developed a set of testbed management tools that allow individual testbed users to change, update, and test any system software on these platforms---including the kernel---in a simple and efficient manner.  The tools allow each user or group of users to perform cvs style operations on a testbed node filesystem image.  Multiple users can be assigned different nodes and have different images in each of their nodes, without having to worry about manually transfer them to each node, or checking if the right set of binaries is in place.  In addition, updating binaries is very efficient and can be done en masse for all the nodes.  The system has been successfully running for a couple of years now.


EmStar

I have also been involved with EmStar, a programming model and a software environment for developing and deploying sensor network applications on Linux-class hardware platforms.  The system is still under development at CENS.  EmStar allows users to run the same code and configuration on real nodes (either using low-power radios such as motes, or 802.11), as a pure simulation, or in a hybrid mode that combines processing done in simulation and communication, sensing, and actuation on real (physical) channels.  The same source code can be used in any of these modes without changes.  The EmStar system consists of different modules with specific---albeit configurable---functionality, connected via libraries that implement message-passing IPC primitives, a control plane that manages all modules---start-up, keepalive, restarts, logging---, a group of low level modules that provides basic services---neighbor discovery, routing, time synchronization---, and visualization modules that permit interactive evaluation of the system.  The goal is to leverage on the reusability of customizable modules to provide a simpler solution for a system designer than application-specific solutions.  I have contributed specifically to the Link interface---the basic API used by all modules in the framework to connect to each other---, the helper libraries, the link measurement and neighbor discovery modules, the link reliability modules, routing algorithm modules, the simulation interface for both motes and udp, the radio propagation channel library, the visualization modules, as well as full implementations of ASCENT and SCALE.
EmStar modes of operation

Related publications


Valid HTML 4.01!
Last updated: 2005/02/24 01:55:38