[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: FW: Use Cases From XML Messaging
Sending this one again too ... > -----Original Message----- > From: David Burdett > Sent: Wednesday, February 16, 2000 9:57 AM > To: ebXML Transport (E-mail) > Subject: Use Cases From XML Messaging > > Folks > > The following are some use cases from XML Messaging. They've been taken > straight from the XML Messaging Requirements spec with the page breaks > removed > > David > > Advanced Technology, CommerceOne > 1600 Riviera Ave, Suite 200, Walnut Creek, CA 94596, USA > Tel: +1 (925) 941 4422 or +1 (650) 623 2888; > mailto:david.burdett@commerceone.com; Web: http://www.commerceone.com > > 7.2 XML Messaging Examples > > > 7.2.1 Simple Document Exchange > > At its simplest, a Transaction consists of just one Service that uses > just one Simple Document Exchange that consists of: > > o a Request Message sent from one party to a second party, and > > o the Response Message that is returned as a result. > > The figure below provides an example of what these messages could > contain and how they could be processed. > > Party 1 > | Party 2 > STEP | | > 1. Party 1 generates the documents that need to be sent, > places them in an XML Message together with a Message > Header and (optional) digital signature and sends it to > the Party 2. > > 1 --> 2 Request Message: > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Party 1) > - To (Party 2) > - Service Type > - Intent > - Authorization Data > - Message Manifest > o Message Routing Info > o Signature(s) (Optional) > o Document(s) > > 2. Party 2 that received the Request Message carries out the > following processes: > o checks the "To" data to check the Message intended for > them; > o checks the Service Type and Intent to make that they > can carry out the request; > o if required, checks the "From" data to make sure that > the sender is known > o checks the Authorization Data (if present) to make sure > the action is authorized (note some requests may not > need authorization); > o checks the Signature, if present, to make sure the data > has not changed and the sender can be identified, then > o if everything is OK, checks the Document(s) for errors, > then > o if no errors in the Document(s) then carries out the > requested action using the data contained in the > Document(s) > o once the action is complete, then generates a Response > Message and sends it back to Party 1. > > 1 <-- 2 Response Message: > o Message Header: > - Message Type (Response) > - Transaction Identity Data > - Message Identity Data > - From (Party 2) > - To (Party 1) > - Service Type > - Intent > - Message Manifest > - Status Data > o Message Routing Info > o Signature(s) (Optional); > o Document(s) > > 3. Party 1 that has received the Response Message then > carries out the following processes: > o Checks the Transaction Identity Data and Message > Identity Data to make sure the Response Message refers > to the Transaction/Request Message that they sent > earlier > o checks the Signature, if present, to make sure the data > has not changed and is the sender of the message can be > authenticated > o checks the Status Data to determine that the Service > was carried out by the anticipated Organization and > whether the service succeeded or failed > o if everything is OK, then checks the Document(s) for > Errors, > o if everything is still OK, then carries out whatever > processing of the Document(s) is necessary. > > Figure 2 Simple Document Exchange Message Flow > > > [Note] In the above example the sequence of the processing by the > described for Party 1 or Party 2 is indicative of the > processing required. Sequences that provide the same result > are equally acceptable. > [Note End] > > > 7.2.2 Simple Document Exchange with Errors > > In the previous example, it was assumed that no errors were found. If > errors are found then a slightly different message flow would occur. > The example below builds on the previous example in Figure 2 Simple > Document Exchange Message Flow. > > Party 1 > | Party 2 > STEP | | > 1. Party 1 generates the documents that need to be sent, > places them in an XML Message together with a Message > Header and (optional) digital signature and sends it to > the Recipient. > > 1 --> 2 Request Message: > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Party 1) > - To (Party 2) > - Service Type > - Intent > - Message Manifest > o Message Routing Info > o Signature(s) (Optional) > o Document(s) > > 2. Party 2 that receives the Request Message detects an error > and so sends an Error Message back to Party 1. > > 1 <-- 2 Error Message: > o Message Header > - Message Type (Error) > - Transaction Identity Data > - Message Identity Data > - From (Party 2) > - To (Party 1) > - Service Type > - Intent > - Message Manifest > o Message Routing Info > o Signature(s) (Optional) > o Document(s) > - Error Data > > 3. Party 1 that received the Error Message: > o Checks the Transaction Identity Data and Message > Identity Data to make sure the Message refers to the > Transaction/Request Message that they sent > o checks the Signature, if present, to make sure the data > has not changed > o determines that there was an Error and takes the > appropriate action. > > Figure 3 Document Exchange with Request Message Errors > > > Errors can also occur in a Response Message. In this case the Message > flow would be as below. > > Party 1 > | Party 2 > STEP | | > 1. Party 1 generates the documents that need to be sent, > places them in an XML Message together with a Message > Header and (optional) digital signature and sends it to > Party 2. > > 1 --> 2 Request Message: > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Party 1) > - To (Party 2) > - Service Type > - Intent > - Message Manifest > o Message Routing Info > o Signature(s) (Optional) > o Document(s) > > 2. Party 2 that receives the Request Message successfully > processes the Request Message and generates and sends a > Response Message back to Party 1. > > 1 <-- 2 Response Message: > o Message Header: > - Message Type (Response) > - Transaction Identity Data > - Message Identity Data > - From (Party 2) > - To (Party 1) > - Service Type > - Intent > - Message Manifest > - Status Data > o Message Routing Info > o Signature(s) (Optional); > o Document(s) > > 3. Party 1 that has received the Response Message identifies > an error in the some part of the Response Message and > therefore sends an Error Message back to the Sender of the > Response Message. > > 1 --> 2 Error Message: > o Message Header > - Message Type (Error) > - Transaction Identity Data > - Message Identity Data > - From (Party 1) > - To (Party 2) > - Service Type > - Intent (Error) > - Message Manifest > o Message Routing Info > o Signature(s) (Optional) > o Document(s) (Optional) > - Error Data > > 4. Party 2 that received the Error Message: > o Checks the Transaction Identity Data and Message > Identity Data to make sure the Message refers to a > Transaction/Request Message that they are aware of > o checks the Signature, if present, to make sure the data > has not changed > o determines that there was an Error in the Response > Message they had sent and takes the appropriate action. > > Figure 4 Document Exchange with Response Message Errors > > > > 7.2.3 Canceling a Transaction > > Transaction cancellation occurs in a similar way to generating > errors. For example if a Recipient of a Request Message wants to > cancel a transaction they would do this as illustrated in the figure > below. > > Party 1 > | Party 2 > STEP | | > 1. Party 1 generates the documents that need to be sent, > places them in an XML Message together with a Message > Header and (optional) digital signature and sends it to > Party 2. > > 1 --> 2 Request Message: > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Party 1) > - To (Party 2) > - Service Type > - Intent > - Message Manifest > o Message Routing Info (Optional) > o Signature(s) (Optional) > o Document(s) > > 2. Party 2 that received the Request Message checks the > message but decides they want to cancel the Transaction > for some reason and so sends a Cancel Message back to the > Sender of the Request Message. > > 1 <-- 2 Cancel Message: > o Message Header > - Message Type (Cancel) > - Transaction Identity Data > - Message Identity Data > - From (Party 2) > - To (Party 1) > - Service Type > - Intent (Cancel) > - Message Manifest (Optional) > o Message Routing Info (Optional) > o Signature(s) (Optional) > o Document(s) (Optional) > > > 7.2.4 Transaction with Multiple Document Exchanges > > Transactions can also consist of multiple Document Exchanges as > illustrated in the following example that contains four Document > Exchanges that are part of three Services. The Services, the > associated Intent and the resultant Document Exchanges are as follows > > o Service: Supplier Order Processing > - Intent: Stock Availability Check > Document: Stock Availability Request > Document: Stock Availability Response > - Intent: New Purchase Order > Document: Purchase Order > Document: Invoice > Document: Payment Brand List > > o Service: Payment Service > - Intent: Make Payment > Document: Payment Request > Document: Payment Instrument > Document: Payment Response > > o Service: Delivery Goods > - Intent: Request Delivery > Document: Delivery Request > Document: Delivery Response > > Note that this example also illustrates how digital signatures can be > used to provide an Audit Trail and authorize the execution of each > Service. > > More details are provided below together with explanations on how > signatures are used to link each Document Exchange instance together. > > Buyer Supplier / > | Payment Handler > STEP | | > 1. Buyer generates a Stock Availability Request, digitally > signs it, and sends it to the Supplier to check for > availability. > > B --> S Request Message (Stock Availability Request): > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Buyer) > - To (Supplier) > - Service Type (Supplier Order Processing) > - Intent (Stock Availability Check) > - Authorization Data: > Buyer Data > ref. to Signature1 > - Message Manifest > o Message Routing Info > o Signatures > - Signature1, Signs: > Message Header > Stock Availability Request > o Documents > - Stock Availability Request > > 2. The Supplier checks the Stock Availability Request (see > example earlier for what is involved in checking a > request) and generates a Stock Availability Response to > send back to the Buyer. The response is digitally signed. > > B <-- S Response Message (Stock Availability Response): > o Message Header > - Message Type (Response) > - Transaction Identity Data > - Message Identity Data > - From (Supplier) > - To (Buyer) > - Service Type (Supplier Order Processing) > - Intent (Stock Availability Check) > - Message Manifest > - Status Data (Stock Availability Check) > o Message Routing Info > o Signatures > - Signature2, Signs: > Message Header > Stock Availability Response > Signature1 in Stock Availability Request Message > o Document > - Stock Availability Response > > 3. The Buyer checks the Stock Availability Response Message > and finds it OK. As a result generates a Purchase Order > Document and sends it to the Supplier. The Authorization > Data includes Status Data on the Stock Availability, to > indicate that the Purchase Order is linked to the earlier > Stock Availability Check Document Exchange. > > B --> S Request Message (Purchase Order): > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Buyer) > - To (Supplier) > - Service Type (Supplier Order Processing) > - Intent (New Purchase Order) > - Message Manifest > - Authorization Data: > Buyer Data > Status Data (Stock Availability Check) > ref. to Signature3 > o Message Routing Info > o Signatures > - Signature3, signs: > Message Header > Purchase Order > Signature2 (on Stock Availability Check Response > Message) > o Documents > - Purchase Order > > 4. The Supplier checks the Purchase Order Request Message and > generates an Invoice, and a list of Payment Brands that > the Supplier accepts, signs the documents and sends them > back to the Buyer. > > B <-- S Response Message (Purchase Order Response): > o Message Header > - Message Type (Response) > - Transaction Identity Data > - Message Identity Data > - From (Supplier) > - To (Buyer) > - Service Type (Supplier Order Processing) > - Intent (New Purchase Order) > - Message Manifest > - Status Data (New Purchase Order) > o Message Routing Info > o Signatures > - Signature4, signs > Message Header > Invoice > Brand List > Signature3 (on Purchase Order Request Message) > o Documents > - Invoice > - Brand List > > 5. The Buyer checks the Purchase Order Response Message and > finds it OK. As a result generates a Payment Request, > provides information on the Payment Instrument to use, > digitally signs them sends them to the Payment Handler > (another Party) that is to accept the payment on behalf of > the Supplier. > > B --> P Request Message (Payment Request): > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Buyer) > - To (Payment Handler) > - Service Type (Payment) > - Intent (Make Payment) > - Message Manifest > - Authorization Data > Buyer Data > Supplier Data > Status Data (New Purchase Order) > ref. to Signature4 (from Purchase Order Response > Message) > ref to Signature5 > o Message Routing Info > o Signatures > - Signature4 (copied from Purchase Order Response > Message) > - Signature5, signs > Signature4 (on Purchase Order Response Message) > Payment Instrument > Payment Request > o Documents: > - Payment Request (amount to pay, which Brand) > - Brand List > - Payment Instrument > > 6. The Payment Handler Checks the Payment Request including > the Authorization Data to check that they know the > Supplier, and on the Payment Instrument data to check that > the Buyer wants to make the payment. Accepts the Payment, > generates a Payment Receipt, digitally signs the > information and sends it back to the Buyer. > > B <-- P Response Message (Payment Response): > o Message Header > - Message Type (Response) > - Transaction Identity Data > - Message Identity Data > - From (Payment Handler) > - To (Buyer) > - Service Type (Payment) > - Intent (Make Payment) > - Message Manifest > - Status Data (Payment Response) > o Message Routing Info > o Signatures > - Signature6, signs > Message Header > Payment Receipt > Signature4 (on Purchase Order Response Message) > Signature5 (on Payment Request Message) > o Document: > - Payment Receipt > > 7. The Buyer checks the Payment Response Message and finds it > OK. As a result generates a Delivery Request Document and > sends it to the Supplier to request delivery of the goods. > > B --> S Request Message (Delivery Request): > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Buyer) > - To (Supplier) > - Service Type (Supplier Order Processing) > - Intent (Make Delivery) > - Message Manifest > - Authorization Data > Payment Handler Data > ref to Signature6 > ref to Payment Receipt > o Message Routing Info > o Signatures > - Signature6 (copied from Payment Response Message) > o Documents > - Payment Receipt > > 8. The Supplier checks the Delivery Request including the > Authorization Data to check that payment has been made. > Checks that delivery is possible and therefore generates a > Delivery Response that confirms how delivery will occur, > digitally signs the information and sends the message back > to the Buyer. > > B <-- S Response Message (Delivery Response): > o Message Header > - Message Type (Response) > - Transaction Identity Data > - Message Identity Data > - From (Supplier) > - To (Buyer) > - Service Type (Supplier Order Processing) > - Intent (Make Delivery) > - Message Manifest > - Status Data (Delivery Response) > o Message Routing Info > o Signatures > - Signature7, signs: > Message Header > Delivery Response > Signatures6 (on the Delivery Request Message) > o Documents > - Delivery Response > > 9. The Buyer checks the Delivery Response Message and finds > it OK then logs the information and waits for the physical > Delivery of the goods. > > Figure 5 Multiple Document Exchange Transaction > > > [Note] In the example above, signatures are used, to help provide > the audit trail and so that one Party, e.g. the Payment > Handler, can check the validity of the Payment Request > Message. Alternative approaches that avoid the need for > signatures are possible. For example: > o the Buyer and Seller use a secure Transport Mechanism > such as [HTTPS] to set up a secure channel between them > o the Seller authenticates the Buyer (perhaps using a > User/Server Authentication Transaction) > o the first two Document Exchanges occur over the secure > channel. > [Note End] > > > 7.2.5 Relating Two Transactions > > XML Messaging allows two or more transactions to be linked together. > This example shows how a purchase transaction can be linked to an > earlier contract negotiation transaction. > > The first example is the contract negotiation transaction. Note that > this also illustrates a Multiple Round Trip Document Exchange. > > Buyer > | Supplier > STEP | | > 1. Buyer generates a draft contract places it in an XML > Message together with a Message Header and sends it to the > Supplier. > > B --> S Request Message: > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Buyer) > - To (Supplier) > - Service Type (Contract Processing) > - Intent (New Draft Contract) > - Message Manifest > o Message Routing Info > o Document > - Draft Contract > > 2. The Supplier reviews the Contract, makes revisions and > places the revised contract in an Exchange Message and > sends it back to the Buyer > > B <-- S Exchange Message: > o Message Header: > - Message Type (Exchange) > - Transaction Identity Data > - Message Identity Data > - From (Supplier) > - To (Buyer) > - Service Type (Contract Processing) > - Intent (Contract Amendment) > - Message Manifest > o Message Routing Info > o Document > - Revised Contract > > 3. The Buyer reviews the revised contract, amends it and > places it in an XML Message together with a Message Header > and sends it to the Supplier. > > B --> S Exchange Message: > o Message Header > - Message Type (Exchange) > - Transaction Identity Data > - Message Identity Data > - From (Buyer) > - To (Supplier) > - Service Type (Contract Processing) > - Intent (Contract Amendment) > - Message Manifest > o Message Routing Info > o Document > - Revised Contract > > N-1. The Supplier and Buyer keep on swapping drafts of the > contract in Exchange Messages until eventually they agree > and the Supplier sends the final version of the contract, > digitally signed, back to the Buyer in a Response Message. > > B <-- S Response Message: > o Message Header: > - Message Type (Response) > - Transaction Identity Data > - Message Identity Data > - From (Supplier) > - To (Buyer) > - Service Type (Contract Processing) > - Intent (Final Contract) > - Message Manifest > - Status Data > o Message Routing Info > o Signatures > - Signature1, signs: > Message Header > Final Contract > o Document > - Final Contract > > N. The Buyer carries out a final check on the contract and > stores it for later use. > > > Some time later, the Buyer wants to make a purchase under the terms > of the agreed contract. Now suppose that the contract negotiation > transaction had an identifier of "ACV-CN-1999/2456@example.com". Then > the Purchase Transaction could refer to the Contract Negotiation by > referring to the identifier in the Transaction Identity Data of the > Purchase Transaction. For example: > > Buyer > | Supplier > STEP | | > 1. Buyer generates a Purchase Order places it in an XML > Message. The Transaction Identity Data refers to the > earlier Contract Negotiation transaction. > > B --> S Request Message (Purchase Order): > o Message Header > - Message Type (Request) > - Transaction Identity Data > - Message Identity Data > - From (Buyer) > - To (Supplier) > - Service Type (Supplier Order Processing) > - Intent (New Purchase Order) > - Message Manifest > - Related Transaction Data (refers to > "ACV-CN-1999/2456@example.com") > o Message Routing Info > o Signatures > - Signature1, signs > Message Header > Purchase Order > o Document > - Purchase Order > > 2. Purchase continues ... > > > [Note] Note that the digital signature is being used by the Buyer > to bind the Purchase Order to the earlier contract > negotiation. > [Note End]
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC