Research Article
SNBENCH: a development and run-time platform for rapid deployment of sensor network applications
@INPROCEEDINGS{10.1109/ICBN.2005.1589708, author={AZER BESTAVROS and ADAM D. BRADLEY and ASSAF J. KFOURY and MICHAEL J. OCEAN}, title={SNBENCH: a development and run-time platform for rapid deployment of sensor network applications}, proceedings={2nd International ICST Conference on Broadband Networks}, publisher={IEEE}, proceedings_a={BROADNETS}, year={2006}, month={2}, keywords={}, doi={10.1109/ICBN.2005.1589708} }
- AZER BESTAVROS
ADAM D. BRADLEY
ASSAF J. KFOURY
MICHAEL J. OCEAN
Year: 2006
SNBENCH: a development and run-time platform for rapid deployment of sensor network applications
BROADNETS
IEEE
DOI: 10.1109/ICBN.2005.1589708
Abstract
We envision the emergence of general-purpose, well-provisioned sensor networks - which we call "Sensoria" - that are embedded in (or overlayed atop) physical spaces, and whose use is shared amongst autonomous users of that space for independent and possibly conflicting missions. Our conception of a Sensorium stands in sharp contrast to the commonly adopted view of an embedded sensor network as a special-purpose infrastructure that serves a well-defined, fixed mission. The usefulness of a Sensorium will not be measured by how highly optimized its various protocols are, or by how efficiently its limited resources are being used, but rather by how flexible and extensible it is in supporting a wide range of applications. To that end, in this paper, we overview and present a first-generation implementation of SNBENCH: a programming environment and associated run-time system that support the entire life-cycle of programming sensing-oriented applications. The components of SNBENCH are analogous to those commonly found in traditional, stand-alone general-purpose computing environments. SNAFU (sensornet applications as functional units) is a high-level strongly-typed functional language that supports stateful, temporal, and persistent computation. SNAFU is compiled into an intermediate, abstract representation of the processing graph, called a STEP (Sensorium task execution plan). The STEP graph is then linked to available Sensorium execution environments (SXEs). A Sensorium service dispatcher (SSD) decomposes the STEP graph into a linked execution plan, loading STEP sub-graphs to appropriate individual SXEs and binding those loaded sub-graphs together with appropriate network protocols. The SSD may load many such programs onto a Sensorium simultaneously, taking advantage of programs' shared computation and dependencies to make more efficient use of sensing, computation, network, and storage resources