OPC

Introduction
OLE for Process Control (OLE = Object Linking and Embedding)  is a series of standards and specifications for industrial telecommunication. It is now known under the name of OPC (Open Platform Communications). The name has changed to reflect the applications of OPC technology for applications in building automation, discrete manufacturing, process control and many others.

Usefullness
The OPC Specification was based on the OLE, COM, and DCOM technologies developed by Microsoft for the Microsoft Windows operating system family. It was designed to be use in process control and manufacturing automation applications to facilitate interoperability. The most common OPC specification is OPC Data Access, which is used to read and write real-time data.

OPC is designed to provide a common bridge for Windows-based software applications and process control hardware. The method of accessing field data is always the same, regardless of the source or type of data. It was designed to reduce the amount of work from hardware manufacturers and their software partners to developp an Human-Machine Interface.

OPC Unified Architecture (UA)
The OPC Unified Architecture (UA), released in 2008, is a platform independent service-oriented architecture that integrates all the functionality of the individual OPC Classic specifications into one extensible framework.

This multi-layered approach accomplishes the original design specification goals of:
 * Functional equivalence: all COM OPC Classic specifications are mapped to UA
 * Platform independence: from an embedded micro-controller to cloud-based infrastructure
 * Secure: encryption, authentication, and auditing
 * Extensible: ability to add new features without affecting existing applications
 * Comprehensive information modeling: for defining complex information

Dependencies
Current technology mapping options include:
 * TCP/IP for the transport/network layers
 * HTTP/TCP/IP for transport/network layers
 * TLS for security

Architecture
OPC-UA consists of multiple OPC-UA-Clients connected to a OPC-UA-Server. A OPC-UAServer holds an address space, which is a collection of data objects organized in a linked graph. Requests originate at a OPC-UA-Client and are sent to an OPC-Server; the OPC-Server processes the request, and sends a reply back to the OPC-UA-Client. Requests are addressed to a specific data object in the server’s address space. Structured data is used for the request and reply.