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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebcore-cppa message

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


Subject: Bundling and CPPA


 
To have some new content for discussion, here is a proposal to add support for bundling in CPP/CPA.
 
The ebMS 3.0 Part 2 specification defines a new message bundling protocol.
 
The support for Bundling and the relevant processing mode parameters can be specified in CPP/CPA  in a straightforward manner:  We add a new optional "Bundling" element in ActionBinding with attributes policy, maxdelay, maxsize, orderingpolicy and orderingscope equivalent to the pmode parameters.  The IDREFS content of the Bundling element are references to other ActionBinding elements (which must have the same value for sendOrReceive). 
 
        <ActionBinding id="Buyer_AB1" sendOrReceive="send" action="ProcessPurchaseOrder"
          packageId="ebMS3_SOAP12_Envelope">
          <BusinessTransactionCharacteristics/>
          <ChannelId>dc.ebMSRequestMessage.SyncResponseSignals</ChannelId>
          <Bundling policy="optional" maxdelay="PT10M" maxsize="100000">Buyer_AB1</Bundling>
        </ActionBinding>
 
        <ActionBinding id="Buyer_AB3" sendOrReceive="send" action="ProcessSalesReport"
          packageId="ebMS3_SOAP12_Envelope">
          <BusinessTransactionCharacteristics/>
          <ChannelId>dc.ebMSRequestMessage.SyncResponseSignals</ChannelId>
          <Bundling 
            policy="optional"  maxdelay="PT2H" maxsize="150000" orderingpolicy="timestamp"
            orderingscope='eb3:CollaborationInfo/eb3:ConversationId'>Buyer_AB1 Buyer_AB3</Bundling>
        </ActionBinding>
The idea is that at ActionBinding level the bundling dependencies and configuration of the action are specified. We may need a way to indicate in ebXMLSenderBinding and ebXMLReceiverBinding what (version of which) protocol is used to implement the bundling feature, with some constant URI indicating the protocol described in chapter 3 of ebMS 3.0 Part 2. 
 
The following elements need to be added to the CPP/CPA schema.
 
 <xsd:complexType name="FlatActionBindingType">
  <xsd:complexContent>
   <xsd:extension base="tns:ActionBindingBaseType">
    <xsd:sequence>
     <xsd:element ref="tns:BusinessTransactionCharacteristics"/>
     <xsd:element ref="tns:ActionContextHead" minOccurs="0"/>
     <xsd:element ref="tns:ChannelId" maxOccurs="unbounded"/>
     <xsd:element ref="tns:Bundling" minOccurs="0"/>
     <xsd:element ref="tns:ActionBinding" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="required"/>
    <xsd:attribute name="action" type="xsd:NMTOKEN" use="required"/>
    <xsd:attribute name="sendOrReceive" type="xsd:NMTOKEN"/>
    <xsd:attribute name="correlativeBinding" type="xsd:IDREF"/>
    <xsd:attribute name="packageId" type="xsd:IDREF" use="required"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
 
 <!--  -->
 <xsd:element name="Bundling" type="tns:BundlingType"/>
 
 <xsd:complexType name="BundlingType">
  <xsd:simpleContent>
   <xsd:extension base="xsd:IDREFS">
    <xsd:attribute name="policy" type="tns:BundlingPolicyType" use="optional"
     default="never">
    </xsd:attribute>
    <xsd:attribute name="maxsize" type="xsd:positiveInteger" use="optional">
    </xsd:attribute>
    <xsd:attribute name="maxdelay" type="xsd:duration" use="optional">
    </xsd:attribute>
    <xsd:attribute name="orderingpolicy" type="tns:OrderingPolicyType" use="optional"
     default="undefined">
    </xsd:attribute>
    <xsd:attribute name="orderingscope"  type="xsd:string" use="optional">
    </xsd:attribute>
   </xsd:extension>
  </xsd:simpleContent>
 </xsd:complexType>
 
 <xsd:simpleType name="BundlingPolicyType">
  <xsd:restriction base="xsd:normalizedString">
   <xsd:enumeration value="never"/>
   <xsd:enumeration value="always"/>
   <xsd:enumeration value="optional"/>
  </xsd:restriction>
 </xsd:simpleType>
 
 <xsd:simpleType name="OrderingPolicyType">
  <xsd:restriction base="xsd:normalizedString">
   <xsd:enumeration value="undefined"/>
   <xsd:enumeration value="documentorder"/>
   <xsd:enumeration value="timestamp"/>
  </xsd:restriction>
 </xsd:simpleType>


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