Skip to content

Framework for developing OGC services, clients and middleware

License

Notifications You must be signed in to change notification settings

52North/arctic-sea

Repository files navigation

Arctic Sea

Build Status Maven Central Join the chat at https://gitter.im/52North/arctic-sea CodeAQL analysis Open Source

Description

52°North's backbone for OGC services, Clients and Middleware

A framework for developing OGC services, clients and middleware sharing concepts for encoding and decoding of different formats and encodings, workflows and configuration.

Arctic Sea is a stack of projects that eases the development of OGC related services such as the 52°North implementation of the OGC SOS and WPS, as well as clients and middleware. It compromises the following modules.

Overview

Iceland Maven Central

Iceland is a service framework that enables the development of OGC RPC (remote procedure call) based services. It features bindings for KVP, POX, SOAP, as well as JSON-based bindings. Iceland facilitates the rapid development of modular services that use Faroe for easy configuration and Svalbard for request parsing and response generation.

Svalbard Maven Central

Svalbard consists of various decoders and encoders for OGC models (e.g. SensorML, O&M and SWE Common, service interfaces (like SOS and WPS) and a framework for developing these. This enables the creation of decoupled and reusable encoders and decoders for various encodings (e.g. XML, JSON or NetCDF). The object models used are found in 52°North Shetland and are shared across 52°North components.

Faroe Maven Central

Faroe is a configuration API currently featuring a JSON and a SQLite backend. It enables the injection and automatic configuration of settings of various types in classes, including a Spring BeanPostprocessor.

Shetland Maven Central

Shetland consists of classes for OGC models like SensorML, O&M and SWE Common and various service requests and responses. These are shared across different service implementations.

Jan Mayen Maven Central

Jan Mayen contains various utility classes shared throughout Arctic Sea.

Bjørnøya (Bjornoya) Maven Central

Bjørnøya contains various classes for [Quartz] scheduling shared across Arctic Sea. These include configurations to define the execution of jobs.

Key Technologies

  • OGC Web Services
  • OGC Web Processing Service (WPS)
  • OGC Sensor Observation Service (SOS)
  • OGC SWE Common
  • OGC SensorML
  • OGC Observation and Measurement (O&M)
  • Spring
  • Java
  • XML

Benefits

  • The middleware component provides a robust layer to easily create web services compliant to OGC standards.
  • The configuration API enables harmonized management of service properties.
  • Centralized XML encoding and decoding reduces increases stability.

License

All components are licensed under the Apache License 2.0.

Changelog

... can be found on the release page.

Quick Start

All projects are available on Maven Central.

<properties>
  <version.arctic-sea>10.1.0</version.arctic-sea>
</properties>
<dependencies>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>bjornoya</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>faroe</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>faroe-annotations</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>faroe-json</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>faroe-utils</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>iceland</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>iceland-statistics</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>iceland-statistics-generator</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>iceland-statistics-geolocation</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>iceland-statistics-kibana</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>janmayen</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>shetland</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>shetland-rdf</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>shetland-arcgis</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>svalbard</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>svalbard-exi</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>svalbard-json</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>svalbard-json-common</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>svalbard-odata</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>svalbard-xmlbeans</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
  <dependency>
    <groupId>org.n52.arctic-sea</groupId>
    <artifactId>svalbard-xmlstream</artifactId>
    <version>${version.arctic-sea}</version>
  </dependency>
</dependencies>

For convenience the 52°North Maven parent can be used:

<parent>
    <groupId>org.n52</groupId>
    <artifactId>parent</artifactId>
    <version>27</version>
</parent>

Development versions can be optained from the Sonatype OSS snapshot repository:

<repositories>
  <repository>
    <id>sonatype-nexus-snapshots</id>
    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
  </repository>
</repositories>
<properties>
  <version.arctic-sea>8.2.0-SNAPSHOT</version.arctic-sea>
</properties>

For details on how to use the components, consult their respective documentation.

Contact

If you encounter any issues with the software or if you would like to see certain functionality added, let us know:

Support

You can get support in the community mailing list.

Contribute

Are you interested in contributing to the 52°North Arctic Sea and you would like to pull your changes to the 52N repository to have them available to all?

In that case we need your official permission and for this purpose we have a so-called contributors license agreement (CLA) in place. With this agreement you grant us the rights to use and publish your code under an open source license.

A link to the contributors license agreement and further explanations are available here.

References

The development of the 52°North Arctic Sea implementation was supported by several organizations and projects. Among other we would like to thank the following organizations and project

Project/Logo Description
Cos4Cloud The development of this version of 52°North Arctic Sea was supported by the Horizon 2020 research project Cos4Cloud (co-funded by the European Commission under the grant agreement no. 863463)
BMBFTaMIS The development of this version 52°North Arctic Sea was supported by the German Federal Ministry of Education and Research research project TaMIS (co-funded by the German Federal Ministry of Education and Research, programme Geotechnologien, under grant agreement no. 03G0854)
JERICO-S3 The development of this version of 52°North Arctic Sea was supported by the Horizon 2020 research project JERICO-S3 (co-funded by the European Commission under the grant agreement no. 871153)
NeXOS The development of this version of 52°North Arctic Sea was supported by the European FP7 research project NeXOS (co-funded by the European Commission under the grant agreement no. 614102)
BMBFCOLABIS The development of this version 52°North Arctic Sea was supported by the German Federal Ministry of Education and Research research project COLABIS (co-funded by the German Federal Ministry of Education and Research, programme Geotechnologien, under grant agreement no. 03G0852A)
SeaDataCloud The development of this version of 52°North Arctic Sea was supported by the Horizon 2020 research project SeaDataCloud (co-funded by the European Commission under the grant agreement no. 730960)
ODIP II The development of this version of 52°North Arctic Sea was supported by the Horizon 2020 research project ODIP II (co-funded by the European Commission under the grant agreement no. 654310)
ConnectinGEO The development of this version of 52°North Arctic Sea was supported by the Horizon 2020 research project ConnectinGEO (co-funded by the European Commission under the grant agreement no. 641538)
GeoViQua The development of this version of 52°North Arctic Sea was supported by the European FP7 research project GeoViQua (co-funded by the European Commission under the grant agreement no. 265178)
BMVImFundWaCoDis The development of this version of 52°North Arctic Sea was supported by the German Federal Ministry of of Transport and Digital Infrastructure research project WaCoDis (co-funded by the German Federal Ministry of Transport and Digital Infrastructure, programme mFund)
BMBFfonaMuDak-WRM The development of this version of 52°North Arctic Sea was supported by the German Federal Ministry of Education and Research research project MuDak-WRM (co-funded by the German Federal Ministry of Education and Research, programme fona)
BRIDGES The development of this version of the 52°North Arctic Sea was supported by the Horizon 2020 research project BRIDGES (co-funded by the European Commission under the grant agreement no. 635359)