We’ve selected the following features as being crucial for an IoT software platform:
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.
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 .
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.