Increased support for Sensor Web standards
With the advent of low-cost, low-bandwidth and low-power IoT sensors, new requirements for data handling have arisen. The OGC SensorThings API (STA) was developed to accompany those new requirements and integrate those new sensors into the Sensor Web. It “[…] provides an open, geospatial-enabled and unified way to interconnect the Internet of Things (IoT) devices, data, and applications over the Web” (Preface to the OGC SensorThings API Part 1: Sensing). The main focus of this development is to find a solution for the heavy restraints on available resources. The STA therefore defines a lightweight REST-API, as well as an MQTT binding for easy retrieval and storage of Sensor Data with a minimal overhead. The “SensorThings API Part 1: Sensing” was officially adopted as an OGC Standard in late 2016, the “SensorThings API Part 2: Tasking” is currently under development.
The 52°North Implementation of the STA aims to increase the support of Sensor Web Standards by offering support for a new specification, which currently gains increasing attention. We believe this broad support of the different standards can enhance the overall experience. The advantages of each standard can be used where they are useful. The STA Implementation is largely based on the existing Sensor Web Data Model used by the 52N Sensor Observation Service (SOS) Implementation and the 52N Sensor Web Rest-API. All components specific to STA are handled as an extension of this shared data model. This modular design allows access to the same data (e.g. Observations) using multiple different Sensor Web Interfaces, e.g. receiving new data from small sensors via the new lightweight 52N SensorThingsAPI, and later on retrieving the same data via the 52N SOS.
The Implementation is built using Spring Boot and a customized version of the popular OData-Framework Apache Olingo v4. For data storage, we use the Hibernate ORM Framework to support multiple database systems, as well as custom database mappings. The 52N STA can operate either as a stand alone application or be bundled with other 52N Sensor Web Applications.
Current Status & Future Work
The 52°North STA Implementation has successfully passed all three base levels provided by the official test suite. These base levels include the retrieval of Data via the REST binding, basic REST-based CRUD operations, and various querying and filtering operators.
Next steps at 52°North will include further implementation of the standard, e.g. support for the MQTT Protocol and Batch Processing for bulk CRUD operations, as well as further enhancing interoperability between the 52N Sensor Web components.
The code can be found on GitHub.