IoT platforms provide middleware to connect and manage hardware devices and the data that they collect with user-facing mobile and web applications. These IoT platforms are typically designed to establish secure communication between devices, apps, and services. They also make it faster and easier to develop and deploy IoT applications. IoT platforms are also designed to be scalable and reliable.
The Internet of Things, IoT, is evolving at a rapid pace, so you’ll need to develop your IoT applications quickly and efficiently to minimize time to market and remain competitive. Although each IoT initiative comes with its own set of unique requirements, most IoT projects share some common requirements for the management of connected devices and the communication, storage, and analysis of the data that they generate.
Consider these key IoT platform capabilities:
The relative importance of each capability depends on requirements. For example, for a small-scale home automation system, device management is not a primary concern. There are few devices to manage.
A home automation is mostly reactive. It is less important for the IoT platform to provide data storage and data analytics capabilities to store and analyze historical sensor readings. However, the IoT platform must support fast and reliable data communication protocols to ensure events that sensors detect are not missed and responded to in real time.
Industrial IoT application involves thousands of sensors and monitor industrial equipment for failure, wear, and inferior performance, device management and analytics capabilities of the IoT platform is much more important.
There are hundreds of IoT platforms available from a range of vendors. Some platforms are highly specialized, like GE Predix, a PaaS IoT platform aimed specifically at Industrial IoT. Other IoT platforms are focused on providing only a subset of the functions that might be required for your IoT system, rather than an end-to-end IoT platform solution, like Cisco and SAS Edge-to-Enterprise IoT Analytics Platform, which is focused on IoT analytics only. As a result, you might choose to adopt more than one IoT platform.
As a starting point, here are some popular general-purpose end-to-end IoT platforms that are suitable for a wide range of applications:
Built on top of the IBM Cloud platform, IBM Watson IoT is a mature, developer-friendly IoT platform with strengths in real-time analytics and cognitive computing. The platform also supports device management, authentication and authorization, secure data storage and communication, standard communication protocols like MQTT and HTTPS, rules, REST APIs and SDKs.
AWS IoT is a highly scalable IoT platform. It includes an SDK, authentication and authorization, device registry, a device gateway that communicates with devices using MQTT, WebSockets or HTTP, and a rules engine that integrates with existing AWS services like DynamoDB. An interesting feature of AWS IoT is “device shadows,” which is a persistent virtual version of each device including the last known state of the device. Registering as an AWS user requires a credit card.
The Microsoft Azure IoT Suite is another comprehensive IoT platform, which includes support for device management and device twins (like device shadowing) by using Azure IoT Hub, standard communication protocols including MQTT, AMQP, and HTTP, secure storage, rules, and analytics engines supporting predictive analysis and data visualization. Registering as an Azure user requires a credit card.
PTC ThingWorx is an enterprise IoT platform that supports model-driven rapid application development. Features include device management, application modeling, support for standard protocols including MQTT, AMQP, XMPP, CoAP, and WebSockets and predictive analytics, as well as REST APIs and SDKs to support integration.
Kaa is a free open source IoT platform that is published under an Apache 2.0 license, which allows the platform to be self-hosted. Kaa includes REST APIs and SDKs for Java, C++, and C, with features for device management, data collection, configuration management, notifications, load balancing, and data analysis.
Google Cloud Platform (GCP), offered by Google, is a suite of cloud computing services that runs on the same infrastructure that Google uses internally for its end-user products, such as Google Search, Gmail and YouTube. Alongside a set of management tools, it provides a series of modular cloud services including computing, data storage, data analytics and machine learning. Registration requires a credit card or bank account details.
Google Cloud Platform provides infrastructure as a service, platform as a service, and serverless computing environments.
Link to the main page: https://cloud.google.com/
Firebase is a mobile and web application development platform developed by Firebase, Inc. in 2011, then acquired by Google in 2014. As of March 2020, the Firebase platform has 19 products, which are used by more than 1.5 million apps. Firebase's first product was the Firebase Real-time Database, an API that synchronizes application data across iOS, Android, and Web devices, and stores it on Firebase's cloud. The product assists software developers in building real-time, collaborative applications.
The application platform contains several different components, of which the Firebase Realtime Database component is publicly open to the network by default. This should definitely be encrypted when creating data structures. Although the Firebase environment was originally designed to be used primarily for product development, it is important to ensure that open environments do not process the correct customer data. In addition, access to the development environment from the public network should in principle also be prevented. Picture 8 is an example view about Firebase database.
Picture 8. An example view about Firebase database.
The Firebase database provides application developers with an interface through which data can be synchronized between clients and the cloud. The Firebase database component can be used e.g. With Android, iOS, JavaScript, Java, Objective-C, Swift, Python and Node.js applications.
With so many different IoT platforms to choose from, selecting a platform may seem daunting. Consider your requirements against the capabilities of each platform to select the best match for your business. Adopting the right IoT platform can simplify, accelerate, and streamline the development of your next IoT project. With the right IoT platform, you can focus on unique requirements deliver the most value to your customers in the least time.
For teaching and learning purposes, Firebase is one of the most easily manageable Iot platforms to deploy.