1. Introduction
Sensor Web is a widely distributed network connecting different types of sensors [
1,
2]. With enough power supply, in-situ or remote sensors can continuously collect observations of instruments and environment [
3]. By sharing these large number of observations online via interoperable ICT (Information and Communication Technologies), users can integrate the observations to discover phenomena that were not observable in the past [
2].
In recent years, the Internet of Things (IoT), a similar idea to the Sensor Web, attracted much attentions from various fields. While there have been many definitions of the IoT, International Telecommunication Union (ITU) introduced a general yet comprehensive definition. The ITU defines that the IoT is “a global infrastructure for the information society, enabling advanced services by interconnecting (physical and virtual) things based on existing and evolving interoperable information and communication technologies”, and a thing is “an object of the physical world (physical things) or the information world (virtual things), which is capable of being identified and integrated into communication networks”.
As the Sensor Web and the Internet of Things are similar in terms of their architectures and functionalities, we name them as the SW-IoT (Sensor Web and IoT) in this paper. In general, the SW-IoT provides two main functionalities [
4]:
- (1)
Sensing capability: SW-IoT devices can monitor their latest status or use embedded sensors to observe properties of their surrounding environment. With the help of communication technologies, users can remotely access these observations for further analysis or decision-making.
- (2)
Tasking capability: Tasking capabilities allow users to remotely control SW-IoT devices. For example, a client can send tasks to turn on/off a device, adjust the sensor’s sampling rate, schedule an observation event, etc.
The integration of sensing and tasking capabilities helps achieve various applications, such as precision agriculture, Industry 4.0, smart city, home automation, and e-Health, etc. In general, we can summarize the SW-IoT with a three-tier architecture [
5], which contains the device layer, the service layer, and the applications layer. In terms of sensing capabilities, devices embedded with sensors can continuously collect and upload observations to services on the service layer. The service layer mainly supports data management and interfacing while the application layer retrieves data from the service layer for further applications.
In terms of tasking capabilities, a client in the application layer can first send tasks to the service layer. A service then transforms the tasks into a device request by following a corresponding device protocol. Once the service forwards the request to the device, the device will execute the task accordingly.
Besides the three aforementioned layers, an additional gateway layer is commonly applied in the SW-IoT systems (
Figure 1). The gateway layer serves as an intermediate between the device layer and the service layer. There are two advantages to applying gateways. Firstly, while most embedded devices are resource-constraint and not able to connect to the Internet by themselves [
6], gateways can help devices to communicate with services. Secondly, as directly connecting to the Internet requires higher energy consumption, devices can connect with gateways via low-power-consumption wireless communication protocols [
7], such as Bluetooth LE, ZigBee, LoRaWAN, and NB-IoT, etc.
With the advance of micro-controller and sensor technologies in recent years, the cost of constructing SW-IoT systems has been significantly reduced. Government agencies, scientists, and developers can customize and deploy embedded systems at a lower cost. However, instead of following open standards, many SW-IoT systems are constructed based on proprietary protocols due to its conveniences. These systems form many SW-IoT silos that cannot communicate with each other directly. This heterogeneity issue has been identified as one of the most critical issues severely obstructing the development of SW-IoT [
3]. An ultimate solution for this issue is to unify the communication protocols between different layers by following mutually agreed standards. Among the standards related to the SW-IoT, the Sensor Web Enablement (SWE) standards defined by the OGC (Open Geospatial Consortium) have been widely adopted [
8,
9,
10,
11]. The SWE mainly defines web service interface standards, such as SOS (Sensor Observation Service) [
12], SPS (Sensor Planning Service) [
13], SensorThings API [
14], and data model standards, such as O&M (Observations and Measurements) [
15], SensorML (Sensor Model Language) [
16]. By following the SWE standards, sensor metadata and observations can be described with a unified framework, and sensing and tasking capabilities can be accessed in an interoperable manner.
In addition, among the SWE standards, the SensorThings API (Application Programming Interface) is the newest RESTful service interface standard for SW-IoT data services. This standard has two main advantages. Firstly, this standard defines a comprehensive SW-IoT data model based on the O&M standard. Secondly, its service interface is inspired by the OASIS (Organization for the Advancement of Structured Information Standards) Open Data Protocol (OData) [
17], which supports intuitive and flexible query functions based on the Representational State Transfer (RESTful) style and JavaScript Object Notation (JSON) encoding. Therefore, we believe that the SensorThings API is one of the most complete SW-IoT data service interfaces.
However, while the SWE standards mainly focus on the service layer, communication between devices and gateways did not receive enough attention in the SWE ecosystem. To be specific, the communication between the device layer and the gateway layer is important for device registration, observation uploading, and task forwarding. Although there have been some efforts proposed to address this issue in the SWE ecosystem, such as PUCK [
18] and SID (Sensor Interface Descriptors) [
19], these approaches are either not open standards or are not designed to integrate with the SensorThings API.
Therefore, the main goal of this research is to fill in the missing components in the current SensorThings API architecture, which allows embedded devices to automatically register themselves and their sensing and tasking capabilities to a SensorThings API service through local gateways. This solution is designed to support various scenarios. The scenarios can be summarized into four general types, including the registration of sensing capabilities of in-situ and mobile devices, and the registration of tasking capability of in-situ and mobile devices. To be specific, in-situ and mobile devices can automatically register themselves to a SensorThings API service, continuously upload sensor observations or new locations, and update web addresses of connected-gateways for services to task devices. These scenarios should be able to cover most SW-IoT use cases via the integration of sensing and tasking capabilities [
20]. In general, this research tries to construct a coherent architecture that can seamlessly integrate the device layer, the gateway layer, and the service layer based on the SensorThings API ecosystem.
To be specific, we propose a solution called SW-IoT Plug and Play (IoT-PNP) to achieve an automatic registration procedure from embedded devices to SensorThings API services. There are three main parts in the IoT-PNP. Firstly, this research defines a description file format for device metadata and capabilities, in order that the devices become self-describing. Secondly, the IoT-PNP defines a default configuration of a local wireless communication protocol to automatically establish connections between devices and gateways. Thirdly, registration procedures for sensing and tasking capabilities are designed to support different possible scenarios, which are new devices, new gateways, and mobile devices.
In general, the contributions of this research are as follows. First of all, the proposed IoT-PNP can fill in the missing components of the SensorThings API ecosystem to construct a complete SW-IoT architecture covering the device, gateway, and service layers. Second of all, the proposed registration procedures can support various scenarios for sensing and tasking capabilities on in-situ and mobile devices. Third of all, by applying a keyword replacement mechanism, the proposed solution can automatically translate tasking requests to heterogeneous device protocols. However, similar to every approach that aims to achieve interoperable communication, a certain degree of modification on devices are required to support the proposed solution.
In the next section, we review existing solutions proposed by different organizations to address heterogeneity issues on different layers of an SW-IoT system and analyze the advantages and disadvantages of these solutions. In
Section 3, we introduce our solutions, the SW-IoT plug-and-play (IoT-PNP). In
Section 4, we apply the IoT-PNP on four use-cases based on different scenarios. Finally,
Section 5 concludes this research.
2. Related Work
To address the aforementioned SW-IoT heterogeneity problem, there are two possible approaches. The first one is the hub approach. The hub approach is achieved by implementing different connectors corresponding to different SW-IoT ecosystems. With the connectors, a hub can communicate with different systems. A hub can be in the application layer, service layer or gateway layer as long as the hub can support protocols of different systems. For example, If-This-Then-That (IFTTT), a service hub on the application layer, supporting many connectors connecting to many web applications and SW-IoT systems. The hub approach is effective and easy to develop. However, for as many SW-IoT systems, a hub needs to implement customized connectors, which results in significant development cost.
The second approach is the standard approach. In principle, by following standards, SW-IoT systems from different manufacturers can collaborate with each other within each standard ecosystem. There are some organizations proposing their proprietary standards, such as Apple’s “Works with HomeKit (
https://www.apple.com/tw/ios/home/accessories/)” and Google’s “Works with Nest (
https://nest.com/works-with-nest/)”. Different from the hub approach, enterprises are trying to define proprietary standards to attract manufacturers to join their ecosystems. However, proprietary standards and ecosystems would cause more heterogeneity issues as no existing SW-IoT ecosystem is large enough to attract all manufactures. On the other hand, the real potential of the standard approach is to follow open and commonly agreed standards.
For example, there are many existing open standards defined for unifying interfaces of the SW-IoT Service Layer. Among the standards, the OGC SOS is a web service interface standard for sensor resource sharing. Information shared by SOS services is described with other SWE standards such as the O&M and SensorML. However, the SOS is based on Simple Object Access Protocol (SOAP) and XML-based network protocol, which are considered as outdated and inefficient. Therefore, OGC recently defines another service interface standard, the SensorThings API. The first part of the SensorThings API standard is primarily designed for the SW-IoT sensing capability. Different from other OGC service interfaces, the SensorThings API applies RESTful style and JSON encoding to provide a more lightweight and efficient interface. The data model of the SensorThings API is mainly extended from the O&M data model by including classes of IoT to ensure the versatility of its data model. The interface of the SensorThings API service is inspired by the OASIS OData. SW-IoT resources are represented as entities or properties that can be identified by URIs (Uniform Resource Identifiers), and resources can be linked together using relationship links. The second part of the SensorThings API is under development and focuses on extending the data model and service interface to support tasking capabilities.
In addition, there are some standards designed by different industrial alliances. HyperCat standard [
21] is proposed by the HyperCat consortium, an organization which is composed of more than 40 UK-based companies including British Telecom, Rolls-Royce, and military supplies manufacturer BAE, etc. The HyperCat is an open, lightweight, JSON-based online catalog tagged with metadata. The HyperCat exposes SW-IoT devices’ information and observation resources over the web with semantic annotations. Instead of requiring manufacturers to follow the same data format, the HyperCat can describe data from different providers and help users search for the data relevant to their needs.
OpenIoT standard [
22] is a European Union (EU) open source web service standard released by developers from industry and academia jointly in 2012, which uses semantic web technologies to connect physical and virtual sensors to the OpenIoT web platform. The OpenIoT utilizes the Extended Global Sensor Network (XGSN) [
23] as a hub between the OpenIoT service and the physical world, which can collect and filter semantically annotated data streams from SW-IoT devices.
On the other hands, some open standards focus on device layer protocols. OneM2M is an international standard organization composed of standard organizations from Europe, America, China, Japan, and South Korea, and was established in July 2012. The oneM2M standard designs a distributed software layer that provides an interoperable framework. This distributed software layer is composed of three entities, Application Entity (AE), Common Services Entity (CSE), and Network Services Entity (NSE) [
24]. An AE is an application implemented on oneM2M nodes. A CSE provides a set of common services functions (CSFs) to other AEs, CSEs, NSEs. An NSE provides network service functions from underlying networks such as 3GPP, 3GPP2, and WLAN to the CSEs.
Furthermore, OGC PUCK is a standard that aims at providing interoperable communications between devices and host computers through serial cables (RS-232) or Ethernet. PUCK defines several PUCK commands for hosts to discover PUCK-enabled devices and retrieve devices’ metadata or drivers from devices. The hosts can parse devices’ metadata by following the PUCK standard format and install drivers to communicate with devices. Another solution based on the OGC SWE ecosystem is Sensor Interface Descriptor (SID). The SID aims at solving the heterogeneity issue between the service layer and the device layer [
19]. The SID defines a schema and an extension to the OGC SensorML, to describe a sensor’s communication protocol, commands, processing steps, and metadata association. According to the SID, a SID interpreter (gateway) can translate a sensor protocol into the OGC web services interface. A similar work to the SID was proposed by Martínez et al. [
25], where the authors defined the Sensor Deployment Files (SDF) describing the metadata of a sensor and designed a framework to retrieve SDF via PUCK and register information to OGC SOS.
Universal Plug and Play (UPnP) [
26] is a network protocol proposed by the UPnP forum, which aims at providing seamless connections for devices in the same Local Area Network (LAN). The UPnP is a distributed architecture based on the TCP/IP, HTTP, XML, and SOAP network. The UPnP provides “Addressing” and “Discovery” procedure for new devices and services to join the UPnP network. A control point can control devices or subscribe to events of devices according to the description provided by devices.
As mentioned earlier, the objective of this study is to achieve automatic connections between the service layer and the device layer. The OGC SOS, SensorThings API, OpenIoT are standard service interfaces for the service layer. The HyperCat provides a catalog service and data semantic annotation for sensor data searching, where the annotation and publish should be manually finished. The OGC PUCK mainly defines commands for device communication, where an automatic registration procedure was not defined. Some manual work is still needed for sharing sensing and tasking capabilities to the service layer. The SID provides a complete data model for describing sensing and tasking capabilities. However, for the Plug and Play, their data model is verbose in XML schema and is complicated for devices to support. The SDF approach is also based on XML and only supports sensing capabilities. The UPnP operates on networks based on the TCP/IP, HTTP, XML, and SOAP, thus that the standard cannot be applied to devices on low-power wireless communication networks. The oneM2M provides an operating-system-like logic layer for various kind of devices. However, as the oneM2M only defines a general and flexible data model, integrating sensor information from different devices may have serious heterogeneity issues.
Based on our understanding, the existing solutions cannot fully address the heterogeneity issue between the Service Layer and the Device Layer. Therefore, this research aims at proposing a solution to allow embedded devices to be self-describing, automatically establish a connection between devices and gateways via local wireless communication protocols, register device’s sensing and tasking capabilities to the service layer, and control devices via the service layer and the gateway layer. In addition, the OGC SensorThings API is chosen as the service layer because of its comprehensive data model and flexible service interfaces.
5. Conclusions and Future Work
This research proposes the IoT-PNP solution that extends the SensorThings API ecosystem to the gateway layer and the device layer to construct a unified SW-IoT architecture. To be specific, we first define a description file for devices to describe its metadata and capabilities. And then with the designed gateway and device operations for wireless communication protocols, such as ZigBee in this research, devices can automatically discover and connect to local gateways. Finally, the proposed automatic registration procedures for sensing and tasking capabilities that can satisfy different scenarios, including new devices, new gateways, and mobile devices.
In order to demonstrate the feasibility of the proposed solution, we have implemented four example applications considering in situ and mobile devices, and their sensing and tasking capabilities. As shown in the experimental results, as long as the embedded devices support the proposed IoT-PNP solution, all the designed applications can be achieved without any human intervention. Overall, we believe that this research provides a valid solution to construct a unified SW-IoT infrastructure and could consequently achieve the SW-IoT vision.
In terms of future work, as SW-IoT embedded devices could support different local wireless communication protocols, such as Bluetooth, LoRaWAN, NB-IoT, etc. we believe that the proposed idea can still be followed with consideration of the characteristics of different protocols. For example, data transmission rates of LoRaWAN, NB-IoT, and Sigfox may not be enough to support the transmission of description files presented in this paper. Possible solutions are to separate a description file into several pieces or to store a description file on the cloud and instruct gateways to retrieve the description file from the cloud. How to apply the IoT-PNP concept to different wireless communication protocols would be an interesting research topic. Finally, we will seek opportunities to apply the proposed IoT-PNP in real-world SW-IoT systems to further demonstrate this solution.