This graphic gives a general (simplified) overview on the different components of a typical SDK delivery. The SDK mainly consists of the SDK libraries and the UA Stack, which again consists of the Stack-Core and the Stack-PL (platform layer). The Stack requires third party library “OpenSSL”, The SDK may require “LibXML2”.
The Unified Automation SDKs (except .NET) are generally written platform independent. The SDK libraries only use functions from the UA Stack. The Stack Core is also platform independent code. All platform specific functions needed by the UA Stack are encapsulated in a so called platform layer. This layer handles all adoptions to specific CPU architecture or adoptions to operating system (OS) specific behavior, like sockets, threads, semaphore, timers, memory allocation, etc., which might differ from one OS to the other.
The choice of your platform depends on the target you want to run the final product on. Unified Automation distinguishes between three types of platforms, depending on the level of testing and support.
Find out more on available platforms here.
The UA Stack contains an abstracted interface to be able to use several different crypto libraries or even hardware encryption. Customers of the source SDK can connect any crypto and PKI provider they may prefer. The current implementation, as shipped by Unified Automation, uses the well known open source library OpenSSL (www.openssl.org). This library is used by hundreds of products and supported by a large group of developers, it is publicly available and it is portable, platform independently written in ANSI C code.
The C++ Server SDK uses an XML format to read server’s configuration parameters. To get the configuration the server needs an XML library capable of DOM parsing. The current implementation, as shipped by Unified Automation, uses the well known open source library LibXML2 (www.xmlsoft.org). You can use any other library containing a DOM parser or you could even use an ini-file to store the server’s configuration parameters. Doing so will save memory footprint. Note: Only the C++ Server currently uses the XML library.
When choosing your platform you should be aware of the availability of the third party libraries (OpenSSL and LibXML2) for that specific platform. The third party libraries are in the customers responsibility and are not part of the SDK products of Unified Automation. When purchasing additional platform layers at Unified Automation, third party libraries are not included.