Hsiao 2021

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

Internet of Things 16 (2021) 100441

Contents lists available at ScienceDirect

Internet of Things
journal homepage: www.sciencedirect.com/journal/internet-of-things

OPIIoT: Design and Implementation of an Open Communication


Protocol Platform for Industrial Internet of Things
Chi-Hung Hsiao, Wei-Po Lee *
Department of Information Management, National Sun Yat-sen University, Kaohsiung, Taiwan

A R T I C L E I N F O A B S T R A C T

Keywords: The industrial internet of things (IIoT) is an intelligent network of industrial components that can
Industrial Internet of Things communicate with each other to enhance the performance of manufacturing and industrial
Open Communication Protocol processes. For the many advantages, such as less no contracts, free to develop and high inter­
Open Source Platform
operability, in this work we propose using open-source technologies to develop IIoT platforms for
Industry 4.0
information integration and data analysis. To realize the development and deployment of open
source IIoTs, we present our framework OPIIoT (Open Communication Protocol Platform for
Industrial Internet of Things) with the system construction cycle to solve various integration
problems of operational technology and information technology. Moreover, we describe the
underlying design principles and the implementation details of the proposed framework are given
to make it more understandable and applicable to the IIoT platform developers. To verify the
proposed framework, we have conducted both qualitative and quantitative evaluations. We have
compared the important features of our OPIIoT and several commercial platforms for industry,
performed trials on data communication and analytics for information supports, and demon­
strated the web interface for system implementation. The results prove the efficiency and effec­
tiveness of the proposed framework.

1. Introduction

Adopting Internet of Things (IoT) to industrial environments and processes leads to the development of Industrial IoT that involves
an intelligent network of industrial components that communicate with each other to enhance the performance of manufacturing and
industrial processes [1,2,3]. Communication technologies are used to monitor, exchange, and collect data in real time to promote
productivity, efficiency, traceability, reliability and security with reduced cost to support the smart factory. Here, Industry 4.0 not only
considers what technologies to integrate; it also deals with how to acquire, share, use, and organize data/resources to make the
product/service deliver faster, cheaper, more effective and more sustainable. Regarding such advantages, this work aims to provide an
open communication protocol framework for developing the industrial internet of things (IIoT) platforms.
To enable the communication among different types of IIoT devices and to ensure data collected being compatible with each other,
software and hardware engineers have been developing common and standard communication protocols for machine-to-machine
(M2M) networks [4,5,6]. Though many enterprises aim to move toward Industry 4.0, the IIoT developers still need to understand
the specific features required for practical applications so as to choose appropriate IIoT communication protocols for their application
platforms. Traditionally, the control of information from the industrial equipment mostly depends on the specific communication

* Corresponding author.
E-mail address: [email protected] (W.-P. Lee).

https://doi.org/10.1016/j.iot.2021.100441
Received 21 March 2021; Received in revised form 4 June 2021; Accepted 29 July 2021
Available online 2 August 2021
2542-6605/© 2021 Elsevier B.V. All rights reserved.
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

protocol between the control system and the device supplier, such as Mitsubishi CC-Link IE, Rockwell Automation EtherNet/IP,
Siemens Profinet and Fanuc CNC communication protocols. Among others, Modbus communication protocol is one of the open
standards widely adopted in the industries; SECS/GEM (SEMI Equipment Communication Standard/Generic Equipment Model) is a
data communication device interface protocol used for connecting semiconductor devices to the host; and WebSocket is a popular
communication protocol for the infrastructure development of many industrial applications. However, the integration of different
networking techniques required to achieve a high performance IIoT is challenging. Often, commercial platforms use proprietary so­
lutions with limitations of interoperability and expandability, while companies have to tailor their IT (information technology) sys­
tems to meet such demands, and to unify their hardware and software tools to maximize the profit. Having the advantages of less
expensive, no contracts, free to develop and modify, high interoperability and expandability, the open-source technology thus provides
an ideal solution to develop an IIoT platform to meet the requirements of the company.
The current open communication standards in use related to the development of IIoT platforms, such as Open Platform Commu­
nications Unified Architecture (OPC UA [7]), Advanced Message Queuing Protocol (AMQP [8]), Message Queuing Telemetry
Transport (MQTT [9]), Representational State Transfer (REST [10]) and MTConnect ([11]) standard communication protocols can
fulfill the requirements of the industry. However, an integrated work is still required to establish a complete open platform. Therefore,
in this study, we propose using free and open resources to develop an IIoT communication protocol platform, covering the architecture
to the implementation levels. Instead of studying novel methods for system components, our goal is to provide a practical and inte­
grated platform with design guidelines and implementation details for industry. We thus present the Open Communication Protocol
Platform for Industrial Internet of Things (hereafter, OPIIoT) to solve various Operation Technology (OT) and IT information inte­
gration problems. Also, we create a web application framework that can support the developers to conveniently adopt our design to
construct their own IIoT platforms. Using this web application framework, the developers can easily perform several system opera­
tions, for example, choosing suitable industrial communication standards, system security, developer training, data storage analysis,
process integration, and BOM (bill of material) formula table management analysis. Our work provides users flexible channels for
customization, scalability, and independent data authority management. With a self-developed customized platform, enterprises can
easily achieve the goal of Industry 4.0.
To make the proposed OPIIoT more understandable and applicable to the developers, in this study we describe its underlying design
principles and implementation details, including the system architecture with the corresponding working flow and the system con­
struction cycle, the free open-source designed OPC UA industrial communication protocol, and the data management techniques.
Because we aim to develop an open-source platform, we adopt Python programming language for implementation. From the per­
spectives of developing an open IIoT, our platform has several unique features: stable and secured data transmission; high reliability,
customization and scalability; cross-platform and compatible with the popular machine learning toolkit (e.g., scikit-learn [12]) and
deep learning framework (e.g., TensorFlow [13]); and most importantly, a very low construction cost. With these features, our OPIIoT
can accurately and timely deploy available manufacturing resources for optimized company operations by analyzing the huge amounts
of data collected. To verify the proposed framework, we perform a series of qualitative comparison of platform features and quan­
titative performance evaluations. The results confirm its efficiency and effectiveness.

2. Background and Related Work

As mentioned above, though the IIoT can be taken as the IoT paradigm for industrial environments, due to some key differences
between the two [2,14], the IoT platforms cannot be deployed to the industrial applications directly. At present, platforms suitable for
industrial use are not common in practice, and there is very little support for the communication of the industrial automation devices
(logic controllers) especially. The IIoT platform has to perform functions like SCADA (Supervisory Control and Data Acquisition) and
HMI (Human Machine Interface) graphic control, statistical analysis plan, and quickly store a large amount of data analytics results.
Moreover, the cost for utilizing commercial platforms needs to be taken into account. Even if an enterprise chooses to develop its own
platform, notably the initial construction cost is often high and the annually updating and maintenance cost is required.
Industrial Internet Consortium (IIC) has provided a generic architecture of IIoT systems [15], and based on this architecture many
studies have built their application platforms with specific features. For example, Lee et al. presented an IIoT suite to communicate with
a secured connection channel between the network and IoT devices in real time and to facilitate the communication, data exchange
and data processing between the devices [16]. Tao et al. proposed an IIoT based hub to cope with the issues of the deployment,
configuration, and interaction between heterogeneous devices [17]. The hub is responsible for connecting devices through a group of
communication protocols and working as a bridge between a specially designed customized access module and the factory workers
with smart terminals. Meanwhile, Kaleem et al. proposed a specific architecture for public safety, in which the authors employed
up-to-date technologies to achieve the resilience against disaster with lower communication delay [18]. The authors claimed that their
architecture can be applied to the IIoT environment to provide efficient and low-cost data processing and data communication services.
In addition to network architecture, data analytics is another important issue to consider in the recent development of IoT/IIoT
platforms [1,2,19]. It is to promote multiple-source data collection, comprehensive data analysis and real-time decision-making
support, and it has been widely adopted in manufacturing to monitor the process [20,21,22]. To improve production and operation
performance of the enterprise, new techniques are required to fully utilize the outcomes derived from the collected big data, for
example, techniques to ensure the data consistency and confidentiality in a long and complex supply chain [21,23]. Machine learning
methods and tools have been advocated in data analytics for predictive maintenance, time management, and cost control. In fact, the
industrial Internet of Things and machine learning models are now inseparable (though operated independently) entities for optimal
solutions as far as the industrial context is concerned [19,24,25,26].

2
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

The most related works consider various aspects of open software, including open source, open standards, open APIs, open data and
open layers [27]. Based on the open source software and communication protocols, Campobello et al. proposed a solution for IIoT [14]
and suggested IPv6 as a requirement for IIoT due to its flexibility. However, incorporating different network technologies to obtain a
high-performance IIoT platform remains difficult. Martinez et al. proposed an open industrial hardware platform for sensing and
connectivity called I3Mote, a prototyping hardware aiming to provide all sensing and connectivity features required for IIoT [28]. With
its open hardware and software support, it is suitable for fast automation and adoption in industrial sectors. More comprehensive
comparisons of research efforts for IIoT and open IIoT frameworks can be found in the recent surveys [2,27,28], and the key enabling
technologies and definitions can be found in [5,29,30].
As indicated above, this work focuses on providing practical guidelines and design details to implement an open-source IIoT system
suitable for industrial applications. Therefore, considering the availability and practicality, in the following we will further analyze the
important features in current commercial applications, communication protocols and open-source solutions for developing an IIoT
platform.

2.1. Choices of Industrial IoT Communication Protocols

To successfully deploy an industrial 4.0 application, the first essential issue is to select a suitable IIoT communication protocol to
work with the platform. Here the users (or developers) have to analyze the features of different protocols and to clarify the demands of
their specific applications. As we propose an open-source framework and choose the open industrial communication standard protocol,
OPC UA, to develop the platform. This protocol is considered most suitable for enterprise applications in accordance with the IEC
62541 standard specification, including the end-to-end data transmission security. Using OPC UA can inherit its innovative data se­
curity: IEC 62541 standard protocol specifies the OPC UA mapping between the security model, the abstract service definitions, the
data structures and the physical network protocols that can be used to implement the OPC UA specification. Moreover, the OPC UA
architecture has a service-oriented architecture (SOA [31,32]) and it is organized on different logical levels. Corresponding to the OPC
UA logical levels, OPC UA communication redundancy can be used to provide the timeout settings for device connections. Meanwhile,
OPC Base Services are abstract method descriptions that are protocol independent. They can provide the basis for OPC UA func­
tionality. To consider different features of IIoT communication protocols, in Table 1 we compare the important ones, including OPC DA
(data access), OPC UA, AQMP, MQTT and MTConnect. As can be seen, the OPC UA has features of high security, interoperability,
scalability, programming language support, data writable, and cross-platform. It thus provides a suitable and practical choice of
communication protocol for IIoT applications.
In 2020, the OPC Foundation provided instructions for using OPC UA in conjunction with JavaScript, JSON and REST. OPC UA has
a layered architecture [7]. From the UA client/server application layer, many OPC UA protocols have been designed with APIs that can
be inserted into the .Net Framework, C++/ANSI-C, and Java, and new transports and data encoding supports can be easily included.
The OPC UA application program is developed through HTTPS that quickly converts JSON through REST. Fig. 1 illustrates how the
OPC UA Layer uses the data encodings in its layered architecture (adopted from [7]).

2.2. The Open-Source Solution: Python Design and Implementation

Using Python as the programming language for the implementation of open IIoT platforms has many advantages: the developed
platform can integrate and execute different operating systems (such as Windows, Max OS X and Linux); it solves the operating
problem of small embedded system processors in industrial environments [33]; and it is compatible with the popular Python machine
learning toolkits and frameworks for data analytics.
Python is suitable for free open-source design. It is free to adopt Python’s open-source IIoT multiple communication gateway and
web framework design architecture (i.e., Model View Controller, MVC). Python can be used to develop software modules easily in­
tegrated to the original system. For example, Google developed many projects in C++ that requires integration of the extremely high-
performance application service engine and control hardware. Such projects were integrated with Python or Java/Go modules for

Table 1
Comparisons of various IIoT communication protocols
Communication Protocol
Features OPC DA OPC UA AMQP MQTT MTConnect

Transmission Format XML, binary XML, binary Binary binary XML


Basic Protocol Web Service, TCP Web Service, TCP Web Service, TCP Http, Web Service, TCP HTTP RESTful
Complexity Middle Middle Low Low Low
Security Low High High High High
Transmission Performance Low (binary+TCP) Low (binary+TCP) Low (binary+TCP) Middle (binary+TCP) High (HTTP+XML)
sSecurity Protocol None SSL/TLS SASL, SSL/TLS SSL MD5
ISO/IEC International Standard None ISO/IEC 62541 ISO/IEC 19464:2014 ISO/IEC PRF 20922 ANSI/MTC1.4-2018
Data Written Yes Yes Yes Yes Yes
Cross-platform None Yes Yes Yes Yes
Interoperability Low High Middle High Low
Scalability Low High High High Middle
Programming Language Support Low High High High Middle

3
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

Fig. 1. OPC UA Layer uses data encodings architecture diagram.

rapid development [34]. In addition, the Python Django is an open-source web framework. It has the advantages of versatility,
scalability, and security specifications; it is also maintainable for MVC and thus widely used to build web support systems. Moreover,
the Python machine learning toolkit scikit-learn and deep learning TensorFlow+Keras suite library algorithms can be connected to the
industrial process databases for data analysis and cost reduction [12,13].
With the advantages of simple design and implementation, easy to use, easy to integrate with other languages, free of charge and a
complete kit development ecosystem, Python is suitable to use in the open-source IIoT platform to pack and integrate entities of
different programming languages. Therefore, in this work, we adopt Python programming language to develop our open IIoT platform.
The details are described below.

3. The Proposed OPIIoT Framework and Design Flow

After analyzing and comparing different IIoT communication protocols, here we present our Open Industrial Internet of Things
framework with a description of its design flow. Details will be given on how our open platform can be adopted and implemented for
applications of various domains, including the OPC UA server/client, device connection, database connection and management, data
analytics with machine learning, and so on.

3.1. Framework and Design Cycle

The proposed OPIIoT layered architecture and its design flow are illustrated in Fig. 2. The framework adopts the secured OPC UA
communication protocol with IIoT communication security SSL (Secure Sockets Layer) encryption certificate, IIoT platform security

Fig. 2. The proposed OPIIoT framework and flowchart.

4
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

and the system virtual machine backup. It is also connected to the NoSQL MongoDB and MSSQL databases to retrieve real-time and
historical data under the environment of specific parameter settings. The choice of database depends on the considerations of an
enterprise. SQL is easy to manage data by companies working with traditional systems, such as ERP (Enterprise Resource Planning),
MES (Manufacturing Execution Systems) and SCADA, while the data has to be carefully structured. NoSQL has high flexibility in data
structure and thus preferred, while using NoSQL has to standardize data in JSON objects and the hardware requirement (cost) is high.
These retrieved data can be analyzed and the results can be a help for further decision making (e.g., prediction for equipment
maintenance, utilization rate) through various machine learning methods (such as the machine learning toolkit scikit-learn and the
deep learning framework TensorFlow). With such enhanced features, an open IIoT platform for Industry 4.0 can be created to obtain
the best customized manufacturing production process while the cost is greatly reduced.
According to our design, the OPIIoT platform is planned to be developed in six stages to deal with the relevant technical details at
different layers, progressively connecting things to applications. As shown in Fig. 2, Stage 1 connects things for collecting data from
distributed sources, including machines, people, tools, automobiles, environment, buildings, etc. Next, Stage 2 aims to receive and
transmit data from the layer of things to the layer of multi-function communication gateway platform (defined at Stage 4). Through the
settings of device communication protocol and the OPC UA protocol, the collected data can be transmitted to the target layer (at Stage
4), regardless of the connection method. Stage 3 is to develop a PLC (programmable logic controller) communication/transmission
layer. This layer is responsible for sending data to the multi-function communication platform, through the communication trans­
mitter, PLC device and the communication modules of different devices. Then, Stage 4 is to develop a Python IIoT multiple gateway
communication layer. This layer uses Python to support multi-function communication protocols; it receives data from the commu­
nication control layer and transmits them to the data processing layer. Following the above layers for data transmission, Stage 5 aims to
develop a Python-based intelligent data analytics layer. In the analysis layer, through OPC UA or database (data sources), Python-
based machine learning and deep learning data analysis and optimization can be performed. The final stage is to develop an
OPIIoT web application layer. This Web UI (user interface) and UX (user experience) layer uses Java, JQuery, RWD (Responsive Web
Design) to display the real-time and historical values used for the device maintenance prediction, utilization, automatic bridging, cost
calculation and JSON/CSV data import/export.
The proposed OPIIoT is a general platform that can be customized for any kinds of companies. After the IT director of an enterprise
is familiar with its design principles and implementation details, ideally he can efficiently schedule and distribute the six stages of work
into six weeks. The developing time may be longer than this schedule, if taking into account other factors such as the type of equipment
the company owns and the experiences of the engineers. Fig. 3(a) illustrates the entire construction cycle, including the target task

Fig. 3. (a) OPIIoT construction cycle; and (b) the schedule of system construction.

5
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

(corresponding to the specified layers) and the working weeks, and Fig. 3(b) describes the operating processes for each layer. The
working stages of the OPIIoT system construction cycle are planned for general cases, the operations required for different plants may
vary from applications to applications in practice. For example, at the beginning of the plant construction or a newly initiated process
of hardware devices planning, there is no unified device communication protocol provided. Therefore, during the first four stages of
the developmental cycle, more time is needed than the originally scheduled in planning for data collection and integration. It is thus
very important to choose a suitable industrial communication protocol to speed up the platform development.
As mentioned above, our OPIIoT system framework is designed to provide an open-source solution for companies intending to plan
or construct intelligent and transparent plants. Using an open-source platform has several unique features, mainly including the OPC
UA industrial communication protocol ramp (gateway), data protection regulation, machine learning, and Web RWD interface. As
mentioned above, to achieve the open-source IIoT design and implementation, we choose Python to develop the data-level processes.
Python can work on the most popular operating environments (like Windows and Linux), and can run with a variety of interpreting
environments, such as CPython, IronPython, and Jython. In addition, the embedded Python is designed for equipment of IIoT, con­
necting the NoSQL database MongoDB with the relational database MSSQL for applications with real-time data. Eventually, the big
data analytics of the smart industrial manufacturing environment can be performed.
In the developmental cycle, at Stage 4 we adopt the industrial Ethernet communication protocol standard OPC UA to create a
Python programming language platform (Web IoT platform). In detail, we develop the OPC server/client of the IIoT communication
protocol architecture to bridge the low-level device drivers written in C/C++ and connect the server/ client to the industrial databases,
allowing this platform to integrate the corresponding modules for rapid development. Then, at Stage 5 Python is used for the
implementation of OPIIoT applications, mainly to perform data analytics with machine learning algorithms. Through the machine
learning toolkit scikit-learn and deep learning frameworks TensorFlow, AI techniques can be used to predict equipment maintenance
and to perform optimized processes to reduce cost. Following the above stages, at Stage 6 we perform OPIIoT web performance
evaluation.

3.2. Construction of the Open Platform Software and Communication Protocol

In OPIIoT, we implement a Python-based IIoT multiple communication protocol gateway to build OPC UA for providing the real-
time information of production lines and solving the integration problem of OT (Operational Technology) and IT. The IIoT applications
require the connections of many devices and systems to collect and share large amount of high-quality data across OT and IT platforms.
The protocols must be connected to achieve the interoperability of OT, IT and IIoT platforms. Therefore, we develop an open source
communication protocol under the control of SSL encryption security, with which any device conforming to the OPC UA communi­
cation protocol standard can be connected to the platform presented in the above section to read and write data. The details are

Fig. 4. The open-source code for the implementation of Python OPC UA server.

6
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

described in the following subsections.

3.2.1. Using Python Multiple Gateway to Build OPC UA


The OPC tunneling communication solution has an OPC UA client/server structure to pass through the firewall and network.
Through the Python OPC UA client and other OPC UA server docking, together with the LAN (or WAN) for safe and reliable real-time
data, we can adopt the SSL encryption to safely transfer data in a reliable way.

3.2.1.1. Using Python to Implement OPC UA Server. OPC UA server uses the same way to provide data for different OPC UA clients.
Based on this characteristic, we develop Python code of OPC UA server to reduce the operation cost of repetitive data type identifi­
cation and data reading, as shown in Fig. 4. In this set of code, the most important part is the settings of IP/hostname and port of the
OPC UA server endpoint address that the client is connected to. With the security policy level SSL or TLS of the server/client trans­
mission packet communication security mechanism, the OPC UA server EventLog is recorded at the end of the program. This way, the
system can quickly diagnose the server events. The implementation settings can be used to generate the SSL encryption certificate code
of Python OPC UA.

3.2.1.2. Connecting OPC UA Client to UA Server through Tag Configuration. As mentioned above, in the code of building an OPC UA
client, the most important issue regards the settings of IP/hostname and port of the OPC UA server endpoint address for the client.
Fig. 5 presents the code of connecting Python OPC UA client to OPC UA server, in which the connection of server endpoint URL address
can be obtained by using a subscription method to read/write the value of the OPC tag in the OPC client. This method can reduce the
load of system resources occupied by the connection for OPC UA server and thus greatly enhance the transmission stability.

3.2.2. Connecting Devices through IIoT Communication Protocol


It is a common but important function to integrate various PLCs with Modbus meters or Moxa communication gateway converters
by building Python OPC UA server on the IIoT platform. In the following, we present two practical examples to illustrate how to
perform Python implementation to connect OPC UA server to the Mitsubishi Q Series Ethernet PLC, and to the Modbus communication
protocol power meter, respectively.

3.2.2.1. Using Python HslCommunication model to implement the connection. Mitsubishi PLC is a widely used device for the production
line operations in industry, so we take it as our example for demonstration. Fig. 6 shows the typical configuration of connection in
factories, with the Mitsubishi PLC and the panel (shown in Fig. 6(a)). This example is to use Python HslCommunication model [35]
through the Mitsubishi Q Series Ethernet TCP/IP Driver module and MelsecMcNet to set the IP and port to read/write the tag value.
The I/O address in the Mitsubishi Q Series Ethernet PLC is displayed by the MelsecNet IIoTs (shown in Fig. 6 (b)). The real-time
production values are cross-verified by the OPC Quick Client software to ensure the consistency.

3.2.2.2. Using Python pymodbus model to connect IIoT and a Modbus Ethernet communication protocol application. Modbus is now an
industry standard for open communication protocols. In this example, Python code is used to connect IIoT to a Schneider Modbus
communication protocol meter. Fig. 7(a) exemplifies Modbus RS485 and Ethernet communication protocol with the Schneider
PM5350 electricity meter and the Moxa NPort communication converter. Here, Python pymodbus model is connected to the common
power devices equipped in the factory [36]. We use the Python code to connect IIoT and the Modbus Ethernet Protocol of the device,
and the values shown in Fig. 7(b) are cross-verified by the OPC Quick Client software.
In IIoT applications, Modbus is often used to monitor, read and retrieve the real time and historical power (W) values of the meters.
Fig. 8 illustrates an example (revised from [37]) of using Modbus communication protocol to collect data of the current changes of
manufacturing cycles with six machines. The device power ratio of electricity consumption can be inferred from the utilization rate and
the calculated current. It can then be used to plan the electricity consumption to reduce the electricity cost [37]. The above real-time

Fig. 5. Building Python OPC UA client connection to OPC UA server.

7
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

Fig. 6. (a) Mitsubishi PLC (model: Q03UDVCPU) and panel; and (b) The Python connection device Mitsubishi PLC and the OPC Quick Client cross-
verify the values.

Fig. 7. (a) The Schneider PM5350 and Moxa NPort communication converter for Modbus Protocol; and (b) the OPC Quick Client cross-verifies
the values.

and historical power-monitoring values can be further analyzed by machine learning tools. The results can be used for abnormal
detection and maintenance prediction. An example of using Python with machine learning methods to analyze data is presented in
Section 4.1.

3.3. Database Connection and Data Management

In Industry 4.0, the database of a specific application often involves big data analytics. This study uses Python code to obtain

Fig. 8. Modbus power application specification.

8
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

connection data with equipment parameter settings, so the data collected and stored in the database can naturally be used for data
analytics. In this work, we adopt NoSQL MongoDB and the relational database MSSQL to record and operate real-time and historical
data. Other databases, such as Oracle, IBM DB2, PI System, MySQL and OPC HDA can also be applied to various applications.
The free resource NoSQL MongoDB database adopted here has several advantages: the supported Python pymongo package has a
high compatibility with the JSON format, and it is faster than the general free relational database SQL in performing data analytics.
Notably, using Python pymongo, one needs to install the pymongo package, connect the mongodb database IP and Port, set up the DB
(to be connected), read/write tags and text data of the Table Object [38].
Microsoft SQL is one of the most popular databases in the market for free trial and paid license. The management of data services
has been included into Azure, and with the Windows server operating system, this database provides a cheap and easy-to-maintain
solution for those private data of factories and enterprises. The implementation can duly be carried out via the free Python pyodbc
package: a very common way to collect and read data through the IIoT equipment and the ERP database.

3.4. Connecting Devices to OPIIoT Platform

As indicated above, our OPIIoT platform aims to connect industrial equipment and to collect the production information, so that
different Python machine learning methods can be applied for data analysis. This section describes how we revise the code originally
provided in [20] to implement the OPC UA M2M communication. Through the implementation of Python Class to specify OPC UA tag
as the only identification parameter of M2M while sending (read/write) the tag values, we can use Python OPC UA server to bridge the
networked equipment and the OPIIoT platform. This is considered as the best way of establishing connections between industrial
equipment and the Internet of Things. The Python code developed at the OPC UA data access point can ensure the consistency of
connection settings, logic and mathematical functions for all hardware and software of OPC server/client applications. The flow of
Python implementation of OPC UA tag for M2M communication is shown in Fig. 9.
Sending the M2M tag, we can tackle the problem of diverse data sources in end-to-end device communication, in which many types
of data come from different communication protocols of software and hardware in the IIoT environment. Like the two cases in Section
3.2.2, it is important to adopt Python to connect industrial cases with different database. A popular way is to perform data conversion
with a common communication protocol. In the Python code developed for the connection of OPC UA server and client, the read/write
mechanism and the update-rate setting for the tag are the core standards in IIoT. In practice, the system stability can be further
enhanced if the strategy of subscription to the read/write mechanism is employed. When this strategy is in use, only the updated value
is called back. Thus this strategy can be used to replace the previous asynchronous/synchronous methods to reduce the frequently
read/write loading of a large amount of tags (often tens of thousands). Meanwhile, the method that the M2M tag is triggered to write
under certain conditions is more efficient when managing the control protection and monitoring.

4. Evaluation and Analysis

Following the system level design presented in the above section, we perform two types of evaluations to verify the proposed work
in qualitative and quantitative ways. The first phase is to compare the important features of our OPIIoT platform with several popular
platforms already used in industry. In the second phase, we will present the information supports to analyze and to process the large
amount of data streams generated by the devices. Finally, we will demonstrate the web interface provided for system implementation.

4.1. Suitable IoT Platforms for Industrial Applications

Considering the availability and practicality of different platforms, in the first evaluation phase we analyzed and compared the
critical concerns for developing an IIoT platform. For our goal is to provide a practical open-source platform to assist enterprises

Fig. 9. Python implementation flow of M2M OPC UA tag.

9
C.-H. Hsiao and W.-P. Lee
Table 2
Functional comparison of Internet of Things platforms.
IoT Platform
Features OPIIoT AWS IoT Azure IoT IBM Cloud Google IoT ThingWorx IoT SAP IoT C3 IoT

Device Yes Yes Yes Yes Yes Yes Yes Yes


Connection
Management
Connection OPC UA, REST API REST API REST API REST API Node, Phon, REST API SAP API Business Hub RESTful API
Integration Cloud Functions,
Go
Programming Python, Java Java, C#, C++ HTML5 Java, Node.js, Java, C++, Java HTML5, Java, Python, Python, R, Scala
Language PHP Python, Go, Ruby Community build
packs
Complexity Middle Middle Low High Middle High Middle Low
Security High High High High High High High High
Connection MQTT, HTTP, REST, OPC MQTT, HTTP, Web HTTP, AMQP, MQTT, HTTPS MQTT, HTTP HTTP, XMPP, AMQP, IoT Gateway Edge RESTful API
Protocol UA, Web Socket Socket MQTT, CoAP, OPC MQTT, CoAP, DDS, (OPC UA, HTTP, File,
UA, Web Socket OPC UA, Web Socket Modubs, CoAP, Sigfox)
10

Security Protocol SSL, TLS, GDPR, TLS, Authentication TLS RSA/ PSK, TLS, (IBM Cloud TLS 1.2, CA SSL, ISO 27001, TLS 1.2, NIST, OWASP (HIPAA)
Authentication (SigV4, X.509) IPSec, RFC 4279 SSO), certificate Authentication Authentication GDPR, Fed RAMP, L5
Authentication Security API (SE) (LDAP) (X.509) DoD, (IDS/IPS)
(LDAP) Authentication
Analysis Real-time analysis Real-time analysis Apache Hadoop Real-time analysis Google (Dataflow Predict Analysis SAP (Conversational C3 IDS (Data extraction,
category Machine learning (scikit- (Rules Engine, (Map Reduce, (IBM IoT Real- BigQuery, (Thing Worx Machine AI & Machine Data modeling, Machine
learn), Deep learning Amazon Kinesis, HDFS, HBase, Pig), Time Insights) Bigtable, Machine learning), Real-time learning, Streaming & learning, Functional
(TensorFlow+Keras) AWS Lambda) Azure Machine learning Data analysis (Par Stream Web Analytics, engineering and model
learning Data analysis or DB) Blockchain) life cycle management)
analysis and Partner BI tool)
Inference ability
Support Interface Yes Yes (AWS IoT Dash Yes Yes Yes Yes (Thing Worx Yes Yes (C3 IoT UI)
board SQUEAL)
Cross-platform Yes Yes Yes Yes Yes Yes Yes Yes
Interoperability High High High Middle Middle Middle Middle High
Scalability High High High Middle High High High High

Internet of Things 16 (2021) 100441


Prog. Lang. High High High Middle High Middle High High
Support
C.-H. Hsiao and W.-P. Lee
Table 3
Comparison of pricing methods of IoT platforms
Features
IoT Free trial plan Pricing method Sale method Pricing calculation link Technical and support
Platform maintenance

OPIIoT Open capital source, free to use Open capital source, free to Open capital source, free to use Open capital source, No (open to academic long-term
use free to use maintenance,available to the
enterprise maintenance)
AWS IoT Free 750 hours per month for one year to perform individual usage Basic specifications, billed A prepaid plan for 1 or 3 years, can https://calculator.s3. Yes (annual rent depends on the
in seconds have a discount of 50 to 30 % amazonaws.com/index. contract)
html
Azure IoT 30 days of $200 Azure points, The remaining permanent free Basic specifications, billed A 1-year or 3-year prepaid plan can https://azure.microsoft. Yes (annual rent depends on the
11

products to try 12 Ge month in hours save up to 72% of pay-as- you-go cost com/zh-tw/pricing/ contract )
calculator/
IBM Cloud Lite (free), no time limit, no credit card required, 256 MB Pay as-you-go model, pay Subscription model with a fixed https://cloud.ibm.com/ Yes (depends on the contract)
CloudFoundry memory, each Lite with one application service, by credit card, and pay amount of discount estimator/review
automatic memory recovery, 0.5 GB free storage and run-time monthly
memory
Google One year, 300 U.S. dollar amount, plus some permanent free quota Basic specifications, billed 30 % discount if you use it https://cloud.google. Yes (depends on the contract)
IoT in seconds continuously for one month, and you com/pricing/?hl=zhtw
have a chance to get a 43 % discount
Thing Try it free for 90 days Basic specifications, 1-year or multi-year period, the https://www.ptc.com/ Yes (annual rent depends on the
Worx charged in terms of number of feature articles look at the en/try-and-buy/how-to- contract)
IoT functional objects program deals buy

Internet of Things 16 (2021) 100441


C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

