When a company makes a business decision not to start from scratch, but to integrate with an existing IoT platform, then the question becomes how to choose the right one among many that are on the market. What components should we be looking for in an IoT platform as we look through all of the options out there?
Guided by the IoT Analytics insights (2016), we have concluded that every modern IoT platform architecture, besides built-in security at every level, should include the below-mentioned components, or modules, in order to build anything — from smart homeS to large scale industrial IoT.
Connectivity and Normalization
It starts with how a device or sensor connects to the IoT platform. Choosing your communication protocol will largely depend on your use case, including how much data you send, how often it needs to be sent, and what protocols the platform accepts. This communication module includes agents and libraries that bring different protocols and data formats into a uniform interface, which is necessary in order to ensure all devices can be interacted with, to ensure their constant connectivity and harmonized data formats. Having all device data in one place and in one format is the basic necessity to monitor, manage, and analyze IoT devices. IoT platforms should be designed to support buffered device communication in an effort to increase reliability.
To be sure that connected devices are updated and working properly, a strong device management solution must be an important component of an IoT platform. Device managements covers device provisioning, remote configuration, the ability for manufacturers to send software or firmware updates over-the-air, as well as an out-of-box experience and troubleshooting. Once your device is in the field, you will need a way to ensure that you are able to manage device status, deploy firmware updates, and control versioning, so you won’t have to create custom tools for each product. It is most useful when updates can be rolled out simultaneously to all devices or dynamically to different groups based on information like region, hardware type, device firmware version, etc. Bulk actions and automation are essential to control costs and reduce manual labor.
This module is a central part of an IoT platform. Data storage includes cloud-based repository scalable in terms of data volume, variety, velocity, and veracity. Selecting the appropriate database technology is critically important to the success of most projects. To do this well, you should be able to store both structured (SQL) and unstructured data (NoSQL), so you must understand the differences between relational and NoSQL databases, how those databases should be configured, and how they should be optimized and managed over time.
Processing and Action Management
The data that is captured in the connectivity and normalization module and then stored in the data storage gets brought to life in this part of the IoT platform. This module consists of an integrated logic unit called Rule engine — a rule-based event-action-trigger which allows for “smart”, real-time actions based on specific sensor and device data. It provides event and time-based automation. Customer specific processes and features can be easily implemented here. The technical realization of the Rule engine often comes in the form of an If-this-then-that rule (IFTTT).
The database and backend services, which are an integral part of the IoT platform, are not merely collecting and storing data. The value of the data is only realized when it’s processed and evaluated, i.e. turned into information that can help solve a problem. Analytics can take the form of a simple dashboard, basic data clustering, or even deep analytics (algorithms for advanced calculations and machine learning).
IoT platform must offer a graphical display of real-time and historical sensor data. This module enables humans to see patterns and trends in visualization dashboards (line-, stacked-, or pie charts, 2D- or even 3D-models).
This module usually includes development and solution management tools (e.g. app prototyping, access management, reporting).
IoT platformS should be designed to help in developing all custom web and mobile applications for cloud data management. Developers could use A familiar form of server side SDK — calling API methods from the web or mobile apps. It is important to identify, design, implement, and test all of the APIs that are needed by entities external to your solution. External interfaces also include gateways that act as interfaces for third-party systems (e.g., ERP, CRM).