SNEE-WS is a streaming data service that enables users to pose continuous queries over sensor networks, streaming data sources, and traditional stored data sources. Queries are expressed in the SNEEql query language, which has a unified evaluation semantics over these different types of data sources. Queries are optimised and evaluated by SNEE, a novel query optimiser based on an extension of traditional distributed query processing techniques.
SNEE-WS can be used as a distributed query platform over a set of external sources or as a mechanism to publish a physical data source such as a sensor network. In the first case, the query is evaluated over a set of source streams, which may also include a sensor network. In the second case, query evaluation is performed within the sensor network, and is controlled through the sensor network connectivity bridge.
SNEEql is a declarative continuous query language over acquisitional sensor networks, continuous streaming data, and traditional stored data. That is, a SNEEql query can be posed over a sensor network where the rate of data acquisition is controlled by the query, over a stream of data where the rate of arrival is out of the query evaluators control, and over a database with stored data.
For example, in the fire monitoring and warning use case there is a need to identify when the conditions are suitable for a fire to start. The fire risk can be computed by comparing the wind-speed, taken from a weather service data feed, with the temperature and relative humidity measured by a sensor network deployed in the forest. This can be captured by the SNEEql query:
SELECT RSTREAM wavg.wsp / (10 - 0.25 * (tavg.temp - tavg.rh))
FROM (SELECT avg(w.speed) as wsp
FROM wind[NOW] w) wavg,
(SELECT avg(t.temperature) as temp, avg(t.rhumidity) as rh
FROM tree[NOW] t) tavg;
The query calculates the fire risk index value by taking the average of the current wind speed and comparing it with the average temperature and relative humidity for the same time period. Note, this requires evaluation over a stream of data (the weather feed) and an acquisition sensor network.
SNEE is a query optimisation and evaluation platform for SNEEql queries over acquisitional sensor networks, streaming data sources, and traditional stored data. The SNEE query optimiser extends traditional distributed query processing techniques to sensor networks and external streaming data sources.
The SNEE query optimiser accepts a declarative SNEEql query and generates a query evaluation plan over the available data sources. Its functionality includes the ability to generate source code for the sensor network using the sensor network connectivity bridge. The query evaluation engine continuously executes the query, combining the data from the various sources, and generates an answer stream.
Further information about SNEEql and SNEE is available from http://snee.cs.manchester.ac.uk/.
SNEE is available under the New BSD license from http://code.google.com/p/snee/.