Hello All,
Once again I am emailing everyone what I just posted on
the Wiki regarding some issues with the Interop documentation. I deleted
the issues I posted previously that do not apply to the current
documentation.
Also, I wanted to bring an issue to everyone's attention:
There
is a potential race condition brought on by the fact that the ByteIOInterop
factory port type's DeleteResource operation is defined as a one-way
message.
-Karolina
Wiki
Update:
This section lists issues in v.12 of the ByteIO Interoperability Testing
Scenarios document and presents corrections. The issues are listed in the
order that they appear in the document and reference the specific
sections/pages they refer to.
(4.2) rbyteio:read operation (i)
The non-normative example of the SOAP elements in the body of the request
message does not match the specifications of test 4.2. The required
bytes-per-block is 12 not 6. The SOAP body of the requet message should be as
follows:
<rbyteio:read>
<rbyteio:start-offset> 20 </rbyteio:start-offset>
<rbyteio:bytes-per-block> 6 </rbyteio:bytes-per-block>
<rbyteio:num-blocks> 1 </rbyteio:num-blocks>
<rbyteio:stride> 0 </rbyteio:stride>
<rbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple"/>
</rbyteio:read>
(4.5) rbyteio:write operation (i) (5.3.1)
sbyteio:seekWrite operation'
"KysrKysr" is the value that corresponds to writing a block of bytes
equivalent to "++++++". This value is incorrectly given as
"KysrKys=" in Section 4.5 and 5.3.1. The corrected SOAP request
messages follow:
<rbyteio:write>
<rbyteio:start-offset> 20 </rbyteio:start-offset>
<rbyteio:bytes-per-block> 6 </rbyteio:bytes-per-block>
<rbyteio:stride> 0 </rbyteio:stride>
<rbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> KysrKysr </byteio:data>
</rbyteio:transfer-information>
</rbyteio:write>
<sbyteio:seekWrite>
<sbyteio:offset> 20 </sbyteio:offset>
<sbyteio:seek-origin>
http://schemas.ggf.org/byteio/2005/10/streamable-access/seek-origins/beginning
</sbyteio:seek-origin>
<sbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> KysrKys= </byteio:data>
</sbyteio:transfer-information>
</sbyteio:seekWrite>
The Interoperability Testing Specification repeatedly and
consistently uses wrong "transfer-information-type" XML elements in
both sample XML fragments, and in its interoperability requirements.
For example, the document gives as sample SOAP fragment:
<rbyteio:readResponse>
<rbyteio:transfer-information transfer-mechanism= ”http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple”>
MTExMjEzMTQxNTE2
</rbyteio:transfer-information>
</rbyteio:readResponse>
but it MUST read:
<rbyteio:readResponse>
<rbyteio:transfer-information transfer-mechanism=”http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple”>
<byteio:data>MTExMjEzMTQxNTE2</byteio:data>
</rbyteio:transfer-information>
</rbyteio:readResponse>
This mistake is spread all over the document.
Per Appendix C of the ByteIO Recomendation Document, a <byteio:data> tag
should surround data being passed. This applies to response messages of read
operations and request messages of write operations. (Request messages of read
operations and response messages of write operations should not contain data.)
The corrected SOAP body messages of the affected tests are listed below:
<rbyteio:readResponse>
<rbyteio:transfer-information transfer-mechanism="http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> MTExMjEzMTQxNTE2 </byteio:data>
</rbyteio:transfer-information>
</rbyteio:readResponse>
<rbyteio:readResponse>
<rbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> MDIwNDA2MDgxMA== </byteio:data>
</rbyteio:transfer-information>
</rbyteio:readResponse>
<rbyteio:readResponse>
<rbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> MDEwMjAzMDQwNTA2MDQwNTA2MDcwODA5 </byteio:data>
</rbyteio:transfer-information>
</rbyteio:readResponse>
<rbyteio:write>
<rbyteio:start-offset> 20 </rbyteio:start-offset>
<rbyteio:bytes-per-block> 6 </rbyteio:bytes-per-block>
<rbyteio:stride> 0 </rbyteio:stride>
<rbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> KysrKysr </byteio:data>
</rbyteio:transfer-information>
</rbyteio:write>
<rbyteio:write>
<rbyteio:start-offset> 22 </rbyteio:start-offset>
<rbyteio:bytes-per-block> 2 </rbyteio:bytes-per-block>
<rbyteio:stride> 4 </rbyteio:stride>
<rbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> KysrKysrKysrKw== </byteio:data>
</rbyteio:transfer-information>
</rbyteio:write>
<rbyteio:write>
<rbyteio:start-offset> 0 </rbyteio:start-offset>
<rbyteio:bytes-per-block> 6 </rbyteio:bytes-per-block>
<rbyteio:stride> 3 </rbyteio:stride>
<rbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> Pz8/Pz8/KysrKysr </byteio:data>
</rbyteio:transfer-information>
</rbyteio:write>
<rbyteio:append>
<rbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> KysrKysr </byteio:data>
</rbyteio:transfer-information>
</rbyteio:append>
<rbyteio:truncAppend>
<rbyteio:offset> 30 </rbyteio:offset>
<rbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> KysrKysr </byteio:data>
</rbyteio:transfer-information>
</rbyteio:truncAppend>
}
<sbyteio:seekReadResponse>
<sbyteio:transfer-information transfer-mechanism= "http://schemas.ggf.org/byteio/2005/10/transfer-mechanisms/simple">
<byteio:data> MTExMjEzMTQxNTE2 </byteio:data>
</sbyteio:transfer-information>
</sbyteio:seekReadResponse>
This section lists issues that need to be discussed to resolve ambiguity for
the Interoperability Fiesta.
Per Appendix A of the ByteIO Interoperability Testing Scenarios, the
ByteIOInterop::PortType defines the DeleteResource operation as a
one-way message. This results in a race condition if a resource is deleted and
then tested for successful deletion.