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 APIs

Für UA Entwickler wird es die Möglichkeit geben, direkt auf einer C API aufzusetzen, einer komfortableren C++ API oder einer .NET API. Alle APIs werden die selbe Funktionalität unterstützen, und soweit es die Programmiersprachen erlauben, ähnlich in der Anwendung sein.

Der Kommunikationsstack und diese APIs werden von der OPC Foundation zur Verfügung gestellt.

.Net Implementierung

Die .Net Implementierung verwendet nur den untersten Teil des ANSI C Stacks und implementiert den restlichen Stack nativ in .Net. D.h. nur das Socket-Handling und Message-Chunking wird vom ANSI C Stack übernommen, das Deserialisieren erfolgt direkt in .Net und wird folglich direkt in .Net Strukturen und Objekte umgesetzt. Dieses Vorgehen ist performanter als erst in eine C Struktur zu deserialisieren und diese anschließend in eine .Net Struktur zu kopieren.

JAVA Implementierung

Verschiedene Prototypen für JAVA sind derzeit in Entwicklung. Dabei gibt es wie auch bei .Net grundsätzlich 3 Varianten. Momentan kann man schwer abschätzen, welche die schnellste Variante ist.

1. Die momentan (im Sinne von Entwicklungszeit) schnellste Variante ist, den kompletten ANSI C Stack zu verwenden und diesen via JNI zu kapseln.

  • Nachteil: man verliert damit die einfache JAVA Portabilität. Der Stack kann zwar auf verschiedene Betriebssysteme portiert werden, muss dazu aber neu kompiliert werden.
  • Nachteil: die Daten müssen an der JNI Grenze kopiert werden.
  • Vorteil: man nutzt die Geschwindigkeitsvorteile von C bei der Deserialisierung.
2. Man setzt wie bei der momentanen .Net Implementierung direkt auf der Netzwerkschicht auf und deserialsiert in JAVA.
  • Vorteil: man spart sich einmal Umkopieren.
  • Nachteil: weiterhin abhängig vom C Stack.
3. Komplette Implementierung in JAVA.
  • Vorteil: beste Portabilität.
  • Nachteil: größter Aufwand.
Alternativ gibt es noch die einfache Variante nur das WebService Protokoll zu unterstützen. Dazu benötigt man ein SOAP Toolkit welches auch WS-Security unterstützt.