constructing their own systems, we compared our OPIIoT platform with the popular commercial IoT platforms deployed in industrial
applications from various feature dimensions, for example communication protocols, platform functions, data management, pricing
methods and programming language. Taking the information provided on the websites of IoT companies [39–45], Wikipedia and the
Forrester Research company report on the IoT market [46], we compared the operating functions of different IoT platforms. The survey
conducted by the Forrester Research included the smart manufacturing technologies, applications, trends, and analysis ability of the
industrial IoT platforms of 15 companies. Their evaluations were based on the considerations taken from the three-dimension ar­
chitecture of production process, product and supply chain, such as the integration of enterprise systems and the digital twin tech­
nology. Table 2 summarizes the functional comparisons of our OPIIoT and the major platforms widely adopted in the market (AWS IoT,
Azure IoT, IBM Cloud, Google IoT, ThingWorx IoT, SAP IoT, C3 IoT). As can be observed, our OPIIoT has the remarkable advantages of
using free resource industrial IoT platform architecture. Significantly, it can perform the model of infrastructure as a service (IaaS)
during the development, the IoT cloud model of platform as a service (PaaS) applied for the rapid development and operation of big
data, predictive analytics, machine learning, and the IoT software as a service (SaaS) applications. Also, our OPIIoT can provide a series
of scalable and configurable SaaS and PaaS implementations for developing practical applications.
In addition to platform functions, the pricing strategy is another critical concern in operating the IIoT. At present, the pricing
methods for IoT platforms on the market mostly adopt the cloud services of "what you use" with free trial solutions. For example, AWS
EC2 provides a program of one year free charge with 750 hours per month and then billing in seconds for the over quota use. Google
IoT (GCP) provides a free program with quota of 300 US dollars (used within 12-month). Table 3 compares the pricing methods for IoT
Platforms and cloud services. Our goal is to develop an IIoT platform with free and open-source resources, and to highlight the sharing
and reusable design principles.
From Tables 2 and 3, the developers can analyze various features of IoT platforms, from the platform functions to pricing methods,
such as the connection and management of devices, system integration and maintenance, programming language support, system
complexity and security, data analysis and visualization, and the cross-platform ability. Then, they can evaluate the important features
accordingly to choose a suitable platform to meet the specific needs of their enterprises. The data format and the related functions in a
commercial IoT/IIoT platform are often ready-made, but time-consuming and expensive for the enterprise to customize its data format
and operations. In contrast, our OPIIoT platform can be highly customized through the characteristics of open source design.
Meanwhile, OPIIoT has higher scalability and platform interoperability than others. Moreover, OPIIoT has a very low construction and
maintenance cost that is important to the enterprise. With these advantages, it has proven a suitable and practical choice for industrial
applications.

4.2. Communication Latency and Data Analytics

After comparing the platforms, in this section we performed several sets of qualitative tests to evaluate our OPIIoT approach,
including the communication test and data analytics. The first set of evaluation was to measure the OPIIoT performance in terms of the
OPC UA communication efficiency, in which the Python-based OPC UA server was installed on a single-board computer and a desktop
PC, respectively. The single-board computer has the specifications of Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit
[email protected], 4GB LPDDR4-3200 SDRAM (depending on model) and 64GB SD disk. It ran the operating system Raspbian GNU/
Linux 10 Raspberry Pi 4 model B. The desktop PC has the specifications of ASUS M32, Intel® CoreTM i7-4790 CPU at 3.6 GHz, 8.00 GB
RAM and 1TB HDD disk, running the operating system Microsoft Windows 10.
The OPC UA server and client were based on the Python design and implementation, executing the same NS_OPIIoT_OPCToModCh.
py program. In our OPIIoT, the multi-threaded architecture with 6 threaded channels was adopted and each channel included 1000
tags (a total of 6000 tags). There was an independent OPC UA endpoint and port for each channel to read the 6 Modbus TCP Ethernet,
connecting 1000 device items with an updated rate of one second. To evaluate the system performance, we monitored and recorded the
CPU usage rate for one channel within 60 seconds. The results are presented in Fig. 10 (a). As shown, the CPU usage rate for Raspberry
Pi 4 ARM Cortex-A72 ranged from 4% to 9%; and for Windows 10 CPU i7, from 0.01% to 0.04%. The results of RAM usage are
presented in Fig. 10 (b), in which the IDE Visual Studio Code only used 33.8MB and the lowest and Raspberry Pi 4 used 69.1MB. As can

Fig. 10. Communication performance: (a) CPU usage of 60 seconds; (b) RAM usage.

12
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

be observed, due to the multi-thread effect, if the number of tags in a single thread increased, the RAM usage decreased while the CPU
usage increased.
Fig. 11 compares the performance of OPC UA server working with different numbers of tags (from 1000 to 6000). Here, when the
tag number increased up to 6000, the CPU usage rate for Raspberry Pi 4 ARM Cortex-A72 approximated 35%, while the rate was about
0.8% for Windows 10 CPU i7. In the condition of one OPC UA client connection with 1000 tags, for Raspberry Pi 4 each connection
increased the CPU usage rate by 2~5%, and for Windows 10 CPU i7, only by 0.2~0.4%. Based on the above measurement we can
estimate that in the case of using Windows 10 CPU i7, the system is able to execute 100,000 tags on the OPC UA server, whereas
Raspberry Pi 4 has a limit of 15,000 tags.
According to these results, a faster CPU and more memory can further enhance the transmission performance of OPC UA.
Consequently a higher loading ability and stability of OPIIoT can thus be obtained. As indicated, our work presented here mainly
focused on the open-source development of a cross-platform system, rather than the optimal performance of OPC UA communication.
In the current industrial applications, adopting SECS/GEM to directly use socket transmission can have a faster communication.
However, the interoperability of communication data and the cost of system maintenance are concerns needed.
In the second set of evaluation, we conducted a set of experiments on data modeling to show that our OPIIoT is compatible with the
machine learning toolkits for data analytics to realize intelligent plants. The proposed framework was used to implement an open IIoT
system for an industrial company (E company, hereafter) to provide a case study. This case was a refuse incineration plant and the goal
was to develop a device-connected environment to collect data for further analysis (i.e., inferring models to control the future input
waste) to achieve operational optimization. With the properly settings of the input waste, the plant can well control the diesel con­
sumption of the incineration burners to improve the power efficiency of the steam generators, and the operating cost can duly be
reduced.
We retrieved historical data recorded in the company datasets and adopted popular machine learning packages to infer predictive
models. These data represented the professional experiences of the human operators working in the plant for years. Similar to the
above communication experiments, here we demonstrated how the model can be automatically built from the IIoT environment
(rather than inferring an optimal model) with two different methods as representative examples. The first was a traditional machine
learning method, LinearRegression, that was used to construct the model with the strategy of KFold cross-validation. We loaded the
Python module package ski-learn machine learning library and established a MSSQL connection (through pandas readsql) to read the
waste data (input), the burner diesel consumption data (input) and the output of the power generator from the corresponding datasets.
There were 19,194 samples (from 2018/04/04 to 2019/05/09) taken for modeling. Fig. 12 shows the code for building a MSSQL
connection to retrieve the data.
In the experiments, we employed the criterion of mean square error (MSE, often used in data modeling) to be the error function in
the training process, and the metric of accuracy was used for performance evaluation (more others can be adopted). Two types of
models were derived: the first type took one input (waste only) and the second type, two inputs (waste and power of generator). The
results (accuracy) for the two types of input are presented in Table 4. As is shown, with the additional input data (power), the results of
data modeling can be improved, meaning that the power value of the generator is an important factor in this application case of refuse
incineration.
We also used a deep learning method for data modeling. In this set of trials, the LSTM (long short-term memory) model was adopted
to train the same data as above [47]. In this set of preliminary tests, the batch size was 6; LSTM dimensions was 200; and epochs was
90. An accuracy of 0.46 was obtained. As mentioned above, here we simply demonstrated how the data collected from different
machines can be automatically retrieved and modelled for making predictions. More comprehensive investigation on parameter
setting and model selection can be performed to obtain better performance.

