A report by Gartner in 2017 predicted that by 2020, the number of connected “things” in the Internet would be over 20.4 billion. But with the rate at which IoT solutions are currently being deployed around the world by businesses who are discovering how it could help optimize their processes, and by entrepreneurs who are disrupting existing markets and carving out new ones with diverse innovative solutions, It is probably safe to say that there would be a far greater number by 2020.

One of the main facilitators of this steady growth in the number of connected devices are IoT platforms. They provide a series of integrated services and infrastructure (data storage, connectivity etc.) generally required to connect "things" to the internet. They handle most of the project's heavy lifting, reducing the amount of work and investments required for deployment of solutions and have by far been one of the main reasons behind some of the most successful IoT solutions around.

This has made them an integral part of the deployment of any IoT solution. However, the IoT platform market has been on a rise, according to a report by IoT-Analytics, as at the last count in 2017, the number of IoT platforms had increased to around 450, 200 more than the previous year. This massive amount of options creates a unique set of challenges for developers as choosing the perfect platform becomes quite the task. We already discussed Top six hardware boards for IoT, but they are only one type of IoT platform, in today’s article we will look at the diverse types of IoT platforms and the factors to consider when making a choice between them.

Types of IoT platforms

One of the easiest ways of breaking IoT platforms into types is by categorizing them based on the most basic IoT Architecture (shown below).

Which (probably oversimplified) can be said to consist mainly of 4 modules;

The “things” (physical/tangible hardware e.g smart switches)

Connectivity e.g WiFi, LoRa

Device cloud e.g AWS, ThingsWrox

Apps/Devices/APIs

The 4th module represents end devices which are usually also referred to as things. Based on this, we could categorize IoT platforms into four major types;

Hardware platforms

Connectivity Platforms

Device cloud platforms

End to End platforms

1. Hardware Platforms

I covered this type of platforms in one of my previous articles here. They are essentially platforms used for the design and development of the “things” in IoT. They include a diverse range of microcontrollers and microprocessors which have special features that make them suitable for several IoT use cases. Examples include boards from Particle amongst others.

2. Connectivity Platforms

These are platforms focused mainly on how devices are connected to the internet using diverse low power, low-cost telecommunication mediums from NB-IoT to LoRa. Good examples include Sigfox, AirVantage, Hologram, and particle.

3. Device Cloud Platforms

These platforms exist in different flavors and it’s where you probably have the greatest number of players. They traditionally provide the network infrastructure and storage space for device data with the ability to connect several thousand to millions of devices. Some of these platforms come with additional and differentiating features for data analytics and visualization, device monitoring/management etc. Good examples include; AWS, PTC’s ThingsWrox, Thingspeak, Azure, etc. Learn how to start with AWS for IoT.

4. End to End Platforms

These platforms technically combine all of the efforts of the other platforms mentioned above. They provide the hardware (directly or via partnerships), the connectivity, device cloud, security and every other thing needed to connect devices to the internet. The integrated nature of their service down to the hardware makes device management an easy task with them. These platforms are probably the best to use when deploying your first IoT solution as they help remove the complexity involved with combining different IoT stack and platforms. A good example of platforms in this section will be Particle.

Asides classification into types using the basic IoT architecture, these platforms can also be categorized based on the IoT verticals (from particular industries to unique kind of clients) in which they operate. For example, platforms like the GE Predix and Honeywell IoT suite are tailored to serve users in the industry IoT market while platforms like BluePillar provides an energy-as-a-service platform which could be useful for energy-related projects. Seemingly general purpose platforms like AWS, and thingsWorx also exist and may be best for certain projects.

Factors to consider when selecting a Platform

According to a report by engineering.com, 90% of data generated by IoT devices are currently not being used with the failure to use the right platform for deployment, being one of the chief causes. For IoT platforms, there is no "one size fits all" for any project. Careful considerations have to be made to ensure the platform being used is the best for the project.

Below are some of the factors you should look out for when selecting a platform;

