AlexOakenman - Fotolia
IoT cloud platforms have more to offer than a place to store data.
Enterprise experience with IoT to date has identified four functional areas that IoT cloud platforms have the tools to address:
- Registration, administration and support of IoT devices.
- Collection and contextualization of events generated by IoT devices.
- Processing IoT events to record them, convert them to business transactions, turn them around as commands to IoT controllers or any combination of these functions.
- Any special services relating to the hosting of IoT application components.
All the major public IoT cloud platforms offer tools to address each of these areas. In some cases, IT pros can apply the tools without making changes to applications, which means they won't require extensive support from developers.
In other cases, development teams must integrate the tools with the applications. IT pros must understand each of the four IoT functional areas and the level of development cooperation they require.
Register and support devices
Both Amazon's and Google's IoT core service portfolios and Azure IoT Hub register, manage and support IoT devices. This area deals with the IoT device community itself. By providing secure device communications, registration of new devices, decommissioning of ones taken out of service and other routine community tasks, these services unload the burden of the IoT device community from IoT applications.
The tasks can be implicit in the way an IT pro develops an IoT application, but admins and operations personnel can also add tasks with minimal effect on development.
Contextualize IoT application events
Contextualization means ensuring that the event associates with the state of the outside system it's originating from. Both developers and operations or administration personnel should regard IoT as an event source. Devices send signals in response to real-world conditions, and these signals then activate application processes. In some cases, an event is a self-contained signal or request, and, in others, the context of the event is important. Open gate signal, for example, is processed one way if the gate is closed but in another if it's open already.
Simple event flows might not need sophisticated context. They can be processed through a data pipeline, provided by Amazon's Kinesis; Google Cloud Pub/Sub or, for more flexibility, Cloud Dataflow; or Microsoft's Event Hub. These pipelines can connect to analytics if the primary goal is to understand event counts and can also be input into complex event processing applications. Some of this can be done with little or no custom development, but obviously more is possible if software can be adapted to the specific events in the flow. The big advantage of this approach is that it lets IT pros deal with massive amounts of data.
Contextualizing tools offered by cloud providers include AWS Step Functions, Google's Cloud Dataflow -- which also handles pipeline applications -- and Azure Logic Apps. These can be used externally to an application to create composite events from the raw events generated by IoT devices. However, the applications must be programmed for the composite events. If the applications already exist, it will be necessary to either use contextualizing tools to generate the expected composite events or change the software to accommodate new composite events.
Events are sourced from a cohesive real-world system and linked to the system's state, including how people or vehicles move within it. IT pros can diagram a complex physical system and then place events within the structure or query to obtain information on the structure based on events using tools such as AWS IoT Things Graph, Azure's Digital Twin and, with some more effort, Google's Cloud Dataflow. Diagramming is a somewhat complex task, but it doesn't require software development, and for some, it represents a transition into the processing task.
How IoT cloud platforms process application events
IoT cloud platforms support IoT event processing in a variety of ways. Some are specific to IoT and event processing, and some are designed for more traditional business applications. The difference between IoT event processing as a specialized cloud service and as a general business service is in the distribution and variability of the event flow. Events occur at a relatively steady pace -- not unlike the pace of transaction generation in an online system. Organizations can best handle events with container services managed in IoT cloud platforms or managed Kubernetes services.
Using traditional cloud provider containers or IaaS for highly variable event processing will risk either under-resourcing peak periods or wasting capacity and money during slack periods. For periods of intense demand, microservice, function or lambda hosting is the best approach. For example, Amazon's Lambda, Google Cloud Function and Azure Functions are the appropriate cloud provider tools. These serverless platforms mean developers do not need to have the hardware and software themselves. Organizations don't pay for the services unless they're actually used. Pay-as-you-go makes event-processing services ideal for IoT applications that experience significant event-generation variability. Don't use them for regular events; it will end up increasing costs.
What special services do cloud providers host?
Admins might think that cloud provider's hosting processes are located in the cloud or not in one of the prior points. IoT cloud platforms host processing options like function and microservice or serverless computing. However, it's possible to host some of the cloud provider IoT features and tools on premises using another cloud provider tool for edge computing.
Amazon's Greengrass local hosting is extended for IoT in IoT Greengrass. This makes Amazon IoT able to support local handling of events even when WAN and cloud connections are irregular. Google's Cloud IoT Edge and Azure IoT Edge offers comparable capabilities for Microsoft cloud users. All these tools are likely to require some custom development.
The cloud is an important part of any IoT application that has to absorb events from widely separated sources or support a highly elastic volume of events. IT pros should review IoT cloud platforms before they start developing an application to maximize the advantages these tools can bring.