Currently, there are two protocols, or more precisely “protocol bindings”, as well as a mixed variant, combining the other two. All three variants can be used in parallel. An application programmer will only observe this due to the different URL he or she has to pass: opc.tcp://server for the binary protocol and http://server for WebService. Apart from that OPC UA works completely transparent with respect to the API. Thus, application developers can switch between protocol bindings without having to adapt or reimplement.
1. Binary protocol (UA binary)
2. Webservice (XML-SOAP)
3. Hybrid (UA-Binary via HTTPS)
The ANSI C stack provided by the OPC foundation supports the UA binary protocol as well as the hybrid protocol. It is expected that most products will communicate via the more efficient binary protocol and the hybrid protocol will ony be used in special cases, e.g. for communications via the internet and only one port (443) may be opened. The webservice implementation is reserved for applications where sufficient resources are available and webservices are absolutely necessary.