A Server implementation of the OGC SensorThings API
Clone or download
Permalink
Failed to load latest commit information.
FROST-Server.Core Fixed javadoc generation Oct 9, 2018
FROST-Server.HTTP Added git information to build artifacts Oct 9, 2018
FROST-Server.MQTT.Moquette [maven-release-plugin] prepare for next development iteration Aug 24, 2018
FROST-Server.MQTT Added git information to build artifacts Oct 9, 2018
FROST-Server.MQTTP Added git information to build artifacts Oct 9, 2018
FROST-Server.SQL.PGLong Retry db update if necessary. Sep 6, 2018
FROST-Server.SQL.PGString Retry db update if necessary. Sep 6, 2018
FROST-Server.SQL.PGUuid Retry db update if necessary. Sep 6, 2018
FROST-Server.SQL [maven-release-plugin] prepare for next development iteration Aug 24, 2018
docs Merge branch 'master' of github.com:FraunhoferIOSB/FROST-Server Aug 24, 2018
helm [HELM] fixed usage of urlSubPath variable Oct 8, 2018
images Added first architecture doc. Apr 16, 2018
.gitignore Created HTTP+MQTT package: FROST-Server.MQTTP and removed MQTT from F… Apr 11, 2018
.travis.yml Always run deploy stage Aug 24, 2018
CHANGELOG.md Allow changing Thing.Locations without generating a HistoricalLocation. Aug 28, 2018
LICENSE Initial commit Jul 15, 2016
README.md Prepare for release. Aug 24, 2018
docker-compose-separated.yaml Added option to automatically run the liquibase database upgrade. Aug 24, 2018
docker-compose.yaml Added option to automatically run the liquibase database upgrade. Aug 24, 2018
nb-configuration.xml * Implemented duration and interval calcuations. Jul 28, 2016
pom.xml [maven-release-plugin] prepare for next development iteration Aug 24, 2018
run.sh worked on Docker support Aug 10, 2017
travis-deploy.sh Fixed travis-deploy.sh Aug 15, 2018
travis-settings.xml Updated docker build process Feb 7, 2018

README.md

FROST-Server Build Status

FROST-Server Logo

A Server implementation of the OGC SensorThings API. The FRaunhofer Opensource SensorThings-Server is the first complete, open-source implementation of the OGC SensorThings API Part 1: Sensing.

Compliance Testing Status:

Conformance Class Reference Implemented Test Status
Sensing Core A.1 Yes 6 / 6
Filtering Extension A.2 Yes 42 / 42
Create-Update-Delete A.3 Yes 14 / 14
Batch Request A.4 Yes 0 / 0
Sensing MultiDatastream Extension A.5 Yes 18 / 18
Sensing Data Array Extension A.6 Yes 3 / 3
MQTT Extension for Create and Update A.7 Yes 4 / 4
MQTT Extension for Receiving Updates A.8 Yes 13 / 13

We have extended the official test suit with extra tests that can be found here. The official test suit is fully passed. See the wiki page features for more details.

Compiling

See the wiki for longer installation instructions.

To compile FROST-Server you need to have a JDK and Maven installed.

  1. Checkout the project from github: git clone https://github.com/FraunhoferIOSB/FROST-Server.git
  2. Go to the project root (The top-most directory with a pom.xml) cd FROST-Server
  3. Give the command mvn clean install. This should build the war and jar files in:
  • FROST-Server.MQTTP/target/
  • FROST-Server.HTTP/target/
  • FROST-Server.MQTT/target/

Downloading

Instead of compiling the server yourself, you can also download pre-built war and jar files from:

Or you can use Docker.

Package Choice

There are three packages for FROST-Server. You only need either the MQTTP (all-in-one) package, or the HTTP and MQTT packages.

  • For small servers, or for testing purposes the MQTTP package is fine. It contains both the HTTP and MQTT interfaces.
  • If you only need the HTTP interface and are not interested in MQTT, you can use just the HTTP package.
  • If you need horizontal scalability you want the separate HTTP and MQTT packages. In this case you also need a separate message bus in your cluster, for internal communication. Though if you need scalability you are probably using Docker. See below for Docker and Helm support.

See docs/architecture-packages.adoc for an overview of the differences.

Database setup

See docs/postgresql.adoc for an overview on how to configure PostgreSQL and Tomcat/Wildfly.

Configuration options

See docs/settings.adoc for an overview of all the the configuration settings.

Docker support

See docs/docker.adoc for how to use the FROST-Server docker images.

Kubernetes (Helm) support

See helm/frost-server/README.md for how to use the FROST-Server Helm chart for a Kubernetes deployment.

Standalone Spring Boot

If you prefer to not use Tomcat, Kinota Server is a Spring Boot application that makes it easy to run Fraunhofer IOSB FROST-Server in cloud environments.

Authors

Hylke van der Schaaf hylke.vanderschaaf@iosb.fraunhofer.de

Michael Jacoby michael.jacoby@iosb.fraunhofer.de

License

Copyright (C) 2016 Fraunhofer Institut IOSB, Fraunhoferstr. 1, D 76131 Karlsruhe, Germany.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.