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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-msg message

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


Subject: CPA3 and PMode (work in progress)



Hi,

As discussed on the last call, I am working on a mapping from CPA3 to PMode. The implementation is an XSLT stylesheet that processes a CPA3 file and generates output in the dotted string PMode parameter format used in the ebMS and AS4 specifications. The mapping is far from complete, but attached is a sample input and output file. If we have an ebMS TC call tonight, I would like to hear if this exercise (and the output format) is useful to help explain the concepts. If yes, I'd be happy to continue work on the script, to demonstrate full coverage of functionality, at least for AS4. The stylesheet will not be of much direct use to any AS4 product, as each products has its own configuration formats or API that any product would use instead of the dotted string format, but it could be useful to explain to a developer how the mapping would work.

The CPA input file is actually derived from two CPP documents, also attached for information, using an in-progress, prototype CPA generation tool.

The example is also an illustration of https://issues.oasis-open.org/browse/EBXMLMSG-74.

Kind Regards,

Pim van der Eijk




<cppa:CPA xmlns:cppa="http://docs.oasis-open.org/ebcore/ns/cppa-3.0";>
  <cppa:AgreementInfo>
    <cppa:AgreementIdentifier>Acpp_Bcpp</cppa:AgreementIdentifier>
    <cppa:Description xml:lang="en">Agreement formed from Acpp and Bcpp at 2015-03-13T16:17:29.040193</cppa:Description>
    <cppa:ProfileIdentifier>Acpp</cppa:ProfileIdentifier>
    <cppa:ProfileIdentifier>Bcpp</cppa:ProfileIdentifier>
    <cppa:ActivationDate>2015-03-20T16:17:29.040227</cppa:ActivationDate>
    <cppa:ExpirationDate>2016-01-01T00:00:00</cppa:ExpirationDate>
  </cppa:AgreementInfo>
  <cppa:PartyInfo>
    <cppa:PartyName xml:lang="en">Party A</cppa:PartyName>
    <cppa:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0000">A</cppa:PartyId>
    <cppa:ServiceCollaboration>
      <cppa:PartyRole name="Seller"/>
      <cppa:CounterPartyRole name="Buyer"/>
      <cppa:ServiceBinding>
        <cppa:Service>OrderingBilling</cppa:Service>
        <cppa:ActionBinding action="AcceptOrder" sendOrReceive="send" id="BiiTrns003_S" replyTo="BiiTrns001_R">
          <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId>
        </cppa:ActionBinding>
        <cppa:ActionBinding action="RejectOrder" sendOrReceive="send" id="BiiTrns002_S"  replyTo="BiiTrns001_R">
          <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId>
        </cppa:ActionBinding>
        <cppa:ActionBinding action="SubmitOrder" sendOrReceive="receive" id="BiiTrns001_R" >
          <cppa:ChannelId>Acpp_ch5_Bcpp_ch1</cppa:ChannelId>
        </cppa:ActionBinding>
      </cppa:ServiceBinding>
    </cppa:ServiceCollaboration>
    <cppa:ServiceCollaboration>
      <cppa:PartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/>
      <cppa:CounterPartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/>
      <cppa:ServiceBinding>
        <cppa:Service>http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service</cppa:Service>
        <cppa:ActionBinding action="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test"; sendOrReceive="send" id="test_outgoing_a">
          <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId>
        </cppa:ActionBinding>
      </cppa:ServiceBinding>
    </cppa:ServiceCollaboration>
    <cppa:ServiceCollaboration>
      <cppa:PartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/>
      <cppa:CounterPartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/>
      <cppa:ServiceBinding>
        <cppa:Service>http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service</cppa:Service>
        <cppa:ActionBinding action="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test"; sendOrReceive="receive" id="test_incoming_a">
          <cppa:ChannelId>Acpp_ch5_Bcpp_ch1</cppa:ChannelId>
        </cppa:ActionBinding>
      </cppa:ServiceBinding>
    </cppa:ServiceCollaboration>
  </cppa:PartyInfo>
  <cppa:PartyInfo>
    <cppa:PartyName xml:lang="en">Party B</cppa:PartyName>
    <cppa:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0000">B</cppa:PartyId>
    <cppa:ServiceCollaboration>
      <cppa:PartyRole name="Buyer"/>
      <cppa:CounterPartyRole name="Seller"/>
      <cppa:ServiceBinding>
        <cppa:Service>OrderingBilling</cppa:Service>
        <cppa:ActionBinding action="AcceptOrder" sendOrReceive="receive" id="BiiTrns003_R">
          <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId>
        </cppa:ActionBinding>
        <cppa:ActionBinding action="RejectOrder" sendOrReceive="receive" id="BiiTrns002_R">
          <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId>
        </cppa:ActionBinding>
        <cppa:ActionBinding action="SubmitOrder" sendOrReceive="send" id="BiiTrns001_S">
          <cppa:ChannelId>Acpp_ch5_Bcpp_ch1</cppa:ChannelId>
        </cppa:ActionBinding>
      </cppa:ServiceBinding>
    </cppa:ServiceCollaboration>
    <cppa:ServiceCollaboration>
      <cppa:PartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/>
      <cppa:CounterPartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/>
      <cppa:ServiceBinding>
        <cppa:Service>http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service</cppa:Service>
        <cppa:ActionBinding action="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test"; sendOrReceive="receive" id="test_incoming">
          <cppa:ChannelId>Acpp_ch1_Bcpp_ch5</cppa:ChannelId>
        </cppa:ActionBinding>
      </cppa:ServiceBinding>
    </cppa:ServiceCollaboration>
    <cppa:ServiceCollaboration>
      <cppa:PartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/>
      <cppa:CounterPartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/>
      <cppa:ServiceBinding>
        <cppa:Service>http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service</cppa:Service>
        <cppa:ActionBinding action="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test"; sendOrReceive="send" id="test_outgoing">
          <cppa:ChannelId>Acpp_ch5_Bcpp_ch1</cppa:ChannelId>
        </cppa:ActionBinding>
      </cppa:ServiceBinding>
    </cppa:ServiceCollaboration>
  </cppa:PartyInfo>
  <cppa:DeliveryChannel id="Acpp_ch1_Bcpp_ch5" exchange="Acpp_pb1_Bcpp_pb5" transport="Acpp_tr1_Bcpp_tr5"/>
  <cppa:DeliveryChannel id="Acpp_ch5_Bcpp_ch1" exchange="Acpp_pb5_Bcpp_pb1" transport="Acpp_tr5_Bcpp_tr1"/>
  <cppa:DeliveryChannel id="Acpp_ch2_Bcpp_ch6" exchange="Acpp_pb2_Bcpp_pb6"/>
  <cppa:DeliveryChannel id="Acpp_ch6_Bcpp_ch2" exchange="Acpp_pb6_Bcpp_pb2"/>
  <cppa:ebMS3ProtocolBinding id="Acpp_pb1_Bcpp_pb5">
    <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
    <cppa:WSSecurityBinding>
      <cppa:WSSVersion>1.1</cppa:WSSVersion>
      <cppa:Signature>
        <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
        <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
      </cppa:Signature>
    </cppa:WSSecurityBinding>
    <cppa:ErrorHandling>
      <cppa:ReceiverErrorsReportChannelId>Acpp_ch2_Bcpp_ch6</cppa:ReceiverErrorsReportChannelId>
    </cppa:ErrorHandling>
  </cppa:ebMS3ProtocolBinding>
  <cppa:ebMS3ProtocolBinding id="Acpp_pb5_Bcpp_pb1">
    <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
    <cppa:WSSecurityBinding>
      <cppa:WSSVersion>1.1</cppa:WSSVersion>
      <cppa:Signature>
        <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
        <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
      </cppa:Signature>
    </cppa:WSSecurityBinding>
    <cppa:ErrorHandling>
      <cppa:ReceiverErrorsReportChannelId>Acpp_ch6_Bcpp_ch2</cppa:ReceiverErrorsReportChannelId>
    </cppa:ErrorHandling>
  </cppa:ebMS3ProtocolBinding>
  <cppa:ebMS3ProtocolBinding id="Acpp_pb2_Bcpp_pb6">
    <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
    <cppa:WSSecurityBinding>
      <cppa:WSSVersion>1.1</cppa:WSSVersion>
      <cppa:Signature>
        <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
        <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
      </cppa:Signature>
    </cppa:WSSecurityBinding>
  </cppa:ebMS3ProtocolBinding>
  <cppa:ebMS3ProtocolBinding id="Acpp_pb6_Bcpp_pb2">
    <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
    <cppa:WSSecurityBinding>
      <cppa:WSSVersion>1.1</cppa:WSSVersion>
      <cppa:Signature>
        <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
        <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
      </cppa:Signature>
    </cppa:WSSecurityBinding>
  </cppa:ebMS3ProtocolBinding>
  <cppa:HTTPTransport id="Acpp_tr1_Bcpp_tr5">
    <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4>
    <cppa:Endpoint>http://b.example.com:8080/someotherhandler</cppa:Endpoint>
  </cppa:HTTPTransport>
  <cppa:HTTPTransport id="Acpp_tr5_Bcpp_tr1">
    <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4>
    <cppa:Endpoint>http://a.example.com:8080/as4handler</cppa:Endpoint>
  </cppa:HTTPTransport>
