View metadata, citation and similar papers at core.ac.uk brought to you by CORE

provided by SZTE Publicatio Repozitórium - SZTE - Repository of Publications

A Survey of IoT Providers

T. Pflanzner, A. Kertesz University of Szeged H-6720 Szeged, Dugonics ter 13, Hungary Email: {tampfla,keratt}@inf.u-szeged.hu

Abstract— enables flexible resource provi- of European Research Projects on the of Things sions that has become hugely popular for many businesses to [4] defined the (IoT) as a dynamic take advantage of responding quickly to new demands from global network infrastructure with self configuring capa- customers. Many cloud providers follow recent trends in cloud bilities based on standard and interoperable communication application development, and offer federation capabilities at protocols. Things in this network interact and communicate the platform level, thus creating Platform-as-a-Service solu- among themselves and with the environment by exchanging tions. There is a growing number of providers offering IoT- sensor data, and react autonomously to events and influence specific services, since cloud computing has the potential to sat- them by triggering actions with or without direct human isfy IoT needs such as hiding data generation, processing and intervention. According to recent reports (e.g. [?]) there visualization tasks. While cloud provider offerings have been will be 30 billion devices always online and more than widely studied, IoT-specific features are still unexplored due to 200 billion devices discontinuously online by 2020. Such their recent appearance. In this paper we investigate such basic estimations call for an ecosystem that provides means to properties of IoT cloud providers by presenting a survey and interconnect and control these devices. With the help of a classification of them, which are the main contributions of cloud solutions, user data can be stored in a remote loca- this work. This work can be useful for application developers tion, and can be accessed from anywhere. Cloud providers planning to exploit IoT capabilities of PaaS cloud providers. try to address these needs, and offer services for the IoT community at all three levels, but the PaaS level is the most We also present the needs for an IoT device simulator based suitable for IoT application developers to use. Gubbi et al. on the results of this survey, which can further ease IoT cloud [3] have identified that to support the IoT vision, the current system development in the future. computing paradigm needs to go beyond traditional mobile Index Terms—cloud computing, internet of things, cloud plat- computing scenarios and cloud computing has the potential form, mobile devices to address these needs as it is able to hide data generation, processing and visualization tasks. Cloud federations can also be applied to serve the needs of IoT applications, as 1. Introduction discussed by Celesti et al. [5]. The increasing competition between the leading vendors Cloud providers can be classified to three main cate- in the cloud market, such as Amazon, , gories according to the level of services they offer: Infras- and , each of which promotes its own, mostly tructure (IaaS) – at this level infrastructure incompatible cloud standards and formats [6], prevents them providers manage and offer virtualized resources managed from agreeing on a widely accepted, standardized way to by hypervisors. IaaS clouds generally have marketplaces utilize cloud details and specifications, which trend also with pre-installed virtual machine images, block storages appeared in the IoT field. However, in the field of re- and other file or object storages and virtual network man- source abstraction for IoT, good efforts have been made agement functionalities; (PaaS) – towards the description and implementation of languages providers in this category deliver a virtualized comput- and frameworks for efficient representation, annotation and ing platform, including an operating system, programming processing of sensed data. The integration of IoT and clouds language execution environment, database and web server; has been envisioned by Botta et al. [7] by summarizing their finally at the highest level (SaaS) main properties, features, underlying technologies, and open – these services operate application software in the cloud. issues. A solution for merging IoT and clouds is proposed Users of these services do not manage the infrastructure nor by Nastic et al. [8]. They argue that system designers and the platform on which their application runs. operations managers face numerous challenges to realize Cloud computing [1] is already a part of our everyday IoT cloud systems in practice, due to the complexity and life, and there is so much data produced by humans and diversity of their requirements in terms of IoT resources machines used by them. As the technology evolves, new consumption, customization and runtime governance. These kind of innovative use cases can be invented. The Cluster related works also serve as a motivation to our research by raising the need for managing a large number of protocols • GEO: Yes, if the system supports storing and query- and data formats by means of simulation. ing geolocation coordinates. Though cloud provider offerings have been widely stud- • Push not.: Yes, if the system capable of handling ied (e.g. in [9]), IoT-specific features are still unexplored due push notifications. to their recent appearance. Therefore the main contributions • Trigger: Yes, if the received data from the devices of this paper are a survey and a classification of IoT cloud can be analyzed and can trigger an action. providers. Since it is not easy to objectively compare cloud • Visualization: Yes, if the system has tools to help providers offering IoT services, as they all provide a slightly visualize the data coming from the IoT environment. different set of services. Such providers can advertise qual- ities that may not be available or measurable compared to The IBM Platform [10] is an IoT-enabled PaaS others, therefore we investigate the basic properties of cloud solution offered by IBM. It can be used for quick devel- providers related to IoT-specific capabilities. This work is opment of cloud-based applications that take advantage of useful for application developers planning to exploit IoT the data generated by the sensors and devices. Products of capabilities of PaaS cloud providers to design IoT systems. several major device manufacturers are supported, such as Based on this survey, we also derive the needs for a generic ARM, the Electronics B&B, Intel, Multi-Tech Systems and IoT device simulator that can ease the development and Texas Instruments, but other individual cases can also be testing of IoT cloud systems. solved on the platform. Data generated by the equipment is The remainder of this paper is as follows: Section 2 sent by the popular and lightweight MQTT protocol to the overviews and categorizes the most relevant IoT cloud cloud. The service allows the users to configure, manage the providers, while Section 3 presents future work towards devices, and to store the history of generated data or stream enhancing these solutions with the help of an IoT device real-time data to the application. The data transfer can be simulator. Finally, the contributions are summarized in Sec- done through secure APIs. tion 4. To illustrate the inner workings of the platform, a real- time data visualization demo is also provided. To use it, first a data provider should be configured, which is in the 2. Survey of Cloud Providers with IoT support simplest case a smartphone, but it is possible to use a TI SensorTag, ARM Mbed, Raspberry Pi, Intel and other The motivation behind our research is that more and devices. The opened browser page on the smartphone can more PaaS cloud providers have started to offer IoT specific send real-time data of the phone’s movement to the cloud services to ease the development of IoT cloud applications, application. The framework also provides a pre-defined web- but cases where many heterogeneous things need to be based sensor simulator [11] that is able to act as three managed are hard to realize and examine. This section simulated sensors (sending temperature and humidity values introduces and compares IoT capabilities of current PaaS through websockets). cloud providers. The Bluemix platform offers several specialized ser- vices to support the development of cloud applications. 2.1. PaaS IoT comparison categories Some examples of these services are: Push for messaging, Cloudant NoSQL DB to manage NoSQL databases, Geospa- We used the following properties to compare the tial Analytics for location tracking, and IBM Analytics for overviewed providers: Hadoop for Hadoop computations. The supported languages for application development are Java, JavaScript, GO, PHP, • Provider: The name of the actual cloud provider. Python and Ruby. In terms of costs, a price calculator helps • Open source: Denotes if it is an open source project to determine a monthly fee for a 30-day trial period. 20 or not. devices can be connected and 100MB of data can be sent • Hosting: If the user can decide the place of the to the devices for free, which is enough for about 50,000 deployment it is open, otherwise if the deployment messages. 1GB storage space can also be used in this period. is restricted to the providers servers it is closed. The Parse [19] PaaS platform developed by • Protocols: The supported IoT device protocols to also has IoT support. This platform promises quick and connect to the cloud. easy application development with the support for mobile • Server language: The supported programming lan- devices (through its MBaaS service). In addition to the C guages to be used to write custom server side code. SDK for Linux (Raspberry Pi) and real time systems (RTOS) • Client language: The supported programming lan- (TI CC3200), there are some more special versions offered guages to be used to write custom client side code. such as Arduino, and a number of partners have SDKs, such • Mobile SDK: The offered development kits for the as Atmel, Broadcom, Intel and Texas Instruments. A great supported mobile platforms. benefit of the platform is that all of their SDKs are open • Data store: Yes, if the system can store data from source. These SDKs allow data sending and the so-called devices. push notifications, and they can also take advantage of the • BLOB: Yes, if the system can store binary data, like Parse cloud services. Many sample applications are available images. to demonstrate its usage, including farming, music and cook- TABLE 1. PAASGENERAL FEATURES.

