1. Abstract

This article presents a general survey of the current IoT software platform landscape based on a detailed analysis we conducted on IoT vendors. We first create a list of key features which are important for any IoT software platform. Next, we compare the extent to which those key features have been implemented in the current IoT software platforms. Finally, we list down the desired features of an IoT software platform based on our observations.

2. Introduction

The Internet of Things (IoT) has undergone rapid transformation since the term was first coined in 1999 by Kevin Ashton. Since the variety - and the number - of devices connected to the Internet has increased exponentially in recent years, IoT has become a mainstream technology with a significant potential for advancing the lifestyle of modern societies.

In terms of the technology and engineering aspects of IoT, there currently exists a clear separation between the hardware and software platforms, with the majority of vendors focused on the hardware. Few vendors in the industry currently offer IoT software platforms: for example, out of the top 100 IoT startups ranked by Mattermark (based on the total funding they received), only about 13 startups provide IoT software platforms [5].

The aim of this article is to make a general survey of the current IoT software platform landscape based on a detailed analysis we conducted on IoT vendors. Shortlisting the IoT vendors for this article was based purely on the criteria whether the vendors provide software solutions that allow for processing information from IoT devices/sensors. Note that while we try to be as comprehensive as possible, the article may not reflect some of the latest improvements made to the listed IoT software platforms.

3. Important Features Expected from an IoT Software Platform

Based on several recent surveys, [2][7], we’ve selected the following features as being crucial for an IoT software platform: device management, integration, security, protocols for data collection, types of analytics, and support for visualizations as example features for comparison. In the next half of this article we give a brief introduction to these characteristics.

3.1 Device Management and Integration Support

Device management is one of the most important features expected from any IoT software platform. The IoT platform should maintain a list of devices connected to it and track their operation status; it should be able to handle configuration, firmware (or any other software) updates and provide device level error reporting and error handling [2]. At the end of the day, users of the devices should be able to get individual device level statistics.

Support for integration is another important feature expected from an IoT software platform. The API should provide access to the important operations and data that needs to be exposed from the IoT platform. It’s common to use REST APIs to achieve this aim.

3.2 Information Security

The information security measures required to operate an IoT software platform are much higher than general software applications and services. Millions of devices being connected with an IoT platform means we need to anticipate a proportional number of vulnerabilities [3]. Generally, the network connection between the IoT devices and the IoT software platform would need to be encrypted with a strong encryption mechanism to avoid potential eavesdropping.

However, most of the low-cost, low-powered devices involved in modern IoT software platforms cannot support such advanced access control measures [3]. Therefore the IoT software platform itself needs to implement alternative measures to handle such device level issues. For example, separation of IoT traffic into private networks, strong information security at the cloud application level [3], requiring regular password updates and supporting updateable firmware by way of authentication, signed software updates [4], and so on can be followed to enhance the level of security present in an IoT software platform.

3.3 Data Collection Protocols

Another important aspect which needs attention is the types of protocols used for data communication between the components of an IoT software platform. An IoT platform may need to be scaled to millions or even billions of devices (nodes). Lightweight communication protocols should be used to enable low energy use as well as low network bandwidth functionality.

Note that while (in this article) we use protocols as a blanket term, the protocols used for data collection can be categorized under several categories - such as application, payload container, messaging, and legacy protocols [2].

3.4 Data Analytics

The data collected from the sensors connected to an IoT platform needs to be analysed in an intelligent manner in order to obtain meaningful insights.

There are four main types of analytics which can be conducted on IoT data: real-time, batch, predictive, and interactive analytics [6]. Real-time analytics conduct online (on-the-fly) analysis of the streaming data. Example operations include window based aggregations, filtering, transformation and so on.

Batch analytics runs operations on an accumulated set of data. Thus, batch operations run at scheduled time periods and may last for several hours or days. Predictive analytics is focused on making predictions based on various statistical and machine learning techniques. Interactive analytics runs multiple exploratory analysis on both streaming and batch data. The last is real-time analytics, which weighs heavier on any IoT software platform.

4. Current IoT Software Platforms

A careful investigation into the current IoT software platform landscape reveals that each of the above mentioned features have been implemented — to different extents. We’ve listed the relevant platforms below, with a summarized feature comparison:

* The cells marked with Unknown indicates that the relevant information could not be found from the available documentation.

** 2lemetry has been acquired by AWS IoT

***ParStream has been acquired by Cisco

It’s clear from the IoT startups listed above that not many have fully fledged device management capabilities. This is a significant void which needs to be addressed by the IoT software platform vendors.

Furthermore, there’s relatively little support for analyzing the generated IoT data in terms of both computation and visualization. Most of them support real-time analytics - a must-have feature in any IoT framework. However, only few IoT software platforms provide support for other three types of analytics. In terms of the visual interfaces, most of them are focused on the simple patterns of a web portal. These dashboards allow for management of IoT ecosystems, but very few provide the capabilities of visual data analytics.

A few more features commonly observed across different IoT software platforms include REST API based integration, support for MQTT protocol as a means of data collection, and link encryption using SSL. While not mentioned in the Table 1, only ParStream has reported a 3-4 million rows/second throughput in its documentation. This indicates that most of the IoT software platforms are designed without much consideration for the system performance aspects of an IoT deployment — critical in the real world operation.

5. Features to improve on

It’s clear that there exist several venues in which improvements are needed. In this section we first provide a list of features for improvement. Some of these items have already been implemented by IoT software platform vendors; there are several new features that are not. Next, we provide a list of such new features which have not been addressed by any IoT software platform vendor currently.

5.1 Existing Features

Data Analytics

Most of the current IoT software platforms support real time analytics, but batch and interactive data analytics may be just as important.

One may argue on this point saying that such types of analytics are available in other well known data processing platforms, and that it is simply a matter of configuring such software systems for the analysis scenario. However, that’s easier said than done; famous data processing systems for real-time (Storm, Samza, etc.), batch (Hadoop, Spark, etc.), predictive (Spark MLLIB, etc.), and interactive (Apache Drill and so on) cannot be applied directly as they are to IoT use cases.

Benchmarks

The IoT software platforms need to be scalable and should encompass facilities to characterize and evaluate the system performance. Well defined performance metrics need to be devised to model and measure the performance of IoT systems, taking into account network characteristics, energy consumption characteristics, system throughput, computational resource consumption, and other operational characteristics.

Edge Analytics

Measures need to be taken to reduce the huge network bandwidth consumption possible between the sensor devices and the IoT server. Use of lightweight communication protocols is one solution. The other approach is edge analytics, which can reduce the amount of raw data transmitted to the IoT server. Edge analytics could be implemented even in simple hardware embedded systems, such as an Arduino.

Other Issues

It should be noted that there are multiple other ethical, moral, and legal concerns associated with IoT software platforms which we have not covered in this article. While important, addressing such issues is out of the scope of this article.

5.2 Features to add

Handling out-of-order processing

An out-of-order event arrival is possible in any IoT application; a disorder of tuples within an event stream emitted by an IoT sensor may be caused by network latency, clock drift, and more. Order-less IoT event processing may result in a system failure. Handling the disorder consists of a trade-off between result accuracy and result latency.

There are four main techniques of disorder handling: Buffer-based, Punctuation-based, Speculation-based, and Approximation-based techniques. IoT solutions should implement one or more of these in order to handle out-of-order events.

Support for IoT context

Context is primarily made out of the location of an individual, their stated preferences, or their past behaviors. For example, in the case of a mobile phone, we have access to rich context information because of various different types of sensors present in the current mobile phones. IoT analytics should be able take these contextual data into consideration.

6. Conclusion

The rapid growth of the IoT paradigm needs powerful IoT software platforms which addresses the needs presented by the IoT use cases. In this article we have investigated the features of the current state-of-the-art IoT software platforms. The investigation focused on aspects such as device management, integration, security, protocols for data collection, types of analytics, support for visualizations. From this study it was clear that areas such as device management, IoT data analytics, and IoT software system scalability and performance characteristics need special attention from IoT software platform community.

Disclaimer

Note that the content of this article is up-to-date as of 23rd December, 2015. The article will not be updated to reflect any changes made to the IoT software platforms since then. If you need any clarifications or need to make any changes to the article’s content please get in touch with the author via miyurud at wso2 dot com.