4.3. Supports for Platform Management

The present section describes the web application system functions developed to support the design and implementation of our
open source platform. In our IIoT platform, the core of the server layer has been built with Python and the Interfaces layer used OPC,
MQTT, REST and ODBC to provide applications (e.g., HMI/SCADA, MES/Historian, ERP, database, big data/analytics). Among the
many Python design web frameworks available, we choose to use the high-level Python web framework Django, through which the
developed result can be quickly imported into the industrial IoT platform and the UI/UX operation interface can be enhanced via Java.

Fig. 11. OPC UA server tag and CPU history of the Modbus TCP by OPC UA client connection.

13
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

Fig. 12. Using Python sklearn and pyodbc to establish a MSSQL connection

Table 4
Results of data modeling for E-company.
LinearRegression with KFold One input Two inputs

K=2 0.200 0.622


K=3 0.198 0.614
K=4 0.186 0.593
K=5 0.210 0.597

As shown in Fig. 13, we have used the Visual Studio Code IDE editor to manage the Django’s MTV (Model-Template-View) archi­
tecture: creating a virtual space folder DJANGO_TUTORIAL, adding Python to the urls.py management and executing Python manage.
py runserver.
With our IIoT web platform, designers/users can set up their OPIIoT system functions in developing an open communication
protocol platform for IIoT. Fig. 14 illustrates some of the important system functions, such as to establish Alarm to indicate whether the
OPC tag value MAX VALUE and MIN VAULE reach the alarm levels (high and low), and to set the communication mode (three
communication protocols are provided: OPC UA, REST and MQTT Mode). For example, after choosing the OPC UA mode, the designer
can subscribe the tag value as shown. Also, our OPIIoT can support the presentation of real-time data on PCs, mobile phones and tablet
browsers (see Fig. 15). More features can be easily included to enrich the system functions, for example, the functions of querying
historical data, plotting the trend graph, adding alarm event query, and automatically generating report and exporting data.
There are some other issues to be addressed in adopting our OPIIOT framework to develop a practical IIoT platform. For OPIIoT
system security, apart from the generally used anti-virus software and firewall, our platform adopts the SSL encryption security scheme
and the user authority management. It also needs to comply with the EU’s General Data Protection Regulation (GDPR) [48]. This way,
it can ensure that using big data analytics or cloud services for enterprises outside the European Union to provide goods, services or
monitor their behavior in the European Union, the activities are still applicable to GDPR. For the IDE development environment
settings of Python and Java, the Python runtime environment uses the try-catch mechanism during program execution. Meanwhile, it

14
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

Fig. 13. Visual Studio Code IDE editor is used to manage the Django’s MTV.

is very important to perform redundancy backup to avoid the crash problem when running the system. With such a backup, the system
can quickly recover from intrusions, damages, or crashes. One way to backup is to take the physical server host RAID hard disk backup;
alternatively the virtual host backup can be used, such as the VMware, Docker or cloud services virtual hosts. In this work, we adopt a
VMware environment to build and to execute our IIoT Platform.

5. Future Works

With the many advantages of less expensive, no contracts, free to develop and high interoperability, in this work we emphasized the
importance of adopting open-source technologies to develop IIoT platforms for information integration and data analysis of various
sources. Though the current open IIoT communication standards can meet the needs of the industry in part, however, an integrated
work is still needed to form a complete open platform. We proposed to use free and open resources to build the IIoT platform, from
architecture to implementation levels. Accordingly, we presented an Open Communication Protocol Platform for Industrial Internet of
Things (OPIIoT), and adopted Python programming language applications to solve various OT and IT information system integration
problems. Then, we described the underlying design principles and implementation details, mainly including the system architecture
with the corresponding working flow and the system construction cycle, a free open-source designed OPC UA industrial communi­
cation protocol, and the data management techniques. To verify the proposed approach, we conducted two types of evaluations. We
qualitatively analyzed and compared the important features of our OPIIoT with several commercial platforms used in industry, per­
formed qualitative trials on data communication and analytics for information supports, and demonstrated the web interface for
system implementation.
Owing to the next-generation 5G mobile communication transmission bandwidth, nowadays it is becoming popular to perform the
image content analysis of factory quality control in real time. Consequently the amount of video and audio combined with the current
transmission data on products grow dramatically. Meanwhile, with the advances of distributing various resources on the cloud (such as
social, computational, and supply chain information), the product ordering information is not the only source to rely on in determining
the production process. Therefore, we are currently working on the extension of our OPIIoT. We aim to integrate the cycle business

15
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

Fig. 14. Supports for the design and implementation of an OPIIoT.

processes and the production value processes to provide product optimization plans that can fully satisfy the customers’ needs
(production plan and production cycle). To achieve such integration, more open source technologies are to be investigated to ensure
the interoperability.

16
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

Fig. 15. Our IIoT Platform working on the mobile phone.

Declaration of Competing Interest

The authors declare no conflict of interest.

Acknowledgements

This work was supported in part by Ministry of Science and Technology of Taiwan, under contract MOST 109-2221-E-110-054-
MY2.

References

