- What is IoT?
The Internet of Things (IoT) is a system of interrelated computing devices, mechanical and digital machines, objects, animals or people that are provided with unique identifiers and the ability to transfer data over a network without requiring human-to-human or human-to-computer interaction.
- What is IoT platform?
The purpose of any IoT device is to connect with other IoT devices and applications to relay information using internet transfer protocols. The gap between the device sensors and data networks is filled by an IoT Platform. IoT platforms are sometimes called “middleware” because they handle everything in-between an end device and the application that’s built on top of it.
Platform: When you are developing some application, Platform is one which allows you to deploy and run your application. A platform could be a hardware plus software suite upon which other applications can operate. Platform could comprise hardware above which Operating system can reside. This Operating system will allow application to work above it by providing necessary execution environment to it.
IoT platforms provide a comprehensive set of generic, i.e. application independent functionalities which can be used to build IoT applications. When there is only one communication link between devices of one type with another device of same type then, a system of specific service can be set up. But in case of communication among devices of multiple types, there is a need of some common standard application platform which hides heterogeneity of various devices by providing a common working environment to them.
An IoT application platform is a virtual solution, means it resides over cloud. Data is the entity that drives business intelligence and every device has something to talk with other device that is data. By means of cloud connectivity, IoT application platform translates such devices data into useful information. So it provides user means to implement business use cases and enables predictive maintenance, pay-per-use, analytics and real time data management. Thus, IoT application platforms provide a complete suite for application development to its deployment and maintenance.
- 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.
- 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.
- 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.
- 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 .
- Data Analytics
The data collected from the sensors connected to an IoT platform needs to be analyzed 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 analyses on both streaming and batch data. The last is real-time analytics, which weighs heavier on any IoT software platform.
- 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||Sales force, 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 indicate 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.
- 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.
- 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.
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.
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.