March 12, 2010, Friday, 70

GSN:Home

From SwissExperiment

Home
Jump to: navigation, search


Image:GSN-banner.jpg

http://sourceforge.net/apps/trac/gsn/

GSN (Global Sensor Networks) is a database software middleware designed to facilitate the deployment and programming of sensor networks. The software takes data (either directly from a sensor or from a CSV file), enters it into a database and provides a web based query interface. What sets GSN apart over most web based sensor access tools is that it is completely generalised and able to handle sensors of all types. Using GSN, you can ignore the complex sensor network details and focus only on the high level application logic.

GSN consists of several parts: a data acquisition module, a database module, a web-based query module and an external web services module. GSN is being consistently updated by an open source community.

Data Acquisition Wrappers

Sensor specific wrappers Sensor specific wrappers are available for many sensors such as webcams, GPS modules and tinynodes. These wrappers contact the sensor directly over a network connection and retrieve the data. If what you need is not available, then with GSN's open API, you can also quickly write sensor network applications by leaving the tedious task of managing low level hardware dependent details to GSN.

CSV wrapper The CSV wrapper is used when commercial applications are in place for communicating with the sensor. If this commercial application (e.g. Campbell Loggernet) writes a CSV file, GSN will grab the data from the file every time it is updated or edited.

SPARQL query wrapper Using the SPARQL query wrapper, you can synchronise GSN with a wiki based interface, making it possible to bring user edited metadata and data from a web based collaborative interface and query/display it directly with your streaming sensor data.

Distributed data sets GSN is built to be housed on local servers owned by the data owners. These GSN instances can however be linked together by using the 'remote sensor' wrapper. When this wrapper is provided with the ip address, port number and name of the virtual sensor to be acquired, the data set queried and acquired to the local server and periodically further queried for new updates.

Using several different wrappers in one virtual sensor, you can develop sensor network software exploiting several heterogeneous sensor networks, e.g. joining pictures coming from your wireless camera, tag IDs coming from a RFID reader and light readings from two other wireless sensor networks. The same method can be used for processing data: by daisy-chaining virtual sensors together, you can provide data sets at the various stages of data processing.

For a full list of the wrappers available, please see here

Image:GsnOverview.jpg


The Sensor XML file

GSN centres on a number of XML files, one for each 'virtual sensor'. These XML files describe the acquisition method, the incoming sensor data format and some sensor metadata, an SQL query and an output format. The SQL query retrieves the sensor data from the wrapper and inserts it into the database in a format described in the 'output' section of the XML file. The GSN web interface also uses this output format to display and query data stored in the database. The creation of these XML files will eventually become automated.

Databases

GSN is designed around a MySQL database, although work is in progress to connect this to a Postgres SQL database and the web interface has already been successfully applied to an Oracle database.

Processing

Simple SQL statements represent the simplest form of processing within GSN. Advanced processing can be carried out by using GSN's R server interface. In this interface, a window of data from the GSN output can be passed to an R script, housed on a server running the R server extension. Processing can be carried out in this way and returned to GSN either as a plot image or as a processed data set.

Web Interface

GSN's Java web interface home page provides instant access to the latest data acquired from a sensor, hence providing the data owner with information about the last time their stations updated and what the conditions are.

GSN web interface home page

The GSN web interface data page provides a web interface for viewing, downloading and interactively plotting data. Three interactive tabs allow the user to choose the length of data set, parameters, time period and interactive data filters. The data returned from this query can then be downloaded as CSV, XML or PDF, plotted in an interactive plot, or viewed within the webpage as a table.

GSN web interface data page

There are two GSN geospatial data access interfaces. These currently use Google Maps and Microsoft Virtual Earth, although development is in progress to provide a GIS based interface.

GSN web interface map page
GSN web interface fullmap page

For more information and to download GSN, see the GSN webpage.

See the User Guide for a detailed guide (work in progress).

User access control

Password based user access control is currently implemented for the web interface. More advanced, sensor-based user access control is to follow.

Web service

GSN provides data to Microsoft SensorMap over a number of web service calls. These provide SensorMap with real time data and access to the complete history available in the database without having to store it in their own server. This interface brings together all the GSN instances to make a truly distributed network.

Future Development

GSN is an open source application, hence there is a distributed development community (Switzerland, Australia, Ireland, France....), so it is difficult to keep up with the latest developments. A developer conference is held at least once per year to facilitate this.

Developments in GSN are constantly in motion. To see the current developments, see the current tickets or subscribe to the RSS feed. To stay updated with the latest updates, subscribe to the RSS feed


Bug Reports and Support Requests

For bug reports and support requests please follow the link: https://sourceforge.net/apps/trac/gsn/report

Please send all bug reports and support requests through the wiki link shown. This stops the developers from being overloaded with requests.

GSN documentation can be found here