Alzona, Marcus (Alzona, Marcus)
van der Schaaf, Hylke (Fraunhofer-Gesellschaft)
Liang, Steve (University of Calgary)
The OGC SensorThings API (former SWE for IoT) provides an open and unified way to interconnect the Internet of Things devices, data, and applications over the Web. The OGC SensorThings API is an open standard, and that means it is non-proprietary, platform-independent, and perpetual royalty-free. Although it is a new standard, it builds on a rich set of proven-working and widely-adopted open standards, such as the Web protocols and the OGC Sensor Web Enablement (SWE) standards, including the ISO/OGC Observation and Measurement data model. That also means the OGC SensorThings API is extensible and can be applied to not only simple but also complex use cases. You can find detailed introductions on the official OGC SensorThings GitHub page or the SensorThings Wikipedia entry.
At a high level the OGC SensorThings API provides two main functionalities and each function is handled by a profile. The two profiles are the Sensing Profile and the Tasking Profile. The Sensing Profile (Part I) provides a standard way to manage and retrieve observations and metadata from heterogeneous IoT sensor systems. The Tasking Profile (in progress) provides a standard way for parameterizing - also called tasking - of task-able IoT devices, such as sensors or actuators.
The Sensing Profile (Part I) provides the functions similar to the OGC Sensor Observation Service and the Tasking Profile (currently in progress) provides the functions similar to the OGC Sensor Planning Service. The main difference between the SensorThings API and OGC SOS and SPS is that the SensorThings API is designed specifically for the resource-constrained IoT devices and the Web developers. As a result the SensorThings API adopts the REST principle, the efficient JSON encoding, and the flexible OData protocol and URL conventions. The following UML diagram shows the entities of the SensorThings API.
Benefits of the OGC SensorThings API
In today’s world, most IoT devices (e.g., sensors) have proprietary software interfaces defined by their manufacturers and used selectively. New APIs are requested and developed on an as needed basis, considering resource limitations and risks. This situation requires significant investment on the part of developers with each new sensor or project involving multiple systems and on the part of the providers of sensors, gateways and portals or services where observations are used.
The OGC SensorThings API, a standardized data model and interface for sensors in the WoT and IoT, offers the following benefits:(1) it permits the proliferation of new high value services with lower overhead of development and wider reach, (2) it lowers the risks, time and cost across a full IoT product cycle, and (3) it simplify the connections between devices-to-devices and devices-to-applications.
Who should use the OGC SensorThings API
The OGC SensorThings API simplifies and accelerates the development of IoT applications. Application developers can connect to various IoT devices and create innovative applications without worrying the daunting heterogeneous protocols of the different IoT devices, gateways and services. IoT device and system manufacturers can also use OGC SensorThings API as it be embedded within various IoT hardware and software platforms, so that the various IoT devices can effortlessly connect with the OGC standard-compliant servers around the world. In summary, the OGC SensorThings API is transforming the numerous disjointed IoT systems into a fully connected platform where complex tasks can be synchronized and performed.
We are on GitHub
SensorThings API draft, a testing server, interactive SDKs, tutorials, and more are on GitHub. Please visit OGC's SensorThings API GitHub page if you want to learn more.
Interested in having your organization participate and benefit from the SensorThings SWG? Join OGC.