C++ Based OPC UA Client/Server/PubSub SDK
Starting Points for Users of the SDK

Depending on the system that needs to be exposed as OPC UA Server with this SDK, different levels of the SDK can be used for integration and different parts of the sample code can be used as starting point.

The following figure shows the two functional levels of the SDK. The first level implements all common code necessary for an OPC UA Server. The second level provides base and helper classes for implementing the interfaces required by the first level. The second level provides a toolkit for rapid OPC UA server development.

Functional Levels

The interfaces separating the common SDK functionality are expecting that the underlying system has already implemented the functionality that is necessary to manage the nodes in the system and to access the system data with common functionality like monitoring values with different update rates. Such systems can be existing OPC Servers or SCADA systems having a lot of the OPC functionality already implemented. These interfaces are described more detailed in the class reference.

If the underlying system can not provide the necessary functionality, the SDK provides base and helper classes to implement the interfaces defined by the SDK. An important part of these classes are operating on a node model that is based on a set of generic interfaces and base classes for creating nodes and references in the address space. These classes allow the creation of a full featured OPC UA information model. The interfaces and classes used for this model are described in the address space module.

Not all of the SDK defined interfaces and interface methods need to be implemented by the SystemIntegration part of an OPC UA Server product. This depends on the functionality that should be exposed from the underlying system. If the product wants to support only a base set of functionality like the Data Access part of OPC UA, only the interfaces ServerConfig, IOManager and a small subset of the NodeManager need to be implemented. Possible use cases and configuration options are described with different samples.

Implementing SDK Interfaces (Using SDK Level)

The following interfaces must be implemented by the system integration to be able to provide OPC UA functionality for the Standard Server Profile. The corresponding callback interfaces are used to deliver the results. See Tutorial for SDK Level for an example.

The following optional interfaces can be implemented by the system integration to be able to provide additional OPC UA functionality. The corresponding callback interfaces are used to deliver the results.

Using Generic Model and Base Classes (Using Toolkit Level)

The following classes can be used to create the address space in memory using a generic address space node model. The corresponding base classes for NodeManager and IOManager reduce the development effort a lot.