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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-cppa message

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


Subject: RE: [ebxml-cppa] Agenda for OASIS ebXML CPPA teleconference June 23, 2006 at 8 AM PDT (NDD,CPA services)


 
Hello Dale,
 
Two comments, one short and one longer:
1) I sent a message on defaulting for more attributes, which seems a separate topic:
http://lists.oasis-open.org/archives/ebxml-cppa/200606/msg00009.html
It's not very important though ..
 
2) On the topic of negotiation services I can report on some work I've done, based on the NDD concept described in http://www.oasis-open.org/committees/download.php/10193/Negotiation.req.06Mar02.pdf which you've pointed me too.  Below is some status information on that. I'd be interested in learning from the experts on the TC if you think this is going in the right direction.
 
My scope is (for practical reasons) limited to cases where, when working from a CPA template:
- any subtree that can be instantiated in the result CPA can only be set by one partner.
- there are no co-constraints on values of a parameter and values of any other parameters, whether supplied by the same partner or by other others.
- all constraints can be checked on parameter input.
This excludes some possible scenarios but covers many common uses of ebXML.
 
Basically, the idea is to have a very simple XML representation of the NDD concept. It names a template and provides a set of pairs of named parameters and XPath expression. See the attached "simple.ndd.xml" sample. 
 
Partners then need to supply a simple XML document with values.  Values can be atomic (text content or attribute values) or complete sub-structures (like a KeyInfo XML substructure). See the attached "simple.A.parameters.xml" and "simple.B.parameters.xml" samples.
 
With these limitations, there would be no need for a complex dialog of proposal/counter-proposals. Once all partners supply their parameters, the resulting CPA should be technically acceptable (it may stil be rejected for business reasons).
 
I wrote an XSLT based "compiler" which takes an NDD document and a CPA template, and generates, for each partner, a second (third .. n-th) XSLT-bsed "compiler", which in turn takes an XML parameter document and yields an instantiated CPA document by transformation.  A sample generated stylehsheet which instantiates the template with B's parameters is "cpa-example-2_0b.simple.B.xsl". When all partners have supplied their parameters, the transformation for each partner can be run as a pipeline in arbitrary order to generate the instantiated CPA. Sample "cpa-example-2_0b.simple.cpa2.xml" attached.
 
Questions/comments/thoughts:
[1] The template would be a complete CPA, so there is no separate CPA template schema and no need for changes to the CPA schema.  This is good, I think. The tp:Start and tp:End could be in the past and one or both PartyIds could be bogus. They would be set to their desired values by specifying them in the NDD and submitting them as parameter values.
 
[2] In the simplest case only one partner supplies parameters, and the other partner information is fully specificied.  The operation could then be implementable as a simple Request (parameters and value) Response (resulting CPA) operation.  However, it seems to me as if in practice at least @tp:cpaid, tp:Start and tp:End would always need to be set for each new CPA dynamically, i.e. not in the template. 
The start may have to be at least some working days after the CPA is configured to allow partners to configure other systems than the ebXML message handlers. If that is true, there will always be more than one partner supplying parameter values.  But if one partner e.g. "B" runs the CPA process, it could still retrieve its own parameters dynamically when A submits its CPA request, and send the combined resulting CPA back immediately.
 
[3] As for services, it seems to be there are two separate cases: 
1: A process for arriving at a uniquely identified, shared knowledge of a set of technical parameters and services to support construction of that set of parameters. I.e. a CpaId identifying a CPA XML document (or equivalent other representation of those parameters). This is what CPA formation/negotiation and this this message are about.
2: Service management functions:  request a partner to deploy a service (by CpaId), notifications of deploying a service (CpaId), notification of temporary unavailability of a service (CpaId, SuspendAt, ResumeAt), notification of premature termination of a service (CpaId, Date). 
Is this a useful distinction?
 
[4] Apart from generating a CPA from a template, in practice partners will often want to generate a CPA from a previously agreed CPA.  Suppose the URL of a partner's ebXML gateway changes, or a certificate expires. The amount of human intervention / supervision would be much lower than for a new business partner, perhaps it could be fully automated.  The process would be to:
-  Send messages to partners with as parameters the OldCpaId and the changed information. An NDD could be used to define which parameters can be changed in this way. Difference with working from a template are that only the changed information needs to be supplied, not all parameters. 
CPA is identified by NewCpaId.
-  Partner sends notification to partners that services NewCpaId is available, requests partners to deploy service NewCpaId at their end, and (optionally, if before the tp:End in OldCpa) notifies partners that OldCpaId will be shut down (after some transation period in which OldCpaId and NewCpaId are both available).  
The Certificate Exchange Message covers a special instance of this?
 
[5] Validity of supplied parameters will be done by the ebXML software that loads the configured CPAs.
But the NDD could mention additional constraints on the values (e.g. a list of alternatives). The run-time should check these when parameters are supplied.  My "compilers" don't have that capability yet, still working on that ..
 
[6] The mechanism could easily be generalized. It could reference more than one CPA template, so partners can configure multiple CPAs in one process. The only requirement is for the template to be a well-formed XML document.  It could also be an XML schema, ebBP process, WSDL .. The service management service messages could then be about multiple new/old CpaIds.  The mechanism could also be generalized to more than three or more partners ..
 
Pim
 


From: Dale Moberg [mailto:dmoberg@cyclonecommerce.com]
Sent: 21 June 2006 19:23
To: OASIS ebXML CPPA TC
Subject: [ebxml-cppa] Agenda for OASIS ebXML CPPA teleconference June 23, 2006 at 8 AM PDT

NEW numbers!!!

 

866 383 5205

732 694 1566 (for international callers)

 

144286# is the conference participant pin

 

Agenda

 

1. Flattening discussion continues

 

a. Reuse proposals from PIM discussion, adding an ID to MessagingCharacteristics and BusinessTransactionCharacteristics. Where to put the attribute of type IDREF to reference these? Where in the hierarchy to allow the MessagingCharacteristics and BusinessTransactionCharacteristics elements.

 

b. Adding xinclude?

 

c. ebMS 3.0 Pmode values, news?

 

d. Progress on schema modifications for flattening.

 

2. Cardinality revisited on ProcessSpecification, Role and Service.

 

3. Followup on negotiation services and wsdl approach?

 

 

<?xml version="1.0" encoding="UTF-8"?>
<NegotiationDescriptorDocument
    xmlns:tns="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd";
    version="0.1"
    cpaVersion="2.0"
    cpaTemplateId="cpa-example-2_0b"
    cpaTemplateUri="cpa-example-2_0b.cpa2.xml"
    NddId="simple">
    <Parameters role="A">
        <Parameter name="DeploymentStart" cpaType="text" 
            cpaContext="tns:CollaborationProtocolAgreement/tns:Start" />
        <Parameter name="DeploymentEnd" cpaType="text" 
            cpaContext="tns:CollaborationProtocolAgreement/tns:End" />
    </Parameters>
    
    <Parameters role="B">
        <Parameter name="PartyIdType" cpaType="attribute" cpaAttribute="tns:type"  
            cpaContext="tns:CollaborationProtocolAgreement/tns:PartyInfo[2]/tns:PartyId" />
        <Parameter name="EndpointUri" cpaType="attribute" cpaAttribute="tns:uri" 
            cpaContext="tns:CollaborationProtocolAgreement/tns:PartyInfo[2]//tns:Endpoint" />
        <Parameter name="CompanyB_ABID6conf" cpaType="attribute" cpaAttribute="tns:isConfidential" 
            cpaContext="tns:ThisPartyActionBinding[@tns:id='companyB_ABID6']//tns:BusinessTransactionCharacteristics" />
        <Parameter name="CompanyB_Cert" cpaType="value" 
            cpaContext="tns:CollaborationProtocolAgreement/tns:PartyInfo[2]//tns:Certificate[@tns:certId='CompanyB_ServerCert']" />
        <Parameter name="Retries" cpaType="text" 
            cpaContext="tns:DocExchange[@tns:docExchangeId='docExchangeB1']/tns:ebXMLSenderBinding/tns:ReliableMessaging/tns:Retries" />
       
    </Parameters>
    
