“The future depends on what we choose to do in the present” – Mahatma Gandhi
As an architect, I get asked several times which the best IoT platform. Especially since there are 300+ IoT platforms available today.
Before I answer that, let's understand IoT better.
What is an IoT platform?
First, let's look at what the Internet of Things is. As the name suggests, Internet of Things is a network of physical devices and objects that are connected to the internet. By inter-connecting these physical devices and objects to the internet, we can leverage it to arrive at intelligent decisions.
What are these physical devices and objects?
Physical devices can be anything from our mobile phones, washing machines, microwave ovens, lights, refrigerators etc. and objects are various sensors like motion detection, smoke detection, temperature etc. We can generate useful data that can be used for decision making by delivering to the right person (or machine) at right time.
The connection of devices, objects and internet are resulting in multiple use-cases, like smart home, smart parking, autonomous production and many more.
No doubt, IoT is bringing convenience, efficiency and safety to an all-time new level and hence is redefining our lives.
The insights generated out of the data becomes key to arrive at smart decisions. But, the data needs a database storage and since the data generated is huge, it requires analytics to make sense out of the data.
Not stopping here, one needs to think about the safety of the data, so security becomes another important element.
Now we can define IoT platform as consisting of following building blocks:
This block constitutes support for various protocols so as to interface all objects and things seamlessly, managing different data formats and bringing them to one interface and thereby ensuring accurate data streaming.
This block ensures seamless management of devices by providing necessary software updates and running of the required applications.
This block collects the data, manages varieties, velocity and veracity of the data and helps define actions based on event triggers.
It helps in running complex analysis of the data, predictive analysis, data visualization and draw insights from the data.
Enables interfacing to third-party systems via Application programming interface, includes optionally SDK.
All the above building blocks are to be designed with inherent security that prevents any cyber-attacks and threats.
[Note: There are many players in the market who provide IoT platforms. What described above is a generic building blocks/elements of an IoT platform to get an understanding. The described blocks/elements offered on the platforms can vary.]
Why do we need an IoT Platform?
We have seen that data is the key in arriving at useful decisions using IoT. The data can be in various forms and the rate at which data is received can vary and can be received in huge volume. Many times it will be necessary to process data and arrive at decisions in real time.
Data would be required to convert into standard forms before processing. Machine learning algorithms would be needed to make useful decisions. So it is obvious that it is an essential function as well a complex functionality.
In an IoT network, there can be 100s of connected devices and sensors. This makes it difficult to manage the devices.
Developing applications and deploying on dedicated infrastructure will be too costly, further such costs development of dedicated infrastructure does not justify the business value.
Use of an IoT platform enables quick development of applications which can be even re-used and hence reduce the cost of development and deployment of applications.
So in summary, IoT platform abstracts most of the common functionality that is essential. It is more sensible for any business to focus on their unique application development as a solution to the problem they are solving rather developing common blocks of functionality.
What are the available IoT platforms?
The below tables lists some of the well-known IoT platforms. The table provides a top-level view of the key building blocks of the IoT platform on each of the listed platforms.
How to select an IoT platform?
With increasing number of IoT platforms available and many players coupling it with cloud solution and providing IoT solution as PaaS (platform as a service), it’s becoming quite confusing to choose the right platform.
You need to choose the platform depending on the problem you are solving, along with keeping the future requirements in mind. I would like to suggest, to shortlist the platforms based on their features and capabilities. Then compare the shortlisted ones on each of the below attributes.
This becomes a crucial factor as it decides how easy or quickly one can understand and make the best use of the platform.
This is defined by available APIs, explanation of APIs using good examples, availability of SDK, support of platform for languages like C, C++, Java, Node JS, the degree of freedom developers can get in using the APIs, data schemas, connectivity, security etc.
Also, you need to check if the platforms help in using existing systems. For instance,
- You may already have a system that makes use of a particular analytics engine, so the platform should be able to support this analytics engine integration.
- The sensors, you're using or the gateway that connects the sensors to the IoT platform supports the certain protocol. It shouldn't become an overhead to convert the data to suit certain protocols so as to interface with the IoT platform. Instead, the platform should be able to support a wide range of protocols.
Before employing an IoT platform, you may already have your own enterprise system that may be connecting several endpoints and managing them. While in other cases, after employing an IoT platform, it may become necessary to add many more endpoints. It becomes essential for an IoT platform to be scalable across any number of endpoints. This means that IoT platform should not only connect to them but be able to manage the additional endpoints without compromising on the performance.
Open source Vs. Proprietary
Open source IoT solutions are available that offer cloud-based and utility based services. As it goes with any other open source, you should be careful in choosing these mainly from the aspect of continued support, security and guaranteed performance.
Platform Features & Roadmap
It is important to consider not only existing features but also the Roadmap of any platform before adopting. A good roadmap ensures a well thought out solution and helps us to grow and keep our solution abreast with the trending technology and market.
Another important attribute to be considered for selection is pricing. The pricing model varies from one platform provider to another. Some of it is as follows:
- Feature-based – Based on the number of maximum devices, the maximum number of streams accepted, the number of API keys, maximum stream size, size of data storage, the period of data retention, SDK support, support offered etc.
- Service-based – Basic monitoring, incident response, recommendation services, threat prevention etc.
- Pay as you Use – Only pay for those services that one consume
- Region-based pricing
- Based on number of messages sent to devices or applications
- Custom pricing for high volume messages
The above are just some examples the way IoT is being priced. There are many more creative ways of pricing as usage of IoT is resulting in many new services and opportunities.
Cost of Ownership
The cost of ownership includes direct cost of hardware and indirect cost involved in software development, initial installation, labour costs, maintenance, technical support, cost of the platform (PaaS or SaaS), network communication costs and downtime.
The main component
of ownership cost is network communication cost which can be 35% to 50% of total cost. This makes it important to consider right data plan options amongst fixed data plan, pay per usage or pay per device. Besides network communications, other main components are technical support (about 10% to 33%) and administrative labour costs (about 20% to 50%).
The IoT paradigm is rapidly growing with increasing number of use cases and applications. The businesses interested in providing solutions in this space need a strong IoT platform to address it quickly and efficiently. The choice needs to be made very accurately.
So, it is crucial to understand the need for an IoT platform, analyze available platform and adopt one that suits the requirement.