|
Compare Xi / OPC .NET3.0 to other OPC Specifications
The Express Interface was developed by a group of companies to
provide a .NET-based migration path from COM-based systems to
Microsoft .NET and Windows Communication Foundation (WCF). The OPC
Foundation adopted Xi as part of the OPC
Foundation umbrella because many OPC community requested a web
services based standard with the same functionality as the COM based
OPC specifications.
The following table compares the design goals and main features
of the Xi and OPC specifications.
|
Feature
|
Xi
|
DA, HDA, AE
|
XML DA |
UA
|
|
Communication
|
Based on WCF with all WCF bindings allowed.
|
DCOM
|
XML, SOAP |
UA specific communication stack with .NET implementation and a C
implementation for other platforms.
|
|
Platforms
|
Microsoft only
|
Microsoft only
|
multi-platform |
Designed for multi-platform use
|
|
Local servers
|
Servers on the same machine can be accessed with the fast
Named-Pipe binding
|
COM
|
Local server are also accessed with http
|
Access through the UA stack based on TCP
|
|
Server data structure
|
Hierarchical structure with provisions for relative structures to
simplify the handling of huge structures.
|
Hierarchical structure
|
Hierarchical structure |
Complex network structure that can model almost anything.
|
|
Server Functionality |
DA, HDA and A&E |
Either DA or HDA or A&E |
DA |
DA, HDA, A&E and more |
The DA/HDA/AE specifications base on DCOM
communication. DCOM was the state of the art Microsoft communication
platform when the OPC specifications were created. Microsoft moved
from DCOM to web services but DCOM is still supported in all Windows
operating systems. DCOM is efficient for local server access but
it's difficult to configure for remote server access and problematic
for communication through firewalls.
The OPC specification define DCOM interfaces with methods and data
structures.
The XML DA specification was created in 2003 as
a web service SOAP messages specification with the functionality of OPC DA
(Data Access). The XML DA specification hasn't been widely accepted,
mostly because of performance and security concerns.
Since the publication of Xi there is interestingly an increase in
the use of XML DA. Developers appear to realize that XML DA can be
implemented on WCF instead of .NET2 web services and take advantage
of the wide range of communication and security options offered by
WCF. However, security is not enforced and performance optimized as
in Xi.
The development of XML DA clients is real simple. The communication
is state-less, a client can e.g. use nothing but the Read method.
More information can be found at
http://advosol.com/c-2-opc-xml-webservices.aspx.
The UA specification addressed the XML DA
performance and security
deficiencies with a UA specific communication stack that is
suitable for implementation on Windows and non-Windows platforms. UA has
the combined functionality of DA (Data Access), HDA (Historical Data
Access), A&E (Alarms and Events) and a complex network data
structure that allows UA servers to model a wide range of
applications.
The specification defines the messages that can be exchanged between
client and server.
The Xi specification is based on the .NET WCF
(Windows Communication Foundation) for web services based communication and
is designed to provide a .NET interface that is easy to wrap to
and from OPC DA (Data Access), OPC HDA (Historical Data), OPC A&E (Alarms &
Events).
WCF implements multiple web services standards to provide the
performance and security required for different applications. The communication can be configured for
different protocols (http, tcp, pipes) and different security levels for
authentication and encryption.
The specification defines WCF contracts. These are .NET interface
definitions that are implemented in the server. WCF provides the tools to
create client proxy classes and a WSDL document describing the interface as
a web service.
Xi / UA Structure Comparison
 |
Xi bases on WCF and uses the communication options and
security levels provided by WCF.
UA is designed for multi-platform use and cannot depend on
features of a particular operating system. UA needs to
implement a communication stack down to the TCP/IP or HTTP
level, that can be expected to be available on all
platforms.
The Xi Client library consists of the WCF proxy layer and
optionally additional layers. The client application
interface is not standardized, allowing vendors to provide
implementation tailored for specific needs and preferences.
The UA client library interfaces the UA communication stack
and provides a common interface for the different modes of
communication. The client application interface is not
standardized.
The Xi Server Library implements the WCF contracts. A server
base layer implementation is available to the public
together with the specification.
The UA server library is provided by the OPC Foundation to
member companies in form of the UA SDK. |
Xi on non-Windows platforms
The Xi specification is focused on the Windows platform and based
on WCF, the Windows Communication Foundation.
WCF is a superset of the web services specifications and the
basicHttp WCF communication binding complies with standard web
services.
Xi clients or servers can be implemented on any platform that
supports standard web services, but the communication is restricted
to HTTP/SOAP.
Client libraries and server toolkits are available for the Windows
platform but may not be for a particular non-Windows platform. In
this case the client or server has to be developed on the web
services interface. This requires a significantly higher development
effort.

Xi / UA Data Structure comparison
The Xi specification is
designed for the combined functionality of the classic OPC
DA, HDA, A&E specifications and uses the same structure as
the classic OPC servers. Objects are organized in a
hierarchical structure and Xi offers browsing with starting
points anywhere in the hierarchy and with strong filter
capabilities. DA, HDA and A&E instances can be linked to the
same object.
|
UA servers organize the data objects in a
network structure. Each object can reference other objects
to define relations.
Complex object structures can be modeled.
Views can be defined with a subset to simplify the structure
for particular clients. |
 |
 |
|