[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
"< "!!!"
< 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