OPC UA Buch

Das erste OPC Unified Architecture Buch, geschrieben von Wolfgang Mahnke, Stefan-Helmut Leitner und Matthias Damm, einem der Gründer von ascolab.

OPC UA Implementierung

Die OPC Foundation stellt den Kommunikationsstack für ihre Mitglieder zur Verfügung. Die Entwickler von OPC-UA-Produkten haben die Möglichkeit zwischen drei Implementierungen zu wählen: C, .NET oder Java. Alle Stacks haben dieselbe Funktionalität, und, soweit es die Programmiersprachen erlauben, sind die APIs ähnlich in ihrer Anwendung. Die OPC Foundation pflegt diese Implementierung und integriert Neuerungen falls erforderlich. Mitgliedern steht auch der Source Code zur Verfügung. Die drei Implementierungen werden gegeneinander getestet um die Kompatibilität der Protokollimplementierungen sicherzustellen.

uaapplications

ANSI-C-Implementierung

Die ANSI-C-Implementierung wurde für eine möglichst breite Masse an Anwendungen entwickelt. Der Code entspricht dem C99-Standard, ist plattformunabhängig und wird von nahezu allen Compilern unterstützt. Beim Design wurde darauf geachtet, dass der C-Stack mit fest konfiguriertem Speicher arbeiten kann. Der Stack kann im Single-Threaded-Mode kompilliert werden und ist somit für embedded-Geräte mit wenig Ressourcen und vor allem vorhersehbarem Ressourcenverbrauch geeignet. Weiterhin lässt sich der Stack aber auch Multi-Threaded kompillieren und eignet sich dann ebenfalls für PC-basierte Anwendungen mit mehreren Cores. Der C-Stack benötigt eine Crypto-Library um die OPC UA Sicherheitsfeatures abzubilden. Hier wird derzeit OpenSSL verwendet.

.NET-Implementierung

Die .Net-Implementierung basiert nicht mehr auf dem C-Stack. Diese erste Implementierung (.NET-Wrapper) wurde mitlerweile vollständig ersetzt. D. h. anstelle des Socket-Handlings und Message-Chunkings wie im ANSI-C-Stack wird direkt das AsyncIO Interface des Microsoft .NET Framework verwendet. Das Deserialisieren erfolgt direkt in .Net und wird folglich direkt in .Net-Strukturen und -Objekte umgesetzt. Die SOAP-Implementierung verwendet das Microsoft SOAP Toolkit und WS Secure Conversation (mindestens Framework 3.5 SP1 erforderlich). Der .NET-Stack ist somit durchgängig auf Microsoft-Technologien aufgebaut und vollständig in managed Code geschrieben.

Java-Implementierung

Der Java Stack implementiert das Binär-Protokoll und ist vollständig in Java programmiert. Es wird mindestens das Java Runtime Environment 1.6 benötigt und es wird Sun/Oracle empfohlen. Zur Umsetzung der Sicherheitsfeatures von OPC UA werden weitere Bibliotheken benötigt (Bouncy Castle).

Weitere Implementierungen in anderen Sprachen sind denkbar, scheitern jedoch am Vorhandensein ausreichender SOAP Toolkits um die aufwändigen Sicherheitsfeatures von WS Secure Conversation generieren zu können. Eine manuelle Implementierung ist möglich aber ungleich aufwändiger.