| Literature DB >> 31569338 |
Charilaos Akasiadis1, Vassilis Pitsilis2, Constantine D Spyropoulos3.
Abstract
Internet of Things (IoT) technologies have evolved rapidly during the last decade, and many architecture types have been proposed for distributed and interconnected systems. However, most systems are implemented following fragmented approaches for specific application domains, introducing difficulties in providing unified solutions. However, the unification of solutions is an important feature from an IoT perspective. In this paper, we present an IoT platform that supports multiple application layer communication protocols (Representational State Transfer (REST)/HyperText Transfer Protocol (HTTP), Message Queuing Telemetry Transport (MQTT), Advanced Message Queuing Protocol (AMQP), Constrained Application Protocol (CoAP), and Websockets) and that is composed of open-source frameworks (RabbitMQ, Ponte, OM2M, and RDF4J). We have explored a back-end system that interoperates with the various frameworks and offers a single approach for user-access control on IoT data streams and micro-services. The proposed platform is evaluated using its containerized version, being easily deployable on the vast majority of modern computing infrastructures. Its design promotes service reusability and follows a marketplace architecture, so that the creation of interoperable IoT ecosystems with active contributors is enabled. All the platform's features are analyzed, and we discuss the results of experiments, with the multiple communication protocols being tested when used interchangeably for transferring data. Developing unified solutions using such a platform is of interest to users and developers as they can test and evaluate local instances or even complex applications composed of their own IoT resources before releasing a production version to the marketplace.Entities:
Keywords: IoT ecosystem; IoT platform; interoperability; multiple application layer protocols; open-source frameworks
Year: 2019 PMID: 31569338 PMCID: PMC6806188 DOI: 10.3390/s19194217
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Platform components
Figure 2Database model.
Figure 3Composition of the face-counting service.
Topics used by the face-counting service.
| Topic | Description |
|---|---|
| Frame topic | Used to transfer frames from the sensing (S)-type to the processing (P)-type |
| Text topic | Used by the P-type service to notify the actuation (A)-type with updates |
Topics utilized by the fall-detection and route-monitoring service.
| Topic | Description |
|---|---|
| User1 Accelerometer | Used to transfer accelerometer data of User1 from the S-type to the P-type service |
| User1 GPS | Used to transfer accelerometer data of User1 from the S-type to the P-type service |
| User1 Detection Result | Used to publish recognized abnormalities to the web-based GUI |
| User1 Map Location | Used to publish User1’s location to the web-based GUI |
| User2 Accelerometer | Used to transfer accelerometer data of User2 from the S-type to the P-type service |
| User2 GPS | Used to transfer accelerometer data of User2 from the S-type to the P-type service |
| User2 Detection Result | Used to publish recognized abnormalities to the web-based GUI |
| User2 Map Location | Used to publish User2’s location to the web-based GUI |
| ... | ... |
| UserN Accelerometer | Used to transfer accelerometer data of UserN from the S-type to the P-type service |
| UserN GPS | Used to transfer accelerometer data of UserN from the S-type to the P-type service |
| UserN Detection Result | Used to publish recognized abnormalities to the web-based GUI |
| UserN Map Location | Used to publish UserN’s location to the web-based GUI |
Figure 4Composition of the fall-detection and route-monitoring service.
Figure 5End-to-end message delays vs. batch message traffic size.
Figure 6Parallel clients: 30, publish topics per client: 2, frequency of batch messaging: 1 s, batch message size: 50 B.
Use of server resources during each publish/subscribe experiment (Average 10-s values).
| Publisher-Subscriber (Batch) | Free Memory % | CPU % | KB Received | KB Sent |
|---|---|---|---|---|
| MQTT-MQTT (MQTT) | 70.79 | 21.52 | 840.97 | 2704.32 |
| AMQP-MQTT (MQTT) | 70.30 | 23.59 | 839.00 | 2703.45 |
| MQTT-AMQP (MQTT) | 72.31 | 23.23 | 842.71 | 2705.45 |
| AMQP-AMQP (MQTT) | 71.85 | 22.99 | 810.63 | 2703.08 |
| MQTT-MQTT (AMQP) | 67.98 | 26.79 | 1560.06 | 4054.54 |
| AMQP-MQTT (AMQP) | 67.61 | 24.92 | 1564.03 | 4071.11 |
| MQTT-AMQP (AMQP) | 67.66 | 26.42 | 1558.51 | 4140.26 |
| AMQP-AMQP (AMQP) | 67.15 | 26.19 | 1554.52 | 4140.10 |
Figure 7Without AuthN/AuthZ; parallel clients: 30, publish topics per client: 2, frequency of batch messaging: 1 s, batch message size: 50 B.
Figure 8Parallel clients: 30, publish topics per client: 2, frequency of batch messaging: 1 s, batch message size: 50 B.
Use of server resources during each request/response experiment (Average 10-s values).
| Publisher-Subscriber (Batch) | Free Memory % | CPU % | KB Received | KB Sent |
|---|---|---|---|---|
| CoAP-CoAP (CoAP) | 35.46 | 79.47 | 26.28 | 35.14 |
| CoAP-HTTP (CoAP) | 33.94 | 84.24 | 27.93 | 36.19 |
| HTTP-CoAP (CoAP) | 33.83 | 84.29 | 26.95 | 35.48 |
| HTTP-HTTP (CoAP) | 34.52 | 84.94 | 29.32 | 36.78 |
| CoAP-CoAP (HTTP) | 35.94 | 84.81 | 28.91 | 36.41 |
| CoAP-HTTP (HTTP) | 34.83 | 84.47 | 27.81 | 35.99 |
| HTTP-CoAP (HTTP) | 33.50 | 84.70 | 28.52 | 36.94 |
| HTTP-HTTP (HTTP) | 33.47 | 86.46 | 29.96 | 37.92 |