Thanks Justin & Chris for the feedback.

Before going into the overview of the Sensor Observation Service (SOS) 
Specification, would like to give brief background info about the rise of the 
SOS implementation in GeoServer :

=================
Brief Background
=================

Last financial year, we did some review on a few open source SOS services 
available e.g. 52North, MapServer and Deegree and concluded that 52North SOS is 
the best option as it is the only SOS that support SOS 2.0 specification with 
good implementation documentation.  However, it is still not the best solution 
with the limitations such as:
=> only support PostgreSQL DB at the moment
=> require good understanding of their database schema for database mapping
=> feeding data require good knowledge of sql or other feeder tool (e.g. ETL, 
script, etc)
=> limited to only OM result model that tie to SWE Common model at that moment, 
it now has a branch with OM result model that tie to WaterML model
=> any changes required in the result mapping require changes in the source code
=> manual mapping of sensor information using sensorML schema

The above limitations are something we hope to resolve by implementing the SOS 
service in GeoServer as we know that GeoServer :
=> support broad selection of data stores
=> able to use existing datastore without altering it
=> flexibility of creating different OM result model - base on the concept of 
Application Schema configuration file
=> similar to creating the Observation using Application Schema configuration 
file concept, sensor information can be published thru a standard configuration 
file

Additional to above review, we also did some comparison with the time series 
observation results published through GeoServer WFS (version 1.1 as Application 
Schema only support up to 1.1 now) and 52NorthSOS (SOS version 2.0), some 
observations recorded and comments from users :
=> In WFS1.1, there is no concept of observation, procedure, observedProperty, 
time or number of records, however, a complex feature could be specified that 
contains all of these concepts, such as WaterML.
=> When it comes to huge amount of time-series observation, SOS is the better 
option as there is option of filter by time range / time period
=> user is able to find out the bounding box time range of the dataset from the 
SOS GetCapabilities operation and making filter request easier
=> a good presentation by 52NorthSOS comparing SOS1.0 and WFS1.1 @ 
http://2010.foss4g.org/presentations/3800.pdf


===========================================================
Overview summary of the SOS 2.0 Specification (OGC 12-006)
===========================================================

SOS Standard Overview - The standard defines a web service interface for the 
discovery and retrieval of real time or archived data (particular time-series 
observations) produced by all kinds of sensors like mobile or stationary as 
well as in-situ or remote sensors. The requirements classes defined by the SOS 
2.0 standard :

Core : GetCapabilities, DescribeSensor and GetObservation
Transactional : Insert Capabilities, Sensor Insertion, Sensor Delition, 
Observation insertion
Result Handling : Result insertion, Result Retrieval
Enhanced Operations : Observation retrieval by ID, FeatureOfInterest Retrieval
Filter Operations : Spatial filters, Temporal Filters
Binding : XML Encoding, SOAP Binding, Core KVP Binding, GetFeatureOfInterest 
KVP Binding, Result Retrieval KVP binding

For a start, will concentrate on the following minimum requirements standard :
Core Opertations : GetCapabilities, DescribeSensor and GetObservation
Filter Operations : Spatial filter (BBOX), Temporal Filter (TEquals, During)

>From the SOS2.0 specification Annex D - Relationship to Other OGC Web Service 
>Standards - describes the relationships between SOS and WFS and how to couple 
>the two.  There are two type of relationships as below :

(1) Relationship between SOS and WFS where WFS is providing feature of interest 
- SOS providing O&M observations for certain feature of interest and the 
features are provided by an external WFS.
(2) Relationship between SOS and WFS where SOS is encapsulating WFS - SOS is 
using a WFS at the backend for handling the feature of interest.  SOS offers 
both the observations as well as the features of interest.

Option 1 is preferred where SOS will be used mainly for providing O&M 
observations.



====================================================================
Core Operations: GetCapabilities, DescribeSensor and GetObservation
====================================================================

--------------------
(1) GetCapabilities
--------------------
Overview - The GetCapabilities operation returns a service description 
containing information about the service interface (e.g. supported operations, 
service version) and the available sensor data (e.g. registered sensors, time 
period of available observations, spatial extent of features for which 
observations are available).

Request base on the OWS Common standard :
e.g. 
http://hostname/geoserver/ows?service=SOS&request=GetCapabilities&AcceptVersions=2.0.0