</NegotiationDescriptorDocument>
<?xml version="1.0" encoding="UTF-8"?>
<NegotiationRequest     
    cpaTemplateId="cpa-example-2_0b"
    nddid="simple"
    role="B">
    <NDDReference>simple.ndd.xml</NDDReference>
    <Parameters>
        <Parameter name="PartyId">12345</Parameter>
        <Parameter name="PartyIdType">urn:gs1:gln</Parameter>
        <Parameter name="EndpointUri">http://businesspartner.org/hallo/ebXMLservlet</Parameter>
        <Parameter name="CompanyB_ABID6conf">transient</Parameter>
        <Parameter name="CompanyB_Cert">
            <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#";>
                <KeyValue>
                    <RSAKeyValue>
                        <Modulus>
                            k8q9IYl+jy7r+qfJjMlUYh4/vlfwaS/Lcdaq+XD8R+B5p4PH2Ixcq7WobYqEA6RWhg
                            4DEGRTrtg+raXQViEk60s9hVhg+ycLbAMJN+ycZpfP34h+6d/BQmGOuYi9GZ19qkEH
                            ZVrvPiNE1UQJGFKumUasv2Zl+eODU8VRZc9yAdU=
                        </Modulus>
                        <Exponent>AQAB</Exponent>
                    </RSAKeyValue>
                </KeyValue>
                <X509Data>
                    <X509IssuerSerial>
                        <X509IssuerName>CN=Partner B</X509IssuerName>
                        <X509SerialNumber>47566082345519996102501890583059901138</X509SerialNumber>
                    </X509IssuerSerial>
                    <X509SubjectName>CN=Partner B</X509SubjectName>
                    <X509Certificate>
                        MIIB2zCCAUSgAwIBAgIQI8jk7G4y/FqLO+0o5r4q0jANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQD
                        EwlQYXJ0bmVyIEIwHhcNMDYwNTIwMTkxNjU2WhcNMDgwNTIwMTkxNjU2WjAUMRIwEAYDVQQDEwlQ
                        YXJ0bmVyIEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJPKvSGJfo8u6/qnyYzJVGIeP75X
                        8Gkvy3HWqvlw/EfgeaeDx9iMXKu1qG2KhAOkVoYOAxBkU67YPq2l0FYhJOtLPYVYYPsnC2wDCTfs
                        nGaXz9+IfunfwUJhjrmIvRmdfapBB2Va7z4jRNVECRhSrplGrL9mZfnjg1PFUWXPcgHVAgMBAAGj
                        LjAsMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjALBgNVHQ8EBAMCAKAwDQYJKoZIhvcN
                        AQEFBQADgYEAhbISQsgOhQK9NjqfZFKquYbk0HS7SS6gwPEIScdZVE2YhnuspudCjBICzmjCCrhE
                        QdiR2dpqig7Y760/BobEvZf29zaIwZY6lAoe/t+PpbyVYbWE9qeRI82Q9d2ly55wspooElPNk+bJ
                        zUTMK8GhQlaPSoQigcN+LQ460wINo4M=
                    </X509Certificate>
                </X509Data>
            </KeyInfo>
        </Parameter>
        <Parameter name="Retries">10</Parameter>
    </Parameters>
</NegotiationRequest>
<?xml version="1.0" encoding="UTF-8"?>
<CPANegotiationRequest>
    <NDDReference>simple.ndd.xml</NDDReference>
    <Parameters>
        <Parameter name="DeploymentStart">2006-08-01T07:21:00Z</Parameter>
        <Parameter name="DeploymentEnd">2006-09-01T07:21:00Z</Parameter>
    </Parameters>
