This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/wiki/do/viewPage/projects.dais-wg/wiki/DAIAMGAInterop at Fri, 04 Nov 2022 20:51:21 GMT SourceForge : View Wiki Page: DAIAMGAInterop

Project Home

Tracker

Documents

Tasks

Source Code

Discussions

File Releases

Wiki

Project Admin
Search Wiki Pages Project: DAIS-WG     Wiki > DAIAMGAInterop > View Wiki Page
wiki2141: DAIAMGAInterop

Notes on AMGA and OGSA-DAI inter-op

SOAP encoding etc

OGSA-DAI WS-DAIR and rpc/literal

<SQLExecute xmlns="">
  <ns1:SQLExecuteRequest xmlns:ns1="https://www.ogf.org/namespaces/2005/12/WS-DAIR">
    <ns2:DataResourceAbstractName xmlns:ns2="https://www.ogf.org/namespaces/2005/12/WS-DAI">
      wsdai:BookDB
    </ns2:DataResourceAbstractName>
    <ns1:SQLExpression>
      <ns1:Expression>SELECT * FROM dair_littleblackbook WHERE id &lt; 10;
      </ns1:Expression>
    </ns1:SQLExpression>
  </ns1:SQLExecuteRequest>
</SQLExecute>
OGSA-DAI WS-DAIR and document/literal
<SQLExecuteRequest
    xmlns="https://www.ogf.org/namespaces/2005/12/WS-DAIR">
  <ns1:DataResourceAbstractName xmlns:ns1="https://www.ogf.org/namespaces/2005/12/WS-DAI">
    wsdai:BookDB
  </ns1:DataResourceAbstractName>
  <SQLExpression>
    <Expression>
      SELECT * FROM dair_littleblackbook WHERE id &lt; 10;
    </Expression>
  </SQLExpression>
</SQLExecuteRequest>
AMGA WS-DAIR and document/literal
<wsdair:SQLExecuteRequest>
  <wsdai:DataResourceAbstractName>Metadata</wsdai:DataResourceAbstractName>
  <wsdair:SQLExpression xsi:type="wsdair:SQLExpressionType">
    <Expression>SELECT ....</Expression>
  </wsdair:SQLExpression>
</wsdair:SQLExecuteRequest>
AMGA reported that OGSA-DAI client to AMGA (rpc/literal) server failed due to <SQLExecute xmlns=""> but was OK with
<SQLExecute xmlns="https://www.ogf.org/namespaces/2005/12/WS-DAIR">
The namespace declaration xmlns="" is wrong in Mike's view.

Likewise AMGA client to OGSA-DAI server it failed due to <Expression>. When they changed it to <wsdair:Expression> it was fine. So there may be problems with implicit versus explicit namespace prefixing.

Note the element prefixing:

                         AMGA     OGSA-DAI
SQLExecuteRequest        Explicit Implicit
DataResourceAbstractName Explicit Explicit
SQLExpression            Explicit Implicit
Expression               Implicit Implicit
This may give rise to inter-op issues depending on how naively or not the SOAP messages from an inter-op client are defined as well as how Apache Axis or gSOAP handle implicit versus explicit namespaces.

SQL-92

With regards to SQL-92 and, for example, the NIST test suite, OGSA-DAIdid no tests specific to SQL-92 conformance. OGSA-DAI WS-DAIR does not parse or analyse the content of an SQL statement - it just passes it directly on to the database. The only exception to this is a check is made to see if the statement starts with CALL so whether the statement is a stored procedure call can be determined.

Brief OGSA-DAI document/literal client to AMGA server inter-op tests

List resources:

$ java uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient -u http://150.183.250.215:8844/ -c list
On wire:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" 
xmlns:wrs="http://java.sun.com/xml/ns/jdbc" xmlns:ns1="https://www.ogf.org/namespaces/2005/12/WS-DAIR/SQLAccess" 
xmlns:ns2="https://www.ogf.org/namespaces/2005/12/WS-DAIR/SQLAccessFactory" xmlns:ns3="http://www.ggf.org/namespaces/2005/12/WS-DAIR/SQLResponse" 
xmlns:ns4="https://www.ogf.org/namespaces/2005/12/WS-DAIR/SQLResponseFactory" xmlns:ns5="http://www.ggf.org/namespaces/2005/12/WS-DAIR/SQLRowset" 
xmlns:wsdair="https://www.ogf.org/namespaces/2005/12/WS-DAIR" xmlns:ns6="http://www.ggf.org/namespaces/2005/12/WS-DAIR/CoreDataAccess" 
xmlns:ns7="https://www.ogf.org/namespaces/2005/12/WS-DAIR/CoreResourceList" xmlns:wsdai="http://www.ggf.org/namespaces/2005/12/WS-DAI">
<SOAP-ENV:Body>
<wsdai:GetResourceListResponse>
</wsdai:GetResourceListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Client prints:
Base Services URL: http://150.183.250.215:8844/
Command: list
Data resource type (applies only to list resources, resolve and destroy operations): access
No resource(s) found.
Get SQL property doc. Use wsdai:Metadata as our client expects resource names as URIs. The prefix is ignored though as we still get back a SOAP response.
$ java uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient -u http://150.183.250.215:8844/ -c sqlPropertyDoc
On wire:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" 
xmlns:wrs="http://java.sun.com/xml/ns/jdbc" xmlns:ns1="https://www.ogf.org/namespaces/2005/12/WS-DAIR/SQLAccess" 
xmlns:ns2="https://www.ogf.org/namespaces/2005/12/WS-DAIR/SQLAccessFactory" xmlns:ns3="http://www.ggf.org/namespaces/2005/12/WS-DAIR/SQLResponse" 
xmlns:ns4="https://www.ogf.org/namespaces/2005/12/WS-DAIR/SQLResponseFactory" xmlns:ns5="http://www.ggf.org/namespaces/2005/12/WS-DAIR/SQLRowset" 
xmlns:wsdair="https://www.ogf.org/namespaces/2005/12/WS-DAIR" xmlns:ns6="http://www.ggf.org/namespaces/2005/12/WS-DAIR/CoreDataAccess" 
xmlns:ns7="https://www.ogf.org/namespaces/2005/12/WS-DAIR/CoreResourceList" xmlns:wsdai="http://www.ggf.org/namespaces/2005/12/WS-DAI">
<SOAP-ENV:Body>
<wsdair:SQLPropertyDocument xsi:type="wsdair:SQLPropertyDocumentType">
<wsdai:DataResourceAbstractName>Metadata</wsdai:DataResourceAbstractName>
<wsdai:DataResourceManagement>ExternallyManaged</wsdai:DataResourceManagement>
<wsdai:DatasetMap xsi:type="wsdai:DatasetMapType">
<wsdai:MessageQName>wsdair:SQLExecute</wsdai:MessageQName>
<wsdai:DatasetFormatURI>http://java.sun.com/xml/ns/jdbc</wsdai:DatasetFormatURI>
</wsdai:DatasetMap>
<wsdai:ConfigurationMap xsi:type="wsdai:ConfigurationMapType">
<wsdai:MessageQName>wsdair:SQLExecuteFactory</wsdai:MessageQName>
<wsdai:PortTypeQName>wsdair:SQLResponsePT</wsdai:PortTypeQName>
<wsdai:ConfigurationDocumentQName>wsdai:ConfigurationDocumentType</wsdai:ConfigurationDocumentQName>
<wsdai:DefaultConfigurationDocument>
<wsdai:ConfigurationDocument xsi:type="wsdai:ConfigurationDocumentType">
<wsdai:DataResourceDescription>AMGA Metadata Catalog Service</wsdai:DataResourceDescription>
<wsdai:Readable>true</wsdai:Readable>
<wsdai:Writeable>false</wsdai:Writeable>
<wsdai:TransactionInitiation>Automatic</wsdai:TransactionInitiation>
<wsdai:TransactionIsolation>Serialisable</wsdai:TransactionIsolation>
<wsdai:ChildSensitiveToParent>Sensitive</wsdai:ChildSensitiveToParent>
<wsdai:ParentSensitiveToChild>Sensitive</wsdai:ParentSensitiveToChild>
</wsdai:ConfigurationDocument>
</wsdai:DefaultConfigurationDocument>
</wsdai:ConfigurationMap>
<wsdai:LanguageMap xsi:type="wsdai:LanguageMapType">
<wsdai:MessageQName>wsdair:SQLExecute</wsdai:MessageQName>
<wsdai:LanguageURI>http://www.sql.org/sql-92</wsdai:LanguageURI>
</wsdai:LanguageMap>
<wsdai:LanguageMap xsi:type="wsdai:LanguageMapType">
<wsdai:MessageQName>wsdai:GenericQuery</wsdai:MessageQName>
<wsdai:LanguageURI>http://cern.ch/amga</wsdai:LanguageURI>
</wsdai:LanguageMap>
<wsdai:DataResourceDescription>AMGA Metadata Catalog Service</wsdai:DataResourceDescription>
<wsdai:Readable>true</wsdai:Readable>
<wsdai:Writeable>true</wsdai:Writeable>
<wsdai:ConcurrentAccess>true</wsdai:ConcurrentAccess>
<wsdai:TransactionInitiation>Automatic</wsdai:TransactionInitiation>
<wsdai:TransactionIsolation>Serialisable</wsdai:TransactionIsolation>
<wsdai:ChildSensitiveToParent>Sensitive</wsdai:ChildSensitiveToParent>
<wsdai:ParentSensitiveToChild>Sensitive</wsdai:ParentSensitiveToChild>
<wsdair:SchemaDescription>
</wsdair:SchemaDescription>
</wsdair:SQLPropertyDocument>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Client prints:
2009-04-24 11:31:22,886 ERROR client.Call [main,invoke:2469] Exception:
org.apache.axis.types.URI$MalformedURIException: No scheme found in URI.
        at org.apache.axis.encoding.ser.SimpleDeserializer.onEndElement(SimpleDeserializer.java:180)
        at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:502)
        at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:171)
        at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
        at org.apache.axis.client.Call.invoke(Call.java:2467)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at uk.org.ogsadai.service.axis.wsdai.dair.bindings.SQLAccessSOAPStub.getSQLPropertyDocument(Unknown Source)
        at uk.org.ogsadai.wsdai.client.toolkit.DAIRClientToolkitUtils.getSQLPropertyDocument(Unknown Source)
        at uk.org.ogsadai.wsdai.client.toolkit.DAIRClientToolkit.getPropertyDocument(Unknown Source)
        at uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient.execute(Unknown Source)
        at uk.org.ogsadai.wsdai.client.toolkit.example.DAIRClient.main(Unknown Source)