Response data type derives from OWS Common OWSServiceMetadata data type :
    - ServiceIdentification
    - ServiceProvider
    - OperationsMetadata
    - FilterCapabilities
    - Contents

Examples bundled in SOS 2.0 schema :
GetCapabilities request (SOAP binding) : 
http://schemas.opengis.net/sos/2.0/examples/core/GetCapabilities1.xml
GetCapabilities response (SOAP binding) : 
http://schemas.opengis.net/sos/2.0/examples/core/GetCapabilities1_response.xml



-------------------
(2) DescribeSensor
-------------------
Overview : The DescribeSensor operation returns a description of one specific 
sensor, sensor system or data producing procedure containing information like 
position of sensor, calibration, input- and outputs, etc. The response has to 
be either encoded in SensorML or in TML.


Request base on the OWS Common standard :

example 1 (with mandatory parameters ) :
http://hostname/geoserver/ows?service=SOS&version=2.0.0&request=DescribeSensor&procedure=urn:ogc:object:Sensor:MyOrg:thermometer1
&procedureDescriptionFormat=http://www.opengis.net/sensorML/1.0.1

example 2 (with both mandatory and optional parameter) :
http://hostname/geoserver/ows?service=SOS&version=2.0.0&request=DescribeSensor&procedure=urn:ogc:object:Sensor:MyOrg:thermometer1
&procedureDescriptionFormat=http://www.opengis.net/sensorML/1.0.1&validTime=2010-01-01T18:31:42Z

Examples bundled in SOS 2.0 schema :
DescribeSensor request : 
http://schemas.opengis.net/sos/2.0/examples/SOAP/DescribeSensor1_SOAP.xml


-------------------
(3) GetObservation
-------------------
Overview : The GetObservation operation returns a collection of observations. 
Each observation is composed of metadata, description of the phenomena being 
returned (parameter names, units of measure, reference systems) and values.  
The default and mandatory response format is base on O&M 2.0 specification.

Request base on the OWS Common standard :

example 1 (with mandatory parameters) :
http://hostname/geoserver/ows?service=SOS&version=2.0.0&request=GetObservation

example 2 (with both mandatory and optional parameters) :
http://hostname/geoserver/ows?service=SOS&version=2.0.0&request=GetObservation&offering=http://www.my_namespace.org/thermometer1_observations&observedProperty=http://sweet.jpl.nasa.gov/2.0/atmoThermo.owl#EffectiveTemperature&procedure=http://www.my_namespace.org/sensors/thermometer1&featureOfInterest=http://wfs.example.org?request=getFeature&featureid=building1&namespaces=xmlns(sams,http://www.opengis.net/samplingSpatial/2.0),xmlns(om,
http://www.opengis.net/om/2.0)&spatialFilter=om:featureOfInterest/*/sams:shape,22.32,11.2,32.32,22.2,urn:ogc:def:crs:EPSG::4326&temporalFilter=om:phenomenonTime,2009-01-10T10:00:00Z/2009-01-10T11:00:00Z


Examples bundled in SOS 2.0 schema :
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation1_obsProps.xml 
<http://schemas.opengis.net/sos/2.0/examples/core/GetObservation1_obsProps.xml>
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation1_obsProps_response.xml
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation2_obsProps_Procedure.xml
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation2_obsProps_Procedure_response.xml
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation3_foiIDFilter.xml
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation3_foiIDFilter_response.xml
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation4_spatialFilter.xml
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation4_spatialFilter_response.xml



==================
Filter Operations:
==================

Overview : The filter capabilities is imported from OGC 09-026r1/ISO 1914.  The 
minimum requirement stated in the SOS 2.0 specification:

Spatial Filter Opertor : BBOX
Temporal Filter : TEquals operator in conjunction with the TimeInstant type
                  During operator in conjunction with the TimePeriod type.

Example bundled in SOS 2.0 schema :
Spatial Filter : 
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation4_spatialFilter.xml
Temporatl Filter (TimeInstant) : 
http://schemas.opengis.net/sos/2.0/examples/core/GetObservation1_obsProps.xml



I hope the above SOS 2.0 specification overview is clear enough to provide some 
basic understanding of SOS 2.0 standard.  Do let me know if more information 
are needed.



Thanks & Regards,
Florence



________________________________