</CPANegotiationRequest>
<?xml version="1.0" encoding="UTF-8"?><!-- Copyright UN/CEFACT and OASIS, 2001. All Rights Reserved. --><tp:CollaborationProtocolAgreement xmlns:tp="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xlink="http://www.w3.org/1999/xlink"; xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:tns="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd    http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; tns:cpaid="e40afcae-4d41-4f79-9344-b6778604527f" tp:version="2_0b">
  <tp:Status tp:value="proposed"/>
  <tp:Start>2008-05-20T07:21:00Z</tp:Start>
  <tp:End>2002-05-20T07:21:00Z</tp:End>
  <tp:ConversationConstraints tp:invocationLimit="100" tp:concurrentConversations="10"/>
  <!-- Party info for CompanyA -->
  <tp:PartyInfo tp:partyName="CompanyA" tp:defaultMshChannelId="asyncChannelA1" tp:defaultMshPackageId="CompanyA_MshSignalPackage">
    <tp:PartyId tp:type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">123456789</tp:PartyId>
    <tp:PartyRef xlink:href="http://CompanyA.com/about.html"/>
    <tp:CollaborationRole>
      <tp:ProcessSpecification tp:version="2.0" tp:name="PIP3A4RequestPurchaseOrder" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml"; tp:uuid="urn:icann:rosettanet.org:bpid:3A4$2.0"/>
      <tp:Role tp:name="Buyer" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml#Buyer"/>
      <tp:ApplicationCertificateRef tp:certId="CompanyA_AppCert"/>
      <tp:ServiceBinding>
        <tp:Service>bpid:icann:rosettanet.org:3A4$2.0</tp:Service>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID1" tp:action="Purchase Order Request Action" tp:packageId="CompanyA_RequestPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H" tp:timeToPerform="P1D"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID4</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID2" tp:action="ReceiptAcknowledgement" tp:packageId="CompanyA_ReceiptAcknowledgmentPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID5</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <!-- The next binding uses a synchronous delivery channel -->
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID6" tp:action="Purchase Order Request Action" tp:packageId="CompanyA_RequestPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M" tp:timeToPerform="PT5M"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/>
            <tp:ChannelId>syncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID6</tp:OtherPartyActionBinding>
          <tp:CanReceive>
            <tp:ThisPartyActionBinding tp:id="companyA_ABID7" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyA_SyncReplyPackage">
              <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M"/>
              <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/>
              <tp:ChannelId>syncChannelA1</tp:ChannelId>
            </tp:ThisPartyActionBinding>
            <tp:OtherPartyActionBinding>companyB_ABID7</tp:OtherPartyActionBinding>
          </tp:CanReceive>
          <tp:CanReceive>
            <tp:ThisPartyActionBinding tp:id="companyA_ABID8" tp:action="Exception" tp:packageId="CompanyA_ExceptionPackage">
              <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
              <tp:ChannelId>syncChannelA1</tp:ChannelId>
            </tp:ThisPartyActionBinding>
            <tp:OtherPartyActionBinding>companyB_ABID8</tp:OtherPartyActionBinding>
          </tp:CanReceive>
        </tp:CanSend>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID3" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyA_ResponsePackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID1</tp:OtherPartyActionBinding>
        </tp:CanReceive>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID4" tp:action="ReceiptAcknowledgment" tp:packageId="CompanyA_ReceiptAcknowledgmentPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID2</tp:OtherPartyActionBinding>
        </tp:CanReceive>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID5" tp:action="Exception" tp:packageId="CompanyA_ExceptionPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID3</tp:OtherPartyActionBinding>
        </tp:CanReceive>
      </tp:ServiceBinding>
    </tp:CollaborationRole>
    <!-- Certificates used by the "Buyer" company -->
    <tp:Certificate tp:certId="CompanyA_AppCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_AppCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyA_SigningCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_SigningCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyA_EncryptionCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_EncryptionCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyA_ServerCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_ServerCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyA_ClientCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_ClientCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA1">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA1_Key </ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA2">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA2_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA3">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA3_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA4">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA4_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA5">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA5_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:SecurityDetails tp:securityId="CompanyA_TransportSecurity">
      <tp:TrustAnchors>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA1"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA2"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA4"/>
      </tp:TrustAnchors>
    </tp:SecurityDetails>
    <tp:SecurityDetails tp:securityId="CompanyA_MessageSecurity">
      <tp:TrustAnchors>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA3"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA5"/>
      </tp:TrustAnchors>
    </tp:SecurityDetails>
    <tp:DeliveryChannel tp:channelId="asyncChannelA1" tp:transportId="transportA1" tp:docExchangeId="docExchangeA1">
      <tp:MessagingCharacteristics tp:syncReplyMode="none" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/>
    </tp:DeliveryChannel>
    <tp:DeliveryChannel tp:channelId="syncChannelA1" tp:transportId="transportA2" tp:docExchangeId="docExchangeA1">
      <tp:MessagingCharacteristics tp:syncReplyMode="signalsAndResponse" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/>
    </tp:DeliveryChannel>
    <tp:Transport tp:transportId="transportA1">
      <tp:TransportSender>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:TransportClientSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ClientCertificateRef tp:certId="CompanyA_ClientCert"/>
          <tp:ServerSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/>
        </tp:TransportClientSecurity>
      </tp:TransportSender>
      <tp:TransportReceiver>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:Endpoint tp:uri="https://www.CompanyA.com/servlets/ebxmlhandler/async"; tp:type="allPurpose"/>
        <tp:TransportServerSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ServerCertificateRef tp:certId="CompanyA_ServerCert"/>
          <tp:ClientSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/>
        </tp:TransportServerSecurity>
      </tp:TransportReceiver>
    </tp:Transport>
    <tp:Transport tp:transportId="transportA2">
      <tp:TransportSender>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:TransportClientSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ClientCertificateRef tp:certId="CompanyA_ClientCert"/>
          <tp:ServerSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/>
        </tp:TransportClientSecurity>
      </tp:TransportSender>
      <tp:TransportReceiver>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:Endpoint tp:uri="https://www.CompanyA.com/servlets/ebxmlhandler/sync"; tp:type="allPurpose"/>
        <tp:TransportServerSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ServerCertificateRef tp:certId="CompanyA_ServerCert"/>
          <tp:ClientSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/>
        </tp:TransportServerSecurity>
      </tp:TransportReceiver>
    </tp:Transport>
    <tp:DocExchange tp:docExchangeId="docExchangeA1">
      <tp:ebXMLSenderBinding tp:version="2.0">
        <tp:ReliableMessaging>
          <tp:Retries>3</tp:Retries>
          <tp:RetryInterval>PT2H</tp:RetryInterval>
          <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics>
        </tp:ReliableMessaging>
        <tp:PersistDuration>P1D</tp:PersistDuration>
        <tp:SenderNonRepudiation>
          <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol>
          <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction>
          <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm>
          <tp:SigningCertificateRef tp:certId="CompanyA_SigningCert"/>
        </tp:SenderNonRepudiation>
        <tp:SenderDigitalEnvelope>
          <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol>
          <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm>
          <tp:EncryptionSecurityDetailsRef tp:securityId="CompanyA_MessageSecurity"/>
        </tp:SenderDigitalEnvelope>
      </tp:ebXMLSenderBinding>
      <tp:ebXMLReceiverBinding tp:version="2.0">
        <tp:ReliableMessaging>
          <tp:Retries>3</tp:Retries>
          <tp:RetryInterval>PT2H</tp:RetryInterval>
          <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics>
        </tp:ReliableMessaging>
        <tp:PersistDuration>P1D</tp:PersistDuration>
        <tp:ReceiverNonRepudiation>
          <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol>
          <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction>
          <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm>
          <tp:SigningSecurityDetailsRef tp:securityId="CompanyA_MessageSecurity"/>
        </tp:ReceiverNonRepudiation>
        <tp:ReceiverDigitalEnvelope>
          <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol>
          <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm>
          <tp:EncryptionCertificateRef tp:certId="CompanyA_EncryptionCert"/>
        </tp:ReceiverDigitalEnvelope>
      </tp:ebXMLReceiverBinding>
    </tp:DocExchange>
  </tp:PartyInfo>
  <!-- Party info for CompanyB -->
  <tp:PartyInfo tp:partyName="CompanyB" tp:defaultMshChannelId="asyncChannelB1" tp:defaultMshPackageId="CompanyB_MshSignalPackage">
    <tp:PartyId tns:type="urn:gs1:gln">12345</tp:PartyId>
    <tp:PartyRef xlink:type="simple" xlink:href="http://CompanyB.com/about.html"/>
    <tp:CollaborationRole>
      <tp:ProcessSpecification tp:version="2.0" tp:name="PIP3A4RequestPurchaseOrder" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml"; tp:uuid="urn:icann:rosettanet.org:bpid:3A4$2.0"/>
      <tp:Role tp:name="Seller" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml#seller"/>
      <tp:ApplicationCertificateRef tp:certId="CompanyB_AppCert"/>
      <tp:ServiceBinding>
        <tp:Service>bpid:icann:rosettanet.org:3A4$2.0</tp:Service>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID1" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyB_ResponsePackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID3</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID2" tp:action="ReceiptAcknowledgement" tp:packageId="CompanyB_ReceiptAcknowledgmentPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID4</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID3" tp:action="Exception" tp:packageId="CompanyB_ExceptionPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID5</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID4" tp:action="Purchase Order Request Action" tp:packageId="CompanyB_RequestPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H" tp:timeToPerform="P1D"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID1</tp:OtherPartyActionBinding>
        </tp:CanReceive>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID5" tp:action="ReceiptAcknowledgment" tp:packageId="CompanyB_ReceiptAcknowledgmentPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID2</tp:OtherPartyActionBinding>
        </tp:CanReceive>
        <!-- The next binding uses a synchronous delivery channel -->
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID6" tp:action="Purchase Order Request Action" tp:packageId="CompanyB_RequestPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tns:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M" tp:timeToPerform="PT5M"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/>
            <tp:ChannelId>syncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID6</tp:OtherPartyActionBinding>
          <tp:CanSend>
            <tp:ThisPartyActionBinding tp:id="companyB_ABID7" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyB_SyncReplyPackage">
              <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M"/>
              <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/>
              <tp:ChannelId>syncChannelB1</tp:ChannelId>
            </tp:ThisPartyActionBinding>
            <tp:OtherPartyActionBinding>companyA_ABID7</tp:OtherPartyActionBinding>
          </tp:CanSend>
          <tp:CanSend>
            <tp:ThisPartyActionBinding tp:id="companyB_ABID8" tp:action="Exception" tp:packageId="CompanyB_ExceptionPackage">
              <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
              <tp:ChannelId>syncChannelB1</tp:ChannelId>
            </tp:ThisPartyActionBinding>
            <tp:OtherPartyActionBinding>companyA_ABID8</tp:OtherPartyActionBinding>
          </tp:CanSend>
        </tp:CanReceive>
      </tp:ServiceBinding>
    </tp:CollaborationRole>
    <!-- Certificates used by the "Seller" company -->
    <tp:Certificate tp:certId="CompanyB_AppCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyB_AppCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyB_SigningCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyB_Signingcert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyB_EncryptionCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyB_EncryptionCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyB_ServerCert">
            <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#";>
                <KeyValue>
                    <RSAKeyValue>
                        <Modulus>
                            k8q9IYl+jy7r+qfJjMlUYh4/vlfwaS/Lcdaq+XD8R+B5p4PH2Ixcq7WobYqEA6RWhg
                            4DEGRTrtg+raXQViEk60s9hVhg+ycLbAMJN+ycZpfP34h+6d/BQmGOuYi9GZ19qkEH
                            ZVrvPiNE1UQJGFKumUasv2Zl+eODU8VRZc9yAdU=
                        </Modulus>
                        <Exponent>AQAB</Exponent>
                    </RSAKeyValue>
                </KeyValue>
                <X509Data>
                    <X509IssuerSerial>
                        <X509IssuerName>CN=Partner B</X509IssuerName>
                        <X509SerialNumber>47566082345519996102501890583059901138</X509SerialNumber>
                    </X509IssuerSerial>
                    <X509SubjectName>CN=Partner B</X509SubjectName>
                    <X509Certificate>
                        MIIB2zCCAUSgAwIBAgIQI8jk7G4y/FqLO+0o5r4q0jANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQD
                        EwlQYXJ0bmVyIEIwHhcNMDYwNTIwMTkxNjU2WhcNMDgwNTIwMTkxNjU2WjAUMRIwEAYDVQQDEwlQ
                        YXJ0bmVyIEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJPKvSGJfo8u6/qnyYzJVGIeP75X
                        8Gkvy3HWqvlw/EfgeaeDx9iMXKu1qG2KhAOkVoYOAxBkU67YPq2l0FYhJOtLPYVYYPsnC2wDCTfs
                        nGaXz9+IfunfwUJhjrmIvRmdfapBB2Va7z4jRNVECRhSrplGrL9mZfnjg1PFUWXPcgHVAgMBAAGj
                        LjAsMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjALBgNVHQ8EBAMCAKAwDQYJKoZIhvcN
                        AQEFBQADgYEAhbISQsgOhQK9NjqfZFKquYbk0HS7SS6gwPEIScdZVE2YhnuspudCjBICzmjCCrhE
                        QdiR2dpqig7Y760/BobEvZf29zaIwZY6lAoe/t+PpbyVYbWE9qeRI82Q9d2ly55wspooElPNk+bJ
                        zUTMK8GhQlaPSoQigcN+LQ460wINo4M=
                    </X509Certificate>
                </X509Data>
            </KeyInfo>
        </tp:Certificate>
    <tp:Certificate tp:certId="CompanyB_ClientCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyB_ClientCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB4">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB4_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB5">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB5_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB6">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB6_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB7">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB7_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB8">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB8_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:SecurityDetails tp:securityId="CompanyB_TransportSecurity">
      <tp:TrustAnchors>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB5"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB6"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB4"/>
      </tp:TrustAnchors>
    </tp:SecurityDetails>
    <tp:SecurityDetails tp:securityId="CompanyB_MessageSecurity">
      <tp:TrustAnchors>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB8"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB7"/>
      </tp:TrustAnchors>
    </tp:SecurityDetails>
    <!-- An asynchronous delivery channel -->
    <tp:DeliveryChannel tp:channelId="asyncChannelB1" tp:transportId="transportB1" tp:docExchangeId="docExchangeB1">
      <tp:MessagingCharacteristics tp:syncReplyMode="none" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/>
    </tp:DeliveryChannel>
    <!-- A synchronous delivery channel -->
    <tp:DeliveryChannel tp:channelId="syncChannelB1" tp:transportId="transportB2" tp:docExchangeId="docExchangeB1">
      <tp:MessagingCharacteristics tp:syncReplyMode="signalsAndResponse" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/>
    </tp:DeliveryChannel>
    <tp:Transport tp:transportId="transportB1">
      <tp:TransportSender>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:TransportClientSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ClientCertificateRef tp:certId="CompanyB_ClientCert"/>
          <tp:ServerSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/>
        </tp:TransportClientSecurity>
      </tp:TransportSender>
      <tp:TransportReceiver>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:Endpoint tns:uri="http://businesspartner.org/hallo/ebXMLservlet"; tp:type="allPurpose"/>
        <tp:TransportServerSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ServerCertificateRef tp:certId="CompanyB_ServerCert"/>
          <tp:ClientSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/>
        </tp:TransportServerSecurity>
      </tp:TransportReceiver>
    </tp:Transport>
    <tp:Transport tp:transportId="transportB2">
      <tp:TransportSender>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:TransportClientSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ClientCertificateRef tp:certId="CompanyB_ClientCert"/>
          <tp:ServerSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/>
        </tp:TransportClientSecurity>
      </tp:TransportSender>
      <tp:TransportReceiver>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:Endpoint tns:uri="http://businesspartner.org/hallo/ebXMLservlet"; tp:type="allPurpose"/>
        <tp:TransportServerSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ServerCertificateRef tp:certId="CompanyB_ServerCert"/>
          <tp:ClientSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/>
        </tp:TransportServerSecurity>
      </tp:TransportReceiver>
    </tp:Transport>
    <tp:DocExchange tp:docExchangeId="docExchangeB1">
      <tp:ebXMLSenderBinding tp:version="2.0">
        <tp:ReliableMessaging>
          <tp:Retries>10</tp:Retries>
          <tp:RetryInterval>PT2H</tp:RetryInterval>
          <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics>
        </tp:ReliableMessaging>
        <tp:PersistDuration>P1D</tp:PersistDuration>
        <tp:SenderNonRepudiation>
          <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol>
          <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction>
          <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm>
          <tp:SigningCertificateRef tp:certId="CompanyB_SigningCert"/>
        </tp:SenderNonRepudiation>
        <tp:SenderDigitalEnvelope>
          <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol>
          <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm>
          <tp:EncryptionSecurityDetailsRef tp:securityId="CompanyB_MessageSecurity"/>
        </tp:SenderDigitalEnvelope>
      </tp:ebXMLSenderBinding>
      <tp:ebXMLReceiverBinding tp:version="2.0">
        <tp:ReliableMessaging>
          <tp:Retries>3</tp:Retries>
          <tp:RetryInterval>PT2H</tp:RetryInterval>
          <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics>
        </tp:ReliableMessaging>
        <tp:PersistDuration>P1D</tp:PersistDuration>
        <tp:ReceiverNonRepudiation>
          <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol>
          <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction>
          <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm>
          <tp:SigningSecurityDetailsRef tp:securityId="CompanyB_MessageSecurity"/>
        </tp:ReceiverNonRepudiation>
        <tp:ReceiverDigitalEnvelope>
          <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol>
          <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm>
          <tp:EncryptionCertificateRef tp:certId="CompanyB_EncryptionCert"/>
        </tp:ReceiverDigitalEnvelope>
      </tp:ebXMLReceiverBinding>
    </tp:DocExchange>
  </tp:PartyInfo>
  <!-- SimplePart corresponding to the SOAP Envelope -->
  <tp:SimplePart tp:id="CompanyA_MsgHdr" tp:mimetype="text/xml">
    <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; tp:version="2.0">
      http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd
  </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_MsgHdr" tp:mimetype="text/xml">
    <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; tp:version="2.0">
      http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd
  </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- SimplePart corresponding to a Receipt Acknowledgment business signal -->
  <tp:SimplePart tp:id="CompanyA_ReceiptAcknowledgment" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd"; tp:version="2.0">http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_ReceiptAcknowledgment" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd"; tp:version="2.0">
      http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- SimplePart corresponding to an Exception business signal -->
  <tp:SimplePart tp:id="CompanyA_Exception" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; tp:version="2.0">
      http://www.ebxml.org/bpss/Exception.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_Exception" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; tp:version="2.0">
      http://www.ebxml.org/bpss/Exception.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- SimplePart corresponding to a request action -->
  <tp:SimplePart tp:id="CompanyA_Request" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd"; tp:version="1.0">
      http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_Request" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd"; tp:version="1.0">
      http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- SimplePart corresponding to a response action -->
  <tp:SimplePart tp:id="CompanyA_Response" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PurchaseOrderConfirmation.xsd"; tp:version="1.0">
      http://www.rosettanet.org/schemas/PIP3A4PurchaseOrderConfirmation.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_Response" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PurchaseOrderConfirmation.xsd"; tp:version="1.0">
      http://www.rosettanet.org/schemas/PIP3A4PurchaseOrderConfirmation.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- An ebXML message with a SOAP Envelope only -->
  <tp:Packaging tp:id="CompanyA_MshSignalPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_MshSignal" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_MshSignalPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_MshSignal" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a SOAP Envelope plus a request action payload -->
  <tp:Packaging tp:id="CompanyA_RequestPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_RequestMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_Request"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_RequestPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_RequestMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_Request"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a SOAP Envelope plus a response action payload -->
  <tp:Packaging tp:id="CompanyA_ResponsePackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_ResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_Response"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_ResponsePackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_ResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_Response"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a SOAP Envelope plus a Receipt Acknowledgment payload -->
  <tp:Packaging tp:id="CompanyA_ReceiptAcknowledgmentPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_ReceiptAcknowledgmentMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_ReceiptAcknowledgment"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_ReceiptAcknowledgmentPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_ReceiptAcknowledgmentMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_ReceiptAcknowledgment"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a SOAP Envelope plus an Exception payload -->
  <tp:Packaging tp:id="CompanyA_ExceptionPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_ExceptionMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_Exception"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_ExceptionPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_ExceptionMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_Exception"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a Receipt Acknowledgment signal, plus a business response,
       or an ebXML message with an Exception signal -->
  <tp:Packaging tp:id="CompanyA_SyncReplyPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_SignalAndResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_ReceiptAcknowledgment"/>
        <tp:Constituent tp:idref="CompanyA_Response"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_SyncReplyPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_SignalAndResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_ReceiptAcknowledgment"/>
        <tp:Constituent tp:idref="CompanyB_Response"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Comment xml:lang="en-US">buy/sell agreement between CompanyA.com and CompanyB.com</tp:Comment>
