Instruction FACTA UNIVERSITATIS Series: Electronics and Energetics Vol. 29, N o 3, September 2016, pp. 357 - 365 DOI: 10.2298/FUEE1603357K AN ARCHITECTURAL DESIGN FOR CLOUD OF THINGS Abhirup Khanna B.Tech CSE with specialization in Cloud Computing and Virtualization Technology University of Petroleum and Energy Studies (UPES) Dehradun, Uttarakhand, India Abstract. In recent times the world has seen an exponential rise in the number of devices connected to the internet. This widespread expansion of the internet and growth in the number of interconnected devices has lead to the rise of many new age technologies. Internet of Things (IoT) being one of them allows devices to communicate with one another that are connected through the internet. It provides a new way of looking towards pervasive computing wherein "things" be it sensors, embedded devices, actuators or humans interact with one another. But currently IoT is facing a number of challenges related to scalability, interoperability, storage capacity, processing power and security which all act as a deterrent for its practical implementation. Cloud computing, the buzzword of the IT industry, suits best to handle all these challenges, thus leading towards the integration of cloud and IoT. In this paper, we present a layered architecture for Cloud of Things, i.e. the amalgamation of cloud computing and internet of things. The architecture provides a scalable approach for IoT as it allows dynamic addition of n- number of "things". Moreover, the architecture allows the end users to host their applications onto the cloud and access IoT systems remotely. Towards the end, the paper discusses a use case that proves the correctness of the proposed architecture. Key words: Cloud of Things, Internet of Things, Cloud computing, Ubiquitous computing 1. INTRODUCTION In present day times internet has become a key aspect in everyone's life. From shopping malls to banks, from e-health to military equipments, internet has made its mark. With the advancement of the internet more and more people are able to connect among themselves located at distant places throughout the globe. This outburst of the internet has given birth to a new idea of having every object connected to one another. Soon the number of things connected to the internet would surpass the number of people living on earth. According to an estimate given by CISCO, 50 billion devices would be connected through the internet by the year 2020. The future will have things communicating to one Received June 30, 2015; received in revised form November 12, 2015 Corresponding author: Abhirup Khanna University of Petroleum and Energy Studies (UPES), Bidholi, Via Prem Nagar, Dehradun, Uttarakhand 248007, India (e-mail: abhirupkhanna@yahoo.com) 358 A. KHANNA another rather than humans; in fact they would be talking on behalf of humans [1]. This rise in the outreach of the internet is gradually leading towards an era of Internet of Things (IoT). Wherein the objects (things) connected to the internet would be sharing information with other objects as well as with humans. New ways of communication would evolve allowing humans and things to communicate with one another. IoT can be seen as a revolution in the field of computer science and would play a vital role in shaping the future of computing. The term Internet of Things was introduced way back in the year 1999 by Kevin Ashton. At that time many people thought it to be just an analogy for M2M communication but they never realized how big IoT can become. It is true that the concept of IoT follows the principles of M2M communication, but it cannot be considered as an analogy for it [2]. M2M communication finds its application in the late 1960s and early 1970s. It was a term used by the telecom industry to denote point to point communication. M2M communication was merely connecting embedded devices to one another through cellular or wired networks. Whereas on the other hand Internet of Things is far more than this, having an IP based networking model along with the integration of sensors and embedded devices. IoT allows various kinds of heterogeneous devices to connect to one another, collect data, exchange information and depict this information onto the real world with the help of actuators. IoT facilitates the use of Wireless Sensor Networks (WSN) in order to collect information from sensors present at remote locations. The WSN comprises of an n number of self powered sensing nodes connected through a wireless network. These nodes detect events, gather information and transmit this information to their base stations. To be precise, IoT is not just about embedded devices connected to one another, rather, it consists of a large set of actors that lead to its proper functioning. Talking of the actors that constitute the entire system of internet of things include: sensors, embedded devices (things), sensor networks, actuators and humans. Sensors gather data that is transmitted to embedded devices through sensor networks. Things process this data, generate information and exchange this information with one another or even humans. Specific actions are performed by the actuators or humans in accordance to the processed information. Talking of IoT there is always a mention of data that is either being exchanged or processed or being depicted in the physical world. With the increase in number of "things" the data being exchanged or processed by them will also increase leading to an outburst of unstructured heterogeneous data. Present day embedded devices lack the capabilities to store and process this humongous amount of data thus heading towards the integration of Cloud Computing and Internet of Things [3]. Cloud computing needs no introduction as it is one of the big time game changers in the field of computer science. Nowadays, a lot is heard about cloud computing and how it is being implemented in every walk of life. Cloud computing is a next gen computing model that allows users to have access to resources on a pay as you use basis. Cloud is constructed on the foundation of virtualization thus allowing its users to access unlimited amount of resources from remote locations. Dynamic resource allocation, platforms to host heterogeneous services and applications, virtualization of resources, unlimited storage and processing capabilities is what makes cloud the buzz word of the IT industry. The integration of cloud computing and IoT will give rise to a new computing paradigm having benefits of both IoT and cloud. This new paradigm can be addressed as Cloud of Things (CoT), wherein cloud acts An Architectural Design for Cloud of Things 359 as a central control and processing unit and things are the real world entities which collect data and represent information in the form of suitable actions. But in order to make CoT a reality there is an urgent need for an architecture that could depict its internal and external working. The architecture would define various actors along with their functionalities required to constrict an ecosystem for CoT. The aim of this paper is to present such kind of an architecture that represents the amalgamation of cloud and IoT. In this paper we propose a layered architecture for CoT that leverages the capabilities of cloud and explores the outreach of internet of things. The rest of the paper is organized as follows. Section 2 talks about the challenges of IoT and the benefits of its integration with cloud. Section 3 discusses some of the architectures for internet of things. In Section 4 we have the proposed architecture for Cloud of Things. In Section 5 there is a use case to validate the proposed architecture. Finally, Section 6 provides a conclusion for the paper. 2. CHALLENGES FOR CLOUD IN IOT Till now we have discussed the benefits of IoT and how its implementation could ease the way of living. But there are several challenges which we come across towards the implementation of IoT and its potential to become the future of computing [4]. Below are some of the prominent challenges which need to be addressed before implementing IoT. 1) Interoperability: It is said that IoT is based on diversity and not interoperability but it is essential for an IoT driven system to foster both technical as well as semantic interoperability [5]. Every system working on the guidelines of IoT should allow various kinds of heterogeneous devices to connect to one another. Devices should be allowed to communicate among themselves irrespective of the operating system running on it or its hardware configuration. Semantic interoperability also needs to be harnessed so that every device has a correct and similar interpretation of the exchanged information. 2) Data access and control: Data sharing is an essential part of IoT. It would be beneficial for all if various organizations could come up and share their data in order to gain useful insights. Thus who can access and control this data is a big question as data ownership still remains a concern for IoT. 3) Security and Privacy: Data integrity and privacy is a major concern for IoT as most of the data exchanged comprises of users personal information. Issues such as protecting users' privacy and manufacturers' IP; detecting and blocking malicious activity come under security threats pertaining to IoT [6]. Implementation of energy efficient data encryption schemes along with maintaining a proper authentication mechanism is a challenge for IoT. 4) Storage capacity: Embedded devices used in IoT lack the storage capabilities that are needed to store huge volumes of data collected from various sensors. Their inability to store large amounts of data makes the system inefficient and leads to creation of incomplete data sets. 5) Processing power: Things involved in IoT lack processing capabilities and thus are unable to process huge volumes of data. This lack of processing power leads to half baked information which when depicted lead to actions that are incorrect. 360 A. KHANNA 6) Power Consumption: The devices being used under internet of things, be it sensors or actuators, require power to run. New research needs to be done in promoting the use of low power devises that consume less battery life and can run for years. 7) Reliability: IoT systems need to be reliable in order to meet the industry standards. Any single point of failure in the system should not hamper the working of the entire system. The system needs to be flexible, robust and fault tolerant in nature [7]. 8) Scalability: One major question related to internet of things is how big it can become? Or to put it this way, how far is IoT scalable? [8] There are very limited systems or architectures that fully explore the scalability of IoT. A lot of work needs to be done in designing systems for IoT that facilitate dynamic increase and decrease of things. After going through all the above mentioned challenges cloud seems to be the best solution for all of them. Integration of cloud with IoT will allow IoT systems to have access to unlimited storage and processing capabilities along with efficient security mechanisms. Amalgamation with cloud will provide flexibility, scalability and robustness to the entire system. Cloud will also be acting as a platform where service providers could host there services and monitor the working of the entire system. For end users cloud would act as an interface from which they can interact and communicate with their devices. The fusion of IoT and cloud will also act beneficially for cloud providers as they will be able to enhance the reach of their services to the real world entities in a more dynamic and distributed manner. 3. RELATED WORK Since the outburst of IoT, many architectures have been proposed in order to implement it in a practical scenario. Similarly, many such frameworks have been proposed that exhibit fusion of cloud and IoT. In this section, we have presented some of the research works pertaining to this area.  DIAT stands for Distributed Internet-like Architecture for Things. It is a layered architecture for IoT that works on the principles of Service Oriented Architecture (SOA) and ensures minimum human involvement [9]. The architecture comprises of three layers, namely, Virtual Object Layer (VOL), Composite Virtual Object Layer (CVOP) and Service layer. All three layers are clubbed together along with their functionalities into a stack call IoT daemon. This is the very daemon that forms the core of the entire architecture. Talking of the different layers the VOL acts like an interface between the real and physical world and is responsible for virtual representation of objects. The work of the CVOP is to ensure communication and interaction between Virtual Objects present at the VOL. Last comes the service layer whose work is to manage and monitor all kinds of various services. It can also initiate service creation on its own in order to make the entire system automated.  MARM also known as Multi Agent based RFID Middleware is software that is built on the principles of agent oriented software engineering [10]. It also incurs a layered architecture having three layers for device management, data management and user interface. There is another architecture proposed in [11] that makes use of An Architectural Design for Cloud of Things 361 a cell based structure in order to ease the traffic congestion between RFID readers and tags.  Next is an architecture which talks about the integration of Cloud and IoT. CloudThings is an architecture that aims at the integration of cloud computing and IoT and interacts with all the three delivery models (IaaS, PaasS, SaaS) of cloud [12]. The purpose of the architecture is to enhance the experience of application development and management through the use of cloud computing.  When dealing with internet of things mobile devices play a major role. With the advancements in the Smartphone technology mobile devices ought to be the perfect match for what we call a "thing" in IoT. MOSDEN focuses at this aspect and provides a middleware between a mobile device and IoT [13]. The middleware makes use of mobile devices as sensing units and transmit the sensed data to the backend systems. Thus the work of the developer is made easy by allowing it to code at the backend rather than on the mobile device itself.  Thin clients have always been used to propagate the principles of ubiquitous computing and now they are being implemented in designing systems for IoT. The architecture proposed in [14] makes use of thin clients as thin servers which act as an interface for low level devices such as sensors and actuators. The architecture deploys communication protocols such as CoAP and HTTP to facilitate communication between various applications and devices. The apps and thin servers make use of RESTful API calls to interact with the low end devices. The application model of the architecture works similar to Web mashups and enables developers with the facility to reuse their code in designing new services. For discovery of new nodes the architecture takes help of meta data such as RFID tags, names, geospatial information, etc. 4. PROPOSED ARCHITECTURE A scalable and robust architecture is required to ensure proper working and implementation of a CoT based ecosystem. The architecture must cope with the never ending requirements of the end user along with tackling the challenges mentioned in Section 2. Constructing architecture is the first step towards a solution. In this section we propose architecture for Cloud of Things which would act as a blue print for the technology and describe various components that constitute it. Below is the detailed description of a layered architecture along with its various actors pertaining to Cloud of Things. Sensing layer: This layer comprises of the various kinds of sensors present in the system. The work of the sensors is to gather information and transmit it to the subsequent network layer. Sensors act as the eyes and ears for the system and detect events and transmit the collected information. Every sensor can be categorized on the basis of three parameters namely, sensor type, methodology and sensing parameters. Sensor type defines which type of sensor it is, i.e. whether it is a homogeneous or a heterogeneous sensor or if it is a single dimensional or multidimensional sensor. Methodology tells about the ways in which the sensor gathers information. It can be either active or passive. Active sensing means direct collection of data, i.e. from an MRI, while passive sensing is inferring data (blood pressure) from the data collected by active sensing. Sensing parameters are the number of parameters which a sensor is able to sense. A sensor might 362 A. KHANNA just sense one parameter like body temperature or many parameters like in the case of ECG. The sensing layer may also comprise of RFID readers which gather information from RFID tags. These RFID tags can store large amounts of information and can be easily tagged on any object be it an animal, consumer product or a human being. Fig. 1 Layered architecture for Cloud of Things Communication layer: It is also known as the network layer. The purpose of this layer is to maintain communication among various sensors, things and humans. The three broad categories of communication that take place are:  Sensor to Thing.  Thing to Thing.  Human to Thing. It is the communication layer which receives information from the sensing layer and forwards it to the control layer. The network layer comprises of two gateways which act as collection points to combine information collected from various sensors and RFID readers. These gateways combine all forms of unstructured information and transmit it to the subsequent control layer. The communication layer makes use of several networks in order to maintain interaction at various levels. WSN or Wireless Sensor Networks form the core of the network layer. In case of WSN, sensors are connected through a wireless network and transmit information to their respective hosts through wireless communication. Another type of sensor network which the network layer uses is the Body Sensor Network (BSN). It consists of sensing nodes that are implanted inside or outside a patient's body. The work of the sensing nodes is to monitor and sense physiological parameters of a patient like its blood pressure and body temperature. The communication layer may also comprise of NSG, i.e. Net Generation Networks which is a combination of Body Sensor Networks and Social Networks. The communication layer works on the IP An Architectural Design for Cloud of Things 363 based networking model and provides a unique IP address to every node (sensor, thing, human) connected through the system. As the number of nodes in a system increase at an exponential rate, keeping this in mind the communication layer implements the IPv6 addressing scheme to map every node. Control layer: It is the most important layer of the entire architecture. It is the control layer which derives useful insights by performing computations over the data received from the communication layer. In technical terms, the control layer can be considered the cloud layer as it is where all the data is stored and processed. The control layer is also known as the service layer as it provides a platform for service providers to host their services. It also acts like a web portal for end users to add, delete and monitor their devices (things and sensors). Any device can become a part of the system by registering itself. After successful registration every device is allotted a unique id and password. The id is usually the IP address of that device and password is for secure authentication. Once the device is added its entry is made in the cloud data base. It is the scalable and robust nature of cloud that facilitates dynamic addition and subtraction of nodes. The control layer receives data from the communication layer and stores it in the data bases. It then applies certain algorithms and performs the n number of computations on the stored data in order to find interesting patterns. The computations performed on the data are in accordance to the service to which it belongs. The results after processing are reverted back to the end user and are either depicted by the actuators or represented in the form of useful information (knowledge). Actuation layer: The purpose of this layer is to represent information received from the control layer. It is the actuators which receive and represent useful insights coming from the control layer into the physical world. The actuation layer comprises of robotic arms, LED screens, motors, pulleys, etc. The process of actuation can either be manual or automatic. In case of manual actuation, human intervention is involved and results are depicted by humans based upon the suggestions given by the control layer; whereas in automatic actuation the actuators work on their own in accordance with the information received from the control layer. 5. PROOF OF CONCEPT Over the past few years internet based technologies have found their way in numerous health care applications. With the advancements in sensor technologies IoT is able to find its use in several medical applications [15]. IoT aims at easing the life of people and it does the same when dealing with patients. IoT based systems are able to provide convenience to both patients and doctors by offering services such as real time monitoring of the patient, health management, emergency management and patients information management. In order to prove the proposed architecture we created a test bed for it. The use case used in here is of a health care monitoring system. The system would be monitoring the physiological parameters of a patient on a real time basis and take suitable actions if the values of a parameter go out of range. The system will also be monitoring the geospatial location of the patient with the help of a GPS sensor. Below is the working of the health care monitoring system. 364 A. KHANNA  The system would be monitoring three physiological parameters, namely, blood pressure, body temperature, and pulse rate of a patient. Sensors used for this purpose are pressure sensor, temperature sensor and a pulse sensor.  All the sensors are connected to an Arduino board. The board is also connected to a 2.4" Tft LCD screen in order to display suitable information.  The raw data is collected from the sensors and transmitted to an application running on cloud. Data is transferred using the Internet Protocol. The application would be storing data onto the cloud data base and would be comparing whether the parameters lay in normal rage or not.  If any of the parameters go beyond its normal range the application would communicate with the Arduino board.  The Arduino board will take suitable actions such as display the name of a prescribed medicine or transmit the coordinates of the patient to the application by communicating with the GPS sensor.  Once the application has received the geospatial coordinates it can easily book an appointment with the doctor for a house visit or call the ambulance to that specific location. 6. CONCLUSION Since the last decade, internet has drastically changed as well as the needs of its users. With the growing popularity of the internet the number of users accessing it has also increased. In this paper, we propose an architecture for Cloud of Things which is an amalgamation of cloud computing and Internet of Things. CoT is a new age technology that copes with the ever increasing size of the internet as well as to the never ending requirements of the end users. The proposed architecture talks about the various actors along with their functionalities that are required to setup a cloud integrated IoT system. Upcoming technologies such as Fog computing or Cloudlets will be more appropriate for IoT rather than Cloud, thus leading researchers are to explore new avenues related to them. In the future, people from different walks of life can make use of this architecture to implement a CoT system in a practical scenario. REFERENCES [1] M. Gomes, R. da Rosa Righi, C. da Costa, “Internet of things scalability: Analyzing the bottlenecks and proposing alternatives”, In Proceedings of the IEEE 6th International Congress on Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT), 2014, pp. 269-276. [2] C. Doukas, L. Capra, F. Antonelli, E. Jaupaj, A. Tamilin, I. Carreras, “Providing generic support for IoT and M2M for mobile devices”. In Proceedings of the IEEE RIVF International Conference on Computing & Communication Technologies-Research, Innovation, and Vision for the Future (RIVF), 2015, pp. 192-197. [3] S. W. Kum, J. Moon, T. Lim, J. I. Park, “A novel design of IoT cloud delegate framework to harmonize cloud-scale IoT services”, In Proceedings of the IEEE International Conference on Consumer Electronics (ICCE), 2015, pp. 247-248. [4] V. Gazis, M. Goertz, M. Huber, A. Leonardi, K. Mathioudakis, A. Wiesmaier, F. Zeiger, Short Paper: “IoT: Challenges, projects, architectures”, In Proceedings of the 18th International Conference on Intelligence in Next Generation Networks (ICIN), 2015, pp. 145-147. An Architectural Design for Cloud of Things 365 [5] O. Vermesan, P. Friess, Internet of Things-Global Technological and Societal Trends From Smart Environments and Spaces to Green ICT, 2011, River Publishers. [6] R. H. Weber, “Internet of Things–New security and privacy challenges” Computer Law & Security Review, Vol. 26, No. 1, pp. 23-30, 2010. [7] H. D. Ma, “Internet of things: Objectives and scientific challenges”, Journal of Computer science and Technology, Vol. 26, No. 6, pp. 919-924, 2011. [8] D. Miorandi, S. Sicari, F. De Pellegrini, I. Chlamtac, “Internet of things: Vision, applications and research challenges”, Ad Hoc Networks, Vol. 10, No. 7, pp. 1497-1516. 2012. [9] C. Sarkar, A. Uttama Nambi SN, R. Prasad, A. Rahim, R. Neisse, G. Baldini, DIAT: A Scalable Distributed Architecture for IoT, 2012. [10] L. V. Massawe, F. Aghdasi, J. Kinyua, “The Development of a Multi-Agent Based Middleware for RFID Asset Management System Using the PASSI Methodology”, In Proceedings of the Sixth International Conference on Information Technology: New Generations, 2009. ITNG'09. pp. 1042-1048. [11] A. Solanas, J. Domingo-Ferrer, A. Martínez-Ballesté, V. Daza, “A distributed architecture for scalable private RFID tag identification” Computer Networks, Vol. 51, No. 9, pp. 2268-2279, 2007. [12] J. Zhou, T. Leppanen, E. Harjula, M. Ylianttila, T. Ojala, C. Yu, L. T. Yang, “Cloudthings: A common architecture for integrating the internet of things with cloud computing”, In Proceedings of the IEEE 17th International Conference on Computer Supported Cooperative Work in Design (CSCWD), 2013, pp. 651-657. [13] C. Perera, P. P. Jayaraman, A. Zaslavsky, D. Georgakopoulos, P. Christen, “Mosden: An internet of things middleware for resource constrained mobile devices” In Proceedings of the 47th Hawaii International Conference on System Sciences (HICSS), 2014, pp. 1053-1062. [14] M. Kovatsch, S. Mayer, B. Ostermaier, B. “Moving application logic from the firmware to the cloud: Towards the thin server architecture for the internet of things”, In Proceedings of the Sixth International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS), 2012, pp. 751-756. [15] J. Choi, M. Ha, J. Im, J. Byun, K. Kwon, W. Yoon, D. Kim, “The patient-centric mobile healthcare system enhancing sensor connectivity and data interoperability”, In Proceedings of the International Conference on Recent Advances in Internet of Things (RIoT), 2015, pp. 1-6.