[DAIS-WG] interoperabilty between an AMGA client and an OGSA-DAI WSDAIR server.

Mike Jackson michaelj at epcc.ed.ac.uk
Wed May 27 07:48:27 CDT 2009


Hi Sunil,

On Wed, 27 May 2009, Sunil Ahn wrote:

> Dear Mike Jackson,
>
> I have tested interoperabilty between an AMGA client and an OGSA-DAI 
> WSDAIR server. 
> Please find the attached, the test result. (I will upload it to the wiki)
> It seems that they are very interoperable.

:-)

Here are my comments on yours...

3. SQLAccess::SQLExecute

"wsdair_access_cli does not understand "<"  which should be replaced by 
"<  "!!!"

&lt; is needed is submitting raw SOAP. However, if using standard clients 
you are right that < should/can be used.

4. SQLAccessFactory::SQLExecuteFactoryy [OK]

"CoreResourceList::GetDataResourceList [OK] but where is newly created 
indirect service ?????"

The new resource is an SQLResponse resource so cannot be accessed via the 
same web service as the original resource. You'd have to use use 
ResponseServiceCoreResourceListPT in your client.

6. SQLRowset::GetTuples [OK]

"second try with the same parameters : Error ???? Why ????"

By default the SQLRowset resource created by SQLRowsetFactory supports the
"Forward" access mode which means you can only get the tuples 
strictly in sequence (WSDAIR spec. p21).

Your initial query asks for rows with ID < 10. These are in the SQLRowset 
as follows:

Position: 0 1 2 3 4 5 6 7 8
ID      : 1 2 3 4 5 6 7 8 9
           ^

The cursor is at position 0. Your first request asks for 2 items from 
position 6. This means that you get back the items at positions 6 and 7 
(which are the rows with ID 7 and 8) and the cursor is now positioned at 
position 8.

Position: 0 1 2 3 4 5 6 7 8
ID      : 1 2 3 4 5 6 7 8 9
                           ^
So the next time round you can only ask for 1 item from position 8 (since 
there are only 9 items).

This is your example but using the OGSA-DAI WS-DAIR client:

$ java uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient -u 
http://localhost:20300/dai/services -d wsdai:ogsadai-120af395f5b -c 
sqlRowsetFactory
OK

$ java uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient -u 
http://localhost:20300/dai/services -d wsdai:ogsadai-120af395ef0 getTuples 
-c getTuples -start 6 -count 2
OK

$ java uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient -u 
http://localhost:20300/dai/services -d wsdai:ogsadai-120af395ef0 getTuples 
-c getTuples -start 6 -count 2
uk.org.ogsadai.service.axis.wsdai.dair.InvalidPositionFaultType

$ java uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient -u 
http://localhost:20300/dai/services -d wsdai:ogsadai-120af395ef0 getTuples 
-c getTuples -start 8 -count 1
OK

We also support the "Random" access mode. This requires providing a 
configuration document for the SQLRowset resource that requests this. This 
is an example:

<GetSQLRowsetFactoryRequest 
xmlns="http://www.ggf.org/namespaces/2005/12/WS-DAIR">
   <ns1:DataResourceAbstractName 
xmlns:ns1="http://www.ggf.org/namespaces/2005/12/WS-DAI">wsdai:ogsadai-120af395e6a</ns1:DataResourceAbstractName>
   <ns2:ConfigurationDocument 
xsi:type="ns3:SQLRowsetConfigurationDocumentType" 
xmlns:ns2="http://www.ggf.org/namespaces/2005/12/WS-DAI" 
xmlns:ns3="http://www.ggf.org/namespaces/2005/12/WS-DAIR">
     <ns2:DataResourceDescription>
       <desc xmlns="">Desc</desc>
     </ns2:DataResourceDescription>
     <ns2:Readable>true</ns2:Readable>
     <ns2:Writeable>false</ns2:Writeable>
     <ns2:TransactionInitiation>NotSupported</ns2:TransactionInitiation>
     <ns2:TransactionIsolation>NotSupported</ns2:TransactionIsolation>
     <ns2:ChildSensitiveToParent>Sensitive</ns2:ChildSensitiveToParent>
     <ns2:ParentSensitiveToChild>Sensitive</ns2:ParentSensitiveToChild>
     <ns3:AccessMode>Random</ns3:AccessMode>
   </ns2:ConfigurationDocument>
   <Position>0</Position>
   <Count>1</Count>
</GetSQLRowsetFactoryRequest>

Using the WS-DAIR client:

$ java uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient -u 
http://localhost:20300/dai/services -d wsdai:ogsadai-1
20af395f5b -c sqlRowsetFactory -accessMode random

$ java uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient -u 
http://localhost:20300/dai/services -d wsdai:ogsadai-120af395fa8 -c 
getTuples -start 6 -count 2
OK

$ java uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient -u 
http://localhost:20300/dai/services -d wsdai:ogsadai-120af395fa8 -c 
getTuples -start 6 -count 2
OK

> And can I have a OGSA-DAI WSDIAR Client with document/literal binding ?
> (It seems that the OGSADAI webpage only has a rpc/literal version.)

Yes, that's because our release is rpc/literal. Our document/literal 
version has never been officially released since we only have recently 
done document/literal for the purposes of this inter-op testing. But we'll 
release it after any bugs identified during inter-op testing have been 
resolved.

I've stuck a ZIP here. The client can be used in exactly the same way as 
the rpc/literal one so the doc on the WWW site can be used.

http://www2.epcc.ed.ac.uk/~michaelj/wsdair-1.0-axis-1.4-bin-doc.zip

Any problems - please let me know.

> I am planning to test interoperabilty between an AMGA server and an 
> OGSA-DAI WSDAIR cleint.

cheers,

mike


More information about the dais-wg mailing list