JSense: prototyping sensor-based, location-aware applications in java

  • Authors:
  • Silvia Santini;Robert Adelmann;Marc Langheinrich;Georg Schätti;Steven Fluck

  • Affiliations:
  • Institute for Pervasive Computing, ETH Zurich, Zurich, Switzerland;Institute for Pervasive Computing, ETH Zurich, Zurich, Switzerland;Institute for Pervasive Computing, ETH Zurich, Zurich, Switzerland;Institute for Pervasive Computing, ETH Zurich, Zurich, Switzerland;Institute for Pervasive Computing, ETH Zurich, Zurich, Switzerland

  • Venue:
  • UCS'06 Proceedings of the Third international conference on Ubiquitous Computing Systems
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Creating applications based on data from individual sensor nodes is typically a two-tiered process: Firstly, a (potentially large) number of sensor nodes is deployed in order to gather comprehensive datasets. After analyzing the collected data, algorithms are then installed on the individual nodes and iteratively fine-tuned using a collect-and-analyze procedure. This approach is not only time consuming, but also prone to errors: the two separate steps of data collection and data analysis complicate algorithm development; the absence of programming abstractions in embedded systems programming languages often introduces hard-to-detect runtime errors; and the lack of modern integrated development environments (IDEs) does not allow for quick trial-and-error prototyping. To mitigate those effects, we have developed JSense – a hardware abstraction layer for modern sensor nodes that allows for Java-based access to all sensor and actuator controls. It supports an IDE-based centralized development cycle with real-time debugging of a particular sensor environment, as well as the use of not-yet-available sensor and actuator hardware on each node, such as positioning information. Using JSense, designers of sensor-based environments can quickly try out a combination of situations and observe in real-time the data collection processes of their nodes, while programmers are able to prototype applications in their favorite Java-IDE in a hardware independent fashion, even taking into account not-yet-deployed node hardware.