Sensor Observation Service (SOS) - Transactional profile

Description of implementation of transactional profile

The transactional profile should enable data producers to register new sensors to the SOS using the RegisterSensor operation and afterwards to insert new observations using the InsertObservation operation. Both operations are very generic due to the reason that the RegisterSensor operation request contains a SensorML description as parameter and the InsertObservation operation request needs a om:Observation as parameter. We have decided to use the SensorML System as description parameter in the RegisterSensor request and the om:Measurement as Observation parameter for the InsertObservation requests. So numeric values for singular phenomena could be inserted into the 52°North SOS implementation. Currently we also support om:CategoryObservation for text values, om:GeometryObservation for spatial values (coordinates) and om:Observation for inserting more than one value in an InsertObservations request as Observation parameter. If you want to support more functionality, you have to extend the implementation.

Example usage of 52°North transactional profile

This example contains and explains two example requests for the RegisterSensor and InsertObservation operation. To use this example, you have to build the table structure of the default 52°North SOS database. It is no lonager required to execute the test.sql script to insert test because all data can now be inserted by the RegisterSensor operation. Note that generally necessary phenomena and procedure have to be inserted in the SOS before inserting observation for these phenomena and procedures.

Register a new sensor

Before inserting observations generated from a certain sensor, you have to make sure, that this sensor is already registered at the SOS. If not, you have to register this sensor through sending a RegisterSensor request, which should look like the request contained in the file RegisterSensor.xml.

This request contains the following parameters:
  • sml:System as SensorDescription parameter. Information about the sensor, phenomena and offerings is parsed from the sml:System. The sml:System is also used to get information about the phenomena, for which the sensor produces values. These are parsed from the sml:outputList of the sml:components element. To enable also the insertion of offerings into the SOS, we nested the offering information into each output, which means, that the phenomenon defined in the output should belong to the nested offering. It should look like this: <gml:metaDataProperty><offering><id>offeringID</id><name>OfferingName</name></offering></gml:metaDataProperty>. If this offerings is not contained in the SOS, when the sensor should be registered, the offering is inserted into the database of the SOS. If the sensor is already registered an ows:ExceptionReport is returned.
  • ObservationTemplate parameter must be one of the following observation types. If the ObservationTemplate contains a not supported observation type, an ows:ExceptionReport is returned. Note that new features (at the moment just sa:SamplingPoint and sa:SamplingSurface) could be inserted by nesting these features in the om:featureOfInterest element.
    • om:Measurement for inserting numeric values.
    • om:CategoryObservation for inserting text values.
    • om:GeometryObservation for inserting spatial values (coordinates).
    • om:Observation for inserting more than one value in an InsertObservation. Numeric, text and spatial values are possible.

If no error occurrs, the response should contain the assigned sensor id.

Insert new observations

An example of an InsertObservation request could be found in the file InsertObservation.xml.

This request contains the following parameters:
  • AssignedSensorID should contain the id of the sensor, which has produced the measurement to insert.
  • Observation parameter must be one of the following observation types. Note that at the moment the featureOfInterest also has to be already contained in the SOS. Therefore the gml:id of the featureOfInterest is parsed and checked.
    • om:Measurement for inserting numeric values.
    • om:CategoryObservation for inserting text values.
    • om:GeometryObservation for inserting spatial values (coordinates).
    • om:Observation for inserting more than one value in an InsertObservation. Numeric, text and spatial values are possible.

If no error occurrs, the response should contain the assigned id of the observation in SOS.

More example request can be found here: https://svn.52north.org/svn/swe/main/SOS/Service/trunk/SOS/52n-sos/52n-sos-service/src/main/webapp/examples/requests/
or in the testClient of the example SOS here: http://giv-sos.uni-muenster.de:8080/52nSOSv3/

-- ChristophStasch - 12 Apr 2008 -- ThomasRemmersmann - 08 Apr 2008
Topic attachments
I Attachment Action Size Date Who Comment
InsertObservation.xmlxml InsertObservation.xml manage 1 K 09 Apr 2008 - 20:54 UnknownUser Example request for InsertObservation request
RegisterSensor.xmlxml RegisterSensor.xml manage 16 K 09 Apr 2008 - 20:55 UnknownUser Example file for a RegisterSensor request
Topic revision: r7 - 09 Jun 2010, CarstenHollmann
Legal Notice | Privacy Statement


This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki? Send feedback