Provider Open Hosting Server Client Mobile SDK source languages languages Bluemix no closed many Java, JS Android, iOS Parse yes open JS Java, JS, C Android, iOS Google no closed many Java, Python Android, iOS Amazon no closed many C, JS Android, iOS Azure no closed many C, Java, JS Android, iOS, WP no closed many - - CloudFoundry yes closed many N/A N/A Kinvey no open JS JS Android, iOS DreamFactory yes open JS JS Android, iOS

TABLE 2. PAASIOT FEATURES.

Provider Protocols Data BLOB GEO Push Trigger Visualization store not. Bluemix MQTT yes no yes yes yes yes Parse REST yes yes yes yes yes no Google REST yes yes yes yes yes yes Amazon MQTT, REST yes yes yes yes yes yes Azure MQTT, AMQP, REST yes yes yes yes yes N/A Heroku MQTT yes yes N/A no no N/A CloudFoundry REST yes yes N/A no no no Kinvey REST yes yes N/A yes yes N/A DreamFactory REST yes yes N/A yes yes N/A ing scenarios. JavaScript applications are supported, and the an important role in the management of the devices. It was Parse Webhook service makes it able to link applications originally designed to assist mobile devices (like MBaaS). from remote clouds. The supported mobile platforms are It provides synchronized real-time database, authentication the iOS, Windows Phone, Android, Unity and Xamarin. Web and capable of offline operations. and desktop SDKs are for OSX, Windows, JavaScript, Unity, PHP, and .NET. The SDK supports offline data storing, [13] is a collection of services social media connections can be properly handled. It is pos- that make up a cloud computing platform, which are based sible to schedule jobs, as well as a high quality Dashboard on 11 geographical regions across the world. The most is also available that supports data modification, statistical central and well-known services are Amazon EC2 (Elastic testing, push notification, and storing logs. Objects can be Compute Cloud) and (Simple Storage Service). managed in the system after specifying their schema. Their The products are offered to large and small companies as schema supports many field formats, e.g. arbitrary objects, a service to provide large computing capacity faster and array, blobs and geopoints. Their dashboard provides no cheaper than the client company building and maintaining tools for data visualization. Blobs can be imported from an actual physical server farm. AWS automatically handles a public URL, even directly from the Base64 encoded Data the details such as resource provisioning, load balancing, URI format. scaling and monitoring. One can create applications in PHP, The Google IoT solution [12] is part of the Google Java, Python, Ruby, node.js, .NET, Go or in a Docker Cloud Platform, which includes various Google services. container that runs on an application server with a database. The scalability is an excellent feature in this platform. It An environment using the default settings will run a single allows devices to be connected, and it collects data and Amazon EC2 micro instance and an Elastic Load Balancer. visualizes them. The data sent from the devices are received Additional instances will be added if needed, to handle any by the Google Load Balancer and forwards to instances of peaks in workload or traffic. Each Amazon EC2 instance the AppEngine applications. In general, the main part of the is built from an Amazon Machine Image which can be an application is the AppEngine, which may use other services. Amazon Linux AMI or an Amazon Windows Server 2008 Compute intensive tasks are supported by the Compute R2 AMI by default. Amazon is a PaaS provider, and they Engine. The and the Cloud SQL manages have many ”blocks” to build applications with. This allows data. It is possible to send data with streams to the BigQuery for more general usage, but not so many details, that could service, which is ideal if we want to work with real-time make the developer’s job easier. With the three main com- data. In IoT systems the visualization is an important feature, ponents (Cognito for user management, Mobile Analytics it is supported in real time using the Google Charts. Google and Simple Notification Service) the mobile solution is a is also strong in managing a large amount of data processing, valuable part for the whole Amazon cloud offering. This which is important, since there are many devices generating is still not mature enough for enterprise usage, because the huge amount of data in IoT systems. Google FireBase plays lack of integration and security. Amazon IoT connects devices to services and other DreamFactory [17] has many install guides for IaaS devices with a secure way. The device state is synchronized, providers (Docker, Amazon Web Services, , so messages can be sent even if the device is offline. The , VMware Marketplace, Bitnami Rule Engine helps to convert the data for services. Cloud Hosting), for PaaS providers (Red Hat OpenShift, Azure [14] is a Cloud computing platform, which allows Pivotal Web Services, IBM Bluemix, Heroku) for Desktop developers to publish web applications running on different Computer (LAMP or WAMP) (Linux, OS X, Windows) frameworks, written in different programming languages IBM SoftLayer, Rackspace Marketplace. For push notifica- such as any .NET language, node.js, , Python and Java. tion it uses the Amazon SNS. The SDK is moderately good, Azure Web Sites supports a website creation wizard that too general, requires too much coding. On the free hosted can be used to create a blank site or use one of the several version the login window pops up for almost every click. pre-configured sites. Developers can add or modify content The Kinvey [18] platform has 3 main parts, the client, of the website via multiple deployment methods: TFS, FTP, the context and the aggregation part. The client part called CodePlex, GitHub, , Bitbucket, Mercurial or git. the MOBILE CLIENT TIER is a consistent set of mobile Developers can select the place where their website will client features like offline caching and encryption that stay be hosted from several Microsoft data centers around the current and enable any use case. The context part called the globe. Azure Traffic Manager routes traffic manually or MOBILE CONTEXT TIER is on-demand services for data, automatically between websites in different regions. Web push notifications, location, analytics and business logic to sites are hosted on IIS 8.0, running on a custom version support any use case, versioning and deployment of new of Windows Server 2012. The component regarding IoT applications and backend infrastructure for multiple projects. called IoT Hub, which can communicate with devices with The aggregation part called the MOBILE AGGREGATION protocols like MQTT, AMQP and HTTP, but it’s possible TIER is responsible for the consistent and secure data and to implement other protocols too. identity integrations to deliver the right information for the Heroku [15] has been in development since 2007, start- mobile experience. ing with support for Ruby, and adding support for many The main IoT-related properties of these cloud providers languages through the years, such as Java, Node.js, Scala, are shown in Table 1 and 2. Summarizing the comparison , Python, PHP and Perl. Heroku was acquired by tables, Google, Amazon, Azure and Bluemix has the highest Salesforce.com in 2010, as a subsidiary. Herokus services variety of IoT-related services. The MQTT (or other IoT run on the Amazon cloud systems. From the Developer Ex- protocol) should be a basic functionality to an IoT cloud perience point-of-view, Herokus interface is well-polished, platform, but many provider has just a REST interface. Parse intuitive and easy to use. Many times Heroku has been seen has its high quality MBaaS service, while its IoT feature as an example by other PaaS providers, for their ease of use, is a limited version of it. IoT applications in Google can features and reliability. One such example is Deis, which be composed of many connected services, which makes it uses a Heroku inspired buildpack system in their deploy- complex providing more freedom for the developers. They ments. The basic units of computing power in the Heroku are also very good at scaling and performance, and this ecosystem are the Dynos. A Dyno is a lightweight, isolated complexity is compensated by the simplicity of FireBase. container that runs an instance of the application. The IoT From this survey we can see that the most popular cloud capability of Heroku is only an MQTT broker, which can providers have already realized the need for IoT support, be added as a 3rd party add-on, called CloudMQTT. and most of them provide reasonably good solutions for CloudFoundry [16] is an open source PaaS service, IoT application development. Nevertheless interoperability originally developed by VMware, later owned by Pivotal issues still exist, and applications managing a large number Software, primarily written in Ruby and Go. CloudFoundry of different IoT devices are hard to develop and evaluate. is available in three flavors, OSS, an open Bluemix has also identified the need for a sensor or device source project available to everybody, which uses the de- simulator, but its tool is meant to serve simple demonstration velopers own infrastructure and the BOSH shell to inter- purposes. Our aim is to design a generic solution to this act with it, Pivotal Cloud Foundry, a commercial product problem. from Pivotal, which includes extra tools for installation and administration, and Pivotal Web services, which is an instance of Pivotal Cloud Foundry hosted on Amazon Web 3. Requirements for a Cloud-enabled IoT De- Services. Applications deployed to CloudFoundry access vice Simulator external resources via Services. All external dependencies such as databases, messaging systems, file system, etc. After examinig the most popular IoT Cloud providers, are Services. When releasing an application, the developer we identified the following challenges related to IoT net- must specify the Services it should use. Many pre-defined works by examining the currently available solutions: services are available via an administration console, such as MySQL, PostgreSQL, MongoDB, etc. as database services, • IoT devices are battery powered; RabbitMQ as a messaging service, Jenkins for continuous • They communicate using low-power wireless tech- integration, and API Gateway, Data Sync, Push Notifications nologies (e.g., IEEE 802.11, IEEE 802.15.4, Blue- for mobile development. tooth); • There are different resource constraints of devices and to enable sensor data transmission from the simulated (e.g., on CPU, memory, connectivity); devices to the gateways. • IoT networks are very dynamic as network condi- We also plan to support larger, scalable experiments in tions can change rapidly; the future. For this purpose we will use a scripting language • They are heterogeneous: there is a large spread on to be able to specify the devices and their properties, and device capabilities (e.g., powerful cameras, low cost to schedule their activities. For cloud application testing, a temperature sensors), additionally there are sources great feature would be to record sensor data and networking (sensors) and sinks of information (actuators); events, and later it could be replayed again many times, with • They are very dynamic: the networking environment exactly the same scenario. in a IoT environment is largely unstructured can vary rapidly. 4. Conclusion In order to enhance the design, development and testing processes of IoT systems and networks, an IoT device In this paper we have shown that there is a growing simulator would be useful that can emulate real devices and number of cloud providers offering IoT-specific services, sensors instead of real resources. Our ongoing and future since cloud computing has the potential to satisfy IoT needs work addresses these needs, therefore we highlight the basic such as hiding data generation, processing and visualization requirements of such a simulator in this section. tasks. While each cloud provider offers its own set of The requirements for basic functionalities of an IoT features, two critical features they all have in common are device simulator are to send and receive messages, generate the ability to connect devices and to store the data generated sensor data (for one or more devices), and react to received by those devices. messages. These capabilities are sufficient to use the sim- We investigated the basic properties of IoT Cloud ulator in IoT system analysis. Requirements for advanced providers by presenting a survey and a classification of them functionalities such as simulating network errors, recording as the main contributions of this work. This categorization and replaying concrete simulation cases, and connecting real can be useful for application developers planning to exploit IoT devices to the simulator can contribute to the analysis IoT capabilities of PaaS cloud providers. of more realistic system. Our future work will address the development of a There are different kind of IoT environments, hence their generic IoT device simulator to aid IoT application de- static or dynamic properties, and the number of utilized de- velopment with the surveyed providers. Such a simulator vices can affect the design of such a simulator. For example, can be used to help cloud application developers to learn a connected house can be regarded as a static environment, IoT device handling and to evaluate test IoT environments because its devices are usually in one place, possibly with without buying real sensors. wired connection, providing reliable network stability. The dynamic environment is more complex to simulate, in such cases we would like to simulate a broader part of the Acknowledgments environment considering WiFi interference, battery lifetime and locations of the devices. The research leading to these results has received fund- In our future work we plan to support the basic func- ing from the European COST programme under Action tionalities with the following settings: identifier IC1304 (ACROSS), and it was supported by the Janos´ Bolyai Research Scholarship of the Hungarian • a simulated device should have an ID, or tokens for Academy of Sciences. authentication; • the generated sensor data should be made available in binary, plain text, or JSON format with metadata References like date, time, and device state; • finally MQTT or REST communication protocols [1] B. Buyya, C.S. Yeo, S. Venugopal, J. Broberg, I. and Brandic, Cloud should be supported. computing and emerging it platforms: Vision, hype, and reality for delivering computing as the 5th utility. Future Generation Computer Based on these planned functionalities, we plan to de- Systems, vol. 25, no. 6, pp. 599-616, June 2009. velop a mobile IoT device simulator called MobIoTSim, [2] J. Mahoney and H. LeHong, The Internet of Things is coming, Gartner which can be used to help cloud application developers to report. Online: https://www.gartner.com/doc/1799626/internet-things- learn IoT device handling without buying real sensors, and coming, September 2011. to test and demonstrate IoT applications utilizing multiple [3] J. Gubbi, R. Buyya, S. Marusic, M. Palaniswami. Internet of Things devices. The design of the application will enable users to (IoT): A vision, architectural elements, and future directions. Future Generation Computer Systems, Volume 29, Issue 7, pp. 1645-1660, create IoT environment simulations in a fast and efficient September 2013. way with the options for custom settings. As the first step [4] H. Sundmaeker, P. Guillemin, P. Friess, S. Woelffle. Vision and chal- of evaluating this simulator will be to develop gateways with lenges for realising the Internet of Things. CERP IoT - Cluster of some of the surveyed IoT PaaS providers (e.g. Bluemix and European Research Projects on the Internet of Things, CN: KK-31- Azure IoT Hub) to interconnect them with the simulator, 10-323-EN-C, March 2010. [5] A. Celesti, M. Fazio, M. Giacobbe, A. Puliafito, and M. Villari, Charac- terizing Cloud Federation in IoT. IEEE 30th International Conference on Advanced Information Networking and Applications Workshops - Workshop on Cloud Computing Project and Initiatives, 2016. [6] G. Sperb Machado, D. Hausheer, and B. Stiller, Considerations on the Interoperability of and between Cloud Computing Standards. In 27th Open Grid Forum (OGF27), G2CNet Workshop: From Grid to Cloud Networks, Banff, Canada, 2009. [7] A. Botta, W. de Donato, V. Persico, A. Pescape, On the Integration of Cloud Computing and Internet of Things. The 2nd International Conference on Future Internet of Things and Cloud (FiCloud-2014), August 2014. [8] S. Nastic, S. Sehic, D. Le, H. Truong, and S. Dustdar, Provisioning Software-defined IoT Cloud Systems. The 2nd International Confer- ence on Future Internet of Things and Cloud (FiCloud-2014), August 2014. [9] M. Mahjoub, A. Mdhaffar, R. B. Halima and M. Jmaiel, A Comparative Study of the Current Cloud Computing Technologies and Offers. First International Symposium on Network Cloud Computing and Applica- tions (NCCA), Toulouse, pp. 131-134, 2011. [10] IBM Bluemix Platform. Online: https://console.ng.bluemix.net/. Ac- cessed in April, 2016. [11] IBM Bluemix IoT Sensor. Online: https://developer.ibm.com/recipes/tutorials/use-the-simulated-device- to-experience-the-iot-foundation/. Accessed in March, 2016. [12] Google Cloud Platform. Online: https://cloud.google.com/solutions/iot/. Accessed in April, 2016. [13] Amazon Web Services. Online: http://aws.amazon.com/. Accessed in April, 2016. [14] Microsoft Azure. Online:https://azure.microsoft.com/. Accessed in April, 2016. [15] Heroku. Online:https://www.heroku.com/. Accessed in January, 2016. [16] CloudFoundry. Online:http://cloudinary.com/. Accessed in April, 2016. [17] DreamFactory. Online:http://www.dreamfactory.com/. Accessed in April, 2016. [18] Kinvey. Online:http://www.kinvey.com/. Accessed in March, 2016. [19] Parse. Online: https://parse.com/products/iot. Accessed in March, 2016. [20] IBM IoT Foundation message format. Online: https://docs.internetofthings.ibmcloud.com/gateways/mqtt.html#/ma- naged-gateways#managed-gateways. Accessed in April, 2016. [21] IBM IoT Foundation Quickstart application. Online: https://quickstart.internetofthings.ibmcloud.com. Accessed in April, 2016. [22] IOT Visualization application. Online: https://github.com/ibm- messaging/iot-visualization/. Accessed in April, 2016.