OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-dev message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Same document payloads and the WS-I Basic Profile


A while back my organisation decided to use the ebXML MS (2.0) specification 
as part of the set of messaging protocols for conducting B2B transactions. 
There were a lot (we thought) of good reasons for this choice not least of 
which was that all at version 2.0, ebXML MS can be considered a mature 
specification with all of the features that we were looking for. Dick Brooks 
and Ian Jones did me the kindness of an on-site presentation and that sealed 
it. We certainly did not want to re-invent wheels in this area.

Anyway, one the down sides we found when talking to organisations wanting to 
consume our web services was that they very often were using toolkits that 
had no support either for ebXML MS itself or for the SwA/multipart related 
MIME format specified for ebXML message exchanges. Typically they had/have 
little in-house IT resource (or desire) for writing something bespoke. This 
is of course quite understandable, most of our business partners are not IT 
organisations and don't want to committ to higher spend for internal skills 
or contractors. With that and IBM and Microsoft being so 'down' on ebXML (I 
tried quite hard leveraging our corporate account managers from both of them 
- but no interest at all) it created a bit of a dilema.

We found however, that most/all of these organisations could put together a 
basic SOAP compliant message with the appropriate ebXML headers, so we 
decided to simplify their task by allowing them to pass the business data 
payload(s) within the same document that contains the manifest (primary 
part).

It was my intention nonetheless to support the 'spirit' of the ebXML MS 
spec, so implementors are required to provide URIs to the payload(s) in the 
manifest 'Reference/@href' that indicate same document locations as 
described by RFC2396 - Uniform Resource Identifiers (URI): Generic Syntax 
(sections 4.1 Fragment Identifier and 4.2 Same-document References).

I believed (perhaps wrongly) that whereas the ebXML MS spec does recommend 
use of the SwA/MIME packaging mechanism described it does not mandate it ??

In any event, our approach unfortunately appears to have slightly 'back 
fired'. I noted recently that the WS-I Basic Profile explicitly disallows a 
document/literal message to include more than one part within the SOAP Body 
binding (recommendation R2201). Thus the snippets below I think would be 
invalid (ebXML namespaces omitted for bevity).

Have we (I) made a complete 'pish' of this implementation. What does the 
group suggest as the correct course of action ??

Thanks

Fraser.


WSDL snippet :-

  .....
  <message name="PropertyRFP_In">
    <part name="Manifest" element="tns:Manifest"/>
    <part name="Payload" element="ppp:Transaction"/>
  </message>
  <message name="PropertyRFP_Out">
    <documentation>Response message contains an empty SOAP:Body - no parts 
defined</documentation>
  </message>
  <portType name="PropertyRFP_PT">
    <operation name="PaymentRequest">
      <input message="tns:PropertyRFP_In"/>
      <output message="tns:PropertyRFP_Out"/>
    </operation>
    </portType>
    <binding name="PropertyRFP_Bin"
             type="tns:PropertyRFP_PT">
      <soap:binding style="document"
         transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="PaymentRequest">
        <soap:operation
            soapAction="http://www.xxx.co.uk/PropertyRFP";
            style="document"/>
        <input>
          <soap:body parts="Manifest Payload"
                     use="literal"/>
        </input>
        <output>
          <soap:body use="literal"/>
        </output>
      </operation>
    </binding>
    ....

Message snippet :-

<SOAP:Envelope>
  ....
  <SOAP:Body>
    <Manifest>
      <Reference
          xmlns:xlink="http://www.w3.org/1999/xlink";
          xlink:href="#CDUK000001"
          xlink:role="xxx-uk.co.uk/xmlstds/RFP/role.htm">
        <Schema version="1.01"
                location="http://xxx-co.uk/ContentsRFP
                                       ContentsRFP.xsd"/>
      </Reference>
      <Reference
          xmlns:xlink="http://www.w3.org/1999/xlink";
          xlink:href="#CDUK000002"
          xlink:role="xxx-uk.co.uk/xmlstds/RFP/role.htm">
        <Schema version="1.01"
                location="http://xxx-co.uk/PropertyRFP
                                       PropertyRFP.xsd"/>
      </Reference>
    </Manifest>
    <php:Transaction
          xmlns:php="http://xxx-.co.uk/ContentsRFP";
          Id="CDUK000001"
          TransactionName="ContentsRFP"
          MessageVersion="01_01">
      <TransDate>2002-07-25</TransDate>
      <TransEffectiveDate>2002-07-25</TransEffectiveDate>
      ...
    </php:Transaction>
    <ppp:Transaction
          xmlns:ppp="http://www.xxx-co.uk/PropertyRFP";
          Id="CDUK000002"
          TransactionName="ContentsRFP"
          MessageVersion="01_01">
      <TransDate>2002-07-25</TransDate>
      <TransEffectiveDate>2002-07-25</TransEffectiveDate>
      ...
    </ppp:Transaction>
  </SOAP:Body>
</SOAP:Envelope>

_________________________________________________________________
Hotmail messages direct to your mobile phone http://www.msn.co.uk/msnmobile



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]

Search: Match: Sort by:
Words: | Help


Powered by eList eXpress LLC