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
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 Patterns
Standalone 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

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)
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




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-INFlib
directory.




 SOS Data Access Patterns
DAO Implementation Example: PostGIS




SOS Data Access Patterns
DAO Implementation: SOAP Service

 BAW – SOS

 PegelOnline SOAP Service
           http://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/P
 egelOnlineSOS/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 Loader
         http://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/

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

            s.jirka@52north.org
            d.nuest@52north.org




SOS Data Access Patterns

OGC SOS for Your Data

  • 1.
    52°North SOS forMy 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
  • 2.
    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
  • 3.
    SOS Application Patterns StandaloneSOS – 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 SOS Data Access Patterns
  • 4.
    SOS 3.5 JavaImplementation 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) SOS Data Access Patterns
  • 5.
    DAO Advantages Separationof Concerns – Independent development of components – Encapsulation (of changes) – Reusability – Single point of change for Object < > Database data exchange SOS Data Access Patterns
  • 6.
    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 SOS Data Access Patterns
  • 7.
    DAO Interfaces Interfaces to be implemented depend on use case. SOS Data Access Patterns
  • 8.
    DAO Configuration Set yourfactory implementation in the build.properites file and add the combiled class to the build path (e.g. WEB-INFlib directory. SOS Data Access Patterns
  • 9.
    DAO Implementation Example:PostGIS SOS Data Access Patterns
  • 10.
    DAO Implementation: SOAPService BAW – SOS PegelOnline SOAP Service http://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/P egelOnlineSOS/doc/howto/PegelOnline_SOS%20Installation.pdf SOS Data Access Patterns
  • 11.
    SOAP Service (cont.) 52n-sos-dao-pegelonline SOS Data Access Patterns
  • 12.
    SOS 4.0 Currentdevelopment version, uses Hibernate Much more modularized and flexible – 52n-sos-api – 52n-sos-hibernate-{core, enhanced, resultHandling, transactional} – Based on Service Loader http://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/ SOS Data Access Patterns
  • 13.
    SOS 4.0 Implementation SOSData Access Patterns
  • 14.
    SOS 4.0 Implementation(cont.) SOS Data Access Patterns
  • 15.
    More information: http://52north.org/sensorweb s.jirka@52north.org d.nuest@52north.org SOS Data Access Patterns