Futureinternet 11 00066 PDF
Futureinternet 11 00066 PDF
Futureinternet 11 00066 PDF
Article
Communication Protocols of an Industrial Internet of
Things Environment: A Comparative Study
Samer Jaloudi
Department of Information and Communication Technology, Al Quds Open University, Nablus 00407,
West Bank, Palestine; [email protected] or [email protected]; Tel.: +970-0599-376-492
Received: 4 February 2019; Accepted: 4 March 2019; Published: 7 March 2019
Abstract: Most industrial and SCADA-like (supervisory control and data acquisition) systems use
proprietary communication protocols, and hence interoperability is not fulfilled. However, the
MODBUS TCP is an open de facto standard, and is used for some automation and telecontrol systems.
It is based on a polling mechanism and follows the synchronous request–response pattern, as opposed
to the asynchronous publish–subscribe pattern. In this study, polling-based and event-based protocols
are investigated to realize an open and interoperable Industrial Internet of Things (IIoT) environment.
Many Internet of Things (IoT) protocols are introduced and compared, and the message queuing
telemetry transport (MQTT) is chosen as the event-based, publish–subscribe protocol. The study
shows that MODBUS defines an optimized message structure in the application layer, which is
dedicated to industrial applications. In addition, it shows that an event-oriented IoT protocol
complements the MODBUS TCP but cannot replace it. Therefore, two scenarios are proposed to build
the IIoT environment. The first scenario is to consider the MODBUS TCP as an IoT protocol, and
build the environment using the MODBUS TCP on a standalone basis. The second scenario is to use
MQTT in conjunction with the MODBUS TCP. The first scenario is efficient and complies with most
industrial applications where the request–response pattern is needed only. If the publish–subscribe
pattern is needed, the MQTT in the second scenario complements the MODBUS TCP and eliminates
the need for a gateway; however, MQTT lacks interoperability. To maintain a homogeneous message
structure for the entire environment, industrial data are organized using the structure of MODBUS
messages, formatted in the UTF-8, and then transferred in the payload of an MQTT publish message.
The open and interoperable environment can be used for Internet SCADA, Internet-based monitoring,
and industrial control systems.
1. Introduction
The Internet of Things (IoT) is an emerging technology that represents a cost-effective, scalable,
and reliable ecosystem, proposed for many applications, including smart city sectors [1,2], consumer
devices [3,4], industrial environments [5,6], Internet of vehicles [7,8], multimedia [9,10], and 5G
systems [11,12]. The IoT platform, from the communications perspective, consists of a TCP/IP network
and standard protocols [13]. Standard protocols primarily include advanced message queuing protocol
version 1.0 (AMQP 1.0) [14–16], message queuing and telemetry transport (MQTT) [17], constrained
application protocol (CoAP) [18], extensible messaging and presence protocol (XMPP) [19], and
JavaScript object notation (JSON) [20]. The TCP/IP networks include Wi-Fi [21], Internet, Intranet,
and modern mobile networks. The employment of a communication infrastructure and protocol
depends on the field of application, the timing requirements, and the data transmission rates [13].
Therefore, the requirements of consumer electronics are different from those of smart city sectors and
industrial applications.
In the industry context, Industrial Internet of Things (IIoT) [22,23], Industry 4.0 [24,25], Smart
Manufacturing [26,27], and Smart Factory [28,29] are all terminologies for the emerging industrial
environments that employ information and communication technologies (ICTs), including IoT
platforms, while maintaining industry requirements. The term IIoT refers to the use of IoT technologies
in many fields of application such as manufacturing, factories, transportation, gas, oil, and electric grids.
However, most industrial and SCADA-like (supervisory control and data acquisition) systems of these
fields employ proprietary communication protocols and ICTs, which lead to closed industrial systems.
Hence, customers are stuck to a single vendor, costs are high, and interoperability is not fulfilled.
In this paper, standard IoT protocols are introduced and compared. Then, MQTT is chosen for
machine-to-machine (M2M) communications to complement the MODBUS TCP [30–32] operations
in an IIoT environment. This environment integrates an event-based message-oriented protocol,
i.e., MQTT, with a polling-based request–response protocol, intended for industrial applications,
i.e., MODBUS TCP. The study shows that the MODBUS TCP and MQTT can coexist together,
and in parallel, within the same IIoT environment. While industrial requirements of control and
monitoring can be met via the MODBUS TCP using the request–response model, the MQTT protocol
complements its operation by fulfilling the IoT requirements, using the publish–subscribe pattern
for M2M communications. The IoT protocol works in parallel with the MODBUS TCP and relays
industrial data to an Internet-based server for remote monitoring, analysis, and archiving. To solve
the interoperability problem, industrial data are formatted using the MODBUS message format and
transferred in the payload of the MQTT publish messages. In fact, the IoT protocols cannot replace the
MODBUS protocol in most industrial applications, especially when an optimized message structure
is required in the application layer. A second scenario is proposed here, which is to consider the
MODBUS TCP as an IoT protocol, and hence build the IIoT environment with the MODBUS TCP only.
This solution is efficient and complies with most industrial applications; however, it only depends on
the request–response model. The choice of solution is totally dependent on the requirements of the
industrial application.
The developed environment can be employed in many industrial applications, including Internet
SCADA, Internet-based monitoring, and industrial control systems. Hence, customers are not stuck to
a single vendor, costs are reduced, and interoperability is maintained.
The remainder of the paper is organized as follows. Section 2 presents a related literature survey,
Section 3 presents a theoretical background of the MODBUS protocol, Section 4 compares IoT protocols,
and Section 5 compares MQTT and the MODBUS TCP. Section 6 compares the latencies and resource
usage of both protocols. Section 7 presents a discussion and Section 8 concludes the paper.
2. Related Work
In the context of industry, researchers are proposing and examining protocols, networks, and
middleware architectures for industrial ICT infrastructure and integration.
For integration purposes, the authors of [33] proposed a data-oriented machine-to-machine (M2M)
communication middleware based on the ZeroMQ platform for IIoT applications. The researchers
of [34] presented a case study for controlling industrial robots and monitoring energy consumption
remotely based on Ebbits middleware, which transforms data into web services. Another
service-oriented IIoT middleware is proposed in [35] for balancing task allocation between a mobile
terminal and a utility cloud service. In [36], a platform based on SystemJ for IIoT is proposed using
an FPGA (field programmable gate array), and then tested in an automation system. Reference [37]
describes a collaboration-oriented M2M (CoM2M) messaging mechanism for IIoT, based on the
platform PicknPack food packaging line. In [38], legacy flexible manufacturing systems are integrated
with the SCADA system of an Industry 4.0 framework via Ethernet. However, these research papers
investigated middleware architectures for integration purposes.
The infrastructure of an IIoT was examined in [39], where the IoT vision in industrial wireless
sensor networks was implemented using the IPv6 over low-power wireless personal area network
Future Internet 2019, 11, 66 3 of 18
(6LoWPAN) and CoAP. Furthermore, the author of [40] proposed a software-defined network for an
IIoT based on new networking technologies. However, these research papers investigated network
solutions and architectures.
Infrastructure protocols were examined in many studies. For example, the authors of [41]
developed an edge IoT gateway to extend the connectivity of MODBUS devices to IoT by storing
the scanned data from MODBUS devices locally, and then transferring the changes via an MQTT
publisher to MQTT clients via a broker. The researchers of [42] designed and implemented a web-based
real-time data monitoring system that uses MODBUS TCP communications, following which all data
are displayed in a real-time chart in an Internet browser, which is refreshed at regular intervals using
hypertext transfer protocol (HTTP) polling communications. In [43], a MODBUS serial protocol was
reported that collects data serially via a RS-232 protocol and transfers the collected data over the
ZigBee protocol. In [44], measurements of field devices collected by the MODBUS serial protocol were
transferred over HTTP using a Wi-Fi network. However, these papers proposed a gateway as a bridge
between MODBUS and the Internet, Intranet, or wireless network.
In this study, the MODBUS TCP is proposed to be implemented in two scenarios—either alone, or
in parallel with an MQTT publisher without a gateway. The first solution proposes the MODBUS TCP
as an IoT protocol to build the industrial environment on a standalone basis. Using the second
arrangement, the MODBUS TCP executes its operations while maintaining the requirements of
industrial applications and MQTT achieves the M2M communications for IoT functions.
3. MODBUS Theory
The MODBUS TCP is a byte-oriented, industrial communication protocol, open de facto standard,
used for data exchange between embedded systems, devices, and industrial applications. Devices,
reacting as clients, may benefit from the inexpensive implementation of such a lightweight protocol for
polling industrial devices that react as servers. Polling communications follow the request–response
mechanism, where a client queries the server for specific data or executes commands in the server
using a frame of bytes arranged in a specific way, called a frame format. The server replies to the client
queries via a frame of bytes either holding measurement data from sensors or confirming the execution
of commands. Sixteen-bit data registers store measurement values, and coils hold the status of ON and
OFF switches. Therefore, MODBUS TCP uses the polling mechanism, as opposed to the event-based
mechanism, explained in the next section.
As listed in Table 1, the protocol specifications [30] define three categories of function codes for
the access of data in remote devices. These data are stored in coils or registers as status values for
measurements or transferred as setpoints for control. Coils perform one-bit read and write operations
for switching the attached devices ON and OFF or reading and writing one-bit internal configuration
values. Discrete inputs perform one-bit read operations for reading the status of the attached devices,
whether they are switched ON or OFF. The 16-bit input registers are responsible for measurements
from physical devices, and the 16-bit holding registers perform read and write operations related to
internal reconfigurable values.
For the request case, the header occupies 7 bytes, the function code occupies 1 byte, the start
register-address occupies 2 bytes, and the quantity occupies 2 bytes. For the response case, the header
occupies 7 bytes, the function code 1 byte, and the length 1 byte.
2 * N 21
For the request case, the header occupies 7 bytes, the function code occupies 1 byte, the start
register-address occupies 2 bytes, and the quantity occupies 2 bytes. For the response case, the
header
Future occupies
Internet 2019, 11,766
bytes, the function code 1 byte, and the length 1 byte. 5 of 18
Figure Relationship
Figure2. 2. between
Relationship betweenthethe
number of bytes
number and and
of bytes the number of registers
the number of function
of registers codes (FC)
of function codes
“read
(FC)input
“readregisters” (0x04), “write
input registers” multiple
(0x04), “writecoils” (0x0F),
multiple and (0x0F),
coils” “write multiple
and “writeregisters” (0x10).
multiple registers”
(0x10).
The same principle is applied to other function codes, such as “read holding registers” (0x03),
which The
has the
samesame linear equation;
principle is applied“write multiple
to other registers”
function codes, (0x10),
such aswhich
“readcan be represented
holding registers”by the
(0x03),
linear equation (2 ∗ N + 25); and “write multiple coils” (0x0F), which can be represented
which has the same linear equation; “write multiple registers” (0x10), which can be represented by by the linear
equation
the linear(N equation
+ 25). As (2*N
an example, if the
+ 25); and number
“write of registers
multiple coils” (N) is 4, which
(0x0F), the sizecan
is 29
befor the “read input
represented by the
registers” (0x04) and 33 for the “write multiple registers” (0x10) function codes.
linear equation (N + 25). As an example, if the number of registers (N) is 4, the size is 29 for the “read
If the
input client application
registers” (0x04) and 33requires
for thethe execution
“write multipleof both operations—read
registers” (0x10) function andcodes.
write—within the
same message for application
If the client a remote device, the the
requires function codeof“read/write
execution multiple registers”
both operations—read (0x17) shows
and write—within the
higher performance than both the “read input registers” (0x04) and the “write
same message for a remote device, the function code “read/write multiple registers” (0x17) multiple registers”
shows
(0x10)
higherfunction codes ifthan
performance usedboth
separately.
the “read Equation (2) illustrates
input registers” twoand
(0x04) linear
the formulae for the function
“write multiple registers”
code “read/write multiple registers” (0x17), which sends both commands within the same
(0x10) function codes if used separately. Equation (2) illustrates two linear formulae for the function message:
code “read/write multiple registers” (0x17), which sends both commands within the same message:
Bytes_request = 17 + 2 × NRead
Bytes _ request 17 2 * NRead
Bytes_response = 9 + 2 × NWrite . (2)
Bytes _ response 9 2 * N Write .
(2)
∴ Total_size = 26 + 2 × ( NRead + NWrite )
Total _ size 26 2 * NRead N Write
Both equations of the function code “read/write multiple registers” (0x17) request and response
Both equations of the function code “read/write multiple registers” (0x17) request and response
are plotted in Figure 3. Both equations are linear and depend on the number of registers to be written
are plotted in Figure 3. Both equations are linear and depend on the number of registers to be written
(NWrite ) and read (NRead ).
(NWrite) and read (NRead).
As a result, the MODBUS TCP has an optimized frame structure suitable for SCADA-like systems
As a result, the MODBUS TCP has an optimized frame structure suitable for SCADA-like
and has a communication mechanism that fulfills the industrial requirements. In addition, it has a
systems and has a communication mechanism that fulfills the industrial requirements. In addition, it
communication model and pattern that are compatible with industrial applications. As shown in
has a communication model and pattern that are compatible with industrial applications. As shown
Figures 1–3, the protocol is lightweight. Moreover, it has an open specification, and uses TCP/IP
networks. Accordingly, it can be considered as an IoT protocol.
Future Internet 2019, 11, x FOR PEER REVIEW 6 of 18
in Figures 1–3, the protocol is lightweight. Moreover, it has an open specification, and uses TCP/IP
networks.
Future Internet Accordingly,
2019, 11, 66 it can be considered as an IoT protocol. 6 of 18
Figure3.3.Relationship
Figure Relationshipbetween
betweenthe
thenumber
numberofofbytes
bytesand
andthe
thenumber
numberofofregisters
registersofofthe
theMODBUS
MODBUS
function code (FC) “read/write multiple registers” (0x17).
function code (FC) “read/write multiple registers” (0x17).
4. Comparison between IoT Protocols
4. Comparison between IoT Protocols
A performance comparison between HTTP and MQTT is conducted in [46] on required network
A performance comparison between HTTP and MQTT is conducted in [46] on required
resources for IoT, while the payload was fixed to zero bytes and the topic names were varied.
network resources for IoT, while the payload was fixed to zero bytes and the topic names were
In addition, a performance analysis of MQTT, HTTP, and CoAP was performed in [47] for IoT-based
varied. In addition, a performance analysis of MQTT, HTTP, and CoAP was performed in [47] for
monitoring of a smart home. The authors of [48] discussed and analyzed the efficiency, usage, and
IoT-based monitoring of a smart home. The authors of [48] discussed and analyzed the efficiency,
requirements of MQTT and CoAP. Moreover, the authors of [49] compared AMQP and MQTT over
usage, and requirements of MQTT and CoAP. Moreover, the authors of [49] compared AMQP and
mobile networks, and the authors of [50] emulated a quantitative performance assessment of CoAP in
MQTT over mobile networks, and the authors of [50] emulated a quantitative performance
comparison with HTTP.
assessment of CoAP in comparison with HTTP.
In this section, the main differences between HTTP, CoAP, MQTT, AMQP, XMPP, and MODBUS
In this section, the main differences between HTTP, CoAP, MQTT, AMQP, XMPP, and
TCP protocols are discussed from various telecommunication aspects. Then, a protocol is chosen that
MODBUS TCP protocols are discussed from various telecommunication aspects. Then, a protocol is
fulfills the requirements of the IIoT environment.
chosen that fulfills the requirements of the IIoT environment.
Accordingly, Table 2 summarizes these differences from different communication aspects
Accordingly, Table 2 summarizes these differences from different communication aspects
including infrastructure, architecture, mechanism, model, messaging pattern, methodology, and
including infrastructure, architecture, mechanism, model, messaging pattern, methodology, and
transmission paradigm. These protocols use the client–server communication architecture. HTTP
transmission paradigm. These protocols use the client–server communication architecture. HTTP
uses the request–response model and is a document-oriented protocol, whereas MQTT uses the
uses the request–response model and is a document-oriented protocol, whereas MQTT uses the
publish–subscribe model and is message-oriented. Thus, MQTT is one-to-many, and HTTP
publish–subscribe model and is message-oriented. Thus, MQTT is one-to-many, and HTTP is
is one-to-one (peer-to-peer). CoAP uses a specific infrastructure—namely, 6LoWPAN (IEEE
one-to-one (peer-to-peer). CoAP uses a specific infrastructure—namely, 6LoWPAN (IEEE
802.15.4)—which employs IPv6 in the network layer. Both MQTT and HTTP use an inexpensive and
802.15.4)—which employs IPv6 in the network layer. Both MQTT and HTTP use an inexpensive and
available communication infrastructure, which is Internet or Intranet in wire mode (Ethernet—IEEE
available communication infrastructure, which is Internet or Intranet in wire mode (Ethernet—IEEE
802.3) or wireless mode (Wi-Fi—IEEE 802.11)—which may employ either IPv4 or IPv6 in the network
802.3) or wireless mode (Wi-Fi—IEEE 802.11)—which may employ either IPv4 or IPv6 in the
layer. In the transport layer, MQTT and HTTP protocols use TCP port numbers 1883 and 80, respectively.
network layer. In the transport layer, MQTT and HTTP protocols use TCP port numbers 1883 and 80,
However, CoAP uses UDP port number 5683. Given that MQTT is event-based, it is a message-oriented
respectively. However, CoAP uses UDP port number 5683. Given that MQTT is event-based, it is a
protocol. Thus, CoAP mimics HTTP in using polling-based messaging, but in a shorter time and
message-oriented protocol. Thus, CoAP mimics HTTP in using polling-based messaging, but in a
smaller frame-size.
shorter time and smaller frame-size.
Future Internet 2019, 11, x FOR PEER REVIEW 7 of 18
Future Internet 2019, 11, 66 7 of 18
Figure 4. Communication protocols in the IEEE model (a); the HTTP (b); the CoAP (c).
Figure 4. Communication protocols in the IEEE model (a); the HTTP (b); the CoAP (c).
Future Internet 2019, 11, 66 8 of 18
There are two common features and two main differences between MQTT and CoAP. Both
target constrained devices and networks, and both have low data overhead. Importantly, MQTT is
one-to-many and TCP-based message-oriented, whereas CoAP is one-to-one and UDP-based. Since
TCP is connection-oriented, and UDP is connectionless, MQTT is more reliable. Moreover, CoAP needs
a dedicated communication infrastructure based on IPv6 networks in addition to a dedicated gateway
to pass content over the Internet. Hence, CoAP was not used for this IIoT environment. In the same
manner, HTTP, which is polling-based, was not considered for this study because of its philosophy that
uses the synchronous communication model for peer-to-peer and request–response exchange of data.
XMPP is an XML-based messaging protocol that is able to transfer verbose messages, audio and
video signals in chat conversations. In addition, it supports request–response as well as an event-based
communication pattern. However, the XML-based verbose messages of XMPP increase the message
size of SCADA-like applications, which have byte-oriented messages, and hence, cannot be used for
IIoT efficiently. As a comparison, MODBUS has small-sized data units, with a maximum of 255 bytes,
which are suitable for automation, telecontrol, and monitoring, whereas XMPP messages need more
than 400 bytes of overhead.
To summarize, many IoT protocols exist, and event-based protocols are of considerable interest
for transferring data as notifications to complement the MODBUS TCP. This MODBUS protocol
is polling-based, synchronous, request–response, and optimized for control and monitoring in
industrial applications. It can establish an IIoT environment, either on a standalone basis or in
conjunction with an event-based protocol to cover the publish–subscribe mechanism if needed. MQTT
is able to complement the MODBUS TCP via its asynchronous model, event-based paradigm, and
publish–subscribe pattern. Alternatively, HTTP uses a request–response mechanism and, hence, was
not considered for this study. CoAP was also found to be not suitable for this scenario because it needs
a specific infrastructure, and hence, a gateway to pass data over the Internet, which adds more costs
and causes complications to the environment. In addition, XMPP was not considered here, because
it is XML-based verbose protocol that requires a large overhead for small-sized industrial packets.
Moreover, AMQP was eliminated because it is dedicated to the exchange of business messages between
two entities. This protocol is used normally for application-to-application integration at the enterprise
level, which is higher than the level of both MODBUS TCP and MQTT.
Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL), have been
designed to provide security over a TCP/IP network. If HTTP uses SSL or TLS, it employs port 443.
This is also applicable to MODBUS TCP and MQTT, which employ ports 802 and 8883, respectively.
Figure 5. The IEEE model (a); compared to the MODBUS TCP (b); and the MQTT (c).
Figure
Figure 5.5.The
TheIEEE
IEEEmodel
model(a);
(a);compared
compared to the
the MODBUS
MODBUSTCP
TCP(b);
(b);and
andthe MQTT
the (c).(c).
MQTT
The publisher sends a connect packet (CONNECT), with username (un) and password (pwd) if
TheThe publishersends
publisher sendsaaconnect
connectpacket
packet (CONNECT),
(CONNECT), with username (un) and
andpassword (pwd) if if
required, to the server (broker) trying to establish a TCPwith username
connection. The (un)
server password
acknowledges(pwd) the
required,
required,with to
to thethe server (broker)
server (broker) trying
trying to establish
to the
establish a TCP connection.
a TCP connection. The server acknowledges the
attempt a CONNACK packet, telling client (publisher) whetherThe server acknowledges
the connection is successfullythe
attemptwith
attempt witha aCONNACK
CONNACK packet, packet, telling
telling the
the client
client (publisher)
(publisher) whether
whether thetheconnection
connection is is
established. Then, the client publishes the temperature value, for example, via a PUBLISH packet,
successfullyestablished.
successfully established. Then,Then, the
the client
client publishes
publishes the the temperature
temperature value,
value, for
forexample,
example, viaviaa a
with temp topic
PUBLISH andwith
packet, a value tempoftopic
22.7.and
Theaclient
valueends the
of 22.7. publish
The clienteventends with the server
the publish bywith
event sending
the a
PUBLISH packet,
DISCONNECT with temp topic and a value of 22.7. The client ends the publish event with the
packet.
server by sending a DISCONNECT packet.
server by sending
Meanwhile, a DISCONNECT topacket.
Meanwhile,and andinin addition
addition to theaforementioned
the aforementioned steps,
steps, thethe subscriber
subscriber mustmust SUBSCRIBE
SUBSCRIBE to the to
Meanwhile,
thesame
same and in to
topic(temp)
(temp) addition
receiveto thepublished
the aforementioned
messages steps,ofthe subscriber
interest. The must SUBSCRIBE
subscription to the
packet
topic to receive the published messages of interest. The subscription packet is is
same topic
acknowledged (temp) to receive the published messages of interest. The subscription packet is
acknowledged with the SUBACK packet. When the broker receives the message that handles thethe
with the SUBACK packet. When the broker receives the message that handles
acknowledged
temperature with thethe SUBACKPUBLISHpacket. When the broker receives the message that handles the
temperaturevalue,
value,via
via thesamesame PUBLISH packet,packet, itit forwards
forwards itittotothe
the subscriber,
subscriber, which
which may
may then
then
temperature
terminate
terminatethe value,
the via
connection the
connectionusing same PUBLISH
usingthe
theDISCONNECT packet,
DISCONNECT message.it forwards
message. it to the subscriber, which may then
terminate the connection using the DISCONNECT message.
(a) (b)
Figure 6. Comparison
(a)ofof protocols for the exchange of messages: (a) MQTT; (b)(b)MODBUS TCP.
Figure 6. Comparison protocols for the exchange of messages: (a) MQTT; (b) MODBUS TCP.
As a comparison
Figure between MODBUS TCP andofMQTT messages, Figure 7 showsTCP.
the required
As a6.comparison
Comparison of protocols
between for the exchange
MODBUS messages:
TCP and MQTT (a) MQTT;
messages, (b) MODBUS
Figure 7 shows the required
number of bytes of the MODBUS messages, compared to those of MQTT. The message of the MODBUS
number of bytes of the MODBUS messages, compared to those of MQTT. The message of the
TCP requires 27 bytes tobetween
As a comparison read the MODBUS
values of three
TCP registers
and of
MQTTusing the function
messages, code7“read
Figure shows input
the registers”
required
MODBUS TCP requires 27 bytes to read the values three registers using the function code “read
(FC =
number0x04),
of as shown
bytes of in
theFigures
MODBUS 1 and 2. However,
messages, the message
compared to of the
those MODBUS
of MQTT. TCP
The
input registers” (FC = 0x04), as shown in Figures 1 and 2. However, the message of the MODBUSrequires
message 29ofbytes
the
MODBUS TCP requires 27 bytes to read the values of three registers using the function code “read
input registers” (FC = 0x04), as shown in Figures 1 and 2. However, the message of the MODBUS
Future Internet 2019, 11, 66 10 of 18
Figure7.7.
Figure
Figure 7.Required
Requiredbytes
Required bytes of
bytes of MQTT
of MQTT messages
MQTT messages compared
messages compared totothose
comparedto those ofofMODBUS.
thoseof MODBUS.
MODBUS.
Figure
Figure8 8shows
Figure showsthe
8 shows theoverhead
the overheadportion
overhead portion of
portion the three
of the three messages
three messagesfor
messages foraa aconstant
for constant
constant payload
payload
payload of of
of 10 10
10 bytes.
bytes.
bytes.
The function
The functioncode
code“read/write
“read/write multiple
multiple registers”
registers” (0x17)
(0x17) has
has an
an overhead
overhead ofof
2626 bytes
bytes out
The function code “read/write multiple registers” (0x17) has an overhead of 26 bytes out of 36 bytes. out
of of
36 36 bytes.
bytes.
The
The function
function
The codes
functioncodes “read
codes“read input
“readinput registers”
inputregisters” (0x04)
registers” (0x04) and “write
and “write
(0x04) and multiple
“writemultiple registers”
multipleregisters” (0x10)
registers”(0x10)
(0x10)have
have
have a total
a total
a total
overhead
overhead ofof
46 46 bytes
bytes out
out ofof 56-bytes
56-bytes (the
(the total
total size).
size). In
In comparison,
comparison, the
the MQTT
MQTT
overhead of 46 bytes out of 56-bytes (the total size). In comparison, the MQTT publish–subscribepublish–subscribe
publish–subscribe
message
message
message has
has an
anan
has overheadofof
overhead
overhead of105
105bytes
105 bytesout
bytes outof
out of 115
of 115 bytes.
115 bytes.
bytes.
Figure 8.
Figure 8. MQTT
MQTT and
and MODBUS
MODBUS overheads
overheads for
for a payload of
of 10 bytes.
Figure 8. MQTT and MODBUS overheads foraapayload
payload of1010bytes.
bytes.
Future Internet 2019, 11, x FOR PEER REVIEW 11 of 18
Future Internet 2019, 11, 66 11 of 18
The result of Figure 8 is illustrated in Figure 9 for values between 2 bytes and 106 bytes. The
figure
Thedemonstrates
result of Figurethe
8 isoverhead
illustratedpercentage
in Figure 9with respect
for values to the2total
between bytesmessage size according
and 106 bytes. The figureto
Equation (3):the overhead percentage with respect to the total message size according to Equation (3):
demonstrates
Overhead
Overhead(%) Overhead 100% . (3)
Overhead(%) = Overhead Payload× 100%. (3)
Overhead + Payload
The percentage overheads of the aforementioned function codes are calculated and plotted in
The9.percentage
Figure The figureoverheads
shows valuesof thefor
aforementioned
fewer than 106function codes are
bytes because the calculated
message size andinplotted in
industrial
Figure 9. The and
applications figure shows values
SCADA-like for fewer
systems thanMQTT
is small. 106 byteshas because
the highestthe overhead;
message size the in industrial
function code
applications
“read inputand SCADA-like
registers” systems
(0x04) has is small.
the least MQTT
overhead (21has the highest
bytes), and the overhead;
function codethe “write
function code
multiple
“read input (0x10),
registers” registers” (0x04)
which has the least
is covered by theoverhead
curve of(21 bytes),
the andcode
function the function codemultiple
“read/write “write multiple
registers
registers”
(0x17), has(0x10), which
25 bytes is coveredHowever,
of overhead. by the curve of the
if the functionclient
application code reads
“read/write multiple
and writes registers
registers in the
(0x17),
same has 25 bytes
message, theof overhead.
function codeHowever,
“read/writeif the application
multiple client(0x17)
registers” reads shows
and writes
lowerregisters
overheadin the
than
same message,codes
the function the function
“read inputcoderegisters”
“read/write(0x04)multiple registers”
and “write (0x17)
multiple shows lower
registers” (0x10)overhead
if both arethan
used
the function for
separately codes
the“read
same input registers” (0x04) and “write multiple registers” (0x10) if both are used
purpose.
separately for the same
Accordingly, purpose.
the MQTT protocol is suitable for IoT-based publish–subscribe applications, but it
Accordingly,
is unable the MQTT
to replace protocol isTCP,
the MODBUS suitable for IoT-based
which fulfills thepublish–subscribe applications,
industrial requirements and but it isan
uses
unable to replace
optimized the MODBUS
frame-format for TCP, which fulfills the
request–response industrial requirements
communications between and uses an clients
industrial optimizedand
frame-format
servers. These forproperties
request–response
make it communications
suitable for SCADA-likebetween systems,
industrialautomation,
clients and monitoring,
servers. These and
properties make it suitable for SCADA-like systems, automation, monitoring,
control. In Section 6, performance of MQTT and the MODBUS TCP are tested and compared based and control. In Section 6,
performance of MQTT
on the Round-Trip and(RTT)
time the MODBUS TCP are
measurements tested
and and compared
the central processingbased on(CPU)
unit the Round-Trip
usage. time
(RTT) measurements and the central processing unit (CPU) usage.
Figure9.9.The
Figure Theoverhead
overheadofofananMQTT
MQTTmessage
messagecompared
comparedtotothat
thatofofMODBUS.
MODBUS.
The RTT values measured from the publisher and the CPU usage measured from the desktop PC are
publisher
shown and the10.
in Figure CPU usage
The measured
publisher that from the desktop
connected PC are (broker)
to the server shown instarted
Figurecounting
10. The publisher
the RTT
that connected to the server (broker) started counting the RTT from the time of creating the
from the time of creating the socket to closing it, which includes the time needed for formatting the socket to
closing it,in
message which includes
a publish the timeconnecting
message, needed for to
formatting
the serverthewithout
messageainlogon
a publish message,
process, connecting
publishing the
to the server
message, andwithout a logonfrom
disconnecting process, publishing
the server, the message,
in addition to theand disconnecting
network fromCPU
latency. The the server,
usage
in addition
values to the
are the networkregistered
maximum latency. The CPU usage
values, and thevalues
tests are
weretheconducted
maximumforregistered
payloadvalues, and
sizes of 5, the
10,
tests
25, 50,were
and conducted
100 bytes. for payload sizes of 5, 10, 25, 50, and 100 bytes.
(a) (b)
Figure 10. MQTT-related measurements: (a) Round-Trip Time (RTT); (b) CPU usage.
Figure 10. MQTT-related measurements: (a) Round-Trip Time (RTT); (b) CPU usage.
The RTT measurements of the MODBUS TCP were also conducted using the same network.
The RTT measurements of the MODBUS TCP were also conducted using the same network. A
A MODBUS TCP client was developed and installed on the laptop, and a MODBUS TCP server was
MODBUS TCP client was developed and installed on the laptop, and a MODBUS TCP server was
developed and installed on the desktop PC. Many tests of function codes were carried out for “read
developed and installed on the desktop PC. Many tests of function codes were carried out for “read
holding registers” (FC = 0x03), “read input registers” (FC = 0x04), and “write multiple registers”
holding registers” (FC = 0x03), “read input registers” (FC = 0x04), and “write multiple registers” (FC
(FC = 0x10). The total transmitted bytes in each transaction were 27 bytes, 33 bytes, and 35 bytes
= 0x10). The total transmitted bytes in each transaction were 27 bytes, 33 bytes, and 35 bytes
respectively; the total was 95 bytes when all messages were transmitted within one transaction.
respectively; the total was 95 bytes when all messages were transmitted within one transaction. The
The RTT values, which were measured on the client side, were between 6 ms and 8 ms, and the CPU
RTT values, which were measured on the client side, were between 6 ms and 8 ms, and the CPU
usage, which was measured on the server side, had a maximum value of 3%.
usage, which was measured on the server side, had a maximum value of 3%.
These results confirm the theoretical outcomes of Section 5, which show that the MODBUS TCP is
These results confirm the theoretical outcomes of Section 5, which show that the MODBUS TCP
a lightweight protocol suitable for SCADA-like systems and industrial applications. The MODBUS
is a lightweight protocol suitable for SCADA-like systems and industrial applications. The MODBUS
TCP client connects to the MODBUS TCP server using polling communications (direct one-to-one
TCP client connects to the MODBUS TCP server using polling communications (direct one-to-one
communications). However, the MQTT client connects to another client via a server, called a broker.
communications). However, the MQTT client connects to another client via a server, called a broker.
This fact explains the high CPU consumption while the MQTT server was busy in receiving and
This fact explains the high CPU consumption while the MQTT server was busy in receiving and
redirecting the publish messages.
redirecting the publish messages.
7. Discussion
7. Discussion
Based on the comparisons of Sections 4–6 as well as the theoretical study of the MODBUS TCP in
Based
Section 3, twoon the comparisons
scenarios of Sections
are discussed here 4–6 as well
to build theas the theoretical
industrial study of the MODBUS TCP
IoT environment.
in Section 3, two
The first scenarios
scenario is toare discussed
employ hereMODBUS
only the to build the
TCPindustrial
to build theIoTIIoT
environment.
environment. The study
The first scenario is to employ only the MODBUS TCP to build
of Section 3 proved that MODBUS TCP is able to react as an IoT protocol. Security the IIoT environment. The study
is a fundamental
of Section
issue 3 proved
in IoT, thatsolved
which was MODBUS TCP
in [32] forisMODBUS
able to react
TCPasusing
an IoT protocol.
TLS. Securityabove
As mentioned is a fundamental
in Section 5,
issue in IoT, which was solved in [32] for MODBUS TCP using TLS. As
the MODBUS TCP is able to build the IIoT environment using the synchronous request–response mentioned above in Section
5, the MODBUS pattern
communication TCP is able
on a to build the basis,
standalone IIoT environment using the
which is a scenario thatsynchronous
complies with request–response
most industrial
communication pattern on a standalone basis, which is a scenario
applications. However, this solution totally relies on the polling-based mechanism. that complies with most industrial
applications. However, this solution totally relies on the polling-based
In the second scenario, the event-based mechanism is fulfilled by MQTT, where M2M mechanism.
In the second
communications scenario, using
are required, the event-based
the asynchronous mechanism is fulfilledcommunication
publish–subscribe by MQTT, where M2M
pattern. For
communications
industrial functions,are the
required,
MODBUS using
TCP the asynchronous
is employed, which publish–subscribe communication
fulfills the synchronous pattern.
request–response
For industrial functions,
communication pattern. In the this MODBUS
scenario, MQTT TCP works
is employed,
in parallel which fulfills
with the MODBUS the synchronous
TCP within
request–response communication pattern. In this scenario, MQTT
the same platform, as shown in Figure 11. This figure illustrates the simulation environmentworks in parallel withof the
the
MODBUS TCP within the same platform, as shown in Figure 11. This
second scenario. The environment consisted of a desktop PC running Microsoft Windows XP, a laptop figure illustrates the
simulation
running Linux environment
Ubuntu 16.04,of the and
secondan scenario.
LAN/InternetThe environment
network. The consisted
desktopofPC a desktop PC running
is equipped with a
Microsoft Windows XP, a laptop running Linux Ubuntu 16.04, and an LAN/Internet network. The
Future Internet
Future
Future Internet 2019,
Internet 2019,11,
2019, 11,66
11, xx FOR
FOR PEER
PEER REVIEW
REVIEW 13
13 of 18
13 of 18
18
desktop PC
desktop PC is
is equipped
equipped with
with aa java-based
java-based MODBUS
MODBUS TCP TCP client,
client, the
the ActiveMQ
ActiveMQ MQTT
MQTT server,
server, and
and
java-based
the MQTT.FXMODBUS
MQTT.FX consumer. TCP client,
consumer. The the
The laptop ActiveMQ
laptop was MQTT
was equipped server,
equipped with and the MQTT.FX
with aa multithreaded
multithreaded Java consumer.
Java program; The
program; one laptop
one thread
thread
the
was
ran equipped
the MQTT with a multithreaded
publisher, and Java
another program;
thread ran oneMODBUS
the thread ranTCPthe MQTT
server.publisher,
In andananother
addition, online
ran the MQTT publisher, and another thread ran the MODBUS TCP server. In addition, an online
thread ran
MQTT brokerthe MODBUS
broker and TCP
and consumer, server.
consumer, providedIn addition,
provided by an online
by HiveMQ
HiveMQ for MQTT broker
for testing, and
testing, were consumer,
were employed provided
employed here
here as by
as an
an
MQTT
HiveMQ for testing,
Internet-based were
server. employed here as an Internet-based server.
Internet-based server.
Figure 11.
Figure
Figure 11. Simulation environment
11. environment of
of the
the second
second scenario.
scenario.
The
The RTT
The RTTmeasurements
RTT measurements
measurements andand
andthe the
CPUCPU
the usageusage
CPU of thisof
usage ofenvironment were measured
this environment
this environment for the MODBUS
were measured
were measured for the
for the
TCP
MODBUS
MODBUS and then
TCPcompared
TCP and thentocompared
and then the previous
compared to results
to the
the of Section
previous
previous 6. The
results
results RTT values
of Section
of Section 6. The
6. of the
The RTTMODBUS
RTT values of
values ofTCP,
the
the
which
MODBUS were measured
TCP, which on the
were desktop
measured PC, had
on thea maximum
desktop value
PC, had
MODBUS TCP, which were measured on the desktop PC, had a maximum value of 9 ms. This ofa9 ms. This
maximum represents
value of an
9 increase
ms. This
of maximum
represents
represents an12.5%
an from
increase
increase of the
of previous
maximum
maximum RTT from
12.5%
12.5% values
from presented
the
the previousinRTT
previous Section
RTT 6. As
values
values illustrated
presented
presented in Figure
in Section
in Section 12,
6. As
6. As
the CPU history of the laptop, which contains an MQTT publisher and a MODBUS
illustrated in Figure 12, the CPU history of the laptop, which contains an MQTT publisher and aa
illustrated in Figure 12, the CPU history of the laptop, which contains an MQTTTCP server,
publisher showed
and
that
MODBUS
MODBUSthe CPU TCP
TCPusage is always
server,
server, showedless
showed thatthan
that the 20%.
the CPU Theseis
CPU usage
usage isresults
always
always indicate that
less than
less than the These
20%.
20%. concurrent
These results
results execution
indicate
indicate
of
that
thatMQTT
the in parallelexecution
the concurrent
concurrent with the of
execution MODBUS
of MQTT
MQTT in inTCP within
parallel
parallel thethe
with
with same
the platform
MODBUS
MODBUS does
TCP
TCP not severely
within
within sameinfluence
the same
the platform
platform
the
does performance
not of
severely the MODBUS
influence the TCP. Nevertheless,
performance of while
the MQTT
MODBUS
does not severely influence the performance of the MODBUS TCP. Nevertheless, while MQTT fulfills
TCP. the event-based
Nevertheless, paradigm,
while MQTT
it lacks
fulfills interoperability.
the event-based paradigm, it lacks interoperability.
fulfills the event-based paradigm, it lacks interoperability.
Figure 12.
Figure 12. CPU
CPU history
history of
of the
the laptop
laptop that
that ran
ran an
an MQTT
MQTT publisher
publisher and
and MODBUS
MODBUS TCP
TCP server.
server.
server.
The MQTT
The MQTT protocol
protocol formats
formats thethe data
data using
using the
the UTF-8
UTF-8 standard,
standard, and and hence
hence interoperability
interoperability is is
not fulfilled.
not fulfilled. To
To maintain
maintain a homogeneous
homogeneous message for the the entire
entire environment,
environment, industrial
industrial datadata are
are
organized using
organized using the
the structure
structure of of MODBUS
MODBUS messages,
messages, formatted
formatted in in the
the UTF-8
UTF-8 andand then
then transferred
transferred in in
the payload
the payload of of an
an MQTT
MQTT publish
publish message,
message, as as shown
shown inin Figure
Figure 13a.
13a. The hexadecimal representations
representations
of Figure
of Figure 13a13a were
were obtained
obtained basedbased onon the
the information
information of
information of Table
Table 3.
Table 3. Digit
3. Digit numbers
numbers zero zero toto nine
nine are
are
formatted in
formatted in UTF-8
UTF-8 using
using thethe hexadecimal
hexadecimal representation. Digit number
representation. Digit number
number “0”“0” is represented
“0” is represented
represented by by “30”
“30”
and digit
and digit number
number “9”“9” is
is represented
represented by by “39”.
“39”. Additionally,
Additionally, letters
letters “A” represented by
“A” to “F” are represented
“41”to
“41”
“41” to“46”,
to “46”,respectively.
“46”, respectively.Each
respectively. Eachbyte
Each byteof
byte ofthe
of theMODBUS
the MODBUS message
MODBUS message isis represented
represented by by two
two bytes,
bytes, asas shown
shown
in Figure
in Figure 13.
13. For
For example,
Forexample,
example,the the ID
theID part
IDpart ofofthe
partof the MODBUS
theMODBUS message
MODBUSmessage
message is is
is “00
“00 01”,
“00 which
01”,
01”, which
which leads
leads
leads to “30
to “30“30
to 30 30
30 30
31”
30 representation,
31” representation, andand doubles
doubles thethepayload
payload of
ofthe
the MQTT
MQTT
31” representation, and doubles the payload of the MQTT publish message. The publish
publish message.
message. The MQTT publish
publish
message was
message was subsequently
subsequently transmitted
transmitted to to the
the online
online hivemq.com
hivemq.com server,
server, and
and the
the result
result isis illustrated
illustrated
in Figure
in Figure 13b.
13b.
Future Internet 2019, 11, 66 14 of 18
message
Future was2019,
Internet subsequently transmitted
11, x FOR PEER REVIEWto the online hivemq.com server, and the result is illustrated
14 of in
18
Figure 13b.
Using
Using the
the arrangement
arrangement of
of Figure
Figure 13a,
13a, the
the message
message structure,
structure, which
which is
is the
the MODBUS
MODBUS TCP,TCP, was
was
maintained throughout the entire IIoT environment for both the control part and the monitoring
maintained throughout the entire IIoT environment for both the control part and the monitoring part.
part. This
This led toled to a unified
a unified messagemessage structure,
structure, unifiedunified data processing,
data processing, andthe
and hence hence the interoperability
interoperability problem
problem was
was solved. solved.
(a) (b)
Figure 13. (a) MODBUS message formatted via UTF-8 in the MQTT payload to solve the interoperability
Figure 13. (a) MODBUS message formatted via UTF-8 in the MQTT payload to solve the
problem in the second scenario; (b) message as it appeared on hivemq.com consumer.
interoperability problem in the second scenario; (b) message as it appeared on hivemq.com
consumer. Table 3. UTF-8 encoding characters.
Character
In conclusion, the choice UTF-8 (Decimal)
of solution UTF-8 (Hex)on the requirements
is totally dependent Meaningof the industrial
application. The 0MODBUS TCP builds 48 the IIoT environment
0x30 if publish–subscribe
Digit Zero
communications
1 49 0x31 Digit One of most IIoT
are not required, representing a secured solution that fulfills the requirements
2 50 0x32 Digit Two
applications. If M2M
3
communications51
are required, MQTT
0x33
can be used, Digit
although
Three
it doubles the
payload of the publish
4 message in order
52 to solve the interoperability
0x34 problem.
Digit Four
5 53 0x35 Digit Five
6 54 3. UTF-8 encoding0x36
Table characters. Digit Six
7 55 0x37 Digit Seven
8 Character UTF-856(Decimal) UTF-8 (Hex)
0x38 MeaningDigit Eight
9 0 5748 0x39
0x30 Digit Nine
Digit Zero
A 65 0x41 Capital Letter A
1 49 0x31 Digit One
B 66 0x42 Capital Letter B
C 2 67 50 0x32
0x43 Digit Two Letter C
Capital
D 3 6851 0x33
0x44 Digit Capital
Three Letter D
E 4 6952 0x45
0x34 DigitCapital
Four Letter E
F 5 7053 0x46
0x35 Digit Five Letter F
Capital
6 54 0x36 Digit Six
In conclusion, the7choice of solution
55 is totally dependent
0x37 on the requirements
Digit Seven of the industrial
application. The MODBUS 8 TCP builds the
56 IIoT environment
0x38 if publish–subscribe
Digit Eight communications are
not required, representing
9 a secured solution
57 that fulfills
0x39the requirements of most IIoT applications.
Digit Nine
If M2M communications A are required,65MQTT can be 0x41 used, althoughCapitalit doubles
Letter Athe payload of the
publish message in orderB to solve the interoperability
66 problem.
0x42 Capital Letter B
C 67 0x43 Capital Letter C
8. Conclusions D 68 0x44 Capital Letter D
Two scenarios are E 69 the industrial
introduced to build 0x45 Capital Letter
IoT environment. E scenario employs
The first
the MODBUS TCP only for synchronous polling communications; this solution Fcomplies with most
F 70 0x46 Capital Letter
industrial control systems and SCADA-like applications. However, if asynchronous event-based
8. Conclusions are required, MQTT complements MODBUS TCP operations. In this particular case,
communications
an industrial IoT environment
Two scenarios requires
are introduced the employment
to build the industrialof atIoT
leastenvironment.
two protocols—one
The firstforscenario
the IoT
functions, mainly for M2M communications, and another for the industrial functions.
employs the MODBUS TCP only for synchronous polling communications; this solution complies MODBUS fulfills
the industrial requirements, mainly the telecontrol, monitoring, and automation
with most industrial control systems and SCADA-like applications. However, if asynchronous functions. MQTT
works in parallel
event-based with the MODBUS
communications TCP andMQTT
are required, complements its functions,
complements MODBUS but cannot replace MODBUS.
TCP operations. In this
particular case, an industrial IoT environment requires the employment of at least two
protocols—one for the IoT functions, mainly for M2M communications, and another for the
industrial functions. MODBUS fulfills the industrial requirements, mainly the telecontrol,
Future Internet 2019, 11, 66 15 of 18
Since MQTT lacks interoperability, the industrial data are formatted using the structure of
MODBUS messages, and then transferred in the payload of the MQTT publish message, which
uses the format of the UTF-8. Thus, the message structure of the MODBUS TCP is maintained
throughout the entire environment. This solution provides interoperability, but doubles the payload of
the industrial data.
The simulation results and measurements, presented in Sections 6 and 7, show that the concurrent
execution of MQTT in parallel with the MODBUS TCP within the same platform does not severely
influence the performance of the MODBUS TCP.
Security is a fundamental issue in IoT, which was solved in [32] for MODBUS TCP using TLS
via TCP port 802. MQTT may also employ TLS for encryption via port 8883. More information
on the security of industrial IoT systems can be found in [53–55], on intrusion detection in [56–58],
on encryption in [59], and on black-hole detection in [60].
Abbreviations
6LoWPAN IPv6 over low-power wireless personal area network
AMQP Advanced Message Queuing Protocol
CoAP Constrained Application Protocol
EXI Efficient XML Interchange
HTTP Hypertext Transfer Protocol
IETF Internet Engineering Taskforce
IoT Internet of Things
IIoT Industrial Internet of Things
JSON JavaScript Object Notation
M2M Machine-to-Machine
MQTT Message Queuing Telemetry Transport
OASIS Organization for the Advancement of Structured Information Standards
SCADA Supervisory Control and Data Acquisition
SSL Secure Sockets Layer
TLS Transport Layer Security
UTF-8 Unicode Transformation Format—8-bit
XMPP eXtensible Message and Presence Protocol
References
1. Zanella, A.; Bui, N.; Castellani, A.; Vangelista, L.; Zorzi, M. Internet of Things for Smart Cities. IEEE Internet
Things J. 2014, 1, 22–32. [CrossRef]
2. Ahlgren, B.; Hidell, M.; Ngai, E.C.-H. Internet of Things for Smart Cities: Interoperability and Open Data.
IEEE Internet Comput. 2016, 20, 2–56. [CrossRef]
3. Jaloudi, S. Software-Defined Radio for Modular Audio Mixers: Making Use of Market-Available Audio
Consoles and Software-Defined Radio to Build Multiparty Audio-Mixing Systems. IEEE Consum.
Electron. Mag. 2017, 6, 97–104. [CrossRef]
4. Watthanawisuth, N.; Maturos, T.; Sappat, A.; Tuantranont, A. The IoT wearable stretch sensor using
3D-Graphene foam. In Proceedings of the IEEE Conference on SENSORS, Busan, Korea, 1–4 November 2015.
[CrossRef]
5. Chi, Q.; Yan, H.; Zhang, C.; Pang, Z.; Da Xu, L. A Reconfigurable Smart Sensor Interface for Industrial WSN
in IoT Environment. IEEE Trans. Ind. Inform. 2014, 10, 1417–1425. [CrossRef]
6. El Kaed, C.; Khan, I.; Berg, A.V.D.; Hossayni, H.; Saint-Marcel, C. SRE: Semantic Rules Engine for the
Industrial Internet-Of-Things Gateways. IEEE Trans. Ind. Inform. 2018, 14, 715–724. [CrossRef]
7. Iqbal, R.; Butt, T.; Shafiq, O.; Talib, M.; Umer, T. Context-Aware Data-Driven Intelligent Framework for
Internet of Vehicles. IEEE Access 2018, 6, 58182–58194. [CrossRef]
Future Internet 2019, 11, 66 16 of 18
8. Silva, R.; Iqbal, R. Ethical Implications of Social Internet of Vehicle Systems. IEEE Internet Things J. 2018.
[CrossRef]
9. Long, C.; Cao, Y.; Jiang, T.; Zhang, Q. Edge Computing Framework for Cooperative Video Processing in
Multimedia IoT Systems. IEEE Trans. Multimed. 2018, 20, 1126–1139. [CrossRef]
10. Ja’afreh, M.A.; Aloqaily, M.; Ridhawi, I.A.; Mostafa, N. A hybrid-based 3D streaming framework for mobile
devices over IoT environments. In Proceedings of the 3rd International Conference on Fog and Mobile Edge
Computing (FMEC), Barcelona, Spain, 23–26 April 2018. [CrossRef]
11. Al Ridhawi, I.; Aloqaily, M.; Kotb, Y.; Al Ridhawi, Y.; Jararweh, Y. A collaborative mobile edge computing
and user solution for service composition in 5G systems. Wiley Trans. Emerg. Telecommun. Technol. 2018, 29,
e3446. [CrossRef]
12. Balasubramanian, V.; Aloqaily, M.; Zaman, F.; Jararweh, Y. Exploring Computing at the Edge:
A Multi-Interface System Architecture Enabled Mobile Device Cloud. In Proceedings of the 7th International
Conference on Cloud Networking (CloudNet), Tokyo, Japan, 22–24 October 2018. [CrossRef]
13. Jaloudi, S. Open source software of smart city protocols current status and challenges. In Proceedings
of the International Conference on Open Source Software Computing (OSSCOM), Amman, Jordan,
10–13 September 2015. [CrossRef]
14. Standard 19464. Advanced Message Queuing Protocol 1.0 (AMQP 1.0); ISO/IEC: Geneva, Switzerland, 2016.
15. O’Hara, J. ISO 19464 Connecting Business for Value. 2014. Available online: http://www.amqp.org/sites/
amqp.org/files/2014.05.01%20ISO%2019464%20AMQP-ORG_0.pdf (accessed on 4 February 2019).
16. Godfrey, R.; Ingham, D.; Schloming, R. OASIS Standard Advanced Message Queuing Protocol (AMQP)
Version 1.0. 2012. Available online: http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-complete-
v1.0-os.pdf (accessed on 4 February 2019).
17. Standard PRF 20922. Message Queuing and Telemetry Transport (MQTT) Version 3.1.1; ISO/IEC: Geneva,
Switzerland, 2016.
18. Standard RFC 7252. Constrained Application Protocol (CoAP); IETF: Fremont, CA, USA, 2014.
19. Standard RFC 6120. Extensible Message and Presence Protocol (XMPP); IETF: Fremont, CA, USA, 2011.
20. Standard RFC 7159. The JavaScript Object Notation (JSON) Data Interchange Format; IETF: Fremont, CA,
USA, 2014.
21. Standard IEEE 802.11. Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY); IEEE: New York,
NY, USA, 2012.
22. Tao, F.; Cheng, J.; Qi, Q. IIHub: An Industrial Internet-of-Things Hub Toward Smart Manufacturing Based
on Cyber-Physical System. IEEE Trans. Ind. Inform. 2018, 14, 2271–2280. [CrossRef]
23. Ferrari, P.; Flammini, A.; Rinaldi, S.; Sisinni, E.; Maffei, D.; Malara, M. Impact of Quality of Service on Cloud
Based Industrial IoT Applications with OPC UA. Electronics 2018, 7, 109. [CrossRef]
24. Angrisani, L.; Cesaro, U.; D’Arco, M.; Grillo, D.; Tocchi, A. IOT Enabling Measurement Applications in
Industry 4.0: Platform for Remote Programming ATES. In Proceedings of the IEEE Workshop on Metrology
for Industry 4.0 and IoT, Brescia, Italy, 16–18 April 2018. [CrossRef]
25. Müller, J.M.; Kiel, D.; Voigt, K.-I. What Drives the Implementation of Industry 4.0? The Role of Opportunities
and Challenges in the Context of Sustainability. Sustainability 2018, 10, 247. [CrossRef]
26. Sangkeun, Y.; Kim, Y.W.; Choi, H. An assessment framework for smart manufacturing. In Proceedings of the
IEEE 20th International Conference on Advanced Communication Technology, Chuncheon-si Gangwon-do,
Korea, 11–14 February 2018. [CrossRef]
27. Moyne, J.; Iskandar, J. Big Data Analytics for Smart Manufacturing: Case Studies in Semiconductor
Manufacturing. Processes 2017, 5, 39. [CrossRef]
28. Chekired, D.A.; Khoukhi, L.; Mouftah, H.T. Industrial IoT Data Scheduling Based on Hierarchical Fog
Computing: A Key for Enabling Smart Factory. IEEE Trans. Ind. Inform. 2018, 14, 4590–4602. [CrossRef]
29. Mabkhot, M.M.; Al-Ahmari, A.M.; Salah, B.; Alkhalefah, H. Requirements of the Smart Factory System:
A Survey and Perspective. Machines 2018, 6, 23. [CrossRef]
30. Modbus Application Protocol Specification V1.1b3. 2012. Available online: http://www.modbus.org/docs/
Modbus_Application_Protocol_V1_1b3.pdf (accessed on 3 February 2019).
31. Modbus Messaging on TCP/IP Implementation Guide V1.0b. 2006. Available online: http://www.modbus.
org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf (accessed on 3 February 2019).
Future Internet 2019, 11, 66 17 of 18
51. Koster, M.; Keranen, A.; Jimene, J. IETF Draft Standard Publish-Subscribe Broker for the Constrained
Application Protocol (CoAP). 2019. Available online: https://tools.ietf.org/html/draft-ietf-core-coap-
pubsub-06 (accessed on 4 February 2019).
52. Käbisch, S.; Peintner, D. W3C Recommendation Canonical EXI. 2018. Available online: https://www.w3.
org/TR/exi-c14n/ (accessed on 4 February 2019).
53. Carías, J.F.; Labaka, L.; Sarriegi, J.M.; Hernantes, J. Defining a Cyber Resilience Investment Strategy in an
Industrial Internet of Things Context. Sensors 2019, 19, 138. [CrossRef] [PubMed]
54. Kwon, S.; Jeong, J.; Shon, T. Toward Security Enhanced Provisioning in Industrial IoT Systems. Sensors 2018,
18, 4372. [CrossRef] [PubMed]
55. Xun, P.; Zhu, P.-D.; Hu, Y.-F.; Cui, P.-S.; Zhang, Y. Command Disaggregation Attack and Mitigation in
Industrial Internet of Things. Sensors 2017, 17, 2408. [CrossRef] [PubMed]
56. Aloqaily, M.; Otoum, S.; Ridhawi, I.A.; Jararweh, Y. An Intrusion Detection System for Connected Vehicles in
Smart Cities. J. Ad Hoc Netw. 2019, in press. [CrossRef]
57. Otoum, S.; Kantarci, B.; Mouftah, H. Adaptively Supervised and Intrusion-Aware Data Aggregation for
Wireless Sensor Clusters in Critical Infrastructures. In Proceedings of the IEEE International Conference on
Communications (ICC), Kansas City, MO, USA, 20–24 May 2018. [CrossRef]
58. Otoum, S.; Kantarci, B.; Mouftah, H.T. Detection of Known and Unknown Intrusive Sensor Behavior in
Critical Applications. IEEE Sens. Lett. 2017, 1, 1–4. [CrossRef]
59. Wang, C.; Shen, J.; Liu, Q.; Ren, Y.; Li, T. A Novel Security Scheme Based on Instant Encrypted Transmission
for Internet of Things. Secur. Commun. Netw. 2018, 2018, 3680851. [CrossRef]
60. Otoum, S.; Kantarci, B.; Mouftah, H.T. Hierarchical trust-based black-hole detection in WSN-based smart
grid monitoring. In Proceedings of the IEEE International Conference on Communications (ICC), Paris,
France, 21–25 May 2017. [CrossRef]
© 2019 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/).