</cppa:CPA>
--- BEGIN PMODE ---
PMode.Agreement: Acpp_Bcpp
PMode.ID: BiiTrns001_R
PMode.MEP: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/twoWay
PMode.Initiator.Party: B
PMode.Initiator.Role: Buyer
PMode.Responder.Party: A
PMode.Responder.Role: Seller
PMode[1].BusinessInfo.Service: OrderingBilling
PMode[1].BusinessInfo.Action: SubmitOrder
PMode[1].Protocol.Address: http://a.example.com:8080/as4handler
PMode[1].Protocol.SOAPVersion: 1.2
---  START LEG 2 ---
PMode[2].BusinessInfo.Service: OrderingBilling
PMode[2].BusinessInfo.Action: AcceptOrder
PMode[2].Protocol.Address: http://b.example.com:8080/someotherhandler
PMode[2].Protocol.SOAPVersion: 1.2
---  END LEG 2 ---
---  START LEG 2 ---
PMode[2].BusinessInfo.Service: OrderingBilling
PMode[2].BusinessInfo.Action: RejectOrder
PMode[2].Protocol.Address: http://b.example.com:8080/someotherhandler
PMode[2].Protocol.SOAPVersion: 1.2
---  END LEG 2 ---
--- END PMODE ---
--- BEGIN PMODE ---
PMode.Agreement: Acpp_Bcpp
PMode.ID: test_outgoing_a
PMode.MEP: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/oneWay
PMode.Initiator.Party: A
PMode.Initiator.Role: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator
PMode.Responder.Party: B
PMode.Responder.Role: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder
PMode[1].BusinessInfo.Service: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service
PMode[1].BusinessInfo.Action: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test
PMode[1].Protocol.Address: http://b.example.com:8080/someotherhandler
PMode[1].Protocol.SOAPVersion: 1.2
--- END PMODE ---
--- BEGIN PMODE ---
PMode.Agreement: Acpp_Bcpp
PMode.ID: test_incoming_a
PMode.MEP: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/oneWay
PMode.Initiator.Party: B
PMode.Initiator.Role: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator
PMode.Responder.Party: A
PMode.Responder.Role: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder
PMode[1].BusinessInfo.Service: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service
PMode[1].BusinessInfo.Action: http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test
PMode[1].Protocol.Address: http://a.example.com:8080/as4handler
PMode[1].Protocol.SOAPVersion: 1.2
--- END PMODE ---
<?xml version="1.0" encoding="UTF-8"?>
<cppa:CPP xmlns:cppa="http://docs.oasis-open.org/ebcore/ns/cppa-3.0";
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#";
    xmlns:dsig11="http://www.w3.org/2009/xmldsig11#";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xsi:schemaLocation="http://docs.oasis-open.org/ebxmlcppa/cppa-3.0 file:/home/pvde/Documents/Projects/CPA/cppa-ng/cppa3.xsd">
    <cppa:ProfileInfo>
        <cppa:ProfileIdentifier>Acpp</cppa:ProfileIdentifier>
        <cppa:Description xml:lang="en">Collaboration Protocol Profile of Party A</cppa:Description>
        <cppa:ActivationDate>2015-01-01T00:00:00</cppa:ActivationDate>
        <cppa:ExpirationDate>2016-01-01T00:00:00</cppa:ExpirationDate>
        <cppa:PhaseIn>P7D</cppa:PhaseIn>
    </cppa:ProfileInfo>
    <cppa:PartyInfo>
        <cppa:PartyName xml:lang="en">Party A</cppa:PartyName>
        <cppa:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0000">A</cppa:PartyId>
        
        <!-- Certificates for A -->
        <cppa:Certificate id="asigningcert">
            <ds:KeyInfo>
                <!-- Incomplete .. -->
                <ds:KeyName>A's signing cert</ds:KeyName>
                <ds:X509Data>
                    <ds:X509SubjectName>A</ds:X509SubjectName>
                    <!-- certificates in chain -->
                    <ds:X509Certificate><!-- ... --></ds:X509Certificate>
                    <ds:X509Certificate><!-- ... --></ds:X509Certificate>
                    <ds:X509Certificate><!-- ... --></ds:X509Certificate>
                </ds:X509Data>
            </ds:KeyInfo>
        </cppa:Certificate>
        <cppa:Certificate id="atlsclientcert">
            <ds:KeyInfo>
                <!-- Incomplete .. -->
                <ds:KeyName>A's TLS client cert</ds:KeyName>
                <ds:X509Data>
                    <ds:X509SubjectName>A</ds:X509SubjectName>
                </ds:X509Data>
            </ds:KeyInfo>
        </cppa:Certificate>
        <cppa:Certificate id="atlsservercert">
            <ds:KeyInfo>
                <!-- Incomplete .. -->
                <ds:KeyName>A's TLS server cert</ds:KeyName>
            </ds:KeyInfo>
        </cppa:Certificate>

        <!-- A certificate that A trusts.  -->
        <cppa:Certificate id="btrustedroot">
            <ds:KeyInfo>
                <!-- Incomplete .. -->
                <ds:KeyName>B root</ds:KeyName>
                <ds:X509Data>
                    <ds:X509SubjectName>B Root</ds:X509SubjectName>
                </ds:X509Data>
            </ds:KeyInfo>
        </cppa:Certificate>
        
        <cppa:TrustAnchors>
            <cppa:AnchorCertificateRef certId="btrustedroot"/>
        </cppa:TrustAnchors>
        
        <cppa:ServiceCollaboration>
            <cppa:PartyRole name="Seller"/>
            <cppa:CounterPartyRole name="Buyer"/>
            <cppa:ServiceBinding>
                <cppa:Service>OrderingBilling</cppa:Service>
                <cppa:ActionBinding id="BiiTrns001_R" action="SubmitOrder" sendOrReceive="receive" 
                    payloadProfileId="pp1">
                    <cppa:ChannelId>ch5</cppa:ChannelId>
                </cppa:ActionBinding>
                
                <!--  The "AcceptOrder" and "RejectOrder" use the same UBL XSD and same channels, 
                    maximum reuse -->
                <cppa:ActionBinding id="BiiTrns003_S" action="AcceptOrder" sendOrReceive="send" 
                    payloadProfileId="pp2">
                    <cppa:ChannelId>ch1</cppa:ChannelId>
                    <cppa:ChannelId>ch3</cppa:ChannelId>
                </cppa:ActionBinding>
                <cppa:ActionBinding id="BiiTrns002_S" action="RejectOrder" sendOrReceive="send" 
                    payloadProfileId="pp2">
                    <cppa:ChannelId>ch1</cppa:ChannelId>
                    <cppa:ChannelId>ch3</cppa:ChannelId>
                </cppa:ActionBinding>
            </cppa:ServiceBinding>
        </cppa:ServiceCollaboration>
        
        <!-- Here the ebMS3 test service, defined in EBMS3CORE section 5.2.2, is configured to 
            use the same channel as SubmitOrder, so exchange of multiple compressed payload parts 
            are tested both in incoming and outgoing direction with the configured protocol binding.  -->
        <cppa:ServiceCollaboration>
            <cppa:Description xml:lang="en">The ebMS3 test service, in initiating mode
                Note that this Service reuses channel "ch1",  so it can be used to test the correct firewall,
                certificate, URL etc. for the SubmitOrder action.
            </cppa:Description>
            <cppa:PartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/>
            <cppa:CounterPartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/>
            <cppa:ServiceBinding>
                <cppa:Service>http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service</cppa:Service>
                <cppa:ActionBinding id="test_outgoing_a" 
                    action="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test"; 
                    sendOrReceive="send" payloadProfileId="pp1" >
                    <cppa:ChannelId>ch1</cppa:ChannelId>
                </cppa:ActionBinding>
            </cppa:ServiceBinding>
        </cppa:ServiceCollaboration>

        <cppa:ServiceCollaboration>
            <cppa:Description xml:lang="en">The ebMS3 test service,  in responding mode.
                Note that this Service reuses channel "ch5",  so it can be used to test the correct firewall,
                certificate, URL etc. for the AcceptOrder action.
            </cppa:Description>
            <cppa:PartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/>
            <cppa:CounterPartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/>
            <cppa:ServiceBinding>
                <cppa:Service>http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service</cppa:Service>
                <cppa:ActionBinding id="test_incoming_a" 
                    action="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test"; 
                    sendOrReceive="receive" payloadProfileId="pp1">
                    <cppa:ChannelId>ch5</cppa:ChannelId>
                </cppa:ActionBinding>
            </cppa:ServiceBinding>
        </cppa:ServiceCollaboration>
        
    </cppa:PartyInfo>
    
    <cppa:DeliveryChannel id="ch1" exchange="pb1" transport="tr1"  package="swa1" >
        <cppa:Description xml:lang="en">Channel used for outgoing ebMS3 business messages</cppa:Description>
    </cppa:DeliveryChannel>
    
    <cppa:DeliveryChannel id="ch2" exchange="pb2"  >
        <cppa:Description xml:lang="en">Channel used for returned ebMS3 receipts and errors</cppa:Description>
    </cppa:DeliveryChannel>
    
    <cppa:DeliveryChannel id="ch3" exchange="pb3" transport="tr3"  package="swa2" >
        <cppa:Description xml:lang="en">Channel used for outgoing ebMS2 business messages with legacy TLS</cppa:Description>
    </cppa:DeliveryChannel>
    
    <cppa:DeliveryChannel id="ch4" exchange="pb4"  >
        <cppa:Description xml:lang="en">Channel used for returned ebMS2 receipts and errors</cppa:Description>
    </cppa:DeliveryChannel>
    
    <cppa:DeliveryChannel id="ch5" exchange="pb5" transport="tr5"  package="swa1" >
        <cppa:Description xml:lang="en">Channel used for incoming ebMS3 business messages</cppa:Description>
    </cppa:DeliveryChannel>

    <cppa:DeliveryChannel id="ch6" exchange="pb6"  >
        <cppa:Description xml:lang="en">Channel used for returned ebMS3 receipts and errors</cppa:Description>
    </cppa:DeliveryChannel>
    
    <!-- for simplicity, there is no ebMS2 incoming channel for the AcceptOrder and RejectOrder actions, 
        though realistically there would be -->

    <cppa:ebMS3ProtocolBinding id="pb1">
        <cppa:Description xml:lang="en">Channel used to send UserMessages</cppa:Description>
        <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
        <cppa:WSSecurityBinding>
            <cppa:WSSVersion>1.1</cppa:WSSVersion>
            <cppa:Signature>
                <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
                <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
                <cppa:SigningCertificateRef certId="asigningcert"/>
            </cppa:Signature>
        </cppa:WSSecurityBinding>
        <cppa:AS4ReceptionAwareness>
            <cppa:DuplicateHandling>
                <cppa:DuplicateElimination>true</cppa:DuplicateElimination>
            </cppa:DuplicateHandling>
            <cppa:BaseRetransmissionHandling>
                <cppa:Retries>2</cppa:Retries>
                <cppa:RetryInterval>PT2H</cppa:RetryInterval>
            </cppa:BaseRetransmissionHandling>
        </cppa:AS4ReceptionAwareness>
        <cppa:ErrorHandling>
            <cppa:DeliveryFailuresNotifyProducer>true</cppa:DeliveryFailuresNotifyProducer>
            <cppa:ProcessErrorNotifyProducer>true</cppa:ProcessErrorNotifyProducer>
            <cppa:ReceiverErrorsReportChannelId>ch2</cppa:ReceiverErrorsReportChannelId>
        </cppa:ErrorHandling>
        <cppa:ReceiptHandling>
            <cppa:ReceiptChannelId>ch2</cppa:ReceiptChannelId>
        </cppa:ReceiptHandling>
    </cppa:ebMS3ProtocolBinding>

    <cppa:ebMS3ProtocolBinding id="pb2">
        <cppa:Description xml:lang="en">Channel used to receive synchronous ebMS3 Errors and Receipts</cppa:Description>
        <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
        <cppa:WSSecurityBinding>
            <cppa:WSSVersion>1.1</cppa:WSSVersion>
            <cppa:Signature>
                <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
                <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
            </cppa:Signature>
        </cppa:WSSecurityBinding>
        <!-- No receipt handling channels, because there are no receipts for receipts or errors -->
        <!-- No error handling channels, because there are no errors for errors or receipts -->
        <cppa:SyncRequestChannelId>ch1</cppa:SyncRequestChannelId>
    </cppa:ebMS3ProtocolBinding>

    <cppa:ebMS2ProtocolBinding id="pb3">
        <cppa:Description xml:lang="en">ebMS2 channel for user messages</cppa:Description>
        <cppa:ReceiptHandling>
            <cppa:ReceiptChannelId>ch4</cppa:ReceiptChannelId>
        </cppa:ReceiptHandling>
        <cppa:ebMS2ReliableMessaging 
            actor="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH" 
            ordered="false">
            <cppa:BaseRetransmissionHandling>
                <cppa:Retries>2</cppa:Retries>
                <cppa:RetryInterval>PT2H</cppa:RetryInterval>
            </cppa:BaseRetransmissionHandling>
        </cppa:ebMS2ReliableMessaging>
        <cppa:Signature>
            <cppa:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#rsa-sha1</cppa:SignatureAlgorithm>
            <cppa:DigestAlgorithm>http://www.w3.org/2000/09/xmldsig#sha1</cppa:DigestAlgorithm>
        </cppa:Signature>
    </cppa:ebMS2ProtocolBinding>
    
    <cppa:ebMS2ProtocolBinding id="pb4">
        <cppa:Description xml:lang="en">ebMS2 synchronous error and receipt channel</cppa:Description>
        <!-- No ebMS2ReliableMessaging for errors and receipts -->
        <cppa:Signature>
            <cppa:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#rsa-sha1</cppa:SignatureAlgorithm>
            <cppa:DigestAlgorithm>http://www.w3.org/2000/09/xmldsig#sha1</cppa:DigestAlgorithm>
        </cppa:Signature>
        <!-- No receipt handling channels, because there are no receipts for receipts or errors -->
        <!-- No error handling channels, because there are no errors for errors or receipts -->
        <cppa:SyncRequestChannelId>ch3</cppa:SyncRequestChannelId>
    </cppa:ebMS2ProtocolBinding>

    <cppa:ebMS3ProtocolBinding id="pb5">
        <cppa:Description xml:lang="en">Channel used to receive ebMS3 business messages</cppa:Description>
        <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
        <cppa:WSSecurityBinding>
            <cppa:WSSVersion>1.1</cppa:WSSVersion>
            <cppa:Signature>
                <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
                <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
            </cppa:Signature>
        </cppa:WSSecurityBinding>
        <cppa:AS4ReceptionAwareness>
            <!-- We omit the BaseRetransmissionHandling as it is handled by the sender -->
            <cppa:DuplicateHandling>
                <cppa:DuplicateElimination>true</cppa:DuplicateElimination>
            </cppa:DuplicateHandling>
        </cppa:AS4ReceptionAwareness>
        <cppa:ErrorHandling>
            <cppa:ProcessErrorNotifyConsumer>false</cppa:ProcessErrorNotifyConsumer>
            <cppa:ReceiverErrorsReportChannelId>ch6</cppa:ReceiverErrorsReportChannelId>
        </cppa:ErrorHandling>
        <cppa:ReceiptHandling>
            <cppa:ReceiptChannelId>ch6</cppa:ReceiptChannelId>
        </cppa:ReceiptHandling>
    </cppa:ebMS3ProtocolBinding>

    <cppa:ebMS3ProtocolBinding id="pb6">
        <cppa:Description xml:lang="en">Channel used to send synchronous ebMS3 Errors and Receipts</cppa:Description>
        <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
        <cppa:WSSecurityBinding>
            <cppa:WSSVersion>1.1</cppa:WSSVersion>
            <cppa:Signature>
                <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
                <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
            </cppa:Signature>
        </cppa:WSSecurityBinding>
        <!-- No AS4ReceptionAwareness as we don't send receipts or errors reliably -->
        <!-- No receipt handling channels, because there are no receipts for receipts or errors -->
        <!-- No error handling channels, because there are no errors for errors or receipts -->
        <cppa:SyncRequestChannelId>ch5</cppa:SyncRequestChannelId>
    </cppa:ebMS3ProtocolBinding>
    
    <cppa:HTTPTransport id="tr1">
        <cppa:Description xml:lang="en">Party A in sender/client mode with state-of-the-art security</cppa:Description>
        <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4>
        <cppa:TransportLayerSecurity>
            <cppa:TLSProtocol>1.2</cppa:TLSProtocol>
            <!-- For this example just one cipher suite is provided, should be a set -->
            <cppa:CipherSuite>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</cppa:CipherSuite>
            <cppa:ClientCertificateRef certId="atlsclientcert"/>
        </cppa:TransportLayerSecurity>
    </cppa:HTTPTransport>
    
    <cppa:HTTPTransport id="tr3">
        <cppa:Description xml:lang="en">Party A in legacy sender/client mode</cppa:Description>
        <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4>
        <cppa:TransportLayerSecurity>
            <cppa:TLSProtocol>1.1</cppa:TLSProtocol>
            <cppa:CipherSuite>TLS_RSA_WITH_3DES_EDE_CBC_SHA</cppa:CipherSuite>
            <cppa:ClientCertificateRef certId="atlsclientcert"/>
        </cppa:TransportLayerSecurity>
    </cppa:HTTPTransport>

    <cppa:HTTPTransport id="tr5">
        <cppa:Description xml:lang="en">Party A in AS4 receiver/server mode</cppa:Description>
        <cppa:Endpoint>http://a.example.com:8080/as4handler</cppa:Endpoint>
        <cppa:TransportLayerSecurity>
            <cppa:TLSProtocol>1.2</cppa:TLSProtocol>
            <cppa:CipherSuite>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</cppa:CipherSuite>
            <cppa:ServerCertificateRef certId="atlsservercert"/>
        </cppa:TransportLayerSecurity>
    </cppa:HTTPTransport>
    
    <cppa:PayloadProfile id="pp1">
        <cppa:Description xml:lang="en">A UBL Order XML document and any number of PDF attachments</cppa:Description>
        <cppa:PayloadPart  minOccurs="1" maxOccurs="1" >
            <cppa:PartName>businessdocument</cppa:PartName>
            <cppa:MimeContentType>application/xml</cppa:MimeContentType>
            <cppa:Schema 
                location="http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-Order-2.1.xsd"; />
        </cppa:PayloadPart>
        <cppa:PayloadPart minOccurs="0" maxOccurs="unbounded">
            <cppa:PartName>attachment</cppa:PartName>
            <cppa:MimeContentType>application/pdf</cppa:MimeContentType>
        </cppa:PayloadPart>
    </cppa:PayloadProfile>

    <cppa:PayloadProfile id="pp2">
        <cppa:PayloadPart minOccurs="1" maxOccurs="1">
            <cppa:PartName>businessdocument</cppa:PartName>
            <cppa:MimeContentType>application/xml</cppa:MimeContentType>
            <cppa:Schema 
                location="http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-OrderResponse-2.1.xsd"; />
        </cppa:PayloadPart>
    </cppa:PayloadProfile>
    
    <cppa:SOAPWithAttachmentsEnvelope id="swa1" >
        <cppa:Description xml:lang="en">An ebMS3 SWA envelope, empty body all payload parts as separate compressed MIME parts.</cppa:Description>
        <cppa:CompressedMimePart CompressionType="application.gzip" >
            <cppa:SimpleMIMEPart PartName="businessdocument"/>
        </cppa:CompressedMimePart>
        <cppa:CompressedMimePart CompressionType="application.gzip" >
            <cppa:SimpleMIMEPart PartName="attachment"/>
        </cppa:CompressedMimePart>
    </cppa:SOAPWithAttachmentsEnvelope>
    
    <cppa:SOAPWithAttachmentsEnvelope id="swa2" >
        <cppa:Description xml:lang="en">An ebMS2 SWA envelope, all payload parts as separate MIME parts.</cppa:Description>
        <cppa:SimpleMIMEPart PartName="businessdocument"/>
        <cppa:SimpleMIMEPart PartName="attachment"/>
    </cppa:SOAPWithAttachmentsEnvelope>
    
