- From: <paul.downey@bt.com>
- Date: Mon, 9 Oct 2006 20:56:05 +0100
- To: <Marc.Hadley@Sun.COM>, <dug@us.ibm.com>
- Cc: <public-ws-addressing@w3.org>
+1, WS-Addressing provides a nice extensible correlation mechanism: <wsa:MessageID>xs:anyURI</wsa:MessageID> ? <wsa:RelatesTo RelationshipType="xs:anyURI"?>xs:anyURI</wsa:RelatesTo> * which seems ideally suited for this use-case. Paul -----Original Message----- From: public-ws-addressing-request@w3.org on behalf of Marc Hadley Sent: Mon 10/9/2006 5:26 PM To: Doug Davis Cc: public-ws-addressing@w3.org Subject: Re: An Example Use of RM's MakeConnection Looking at the message flow, I think WS-RM could make more use of wsa:RelatesTo instead of inventing a new anon URI. Here's the same message flow using the WS-A anon URI and making more use of wsa:RelatesTo and @RelationshipType. I think this formulation removes the requirement for additional WSRM- specific anon URIs, let me know if I missed anything. Marc. Scenario: Client sends GetQuote to server unreliably. Server wants to send GetQuoteResponse using RM so it must sent a CreateSequence before I can send the GetQuoteResponse back. Step 1 - Client sends GetQuote to Server <soap:Envelope ...> <soap:Header> <wsa:To> http://stockquote.com </wsa:To> <wsa:Action> foo:GetQuote </wsa:Action> <wsa:MessageID> uuid://.../100 </wsa:MessageID> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/.../anonymous</wsa:Address> </wsa:ReplyTo> </soap:Header> <soap:Body> <foo:GetQuote> IBM </foo:GetQuote> </soap:Body> </soap:Envelope> Step 2 - Server sends an RM CreateSequence to the Client using the only means it has available - the transport backchannel. <soap:Envelope ...> <soap:Header> <wsa:To>http://www.w3.org/.../anonymous</wsa:To> <wsa:Action> http://...wsrm/CreateSequence </wsa:Action> <wsa:MessageID> uuid://.../101 </wsa:MessageID> <wsa:RelatesTo RelationshipType="http://...wsrm/InitReliable"> uuid://.../100 </wsa:RelatesTo> <wsa:ReplyTo> <wsa:Address> http://stockquote.com </wsa:Address> </wsa:ReplyTo> </soap:Header> <soap:Body> <wsrm:CreateSequence> ... </wsrm:CreateSequence> </soap:Body> </soap:Envelope> Notice the use of RelatesTo with a WSRM-specific @RelationshipType to indicate that this message is a WSRM-specific response to the initial request. Step 3 - Client sends a CreateSequenceResponse to wsa:ReplyTo <soap:Envelope ...> <soap:Header> <wsa:To> http://stockquote.com </wsa:To> <wsa:Action> http://...wsrm/CreateSequenceResponse </wsa:Action> <wsa:RelatesTo> uuid://.../101 </wsa:RelatesTo> </soap:Header> <soap:Body> <wsrm:CreateSequenceResponse> ... </wsrm:CreateSequenceResponse> </soap:Body> </soap:Envelope> Step 4 - Having not received the GetQuoteResponse, the Client uses MakeConnection to allow it to flow back <soap:Envelope ...> <soap:Header> <wsa:To> http://stockquote.com </wsa:To> <wsa:Action> http://...wsrm/MakeConnection </wsa:Action> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/.../anonymous</wsa:Address> </wsa:ReplyTo> <wsa:RelatesTo RelationshipType="http://...wsrm/InitialRequest"> uuid://.../100 </wsa:RelatesTo> </soap:Header> <soap:Body> <wsrm:MakeConnection> </wsrm:MakeConnection> </soap:Body> </soap:Envelope> Notice the use of the wsa:RelatesTo with a WSRM-specific @RelationshipType to indicate that this message is requesting a response to the initial request message. Step 5 - Server uses the backchannel to let the GetQuoteResponse flow back to the Client <soap:Envelope ...> <soap:Header> <wsa:To>http://www.w3.org/.../anonymous</wsa:To> <wsa:Action> foo://GetQuoteResponse </wsa:Action> <wsa:RelatesTo> uuid://.../100 </wsa:RelatesTo> <wsrm:Sequence> ... </wsrm:Sequence> </soap:Header> <soap:Body> <foo:GetQuoteResponse> 139.0 </foo:GetQuoteResponse> </soap:Body> </soap:Envelope> Notice the wsa:RelatesTo points to the GetQuote request message and it is sent using RM (the Sequence header), and that the SOAP Envelope looks exactly like it would if it had been sent on the original transport backchannel - meaning, the wsa:To is derived from the wsa:ReplyTo from the GetQuote request message not the MakeConnection. --- Marc Hadley <marc.hadley at sun.com> Business Alliances, CTO Office, Sun Microsystems.
Received on Monday, 9 October 2006 19:56:28 UTC