Introduction and IoT ecosystem
Before writing about any IoT platform, a few words must be said about IoT platforms in general. There are several definitions available so I will try to simplify my view about it. In each case before even talking about IoT platforms, one must first define what is the IoT ecosystem (or IoT stack, IoT architecture…) and where does IoT platform fits inside this ecosystem. IoT ecosystem in most cases consists of four major components:
Things (hardware) are devices in the form of sensors (for temperature, pollution…) that collect data from the environment or in the form of actuators (valve, motor control…)
Connectivity is everything between the things and our applications from where we read from things or command to things. There are several connectivity options and most of them use some sort of gateway
Software which is typically in the cloud and here are data collection, device and configuration management, messaging, OTA firmware updates, security and identity management done
Applications and analytics is the part where the end user is interacting with your IoT solution typically via a web or mobile app. This part also covers visualizations, reporting, rule engine, analytics and alerting in case some threshold is triggered. This part must be adapted to developers so that they can develop custom apps with speed
IoT platforms always cover component 3 and partially or fully component 4 of the IoT ecosystem, but it can differ from platform to platform. When talking in closer terms (only component 3) IoT platforms are also commonly called middleware since they manage interactions between the hardware and the application.
When choosing an IoT platform first you need to see how much customer references the platform has, especially in the vertical/industry that you target, because every vertical has specific laws and requirements. It is also very important to choose the platform that will be invested in, that will grow and not become obsolete in a few years’ time. It’s also important to have the platform that can scale easily from small PoC (Proof of Concept) projects to bigger projects and that 3rd party applications are supported. Regarding networking and protocol support it’s also important that the platform can be connected to various types of devices and systems. Security considerations also must be high on your list when considering what IoT platform to work with and also who owns the data and will the public cloud, private cloud or private server implementation will be used. Last but not the least, the key benefit of IoT platforms is speeding up the go-to-market time with your product or service, but it is important to cautiously calculate all the costs to manage the TCO (Total Cost of Ownership) of your IoT solution.
ThingsBoard IoT platform
To explain better what an IoT platform is it is always good to use an example. In this case I will use the ThingsBoard open source platform that I have been reading about and trying things with. It is not that well known but I am quite impressed with all the features it provides, good step-by-step tutorials and also the fact that it is open source (Community edition) but still services can be bought and there is a paid version (Professional Edition) with some additional features. Apart from Community and Professional edition there is a third product that is also open source and it is called IoT Gateway (not the same as LoRa or SigFox gateway). This product is used to integrate IoT devices that are already connected to some third party platform.
ThingsBoard supports the most widely used MQTT protocol but it also supports CoAP and HTTP. ThingsBoard is a multi-tenant solution so it is possible to have multiple customers who have multiple users with multiple devices. The product also has quite a lot of ready to use nicely looking widgets and dashboards.
Good thing about the platform is the fact that can it can scale horizontally i.e. identical hot standby servers can be added to the cluster and data is replicated using NoSQL database. A very nice feature is also IoT rule engine that is easy to use drag n’ drop graphical interface to process incoming data and do any action like trigger alarm or do something custom.
As every IoT platform it supports device and asset management, security for both MQTT and HTTP, customization and also alarms management. There is also a live demo which I have tried and liked where platform features can be seen and tried: https://demo.thingsboard.io/signup
Regarding use cases there are not much use cases, there are only a few from sectors such as energy, agriculture, smart buildings and smart city. However, due to its open source nature there are probably much more worldwide implementations.
To conclude, today there are IoT platforms popping out of every corner and most likely a lot of these pltforms will not survive. Pretty much all big IT and software companies have their own IoT platforms and definitely the three most well known players on the market are Amazon AWS IoT, Google Cloud IoT and Microsfot Azure IoT. Choosing the right IoT platform is very important for several previously discussed reasons, however one must always keep in mind the specifics of your IoT project. Since IoT platforms are relatively complex it is also advisable to specialize in one or maybe two IoT platforms that can cover most of your IoT needs. For any suggestions, comments and questions please contact me via nikola@simpleIoT.eu.