[MOBY-dev] data by reference - a request for comments

Dmitry Repchevsky dmitry.repchevski at bsc.es
Wed Jul 2 17:56:51 UTC 2008


Hello Mark,

My suggestion (not a final specification :-)) is something like:

******************************
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Header>
    <mobyws:resource>
      <wsa:EndpointReference 
xmlns:wsa="http://www.w3.org/2005/08/addressing">
        <wsa:Address>http://myserver.com/MyService?asyncId=ID</wsa:Address>
        <wsa:ReferenceParameters>
          <mobyws:ServiceInvocationId xmlns:mobyws="http://biomoby.org/">
            ID
          </mobyws:ServiceInvocationId>
        </wsa:ReferenceParameters>
        <wsa:Metadata>
          mobyws:result_queryId00/image/jpeg/content
        </wsa:Metadata>
      </wsa:EndpointReference>
    </wsa:resource>
  </S:Header>
  <S:Body>
    <ns1:MOBY xmlns:ns1="http://www.biomoby.org/moby">
      <moby:mobyContent>
        <moby:mobyData moby:queryID="sip_1">
          <moby:Simple articleName="image">
            <moby:SimpleAnnotatedJPEGImage namespace="" id="">
              <!--
              <moby:String namespace="" id="" 
articleName="content">aaaaa</moby:String>
              -->
              <moby:String namespace="" id="" 
articleName="Description">description</moby:String>
            </moby:SimpleAnnotatedJPEGImage>
          </moby:Simple>
        </moby:mobyData>
      </moby:mobyContent>

    </ns1:MOBY>
  </S:Body>
</S:Envelope>
***********************

The idea is to include the WSRF reference into the header:

***********************
      <wsa:EndpointReference 
xmlns:wsa="http://www.w3.org/2005/08/addressing">
        <wsa:Address>http://myserver.com/MyService?asyncId=ID</wsa:Address>
        <wsa:ReferenceParameters>
          <mobyws:ServiceInvocationId 
xmlns:mobyws="http://biomoby.org/">ID</mobyws:ServiceInvocationId>
        </wsa:ReferenceParameters>
        <wsa:Metadata>
          mobyws:result_queryId00/image/jpeg/content
        </wsa:Metadata>
      </wsa:EndpointReference>
***********************

The service can access the header looking for resources and then to call 
WSRF service specified to obtain them.
Of course we must update our WSRF stack to return a particular moby 
object instead of all mobyData. here I "updated" the like to 
"mobyws:result_queryId00/image/jpeg/content"
Note that I used a simplest possible way to produce an... uri (?) to it 
- using "articleNames". I commented the "content" in the body to 
demonstrate the idea better - it is up to service implementation to call 
a wsrf and obtain the image... This way we do not need to change "moby" 
message.

Cheers,

Dmitry



More information about the MOBY-dev mailing list