Internet of Things (IoT) provides a basis for connecting a growing number of physical objects to the internet at a high rate. One of the most common examples of this includes thermostats and HVAC (Heating, Ventilation, and Air Conditioning) monitoring and control systems for smart homes(Al-Fuqaha, Guizani, Mohammadi, Aledhari, & Ayyash, 2015). There are several applications of IoT in other domains which can help in improvement of overall life quality. These application areas involve healthcare, transportation, industrial automation and many more. With IoT, physical objects can see, hear, think, and perform jobs by talking together (Kaur & Kaur, 2017). The IoT exploits the underlying technological layer of these physical objects such as sensors, embedded systems, computing, and communication technologies. IoT serves as an underlying layer between the vertical markets by the means of horizontal integration between them.
The Internet of Things (IoT) is based on one of the most disruptive technologies which enable ubiquitous and pervasive computing scenarios effectively and efficiently. A series of self-configuring nodes (things) interconnected over a global and dynamic infrastructure represents the overall IoT paradigm (Qushtom & Khalid, 2017). A small thing, widely distributed, with limited processing and storage capacity, which involves reliability, performance, security and privacy concerns, constitutes IoT. When compared with IoT, cloud computing has numerous capabilities in term of processing and storage power. Most of the issues related to IoT can be solved with the help of cloud computing. To disrupt both current and future internet, cloud and IoT are merged to form a new paradigm CloudIoT(Botta, de Donato, Persico, & Pescapé, 2016).
Evolving through the independent phases of evolution, integration of cloud and IoT has several advantages. With the integration of cloud and IoT, several technological constraints of IoT such as storage, processing, energy etc. can be compensated with unlimited capabilities and resources of the cloud(Rao, Shaik, & Reddy, 2017). Cloud can provide an effective solution for implementation of IoT service management and composition and to the third-party applications which exploit the data and things produced by them. It is not only the IoT which is getting benefited from this integration; cloud extends its overall scope to deal with real-world things in a dynamic and distributed way. The following table describes the complementary characteristics of Cloud and IoT, which together inspires CloudIoT(Botta, De Donato, Persico, & Pescapé, 2014).
|Real world things||Virtual resources|
|Limited computation capabilities||Virtually unlimited computational capabilities|
|Limited storage capabilities||Virtually unlimited storage capabilities|
|Internet as a point of convergence||Internet for service delivery|
|Big data source||Means to manage big data|
(Botta et al., 2014)
There are several components associated with IoT cloud, with each of these components performing different tasks. Within the cloud IoT infrastructure, servers are set up as Virtual Machines (VMs) to utilize virtualization technology. Even if the VMs are running over the same physical machine, they are independent of each other. To form an overall cloud IoT architecture, VMs are configured with load balancers/reverse proxy servers, databases and application servers(Hou et al., 2016). The functionalities of each component can be described as:
- Virtual resource pool: There is a problem of low scalability of servers due to low utilization of hardware resources of the physical machine. This also leads to wastage of resources over the server. To reduce the problem, virtualization is implemented to provide full resource utilization of physical machines. The hypervisor software runs on the physical machine in an abstract manner, managing all the resources and providing a guest environment to other systems (Hou et al., 2016). These guest operating system environments are known as Virtual Machines (VMs). This also leads to dynamic resource allocation. The cloud IoT services are deployed directly over the virtual machines, which enables high performance(Floris Van den, Hoebeke, Moerman, & Demeester, 2015).
- Application servers: The most important component of cloud IoT architecture is application servers as they deal with managing and providing business services to customers. Application servers in general offer environment to run multiple applications on the basis of application protocols (Karagiannis, Chatzimisios, Vazquez-Gallego, & Alonso-Zarate, 2015). The traditional cloud-based application servers are HTTP servers, which work in a request-response manner with clients using transmission control protocol (TCP). After establishing a connection, HTTP server listens to requests from multiple clients through certain ports. However, it is not suitable for cloud IoT systems due to computing, communication and energy resource constraints. The most suitable protocol for cloud IoT systems is MQTT, which is designed for light message transportation within a resource-constrained IoT devices using publish-subscribe mode(Al-Fuqaha et al., 2015; Karagiannis et al., 2015).
- Database: According to (Botta et al., 2016), both relational and non-relational databases such as Structured Query Language (SQL) and NoSQL databases are suitable for IoT cloud depending on application requirements. SQL is used as a programming language for relational databases which store data in two-dimensional tables. The issue with SQL databases is their low performance over real-time applications. Therefore, most of the real-time client applications implement NoSQL databases for effective and efficient performance.
- Reverse Proxy and Load balancing: The application servers need to process and manage numerous concurrent requests from a large number of IoT devices(Hou et al., 2016). If load balancing is not implemented, application servers process these requests without scheduling. Lack of scheduling sometimes leads to burden over the application servers, leading to blockage of requests i.e. any further requests will get rejected or discarded. To shed the load on the application servers, load balancing must be practiced.
For implementing IoT cloud, a virtualization operating system such as VMware vSphere1 can be utilized for establishing resource pool of a number of VMs (Hou et al., 2016). The implementation of different servers is discussed below:
- Application Servers: Both HTTP and MQTT servers can be implemented for cloud IoT using Node.js. Node.js is generally used for development of server applications. One of the primary benefits of Node.js is that it provides high concurrency which helps in handling many connections.
- HTTP servers: HTTP servers provide flexible application framework such that web and mobile applications can be easily deployed over an HTTP server. The mechanism behind the functionality of HTTP server is a request-response cycle. Clients can obtain resources from the HTTP servers through a GET request. Clients can also send information to the HTTP servers through a POST request. In addition, a DELETE request provides clients to delete a resource over an HTTP server(Floris Van den et al., 2015).
- MQTT servers: MQQT servers provide instant communication between IoT devices and end-users. It is based on MQQT protocol which works on broker-based cycle for subscribing/publishing transportation of messages. The MQTT servers maintain long TCP connections with clients to provide real-time performance. Additionally, the MQTT servers use three levels of Quality of Service (QoS) to ensure reliability(Karagiannis et al., 2015).
- Database cluster and broker: The Redis2 (NoSQL database) is used by the cloud IoT system to store data (Hou et al., 2016). It stores the data in a key-value manner to enable increased I/O speed. It also clusters more than one node while implemented in IoT cloud to enhance reliability so that in case of a node failure, users can have continuous data service. It can work well with both HTTP and MQTT server. There are several other techniques such as hot standby, transaction logging to increase database reliability. Each Redis node has its backup, which runs on a standby server in the event of a malfunction. Additionally, for the convenience of recovery, the transaction logging records the history of the database including hostile attacks.
- Load balancers: A load balancer is a prime necessity for IoT cloud as it deals with many requests and messages from a variety of IoT devices. The load balancer used for this purpose is HAProxy, which is an open-source light-weight load balancer for efficient TCP-based and HTTP-based load balancing (Hou et al., 2016). It provides high concurrency by using single-thread model. In addition to this, HAProxy load balancing supports both HTTP and MQTT server.
The combined world of cloud and IoT has gone through a rapid and independent evolution. Both worlds grow in their own spaces, very different from each other. The characteristics of both cloud and IoT are complimentary and with the integration of these worlds – cloud, and IoT – both the ecosystems get benefited in a variety of ways. Some of the high-level benefits of the cloud and IoT integration are:
- Communication: In the communication category, data and application sharing are the two important cloud IoT drivers. Within the cloud IoT paradigm, IoT can deliver personalized ubiquitous applications with low-cost automation can be provided to both data collection and distribution. With the help of cloud, anything from anywhere at any time can be connected, tracked, and managed effectively and efficiently(Botta et al., 2016). These high-speed networks provide monitoring and control of remote things, their coordination, communication and real-time data access. Therefore, it can be said that cloud can significantly improve and ease IoT communication(Atlam, Alenezi, Alharthi, Walters, & Wills, 2017).
- Storage: IoT typically involves many information sources called things. These information sources produce a huge amount of data which can be non-structured or semi-structured. The data generated from IoT has three characteristics same as big data – volume, variety, and velocity(Atlam et al., 2017; Botta et al., 2016). With the large-scale and long-lived storage provided by the cloud, IoT can be benefited from the integration of cloud and IoT. It can be said that the cloud is the most efficient solution to manage IoT data and related services such as data aggregation, integration, and third-party data sharing. When the data is stored in the cloud, it gives an easy access to the data in addition to protecting it with top-level security(Botta et al., 2016).
- Computation: Another shortcoming of IoT systems is that they have limited processing and energy resources which limit processing capabilities like complex, on-site data processing. The data collected from various sources is transmitted to powerful nodes where aggregation and processing are possible. Without a proper infrastructure, it is challenging to make it scalable. For making the data processing scalable and collaborative, IoT computation capability must involve real-time data analysis(Botta et al., 2016).
- Scope: Another benefit associated with the integration of cloud and IoT involves the enhanced scope of IoT to achieve internet of everything (IoE). As cloud system provides new smart services and applications, the CloudIoT can deal with a wide variety of new, real-life scenarios(Atlam et al., 2017).
As discussed in the previous section, the integration of cloud and IoT provides several benefits and give rise to new capabilities, functionalities, and applications. However, there are several challenges associated with integrating cloud and IoT. Some of these challenges are discussed below:
- Heterogeneity: One of the major challenges associated with CloudIoT is the wide heterogeneity of the devices, operating systems, services, and platforms available over the internet. The integration of cloud and IoT can lead to heterogeneity issue as cloud services generally come with proprietary interfaces, which cause integration of services and systems to be provider specific. When users adopt multi-cloud approaches, this issue can be exacerbated. This issue can be partially solved by implementing cloud brokering techniques(Botta et al., 2016).
- Performance: CloudIoT applications involve specific performance and quality of service (QoS) aspects at several levels. These aspects may not be easily achievable, leading to low performance. Both the usability and user experience are affected by the low performance and QoS of the cloud systems(Atlam et al., 2017).
- Reliability: Another challenge associated with CloudIoT systems is the reliability concerns associated with mission-critical applications. Within a resource-constrained environment, a certain reliability concern such as device failure or device existence arises. There is a lack of reliability analyses which makes it further challenging(Al-Fuqaha et al., 2015).
- Big Data: With a rapid increase in the number of devices, the main challenge is transportation, storage, access, and processing of the huge amount of data. IoT is the main source of big data and cloud provides the way to store that much huge amount of data. This much amount of data – big data – needs to be handled effectively as data management service is one of the deciding factors for application performance(Suciu et al., 2015). Soon, this challenge can be tackled by adopting semantic web features.
- Monitoring: The cloud-based systems require continuous monitoring of resources, SLAs, performance, and security for troubleshooting. After integrating the cloud with IoT, similar monitoring features are desired. However, it is quite challenging to monitor the system with volume, variety and velocity characteristics of IoT(Botta et al., 2014).
Despite the benefits and opportunities of CloudIoT, there are several risks associated with the same. Some of the major risks linked to CloudIoT can be considered as:
- Security and Privacy: When critical IoT applications combine with Cloud, a situation of declining trust in service provider, knowledge about SLA and about physical location arises(Botta et al., 2016). Being a distributed system, cloud IoT is exposed to several attacks such as session riding, SQL injection, cross-site scripting, side-channel, session hijacking, and virtual machine escape. Therefore, it is a big risk associated with security and privacy in cloud IoT(Atlam et al., 2017).
- Legal and Social Aspects: (Atlam et al., 2017; Botta et al., 2016) explains that the other two important risks associated with cloud IoT systems are certain legal aspects associated with cloud IoT systems such as international laws governing user data and social aspects which deals with a challenge for researchers to develop an interest for further research over the cloud IoT systems.
IoT applications have changed the quality of life, and CloudIoT has greater opportunities in the coming future. Both, IoT and Cloud, are benefitted from each other and jointly has a wonderful scope to achieve a great success in the field of information technology. The tools of CloudIoT, when implemented in the real-world applications, they enhance the scenario of modern lifestyle. There are a number of benefits discussed above in this chapter, but the fact cannot be neglected that challenges like performance, reliability, and monitoring such a vast data also arises which further generates a risk of security and privacy. So, in the next chapter, the security issues are being discussed related to CloudIoT.
Al-Fuqaha, A., Guizani, M., Mohammadi, M., Aledhari, M., & Ayyash, M. (2015). Internet of things: A survey on enabling technologies, protocols, and applications. IEEE Communications Surveys & Tutorials, 17(4), 2347-2376.
Atlam, H., Alenezi, A., Alharthi, A., Walters, R., & Wills, G. (2017). Integration of cloud computing with internet of things: challenges and open issues.
Botta, A., De Donato, W., Persico, V., & Pescapé, A. (2014). On the integration of cloud computing and internet of things. Paper presented at the Future internet of things and cloud (FiCloud), 2014 international conference on.
Botta, A., de Donato, W., Persico, V., & Pescapé, A. (2016). Integration of Cloud computing and Internet of Things: A survey. Future Generation Computer Systems, 56, 684-700. doi:https://doi.org/10.1016/j.future.2015.09.021
Floris Van den, A., Hoebeke, J., Moerman, I., & Demeester, P. (2015). Integration of Heterogeneous Devices and Communication Models via the Cloud in the Constrained Internet of Things. International Journal of Distributed Sensor Networks. doi:http://dx.doi.org/10.1155/2015/683425
Hou, L., Zhao, S., Xiong, X., Zheng, K., Chatzimisios, P., Hossain, M. S., & Xiang, W. (2016). Internet of things cloud: architecture and implementation. IEEE Communications Magazine, 54(12), 32-39.
Karagiannis, V., Chatzimisios, P., Vazquez-Gallego, F., & Alonso-Zarate, J. (2015). A survey on application layer protocols for the internet of things. Transaction on IoT and Cloud Computing, 3(1), 11-17.
Kaur, J., & Kaur, K. (2017). Internet of Things: A Review on Technologies, Architecture, Challenges, Applications, Future Trends. International Journal of Computer Network and Information Security, 9(4), 57.
Qushtom, H., & Khalid, R. h. (2017). Enhancing the QoS of IoT Networks with Lightweight Security Protocol using Contiki OS. International Journal of Computer Network and Information Security, 9(11), 27. doi:http://dx.doi.org/10.5815/ijcnis.2017.11.03
Rao, T. V. N., Shaik, K. S., & Reddy, A. J. R. (2017). Design of Architecture for Efficient Integration of Internet of Things and Cloud Computing. International Journal of Advanced Research in Computer Science, 8(3).
Suciu, G., Suciu, V., Martian, A., Craciunescu, R., Vulpe, A., Marcu, I., . . . Fratu, O. (2015). Big data, internet of things and cloud convergence–an architecture for secure e-health applications. Journal of medical systems, 39(11), 141.