IOT Platform: Typical Characteristics
Posted by Jai on June 29, 2016
There are common characteristics for iot platforms but it is indeed very difficult to benchmark iot platform solution as many of these try to solve fundamentally different problems. In this post we will cover some of the typical characteristics which such a solution should have.
IOT Platform Categorisation
There are lot of IOT platform providers now a days and numbers are growing every year. Each having some very common features and some having quite different features. On high level, we can categories these IOT platforms in different categories,
Connectivity / M2M platforms
To provide connectivity to connected devices with cloud.
Infrastructure-as-a-service backends provide hosting space and processing power for applications and services.
Hardware-specific software platforms
Domain specific platform supporting only those connected devices.
Consumer/Enterprise software extensions
Existing enterprise software packages and operating systems allowing the integration of IoT devices.
Lot of companies investing in providing different kind of services. Some are focused on providing infrastructures as backend, some working on providing connectivity, some providing platform only for specific domain and devices. The industry as a whole is still evolving and yet far from generalising the platform providing all feature set. Companies providing these capabilities are very observant for now and based on which industry pick up first consumer market, manufacturing, energy , automotive etc. the energy, efforts and money and platform maturity will also move in that direction.
As mentioned, there are around 400 plus such platform available having different strategy to expand and grow. Depending on which domain you work, but to make it generic and be available to provide mass support the below characteristics are typically be there.
IOT Platform Characteristics
In general, some of the typical characteristics of such an IOT platform are,
Day by day, the number of devices getting connected to internet are increasing rapidly. Each domain adds variety of devices and the variations is huge depending on the devices size and processing power. Irrespective to diversity, the solution ability to support diverse type of internet of things, devices should be there.
Ability to support different transport protocols to target various devices communication protocols. Support for some of the common protocols like HTTP/REST, MQTT, AMQP, CoAP etc. are in common. Ability to provide support for other common protocols, library to convert to supported solutions. Eg. intermediate raw TCP/IP and UDP gateways to convert to relevant supported transport protocols. Support for open source standards, protocols, library integration etc.
The very basic requirement of any solution is to be scalable enough to support the rising number of such devices. A very stable and scalable environment to support increase in load should be there. The solution should be able to provide device management for millions of devices.
Not only the number of connected things but indeed the solution should be able to handle Exabytes of data. It should be able to digest, process and store that huge amount of data.
Another basic requirement from such a solution is to be reliable from services perspective. Either instances, servers, components, hardware, network, or data centres etc. it should provide typical failover and disaster recovery solutions.
Different domain has different requirements related to data processing. For some data is required for analysis perspective which can be processed, alerted and stored. For some cases, we need to process the data on real time basis and take actions accordingly. For different in memory processing and real time availability of data is required. The solution should provides ways and services with minimum latency in such cases.
For most of the connected devices, the requirement of bi directional communication is there. Device should be able to publish data to cloud and cloud should be able to push commands, configurations, firmware update to the devices. The solution should enable bi directional communication for all connected devices.
As discussed earlier, there are different varieties and variations of IOT platforms around now a days. Designing and Architecting such a solution, should be loosely coupled with the hosting environment in totally itself. And tight coupling with hosting environment may restrict the solution. Some of the hosting possibilities around can be,
in house – Dedicated environment on client side
hosted/private cloud – self hosted environment shared with multiple clients
public cloud – to be able to host on any public cloud using IAAS model.
The solution need to incorporate end to end security support in the system. Device identification, device authentication, secured transport layer security, end point access control for authorisation. Firmware patching and security alerting also required.
The solution should have ability to add different services modules for specific features. Each domain has its own requirements in terms of data processing. Some of the typical use cases are generic through different domains.
The solution should be data agnostic, support to process and provide connectivity points for different varieties of data. Possibility to support structured or unstructured data etc. should be there. Some of the features are also common in devices across domain etc. Location based information, time series data etc. One of the features of such solution is to provide out of box solution of commonly used data structures and services around same. Solution should provide different domain customisations and different domain wise features based on rules engines etc.
We have heard of same so many times that Data is currency, real value is in data. It should support all data processing, visualisations and analytics support. Typical business value addition from analytics is very much domain and data specific. Machine learning integration is indeed one of such requirements to really get value out of data and make it futuristic and to be able to monetise same. Ability to integrate data from multiple sources in analytics like customer data, connected devices data, market research data and combine those to provide relevant complete analytics solutions for end customers.
The solution should be able to provide integration point to external services. Third party cloud integration to be able to digest data from or to be able to push data to may also be required at times. Additional dashboard, portal or interfaces are also required based of domain requirements like Customer Support portal.
External System integration
The solution capability to provide integration with other backend service is also required. Ability to push data to client API or certain data warehouse is additional features used.
The solution should provide a management portal for different services within the system. Device management, security configurations, firmware management, device repository and devices health etc. are some examples.
Data Access API
Various cases, the connected devices are also directly used with consumer based applications. Ability to expose data to end customers using various means is also required. Mobile SDKs or REST Api are typical examples which the solution should provide to be able to expose data to end customers easily.
The solution should provide data flow monitoring within the system. Ability to monitor device connectivity status to data flow to services status should be there.
The solution should provide different alerting options based on specific configuration or events. Whether it is related to device status, data flow or device compromise status alerts. SMS, Email, Push Notifications are different alerting options are used.
Only some of typical characteristics have been discussed above, there are variations of platforms providing domain specific features also. In future posts, we will be covering technical challenges in building such platforms and end to end security aspects.