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] | [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

draft-cpp-cpa-02.xsd

<?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