OPC UA Interoperability
What is OPC UA, Industry 4.0 and the Interoperability Challenge
There may be many definitions for what Industry 4.0 is. Some say it’s about improving productivity; some say it’s about mass customization, our opinion is that Industry 4.0 is all about new business models. Why do we say that “Industry 4.0 is all about new business models”? In our experience interacting with customers across the globe we have come to realize that while ideas about improving productivity might get you a meeting with a customer, no customer is going to start a project merely for incremental improvement of existing process. Also, technologies like IIoT, AI, AR and Block-chain have reached a stage where they can be combined in ways where we can have disruptive improvement to a business model and customers are waiting to start such project.
One of the biggest challenges faced by organizations when exploring new business models is Interoperability.
The infrastructure and systems used for delivering essentials such as food, utilities, oil and gas have been developed over the last 100 years. These systems have been semi-automated in the last 30 years and cannot be replaced in one day. Enterprise systems are sophisticated like Enterprise Resource Planning (ERP) and Manufacturing Execution Systems (MES). The challenge is how to connect the factory floor architectures with the enterprise systems.
Having said that, the solution to Interoperability problem is around the corner. There is a customer pull as people who are used to smartphones and just-in-time services begin to expect more such experiences from the products and services they use. In line with these expectations, several large companies are coming together to find new ways to satisfy their customers.
As part of these initiatives there is effort to converge Information Technologies such as ERP, CRM, etc., and Operational Technologies such as PLCs, SCADA, etc. There is broad consensus that Open Platform Communication Unified Architecture (OPC UA) can be the important glue to deliver this convergence and address the Interoperability challenges that block the take-off of Industry 4.0.
No Industry 4.0 without OPC UA
Industrie 4.0 was one of the future projects adopted in the “Action Plan High-tech strategy 2020” by the German Federal Government in 2010. This encouraged the business associations BITKOM, VDMA and ZVEI to establish the Platform Industrie 4.0 in 2013  .
In the year 2015, the Platform Industrie 4.0 created the Reference Architecture Model Industrie 4.0 or RAMI 4.0 for standardizing the model that would be used to realize Industry 4.0 applications. As part of the overall architecture of RAMI 4.0, OPC UA is recommended as the one and only standard for realizing the communication layer and this made it clear that there will be no Industry 4.0 without OPC UA.
History – from OPC to OPC UA
As the information technology wave took over in the 90s, the need for data from the machine world also rose. Automation vendors, like Fisher-Rosemount, Intellution, Opto 22 and Rockwell software formed a task group to develop standards for data access. This led to the formation of OPC Foundation in 1996 as a formal organization to handle the key aspects of interoperability, compliance, validation and certification of OPC technology.
OPC classic provided separate specifications for exchanging process data, alarms and historical data. OPC classic was operating at higher layers and not at the field level machine-to-machine communication layer. Some limitations with OPC classic were its platform dependence (Microsoft DCOM), vulnerability to attacks, data inconsistencies and inadequate data models.
In 2008, OPC Foundation integrated all the functionality of OPC classic into one extensible framework which is platform independent and brought in a Service Oriented Architecture, that is now known as OPC UA. OPC UA has emerged as the next generation of OPC classic and can exist both in the factory floor and the enterprise. OPC UA provides an easier way for modeling of objects available around the factory floor and making them available to enterprise systems. OPC UA is a more secure and reliable mechanism for information exchange between enterprise systems. OPC UA operates on different hardware platforms and operating systems which provides interoperability among devices from multiple vendors.
At the SPS IPC Drives fair 2018 in Nuremberg/ Germany the OPC Foundation officially launched the Field Level Communications (FLC) initiative that aims for an open, unified, standards-based Industrial Internet of Things (IIoT) communication solution addressing all requirements of industrial automation in discrete manufacturing and process industry. This initiative will enable vendor independent end-to-end interoperability of field level devices for all relevant industry automation use-cases requiring safe, secure and deterministic information exchange. This includes horizontal integration for controller-to-controller (machine-to-machine M2M) communication and vertical integration from sensors/actuators and controllers in the field to IT systems or the cloud and vice versa  .
OPC UA Layered Architecture
OPC UA is based on an extensible framework with a multilayered architecture to accomplish these design goals:
- Functional Equivalence: Build on top of OPC Classic specification
- Platform Independence: Small embedded microcontrollers to cloud-based deployments
- Secure Communication: Security built in from the ground up and firewall friendl
- Extensible design: Add new features without affecting existing applications
- Comprehensive Information Modeling: Industry vertical interoperability requirements 
OPC UA is functionally equivalent to OPC Classic while also providing additional capabilities such as discovery of available OPC UA servers, hierarchical representation of data as an address space, access controlled read/write of data, subscriptions to efficiently monitor data change, event notifications and remote method calls .
OPC UA can be run on a wide variety of hardware platforms such as x86 PCs, cloud servers, programmable logic controllers (PLCs) and small micro-controllers running a variety of operating systems such as Windows, OSX, Android and Linux distributions  .
OPC UA has security built in from the ground up and supports session encryption at various encryption levels, message signing to verify origin and integrity of messages along with sequencing of packets to protect from message replay attacks. OPC UA also supports authentication at the UA client and server (application/system level) and granular access control at the user level. Furthermore, all user/application/system activities can be logged for audit requirements  .
OPC UA provides a multi-layered framework that supports incorporation of newer technology components in future while maintaining backward compatibility for existing products. This may include leveraging newer developments such as transport protocols, security algorithms, encoding standards, etc  .
Comprehensive Information Modeling
Industry 4.0 applications will require modeling of complex multi-layer structures (needed to present information and not merely data) which is possible with the object-oriented capabilities of OPC UA and its information modeling framework. The rules and building blocks that are required to model and expose an information model using OPC UA are defined in this information modeling framework. OPC UA already defines several generic core models that can be applied in many industries. For the scenarios where generic models are insufficient, OPC UA also allows customer/industry specific information models to be built on top and exposed via standard mechanisms  .
Information Model Access Mechanisms
OPC UA supports these types of access to information models:
- Browse model instances and their references
- Read/write current and historical data
- Notify data change and events
- Execute methods
All the above types of information model access are possible when using Client/Server communication mechanism via services supported by the OPC UA Server. In this case, the OPC UA Server receives requests from the OPC UA Client, processes those requests and sends the response with the results back to the OPC UA Client. It is to be noted that Client/Server communication (which is for a single client with guaranteed delivery) is resource intensive and better suited for one-to-one configuration, diagnostics or low frequency access requirements.
On the other hand, for applications that require many-to-many and/or high frequency access requirements, Publish-Subscribe (PubSub) provides an alternative and optimized communication mechanism for data and event notification. In this case, requests and responses are not exchanged between Clients and Servers. Rather, OPC UA Publishers send messages to a message broker and OPC UA Subscribers subscribe to and receive messages of interest from the message broker  .
References: https://ec.europa.eu/digital-single-market/en/blog/implementation-industry-40-strategy-german-plattform-industrie-40  https://opcfoundation.org/wp-content/uploads/2017/11/OPC-UA-Interoperability-For-Industrie4-and-IoT-EN.pdf  https://opcfoundation.org/wp-content/uploads/2019/01/20181212-OPCF-GAM2018-v2.pdf https://twitter.com/opcfoundation/status/1067452359788425217 https://twitter.com/opcfoundation/status/1067452359788425217 https://www.at-aandrijftechniek.nl/algemeen/opc-foundation-verenigt-belangrijkste-industriele-automatiseerders/59139/  https://opcfoundation.org/about/opc-technologies/opc-ua/
Interested to know more about OPC UA on different platforms?