Sensor Observation Servcie (SOS) is an Open Geospatial Consortium (OGC) approved standard (in version 1 and 2) that is part of the Sensor Web Enablement (SWE) initiative.
The OGC Sensor Web Enablement (SWE) working group was established to provide a first definition of the system that is able to enable the development of the Sensor Web idea by identifying the technology, the language syntax and the architecture to be used.
As part of the SWE, the Sensor Observation Service standard defines the interface to interact with sensor observations: from sensors exploration to measures retrieval and data management throughout transactional operations. It worth noting that this description refers to SOS in version 1; the version 2 of the standard was recently approved at the time of writing and introduces some minor changes.
Like most of the OGC standards, the SOS service is based on the exchange of standard messages (requests and responses) between the service and the consumer by using the HTTP protocol. The requests are sent to the service through an HTTP POST (in this case an XML file formatted according to the specification is submitted) or an HTTP GET method (in this case a KVP, key-value-pairs, is submitted) specifying the request type and the relative permitted parameters. The service responses are always XML file compliant with the specifications. According to the OGC specification a SOS version 1.0 service must implement at minimum the three mandatory requests of the SOS core profile, while other operations of the transactional profile and of the enhanced profile are optional (see next Table-1).
SOS request | Profile | Mandatory | Short description |
---|---|---|---|
GetCapabilities | Core | Yes | Allow to describe the service providing information on administrator, offered capabilities, observed property and features, etc.. |
DescribeSensor | Core | Yes | It provides a potentially detailed description of a given registered component, system or process in SensorML format |
GetObservation | Core | Yes | It provides observations based on the setting of filters that includes timing, processes, phenomena, feature of interest, and other parameters in O&M model |
RegisterSensor | Transactional | No | It provides capability to automatically register a new sensor to the existing service |
InsertObservation | Transactional | No | It provides capability to dynamically insert new observation(s) related to a registered sensor |
GetFeatureOfInterest | Enhanced | No | It provides requested feature of interest in GML format |
GetResult | Enhanced | No | It provides a light way to request observation without provide full request every time |
GetObservationByID | Enhanced | No | It provides a quick access to observation by identification number |
GetFeatureOfInterestTime | Enhanced | No | It provides the time interval when a given feature of interest has been observed |
DescribeFeatureType | Enhanced | No | It provides the schema used to represent the features of interest |
DescribeObservationType | Enhanced | No | It provides the schema used to represent the Observations |
DescribeResultModel | Enhanced | No | It provides the schema used to represent the result object within the sml:observation |
Table-1: SOS requests for a list of SOS request and relative short description
Two typical SOS UML sequence diagrams respectively from a data consumer and data producer perspective are presented in Figure-1.