[1] H. Boyes, B. Hallaq, J. Cunningham, T. Watson, The industrial internet of things (IIoT): An analysis framework, Computers in Industry 101 (2018) 1–12.
[2] W.Z. Khan, M.H. Rehman, H.M. Zangoti, M.K. Afzal, et al., Industrial internet of things: Recent advances, enabling technologies and open challenges, Computers
and Electrical Engineering 81 (2020), 106522.
[3] H. Xu, W. Yu, D. Griffith, N. Golmie, A survey on industrial internet of things: A cyber-physical systems perspective, IEEE Access 6 (2018) 78238.
[4] A. Esfahani, G. Mantas, R. Matischek, F.B. Saghezchi, et al., A lightweight authentication mechanism for M2M communications in industrial IoT environment,
IEEE Internet of Things Journal 6 (1) (2017) 288–296.
[5] S. Jaloudi, Communication Protocols of an Industrial Internet of Things Environment: A Comparative Study, Future Internet 11 (2019) article 66.
[6] Z. Meng, Z. Wu, C. Muvianto, J. Gray, A data-oriented M2M messaging mechanism for industrial IoT applications, IEEE Internet Things Journal 4 (1) (2017)
236–246.
[7] OPC Foundation. https://opcfoundation.org/about/opc-technologies/opc-ua/(Accessed on 30 November 2020).
[8] AMQP Architecture. https://www.amqp.org/product/architecture (Accessed on 30 November 2020).
[9] REST API Tutorial. https://www.restapitutorial.com/(Accessed on 30 November 2020).
[10] MQTT.org. http://www.steves-internet-guide.com/mqtt/(Accessed on 30 November 2020).
[11] MTConnect Institute. https://www.mtconnect.org/getting started (Accessed on 30 November 2020).
[12] Scikit-learn: https://scikit-learn.org/stable/.
[13] TensorFlow: https://www.tensorflow.org/api_docs/python/tf/keras/.
[14] G. Campobello, M. Castano, A. Fucile, A. Segreto, WEVA: A Complete Solution for Industrial Internet of Things, in: Proceedings of the 16th International
Conference on Ad Hoc Networks and Wireless, 2017, pp. 231–238. Puliafito et al. (Eds.), LNCS 10517.
[15] Industrial Internet Consortium (IIC), The Industrial Internet of Things, Volume G1: Reference Architecture. https://www.iiconsortium.org/IIC_PUB_G1_V1.80_
2017-01-31.pdf (Accessed Oct. 2020).
[16] C.K.M. Lee, S.Z. Zhang, K.K.H. Ng, Development of an industrial internet of things suite for smart factory towards re-industrialization, Advances in
Manufacturing 5 (4) (2017) 335–343.
[17] F. Tao, J. Cheng, Q. Qi, IIHub: An industrial internet-of-things hub toward smart manufacturing based on cyber-physical system, IEEE Trans. on Industrial
Informatics 14 (2018) 2271–2280.
[18] Z. Kaleem, M. Yousaf, A. Qamar, A. Ahmad, et al., UAV-empowered disaster-resilient edge architecture for delay-sensitive communication, IEEE Network 33 (6)
(2019) 124–132.
[19] M.H. ur Rehman, I. Yaqoob, K. Salah, M. Imran, et al., The role of big data analytics in industrial internet of things, Future Generation Computer Systems 99
(2019) 247–259.
[20] J.Y. Lee, J.S. Yoon, B.H. Kim, A big data analytics platform for smart factories in small and medium-sized manufacturing enterprises: an empirical case study of a
die casting factory, International Journal of Precision Engineering and Manufacturing 18 (10) (2017) 1353–1361.
[21] P. Fang, J. Yang, L. Zheng, R.Y. Zhong, et al., Data analytics-enable production visibility for cyber-physical production systems, Journal of Manufacturing
Systems 57 (2020) 242–253.
[22] D.A. Chekired, L. Khoukhi, H.T. Mouftah, Industrial IoT data scheduling based on hierarchical fog computing: A key for enabling smart factory, IEEE Trans. on
Industrial Informatics 14 (2018) 4590–4602.
[23] P. Dallasega, E. Rauch, C. Linder, Industry 4.0 as an enabler of proximity for construction supply chains: A systematic literature review, Computers in Industry
99 (2018) 205–225.

17
C.-H. Hsiao and W.-P. Lee Internet of Things 16 (2021) 100441

[24] M. Cakir, M.A. Guvenc, S. Mistikoglu, The experimental application of popular machine learning algorithms on predictive maintenance and the design of IIoT
based condition monitoring system, Computers & Industrial Engineering 151 (2021), 106948.
[25] R.A. Khalil, N. Saeed, M. Masood, Y.M. Fard, et al., Deep learning in the industrial internet of things: Potentials, challenges, and emerging applications, IEEE
Internet of Things Journal (2021), https://doi.org/10.1109/JIOT.2021.3051414. Early access.
[26] M. Zolanvari, M.A. Teixeira, L. Gupta, K.M. Khan, Machine learning-based network vulnerability analysis of industrial internet of things, IEEE Internet of Things
Journal 6 (4) (2019) 6822–6834.
[27] B. Vogel, Y. Dong, B. Emruli, P. Davidsson, et al., What is an open IoT Platform? Insights from a systematic mapping study, Future Internet 12 (2020) article no.
73.
[28] B. Martinez, X. Vilajosana, I.H. Kim, J. Zhou, et al., I3Mote: An open development platform for the intelligent industrial internet, Sensors 17 (2017) article no.
986.
[29] G. Culot, G. Nassimbeni, G. Orzes, M. Sartor, Behind the definition of Industry 4.0: Analysis and open questions, International Journal of Production Economics
226 (2020), 107617.
[30] M. Kim, J. Lee, J. Jeong, Open source based industrial IoT platforms for smart factory: Concept, comparison and challenges, in: Proceedings of International
Conference on Computational Science and Its Applications, 2019, pp. 105–120. LNCS 11624.
[31] T. Erl, Service-Oriented Architecture, Prentice Hall, New York, USA, 2005.
[32] W. Rafique, X. Zhao, S. Yu, I. Yaqoob, et al., An application development framework for Internet-of-Things service orchestration, IEEE Internet of Things Journal
7 (5) (2020) 4543–4556.
[33] M.F. Sanner, Python: A programming language for software integration and development, Journal of Molecular Graphics and Modelling 17 (1) (1999) 57–61.
[34] Python Language Guide (v1.0). Google Documents List Data API v1.0. Google.
[35] HslCommunication, PLC Communication Driver. https://github.com/dathlin/HslCommunication (Accessed on 30 November 2020).
[36] PyModbus’s documentation. https://pymodbus.readthedocs.io/en/latest/(Accessed on 30 November 2020).
[37] C. Kan, H. Yang, S. Kumara, Parallel computing and network analytics for fast industrial internet of things (IIoT) machine information processing and condition
monitoring, Journal of Manufacturing Systems 46 (2018) 282–293.
[38] MongoDB. A tutorial intended to be an introduction to work with MongoDB and PyMongo. http://api.mongodb.com/python/current/tutorial.html (Accessed on
30 November 2020).
[39] AWS IoT. https://aws.amazon.com/iot/(Accessed on 30 November 2020).
[40] Azure IoT. https://azure.microsoft.com/en-us/overview/iot/(Accessed on 30 November 2020).
[41] IBM Cloud. https://www.ibm.com/cloud (Accessed on 30 November 2020).
[42] Google IoT. https://cloud.google.com/solutions/iot (Accessed on 30 November 2020).
[43] ThingWorx IoT. https://www.ptc.com/en/products/iiot/thingworx-platform (Accessed on 30 November 2020).
[44] SAP IoT. https://www.sap.com/products/s4hana-erp.html (Accessed on 30 November 2020).
[45] C3 IoT. What is Enterprise AI? https://c3.ai/what-is-enterprise-ai/(Accessed on 30 November 2020).
[46] MBAlib Encyclopedia, Forrester Research Corporation. https://wiki.mbalib.com/zh-tw/Forrester_Research (Accessed on 30 November 2020).
[47] LSTM: https://www.tensorflow.org/api_docs/python/tf/keras/layers/LSTM.
[48] EU General Data Protection Regulation. https://eugdpr.org/. (Accessed on 30 November 2020).

18

You might also like