A UA application, no matter if client or server, is composed of several layers (see figure below). The following tasks are in the responsibility of the UA stack:
The operating system specific adaption is realized centrally in a platform layer (portability layer). Therefore, the .NET UA stack uses the .NET framework 3.5 (or higher) and the Java UA stack requires Java Runtime Environment (JRE) 1.6 (or higher).
The dark blue parts of the figure correspond to the former COM proxy/stub and are provided by the OPC Foundation. The portability layer of the ANSI C stack allows to port the stack to other platforms. A Windows platform layer (32 bit, IPv4, x86) is provided by the OPC Foundation. Other platform layers, e.g. for IPv6, 64 bit, Linux, QNX, vxWorks, WindowsCE etc. are available from commercial suppliers.
Software Development Kit (Toolkit)
In addition to the OPC UA stack of the OPC Foundation, which solely contains proxy/stub functionality and only provides a low-level interface, more, partly generic, functionality is needed, especially on server side. This “glue code” between application and UA stack is typically encapsulated in libraries and provides a high-level interface and convenience functions for the application. SDKs or toolkits are offered by several OPC Foundation members (e.g. Unified Automation) and contain, apart from the libraries, examples, tutorials, and documentation as well as professional support. The SDKs contain the UA stack as well and thus provide full access to OPC UA technology for non-members of the OPC Foundation.
First prototypes have already been shown on the OPC UA DevCon in Munic in October 2006. The company ascolab GmbH, which has also developed the ANSI C stack for the OPC Foundation, presented several prototypes and demonstrated the interoperability between a Windows/.NET UA client and a Linux UA server.
In addition to that, different UA servers have been presented, on a Beckhoff PLC based on Windows XP embedded as well as on an embedded test board (shown by EUROS Embedded Systems GmbH) based on the real time operating system EUROS.
In 2008, the first OPC UA enabled products were availble on the market. One of the first was the product SimaticNET by Siemens AG, a UA server for coupling Simatic S7-300 and S7-400. The OPC UA Server of Beckhoff integrated in TwinCat was also published in 2008, as well as the first OPC UA client products from the field of HMI/SCADA (e.g. Certec atvise).