www.snowflakesoftware.com
Developing multi-functional
“sensor” web service platform for
citizen sensing
Richard Rombouts
Snowflake Software Ltd.
United Kingdom
www.snowflakesoftware.com
CITI-SENSE
• EU FP7-ENV-2012 project
• 4 years, started October 2012
• 27 project partners from Europe, South
Korea and Australia
• Budget > €12mil
www.citi-sense.eu
www.snowflakesoftware.com
Objectives
• Develop citizens’ observatories
• Empower citizens to contribute and
participate in environmental governance
• Support and influence decision making
progress
www.snowflakesoftware.com
Concept
Standards for Geospatial Data and Services
Citizens’ Observatories
Participation and Empowerment
Information Products and Services
Data and Services Platform
Sensor Infrastructure
Urban Quality Public Spaces
School Indoor
Quality
www.snowflakesoftware.com
No-SQL
Database
No-SQL
Database
Mobile Sensors
& Apps
Triple StoreTriple Store
senMLsenML
RDFRDF
Sensor
Application
Platform
Spatial Data Services
Platform
Linked Data
Platform
www.snowflakesoftware.com
Prototypes
• Three end-to-end prototypes are
developed:
1. Air Quality
2. Noise
3. Indoor air at schools
• 9 locations in Europe
www.snowflakesoftware.com
Air Quality Prototype (6 Mth)
DATA ACCESS PROTOCOLS
PostgreSQL Cloud Database ClusterPostgreSQL Cloud Database Cluster
Model Transformation / Data Fusion / Semantic
Annotation
Model Transformation / Data Fusion / Semantic
Annotation
SENSOR
Data
SENSOR
Data
OGC WFS OGC WFS
www.snowflakesoftware.com
Configuring the Data Services
• Publishing from single source to multiple
schemas:
– OGC SWE: SensorML, O&M, KML
– INSPIRE: EMF, O&M Profiles
– W3C: SenML
• Using off-the-shelf software
• Rapid configuration/deployment of data
services to meet specific user
requirements
www.snowflakesoftware.com
Deploying Data Services
• Once schema transformation configured –
project is deployed within WFS
• But first need to configure WFS settings:
– GetCapabilities
– Encoding format (compressed/uncompressed)
– Servlet pattern
• Finally, generate WFS war and deploy to
application server
www.snowflakesoftware.com
Deploying Data Services
Desktop
Server
Translation
configuration
Data Request
SchemaSchema
translationtranslation
SchemaSchema
translationtranslation
Data Request
SchemaSchema
translationtranslation
SchemaSchema
translationtranslation
Database
Records
Database
Records
SQL Query
SQL Query
Database table
information
www.snowflakesoftware.com
Experiences
Observations and Measurements:
How is this
described/encoded?
How is this
described/encoded?
How do you describe
a collection of
observable
properties
Where are these
defined?
www.snowflakesoftware.com
Experiences
Observations and Measurements:
INSPIRE
PointTimeSeriesObservation
SensorML
Create definitions
within CITI-SENSE
www.snowflakesoftware.com
Experiences
Encoding PointTimeSeriesObservation
– O&M describes a collection of observations
– Result cannot be dynamically generated
– Need to have a really good understanding of request
patterns to configure service:
• Get latest observation
• Get last 24 hrs
• Get last 7 days
• Get last month
Issue: O&M does not support
request pattern:
•Get observations within a user
defined time period for a subset of
air quality parameters
www.snowflakesoftware.com
Experiences
Encoding PointTimeSeriesObservation
– O&M describes a collection of observations
– Result cannot be dynamically generated
– Need to have a really good understanding of request
patterns to configure service:
• Get latest observation
• Get last 24 hrs
• Get last 7 days
• Get last month
Resolution:
Encoded the observations as
separate features using senML
which is a lightweight encoding to
serve through WFS
www.snowflakesoftware.com
Lessons learnt
• You need to understand your end-user
requirements before developing your
services
• Choose the right set of standards for
meeting these requirements
• INSPIRE Data Specifications allowed us
to get going within weeks of project start!!
www.snowflakesoftware.com
Richard Rombouts
richard.rombouts@snowflakesoftware.com
@RichRombouts ; @Sflakesoftware
Learn more? Talk to us

Developing multi-functional “sensor” web service platform for citizen sensing

Editor's Notes

  • #4 CITI-SENSE will develop citizens’ observatories to empower citizens to contribute and participate in environmental governance, to enable them to support and influence community and societal priorities and associated decision making. CITI-SENSE will develop, test, demonstrate and validate a community-based environmental monitoring and information system using innovative and novel earth observation applications. The project aims to learn from citizen experience and perception and enable citizenship co-participation in community decision making and co-operative planning.
  • #5 The concept of the project is to realise the chain from sensors->platforms->products->users. Elements Sensors: Technologies for distributed monitoring Platform: Information and communication technologies Products: Information products and services Users: Citizen involvement in monitoring and societal decisions
  • #8 We are polling the AirBase database every 15 mins and load the sensor data directly into our PostGIS database cluster (managed by EnterpriseDB). On top of this database we used GO Publisher to develop and deploy various data services such as INSPIRE Environmental Monitoring Facilities (EMF), Observations & Measurements (O&M) and SensorML. We discovered that we ran into a blocker in configuring the translations because the end-user requirements were not specified. Turned out that the end-user requirements involved something that the O&M and EMF models do not support. Users are interested in specific results for specific time intervals (eg. last hour, or between 2 dates and times). The current O&M and WFS standards on which the INSPIRE specifications are based do not allow for this specific query. In the O&M standard an observation is a feature and the results are its properties. When using a WFS to query the data the service will always return a full feature (i.e. Observation) with all its results including the ones you are not interested in. To mitigate this, we changed the models slightly so that the service return a result as a feature. We also look at the W3C senML specification which provides better support for meeting the end-user requirements.
  • #14 Query Translation - GO Publisher WFS Being able to query data through a translation process is significantly more complex. We can illustrate this by looking at GO Publisher WFS the software architecture of GO Publisher WFS. Configuration takes of the translation takes place in exactly the same way as for GO Publisher Desktop. Once the translation is configured the user adds additional configuration to the GO Publisher project file control the WFS behaviour. GO Publisher Desktop is then used to create a Web Archive (war) file which contains the project file and the WFS software. This war file contains everything needed by an application server to deploy the WFS. The war file is uploaded to an application server which unpacks and deploys the WFS from the war file. When a client submits a query to the WFS GO Publisher translates the WFS request into a SQL query. Because the WFS request is specified in terms of the GML application schema GO Publisher must use the data translation in reverse to translate the query. For example, if we set up a translation that translates the column “NAM” to the XML element “gml:name”, when a WFS request querying against “gml:name” arrives this must be turned into a SQL query against the column “NAM”. The data returned by the SQL query is then translated into GML (using the translation in its forward direction i.e. “NAM” becomes “gml:name”) and returned to the client. Multiple translations can be set up and deployed for a single database, thus allowing the data held in the database to be accessed by different communities of users using different GML application schemas.
  • #15 Observations and Measurements: This is a brilliantly simple, generic model for encoding the observations collected by a sensor......but its too generic: How should the result (which is the container for the actual observations) be described/encoded? This needs to be defined by someone...... How should the procedure be described/encoded? What is the observedProperty? Is this a single observable parameter (e.g. Ozone) or can it be a collections
  • #16 Observations and Measurements: For the 6 month prototype we used the INSPIRE PointTimeSeriesObservation as the result, SensorML to describe how the observation was measured Created a set of definitions of observableProperties within the project