- From: Christopher B Ferris <chrisfer@us.ibm.com>
- Date: Mon, 9 Oct 2006 16:48:43 -0400
- To: Marc Hadley <Marc.Hadley@Sun.COM>
- Cc: Doug Davis <dug@us.ibm.com>, public-ws-addressing@w3.org, public-ws-addressing-request@w3.org
- Message-ID: <OF3E14A43F.1788A476-ON85257202.005D76BB-85257202.007252BD@us.ibm.com>
Marc, Fine for handling request/response I suppose. However, not everything is request/response. How does this work when there is no "response" but rather a need to get messages from the "server" to the "client"? Cheers, Christopher Ferris STSM, Software Group Standards Strategy email: chrisfer@us.ibm.com blog: http://www.ibm.com/developerworks/blogs/page/chrisferris phone: +1 508 377 9295 public-ws-addressing-request@w3.org wrote on 10/09/2006 12:26:07 PM: > 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 20:49:50 UTC