Semantic Interoperability of IoT Data Streams: In the previous chapter of the IoT tutorial we introduced the concept of IoT and cloud computing convergence, while presenting concrete examples of IoT/cloud infrastructures, such as popular public IoT clouds (Xively.com, Thingspeak.com). These infrastructures enable the integration of IoT data streams from different producers/providers within the very same cloud. Indeed, within an IoT cloud infrastructure, multiple IoT applications can be developed and deployed independently. Nevertheless, in most cases there is no easy way to combine data and services from diverse IoT deployments, even in cases where these deployments concern similar or even the same application domain. Consider for example two independent IoT smart energy deployments integrated in the same cloud. Even though it is very likely that their data are similar, there is no easy way to combine them in the scope of a new added-value application e.g., an application calculating the environmental performance or energy saving gains achieved based on both deployments.
This difficulty is due to the heterogeneity of the data formats of the two deployments, but mainly due to their diverse semantics as well. Indeed, data stemming from the two deployments are likely to present their data based on different semantic representations. The latter semantic representations refer to the representation of IoT resources, including units of measurement, mathematical constructs, sensor types and properties and more. This is a serious limitation of existing public IoT clouds, which are limited to supporting vertical silo applications and provide no support for more integrated horizontal applications, notably applications able to combine IoT data and services from multiple IoT deployments.
However, there are semantic web standards (such as ontologies) that provide models for the semantic unification of diverse data streams, thus providing a uniform way for representing them and reasoning over them. Such ontologies provide the means for semantic interoperability of heterogeneous IoT streams at the data level, including data streams that are integrated and stored within the same cloud infrastructure. Hence, a first step to semantic interoperability at the data level is to semantically annotate data streams prior to their streaming and integration within the cloud. This semantic annotation is prescribed by recent initiatives on IoT/cloud semantic interoperability (such as the open source OpenIoT project) and by semantic interoperability efforts within IoT standards (such as the oneM2M standard (http://onem2m.org/)).
Following the semantic annotation of the different IoT data sources/streams, their data and metadata comply with the same semantic model (e.g., ontology), which provides the means for processing the data and the metadata of the streams in a unified way and regardless of their source of origin. Processing of metadata can enable the dynamic selection and filtering of sensors, while processing of data can enable the intelligent selection and filtering of sensor data. The dynamic selection of sensors and devices can enable new model for IoT services provisioning on the cloud, such as Sensing-as-a-Service models, where end-users can dynamically define and access sensing services on demand i.e. services where sensors and sensing functions are selecting and executed dynamically.
The OpenIoT Project
The OpenIoT (openiot.eu) was one of the first projects that provided the means for semantically interoperable integration of IoT data streams in the cloud. It also demonstrated the merit of the “Sensing-as-a-Service” approach. OpenIoT is an open source project available at github, which received the Open Source Rookie award by Black Duck for 2013. OpenIoT incorporates an enhanced version of the popular Global Sensor Networks (GSN) middleware (http://lsir.epfl.ch/research/current/gsn/) (namely X-GSN), which enables the collection of data streams from different IoT sensors and devices based on popular protocols (e.g., CoAP (Constrained Application Protocol)), along with their semantic annotation according to the W3C Semantic Sensor Networks (SSN) ontology (RDF representation) and extensions over it. Semantically annotated streams are stored within a public or private cloud infrastructure (e.g., the Amazon EC2 public cloud or private clouds build with the open source OpenStack middleware). Over this cloud infrastructure, OpenIoT has implemented a range of tools for application monitoring and development.
The OpenIoT project provides the following main functionalities:
- Deployment and Registration of a sensor or internet connected device: OpenIoT enables the integration of virtually any internet connected sensor or device to its cloud infrastructure. This is based on the interfacing of the sensor to the X-GSN middleware, which accordingly undertakes the semantic annotation of the sensor and its registration in the OpenIoT cloud. The process is facilitate by a visual tool (Schema Editor) provided by the OpenIoT project and requires the implementation of a low level interface between the device and the X-GSN middleware. The latter process is typically a matter of 1-2 man days.
- Dynamic discovery of sensors and internet connected devices: OpenIoT provides functions and utilities for the dynamic discovery of sensors and internet connected devices, independently of their source of origin. Discovery is based on querying the RDF repository of sensors/devices, which reside in the OpenIoT cloud. The discovery process takes into account the metadata of the sensors or devices, including their type and location.
- Visual IoT Service definition and deployment: OpenIoT offers a development environment, which enables users to develop applications (notably sensor queries) through the visual definition of data processing workflows over the semantically interoperable IoT sensors that are integrated in the cloud. The tool enables the visual construction of SPARQL queries, over the RDF representations of the sensors and their data. Accordingly, it enables the deployment of the IoT service / query in the cloud. The tools is web-based and multi-user, taking into account the sensors and services that each user is entitled to access depending on its authentication credentials.
- IoT services visualization (via Mashups): OpenIoT provides a mashup library, which enables the visualization of the services (notably sensor queries). Mashups based visualization functionalities are provided by most public IoT cloud mentioned earlier in this tutorial. The OpenIoT mashup library and related visualization functionalities are integrated with the visual service definition and deployment functionalities within the OpenIoT integrated development environment of the project.
- Resource Management and Optimization: OpenIoT provides several resource management and optimization functionalities (such as data caching, publish-subscribe optimization) and more.
OpenIoT has already a community of users, which take advantage of the project for research and academic purposes, even though the project has already been deployed in the scope of pilot deployments in enterprise environments. Following figures provide snapshots of the OpenIoT architecture, the OpenIoT mashups and the tool for visual definition of IoT services.
Applications of Data Level Semantic Interoperability
Data-level semantic interoperability is only a small part of the wider problem of IoT interoperability, which has been introduced in an earlier chapter. However, the semantic interoperability across IoT streams from different sources provides already a sound basis for a number of added-value applications in various areas including:
- Smart Cities: In smart cities, there is nowadays a need to integrate and manage information stemming from a large number of different IoT deployments, which have been planned and carried out independently from each other. In several cases these deployments concerns similar applications (e.g., smart energy, urban mobility) and provide similar data (e.g., data about transport or energy). Nowadays there is no easy way to combine data from these deployments in order to implement new integrated management applications (e.g., city-wide monitoring of environmental performance) or even operational applications (e.g., holistic management of urban mobility). Data level semantic interoperability (based on platforms such as OpenIoT) can indeed facilitate the development of such added-value management infrastructures and application. This is discussed in more detailed in the scope of subsequent chapter on urban mobility.
- IoT Experimentation: The lack of data-level semantic interoperability is a set back to the development of IoT experiments based on data from multiple IoT testbeds (e.g., air quality data from different infrastructures). The adoption of approaches such as OpenIoT enable the design and execution of more integrated experiments that leverage data from diverse IoT sources, systems and platforms.
These are some examples of the merits of semantic interoperability of diverse IoT resources, which is only scratching the surface of the wider problem of IoT interoperability. Additional aspects and solutions for IoT interoperability will be discussed in subsequent chapters, as part of IoT interoperability standards and applications that leverage interoperability functionalities.
Resources for Further Reading
1) OpenIoT is an open source project. Its source code and documentation are available through the following links:
- Open Source Project portal: https://github.com/OpenIotOrg/openiot
- Open Source Project Wiki: https://github.com/OpenIotOrg/openiot/wiki
- Open Source Project Documentation: https://github.com/OpenIotOrg/openiot/wiki/Documentation
- Open Source Project Binaries: https://github.com/OpenIotOrg/openiot/wiki/Downloads
- Open Source Project Stats(@ohloh): https://www.ohloh.net/p/OpenIoT
2)An overview description of OpenIoT is available at the following paper:
John Soldatos, Nikos Kefalakis, Manfred Hauswirth, Martin Serrano, Jean-Paul Calbimonte, Mehdi Riahi, Karl Aberer, Prem Prakash Jayaraman, Arkady B. Zaslavsky, Ivana Podnar Zarko, Lea Skorin-Kapov, Reinhard Herzog: OpenIoT: Open Source Internet-of-Things in the Cloud. OpenIoT@SoftCOM 2014: 13-25
3) Some the resource management capabilities of OpenIoT are discussed at:
Kefalakis, S. Petris, C. Georgoulis, J. Soldatos, “Open Source Semantic Web Infrastructure for Managing IoT Resources in the Cloud”, Chapter in the book: Internet of Things: Principles and Paradigms, Rajkumar Buyya and Amir Vahid Dastjerdi (eds.).