I’m sure everybody has heard about IoT or Industry 4.0 and those terms. The question came to me which role the IoT and APIs play in the world of Things and Devices. Are they still needed when everything “magically” connects with each other?
There are two worlds in IoT, the one you know from your house—consumer IoT—and the world of Industrial or Enterprise IoT.
IoT and APIs: Consumer IoT
In your private life, you might have a fitness tracker or smartwatch. These devices also somehow belong to the Things Space. They are sensors collecting information. Usually, those devices are firstly connected to your phone via Bluetooth.
Your phone takes the role of connecting them to the Internet and further to the provider which offers services to you. Usually in the form of an app that gives you insights to your data like statistics on the number of steps you have done per day, etc.
The connection from these apps to the provider is usually done via APIs. The APIs work as data pipes to send the data off to the cloud and retrieve the metrics and suggestions back. Some apps work standalone, but quite often the provider does the “heavy lifting” on the cloud.
You might think about smart devices in your household which asked you to provide Wireless Access to get the Internet. Those Things directly communicate with the provider and send data to the provider’s backend which is often running in the Cloud.
Philips Hue Lights or Wemo Switches do this either themselves or using a local Gateway which provides this wireless link. Sometimes the sensors do this using API calls based on REST, Websockets, or even proprietary protocols. These days IoT Protocols like MQTT become more and more popular to connect the power and compute constrained devices to the backend.
MQTT offers some advantages, as it was designed to work in environments that want to send small portions of data frequently like temperature, humidity, and others but also allowing to run on systems with less computer or memory. On the other hand, the protocol has some constraints in terms of security which need to be taken into account too.
IoT devices leveraging MQTT over Websockets can be considered similar to new and modern browsers like Chrome supporting Websockets. This allows exchanging data in a quick and unconstrained way compared to Webhooks or API polls.
Facebook has adopted this approach for its Messenger App and achieved a decrease in latency improving user experience massively. Still, the Messenger uses the existing Facebook APIs together with MQTT and Websockets. This example shows that APIs play an important role in the Internet of Things and are used together with IoT Protocols.
In Enterprise or Industrial IoT, a few very often promoted use cases come to mind like “Predictive Maintenance,” “Fleet Management.” Quite often companies decide to use an IoT Platform to connect all devices. IoT Platforms provide a number of core capabilities such as:
- Connect: create and manage the link from the device to the internet
- Secure: protect IoT devices, data and identity from intrusion
- Manage: control the provisioning, maintenance, and operation of IoT devices
- Analyze: transform data into timely, relevant insight and action
- Build: create applications and integrate with enterprise systems
Most of these IoT platforms provide APIs to integrate with existing IT but not all contain a full-fledged API Management Solution for API Lifecycle Management but also for monitoring, API security, and consumer management.
Some enterprises want to start small and do some first tests with their IoT ideas. In order to be able to support those types of use cases, allowing to send and receive IoT Data via MQTT and connecting them to the world of APIs, Axway has developed two Open Source Components available on their Axway Marketplace.
Components to connect the IoT to APIs
Below the list of the two components proposed by Axway to connect to the Internet of Things to APIs:
mqtt-proxy allows applying policies on MQTT events (connect, subscribe…) by reaching out to a server via HTTP. This can be used, for example, to check username and password on MQTT against an Axway API Management REST-API.
mqtt-trigger subscribes to MQTT topics and triggers REST-API calls based on a rule set via HTTP when new messages are received. For example, calling API Management when a new message is received on a specific topic.
Discover the data sheet on AMPLIFY API Management.