From: Justin Deoliveira [mailto:[email protected]]
Sent: Monday, 17 September 2012 11:30 PM
To: Chris Holmes
Cc: Tan, Florence (CESRE, Kensington); [email protected]; 
[email protected]; Mike Botts
Subject: Re: [Geoserver-devel] Sensor Observation Service (SOS) Implementation 
In GeoServer


Hi Florence,


As discussed in the meeting I don't think either Andrea or myself is up to 
speed on SOS so having a nice overview of the spec would be helpful. The same 
way Andrea did for CSW. With that we will be in a better situation to provide 
architectural guidance.


That said, the same approach taken for CSW might be nicely applied here as 
well. Essentially coming with a back end interface to encapsulate the core 
service implementation details behind. This way we don't necessarily have to 
tie things to a WFS / app-schema implementation, but can easily build one.


$0.02


-Justin


On Mon, Sep 17, 2012 at 6:30 AM, Chris Holmes <[email protected]> wrote:


        Another library you might refer to and potentially incorporate is 
https://code.google.com/p/ows-service-framework/

        Mike Botts, who lead spec development of SWE stuff, has been building 
up that library. And we've talked with him a few times about eventually 
incorporating it in to the GeoServer/GeoTools code base.

        Not sure if the code can be easily incorporated in its existing state, 
but it is license compatible, and at the very least could be inspiration.


        On Mon, Sep 17, 2012 at 5:45 AM, <[email protected]> wrote:


                                Hi Andrea and Justin,

                I will be working on SOS implementation in GeoServer in last 
quarter of this year and currently doing some scoping work and studying on 
GeoServer source code to see how I can implement it.  Have a chat with Ben just 
now and he pointed me to both of you and hope to get some pointers / helps from 
both of you on some of thougths I have on how to implement SOS in GeoServer.

                FYI, I have deployed a copy of 52NorthSOS in our test server 
that generate some time series observations information [1].  I found that the 
GetCapabilities and GetObservations output are very much similar to WFS 
GetCapabilities and GetObservations output.  e.g. The SOS observation output 
from SOS is basically a WFS output that wraps in a SOAP envelope body (correct 
me if I am wrong...).

                While studying the GetCapabilities implementation for WFS in 
GeoServer, I can see a lot of complex implementations including the use of 
Eclipse Modeling Framework in GeoTools to generate the WFS model (well, i don't 
fully understand the whole implementation yet... ).

                So, my thought would be since SOS output is just WFS output 
wraps in a SOAP envelope body and rather than creating from scratch a whole new 
service for SOS in GeoServer/GeoTools, we can make use of the existing WFS and 
App-Schema modules to generate a SOS output - making implementation simpler.  
Wonder if this is possible ?  And if possible, how do I achieve this - writing 
SOAP implementation in GeoServer ?


                [1] 
http://services-test.auscope.org/52nSOSv350/testClient-SOSv2.html


                Note :
                Eventhough I have few years GeoServer deployment experience but 
honestly speaking, I am still very new with GeoServer development and hoping to 
find some "mentors" or "sifus" who are willing to help or point me to the right 
direction with this SOS implementation in GeoServer project.


                Thanks & Regards,

                Florence Tan
                Research Projects Officer | ASRDC
                CSIRO Earth Science and Resource Engineering

                Phone: +61 8 6436 8802 <tel:%2B61%C2%A08%C2%A06436%C2%A08802>  
| Fax: +61 8 6436 8555
                [email protected] | www.csiro.au
                Address: Australian Resources Research Centre, 26 Dick Perry 
Avenue, Kensington WA 6151

                PLEASE NOTE
                The information contained in this email may be confidential or 
privileged. Any unauthorised use or disclosure is prohibited. If you have 
received this email in error, please delete it immediately and notify the 
sender by return email. Thank you. To the extent permitted by law, CSIRO does 
not represent, warrant and/or guarantee that the integrity of this 
communication has been maintained or that the communication is free of errors, 
virus, interception or interference.

                Please consider the environment before printing this email.



                
------------------------------------------------------------------------------
                Live Security Virtual Conference
                Exclusive live event will cover all the ways today's security 
and
                threat landscape has changed and how IT managers can respond. 
Discussions
                will include endpoint security, mobile security and the latest 
in malware
                threats. 
http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
                _______________________________________________
                Geoserver-devel mailing list
                [email protected]
                https://lists.sourceforge.net/lists/listinfo/geoserver-devel







--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to