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.
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 .
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, , 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 . 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 . 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 . 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 , requiring regular password updates and supporting updateable firmware by way of authentication, signed software updates , 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 .
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 . 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:
|IoT Software Platform||Device management?||Integration||Security||Protocols for data collection||Types of analytics||Support for visualizations?|
|2lemetry – IoT Analytics Platform**||Yes||Salesforce, Heroku, ThingWorx APIs||Link Encryption (SSL), Standards ( ISO 27001, SAS70 Type II audit)||MQTT, CoAP,
|Real-time analytics (Apache Storm)||No|
|Appcelerator||No||REST API||Link Encryption (SSL, IPsec, AES-256)||MQTT, HTTP||Real-time analytics (Titanium )||Yes (Titanium UI Dashboard)|
|AWS IoT platform||Yes||REST API||Link Encryption (TLS), Authentication (SigV4, X.509)||MQTT, HTTP1.1||Real-time analytics (Rules Engine, Amazon Kinesis, AWS Lambda)||Yes (AWS IoT Dashboard)|
|Bosch IoT Suite – MDM IoT Platform||Yes||REST API||*Unknown||MQTT, CoAP, AMQP,STOMP||*Unknown||Yes (User Interface Integrator)|
|Ericsson Device Connection Platform (DCP) – MDM IoT Platform||Yes||REST API||Link Encryption (SSL/TSL),Authentication (SIM based)||CoAP||*Unknown||No|
|EVRYTHNG – IoT Smart Products Platform||No||REST API||Link Encryption (SSL)||MQTT,CoAP,
|Real-time analytics (Rules Engine)||Yes (EVRYTHNG IoT Dashboard)|
|IBM IoT Foundation Device Cloud||Yes||REST and Real-time APIs||Link Encryption ( TLS), Authentication (IBM Cloud SSO), Identity management (LDAP)||MQTT, HTTPS||Real-time analytics (IBM IoT Real-Time Insights)||Yes (Web portal)|
|ParStream – IoT Analytics Platform***||No||R, UDX API||*Unknown||MQTT||Real-time analytics, Batch analytics (ParStream DB)||Yes (ParStream Management Console)|
|PLAT.ONE – end-to-end IoT and M2M application platform||Yes||REST API||Link Encryption (SSL), Identity Management (LDAP)||MQTT, SNMP||*Unknown||Yes (Management Console for application enablement, data management, and device management)|
|ThingWorx – MDM IoT Platform||Yes||REST API||Standards (ISO 27001), Identity Management (LDAP)||MQTT, AMQP, XMPP, CoAP, DDS, WebSockets||Predictive analytics(ThingWorx Machine Learning), Real-time analytics (ParStream DB)||Yes (ThingWorx SQUEAL)|
|Xively- PaaS enterprise IoT platform||No||REST API||Link Encryption (SSL/TSL)||HTTP, HTTPS, Sockets/ Websocket, MQTT||*Unknown||Yes (Management console)|
* 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
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.
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.
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.
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.
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.
 Appcelerator, Inc. (2015), Appcelerator Open Source, http://www.appcelerator.org/
 Gazis, V.; Gortz, M.; Huber, M.; Leonardi, A.; Mathioudakis, K.; Wiesmaier, A.; Zeiger, F.;
Vasilomanolakis, E. (2015), A survey of technologies for the internet of things, in Wireless
Communications and Mobile Computing Conference (IWCMC), 2015 International , vol., no.,
pp.1090-1095, 24-28 Aug. 2015
 Jasper (2014), Achieving End-to-End Security in the Internet of Things,
 LogMeIn (2015), A Guide To Designing Resilient Products for the Internet of Things,
 Louis Columbus (2015), Mattermark Lists The Top 100 Internet Of Things Startups For
 Perera, S. (2015), IoT Analytics: Using Big Data to Architect IoT Solutions, WSO2 White
 Progress (2015), State of IoT, https://www.progress.com/docs/default-source/default-
 WSO2, Inc. (2015), WSO2 Unveils Open Source WSO2 Data Analytics Server 3.0, Delivering
Comprehensive Analysis Optimized for The Internet of Things ,
 WSO2, Inc. (2015), Open Platform for Internet of Things,
 Wijewantha, D.(2014), Demonstration on Architecture of Internet of Things – An Analysis,
WSO2 Library Article, http://wso2.com/library/articles/2014/09/demonstration-on-
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.