An Integrated Platform for the Internet of Things Based on an Open Source Ecosystem
Abstract
:1. Introduction
- We studied and compared open source IoT technologies. The IoT-related requirements for different levels of IoT architecture were analyzed. For example, open source middleware platforms were analyzed and compared from different aspects, such as heterogeneous device access, device management, data transmission, intelligent data processing, system security, cloud platform integration, API style, application support, and activeness.
- By comparing the open source systems listed with the various requirements of different layer, the requirements implemented and not yet implemented by open source systems were analyzed.
- A cloud–fog collaboratively integrated development platform for IoT is given. Some technologies are adopted to implement requirements that have not yet been solved by open source systems. For example, P2P is used for distributed resource management of IoT and blockchain-based smart contract is applied for resource billing management.
- An industrial IoT scenario was used for evaluation and the preliminary result shows the feasibility of the platform.
2. Open Source Ecosystem for the IoT
- Device access and state management: Access management refers to which protocols the device layer supports for devices to access the network. State management means how to manage the life cycle of the device, i.e., device access, data-read and device control, status maintenance, and device failure management, which provides status information for the upper application.
- Device identification: Many devices need to be distinguished by identifiers. Does the device ID need to include location information? How can the relative positional relationship between devices be reflected? For example, a hierarchical resource structure corresponding to a geographical location can be applied for managing device resources in an IoT application environment. However, this implementation requires manually associating relative relationships between resources. If the identifier can automatically include the relative geographical position relationship, it can automate the hierarchical management of resources. When a device accesses the network, can the device identifier be generated automatically? How can we locate smart things based on their device IDs?
- Data description: Different devices have different data description methods, which are text-based or semantic-based. Therefore, the device layer needs to flexibly support and process commonly used data description methods, and be able to perform functions such as data format conversion and semantic reasoning for the different data descriptions.
- Service discovery: It should be easy for developers to discover the service capabilities of the device.
- Resource management: This function monitors the status of resources. When the resource fails, or when the resource is about to be invalid due to low battery levels, it selects alternative resources to ensure that the application has a certain degree of robustness.
- Security mechanism: They provide a variety of efficient security mechanisms to ensure the safety and reliability of data transmission, storage, and processing.
- Intelligent data processing and personalized service provisioning functions: Intelligent algorithms are applied to multi-source sensing data for intelligently inferring and gaining new knowledge. It can also provide users with personalized services by using sensors to obtain contextual information.
2.1. Open Source IoT Technology for Device Access
2.1.1. Short-Distance Communication
- Bluetooth technology [13,14,15,16,17]: This has been developed and applied for many years, and there are many open source Bluetooth platforms. For example, Bluez technology provides a complete Bluetooth system which supports a variety of CPUs, Linux and Android operating systems. Android BLE built into Android implements Bluetooth device access management. Gatt, based on the Go language, is an open source software that implements the GATT framework. Noble implemented the central module of Bluetooth by using Node.js and Bloon implemented a Bluetooth peripheral module based on Node.js.
- NFC (Near Field Communication) [18]: There are many open source systems that support NFC. For example, Libnfc provides platform-independent, low level NFC SDK, and supports event-based device interaction mechanisms. NFC device read capabilities for the Android platform are also available.
2.1.2. Long-Distance Communication
- LoRa/LoRaWAN [19,20]: This technology is used for low-power long-distance communication in the IoT. LoRAWAN is the long-range communication protocol and architecture, and LoRA is the physical layer. They use a long-distance star structure to achieve communication between nodes and servers, enabling sensor data acquisition. LoRAWAN open source technologies include Lora-gate-bridge, Loraserver, Lora-app-server, packet forwarder, and the things network. Lora-gate-bridge provides a service that converts UDP packet to JSON or MQTT format. Loraserver provides Lora network server functions, which are responsible for uplink data reception and scheduling downlink data transmission. Lora-app-server, as an application server, mainly provides the LoRAWAN infrastructure node inventory, handling the received uplink application payload and downlink payload queue. It also comes with a web GUI for device management and provides the developer with a RESTful, JSON and gRPC interface. LoRAWAN also supports publishing the received payload to an MQTT broker. The Lora packet forwarder runs on the Lora gateway to convert between RF signals and IP/UDP. The things network provides Cloud Platform for accessing LoRa devices. Currently, many LoRa manufacturers use the things network to provide services where there are more than a thousand gateway devices in operation. The Lora server supports Linux, OS X, and Microsoft Windows operating systems. The Lora-gate-bridge, Lora packet forwarder, and Lora-app-server support Linux operating systems. Together, these open source software systems build a data acquisition, transmission, and application development platform for the IoT, as shown in Figure 1.
- SIGFOX open source technology: This is an IoT access technology in competition with LoRA. It is a business-operated protocol with features such as simple usage, low power consumption, low cost, and short messages. It cannot create a private network and the user can only use the “connect as a service” (Caas), which is provided by the SIGFOX operator. Currently, the open source technology related to SIGFOX is the Sigfox Platform, which was developed and maintained independently of SIGFOX as a visualization cloud platform for SIGGOX terminal device access [21].
- Narrowband-IoT (NB-IoT) open source technology: The NB-IoT technology uses the operator’s base station as a gateway for data access and transmission. Currently, searching on the GitHub.com website using the keyword “NB-IoT” shows that there are open source platforms implementing the NB-IoT development framework for terminal modules (including open source hardware platforms) and cloud platforms. Relatively complete and highly active frameworks include EasyIoT [22] and Huawei’s CodeLab [23].
2.1.3. Automatic Access of Devices
2.2. Data Management Requirements
2.2.1. Data Representation
2.2.2. Data Semantic Processing
2.2.3. Resource Description
2.3. Application Layer Transmission Requirements
2.3.1. Modbus Protocol
2.3.2. MQTT Protocol
2.3.3. CoAP Protocol
2.3.4. OPC-UA Architecture
2.4. Security and Privacy Protection Requirements
2.5. IoT Device Management
2.5.1. Eclipse hawkBit
2.5.2. LwM2M Technology
2.6. Application Support Layer (IoT Middleware)
2.6.1. Open Source Middleware Platforms
- Eclipse Kura [52]: The goal of this platform is to build an IoT application gateway. It is an application container that supports remote device management and provides a series of APIs for IoT application development. It supports a variety of peripheral interfaces and application layer protocols. Kura offers external device interfaces, data storage and forwarding, and services publishing, as well as provides an API interface to integrate with cloud services. This project is active and supported by Eclipse, using the EPL-1.0 license.
- Zetta [53]: This is an API-first application platform for the IoT. It is based on Node.js and can build a distributed IoT server and cloud platform. It communicates with the device through the RESTful API. It can be used to build a distributed IoT application server and can be used as a gateway. It supports publish/subscribe mode and data stream. It features device discovery, registration, and device identification. Zetta is an active project that uses the MIT license.
- IoTivity [54]: This is a reference implementation of the Open Interconnect Consortium (OIC) standard, which includes functions for the device layer, network layer, and application support layer. It provides RESTful interfaces and supports application layer protocols such as CoAP and MQTT. It implements resource discovery by mDNS and uPNP, resource storage directory, message routing, and security mechanisms. The functions provided by the service layer include simulation tools, protocol conversion, agents, publish/subscribe services, device management, resource encapsulation, resource containers, etc.
- AllJoyn framework [55]: This is a framework for connecting multiple heterogeneous devices and APP applications. It provides device discovery and communication functions for applications and cloud platforms. It has the following functions: point-to-point and group sessions; external API interfaces; supporting MQTT, XMPP and TR-069 protocols; supporting proximity device discovery and communication; and supporting point-to-point encryption (AES128) and authentication (PSK, ECDSA) security mechanisms. It is also an implementation of the Open Connectivity Foundation (OCF) reference architecture.
- OpenIot [56]: As an IoT middleware platform, OpenIot can easily deploy various algorithms and applications for data processing, and can generate application events. It provides ontologies, semantic modeling, and semantic development interconnection technologies for data and interconnected devices. It integrates well with Cloud Computing platforms, supports sensor discovery, and can dynamically compose with other services. The project is supported by a number of research institutions and some companies.
- SiteWhere [57]: This open source software is built on micro-service architecture and hence has good flexibility, scalability, and availability. It uses application layer protocols such as MQTT/AMPP to transfer data and supports data storage by big data technology. SiteWhere also offers an object model to describe data relationships. The system provides RESTful, MQTT/AMPP application development interfaces, which can be used to integrate with Cloud Computing platforms and provide users with a web application runtime environment through web containers. The devices are managed by device self-registration, RESTful service, or batch processing. It also supports security mechanisms, such as encryption, authentication, and role-based access control. It uses the open source CPAL1.0 license.
- Thinger.io [58]: This middleware provides cloud-based device access management and data service interfaces at the gateway layer that can be deployed in the cloud and local site. It can run on open source hardware platforms such as Arduino, Raspberry Pi, Intel Edison, and ARM Mbed, and operating systems such as Linux, and Android. It supports the SIGFOX protocol. The security mechanism used is unknown. It has been integrated with NodeMCU to implement motion detection applications [59] and also used in smart emergency response systems [60].
- WSO2IoT [61]: This includes gateway layer and application layer functions, providing terminal equipment access management, data flow, and CEP processing. It can customize web portals for application development and supports devices that run Android and iOS. It has relatively complete security mechanisms, including encryption, authorization, identity authentication, single sign-on, and transport-layer security mechanisms. The Apache License 2.0 is adopted.
- ThingsBoard [62]: This provides data acquisition, processing, visualization, and device management functions. HTTPs and MQTTs, SIGFOX, OPC-UA, etc. are supported, while CoAPs are not yet supported. It supports device identity authentication based on X.509. Apache License 2.0 is used and about 10 partners are involved. Recently, it has been adopted by different applications, such as data collection platform for situational awareness-centric microgrids [63]; and real-time processing of data streams received from sensor devices, via integration with Spark [64].
- DeviceHive [65]: This provides management, communication and data processing functions for devices, providing RESTful API interfaces. Authentication mechanisms based on JWT (JSON Web Token), TLS encryption, and role-based access control are supported. It has good flexibility and reliability by using micro-service architecture. It is released under an Apache License 2.0 license. DeviceHive is used as a connector service to route commands between DeviceHive and other services in a smart home [66]. The services are registered into DeviceHive as devices and are polled for commands. In the smart metering of electrical power systems, DeviceHive has been used as a cloud and client to communicate with remote sensors. It abstracts resources into seven components: Network, User, Device, Device Class, Equipment, and Access key [67].
- ThingSpeak [68]: This IoT platform developed by the Mathworks company implements data acquisition, analysis, and action triggering functions. The data processing is done by Matlab. It provides cloud platform and supports mobile terminal application development. ThingSpeak has been used in applications such as intelligent agriculture field monitoring systems [69], and automatic car parking systems [70].
- VSCP (Very Simple Control Protocol) [71]: This is used as a gateway in IoT to provide device discovery and identification, device configuration management, secure device firmware updates, and UI interfaces. It stores and transmits data by a secure encryption mechanism.
- Macchina.io [72]: This is an edge and fog computing tool set for IoT application development, which supports multiple devices and terminal equipment access, data transmission, integration with a Cloud Computing platform. Seven partners are involved and the Apache 2.0 license has been adopted.
- T6IotApp [73]: This provides device connectivity, data flow with a timestamp, data processing, a dashboard interface, and a JWT security mechanism. A few different hardware is currently supported.
- Distributed Services Architecture for IoT (DSA) [74]: DSA realizes the integration of a variety of data or protocols used for communication between heterogeneous devices. It also supports group-based authorization management, LDAP-based authentication, and SSL-based transmissions. The Apache License 2.0 is adopted.
- Kaa [75]: This is a middleware platform for building end-to-end applications of IoT, which can be used as a gateway or as an application server. It supports device management, device interaction, remote device configuration and distributed remote device firmware updates, cloud service creation, data collection and analysis, user behavior analysis, target event notification, and data storage based on big data. In the literature [76], Kaa has been deployed in clusters as an application server for distributed data collection.
- PlatformIO [77]: This is an open source IoT development ecosystem. It operates at the application layer and provides a cross-platform build system that integrates a continuous development environment and library management environment. Its main role lies in being an integrated development environment and framework that supports multiple hardware platforms. There is no support for device networking, discovery, and semantic processing. Companies such as ARM, Freescale, and TI provide support and the Apache 2.0 license is used.
- Mainflux [78]: This is a hardware-independent IoT cloud platform based on the Go language and micro-service architecture, supporting multiple protocols, device management, OTA-FW-based firmware update, application management, data storage, and fine-grained access control based on customizable API keys and scoped JWT. TLS and DTLS security mechanisms are also supported. The Apache-2.0 License is used.
- Patchwork Toolkit [79]: Patchwork provides lightweight tools for the interconnection of a variety of heterogeneous devices which are within the LAN. It only retains the necessary features and therefore is easy to deploy with good scalability. It also provides service registration and discovery functions.
2.6.2. Comparison of Open Source Middleware
- Access and management of heterogeneous devices. The platform should support various hardware using different protocols and provide management of device status and firmware updates. The open source middleware technologies introduced above almost all support a variety of mainstream open source hardware and mobile terminals, such as the Raspberry Pi, BeagleBone, Arduino, and so on. The underlying access protocols include ZigBee, CAN, RS-232, Bluetooth, GPIO, LoRA, SIGFOX, and others. Some open source platforms provide identity management for access devices.
- Application layer data transmission. At present, open source platforms mostly support HTTP/MQTT application layer protocols, and some also support application layer protocols such as WebSocket, Modbus, OPC-UA, CoAP, and AMPP.
- Data storage and intelligent processing. Data can be stored by the middleware itself to provide edge computing capabilities and can also be stored on cloud platforms. Data processing capabilities include complex event processing (CEP), rule-based event processing, and stream processing; some platforms also support machine learning capabilities.
- Providing API interface and application support capabilities. The platforms above provide applications with various capabilities through RESTful interfaces.
- Deployment mode. Some open source systems are deployed as gateways, some are simply deployed as IoT applications, and others have both capabilities.
- Completeness of security. The platform needs to provide data encryption, secure transmission, identity authentication, and access control mechanisms to meet the needs of IoT applications.
- Activeness. The activeness of development of the open source system is also an important factor when developers choose a platform. The activeness of the 19 platforms investigated here is shown in Figure 3. The number of results obtained through a Google search and the number of topics in the open source system’s own forums can roughly reflect its activeness. The topic in the figure indicates the number of topics of each platform, which mainly comes from the Stack Overflow website and self-built forums.
2.7. Comparison between IoT Requirements and Open Source System
3. Architecture of the Integrated IoT Application Development Platform
3.1. The IoT Application Development Platform
- Heterogeneous devices supporting various sensing devices with different functions, operating systems, transmission protocols, power consumptions, and other characteristics. Current mainstream devices are supported, in order to meet the application requirements. Gateways are used to implement the management of heterogeneous devices. The gateway implements device interconnection, state management, and protocol conversion as well as unified description, storage, forwarding, and basic processing of data. It can also automatically produce the ID of the access device according to the device function, protocol, physical location, etc., for identifying and locating the device.
- Application layer protocols. Data transmission is achieved by using standard application layer protocols, such as HTTP, CoAP, MQTT, or AMQP, to implement integration among different applications. The publish/subscribe mechanism is also supported to implement loose coupling systems and meet real-time application requirements.
- Distributed resource management. Compared with traditional software development, IoT application development is based on specific sensing devices. During the development, it is necessary to use the functions and specific features provided by the existing devices. Therefore, it is necessary to provide a common public service or resource discovery mechanism to efficiently and accurately find the available resources it needs. P2P (peer-to-peer) is a distributed computing technology that has been widely used in resource sharing and virtual currency trading. This platform utilizes P2P technology to realize the distributed storage and retrieval of IoT resources. IoT applications developed on P2P therefore have good scalability, flexibility, and high availability. However, these details are beyond the scope of this article.
- API interface and security mechanism. The platform supports Web Service and RESTful style API interfaces. Network layer security mechanisms such as the DTLS and TLS mechanisms for the embedded environment are adopted to implement data encryption and identity authentication. The JWT is used in the application layer to implement secure transmission of compact and self-contained information. The transferred information is signed to ensure data integrity and non-repudiation.
- Service delivery platform and development environment. The open source system Platform API is used to provide a cross-platform build system, and integrate a continuous development environment and a variety of development library. IoT applications can be developed and deployed through cloud platforms. The cloud platform stores the global information gathered by the sensors distributed in various places. It processes the data to obtain new knowledge by using intelligent technologies, such as data mining, machine learning, semantic web reasoning, and others. The Eclipse Kapua [80] cloud platform was used as a data processing platform for the IoT and combined with Apache Kafka, an open source real-time streaming processing technology.
- Resource bill, based on blockchain technology, is used to ensure the safe, reliable, and efficient use of sensor resources. Using P2P resource management, blockchain and smart contract technology were combined to achieve resource management for the IoT. For example, when and where the owner of a resource can publish resource, and how the resource will be used and billed, which is a module that will be further studied at a later date.
3.2. Characteristics of the IoT Application Development Platform
- Cloud–fog collaborative computing mode. The system can be deployed in the IoT environment near the sensor devices in a fog computing form. The data do not need to be transmitted to a remote cloud computing platform and can be processed locally. Then, the processed data can be transmitted to intelligent processing functions which are deployed in the remote cloud computing platform to implement collaborative computing between the cloud and the fog.
- The northbound interface is utilized to shield the underlying heterogeneity and support different kinds of devices to meet system scalability requirements. At the same time, a southbound interface is provided to the user application for development. The southbound interfaces support different styles of API interfaces, such as Web Service, the open source Platform API, RESTful style interface, and SDK.
- Multiple open source platforms are integrated. In a large-scale IoT application environment—for example a smart city—different subsystems may adopt different open source platforms or self-development platforms. One of the goals of the system is to use Web of Things technology to implement service interactions between different platforms.
- The architecture proposed here implements the context processing mechanism through application layer business logic, such as complex event processing, which provides more intelligent application processing capabilities.
- Distributed resource management and blockchain-based resource billing.
4. Evaluation
4.1. System Function
- The integrated application development platform is described here using the system functions implementation.
- The experiment was conducted using a campus network environment. Each measurement result was obtained by performing the test 50 times. Experiments under more complex network conditions will be conducted in the future.
- We tested the availability of architecture that uses only one kind of gateway technology; the interoperability between different subsystems using different kinds of open source gateways will be studied further.
4.2. System Performance Analysis
5. Conclusions
Funding
Conflicts of Interest
References
- ITU-T Recommendation Y, 2066. Common Requirements of the Internet of Things. Available online: https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=12169&lang=en (accessed on 18 July 2017).
- Shen, S.; Yang, Z. Architecture of Internet of Things and its standardization. J. Nanjing Univ. Posts Telecommun. 2015, 35, 1–18. [Google Scholar]
- Belli, L.; Cirani, S.; Davoli, L.; Gorrieri, A.; Mancin, M.; Picone, M. Design and Deployment of an IoT Application Oriented Testbed. IEEE Comput. 2015, 48, 32–40. [Google Scholar] [CrossRef]
- Fit IOT-LAB. Available online: https://www.iot-lab.info/ (accessed on 18 June 2018).
- Sotres, P.; Santana, J.R.; Sanchez, L.; Lanza, J.; Munoz, L. Practical Lessons from the Deployment and Management of a Smart City Internet-of-Things Infrastructure: The SmartSantander Testbed Case. IEEE Access 2017, 5, 14309–14322. [Google Scholar] [CrossRef]
- Sánchez, L.; Gutiérrez, V.; Galach, J.A.; Sotres, P.; Santana, J.R.; Casanueva, J.; Muñoz, L. SmartSantander: Experimentation and service provision in the smart city. In Proceedings of the 16th International Symposium on Wireless Personal Multimedia Communications (WPMC), Atlantic City, NJ, USA, 24–27 June 2013; pp. 1–6. [Google Scholar]
- Da Cruz, M.A.A.; Rodrigues, J.J.P.C.; Al-Muhtadi, J.; Korotaev, V.; Albuquerque, V.H.C. A Reference Model for Internet of Things Middleware. IEEE Internet Things J. 2018, 99, 871–883. [Google Scholar] [CrossRef]
- Razzaque, M.A.; Milojevic-Jevric, M.; Palade, A.; Clarke, S. Middleware for Internet of Things: A Survey. IEEE Internet Things J. 2016, 3, 70–95. [Google Scholar] [CrossRef]
- Palade, A.; Cabrera, C.; White, G.; Razzaque, M.A.; Clarke, S. Middleware for Internet of Things: A quantitative evaluation in small scale. In Proceedings of the IEEE 18th International Symposium on a World of Wireless, Mobile and Multimedia Networks (WoWMoM), Macau, China, 12–15 June 2017; pp. 1–6. [Google Scholar]
- Savaglio, C.; Fortino, G. Autonomic and Cognitive Architectures for the Internet of Things. In Proceedings of the IDCS 2015 Proceedings of the 8th International Conference on Internet and Distributed Computing Systems, Windsor, UK, 2–4 September 2015; pp. 39–47. [Google Scholar]
- Fortino, G.; Savaglio, C.; Puga, J.S.D.; Ganzha, M.; Paprzycki, M.; Montesinos, M.; Liotta, A.; Llop, M. Towards Multi-layer Interoperability of Heterogeneous IoT Platforms: The INTER-IoT Approach. In Integration, Interconnection, and Interoperability of IoT Systems; Internet of Things Book Series (ITTCC); Springer: Dordrecht, The Netherlands, 2018; pp. 199–232. ISBN 978-3-319-61299-7. [Google Scholar]
- Savaglio, C.; Fortino, G.; Gravina, R.; Russo, W. A methodology for integrating internet of things platforms. In Proceedings of the 2018 IEEE International Conference on Cloud Engineering (IC2E), Orlando, FL, USA, 17–20 April 2018; pp. 317–322. [Google Scholar]
- BlueZ. Available online: http://www.bluez.org/bluez-architecture-overview/ (accessed on 2 May 2018).
- Android BLE. Available online: http://www.huwei.tech/ (accessed on 7 June 2018).
- Yoon, C.; Choi, H.; Cho, J.; Kim, Y.W. CoAP over BLE-GATT for OCF. In Proceedings of the International Conference on Information and Communication Technology Convergence: ICT Convergence Technologies Leading the Fourth Industrial Revolution, ICTC, Jeju, Korea, 18–20 October 2017; pp. 32–34. [Google Scholar]
- Noble. Available online: https://github.com/noble/noble (accessed on 5 May 2018).
- A Node.js Module for Implementing BLE (Bluetooth Low Energy) Peripherals. Available online: https://github.com/noble/bleno (accessed on 5 May 2018).
- NFC Tools. Available online: http://nfc-tools.org/ (accessed on 8 May 2018).
- Sinha, R.S.; Wei, Y.; Hwang, S.H. A survey on LPWA technology: LoRa and NB-IoT. ICT Express 2017, 3, 14–21. [Google Scholar] [CrossRef] [Green Version]
- LoRa Gateway Bridge Abstracts the Packet Forwarder Protocol into JSON over MQTT. Available online: http://docs.loraserver.io/lora-gateway-bridge/ (accessed on 5 May 2018).
- Raza, U.; Kulkarni, P.; Sooriyabandara, M. Low Power Wide Area Networks: An Overview. IEEE Commun. Surv. Tutor. 2017, 19, 855–873. [Google Scholar] [CrossRef] [Green Version]
- Easy-Iot. Available online: https://www.easy-iot.cn/ (accessed on 9 May 2018).
- CodeLab. Available online: https://github.com/softbaddog/iot-codelabs (accessed on 9 May 2018).
- Information Technology—UPnP Device Architecture. Available online: https://www.iso.org/standard/69286.html (accessed on 10 May 2018).
- Bormann, C. Internet Engineering Task Force (IETF) Request for Comments: RFC 7049. Available online: http://cbor.io/ (accessed on 10 May 2018).
- Pavel, K. Implementace a Evaluace Protokolu CBOR. Bachelor Thesis, Charles University, Prague, Czech Republic, 2015. [Google Scholar]
- Flatbuffers Overview. Available online: https://google.github.io/flatbuffers/ (accessed on 10 May 2018).
- Protocol Buffers. Available online: https://developers.google.com/protocol-buffers/ (accessed on 10 May 2018).
- Iotdb-Vocabulary. Available online: https://github.com/dpjanes/iotdb-vocabulary (accessed on 12 May 2018).
- Iotdb-Models. Available online: https://github.com/dpjanes/iotdb-models (accessed on 12 May 2018).
- Gyrard, A.; Datta, S.K.; Bonnet, C. Cross-Domain Internet of Things Application Development: M3 Framework and Evaluation. In Proceedings of the 3rd International Conference on Future Internet of Things and Cloud, Rome, Italy, 24–26 August 2015; pp. 9–16. [Google Scholar]
- Schachinger, D.; Kastner, W. Semantic interface for machine-to-machine communication in building automation. In Proceedings of the IEEE 13th International Workshop on Factory Communication Systems (WFCS), Trondheim, Norway, 31 May–2 June 2017. [Google Scholar]
- Fiware-Iot-Discovery-sr. Available online: https://github.com/UniSurreyIoT/fiware-iot-discovery (accessed on 10 May 2018).
- Semantic Annotator. Available online: https://github.com/komi786/SemanticAnnotator (accessed on 20 May 2018).
- Aura-Middleware. Available online: https://github.com/AuraMiddleware/aura-middleware (accessed on 20 May 2018).
- Blackstock, M.; Lea, R. IoT interoperability: A hub-based approach. In Proceedings of the International Conference on the Internet of Things, Cambridge, MA, USA, 6–8 October 2014; pp. 79–84. [Google Scholar]
- Kuang, Y. Communication between PLC and Arduino Based on Modbus Protocol. In Proceedings of the 4th International Conference on Instrumentation and Measurement, Computer, Communication and Control, Harbin, China, 18–20 September 2014; pp. 370–373. [Google Scholar]
- Eclipse Paho. Available online: https://www.eclipse.org/paho/ (accessed on 20 May 2018).
- Moquette. Available online: https://github.com/andsel/moquette (accessed on 25 May 2018).
- Command Line Tools Written in C for the MQTT-SN (MQTT For Sensor Networks) protocol. Available online: https://github.com/njh/mqtt-sn-tools (accessed on 25 May 2018).
- Constrained Application Protocol (CoAP) Draft-Ietf-Core-Coap-08. Available online: https://datatracker.ietf.org/doc/draft-ietf-core-coap/ (accessed on 25 November 2017).
- Unified Architecture. Available online: https://opcfoundation.org/about/opc-technologies/opc-ua/ (accessed on 25 May 2018).
- Eclipse TinyDTLS. Available online: https://projects.eclipse.org/projects/iot.tinydtls (accessed on 30 May 2018).
- Eclipse Scandium. Available online: http://www.eclipse.org/californium (accessed on 30 May 2018).
- Mbed TLS. Available online: https://tls.mbed.org/ (accessed on 30 May 2018).
- Eclipse hawkBit. Available online: https://github.com/eclipse/hawkbit (accessed on 30 May 2018).
- Rao, S.; Chendanda, D.; Deshpande, C.; Lakkundi, V. Implementing LWM2M in constrained IoT devices. In Proceedings of the IEEE Conference on Wireless Sensors, Melaka, Malaysia, 24–26 August 2015; pp. 52–57. [Google Scholar]
- Betwixt. Available online: https://github.com/zubairhamed/betwixt (accessed on 30 May 2018).
- Wakaama. Available online: https://eclipse.org/wakaama/ (accessed on 30 May 2018).
- AwaLWM2M. Available online: https://github.com/ConnectivityFoundry/AwaLWM2M (accessed on 30 May 2018).
- Eclipse Leshan. Available online: https://eclipse.org/leshan/ (accessed on 30 May 2018).
- Eclipse Kura. Available online: https://www.eclipse.org/kura/ (accessed on 30 June 2017).
- Zetta. Available online: http://www.zettajs.org/ (accessed on 30 June 2017).
- Lee, J.C.; Jeon, J.H.; Kim, S.H. Design and implementation of healthcare resource model on IoTivity platform. In Proceedings of the International Conference on Information and Communication Technology Convergence, Jeju, Korea, 19–21 October 2016; pp. 887–891. [Google Scholar]
- Costa, D.; Mingozzi, E.; Tanganelli, G.; Vallati, C. An AllJoyn to CoAP bridge. In Proceedings of the IEEE 3rd World Forum on Internet of Things, Reston, VA, USA, 12–14 December 2016; pp. 395–400. [Google Scholar]
- Kim, J.; Lee, J.W. An open service framework for the Internet of Things. In Proceedings of the IEEE World Forum on Internet of Things (WF-IoT), Seoul, Korea, 6–8 March 2014; pp. 89–93. [Google Scholar]
- SiteWhere LLC., SiteWhere System Architecture. Available online: http://documentation.sitewhere.org/architecture.html (accessed on 30 May 2018).
- Thinger.io. Available online: https://www.thinger.io/ (accessed on 10 June 2018).
- Kodali, R.K.; Sundeep, V.; Gorantla, K. RESTful Motion Detection and Notification using IoT. In Proceedings of the International Conference on Computer Communication and Informatics (ICCCI), Coimbatore, Tamilnadu, India, 4–6 January 2018; pp. 1–5. [Google Scholar]
- Zander, J. Smart emergency response system. In Proceedings of the TENCON 2017–2017 IEEE Region 10 Conference, Penang, Malaysia, 5–8 November 2017; pp. 712–717. [Google Scholar]
- WSO2IoT. Available online: https://wso2.com/iot (accessed on 10 June 2018).
- ThingsBoard. Available online: https://thingsboard.io/ (accessed on 12 June 2018).
- Alavi, S.A.; Rahimian, A.; Mehran, K.; Alaleddin, J.A.M. An IoT-Based Data Collection Platform for Situational Awareness-Centric Microgrids. In Proceedings of the IEEE Canadian Conference on Electrical & Computer Engineering (CCECE), Quebec City, QC, Canada, 13–16 May 2018. [Google Scholar]
- Paolis, L.T.D.; Luca, V.D.; Paiano, R. Sensor Data collection and analytics with ThingsBoard and Spark Streaming. In Proceedings of the IEEE Workshop on Environmental, Energy, and Structural Monitoring Systems (EESMS), Salerno, Italy, 21–22 June 2018; pp. 1–6. [Google Scholar]
- DeviceHive. Available online: https://devicehive.com/ (accessed on 15 June 2018).
- Lyaskov, M.; Spasov, G.; Petrova, G. A practical implementation of smart home energy data storage and control application based on cloud services. In Proceedings of the 2017 XXVI International Scientific Conference Electronics (ET), Sozopol, Bulgaria, 13–15 September 2017; pp. 1–4. [Google Scholar]
- Shopov, M.P. An M2M solution for smart metering in electrical power systems. In Proceedings of the 39th International Convention on Information and Communication Technology, Electronics and Microelectronics, Opatija, Croatia, 30 May–3 June 2016; pp. 1141–1144. [Google Scholar]
- ThingSpeak. Available online: https://thingspeak.com/ (accessed on 15 June 2018).
- AshifuddinMondal, M.; Rehena, Z. IoT Based Intelligent Agriculture Field Monitoring System. In Proceedings of the 8th International Conference on Cloud Computing, Data Science & Engineering (Confluence), Noida, India, 11–12 January 2018; pp. 625–629. [Google Scholar]
- Mendiratta, S.; Dey, D.; Rani Sona, D. Automatic car parking system with visual indicator along with IoT. In Proceedings of the International Conference on Microelectronic Devices, Circuits and Systems, ICMDCS 2017, Vellore, India, 10–12 August 2017; pp. 1–3. [Google Scholar]
- VSCP (Very Simple Control Protocol). Available online: http://www.vscp.org/ (accessed on 15 June 2018).
- Macchina.io. Available online: https://www.macchina.io/ (accessed on 15 June 2018).
- T6IotApp. Available online: https://api.internetcollaboratif.info/ (accessed on 15 June 2018).
- Distributed Services Architecture for IoT (DSA). Available online: http://iot-dsa.org/ (accessed on 16 June 2018).
- Kaa. Available online: https://www.kaaproject.org/ (accessed on 16 June 2018).
- Cruz Huacarpuma, R.; de Sousa Junior, R.; de Holanda, M.; de Oliveira Albuquerque, R.; García Villalba, L. Distributed Data Service for Data Management in Internet of Things Middleware. Sensors 2017, 17, 977. [Google Scholar] [CrossRef] [PubMed]
- PlatformIO. Available online: https://platformio.org/ (accessed on 20 June 2018).
- Mainflux. Available online: https://www.mainflux.com/ (accessed on 20 June 2018).
- Patchwork. Available online: http://patchwork-toolkitgithub.io/ (accessed on 20 June 2018).
- Eclipse Kapua. Available online: https://www.eclipse.org/Kapua/ (accessed on 25 June 2018).
- Fortino, G.; Savaglio, C.; Zhou, M. Toward opportunistic services for the industrial Internet of Thing. In Proceedings of the 13th IEEE Conference on Automation Science and Engineering (CASE), Xi’an, China, 20–23 August 2017; pp. 825–830. [Google Scholar]
- Esquiagola, J.; Costa, L.; Calcina, P.; Fedrecheski, G.; Zuffo, M. Performance Testing of an Internet of Things Platform. In Proceedings of the 2nd International Conference on Internet of Things, Big Data and Security, Porto, Portugal, 24–26 April 2017; pp. 309–314. [Google Scholar]
- Babovic, Z.; Protic, J.; Milutinovic, V. Web Performance Evaluation for Internet of Things Applications. IEEE Access 2016, 4, 6974–6992. [Google Scholar] [CrossRef]
Product | Function | Language | Licenses | Update | Maturity | |
---|---|---|---|---|---|---|
Semantic description | iotdb-vocabulary [29] iotdb-models [30] | Describe the semantic model of the items such as sensors and controllers. The model is relatively simple. | Python JS | GPL-3.0 Apache 2.0 | 2016 2016 | Personal development |
Semantic framework | M3Framework [31] | Provides semantic processing framework such as M3/SWoT/SSN/S-LOR/LOV4IOT etc. | Web Ontology | GPL-3.0 | 2016 | Professional academical team and some companies |
Semantic interface | SemanticInterface [32] | Provide semantic interface for service discovery | Java | MIT | 2017 | Personal development |
Semantic discovery | fiware-iot-discovery-sr [33] | Semantic registration of IoT resources, entities and service descriptions | Java | / | 2016 | University of Surrey |
IoT data semantic annotation | semantic_Annotator [34] | Semantic data annotation of one M2M resources, currently supporting Smart Park scenarios | JS | / | 2018 | Personal development |
Semantic middleware for IoT | aura-middleware [35] | Facilitates the development of IoT applications and shields the differences between sensors so that they can work together | Python | GPL-3.0 | 2016 | Personal development |
Resource Discovery | Supported Protocol | Communication Mode | Openness | Security | Scenario | |
---|---|---|---|---|---|---|
Modbus | - | TCP/Serial/Ethernet | Master–slave polling, Request/response. and 1-to-n | No open API and requiring professional knowledge for development | - | Industrial automation, monitoring and data acquisition |
OPC-UA | Local or network server discovery | Protocol independent | Publish/subscribe and event-based notification | Device integration with enterprise application, No high-level API | encryption/audit/authentication | Industrial automation |
MQTT | - | TCP/IP, WebSocket | 1-to-n based on publish/subscribe mode | Strong openness | encryption/authorization/authentication | Loosely coupled integration between applications |
CoAP | Resource discovery and storage | UDP | Request/response, publish/subscribe, Multicast | Strong openness | encryption | Device integration with WWW |
P1 1 | P2 2 | P3 3 | P4 4 | P5 5 | P6 6 | P7 7 | P8 8 | P9 9 | |
---|---|---|---|---|---|---|---|---|---|
Kura | √ | √ | √ | √ | X | √ | GW 11/AP 12 | SSL | Great |
Zetta | √ | X | √ | CS 10 | Data stream | √ | √ | X | Good |
Iotivity | √ | √ | √ | CS | X | √ | √ | √ | Excellent |
Alljoyn | √ | √ | √ | √ | X | √ | GW/AP | √ | Excellent |
OpenIot | X | X | X | CS | SP 13 | X | AP | AA 14 | Good |
SiteWhere | √ | √ | √ | CS/LS 15 | √ | √ | AP | √ | Good |
Thinger.io | √ | √ | / | CS | / | √ | √ | / | Good |
WSO2IoT | √ | √ | √ | CS | √ | √ | √ | √ | Excellent |
ThingsBoard | √ | √ | √ | CS | √ | RPC | GW | AA | Excellent |
DeviceHive | √ | √ | √ | √ | √ | GW | √ | Good | |
ThingSpeak | √ | X | √ | CS | √ | √ | AP | / | Great |
VSCP | √ | √ | √ | X | X | X | GW | / | Good |
Macchina.io | √ | X | √ | √ | X | √ | GW | √ | Good |
T6Iot | A few | X | X | / | √ | √ | AP | √ | Poor |
DSA | √ | X | WS 16/Http | LS | X | X | GW | √ | Good |
Kaa | √ | √ | √ | √ | √ | √ | √ | / | Good |
PlatformIO | √ | X | X | X | X | X | X | / | Good |
Mainflux | √ | √ | √ | √ | √ | √ | √ | √ | Good |
Patchwork | √ | X | √ | X | X | √ | GW | / | Poor |
Layer | Sub-Requirement | Layer | Sub-Requirement | ||
---|---|---|---|---|---|
Device layer | Connection management based on identification | No | Data layer | Data classification | No |
Plug and play | Yes | Rule-based data fusion and data mining | Yes | ||
Mobility management | No | Data semantic annotation and query | Yes | ||
Device integrity check | No | Data exchange/aggregation | Yes | ||
Data lifecycle management | No | ||||
Data description | Yes | ||||
Communication layer | Event-based/multicast communication | Yes | Service layer | Service composition | Yes |
Content-aware communication | No | Semantic-based service | Yes | ||
Self-Management, self-heal, self-optimization, self-protection | No | Mobility service | No | ||
Periodic communication | No | Autonomous service | No | ||
Heterogeneous communication integration | Yes | Personalized service | Yes | ||
Scenario aware service | No | ||||
Application development | Programming API | Yes | Security and privacy | Authentication/ Authorization/Audit | Yes |
Group management | Yes | Privacy protection | No | ||
Collaboration requirement | No | Security policy | No | ||
Resource accounting | No |
Technology | Product Name and Quantity |
---|---|
Gateway | Raspberry Pi 3 B+ running Eclipse Kura and CoAP Server |
Link | LoRA protocol: Lora-gate-bridge, Loraserver, Lora-app-server, packet forwarder, or wireless and wired LAN established via Tp-Link |
LoRAWAN Gateway | 1 |
LoRA Terminal Module | 2 |
Transfer protocol | CoAP/HTTP/MQTT/WebSocket |
Security | DTLS Eclipse Scandium |
Sensors | One temperature and humidity sensor DHT11 connected with GPIO, Two LED lights |
MQTT Client | PC |
Cloud Platform | Docker-based Eclipse Kapua running on ThinkPad T470 Laptop |
CoAP Client | Copper1.0.1 + Firefox55 plugin |
GUI | Node-Red +node-red-contrib-coap 0.3.0 |
© 2018 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Li, Y. An Integrated Platform for the Internet of Things Based on an Open Source Ecosystem. Future Internet 2018, 10, 105. https://doi.org/10.3390/fi10110105
Li Y. An Integrated Platform for the Internet of Things Based on an Open Source Ecosystem. Future Internet. 2018; 10(11):105. https://doi.org/10.3390/fi10110105
Chicago/Turabian StyleLi, YangQun. 2018. "An Integrated Platform for the Internet of Things Based on an Open Source Ecosystem" Future Internet 10, no. 11: 105. https://doi.org/10.3390/fi10110105
APA StyleLi, Y. (2018). An Integrated Platform for the Internet of Things Based on an Open Source Ecosystem. Future Internet, 10(11), 105. https://doi.org/10.3390/fi10110105