</tp:CollaborationProtocolAgreement>
<?xml version="1.0" encoding="UTF-8"?><!-- Copyright UN/CEFACT and OASIS, 2001. All Rights Reserved. --><tp:CollaborationProtocolAgreement xmlns:tp="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xlink="http://www.w3.org/1999/xlink"; xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd    http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; tp:cpaid="uri:companyA-and-companyB-cpa" tp:version="2_0b">
  <tp:Status tp:value="proposed"/>
  <tp:Start>2006-08-01T07:21:00Z</tp:Start>
  <tp:End>2006-09-01T07:21:00Z</tp:End>
  <tp:ConversationConstraints tp:invocationLimit="100" tp:concurrentConversations="10"/>
  <!-- Party info for CompanyA -->
  <tp:PartyInfo tp:partyName="CompanyA" tp:defaultMshChannelId="asyncChannelA1" tp:defaultMshPackageId="CompanyA_MshSignalPackage">
    <tp:PartyId tp:type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">123456789</tp:PartyId>
    <tp:PartyRef xlink:href="http://CompanyA.com/about.html"/>
    <tp:CollaborationRole>
      <tp:ProcessSpecification tp:version="2.0" tp:name="PIP3A4RequestPurchaseOrder" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml"; tp:uuid="urn:icann:rosettanet.org:bpid:3A4$2.0"/>
      <tp:Role tp:name="Buyer" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml#Buyer"/>
      <tp:ApplicationCertificateRef tp:certId="CompanyA_AppCert"/>
      <tp:ServiceBinding>
        <tp:Service>bpid:icann:rosettanet.org:3A4$2.0</tp:Service>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID1" tp:action="Purchase Order Request Action" tp:packageId="CompanyA_RequestPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H" tp:timeToPerform="P1D"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID4</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID2" tp:action="ReceiptAcknowledgement" tp:packageId="CompanyA_ReceiptAcknowledgmentPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID5</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <!-- The next binding uses a synchronous delivery channel -->
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID6" tp:action="Purchase Order Request Action" tp:packageId="CompanyA_RequestPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M" tp:timeToPerform="PT5M"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/>
            <tp:ChannelId>syncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID6</tp:OtherPartyActionBinding>
          <tp:CanReceive>
            <tp:ThisPartyActionBinding tp:id="companyA_ABID7" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyA_SyncReplyPackage">
              <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M"/>
              <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/>
              <tp:ChannelId>syncChannelA1</tp:ChannelId>
            </tp:ThisPartyActionBinding>
            <tp:OtherPartyActionBinding>companyB_ABID7</tp:OtherPartyActionBinding>
          </tp:CanReceive>
          <tp:CanReceive>
            <tp:ThisPartyActionBinding tp:id="companyA_ABID8" tp:action="Exception" tp:packageId="CompanyA_ExceptionPackage">
              <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
              <tp:ChannelId>syncChannelA1</tp:ChannelId>
            </tp:ThisPartyActionBinding>
            <tp:OtherPartyActionBinding>companyB_ABID8</tp:OtherPartyActionBinding>
          </tp:CanReceive>
        </tp:CanSend>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID3" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyA_ResponsePackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID1</tp:OtherPartyActionBinding>
        </tp:CanReceive>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID4" tp:action="ReceiptAcknowledgment" tp:packageId="CompanyA_ReceiptAcknowledgmentPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID2</tp:OtherPartyActionBinding>
        </tp:CanReceive>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyA_ABID5" tp:action="Exception" tp:packageId="CompanyA_ExceptionPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelA1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyB_ABID3</tp:OtherPartyActionBinding>
        </tp:CanReceive>
      </tp:ServiceBinding>
    </tp:CollaborationRole>
    <!-- Certificates used by the "Buyer" company -->
    <tp:Certificate tp:certId="CompanyA_AppCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_AppCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyA_SigningCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_SigningCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyA_EncryptionCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_EncryptionCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyA_ServerCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_ServerCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyA_ClientCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyA_ClientCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA1">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA1_Key </ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA2">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA2_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA3">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA3_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA4">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA4_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertA5">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertA5_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:SecurityDetails tp:securityId="CompanyA_TransportSecurity">
      <tp:TrustAnchors>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA1"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA2"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA4"/>
      </tp:TrustAnchors>
    </tp:SecurityDetails>
    <tp:SecurityDetails tp:securityId="CompanyA_MessageSecurity">
      <tp:TrustAnchors>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA3"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertA5"/>
      </tp:TrustAnchors>
    </tp:SecurityDetails>
    <tp:DeliveryChannel tp:channelId="asyncChannelA1" tp:transportId="transportA1" tp:docExchangeId="docExchangeA1">
      <tp:MessagingCharacteristics tp:syncReplyMode="none" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/>
    </tp:DeliveryChannel>
    <tp:DeliveryChannel tp:channelId="syncChannelA1" tp:transportId="transportA2" tp:docExchangeId="docExchangeA1">
      <tp:MessagingCharacteristics tp:syncReplyMode="signalsAndResponse" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/>
    </tp:DeliveryChannel>
    <tp:Transport tp:transportId="transportA1">
      <tp:TransportSender>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:TransportClientSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ClientCertificateRef tp:certId="CompanyA_ClientCert"/>
          <tp:ServerSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/>
        </tp:TransportClientSecurity>
      </tp:TransportSender>
      <tp:TransportReceiver>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:Endpoint tp:uri="https://www.CompanyA.com/servlets/ebxmlhandler/async"; tp:type="allPurpose"/>
        <tp:TransportServerSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ServerCertificateRef tp:certId="CompanyA_ServerCert"/>
          <tp:ClientSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/>
        </tp:TransportServerSecurity>
      </tp:TransportReceiver>
    </tp:Transport>
    <tp:Transport tp:transportId="transportA2">
      <tp:TransportSender>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:TransportClientSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ClientCertificateRef tp:certId="CompanyA_ClientCert"/>
          <tp:ServerSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/>
        </tp:TransportClientSecurity>
      </tp:TransportSender>
      <tp:TransportReceiver>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:Endpoint tp:uri="https://www.CompanyA.com/servlets/ebxmlhandler/sync"; tp:type="allPurpose"/>
        <tp:TransportServerSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ServerCertificateRef tp:certId="CompanyA_ServerCert"/>
          <tp:ClientSecurityDetailsRef tp:securityId="CompanyA_TransportSecurity"/>
        </tp:TransportServerSecurity>
      </tp:TransportReceiver>
    </tp:Transport>
    <tp:DocExchange tp:docExchangeId="docExchangeA1">
      <tp:ebXMLSenderBinding tp:version="2.0">
        <tp:ReliableMessaging>
          <tp:Retries>3</tp:Retries>
          <tp:RetryInterval>PT2H</tp:RetryInterval>
          <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics>
        </tp:ReliableMessaging>
        <tp:PersistDuration>P1D</tp:PersistDuration>
        <tp:SenderNonRepudiation>
          <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol>
          <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction>
          <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm>
          <tp:SigningCertificateRef tp:certId="CompanyA_SigningCert"/>
        </tp:SenderNonRepudiation>
        <tp:SenderDigitalEnvelope>
          <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol>
          <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm>
          <tp:EncryptionSecurityDetailsRef tp:securityId="CompanyA_MessageSecurity"/>
        </tp:SenderDigitalEnvelope>
      </tp:ebXMLSenderBinding>
      <tp:ebXMLReceiverBinding tp:version="2.0">
        <tp:ReliableMessaging>
          <tp:Retries>3</tp:Retries>
          <tp:RetryInterval>PT2H</tp:RetryInterval>
          <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics>
        </tp:ReliableMessaging>
        <tp:PersistDuration>P1D</tp:PersistDuration>
        <tp:ReceiverNonRepudiation>
          <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol>
          <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction>
          <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm>
          <tp:SigningSecurityDetailsRef tp:securityId="CompanyA_MessageSecurity"/>
        </tp:ReceiverNonRepudiation>
        <tp:ReceiverDigitalEnvelope>
          <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol>
          <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm>
          <tp:EncryptionCertificateRef tp:certId="CompanyA_EncryptionCert"/>
        </tp:ReceiverDigitalEnvelope>
      </tp:ebXMLReceiverBinding>
    </tp:DocExchange>
  </tp:PartyInfo>
  <!-- Party info for CompanyB -->
  <tp:PartyInfo tp:partyName="CompanyB" tp:defaultMshChannelId="asyncChannelB1" tp:defaultMshPackageId="CompanyB_MshSignalPackage">
    <tp:PartyId xmlns:tns="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; tns:type="urn:gs1:gln">987654321</tp:PartyId>
    <tp:PartyRef xlink:type="simple" xlink:href="http://CompanyB.com/about.html"/>
    <tp:CollaborationRole>
      <tp:ProcessSpecification tp:version="2.0" tp:name="PIP3A4RequestPurchaseOrder" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml"; tp:uuid="urn:icann:rosettanet.org:bpid:3A4$2.0"/>
      <tp:Role tp:name="Seller" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml#seller"/>
      <tp:ApplicationCertificateRef tp:certId="CompanyB_AppCert"/>
      <tp:ServiceBinding>
        <tp:Service>bpid:icann:rosettanet.org:3A4$2.0</tp:Service>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID1" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyB_ResponsePackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID3</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID2" tp:action="ReceiptAcknowledgement" tp:packageId="CompanyB_ReceiptAcknowledgmentPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID4</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <tp:CanSend>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID3" tp:action="Exception" tp:packageId="CompanyB_ExceptionPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID5</tp:OtherPartyActionBinding>
        </tp:CanSend>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID4" tp:action="Purchase Order Request Action" tp:packageId="CompanyB_RequestPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT2H" tp:timeToPerform="P1D"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID1</tp:OtherPartyActionBinding>
        </tp:CanReceive>
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID5" tp:action="ReceiptAcknowledgment" tp:packageId="CompanyB_ReceiptAcknowledgmentPackage">
            <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
            <tp:ChannelId>asyncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID2</tp:OtherPartyActionBinding>
        </tp:CanReceive>
        <!-- The next binding uses a synchronous delivery channel -->
        <tp:CanReceive>
          <tp:ThisPartyActionBinding tp:id="companyB_ABID6" tp:action="Purchase Order Request Action" tp:packageId="CompanyB_RequestPackage">
            <tp:BusinessTransactionCharacteristics xmlns:tns="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tns:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M" tp:timeToPerform="PT5M"/>
            <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Request Action"/>
            <tp:ChannelId>syncChannelB1</tp:ChannelId>
          </tp:ThisPartyActionBinding>
          <tp:OtherPartyActionBinding>companyA_ABID6</tp:OtherPartyActionBinding>
          <tp:CanSend>
            <tp:ThisPartyActionBinding tp:id="companyB_ABID7" tp:action="Purchase Order Confirmation Action" tp:packageId="CompanyB_SyncReplyPackage">
              <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true" tp:timeToAcknowledgeReceipt="PT5M"/>
              <tp:ActionContext tp:binaryCollaboration="Request Purchase Order" tp:businessTransactionActivity="Request Purchase Order" tp:requestOrResponseAction="Purchase Order Confirmation Action"/>
              <tp:ChannelId>syncChannelB1</tp:ChannelId>
            </tp:ThisPartyActionBinding>
            <tp:OtherPartyActionBinding>companyA_ABID7</tp:OtherPartyActionBinding>
          </tp:CanSend>
          <tp:CanSend>
            <tp:ThisPartyActionBinding tp:id="companyB_ABID8" tp:action="Exception" tp:packageId="CompanyB_ExceptionPackage">
              <tp:BusinessTransactionCharacteristics tp:isNonRepudiationRequired="true" tp:isNonRepudiationReceiptRequired="true" tp:isConfidential="transient" tp:isAuthenticated="persistent" tp:isTamperProof="persistent" tp:isAuthorizationRequired="true"/>
              <tp:ChannelId>syncChannelB1</tp:ChannelId>
            </tp:ThisPartyActionBinding>
            <tp:OtherPartyActionBinding>companyA_ABID8</tp:OtherPartyActionBinding>
          </tp:CanSend>
        </tp:CanReceive>
      </tp:ServiceBinding>
    </tp:CollaborationRole>
    <!-- Certificates used by the "Seller" company -->
    <tp:Certificate tp:certId="CompanyB_AppCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyB_AppCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyB_SigningCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyB_Signingcert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyB_EncryptionCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyB_EncryptionCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="CompanyB_ServerCert">
            <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#";>
                <KeyValue>
                    <RSAKeyValue>
                        <Modulus>
                            k8q9IYl+jy7r+qfJjMlUYh4/vlfwaS/Lcdaq+XD8R+B5p4PH2Ixcq7WobYqEA6RWhg
                            4DEGRTrtg+raXQViEk60s9hVhg+ycLbAMJN+ycZpfP34h+6d/BQmGOuYi9GZ19qkEH
                            ZVrvPiNE1UQJGFKumUasv2Zl+eODU8VRZc9yAdU=
                        </Modulus>
                        <Exponent>AQAB</Exponent>
                    </RSAKeyValue>
                </KeyValue>
                <X509Data>
                    <X509IssuerSerial>
                        <X509IssuerName>CN=Partner B</X509IssuerName>
                        <X509SerialNumber>47566082345519996102501890583059901138</X509SerialNumber>
                    </X509IssuerSerial>
                    <X509SubjectName>CN=Partner B</X509SubjectName>
                    <X509Certificate>
                        MIIB2zCCAUSgAwIBAgIQI8jk7G4y/FqLO+0o5r4q0jANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQD
                        EwlQYXJ0bmVyIEIwHhcNMDYwNTIwMTkxNjU2WhcNMDgwNTIwMTkxNjU2WjAUMRIwEAYDVQQDEwlQ
                        YXJ0bmVyIEIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJPKvSGJfo8u6/qnyYzJVGIeP75X
                        8Gkvy3HWqvlw/EfgeaeDx9iMXKu1qG2KhAOkVoYOAxBkU67YPq2l0FYhJOtLPYVYYPsnC2wDCTfs
                        nGaXz9+IfunfwUJhjrmIvRmdfapBB2Va7z4jRNVECRhSrplGrL9mZfnjg1PFUWXPcgHVAgMBAAGj
                        LjAsMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjALBgNVHQ8EBAMCAKAwDQYJKoZIhvcN
                        AQEFBQADgYEAhbISQsgOhQK9NjqfZFKquYbk0HS7SS6gwPEIScdZVE2YhnuspudCjBICzmjCCrhE
                        QdiR2dpqig7Y760/BobEvZf29zaIwZY6lAoe/t+PpbyVYbWE9qeRI82Q9d2ly55wspooElPNk+bJ
                        zUTMK8GhQlaPSoQigcN+LQ460wINo4M=
                    </X509Certificate>
                </X509Data>
            </KeyInfo>
        </tp:Certificate>
    <tp:Certificate tp:certId="CompanyB_ClientCert">
      <ds:KeyInfo>
        <ds:KeyName>CompanyB_ClientCert_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB4">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB4_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB5">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB5_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB6">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB6_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB7">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB7_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:Certificate tp:certId="TrustedRootCertB8">
      <ds:KeyInfo>
        <ds:KeyName>TrustedRootCertB8_Key</ds:KeyName>
      </ds:KeyInfo>
    </tp:Certificate>
    <tp:SecurityDetails tp:securityId="CompanyB_TransportSecurity">
      <tp:TrustAnchors>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB5"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB6"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB4"/>
      </tp:TrustAnchors>
    </tp:SecurityDetails>
    <tp:SecurityDetails tp:securityId="CompanyB_MessageSecurity">
      <tp:TrustAnchors>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB8"/>
        <tp:AnchorCertificateRef tp:certId="TrustedRootCertB7"/>
      </tp:TrustAnchors>
    </tp:SecurityDetails>
    <!-- An asynchronous delivery channel -->
    <tp:DeliveryChannel tp:channelId="asyncChannelB1" tp:transportId="transportB1" tp:docExchangeId="docExchangeB1">
      <tp:MessagingCharacteristics tp:syncReplyMode="none" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/>
    </tp:DeliveryChannel>
    <!-- A synchronous delivery channel -->
    <tp:DeliveryChannel tp:channelId="syncChannelB1" tp:transportId="transportB2" tp:docExchangeId="docExchangeB1">
      <tp:MessagingCharacteristics tp:syncReplyMode="signalsAndResponse" tp:ackRequested="always" tp:ackSignatureRequested="always" tp:duplicateElimination="always"/>
    </tp:DeliveryChannel>
    <tp:Transport tp:transportId="transportB1">
      <tp:TransportSender>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:TransportClientSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ClientCertificateRef tp:certId="CompanyB_ClientCert"/>
          <tp:ServerSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/>
        </tp:TransportClientSecurity>
      </tp:TransportSender>
      <tp:TransportReceiver>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:Endpoint xmlns:tns="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; tns:uri="http://businesspartner.org/hallo/ebXMLservlet"; tp:type="allPurpose"/>
        <tp:TransportServerSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ServerCertificateRef tp:certId="CompanyB_ServerCert"/>
          <tp:ClientSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/>
        </tp:TransportServerSecurity>
      </tp:TransportReceiver>
    </tp:Transport>
    <tp:Transport tp:transportId="transportB2">
      <tp:TransportSender>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:TransportClientSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ClientCertificateRef tp:certId="CompanyB_ClientCert"/>
          <tp:ServerSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/>
        </tp:TransportClientSecurity>
      </tp:TransportSender>
      <tp:TransportReceiver>
        <tp:TransportProtocol tp:version="1.1">HTTP</tp:TransportProtocol>
        <tp:AccessAuthentication>basic</tp:AccessAuthentication>
        <tp:Endpoint xmlns:tns="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"; tns:uri="http://businesspartner.org/hallo/ebXMLservlet"; tp:type="allPurpose"/>
        <tp:TransportServerSecurity>
          <tp:TransportSecurityProtocol tp:version="3.0">SSL</tp:TransportSecurityProtocol>
          <tp:ServerCertificateRef tp:certId="CompanyB_ServerCert"/>
          <tp:ClientSecurityDetailsRef tp:securityId="CompanyB_TransportSecurity"/>
        </tp:TransportServerSecurity>
      </tp:TransportReceiver>
    </tp:Transport>
    <tp:DocExchange tp:docExchangeId="docExchangeB1">
      <tp:ebXMLSenderBinding tp:version="2.0">
        <tp:ReliableMessaging>
          <tp:Retries>10</tp:Retries>
          <tp:RetryInterval>PT2H</tp:RetryInterval>
          <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics>
        </tp:ReliableMessaging>
        <tp:PersistDuration>P1D</tp:PersistDuration>
        <tp:SenderNonRepudiation>
          <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol>
          <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction>
          <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm>
          <tp:SigningCertificateRef tp:certId="CompanyB_SigningCert"/>
        </tp:SenderNonRepudiation>
        <tp:SenderDigitalEnvelope>
          <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol>
          <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm>
          <tp:EncryptionSecurityDetailsRef tp:securityId="CompanyB_MessageSecurity"/>
        </tp:SenderDigitalEnvelope>
      </tp:ebXMLSenderBinding>
      <tp:ebXMLReceiverBinding tp:version="2.0">
        <tp:ReliableMessaging>
          <tp:Retries>3</tp:Retries>
          <tp:RetryInterval>PT2H</tp:RetryInterval>
          <tp:MessageOrderSemantics>Guaranteed</tp:MessageOrderSemantics>
        </tp:ReliableMessaging>
        <tp:PersistDuration>P1D</tp:PersistDuration>
        <tp:ReceiverNonRepudiation>
          <tp:NonRepudiationProtocol>http://www.w3.org/2000/09/xmldsig#</tp:NonRepudiationProtocol>
          <tp:HashFunction>http://www.w3.org/2000/09/xmldsig#sha1</tp:HashFunction>
          <tp:SignatureAlgorithm>http://www.w3.org/2000/09/xmldsig#dsa-sha1</tp:SignatureAlgorithm>
          <tp:SigningSecurityDetailsRef tp:securityId="CompanyB_MessageSecurity"/>
        </tp:ReceiverNonRepudiation>
        <tp:ReceiverDigitalEnvelope>
          <tp:DigitalEnvelopeProtocol tp:version="2.0">S/MIME</tp:DigitalEnvelopeProtocol>
          <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm>
          <tp:EncryptionCertificateRef tp:certId="CompanyB_EncryptionCert"/>
        </tp:ReceiverDigitalEnvelope>
      </tp:ebXMLReceiverBinding>
    </tp:DocExchange>
  </tp:PartyInfo>
  <!-- SimplePart corresponding to the SOAP Envelope -->
  <tp:SimplePart tp:id="CompanyA_MsgHdr" tp:mimetype="text/xml">
    <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; tp:version="2.0">
      http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd
  </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_MsgHdr" tp:mimetype="text/xml">
    <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; tp:version="2.0">
      http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd
  </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- SimplePart corresponding to a Receipt Acknowledgment business signal -->
  <tp:SimplePart tp:id="CompanyA_ReceiptAcknowledgment" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd"; tp:version="2.0">http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_ReceiptAcknowledgment" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd"; tp:version="2.0">
      http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- SimplePart corresponding to an Exception business signal -->
  <tp:SimplePart tp:id="CompanyA_Exception" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; tp:version="2.0">
      http://www.ebxml.org/bpss/Exception.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_Exception" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; tp:version="2.0">
      http://www.ebxml.org/bpss/Exception.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- SimplePart corresponding to a request action -->
  <tp:SimplePart tp:id="CompanyA_Request" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd"; tp:version="1.0">
      http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_Request" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd"; tp:version="1.0">
      http://www.rosettanet.org/schemas/PIP3A4RequestPurchaseOrder.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- SimplePart corresponding to a response action -->
  <tp:SimplePart tp:id="CompanyA_Response" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PurchaseOrderConfirmation.xsd"; tp:version="1.0">
      http://www.rosettanet.org/schemas/PIP3A4PurchaseOrderConfirmation.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <tp:SimplePart tp:id="CompanyB_Response" tp:mimetype="application/xml">
    <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PurchaseOrderConfirmation.xsd"; tp:version="1.0">
      http://www.rosettanet.org/schemas/PIP3A4PurchaseOrderConfirmation.xsd
    </tp:NamespaceSupported>
  </tp:SimplePart>
  <!-- An ebXML message with a SOAP Envelope only -->
  <tp:Packaging tp:id="CompanyA_MshSignalPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_MshSignal" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_MshSignalPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_MshSignal" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a SOAP Envelope plus a request action payload -->
  <tp:Packaging tp:id="CompanyA_RequestPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_RequestMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_Request"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_RequestPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_RequestMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_Request"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a SOAP Envelope plus a response action payload -->
  <tp:Packaging tp:id="CompanyA_ResponsePackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_ResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_Response"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_ResponsePackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_ResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_Response"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a SOAP Envelope plus a Receipt Acknowledgment payload -->
  <tp:Packaging tp:id="CompanyA_ReceiptAcknowledgmentPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_ReceiptAcknowledgmentMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_ReceiptAcknowledgment"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_ReceiptAcknowledgmentPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_ReceiptAcknowledgmentMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_ReceiptAcknowledgment"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a SOAP Envelope plus an Exception payload -->
  <tp:Packaging tp:id="CompanyA_ExceptionPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_ExceptionMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_Exception"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_ExceptionPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_ExceptionMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_Exception"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <!-- An ebXML message with a Receipt Acknowledgment signal, plus a business response,
       or an ebXML message with an Exception signal -->
  <tp:Packaging tp:id="CompanyA_SyncReplyPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyA_SignalAndResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyA_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyA_ReceiptAcknowledgment"/>
        <tp:Constituent tp:idref="CompanyA_Response"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Packaging tp:id="CompanyB_SyncReplyPackage">
    <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/>
    <tp:CompositeList>
      <tp:Composite tp:id="CompanyB_SignalAndResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml">
        <tp:Constituent tp:idref="CompanyB_MsgHdr"/>
        <tp:Constituent tp:idref="CompanyB_ReceiptAcknowledgment"/>
        <tp:Constituent tp:idref="CompanyB_Response"/>
      </tp:Composite>
    </tp:CompositeList>
  </tp:Packaging>
  <tp:Comment xml:lang="en-US">buy/sell agreement between CompanyA.com and CompanyB.com</tp:Comment>
