|
The Sensor Observation Service (Na & Priest 2006 ) aggregates readings from live, in-situ and remote sensors. The service provides an interface to make sensors and sensor data archives accessible via an interoperable web based interface. Four profiles are defined within the SOS specification: core, transactional, enhanced, and entire. The current release (52N-SOS-3.0.0) implements the core profile comprising of the mandatory operations:
- GetCapabilities, for requesting a self-description of the service
- GetObservation, for requesting the pure sensor data encoded in Observation&Measurements (O&M )
- DescribeSensor, for requesting information about the sensor itself, encoded in a Sensor Model Language (SensorML ) instance document.
The transactional profile comprising of the following operations is implemented, too:
- RegisterSensor, for signing up new sensors
- InsertObservation, for inserting new observations for registered sensors
Additionally, the following operations are implemted:
- GetFeatureOfInterest, for requesting the GML encoded representation of the feature that is the target of the observation.
- GetResult, for periodically polling of sensor data
The current release implements the latest schema version (1.0.0).
DownloadReferences
- Open architecture for Smart and Interoperable networks in Risk management based on In-situ Sensors (OSIRIS)
OSIRIS is a Sixth Framework Programme Integrated Project co-funded by the European Commission. The project aims at defining, developing and testing services for monitoring and crisis management. Within OSIRIS a Service Oriented Architecture based on the OGC Sensor Web Enablement standards is specified and developed in order to provide functionality ranging from in-situ and earth observation services to user services.
Within the OSIRIS project, enhancements of the existing SOS specification and implementation are developed for improving the distribution of mobile captured sensor data. This implementation is used in a broad range of use cases ranging from forest fire fighting to water pollution monitoring. Through the University of Muenster, OSIRIS is actively contributing to the development and updates of a big part of the 52°North SWE software implementation.
- Advanced Fire Information System (AFIS 2.0)
The AFIS project of the Council for Scientific and Industrial Research (CSIR) in South Africa utilises satellite imagery to automatically detect bush fires. When a fire hotspot threats the population or the infrastructure a notification of the responsible persons takes place. The AFIS project is based on the web services of the SWE framework.
- SWE based client for the analysis of hydrological time series (more information)
In context of this project a system has been developed which provides access and allows the visualization of time series of sensor data. In the first instance this system is applied to sensor data captured by weather stations or water gauges which are operated by the Wupperverband.
- Sensors: Data sources for the Netherlands Geo Information Infrastructure within the framework of the Netherlands "Ruimte voor Geo-Informatie" (RGI-189)
- Open Web Services Testbed Phase 4 (OWS4 )
- Open Web Services Testbed Phase 5 (OWS5)
Installation instructionshttp://52north.org/joomla/images/stories/52n/communities/swe/how2install_SOS-3.00.00.pdf User instructionshttp://52north.org/joomla/images/stories/52n/communities/swe/how2install_SOS-3.00.00.pdf Context
Dependencies
The SOS implementation depends upon the following libraries:
- xbean.jar XML Beans 2.2.0 by The Apache Software Foundation: All software produced by The Apache Software Foundation or any of its projects or subjects is licensed according to the terms of the documents listed below. Apache License, Version 2.0 (current) (TXT or HTML) All packages produced by the ASF are implicitly licensed under the Apache License, Version 2.0, unless otherwise explicitly stated.
- servlet-api.jar Java API for Servlets, by The Apache Software Foundation: q.v. 7)
- jsr173_api.jar by The Apache Software Foundation: q.v. 7)
- postgis_1.1.6.jar PostGIS, developed by Refractions Research, released under the GNU General Public License.
- postgresql-8.1-405.jdbc3.jar PostgreSQL, distributed under the classic BSD license.
- jts-1.8.jar Java Topology Suite by Vivid Solutions, distributed under LGPL
In addition the implementation depends upon further jar-files, which where compiled from the XML schemas using XML Beans:
- foi.jar created with XML Beans, q.v. 7)
- listener.jar created with XML Beans, q.v. 7)
- om.jar created with XML Beans, q.v. 7)
- owsExceptionReport.jar created with XML Beans, q.v. 7)
- proc_foi.jar created with XML Beans, q.v. 7)
- sosAll.jar created with XML Beans, q.v. 7)
Design documentation
The design of the 52°North Sensor Observation Service is based on a 4-tier web architecture as shown in the figure below.
The lowest layer encapsulates the access of databases and/or -sources. The sources of sensor data are very heterogeneous and range from simple text files to very complex data models. To enable the user to use different data sources, the data access for each operation is implemented using the Data Access Object (DAO) pattern. This enables the user to easily adjust the 52north SOS to already existing sensor databases or -sources through a new or changed implementation of the DAO implementations. By default the 52°North SOS uses as PostGIS database to store the observation values and corresponding meta data.
The central component of the Buiness Logic Layer is the RequestOperator. It receives requests from the Presentation Layer, validates the request and forwards the request to the appropriate OperationListener. The 52north SOS contains Listeners for each supported operation, which are defined in an external config file. All Listeners implement a common interface. If you want to support an additional operation, all you have to do is to implement the Operation Listener, implement the corresponding DAO and add the Listener in the config file. The Business Logic Tier contains several other components, e.g. components for parsing/encoding responses.
The Presentation Layer of the 52north SOS consists simply of a Servlet, which handles HTTP requests and responses. If you want to support other protocols, you have to replace this Servlet with another class for communication.
There are multiple clients, which can use the data of the 52°North SOS. Based upon the 52°North OX-Framework both thin clients and thick clients could be developed for your sensor application. Also other web services like the OGC Web Processing Services could use the provided data of the 52°North SOS.
Javadochttp://mars.uni-muenster.de/SOS/javadoc/index.html Source control accessSVN: https://52north.org/cgi-bin/viewvc.cgi/main/SOS/Service/?root=swe
Bugzilla
Version3.00.00 Project StatusStable Version Faq
- The SOS returns an ExceptionResponse with message "org.apache.xmlbeans.XmlException: error: Unexpected element: CDATA", when I try to send a request from my Java Program to the SOS. How could this be solved?
Make sure, that you are using "UTF-8" Encoding. If this is correct and the answer again is an ExceptionResponse, you can set the log level of the SOS on "Debug" and check, whether the POST request is decoded correctly in the SOS. The easiest way to load an XML request from a file and send it to the SOS, is to make use of the IOHelper contained in the 52°North OX-Framework. This class offers methods for reading textfiles into String representations and for sending HTTP Post messages.
- How can I change the Log Level of the SOS without redeploying the SOS?
Navigate to [pathTo]\Tomcat 5.5\webapps\SOSv3\WEB-INF\classes and open the file log4j.properties. Change the first property of log4j.rootLogger to the Log Level you prefer. (e.g. log4j.rootLogger=DEBUG, MyConsoleAppender, MyRoFiAppender). Reload the application using the Tomcat manager interface.
Programmers
Alexander C. Walkowski
Stefan Künster
Stacey Roos
Christoph Stasch
Contact
Alexander C. Walkowski (walkowski@52north.org)
Christoph Stasch (stasch@52north.org)
Responsible partyAlexander C. Walkowski (walkowski@52north.org)
|