Google Amazon Microsoft IoT Comparison
Google Amazon Microsoft IoT Comparison
Google Amazon Microsoft IoT Comparison
ABSTRACT Internet of Things (IoT) aims to connect the real world made up of devices, sensors and
actuators to the virtual world of Internet in order to interconnect devices with each other generating
information from the gathered data. Devices, in general, have limited computational power and limited
storage capacity. Cloud Computing (CC) has virtually unlimited capacity in terms of storage and computing
power, and is based on sharing resources. Therefore, the integration between IoT and CC seems to be one of
the most promising solutions. In fact, many of the biggest companies that offer Cloud Services are focusing
on the IoT world to offer services also in this direction to their users. In this paper we compare the three
main Cloud Platforms (Amazon Web Services, Google Cloud Platform and Microsoft Azure) regarding
to the services made available for the IoT. After describing the typical architecture of an IoT application,
we map the Cloud-IoT Platforms services with this architecture analyzing the key points for each platform.
At the same time, in order to conduct a comparative analysis of performance, we focus on a service made
available by all platforms (MQTT middleware) building the reference scenarios and the metrics to be taken
into account. Finally, we provide an overview of platform costs based on different loads. The aim is not
to declare a winner, but to provide a useful tool to developers to make an informed choice of a platform
depending on the use case.
INDEX TERMS AWS, Azure, Cloud Computing, Cloud-IoT, Google Cloud Platform, Internet of
Things, MQTT.
This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see http://creativecommons.org/licenses/by/4.0/
VOLUME 8, 2020 5455
P. Pierleoni et al.: Amazon, Google and Microsoft Solutions for IoT: Architectures and a Performance Comparison
• The study in [7] shows how Cloud-Assisted Remote • Al-khafajiy et al. in [19] focus on the resource manage-
Sensing (CARS) enables distributed sensory data col- ment and monitoring and how to balance the Fog load
lection, global resource and data sharing, remote and in order to avoid delays for real-time systems and to not
real-time data access, elastic resource provisioning and get the QoS levels worse.
scaling, and pay-as-you-go pricing models, underlining • In [20] authors present the improved previous frame-
potentials for enabling the so-called Internet of Every- work with optimal management of resources as far as
thing (IoE). job allocation in an Healthcare scenario.
• The paper [8] mainly focuses on a common approach to It is possible to consider Fog Computing as a connection
integrate the IoT and CC under the name of CloudThings point between devices and the Cloud, in fact all the mentioned
architecture and examine an IoT-enabled smart home studies agree on the central role of the Cloud. Different Fog
scenario to analyze the IoT application requirements. nodes flow the data to the Cloud. Therefore, studying the
• A solution for merging IoT and Cloud is proposed by performance of a Cloud platform, it is also useful to make
Nastic et al. [9]. They argue that system designers and weighted decisions on when and how to offload the Fog
operations managers face numerous challenges to real- nodes.
ize IoT Cloud systems in practice, due to the com- As reported in [21], with the increasing use of the
plexity and diversity of their requirements in terms of Cloud, depicting the performance of Cloud services become
IoT resources consumption, customization and runtime a priority. Many different performance tests that could be
governance. performed.
• Liu et al. [10] propose a data-centric IoT framework that • In [22] authors discuss the evaluation of different
takes advantages of the Azure public Cloud to realize Infrastructure as a Service (IaaS) Cloud systems, using
a centralized IoT management service, extending their micro-benchmarks.
previous work [11], where they present a remote mon- • Shukla et al. [23] propose RIoTBench, a real-time IoT
itoring and management solution, that is specific to a benchmark suite used to evaluate Distributed Stream
plant wall system, based on Cloud and IoT. Processing System for IoT applications hosted in Cloud
• As described in 2013 by Gubbi et al. [12] IoT anc CC data centers.
can converge. They present a Cloud centric vision for • CloudHarmony [24] offers a large collection of bench-
worldwide implementation of IoT and a Cloud imple- marks and users are able to build their own set of bench-
mentation using Aneka, which is based on interaction of marks and reports. This solution can compare Cloud
private and public Clouds. Providers and services, e.g. compute engine, storage,
On the global market the first IoT platforms integrated DNS, CDN, but not IoT related services.
with CC start being developed, in parallel with studies on According to our best knowledge, there are no studies that
IoT-Cloud native platforms. compare a typical architecture of an IoT application with
• The paper [13] presents a survey that identifies several the related services that a selection of Cloud-IoT platforms
service domains IoT Cloud platforms should deal with. makes available. There are also no studies comparing the
• In [14] the authors propose a framework for evalu- performance of the selected platforms on the basis of the IoT
ating the IoT platforms from the perspective of how services made available.
widely they cover the potential needs of the application There are hundreds of IoT platforms available from a range
providers, and their results suggests how none of the of vendors. Some platforms are highly specialized, other are
platforms today offers comprehensive support. focused on providing only a subset of the functions that
• Pflanzner and Kertész in [15] introduce a taxonomy of might be required for an IoT system. According to ‘‘The
IoT application properties and investigate 23 IoT Cloud IoT Developer Survey 2018’’ [25] drawn up by the Eclipse
use cases performing a detailed classification of them in IoT Working Group, in collaboration with the Agile-IoT
a survey. H2020 Project, IEEE, and the Open Mobile Alliance (now
IoT devices produce a large amount of data that must OMA SpecWorks), the main general-purpose end-to-end
be transmitted for processing. Traditional CC architectures Cloud-IoT platforms that currently have the leadership on the
may not meet requirements in terms of latency and real-time global market are Amazon Web Service (AWS), Microsoft
decision-making approach. Therefore, according to recent Azure and the Google Cloud Platform. Our analysis will
studies [16], Fog Computing could be a solution. focus on the comparison of these Cloud platforms regarding
• Fog Computing provides computation, storage and net- the services they make available for the IoT.
working at the edge of the IoT network, between devices In order to conduct a complete comparative performance
and Cloud data centres. [17]. analysis of the three selected platforms, it is necessary to
• Bonomi et al. [18] define characteristics of Fog Com- construct a typical scenario of an IoT application. In the
puting and demonstrate the role of Fog in the IoT, high- meantime, the breadth of the application fields (e.g. smart-
lighting how Fog nodes provide localization, enabling home, smart-traffic, industrial applications, e-health) and
low latency and context awareness, and how the Cloud consequent diversity of the involved services, would make
provides global centralization. the study limited to the concerned sector. Selected Cloud
3) CLOUD-IoT PLATFORMS
FIGURE 2. Elements of IoT solutions. (Source: Cloud standards customer
council, Cloud customer architecture for IoT, 2016). According to the previous depicted architecture, Cloud-IoT
platforms provide middleware to connect and manage hard-
ware devices and the data collected by them. IoT solutions
networking capabilities. Devices (including sensor/actuator, in the Cloud require secure, bidirectional communication
firmware and management agent) and the physical entity are between devices and a solution back end. An IoT application
part of the Proximity Network domain. The Public Network involves many heterogeneous IoT devices, with sensors that
interconnects the devices of different proximity networks produce and send data or events through a network. They can
through a wide area network, typically the Internet. It also be used to generate insights (e.g. data processing and ana-
contains Edge Service, that allows the safe flow of data from lytics). In the rest of this section we investigate the platform
the Internet into the Provider Cloud. The Provider Cloud tier and the enterprise tier of the Cloud-IoT architecture and
captures data from devices or other data source and pro- we map components and functionalities in each tier with the
vides core IoT applications and associated services (storage, selected Cloud Platforms.
analytics, visualization). It includes components for device The keys that we consider to perform the analysis are:
management (provisioning, remote administration, software • Device management. Managing IoT hardware devices
updating, remote control). The insights generated by the is one of the core functions of an IoT platform.
Provider Cloud are used by user and enterprise application in It includes provisioning of new devices, monitoring and
the Enterprise Network domain. IoT governance and security maintenance of operating devices. IoT platforms have to
subsystems span all elements of the architecture. The secu- provide features for managing device registration, con-
rity system has to consider identity and access management figuration, over-the-air updates, and asset management,
(IAM), data protection, security monitoring, analysis and including the ability to list and search connected devices
response. and to query and manage device metadata.
The Cloud components of IoT architecture are in a • Data communication protocols. In order to enable the
three-tier pattern according to Industrial Internet Consortium remote management of devices and data transmis-
Reference Architecture [43] as depicted in Fig.3. This archi- sion, a secure and reliable communication between
tecture comprises edge, platform and enterprise layers. The IoT devices, gateways, and cloud-based apps and ser-
edge tier includes Proximity and Public Networks of the vices is essential. In literature [46] these communi-
reference architecture where data is collected from devices cation types for IoT environment are usually referred
and transmitted to devices. A device can either communicate as ‘‘Device-to-Device (D2D)’’, ‘‘Device-to-Application
directly, or through an intermediate gateway, with the Cloud. (D2A)’’, ‘‘Device-to-Gateway (D2G)’’ and ‘‘Device-to-
The field-gateway has the role of protocol translation [44] and Cloud (D2C)’’. Some data can be stored and processed
may be able to perform local storage, filtering and processing locally (e.g. field gateway in the WSN), as well as
actions on received data before sending it to the Cloud [45]. some of the data collected from sensors and other IoT
The platform tier is the Provider Cloud. It receives, processes, devices need to be delivered to cloud services for further
and analyzes data flows both in flight and at rest from the edge processing. IoT platforms incorporate message broker
tier and provides API management and visualization. It also services to enable devices and gateways to send and
provides the capability to initiate control commands from the receive messages with low latency and at scale. Message
Enterprise Network to the Public Network. The enterprise tier broker services use standard communication protocols
implements domain-specific applications, decision support like MQTT [47], CoAP [48], or XMPP [49], and support
systems and provides interfaces to end-users. It receives data web sockets.
flows from the edge and platform tier and also issues control • Rules. Once data is ingested to the IoT back-end,
commands to the platform tier and edge tier. the flow of data processing may vary, depending on
scenarios and applications. Regardless, IoT platforms delay, that is the time elapsed between producing and sending
may offer a rules engine with conditions used to trigger a message by a publisher client and receiving that message
actions. by a subscriber client or application. Nevertheless end-to-end
• Data storage. Data generated by IoT devices need to delay is affected by factors, such as transmission time, prop-
be stored in order to be accessed by further processing. agation time, procession and queuing time [55]. These con-
Data is usually split in hot and cold data stores [50]. ditions are not always stable during the tests run at different
Hot data stores need to be accessed with high frequency times. Therefore, what we consider is only the cloud-broker’s
and low latency, whereas cold data stores are accessed service time in different conditions, which we illustrate in the
infrequently generally with high latency and with lower construction of the scenarios in Sec.II-B2. We also analyze
storage costs still preserving historical data. the cost of the involved services, extending a recent work by
• Integration. IoT platforms provide integration with other Kalmar and Kertesz [56] where an investigation of different
platforms, devices, web services, tools, and applications IoT Cloud service providers pricing models is conducted.
through SDKs and APIs. They construct 2 scenarios and perform the costs estimation.
• Security. This includes securing devices and network In this work we conduct a comparative analysis with a vari-
communication in addition to implementing Cloud and able number of devices (and consequently a changing number
application-level security. of messages) connected to the platforms.
• Costs. In a general Cloud environment all services are The following subsection illustrates the method used to
offered in a pay-as-you-go model, in such a way that calculate the service time of the broker on Cloud platforms.
users pay only the real use of a service/resource. We con-
sider only the cost of the IoT core solution, without con- 1) CLOUD SERVICE TIME
sidering other connected services, such as storage or data Consider a simple case with only one publisher client, P1 and
analysis. one subscriber client S1, that are MQTT clients of the same
Finding the right combination of the aforementioned capa- MQTT broker in a Cloud Platform. The experiment flow is
bilities and the use case is the basis for designing an IoT shown in Fig.4: P1 publishes a message with QoS level 1 at
solution based on CC. For example in a Smart City scenario time t0 with the timestamp t0 . At t1 the message arrives at the
information in terms of privacy and data loss are not as impor- broker, that answers to P1 with an acknowledge (PUBACK);
tant as in a healthcare domain [51]. According to [5] Smart this PUBACK arrives at time t4 to P1. In the meanwhile the
City is a fragmented scenario where common challenges broker sends the message at time t2 to S1 and S1 receives the
are related to reliability, scale and timeliness, whereas in a message at t3 . The broker service time is given by (1)
healthcare IoT solution data security and privacy by users are
the main challenges [52]. Device management and analytics Tc = t2 − t1 (1)
capabilities would be much more important for an industrial
and cultural heritage [53] IoT application. They can involve All three platforms provide to users a log system that can be
thousands of sensors to monitor different parameters inside analyzed to obtain this value. Our aim is to obtain Tc without
the same environment. Next sections investigate services the use of platforms logs. It would be possible to implement
offered by the three platforms and finally we summarize them a rule in the Cloud that adds new fields to the incoming
in Table 2. message with the timestamps t1 and t2 , but this choice is not
practicable because this operation would add significant and
B. PERFORMANCE METRICS AND SCENARIOS not easily quantifiable delays, negatively affecting the final
In order to achieve messages reliability, MQTT supports result. Furthermore, it is not possible to compare client times
three QoS levels [54]. In QoS level 0 a message is delivered with platform times unless using synchronization algorithms.
at most once and no confirmation of reception is required. In addition, in order to guarantee efficiency and scalability,
In QoS level 1, every message is delivered at least once and the platforms provide a connection endpoint, but the actual
an acknowledgement of message reception is required. QoS location of the endpoint is obviously different over time,
level 2 uses a four-way handshake mechanism for the delivery making synchronization highly expensive in terms of compu-
of a message exactly once. The Cloud platforms included in tation. Therefore we implement the simulated clients in the
this study ensure support only for QoS level 0 and 1, not for same physical machine, so as to avoid any synchronization
QoS level 2. problem between hosts. Starting from algorithms of the Net-
The aim of this study is to measure the performance of work Time Protocol [57] it is possible to calculate the Round
the access point to Cloud services for IoT: message broker Trip Delay by (2)
in AWS IoT-Core, Microsoft Azure IoT Hub and the MQTT
RTD = (t3 − t0 ) − (t2 − t1 ) (2)
Bridge of the Google’s Cloud IoT-Core. As reported in a
recent survey [46], the messaging technology has the greatest The Round Trip Time on the publisher is calculated by
usage in IoT applications, and the time is one of the most using (3)
important evaluation factors. Therefore, in order to com-
pare MQTT performance we first consider the end-to-end RTTp = t4 − t0 (3)
the instant t4 in a text file. The subscriber client does the same
operation when it receives the message in the instant t3 .
We conduct 100 tests in 23 different simulations and for
each simulation we compute the Mean and the Standard
Deviation, both from Amazon’s Log and from text files
obtained from tests, that we analyze to verify the value of the
assumptions.
Starting from a base case with one client publishing one
message per second (mps) on a topic which has one sub-
scriber client, we send 1000 messages and we track the
obtained results. The sending frequency has increased from
1 mps to 1000 mps, and then the number of publisher and
subscriber clients has changed to 5 and 10 (always maintain-
ing 1:1 ratio), resulting in an increase of up to 10000 mps.
The Mean values and Standard Deviations obtained, as shown
in Table 1, are very close for each case and in all cases the
probability distributions follow identical trends. Therefore,
FIGURE 4. Experiment flow. Publisher sends a message to the broker and it is possible to state that the errors obtained by the simpli-
the broker forwards it to the subscriber. fications adopted are negligible for the final evaluation.
2) SCENARIOS
where t0 is the time when P1 publish the QoS level 1 message In order to analyze the performance in terms of processing
and t4 when the PUBACK sent by broker comes back to P1. time of the platforms’ Cloud Gateway, we consider differ-
Since the clients reside in the same machine we can hypothe- ent scenarios with different loads. Loads refer to different
size that the One Way Delays are symmetric, so the searched dimensions, such as number of publisher clients, number
value Tc is simply given by (4) of subscriber clients, number of messages exchanged, size
Tc = t2 − t1 = t3 − t4 (4) of messages, rate of messages published or consumed. We
made the following assumptions for scenarios construction:
In order to verify that these assumptions are not too sim- fixed size of the message payload equal to 150 bytes and
plified, with consequent inconsistency of subsequent results, number of topics equal to the number of publishers (i.e.
a validation of the data is carried out by simulations to be each client publishes messages on its own reserved topic).
compared with the logs obtained from a platform. We exam- In addition, each client, both publisher and subscriber, works
ine the AWS platform that provides the CloudWatch ser- by creating its own connection to the Cloud gateway. In this
vice [58] for log analysis. After creating a policy in the way connections are not shared by multiple clients, in order
IoT-Core that allows communication between the two ser- to simulate different connected devices (or applications).
vices, it is possible to analyze the generated log, a JSON file We consider 3 cases, increasing the loads for each case,
with the following format: in such a way as to be able to analyze both the service time of
{“timestamp”: “2019-08-19 10:54:07.180”, the broker for each platform, and the reliability of the limits
“logLevel”: “INFO”, imposed by the platforms themselves.
“traceId”: “xxxxxxxx-xxxx-xxxx-xxxx-xx”, For all platforms we sign free accounts, that introduce
“accountId”: “0123456789”, some limitations, especially with regard to the Microsoft
“status”: “Success”, platform. Indeed, as reported in [59], the free-tier for Azure
“eventType”: “Publish-In”, IoT Hub allows the creation of a single unit, resulting in
“protocol”: “MQTT”, a limit of 100 connections/sec accepted and a maximum
“topicName”: “/path/to/topic”, of 8000 messages/day.
“clientId”: “cliendId”, • Point to Point: in this scenario the number of publisher
“principalId”: “principalIdentification”, clients is equal to the number of subscriber clients, each
“sourceIp”: “xxx.xxx.xxx.xxx”, of which is listening on a single topic. The load is
“sourcePort”: 01234 } increased in two different ways: keeping the rate of mes-
The eventType field has the value ‘‘Publish-in’’ when a sages sent by publishers fixed to 10 mps and increasing
message arrives at the broker and the value ‘‘Publish-out’’ the number of clients (between 1 and 600), or keeping
when the broker sends it to a subscriber client. The value the number of clients fixed (100 publisher clients and
we are looking for is the difference between the timestamp 100 subscriber), varying the frequency of sending mes-
fields of the two JSON files. We write a python application sages (between 1 mps and 10 mps per client).
that simulates a publisher and a subscriber client: a client • Fan in: in this scenario, more clients publish messages
publishes a message with an Identification number and writes (each on their own topic) and a subscriber client is
TABLE 1. Mean and standard deviation of cloud service time obtained from AWS log and from simulations. Times are in ms.
III. RESULTS
A. ARCHITECTURE FIGURE 5. AWS IoT Core architecture and integration.
cache, 2.66 GHz, 16 GB RAM with Ubuntu 18.04.1 LTS. the Paho Go Client Library [61], which allows connection to
The clients have been implemented in GoLang, a language an MQTT broker via TCP, TLS or WebSocket.
developed by Google, whose approach to concurrency differs The tool creates as many Goroutines as the clients param-
from the classic use of threads and shared memory. Concur- eter depending on the scenario considered (e.g. in scenario
rency is an intrinsic part of the Go programming language A #clients publisher and #clients subscriber, in the case B
and is managed using Goroutine and Channels. Goroutine #clients publisher and only one subscriber). Routines wait
are functions or methods that are performed concurrently for each client to be safely connected and authenticate to
with other functions or methods in the same address space, the broker, and consequently start to publish messages in
so access to shared memory must be synchronized. They are their own topic. At the same time subscribers are listening
not real threads, but light-weight threads managed entirely to that topic. Publisher clients keep track of the PUBACK
by the Go runtime. Channels are the pipes that connect timestamp received by the broker (thanks to QoS level 1) in
concurrent Goroutine. A tool has been developed that takes an array which index is the message identifier contained in
the following parameters from the command line: the MQTT the payload. In the same way, subscribers perform the same
broker endpoint (scheme://endpoint-url:port), the scenario to operation, keeping track of the reception timestamp. At the
be simulated, the number of clients, the number of messages, end of the Goroutine, the values are sent to the main routine,
the interval in ms between messages, the size of each mes- which saves the values of each publisher and subscriber client
sage, the publisher and subscriber QoS, eventual username in a bi-dimensional array. The obtained matrices are passed to
and password for the connection. In the case of connection a function that writes in a MySql database every single per-
to the Google Cloud Platform’s IoT Core, each client must formed measurement and the parameters of the simulation.
provide a JSON Web Token (JWT) for authentication. We use Cloud services performance may vary over time. Therefore,
FIGURE 8. Point-to-point scenario - Cloud service times in relation to mps sent by clients. In (a) each client sends 10 mps and we change the
number of clients from 1 to 600; in (b) a fixed number of clients (100) sends messages from 1 mps to 15 mps.
FIGURE 11. Boxplot of azure results. FIGURE 13. Fan-in scenario - Cloud service time vs mps sent by clients
with 10 mps/client and from 1 to 600 connected clients.
FIGURE 14. Fan-out scenario - Cloud service times vs fan-out factor (from FIGURE 15. Costs in function of increasing number of devices.
1 to 300 subscribers client).
[22] L. Gillam, B. Li, J. O’Loughlin, and A. P. S. Tomar, ‘‘Fair benchmarking [46] A. Souri, A. Hussien, M. Hoseyninezhad, and M. Norouzi, ‘‘A systematic
for cloud computing systems,’’ J. Cloud Comput., Adv., Syst. Appl., vol. 2, review of IoT communication strategies for an efficient smart environ-
no. 1, p. 6, 2013. ment,’’ Trans. Emerg. Telecommun. Technol., p. e3736, 2019. [Online].
[23] A. Shukla, S. Chaturvedi, and Y. Simmhan, ‘‘RiotBench: An IoT bench- Available: https://onlinelibrary.wiley.com/doi/abs/10.1002/ett.3736, doi:
mark for distributed stream processing systems,’’ Concurrency Comput., 10.1002/ett.3736.
Pract. Exper., vol. 29, no. 21, p. e4257, 2017. [47] Information Technology—Message Queuing Telemetry Transport (MQTT)
[24] CloudHarmony, Transparency for the Cloud. Accessed: Nov. 29, 2019. v3.1.1, ISO Standard ISO/IEC 20922:2016, Jun. 2016.
[Online]. Available: http://www.cloudharmony.com/ [48] Z. Shelby, K. Hartke, and C. Bormann, The Constrained Application
[25] IoT Developer Survey 2018. Accessed: Jun. 28, 2018. [Online]. Available: Protocol (COAP), document RFC 7252, Jun. 2014. [Online]. Available:
https://www.eclipse.org/org/press-release/iotdevsurvey2018.php http://www.rfc-editor.org/rfc/rfc7252.txt
[26] D. Happ, N. Karowski, T. Menzel, V. Handziski, and A. Wolisz, ‘‘Meeting [49] P. Saint-Andre, Extensible Messaging and Presence Protocol
IoT platform requirements with open pub/sub solutions,’’ Ann. Telecom- (XMPP): Core, document RFC 6120, Mar. 2011. [Online]. Available:
mun., vol. 72, no. 1, pp. 41–52, Feb. 2017. http://www.rfc-editor.org/rfc/rfc6120.txt
[27] I. Hedji, I. Špeh, and A. Šarabok, ‘‘IoT network protocols comparison [50] J. J. Levandoski, P.-Å. Larson, and R. Stoica, ‘‘Identifying hot and cold
for the purpose of IoT constrained networks,’’ in Proc. 40th Int. Conv. data in main-memory databases,’’ in Proc. IEEE 29th Int. Conf. Data
Inf. Commun. Technol., Electron. Microelectron. (MIPRO), May 2017, Eng. (ICDE), Apr. 2013, pp. 26–37.
pp. 501–505. [51] P. Pierleoni, L. Pernini, L. Palma, A. Belli, S. Valenti, L. Maurizi,
[28] R. Sutaria and R. Govindachari, ‘‘Making sense of interoperability: Pro- L. Sabbatini, and A. Marroni, ‘‘An innovative WebRTC solution for e-
tocols and standardization initiatives in IoT,’’ in Proc. 2nd Int. Workshop health services,’’ in Proc. IEEE 18th Int. Conf. e-Health Netw., Appl.
Comput. Netw. Internet Things, 2013. Services (Healthcom), Sep. 2016, pp. 1–6.
[29] Á. Asensio, Á. Marco, R. Blasco, and R. Casas, ‘‘Protocol and architecture [52] A. M.-H. Kuo, ‘‘Opportunities and challenges of cloud computing to
to bring things into Internet of Things,’’ Int. J. Distrib. Sensor Netw., improve health care services,’’ J. Med. Internet Res., vol. 13, no. 3, p. e67,
vol. 10, no. 4, 2014, Art. no. 158252. 2011.
[30] L. Hou, S. Zhao, X. Xiong, K. Zheng, P. Chatzimisios, M. S. Hos- [53] P. Pierleoni, A. Belli, L. Palma, S. Valenti, S. Raggiunto, L. Incipini, and
sain, and W. Xiang, ‘‘Internet of Things cloud: Architecture and P. Ceregioli, ‘‘The Scrovegni chapel moves into the future: An innovative
implementation,’’ IEEE Commun. Mag., vol. 54, no. 12, pp. 32–39, Internet of Things solution brings new light to Giotto’s masterpiece,’’ IEEE
Dec. 2016. Sensors J., vol. 18, no. 18, pp. 7681–7696, Sep. 2018.
[31] T. Yokotani and Y. Sasaki, ‘‘Comparison with HTTP and MQTT on [54] S. Behnel, L. Fiege, and G. Muhl, ‘‘On quality-of-service and publish-
required network resources for IoT,’’ in Proc. Int. Conf. Control, Electron., subscribe,’’ in Proc. 26th IEEE Int. Conf. Distrib. Comput. Syst. Workshops
Renew. Energy Commun. (ICCEREC), Sep. 2016, pp. 1–6. (ICDCS Workshops), Jul. 2006, p. 20.
[32] A. A. Simiscuka, T. M. Markande, and G.-M. Muntean, ‘‘Real-virtual [55] C. Bovy, H. Mertodimedjo, G. Hooghiemstra, H. Uijterwaal, and
world device synchronization in a cloud-enabled social virtual reality IoT P. V. Mieghem, ‘‘Analysis of end-to-end delay measurements in Internet,’’
network,’’ IEEE Access, vol. 7, pp. 106588–106599, 2019. in Proc. Passive Active Meas. Workshop-PAM, 2002.
[33] J. E. Luzuriaga, M. Perez, P. Boronat, J. C. Cano, C. Calafate, and [56] E. E. Kalmar and A. Kertesz, ‘‘What does I (o) T cost?’’ in Proc. 8th
P. Manzoni, ‘‘A comparative evaluation of AMQP and MQTT protocols ACM/SPEC Int. Conf. Perform. Eng. Companion, 2017, pp. 19–24.
over unstable and mobile networks,’’ in Proc. 12th Annu. Consum. Com- [57] D. Mills, J. Martin, J. Burbank, and W. Kasch, Network Time Protocol
mun. Netw. Conf. (CCNC), Jan. 2015, pp. 931–936. Version 4: Protocol and Algorithms Specification, document RFC 5905,
[34] D. Thangavel, X. Ma, A. Valera, H.-X. Tan, and C. K.-Y. Tan, Jun. 2010. [Online]. Available: http://www.rfc-editor.org/rfc/rfc5905.txt
‘‘Performance evaluation of MQTT and COAP via a common middle- [58] Amazon CloudWatch. Accessed: Jun. 20, 2018. [Online]. Available:
ware,’’ in Proc. IEEE 9th Int. Conf. Intell. Sensors, Sensor Netw. Inf. http://aws.amazon.com/cloudwatch
Process. (ISSNIP), Apr. 2014, pp. 1–6. [59] Choose the Right IoT Hub Tier for Your Solution. Accessed: Jun. 20, 2018.
[35] Y. Chen and T. Kunz, ‘‘Performance evaluation of IoT protocols under [Online]. Available: https://docs.microsoft.com/en-us/azure/iot-hub/iot-
a constrained wireless access network,’’ in Proc. Int. Conf. Sel. Topics hub-scaling
Mobile Wireless Netw. (MoWNeT), Apr. 2016, pp. 1–7. [60] M. Jones, J. Bradley, and N. Sakimura, JSON Web Token (JWT),
[36] D. Lund, C. MacGillivray, V. Turner, and M. Morales, ‘‘Worldwide and document RFC 7519, May 2015. [Online]. Available: http://www.rfc-
regional Internet of Things (IoT) 2014–2020 forecast: A virtuous circle editor.org/rfc/rfc7519.txt
of proven value and demand,’’ Int. Data Corp., Framingham, MA, USA, [61] Eclipse Paho Go Client. Accessed: May 10, 2018. [Online]. Available:
Tech. Rep. 1, 2014. https://www.eclipse.org/paho/clients/golang/
[37] M. Wu, T.-J. Lu, F.-Y. Ling, J. Sun, and H.-Y. Du, ‘‘Research on the [62] Google Cloud Pub/Sub. Accessed: May 15, 2018. [Online]. Available:
architecture of Internet of Things,’’ in Proc. 3rd Int. Conf. Adv. Comput. https://cloud.google.com/pubsub/
Theory Eng. (ICACTE), vol. 5, Aug. 2010, pp. V5-484–V5-487. [63] Amazon Simple Notification Service. Accessed: May 15, 2018. [Online].
[38] R. Khan, S. U. Khan, R. Zaheer, and S. Khan, ‘‘Future Internet: The Available: https://aws.amazon.com/sns
Internet of Things architecture, possible applications and key challenges,’’ [64] Microsoft Azure Message Bus. Accessed: May 15, 2018. [Online]. Avail-
in Proc. 10th Int. Conf. Frontiers Inf. Technol. (FIT), Dec. 2012, pp. 257– able: https://azure.microsoft.com/services/service-bus/
260.
[39] P. Sethi and S. R. Sarangi, ‘‘Internet of Things: Architectures, proto-
cols, and applications,’’ J. Elect. Comput. Eng., vol. 2017, Jan. 2017,
Art. no. 9324035.
[40] Cloud Standards Customer Council. Accessed: Jun. 18, 2018. [Online].
Available: http://www.cloud-council.org
[41] Cloud Customer Architecture for IoT. Accessed: Jun. 18, 2018. [Online].
Available: http://www.cloud-council.org/deliverables/CSCC-Cloud-
Customer-Architecture-for-IoT.pdf PAOLA PIERLEONI received the master’s degree
[42] A. Klenik and A. Pataricza, ‘‘Performance analysis of critical services,’’ in
in electronic engineering, in 1991, and the Ph.D.
Proc. IEEE Int. Conf. Future IoT Technol. (Future IoT), Jan. 2018, pp. 1–6.
degree in electrical engineering from the Polytech-
[43] Industrial Internet Consortium Reference Architecture. Accessed:
Jun. 18, 2018. [Online]. Available: https://www.iiconsortium.
nic University of Marche, in 1995. Since 1991,
org/IIC_PUB_G1_V1.80_2017-01-31.pdf she has been with the Department of Information
[44] P. Pierleoni, A. Belli, L. Palma, L. Incipini, S. Raggiunto, M. Mercuri, Engineering, Polytechnic University of Marche,
R. Concetti, and L. Sabbatini, ‘‘A cross-protocol proxy for sensor networks where she is currently an Assistant Professor
based on CoAP,’’ in Proc. IEEE 23rd Int. Symp. Consum. Technol. (ISCT), in telecommunications. Her main research topics
Jun. 2019, pp. 251–255. include network protocols, wireless sensor net-
[45] J. Misic, M. Z. Ali, and V. B. Misic, ‘‘Protocol architectures for IoT works, the Internet of Things, signal processing,
domains,’’ IEEE Netw., vol. 32, no. 4, pp. 81–87, Jul./Aug. 2018. and embedded devices development.
ROBERTO CONCETTI received the master’s LORENZO PALMA received the master’s degree
degree in computer engineering from the Poly- (cum laude) in electronic engineering, in 2012,
technic University of Marche, Italy, in 2016. He and the Ph.D. degree in information engineering
is currently pursuing the Ph.D. degree with the from the Polytechnic University of Marche, Italy,
Department of Information Engineering, Poly- in 2017. He is currently a Research Fellow with the
technic University of Marche. His current research Polytechnic University of Marche. His research
interests include computer networks and cloud interests are the IoT, wireless sensors networks,
computing for the Internet of Things. IMU sensors, embedded systems, and communi-
cation networks. In 2017, he had a research grant
from Consortium GARR to develop a new system
for seismic and structural monitoring based on IPv6 sensors able to provide
ALBERTO BELLI received the Ph.D. degree in
data for the creation of an earthquake early warning systems.
biomedical, electronic, and telecommunications
engineering, in 2016, and the master’s degree in
telecommunications engineering from the Univer-
sità Politecnica delle Marche, Italy, in 2012. He is
currently a Staff Scientist with the Department of
Engineering, Università Politecnica delle Marche.
His main research interests are in wireless body
sensor networks for the internet of things solu-
tion, data fusion algorithms for array sensors, and
applications for biomedical devices.