Build 1.01.318.0

[This is preliminary documentation and is subject to change.]

The UA Software Development Kit (SDK) is a collection of libraries, applications and source code that allow developers to build UA applications. Figure 1 illustrates the interfaces between the SDK, the network and the applications.

Software Interfaces in the UA SDK
Figure:1 – Software Interfaces in the UA SDK

The Stack API encapsulates the details of the wire protocol behind a set of classes and interfaces. These interfaces implement all of the UA services defined in [UA UASPECPart 4] as method calls. Applications which are built with the Stack API do not have any direct dependencies on the wire protocol and support all protocols which are supported by the Stack.

Each wire protocol used in UA is a combination of a messaging encoding, a security protocol and a transport protocol. These combinations are called Stack Profiles and they are defined in [UA UASPECPart 7]. The Stack makes use of features provided by the development environment whenever possible (e.g. the Stack uses the WS-Secure Conversation implementation which is a part of .NET Framework 3.0).

The Stack provides an implementation of the wire protocol(s) plus a variety of helper classes but does not contain any application level code. For this reason the UA SDK also provides toolkits which implement features which are common to all UA applications. These toolkits are built on top of the Stack API and expose a second API (called the Toolkit API). The Toolkit API is designed ease of use and applications which use it will be tightly coupled to the Toolkit. The Toolkit API for the Client is also called the UA Client API. Similarly, the Toolkit API for a Server is called the UA Server API.

The COM Proxies and Wrappers are UA Applications built with the Toolkits that use COM interfaces to communicate with existing OPC COM applications. The Proxies are COM Servers that allow COM Clients to communicate with UA Servers. The Wrappers are COM Clients that allow UA Clients to communicate with COM Servers. Note that the COM wrappers/proxies are examples of applications built with the SDK and not part of the SDK itself.

Figure 2 illustrates how UA applications built with the SDK interact with each other over a network.

Interactions between UA Applications built with the SDK
Figure:2 – Interactions between UA Applications built with the SDK

A UA Local Discovery Server (LDS) is a specialized application which allows remote Clients to discover the UA Servers that exist on a single machine. All UA Servers running on a machine should register with the UA Local Discovery Server using the Stack API. The UA Local Discovery Server is a standalone executable that is distributed with the SDK.