[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: [ebxml-cppa] Proposed schema changes, plus illustrative example
I like to propose a strawman set of changes to the CPP/A schema to address the following issues: 1.. Clarify the purposes of various certificate references 2.. Allow both server and client certificates to be specified for transport level security 3.. Allow a default delivery channel to be used for multiple actions with different Packaging 4.. Allow multiple override elements for the same action 5.. Allow a SimplePart to be reused 6.. Allow multiple types of response to be returned on a synchronous delivery channel More specifically, please take a look at the attached XSD file for the following proposed changes: a.. Clarify purpose of CertificateRef under CollaborationRole. See CollaborationRole.DefaultSigningCertificate b.. Add client certificate for transport security and distinguish between client and server certificates. See Transport.TransportSecurity.ServerCertificateRef Transport.TransportSecurity.ClientCertificateRef c.. Clarify purpose of CertificateRef in NonRepudiation element. Add signing CertificateRef for receiver in case the DocExchange is used in conjunction with a synchronous delivery channel. See DocExchange.ebXMLBinding.NonRepudiation.initiatorCertificateRef DocExchange.ebXMLBinding.NonRepudiation.responderCertificateRef d.. Make SimplePart a top-level element to allow for reusability. e.. Allow ServiceBinding to specify different Packaging for different actions. (It is not sufficient to provide a single Packaging for one ServiceBinding because multiple actions with different schemas may not be able to share the same Packaging.) Default delivery channel can be synchronous or asynchronous. If synchronous, packaging for request message and packaging for response must both be specified. See ServiceBinding.ActionBinding f.. Allow action level override within ServiceBinding to specify (synchronous or asynchronous) channels along with Packaging. If channel is synchronous, can specify packaging for the response. Remove uniqueness constraint on action name to allow both synchronous and asynchronous channels to be used for the same action, for example. See ServiceBinding.OverriddenActionBinding g.. Allow for more than one response packaging for a synchronous delivery channel because an exception can be returned in lieu of a response. See Packaging.CompositeList (maxOccurs="unbounded") The attached sample CPA is intended to illustrate: a.. BPSS instance for a RosettaNet PIP (see attached 3A4.xml). b.. CPA for a BPSS business process that corresponds to a RosettaNet PIP. c.. Synchronous and asynchronous delivery channels. d.. Packaging used with synchronous and asynchronous delivery channels. e.. Packaging for stand-alone business signals and exceptions. f.. Reuse of SimplePart for message header. If you want to examine the example using an XML Schema aware editor, please be aware that xsi:schemaLocation is currently set to be c:\ebxml\draft-cpp-cpa-02.xsd. The sample BPSS instance cannot be read using an XML Schema aware editor because the corresponding BPSS schema is not provided. Looking forward to your comments, -Arvola
<?xml version="1.0"?> <tp:CollaborationProtocolAgreement xmlns:tp="http://www.oasis-open.org/committees/ebxml-cppa/schema/draft-cpp-cpa-00.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#" xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/draft-cpp-cpa-00.xsd c:/ebxml/draft-cpp-cpa-02.xsd" tp:cpaid="uri:company1-and-company2-cpa" tp:version="1.1"> <tp:Status tp:value="proposed"/> <tp:Start>2001-05-20T07:21:00Z</tp:Start> <tp:End>2002-05-20T07:21:00Z</tp:End> <tp:ConversationConstraints tp:invocationLimit="100" tp:concurrentConversations="10"/> <tp:PartyInfo> <tp:PartyId tp:type="DUNS">123456789</tp:PartyId> <tp:PartyRef xlink:href="http://company1.com/about.html"/> <tp:CollaborationRole tp:id="Buyer"> <tp:ProcessSpecification tp:version="1.0" tp:name="PIP3A4RequestPurchaseOrder" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml"/> <tp:Role tp:name="Buyer" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml#Buyer"/> <tp:DefaultSigningCertificateRef tp:certId="company1SigningCertificate"/> <tp:ServiceBinding tp:channelId="channel1"> <tp:Service tp:type="anyURI">uri:company1.com/services/BuyerService</tp:Service> <tp:ActionBinding tp:action="Purchase Order Confirmation Action" tp:packageId="responsePackage"/> <tp:ActionBinding tp:action="ReceiptAcknowledgment" tp:packageId="ReceiptAcknowledgmentPackage"/> <tp:ActionBinding tp:action="Exception" tp:packageId="ExceptionPackage"/> </tp:ServiceBinding> </tp:CollaborationRole> <tp:Certificate tp:certId="company1SigningCertificate"> <ds:KeyInfo/> </tp:Certificate> <tp:Certificate tp:certId="company1EncryptionCertificate"> <ds:KeyInfo/> </tp:Certificate> <tp:Certificate tp:certId="company1ClientCertificate"> <ds:KeyInfo/> </tp:Certificate> <tp:Certificate tp:certId="company1ServerCertificate"> <ds:KeyInfo/> </tp:Certificate> <tp:DeliveryChannel tp:channelId="channel1" tp:transportId="transport1" tp:docExchangeId="docExchange1"> <tp:Characteristics tp:syncReplyMode="none" tp:nonrepudiationOfOrigin="true" tp:nonrepudiationOfReceipt="true" tp:secureTransport="true" tp:confidentiality="true" tp:authenticated="true" tp:authorized="false"/> </tp:DeliveryChannel> <tp:Transport tp:transportId="transport1"> <tp:SendingProtocol tp:version="1.1">HTTP</tp:SendingProtocol> <tp:ReceivingProtocol tp:version="1.1">HTTP</tp:ReceivingProtocol> <tp:Endpoint tp:uri="https://www.company1.com/servlets/ebxmlhandler" tp:type="allPurpose"/> <tp:TransportSecurity> <tp:Protocol tp:version="3.0">SSL</tp:Protocol> <tp:ServerCertificateRef tp:certId="company1ServerCertificate"/> <tp:ClientCertificateRef tp:certId="company2ClientCertificate"/> </tp:TransportSecurity> </tp:Transport> <tp:DocExchange tp:docExchangeId="docExchange1"> <tp:ebXMLBinding tp:version="1.1"> <tp:ReliableMessaging tp:deliverySemantics="OnceAndOnlyOnce" tp:messageOrderSemantics="Guaranteed"> <tp:Retries>3</tp:Retries> <tp:RetryInterval>7200</tp:RetryInterval> <tp:PersistDuration>P1D</tp:PersistDuration> </tp:ReliableMessaging> <tp:NonRepudiation> <tp:Protocol>http://www.w3.org/2000/09/xmldsig#</tp:Protocol> <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:initiatorCertificateRef tp:certId="company2SigningCertificate"/> <tp:responderCertificateRef tp:certId="company1SigningCertificate"/> </tp:NonRepudiation> <tp:DigitalEnvelope> <tp:Protocol tp:version="2.0">S/MIME</tp:Protocol> <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm> <tp:EncryptionCertificateRef tp:certId="company1EncryptionCertificate"/> </tp:DigitalEnvelope> </tp:ebXMLBinding> </tp:DocExchange> </tp:PartyInfo> <tp:PartyInfo> <tp:PartyId tp:type="DUNS">987654321</tp:PartyId> <tp:PartyRef xlink:type="simple" xlink:href="http://company2.com/about.html"/> <tp:CollaborationRole tp:id="Seller"> <tp:ProcessSpecification tp:version="1.0" tp:name="PIP3A4RequestPurchaseOrder" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml"/> <tp:Role tp:name="Seller" xlink:type="simple" xlink:href="http://www.rosettanet.org/processes/3A4.xml#seller"/> <tp:DefaultSigningCertificateRef tp:certId="company2SigningCertificate"/> <tp:ServiceBinding tp:channelId="channel2"> <tp:Service tp:type="anyURI">uri:company2.com/services/SellerService</tp:Service> <tp:ActionBinding tp:action="Purchase Order Request Action" tp:packageId="requestPackage"/> <tp:ActionBinding tp:action="ReceiptAcknowledgment" tp:packageId="ReceiptAcknowledgmentPackage"/> <tp:ActionBinding tp:action="Exception" tp:packageId="ExceptionPackage"/> <tp:OverriddenActionBinding tp:action="Purchase Order Request Action" tp:packageId="requestPackage" tp:channelId="syncChannel2" tp:syncReplyPackageId="syncReplyPackage"/> </tp:ServiceBinding> </tp:CollaborationRole> <tp:Certificate tp:certId="company2SigningCertificate"> <ds:KeyInfo/> </tp:Certificate> <tp:Certificate tp:certId="company2EncryptionCertificate"> <ds:KeyInfo/> </tp:Certificate> <tp:Certificate tp:certId="company2ClientCertificate"> <ds:KeyInfo/> </tp:Certificate> <tp:Certificate tp:certId="company2ServerCertificate"> <ds:KeyInfo/> </tp:Certificate> <tp:DeliveryChannel tp:channelId="channel2" tp:transportId="transport2" tp:docExchangeId="docExchange2"> <tp:Characteristics tp:nonrepudiationOfOrigin="true" tp:nonrepudiationOfReceipt="true" tp:secureTransport="true" tp:confidentiality="true" tp:authenticated="true" tp:authorized="false"/> </tp:DeliveryChannel> <tp:DeliveryChannel tp:channelId="syncChannel2" tp:transportId="transport2" tp:docExchangeId="docExchange2"> <tp:Characteristics tp:syncReplyMode="signalsAndResponse" tp:nonrepudiationOfOrigin="true" tp:nonrepudiationOfReceipt="true" tp:secureTransport="true" tp:confidentiality="true" tp:authenticated="true" tp:authorized="false"/> </tp:DeliveryChannel> <tp:Transport tp:transportId="transport2"> <tp:SendingProtocol tp:version="1.1">HTTP</tp:SendingProtocol> <tp:ReceivingProtocol tp:version="1.1">HTTP</tp:ReceivingProtocol> <tp:Endpoint tp:uri="https://www.company2.com/servlets/ebxmlhandler" tp:type="allPurpose"/> <tp:TransportSecurity> <tp:Protocol tp:version="3.0">SSL</tp:Protocol> <tp:ServerCertificateRef tp:certId="company2ServerCertificate"/> <tp:ClientCertificateRef tp:certId="company1ClientCertificate"/> </tp:TransportSecurity> </tp:Transport> <tp:DocExchange tp:docExchangeId="docExchange2"> <tp:ebXMLBinding tp:version="1.1"> <tp:ReliableMessaging tp:deliverySemantics="OnceAndOnlyOnce" tp:messageOrderSemantics="Guaranteed"> <tp:Retries>3</tp:Retries> <tp:RetryInterval>7200</tp:RetryInterval> <tp:PersistDuration>P1D</tp:PersistDuration> </tp:ReliableMessaging> <tp:NonRepudiation> <tp:Protocol>http://www.w3.org/2000/09/xmldsig#</tp:Protocol> <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:initiatorCertificateRef tp:certId="company1SigningCertificate"/> <tp:responderCertificateRef tp:certId="company2SigningCertificate"/> </tp:NonRepudiation> <tp:DigitalEnvelope> <tp:Protocol tp:version="2.0">S/MIME</tp:Protocol> <tp:EncryptionAlgorithm>DES-CBC</tp:EncryptionAlgorithm> <tp:EncryptionCertificateRef tp:certId="company2EncryptionCertificate"/> </tp:DigitalEnvelope> </tp:ebXMLBinding> </tp:DocExchange> </tp:PartyInfo> <tp:SimplePart tp:id="msgHdr" tp:mimetype="text/xml"> <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/draft-msg-header-01.xsd" tp:version="1.1">http://www.oasis-open.org/committees/ebxml-msg/schema/draft-msg-header-01.xsd</tp:NamespaceSupported> </tp:SimplePart> <tp:SimplePart tp:id="ReceiptAcknowledgment" tp:mimetype="text/xml"> <tp:NamespaceSupported tp:location="http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd" tp:version="1.1">http://www.ebxml.org/bpss/ReceiptAcknowledgment.xsd</tp:NamespaceSupported> </tp:SimplePart> <tp:SimplePart tp:id="Exception" tp:mimetype="text/xml"> <tp:NamespaceSupported tp:location="http://www.oasis-open.org/committees/ebxml-msg/schema/draft-msg-header-01.xsd" tp:version="1.1">http://www.oasis-open.org/committees/ebxml-msg/schema/draft-msg-header-01.xsd</tp:NamespaceSupported> </tp:SimplePart> <tp:SimplePart tp:id="request" tp:mimetype="text/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="response" tp:mimetype="text/xml"> <tp:NamespaceSupported tp:location="http://www.rosettanet.org/schemas/PurchaseOrderConfirmation.xsd.xsd" tp:version="1.0">http://www.rosettanet.org/schemas/PIP3A4PurchaseOrderConfirmation.xsd</tp:NamespaceSupported> </tp:SimplePart> <tp:Packaging tp:id="requestPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="requestMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml;"> <tp:Constituent tp:idref="msgHdr"/> <tp:Constituent tp:idref="request"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="responsePackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="responseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml;"> <tp:Constituent tp:idref="msgHdr"/> <tp:Constituent tp:idref="response"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="ReceiptAcknowledgmentPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="ReceiptAcknowledgmentMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml;"> <tp:Constituent tp:idref="msgHdr"/> <tp:Constituent tp:idref="ReceiptAcknowledgment"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="ExceptionPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="ExceptionMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml;"> <tp:Constituent tp:idref="msgHdr"/> <tp:Constituent tp:idref="Exception"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Packaging tp:id="syncReplyPackage"> <tp:ProcessingCapabilities tp:parse="true" tp:generate="true"/> <tp:CompositeList> <tp:Composite tp:id="signalAndResponseMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml;"> <tp:Constituent tp:idref="msgHdr"/> <tp:Constituent tp:idref="ReceiptAcknowledgment"/> <tp:Constituent tp:idref="response"/> </tp:Composite> </tp:CompositeList> <tp:CompositeList> <tp:Composite tp:id="syncExceptionMsg" tp:mimetype="multipart/related" tp:mimeparameters="type=text/xml;"> <tp:Constituent tp:idref="msgHdr"/> <tp:Constituent tp:idref="Exception"/> </tp:Composite> </tp:CompositeList> </tp:Packaging> <tp:Comment xml:lang="en-us">buy/sell agreement between company1.com and company2.com</tp:Comment> </tp:CollaborationProtocolAgreement>
<?xml version="1.0" encoding="UTF-8"?> <ProcessSpecification xmlns="http://www.ebxml.org/BusinessProcess" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="%SYSTEM /XMLPIPVALIDATION/ebBPSS.xsd" name="PIP3A4RequestPurchaseOrder" uuid="3A4" version="R02.00"> <Documentation>This PIP enables a buyer to issue a purchase order and obtain a quick response from the provider that acknowledges which of the purchase order product line items are accepted, rejected, or pending</Documentation> <!--Purchase order Request Document--> <BusinessDocument name="Puchase Order Request" nameID="Pip3A4PurchaseOrderRequest" specificationLocation="%SYSTEM /XMLPIPVALIDATION/3A4/PurchaseOrderRequest.dtd"> <Documentation>The document is a DTD file that specifies the rules for creating the XML document for the business action of requesting a purchase order </Documentation> </BusinessDocument> <BusinessDocument name="Puchase Order Confirmation" nameID="Pip3A4PurchaseOrderConfirmation" specificationLocation="%SYSTEM /XMLPIPVALIDATION/3A4/PurchaseOrderConfirmation.dtd"> <Documentation>The document is a DTD file that specifies the rules for creating the XML document for the business action of making a purchase order confirmation</Documentation> </BusinessDocument> <BusinessTransaction name="Request Purchase Order" nameID="RequestPurchaseOrder_BT"> <RequestingBusinessActivity name="Purchase Order Request Action" nameID="PurchaseOrderRequestAction" isAuthorizationRequired ="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="true" timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S"> <DocumentEnvelope businessDocument="Puchase Order Request" businessDocumentIDRef="Pip3A4PurchaseOrderRequest" isAuthenticated="true" isConfidential="true" isTamperProof="true"/> </RequestingBusinessActivity> <RespondingBusinessActivity name="Purchase Order Confirmation Action" nameID="PurchaseOrderConfirmationAction" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S"> <DocumentEnvelope businessDocument="Purchase Order Confirmation" businessDocumentIDRef="Pip3A4PurchaseOrderConfirmation" isAuthenticated="true" isConfidential="true" isPositiveResponse="true" isTamperProof="true"/> </RespondingBusinessActivity> </BusinessTransaction> <BinaryCollaboration name="Request Purchase Order" nameID="RequestPurchaseOrder_BC"> <InitiatingRole name="Buyer" nameID="Buyer"/> <RespondingRole name="Seller" nameID="Seller"/> <BusinessTransactionActivity name="Request Purchase Order" nameID="RequestPurchaseOrder_BTA" businessTransaction="Request Purchase Order" businessTransactionIDRef="RequestPurchaseOrder_BT" fromAuthorizedRole="Buyer" fromAuthorizedRoleIDRef="Buyer" toAuthorizedRole="Seller" toAuthorizedRoleIDRef="Seller" isLegallyBinding="true" timeToPerform="P0Y0M0DT24H0M0S" isConcurrent="false"/> </BinaryCollaboration> </ProcessSpecification>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC