When we think of IoT (the Internet of Things), we generally think about devices measuring something and taking some action in response to an event. We think of situations such as coming home to turn on the lights, a truck deviating from its route then connecting with logistics to verify that it was not stolen, and an engine unexpectedly lowering its revolutions and planning preventive maintenance. We think only of the device, its sensors, and its integrated circuits; that is what we see as IoT.

 

What we generally forget is that to a large extent, the burden of IoT is to generate tons of data and that this data should be analyzed, with subsequent actions being taken after analysis.

 

Suppose, for example, that all vehicles in the city are somehow connected to the Internet. This would be a simple IoT implementation. The vehicles are connected to the Internet, through which they send and receive data or commands. Data such as the speed at which the vehicle is moving, its location, and its direction of travel at a given moment can easily be gathered. 

 

With this information, a Back-End service could calculate the best route by analyzing the total vehicle load of the city. This service could divide routes among all vehicles by directing them onto different routes to reduce congestion.

 

Now, where does the service run? Where is all the data stored? Where do they go? What commands them, classifies them, and correlates them? What patterns are you looking for that repeat over time?

 

Well, this service runs on hundreds of computing units, stored in tons of terabytes on high-performance disk, and is distributed using large amounts of messages per second. All of this technology runs through Cloud Services, for example, Microsoft Azure.

Microsoft Azure has a wealth of services that can help IoT, as you can see in the following diagram:

While there are many elements that could come into play, we are going to focus on two ways to help IoT processing; 

(i) Software-as-a-Service and (ii) Platform-as-a-Service.

THE SAAS (SOFTWARE-AS-A-SERVICE) FORM; AZURE IOT CENTRAL

This is a fully managed solution which makes connections much easier, helps to monitor, and enables good management of IoT resources, which are usually very numerous. Azure IoT Central decreases management, the costs of operating the IoT solution, and all the overheads of a typical IoT project. It also makes initial IoT solution configuration simple.

 

Deploying a solution with Azure IoT Central can take only a few minutes. The actions to be performed are:

 

– Defining and connecting devices
– Configuring device rules and actions
– Customizing the data that the operator will see in the central console
– Monitoring device health


To define which devices are entering the Azure IoT Central solution, a template that covers the measurements that the device captures should be outlined. These can be of:

 

– Telemetry type– which measures a value
– Event type– that is something that can occur
– State type– which is how the device is located

.
It should be noted that measurements can be simulated for testing purposes, such as:

– The values that control the device.

– Device metadata, called properties.
– The commands that the device will be able to execute.
– The rules that are associated with the device.
– The customized dashboard for operators to see the information.

Once the device is defined, then the rules are defined. These can be of two types:

 

1. Telemetry-based rules– These are rules that are triggered when some telemetry value is reached, for example, when the temperature reaches 100 degrees.
2. Event-based rules– These rules are based on some event that the device reports, for example, that an engine was shut down.


These rules will form the basis of all notifications to be sent, as well as which actions will be executed.

 

Actions can be as simple or as complex as needed. They can trigger simple actions, like sending an SMS or an email, or stopping an entire production plant. You can call an action to an Azure Function (the serverless way to program in Azure), invoke a Microsoft Flow that allows you to connect to both Microsoft and third-party programs, or you can also start running an application built with Azure Logic Apps (an automated scalable workflow that can integrate applications and data into cloud services and on-premises systems, as well as other SaaS apps).

 

When devices are defined and connected, the rules and actions they generate have been defined. The Central Panel view must then be created where the results of the device operation are reported. The center pane shows the aggregated monitoring functions, as well as any other information that is relevant to the operator of all devices. Only the necessary information should be displayed. A lot of information can make it difficult to make quick decisions. For example, thousands of alarms sounding off are not useful, and all compete for the operator’s attention. With the most important alarm being highlighted, reporting can be acted out faster and much more accurately.

 

The last part that is needed to have a complete IoT solution running on Azure infrastructure is to track the issues that devices may face, such as malfunctions, degradations, condition changes, and others.

 

Events that fire, when functions are malfunctioning, must be configured. In addition, there must be procedures in place to determine the root cause of the problem, as well as how to fix them.

 

It only seems more complex than it really is. In Azure IoT Central, the actions that are performed are basically configurations, nothing should be scheduled. When what is wanted to be done, what must be measured, and which devices are counted are explicitly clear, the capture and processing of the data sent by the devices are quickly deployed.

 

Like any Software-as-a-Service solution, it is impossible to cover all IoT scenarios; several are outside the Azure IoT Central spectrum. For those, we must use a Platform-as-a-Service.

THE PAAS (PLATFORM-AS-A-SERVICE) FORM; AZURE IOT SOLUTION ACCELERATORS

These accelerators are nothing more than PaaS solutions that need to be customized. That is, they are basic but complete templates of a finished solution; all the necessary elements are present.


Being customizable allows for a high level of control over the IoT solution. Whether it’s deploying IoT for connected operations or having specific customization requirements for connected products, IoT solution accelerators have the control you need.


Accelerators give all the source programs of the solution, as well as modification of any element, expanded, or removed if necessary. If for example, there are older devices to which you must program all access, or many different devices that must work as if they were the same. Here, you can take advantage of IoT solution accelerators since only parts of the code that are needed should be changed.


To create fully customizable solutions tailored to exactly what’s needed, IoT solution accelerators deliver:

1.) Pre-built solutions for:

(i) Remote monitoring
(ii) Factory connections
(iii) Predictive maintenance
(iv) Device simulation

2.) The ability to deploy items in minutes
3.) The opportunity to speed up profitability
4.) Solutions that offer absolute control

 

Let’s look at two precompiled solutions a little more in detail:

REMOTE MONITORING

The Azure IoT Remote Monitoring is an open source MIT licensed solution accelerator. It helps speed up the IoT development process, showing common IoT scenarios, such as:

 

– Device connectivity
– Device management
– Stream processing


This Remote Monitoring solution follows the recommended Azure IoT reference architecture.

 

Microsoft recommends that the architecture for an IoT application be cloud-native, microservices-based, and serverless. The different subsystems of an IoT application must be built as discrete services that can be deployed and scaled completely independently. This allows for a greater degree of scalability, as well as much more flexibility when choosing the best technology and upgrading individual subsystems.

 

Microservices can be deployed with more than one technology. For example, you can choose from either of the following options to deploy a microservice:

 

– Use of container technology such as Docker, with serverless technology, such as Azure Functions.
– Host microservices in PaaS services such as Azure App Services.:

CONNECTED FACTORY (IIOT, INDUSTRIAL IOT)

IIoT aims to improve the efficiency of factories using IoT for both operational productivity and profitability. It connects and monitors industrial equipment and devices in the cloud, including machines that are already operating in the plant. Analyzing the data provided by IoT will increase factory-wide performance.

 

IIoT reduces the time it takes to access plant machines using OPC Twin; device management based on the OPC (Open Platform Communications Foundation) unified architecture.

 

Certificate management and industrial device integration are done using OPC Vault, ensuring connectivity to devices. The microservices that make up this solution provide Rest APIs that are over Azure Industrial IoT components.

 

The APIs for these services give you control over the functionality running on Azure Edge (deployment of functionality directly on devices that are part of the solution):

SOME CONCLUSIONS

 

Mauricio Sougarret

Convergia’s Senior Cloud Director, more than 30 years in technologies and systems market.
Cloud Architect, Application Developer, Database Designer, Project Manager in a wide variety of business applications. Particularly interested in function and microservices based developments using Microsoft .Net technologies. Always interested in migration projects to .Net Framework.