Type of Service and Model

Compatibility (Architecture and Technology Stack)

Domain Expertise

Reliability

Connectivity

Scalability

Security

Device management and monitoring features

Integrations and Data handling

Support

Cost

1. Type of Service / Model

The first thing to consider when selecting a platform is the kind of services they offer. It is important to identify if they are a true end to end platform or just a connectivity platform. It is important to truly understand the offerings of platforms and determine how it fits into the goals of your project.

2. Compatibility

This factor is even more important when you are not using an end to end platform. It is important to ensure that the Architecture (network, connectivity) and technology stack (e,g supported protocols) of the platform to be used, would fit your use case, your existing product IP and the future goals of your project. You should ensure interoperability exists (one way or the other) between the platforms to be used for any part of your project. For instance, if your "things" were based on the MQTT communication protocol, it is important to ensure the platform you are selecting as the device cloud supports the protocol.

3. Domain Expertise

Domain expertise could be in terms of expertise around a particular IoT vertical or expertise in the service being provided. As mentioned above, certain IoT platforms are developed with a certain section of the IoT market in mind, if developing around that vertical, it may then be smart to choose platforms within that space. A good example will be choosing the GE predix or IBM Watson over Particle for the implementation of an Industrial IoT based solution. For expertise in the service being provided, it is important to ensure the platform provider has spent a good number of years within that space.

4. Connectivity

This is most important when selecting a connectivity platform. Questions like the method of connection, coverage, plan, amongst others need to be taken into account. Compatibility of the answers to this question with your solution’s use case and your hardware especially is quite important. The communication mode must be one that works within your device's power budget and location constraints, while the data plan must be one that is cost effective based on the rate at which your devices upload and download data.

5. Reliability

How reliable is the platform? What are the chances of it failing? What happens when it fails? Can data be recovered? This and more are the questions to be asked around the reliability of the platform to be used. Get as many details as needed about the offerings of the platform around production level reliability before making a decision.

6. Scalability

Bandwidth and Latency are two factors to keep in mind when selecting an IoT device cloud platform. You must ensure the platform of choice has the required infrastructure to achieve the scale you envisage for your project.

7. Security

Security is no doubt a very important factor to consider when selecting a platform. You should know the measures the platform providers take to ensure the security of the platform, from regular updates to authentication and data encryption. The connected nature of IoT solutions makes them possible targets for diverse kind of attacks that could compromise your data and the overall essence of your project. This factor should be one of the first to consider.

8. Device management and monitoring features

IoT implementations usually involve the deployment of devices in places with limited access. This makes having a medium of monitoring and managing device health and status via an IoT platform an important feature. Some platforms are so robust for device management that they include features to push OTA firmware updates to devices. Ensure the platform is able to support all the monitoring and management features your device could require.

9. Integrations and Data handling

Device cloud platforms are essential for the collection of data, but most of those platforms have gone beyond that, implementing several features that enable data analysis and generation of actionable insights. For some platforms, this comes as an added cost while it is free for others. Asides data analysis, most of the data generated by IoT is used to serve diverse processes. Ensure the platform is capable of generating the kind of insights your project requires and the processes that will benefit directly from your IoT solution, can be integrated easily before making a decision.

10. Support

The importance of support cannot be overemphasized, especially when deploying your first IoT project, or using a particular platform for the first time, several problems could arise which may cost the project more time than necessary. You need to be sure of the kind of support you will be getting before going with any particular platform.

11. Cost

Several billing models exist for IoT platforms and more often than not, cost tends to be the major factor for platform selection. You need to evaluate the billing model of the platform, place it side by side with the number of devices your solution will involve, the amount and frequency of data that will be generated and decide if that particular platform is best for you.

This list is by no means exhaustive; IoT deployment can be complex, it is important to get people with the right experience level to achieve success. While undergoing the process of selecting a platform, having a sit down (or phone conversation) with sales representatives of the platforms you are considering is quite key. This will give you insights into their capabilities and future plans.