</cppa:CPP>
<?xml version="1.0" encoding="UTF-8"?>
<cppa:CPP xmlns:cppa="http://docs.oasis-open.org/ebcore/ns/cppa-3.0";
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#";
    xmlns:dsig11="http://www.w3.org/2009/xmldsig11#";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xsi:schemaLocation="http://docs.oasis-open.org/ebxmlcppa/cppa-3.0 file:/home/pvde/Documents/Projects/CPA/cppa-ng/cppa3.xsd">
    <cppa:ProfileInfo>
        <cppa:ProfileIdentifier>Bcpp</cppa:ProfileIdentifier>
        <cppa:Description xml:lang="en">Collaboration Protocol Profile of Party B</cppa:Description>
        <cppa:ActivationDate>2015-01-01T00:00:00</cppa:ActivationDate>
        <cppa:ExpirationDate>2016-01-01T00:00:00</cppa:ExpirationDate>
        <cppa:PhaseIn>P7D</cppa:PhaseIn>
    </cppa:ProfileInfo>
    <cppa:PartyInfo>
        <cppa:PartyName xml:lang="en">Party B</cppa:PartyName>
        <cppa:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:0000">B</cppa:PartyId>
        
        <!-- Certificates for B -->
        <cppa:Certificate id="bsigningcert">
            <ds:KeyInfo>
                <!-- Incomplete .. -->
                <ds:KeyName>B's signing cert</ds:KeyName>
                <ds:X509Data>
                    <ds:X509SubjectName>B</ds:X509SubjectName>
                    <!-- certificates in chain -->
                    <ds:X509Certificate><!-- ... --></ds:X509Certificate>
                    <ds:X509Certificate><!-- ... --></ds:X509Certificate>
                    <ds:X509Certificate><!-- ... --></ds:X509Certificate>
                </ds:X509Data>
            </ds:KeyInfo>
        </cppa:Certificate>
        <cppa:Certificate id="btlsclientcert">
            <ds:KeyInfo>
                <!-- Incomplete .. -->
                <ds:KeyName>B's TLS client cert</ds:KeyName>
                <ds:X509Data>
                    <ds:X509SubjectName>B</ds:X509SubjectName>
                </ds:X509Data>
            </ds:KeyInfo>
        </cppa:Certificate>
        <cppa:Certificate id="btlsservercert">
            <ds:KeyInfo>
                <!-- Incomplete .. -->
                <ds:KeyName>B's TLS server cert</ds:KeyName>
            </ds:KeyInfo>
        </cppa:Certificate>

        <!-- A certificate that B trusts.  -->
        <cppa:Certificate id="atrustedroot">
            <ds:KeyInfo>
                <!-- Incomplete .. -->
                <ds:KeyName>A root</ds:KeyName>
                <ds:X509Data>
                    <ds:X509SubjectName>A Root</ds:X509SubjectName>
                </ds:X509Data>
            </ds:KeyInfo>
        </cppa:Certificate>
        
        <cppa:TrustAnchors>
            <cppa:AnchorCertificateRef certId="atrustedroot"/>
        </cppa:TrustAnchors>
        
        <cppa:ServiceCollaboration>
            <cppa:PartyRole name="Buyer"/>
            <cppa:CounterPartyRole name="Seller"/>
            <cppa:ServiceBinding>
                <cppa:Service>OrderingBilling</cppa:Service>
                <cppa:ActionBinding id="BiiTrns001_S" action="SubmitOrder" sendOrReceive="send" 
                    payloadProfileId="pp1">
                    <!-- Preferred channel is ch1,  alternative is ch3 -->
                    <cppa:ChannelId>ch1</cppa:ChannelId>
                    <cppa:ChannelId>ch3</cppa:ChannelId>
                </cppa:ActionBinding>
                
                <!--  The "AcceptOrder" and "RejectOrder" use the same UBL XSD and same channels, 
                    maximum reuse -->
                <cppa:ActionBinding id="BiiTrns003_R" action="AcceptOrder" sendOrReceive="receive" 
                    payloadProfileId="pp2">
                    <cppa:ChannelId>ch5</cppa:ChannelId>
                </cppa:ActionBinding>
                <cppa:ActionBinding id="BiiTrns002_R" action="RejectOrder" sendOrReceive="receive" 
                    payloadProfileId="pp2">
                    <cppa:ChannelId>ch5</cppa:ChannelId>
                </cppa:ActionBinding>
            </cppa:ServiceBinding>
        </cppa:ServiceCollaboration>
        
        <!-- Here the ebMS3 test service, defined in EBMS3CORE section 5.2.2, is configured to 
            use the same channel as SubmitOrder, so exchange of multiple compressed payload parts 
            are tested both in incoming and outgoing direction with the configured protocol binding.  -->
        <cppa:ServiceCollaboration>
            <cppa:Description xml:lang="en">The ebMS3 test service, in initiating mode
                Note that this Service reuses channel "ch1",  so it can be used to test the correct firewall,
                certificate, URL etc. for the SubmitOrder action.
            </cppa:Description>
            <cppa:PartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/>
            <cppa:CounterPartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/>
            <cppa:ServiceBinding>
                <cppa:Service>http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service</cppa:Service>
                <cppa:ActionBinding id="test_outgoing" 
                    action="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test"; 
                    sendOrReceive="send" payloadProfileId="pp1" >
                    <cppa:ChannelId>ch1</cppa:ChannelId>
                </cppa:ActionBinding>
            </cppa:ServiceBinding>
        </cppa:ServiceCollaboration>

        <cppa:ServiceCollaboration>
            <cppa:Description xml:lang="en">The ebMS3 test service,  in responding mode.
                Note that this Service reuses channel "ch5",  so it can be used to test the correct firewall,
                certificate, URL etc. for the AcceptOrder action.
            </cppa:Description>
            <cppa:PartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder"/>
            <cppa:CounterPartyRole name="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator"/>
            <cppa:ServiceBinding>
                <cppa:Service>http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service</cppa:Service>
                <cppa:ActionBinding id="test_incoming" 
                    action="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/test"; 
                    sendOrReceive="receive" payloadProfileId="pp1">
                    <cppa:ChannelId>ch5</cppa:ChannelId>
                </cppa:ActionBinding>
            </cppa:ServiceBinding>
        </cppa:ServiceCollaboration>
        
    </cppa:PartyInfo>
    
    <cppa:DeliveryChannel id="ch1" exchange="pb1" transport="tr1"  package="swa1" >
        <cppa:Description xml:lang="en">Channel used for outgoing ebMS3 business messages</cppa:Description>
    </cppa:DeliveryChannel>
    
    <cppa:DeliveryChannel id="ch2" exchange="pb2"  >
        <cppa:Description xml:lang="en">Channel used for returned ebMS3 receipts and errors</cppa:Description>
    </cppa:DeliveryChannel>
    
    <cppa:DeliveryChannel id="ch3" exchange="pb3" transport="tr3"  package="swa2" >
        <cppa:Description xml:lang="en">Channel used for outgoing ebMS2 business messages with legacy TLS</cppa:Description>
    </cppa:DeliveryChannel>
    
    <cppa:DeliveryChannel id="ch4" exchange="pb4"  >
        <cppa:Description xml:lang="en">Channel used for returned ebMS2 receipts and errors</cppa:Description>
    </cppa:DeliveryChannel>
    
    <cppa:DeliveryChannel id="ch5" exchange="pb5" transport="tr5"  package="swa1" >
        <cppa:Description xml:lang="en">Channel used for incoming ebMS3 business messages</cppa:Description>
    </cppa:DeliveryChannel>

    <cppa:DeliveryChannel id="ch6" exchange="pb6"  >
        <cppa:Description xml:lang="en">Channel used for returned ebMS3 receipts and errors</cppa:Description>
    </cppa:DeliveryChannel>
    
    <!-- for simplicity, there is no ebMS2 incoming channel for the AcceptOrder and RejectOrder actions, 
        though realistically there would be -->

    <cppa:ebMS3ProtocolBinding id="pb1">
        <cppa:Description xml:lang="en">Channel used to send UserMessages</cppa:Description>
        <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
        <cppa:WSSecurityBinding>
            <cppa:WSSVersion>1.1</cppa:WSSVersion>
            <cppa:Signature>
                <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
                <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
                <cppa:SigningCertificateRef certId="bsigningcert"/>
            </cppa:Signature>
        </cppa:WSSecurityBinding>
        <cppa:AS4ReceptionAwareness>
            <cppa:DuplicateHandling>
                <cppa:DuplicateElimination>true</cppa:DuplicateElimination>
            </cppa:DuplicateHandling>
            <cppa:BaseRetransmissionHandling>
                <cppa:Retries>2</cppa:Retries>
                <cppa:RetryInterval>PT2H</cppa:RetryInterval>
            </cppa:BaseRetransmissionHandling>
        </cppa:AS4ReceptionAwareness>
        <cppa:ErrorHandling>
            <cppa:DeliveryFailuresNotifyProducer>true</cppa:DeliveryFailuresNotifyProducer>
            <cppa:ProcessErrorNotifyProducer>true</cppa:ProcessErrorNotifyProducer>
            <cppa:ReceiverErrorsReportChannelId>ch2</cppa:ReceiverErrorsReportChannelId>
        </cppa:ErrorHandling>
        <cppa:ReceiptHandling>
            <cppa:ReceiptChannelId>ch2</cppa:ReceiptChannelId>
        </cppa:ReceiptHandling>
    </cppa:ebMS3ProtocolBinding>

    <cppa:ebMS3ProtocolBinding id="pb2">
        <cppa:Description xml:lang="en">Channel used to receive synchronous ebMS3 Errors and Receipts</cppa:Description>
        <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
        <cppa:WSSecurityBinding>
            <cppa:WSSVersion>1.1</cppa:WSSVersion>
            <cppa:Signature>
                <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
                <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
            </cppa:Signature>
        </cppa:WSSecurityBinding>
        <!-- No receipt handling channels, because there are no receipts for receipts or errors -->
        <!-- No error handling channels, because there are no errors for errors or receipts -->
        <cppa:SyncRequestChannelId>ch1</cppa:SyncRequestChannelId>
    </cppa:ebMS3ProtocolBinding>

    <cppa:ebMS2ProtocolBinding id="pb3">
        <cppa:Description xml:lang="en">ebMS2 channel for user messages</cppa:Description>
        <cppa:ReceiptHandling>
            <cppa:ReceiptChannelId>ch4</cppa:ReceiptChannelId>
        </cppa:ReceiptHandling>
        <cppa:ebMS2ReliableMessaging 
            actor="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH" 
            ordered="false">
            <cppa:BaseRetransmissionHandling>
                <cppa:Retries>2</cppa:Retries>
                <cppa:RetryInterval>PT2H</cppa:RetryInterval>
            </cppa:BaseRetransmissionHandling>
        </cppa:ebMS2ReliableMessaging>
        <cppa:Signature>
            <cppa:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#rsa-sha1</cppa:SignatureAlgorithm>
            <cppa:DigestAlgorithm>http://www.w3.org/2000/09/xmldsig#sha1</cppa:DigestAlgorithm>
        </cppa:Signature>
    </cppa:ebMS2ProtocolBinding>
    
    <cppa:ebMS2ProtocolBinding id="pb4">
        <cppa:Description xml:lang="en">ebMS2 synchronous error and receipt channel</cppa:Description>
        <!-- No ebMS2ReliableMessaging for errors and receipts -->
        <cppa:Signature>
            <cppa:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#rsa-sha1</cppa:SignatureAlgorithm>
            <cppa:DigestAlgorithm>http://www.w3.org/2000/09/xmldsig#sha1</cppa:DigestAlgorithm>
        </cppa:Signature>
        <!-- No receipt handling channels, because there are no receipts for receipts or errors -->
        <!-- No error handling channels, because there are no errors for errors or receipts -->
        <cppa:SyncRequestChannelId>ch3</cppa:SyncRequestChannelId>
    </cppa:ebMS2ProtocolBinding>

    <cppa:ebMS3ProtocolBinding id="pb5">
        <cppa:Description xml:lang="en">Channel used to receive ebMS3 business messages</cppa:Description>
        <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
        <cppa:WSSecurityBinding>
            <cppa:WSSVersion>1.1</cppa:WSSVersion>
            <cppa:Signature>
                <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
                <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
            </cppa:Signature>
        </cppa:WSSecurityBinding>
        <cppa:AS4ReceptionAwareness>
            <!-- We omit the BaseRetransmissionHandling as it is handled by the sender -->
            <cppa:DuplicateHandling>
                <cppa:DuplicateElimination>true</cppa:DuplicateElimination>
            </cppa:DuplicateHandling>
        </cppa:AS4ReceptionAwareness>
        <cppa:ErrorHandling>
            <cppa:ProcessErrorNotifyConsumer>false</cppa:ProcessErrorNotifyConsumer>
            <cppa:ReceiverErrorsReportChannelId>ch6</cppa:ReceiverErrorsReportChannelId>
        </cppa:ErrorHandling>
        <cppa:ReceiptHandling>
            <cppa:ReceiptChannelId>ch6</cppa:ReceiptChannelId>
        </cppa:ReceiptHandling>
    </cppa:ebMS3ProtocolBinding>

    <cppa:ebMS3ProtocolBinding id="pb6">
        <cppa:Description xml:lang="en">Channel used to send synchronous ebMS3 Errors and Receipts</cppa:Description>
        <cppa:SOAPVersion>1.2</cppa:SOAPVersion>
        <cppa:WSSecurityBinding>
            <cppa:WSSVersion>1.1</cppa:WSSVersion>
            <cppa:Signature>
                <cppa:SignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</cppa:SignatureAlgorithm>
                <cppa:DigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</cppa:DigestAlgorithm>
            </cppa:Signature>
        </cppa:WSSecurityBinding>
        <!-- No AS4ReceptionAwareness as we don't send receipts or errors reliably -->
        <!-- No receipt handling channels, because there are no receipts for receipts or errors -->
        <!-- No error handling channels, because there are no errors for errors or receipts -->
        <cppa:SyncRequestChannelId>ch5</cppa:SyncRequestChannelId>
    </cppa:ebMS3ProtocolBinding>
    
    <cppa:HTTPTransport id="tr1">
        <cppa:Description xml:lang="en">Party B in sender/client mode with state-of-the-art security</cppa:Description>
        <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4>
        <cppa:TransportLayerSecurity>
            <cppa:TLSProtocol>1.2</cppa:TLSProtocol>
            <!-- For this example just one cipher suite is provided, should be a set -->
            <cppa:CipherSuite>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</cppa:CipherSuite>
            <cppa:ClientCertificateRef certId="btlsclientcert"/>
        </cppa:TransportLayerSecurity>
    </cppa:HTTPTransport>
    
    <cppa:HTTPTransport id="tr3">
        <cppa:Description xml:lang="en">Party B in legacy sender/client mode</cppa:Description>
        <cppa:ClientIPv4>127.0.0.1</cppa:ClientIPv4>
        <cppa:TransportLayerSecurity>
            <cppa:TLSProtocol>1.1</cppa:TLSProtocol>
            <cppa:CipherSuite>TLS_RSA_WITH_3DES_EDE_CBC_SHA</cppa:CipherSuite>
            <cppa:ClientCertificateRef certId="btlsclientcert"/>
        </cppa:TransportLayerSecurity>
    </cppa:HTTPTransport>

    <cppa:HTTPTransport id="tr5">
        <cppa:Description xml:lang="en">Party B in AS4 receiver/server mode</cppa:Description>
        <cppa:Endpoint>http://b.example.com:8080/someotherhandler</cppa:Endpoint>
        <cppa:TransportLayerSecurity>
            <cppa:TLSProtocol>1.2</cppa:TLSProtocol>
            <cppa:CipherSuite>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</cppa:CipherSuite>
            <cppa:ServerCertificateRef certId="btlsservercert"/>
        </cppa:TransportLayerSecurity>
    </cppa:HTTPTransport>
    
    <cppa:PayloadProfile id="pp1">
        <cppa:Description xml:lang="en">A UBL Order XML document and any number of PDF attachments</cppa:Description>
        <cppa:PayloadPart  minOccurs="1" maxOccurs="1" >
            <cppa:PartName>businessdocument</cppa:PartName>
            <cppa:MimeContentType>application/xml</cppa:MimeContentType>
            <cppa:Schema 
                location="http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-Order-2.1.xsd"; />
        </cppa:PayloadPart>
        <cppa:PayloadPart minOccurs="0" maxOccurs="unbounded">
            <cppa:PartName>attachment</cppa:PartName>
            <cppa:MimeContentType>application/pdf</cppa:MimeContentType>
        </cppa:PayloadPart>
    </cppa:PayloadProfile>

    <cppa:PayloadProfile id="pp2">
        <cppa:PayloadPart minOccurs="1" maxOccurs="1">
            <cppa:PartName>businessdocument</cppa:PartName>
            <cppa:MimeContentType>application/xml</cppa:MimeContentType>
            <cppa:Schema 
                location="http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-OrderResponse-2.1.xsd"; />
        </cppa:PayloadPart>
    </cppa:PayloadProfile>
    
    <cppa:SOAPWithAttachmentsEnvelope id="swa1" >
        <cppa:Description xml:lang="en">An ebMS3 SWA envelope, empty body all payload parts as separate compressed MIME parts.</cppa:Description>
        <cppa:CompressedMimePart CompressionType="application.gzip" >
            <cppa:SimpleMIMEPart PartName="businessdocument"/>
        </cppa:CompressedMimePart>
        <cppa:CompressedMimePart CompressionType="application.gzip" >
            <cppa:SimpleMIMEPart PartName="attachment"/>
        </cppa:CompressedMimePart>
    </cppa:SOAPWithAttachmentsEnvelope>
    
    <cppa:SOAPWithAttachmentsEnvelope id="swa2" >
        <cppa:Description xml:lang="en">An ebMS2 SWA envelope, all payload parts as separate MIME parts.</cppa:Description>
        <cppa:SimpleMIMEPart PartName="businessdocument"/>
        <cppa:SimpleMIMEPart PartName="attachment"/>
    </cppa:SOAPWithAttachmentsEnvelope>
    
</cppa:CPP>


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