next up previous contents
Next: Performance and Scalability of Up: Compatibility and Interoperability of Previous: Compatibility Issues Found During   Contents

Interoperability between Different OPC XML-DA Implementations

As denoted above, a practical test may also produce valuable information about compatibility and interoperability. All tests were done for simplicity reasons on PC hardware instead on the IGUANA hardware. As a first step, a simple client test was done. The OPC foundation provides various sample OPC servers, which may be used for testing purposes. As denoted above, client functionality was implemented in the design, which was used to test all available OPC operations as shown in listing 37. Most of these tests worked immediately149, interoperability issues were not found.

language=C
\begin{lstlisting}[caption={Creating a Simple OPC Typecode}
,label=ex_sample_cl...
...int xda.Read(ItemContainer(ItemName='Static.Simple Types.Int'))
\end{lstlisting}

The next step was to test the IGUANA OPC server, which was done with an OPC test client150 and a simple test setup, as depicted in figure 71.

Figure 71: Interoperability Test Setup
\begin{figure}\centering
\includegraphics[scale=0.7]{graphics/devel-test1.eps}\end{figure}

The test results of all available OPC XML-DA operations were as follows:

GetStatus:
This operation worked without any problems.

Read/Write:
The read operation also worked right away, but writing to OPC items returned errors. After thoroughly examining the SOAP messages, it turned out that the test client expected an empty OPC item as a result, while the IGUANA OPC client returned an empty XML element. As denoted above, the OPC XML-DA specification defines the reply message of write operations very loosely, which led to this incompatibility problem.

Subscription:
The same incompatibility problem was also found in the AddSubscription operation: Subscribing to an object did not return any items, which led to an error in the test client. The SPR and CancelSubscription operations worked without any problems, buffering, deadband and the advanced subscription architecture also worked as expected.

Browse:
The browse operation of the test client tried to retrieve certain properties which were not available from the server. This led to erroneous client behavior. Apart from this problem, browsing worked properly.

GetProperties:
This operation also worked without any problems.

This short server test shows that loose definitions in the OPC XML-DA specification lead to multiple interpretations which may result in incompatible implementations. Nevertheless, most of the OPC operations worked as expected.


next up previous contents
Next: Performance and Scalability of Up: Compatibility and Interoperability of Previous: Compatibility Issues Found During   Contents
Hermann Himmelbauer 2006-09-27