Spreadsheet Programming Interface for Sensor Networks
Spreadsheet Programming Interface for Sensor Networks
The goal of this summer project is to thoroughly design and implement a novel interface to program and manage sensor networks. The initial design of this interface has been explored in a research poster (cs.unm.edu/~jhorey/research/jhorey-ipsn05.pdf) written by myself with the help of my research advisors. This work has been presented at Information Processing in Sensor Networks, 2005. For sake of brevity, only a summary of the research poster will be given here along with some detailed implementation notes. To help better understand the problem this interface attempts to solve, a brief introduction to sensor network technology will also be given. For a more thorough exploration of this programming interface along with detailed references, review of the research poster is recommended.
Sensor networks are wireless networks of small devices that are capable of sensing the physical environment using a variety of different sensors. These devices are also capable of performing limited computation and storage. Often called motes, these devices are primarily constrained by power, computational capability, and storage. Examples of widely used motes include the Mica2 and Mica2Dot (www.xbow.com) originally developed at the University of California - Berkley. Due to the severe resource constraints, programming models for sensor networks remain difficult to use. Many of these programming models also tend to be non-intuitive to potential users of this technology.
My programming interface attempts to address concerns regarding the ease-of-use of sensor networks while ensuring that the user is not artificially limited in expressive power. To accomplish this, the interface use concepts borrowed from spreadsheets to program the sensor network. For instance, the user is capable of constructing queries detailing the type of data he or she is interested in viewing using a pivot-table interface. The data may consist of sensor readings or metadata describing the sensor network itself. Besides constructing queries, the user is also capable of specifying various rules that run locally on each sensor node. These rules can be used for simple filtering, analysis, and communication between nodes. Details of how this is done are available in the poster.
My goal is to implement this programming interface using a combination of KDE and TinyOS technology. The KDE platform will allow me to use some advanced technologies, including bindings to the Ruby language, DCOP, and KParts technology. Since my programming interface must dynamically construct TinyOS code to propagate onto the sensor network, Ruby's text processing capabilities will be a great asset. KParts and DCOP technology will allow me take advantage of existing applications such as KSpread. This should, in theory, make my programming interface more robust while shortening the time for implementation.
Specifically, I expect to accomplish the following this summer:
- Implement the ability to construct simple pivot-table queries and propagate these queries onto an existing sensor network
- Implement the ability to collect results from the queries and display those results in a spreadsheet
- Evaluate the current design and extend if necessary
Due to the complexity of this application, not all design features may be implemented this summer. However, because this project is an integral part of my research, this application will continue to be improved and maintained well past the summer and all design features will eventually be implemented. It is important to note that the functionality implemented this summer will be substantial and constitute a useful subset of the complete feature set.
This spreadsheet programming interface for sensor networks will greatly aid the adoption and use of sensor networks in non-Computer Science related fields due to its ease-of-use and flexibility. As such, it should be released to the greater scientific community in an open manner.
[ Edit ]