Before I introduce the Microsoft Azure cloud services for Internet of Things (IoT), I would like to start from Industry 4.0 term.
Industry 4.0 is a term connected with the Industrial Revolution. Please lets first look at below image. There are four industrial revolutions presented. In this article we are talking about fourth one.
The fourth industrial revolution - term which refers to the concept of the “industrial revolution” in connection with the contemporary mutual use of automation, data processing and exchange as well as manufacturing techniques. Definitionally, it is a collective term for the techniques and principles of the functioning of a value chain organization using or using cyber-physical systems, the Internet of Things (IoT) and cloud computing. Openness and interoperability between hardware, software, and services will be key in helping manufacturers transform how they operate and create solutions that benefit productivity. It is crucial to provide unified way to communicate between hardware, software and what is more - to communicate with the cloud services.
Open Platform Configurations Unified Architecture - OPC UA
OPC Foundation - an organization whose task is to provide broad opportunities for interoperability in the field of automation, by creating and maintaining an open communication standard that allows transfer of process data, alarm and event data, historical data and batch data to devices from different manufacturers.
Open Platform Configurations Unified Architecture (OPC UA)
The OPC UA standard is driven by the OPC Foundation described above. Adapting machines to become compatible with OPC UA is an un-intrusive and cost-effective way to connect factory assets and adapters to field buses are available through a rich ecosystem of vendors (mentioned below in the article). OPC UA is also called communication technology for Industry 4.0 and is essential to reaching this next level of connectivity in manufacturing facilities.
There is a great video created by OPC Foundation which presents the whole idea of OPC UA (Open Platform Configurations Unified Architecture):
One more important aspect - security. It is confirmed that OPC UA is secure by default. It means that all security features are turned on and already configured so there is no need to do this step manually and sees how an end-to-end solution can be secured. It was also confirmed by German Federal Office for Information Security (BSI):
“An extensive analysis of the security functions in the specification of OPC UA confirmed that OPC UA was designed with a focus on security and does not contain systematic security vulnerabilities.”
You can read more about it here.
Open-source cross-platform OPC UA support from Microsoft
Microsoft has a long-standing partnership with the OPC Foundation is currently the number one open-source contributor to the OPC Foundation. Microsoft is also the only cloud vendor that uses both OPC UA client-server connections as well as the new OPC UA publish-subscribe connections all the way to the cloud and back. It means that Microsoft is in a unique position to make the rich OPC UA information model - for instance the semantic description of the machines, available in the cloud for enabling services (like Azure IoT Hub).
At Hannover Messe 2016 Microsoft worked closely with the OPC Foundation to expand product support of the OPC UA open-source software stack, which enables deep integration with Azure IoT, as well as the Universal Windows Platform (UWP). Microsoft will contribute a .NET Standard reference stack to the OPC Foundation GitHub open-source. As .NET Standard is platform-independent, this stack has the benefit of working on all common software platforms in market today, allowing the creation of OPC UA clients and servers.
List of Open Source OPC UA Implementations
There are many open source implementations of OPC UA (not only provided by Microsoft) in the different languages and with different licenses:
open62541 - C library
UA.NET Standard - C# library (.NET Standard)
FreeOpcUa - C++ library
Python FreeOpcUa - Python library
Eclipse Milo - Java
Full list can be found here.
OPC UA with Microsoft Azure cloud
I mentioned that Industry 4.0 is about integration and communication betweend hardware, software and the cloud. This is why Microsoft announced to invest huge amount of money (5 billion $) in the IoT solutions.
With reference to the Azure cloud platform, it offers dedicated services for IoT. Below I described some of them. It is worth to mentioned that all these services were build with commitment to the OPC UA standards.
Azure IoT Hub
The Azure IoT Hub provides reliable and secure communication between IoT devices. It also establishes bi-directional communication between each device and the Azure cloud. With Azure IoT Hub you can send messages:
- from a device to the cloud – e.g. temperature values provided by a sensor connected to an IoT device, sent for analysis, and
- from the cloud to a device – e.g. a message with software update payload.
Azure IoT Edge
Azure IoT Edge enables moving cloud analytics and custom business logic to IoT devices. The device can process logic directly without pushing data to the cloud.
The Azure IoT Edge runtime
The runtime enables custom logic and cloud logic on IoT Edge devices. It is located on the IoT Edge device, and executes management and communication operations. This can include maintaining Azure IoT Edge security standards on the device, installing and updating workloads or facilitating communication between the device and the cloud.
Module IoT Edge modules are units that consist of custom logic (for instance to analyze temperature) or cloud logic (like Azure Functions, Azure Stream Analytics and Azure Machine Learning). The Azure Container Registry stores these modules as Docker containers. When a module is being deployed on a device, the IoT Hub contacts the Azure IoT Edge runtime, which in turn pulls the image from the Azure Container Registry and starts running it.
The Azure IoT Edge runtime connects to Azure IoT Hub to facilitate communication between the Edge device and the cloud. If data has to be pushed to the cloud or a new module needs to be deployed on the device, it is done through the IoT Hub.
OPC UA Standard Devices
Microsoft works close with IoT devices manufacturers to provide easier way to deploy OPC UA standards and to easier integration with Azure cloud services. These all devices are compatible with OPC UA standards and ready for production usage. They can be used as a proxy between factory fields and the Azure cloud.
Industrial IoT Starter Kit
To make it easier to start integration and to verify your specific requirements there is production-ready starter kit created in cooperation between Microsoft, Softing and Hewlett Packard. It enables connecting your existing IoT devices with Azure cloud - it is working as a proxy between devices and the cloud. Of course there are other devices like that too - ready for production use.
As you can see in the picture above there are two important modules in this architecture:
OPC Proxy Module
OPC Proxy Module enables bi-directional communication between Azure cloud (Azure IoT Hub in this case) and IoT machines and devices. It means that with Proxy module we are able to collect data from the devices and send some data to them form the Azure cloud.
OPC Publisher Module
OPC Publisher Module integrates with existing IoT machines and devices, collects the data generated by them and then converts this data so it can be send to the Azure cloud.
It is important to mention that OPC has been based on a client/server architecture, and in the 2016 its architecture was enhanced with the inclusion of publish/subscribe to provide a solid infrastructure. This allows information integration from embedded devices to the cloud.
Industrial IoT Starter Kit device works as both: OPC Proxy and OPC Publisher.
I also recommend to see: Industrial Interoperability from Sensor to Cloud OPC UA Integration into Azure IoT Suite document
OPC UA Gateway Partners
You can see that UPC UA standards are adopted by increasing number of companies:
Microsoft Azure IoT Suite Connected Factory
Connected Factory is one of the IoT Solution Accelerators created and provided by Microsoft. The IoT solution accelerators are complete, ready-to-deploy IoT solutions that implement common IoT scenario.
Currently, there are four solution accelerators available for you to deploy:
In this article we will concentrate on the Connected Factory.
Below there is presented logical architecture of the Connected Factory. Please note that in this case Proxy module is used to communicate with siulated devices (there is bi-directional communication):
To collect telemetry data from the devices Publisher module is used (one way communication from the devices to the cloud):
I recommend to check great Microsoft documentation available here.
It is crucial to mention about additional security aspects here. As I mentioned before OPC UA is secure by default. Microsoft additionally made whole Connected Factory solution secured by default - it means that when adopting this solutuion customers do not have to worry about security. What is more Microsoft Security Development Lifecycle (SDL) is applied so many different security aspects are tested and verified constantly. Additional security services such like Microsoft Azure Security & Trust Center.
I recommend to watch the video called Azure Industrial IoT in details by Erich Barnstedt from Microsoft:
Microsoft Azure IoT protocol Gateway
There are some cases in which devices or field gateways might not be able to use one of these standard protocols and require protocol adaptation. Azure IoT Hub natively supports communication over the MQTT, AMQP, and HTTPS protocols and in case where this protocols cannot be used directly Microsoft Azure IoT Protocol Gateway is needed. The Azure IoT protocol gateway provides a programming model for building custom protocol adapters for variety of protocols.
More information about how Protocol Gateway works can be found here.
Additional resources and summary
Below there are some interesting resources which are worth to check:
I tried to include all helpful information in this article from many different sources but of course this is just a drop in the ocean. There is a lot more to learn and investigate to properly integrate cloud services with factories and IoT Enterprise solutions.