</tp:CollaborationProtocolAgreement>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:tns="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd";
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
                xmlns:tp="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd";
                xmlns:ds="http://www.w3.org/2000/09/xmldsig#";
                xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd                  http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd";
                version="2.0">
   <xsl:param name="ParametersSource">simple.B.parameters.xml</xsl:param>
   <xsl:variable name="PartyIdType">
      <xsl:copy-of select="document($ParametersSource)//Parameter[@name='PartyIdType']/child::text()"/>
   </xsl:variable>
   <xsl:variable name="EndpointUri">
      <xsl:copy-of select="document($ParametersSource)//Parameter[@name='EndpointUri']/child::text()"/>
   </xsl:variable>
   <xsl:variable name="CompanyB_ABID6conf">
      <xsl:copy-of select="document($ParametersSource)//Parameter[@name='CompanyB_ABID6conf']/child::text()"/>
   </xsl:variable>
   <xsl:variable name="CompanyB_Cert">
      <xsl:copy-of select="document($ParametersSource)//Parameter[@name='CompanyB_Cert']/child::node()"/>
   </xsl:variable>
   <xsl:variable name="Retries">
      <xsl:copy-of select="document($ParametersSource)//Parameter[@name='Retries']/child::text()"/>
   </xsl:variable>
   <xsl:template match="tns:CollaborationProtocolAgreement/tns:PartyInfo[2]/tns:PartyId/@tns:type">
      <xsl:attribute name="tns:type">
         <xsl:value-of select="$PartyIdType"/>
      </xsl:attribute>
   </xsl:template>
   <xsl:template match="tns:CollaborationProtocolAgreement/tns:PartyInfo[2]//tns:Endpoint/@tns:uri">
      <xsl:attribute name="tns:uri">
         <xsl:value-of select="$EndpointUri"/>
      </xsl:attribute>
   </xsl:template>
   <xsl:template match="tns:ThisPartyActionBinding[@tns:id='companyB_ABID6']//tns:BusinessTransactionCharacteristics/@tns:isConfidential">
      <xsl:attribute name="tns:isConfidential">
         <xsl:value-of select="$CompanyB_ABID6conf"/>
      </xsl:attribute>
   </xsl:template>
   <xsl:template match="tns:CollaborationProtocolAgreement/tns:PartyInfo[2]//tns:Certificate[@tns:certId='CompanyB_ServerCert']">
      <xsl:copy>
         <xsl:apply-templates select="@*"/>
         <xsl:copy-of select="$CompanyB_Cert"/>
      </xsl:copy>
   </xsl:template>
   <xsl:template match="tns:DocExchange[@tns:docExchangeId='docExchangeB1']/tns:ebXMLSenderBinding/tns:ReliableMessaging/tns:Retries">
      <xsl:copy>
         <xsl:apply-templates select="@*"/>
         <xsl:copy-of select="$Retries"/>
      </xsl:copy>
   </xsl:template>
   <xsl:template match="@*|node()">
      <xsl:copy>
         <xsl:apply-templates select="@*"/>
         <xsl:apply-templates/>
      </xsl:copy>
   </xsl:template>
</xsl:stylesheet>


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