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.
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.
See the wiki for longer installation instructions.
To compile FROST-Server you need to have a JDK and Maven installed.
- Checkout the project from github:
git clone https://github.com/FraunhoferIOSB/FROST-Server.git
- Go to the project root (The top-most directory with a pom.xml)
cd FROST-Server
- 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/
Instead of compiling the server yourself, you can also download pre-built war and jar files from:
Or you can use Docker.
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.
See docs/postgresql.adoc for an overview on how to configure PostgreSQL and Tomcat/Wildfly.
See docs/settings.adoc for an overview of all the the configuration settings.
See docs/docker.adoc for how to use the FROST-Server docker images.
See helm/frost-server/README.md for how to use the FROST-Server Helm chart for a Kubernetes deployment.
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.
Hylke van der Schaaf [email protected]
Michael Jacoby [email protected]
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/.