52°North SOS for My Data and as a Proxy Increasing your data’s interoperability with an OGC standard conform open source Sensor Observation Service Simon Jirka & Daniel Nüst 52°North GmbH
Jun 27, 2015
52°North SOS for My Data andas a Proxy
Increasing your data’s interoperability with an OGC standard conform open source Sensor Observation Service
Simon Jirka & Daniel Nüst52°North GmbH
SOS Data Access Patterns
Contents
How can you publish existing sensor data with a standard conform OGC Sensor Observation Service (SOS) using the 52°North SOS open source software?
SOS Data Access Patterns
SOS Application PatternsStandalone SOS
– Import data via feeding• Transactional interface (e.g. with SOS Importer:
https://wiki.52north.org/bin/view/SensorWeb/SosImporter)• Insertion to database (install clean SOS, complex schema to follow)
– Sensors support SWE (Sensor Bus, InsertResult, SIDs)
SOS as a Proxy– Connect to an existing (proprietary) database, web
service interface, …– Existing sensor network (legacy hardware/software)– SOS = Interoperability Layer
Disadvantage: Dual data storage if database already exists online.
SOS Data Access Patterns
SOS 3.5
Java Implementation
Current stable development version
Code: https://svn.52north.org/cgi-bin/viewvc.cgi/main/SOS/Service/trunk/SOS/52n-sos/?root=sensorweb
DAO Pattern• Data Access Objects (J2EE)• Database/data source/persistence abstraction layer
(service interface)
Integrate your data!
SOS Data Access Patterns
DAO Advantages
Separation of Concerns– Independent development of components– Encapsulation (of changes)– Reusability– Single point of change for Object < >
Database data exchange
SOS Data Access Patterns
DAO Implementation
Interfaces– 52n-sos-core > org.n52.sos.ds
PostgreSQL/PostGIS Implementation– 52n-sos-dao-postgis
Configuration– 52n-sos > build.properties
• 52n-sos-service > pom.xml, sos.config
Code: https://svn.52north.org/svn/swe/main/SOS/Service/trunk/SOS/52n-sos
Your code entry points!
SOS Data Access Patterns
DAO Interfaces
Interfaces to be implemented depend on use case.
SOS Data Access Patterns
DAO Configuration
Set your factory implementation in the build.properites file and add the combiled class to the build path (e.g. WEB-INF\lib directory.
SOS Data Access Patterns
DAO Implementation Example: PostGIS
SOS Data Access Patterns
DAO Implementation: SOAP Service
BAW – SOS
PegelOnline SOAP Servicehttp://www.pegelonline.wsv.de/webservice/ueberblick
Code: https://svn.52north.org/svn/swe/main/SOS/Extensions/BAW/
Documentation (recommended): https://svn.52north.org/svn/swe/main/SOS/Extensions/BAW/trunk/PegelOnlineSOS/doc/howto/PegelOnline_SOS%20Installation.pdf
SOS Data Access Patterns
SOAP Service (cont.)
52n-sos-dao-pegelonline
SOS Data Access Patterns
SOS 4.0
Current development version, uses
Hibernate
Much more modularized and flexible– 52n-sos-api– 52n-sos-hibernate-{core, enhanced, resultHandling, transactional}
– Based on Service Loaderhttp://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html
Code: https://svn.52north.org/svn/swe/main/SOS/Service/branches/52n-sos-400-refactored/
Your code entry points!
SOS Data Access Patterns
SOS 4.0 Implementation
SOS Data Access Patterns
SOS 4.0 Implementation (cont.)
SOS Data Access Patterns
More information:
http://52north.org/sensorweb