A problem has occured...
Associated exception: class org.apache.axis.AxisFault
Error: ; nested exception is: 
        org.apache.axis.types.URI$MalformedURIException: No scheme found in URI.
Error: No scheme found in URI.
Strongly suspect the cause of this failure is the DataResourceAbstractName entry:
<wsdai:DataResourceAbstractName>Metadata</wsdai:DataResourceAbstractName>
From wsdai_core_types.xsd
  <xsd:simpleType name="DataResourceAbstractNameType">
    <xsd:restriction base="xsd:anyURI"></xsd:restriction>
  </xsd:simpleType>
  <xsd:element name="DataResourceAbstractName" type="wsdai:DataResourceAbstractNameType"/>
And in the XML Schema definition http://www.w3.org/TR/xmlschema-2/#anyURI it states

"This type should be used to specify the intention that the value fulfills the role of a URI as defined by RFC 2396, as amended by RFC 2732."

Another issue is there is no meta-data so hard to run queries - don't know what the tables are.

 



Versions Associations Attachments Back Links  
Version Version Comment Created By
Version 5 Mike Jackson - 04/24/2009
Version 4 Mike Jackson - 04/24/2009
Version 3 Mike Jackson - 04/24/2009
Version 2 Mike Jackson - 04/24/2009
Version 1 Mike Jackson - 04/24/2009



The Open Grid Forum Contact Webmaster | Report a problem | GridForge Help
This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/wiki/do/viewPage/projects.dais-wg/wiki/DAIAMGAInterop at Fri, 04 Nov 2022 20:51:29 GMT