ws-rx message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: RE: [ws-rx] i089, i090 - Scenario 2.4 Request-Reply, Anonymous Client
- From: Doug Davis <dug@us.ibm.com>
- To: "Marc Goodner" <mgoodner@microsoft.com>
- Date: Tue, 21 Feb 2006 10:21:52 -0700
Marc,
If you get a chance can you update the
proposal for 089 with: http://www.oasis-open.org/apps/org/workgroup/ws-rx/email/archives/200602/msg00049.html
thanks
-Doug
"Marc Goodner"
<mgoodner@microsoft.com>
02/21/2006 12:04 PM
|
To
| "Patil, Sanjay"
<sanjay.patil@sap.com>, "wsrx" <ws-rx@lists.oasis-open.org>
|
cc
|
|
Subject
| RE: [ws-rx] i089, i090 -
Scenario 2.4 Request-Reply, Anonymous Client |
|
I can’t believe it isn’t
clear that I am against the current proposal for i090. That proposal completely
cuts Offer out of the spec. I think recent discussion here and on the implementer’s
list demonstrates it does have value. It does seem that there may be some
points that could be made in the spec to remove some ambiguity of its use.
I’ll take those into consideration as I read the latest drafts today and
try to get in an alternate proposal that addresses those rather than just
cutting it from the spec.
Regarding i089, I’ll post
separately. My main concern on that proposal stems from the description
and not the proposal oddly enough so I might actually be fine with it.
Marc Goodner
Technical Diplomat
Microsoft Corporation
Tel: (425) 703-1903
Blog: http://spaces.msn.com/mrgoodner/
From: Patil, Sanjay [mailto:sanjay.patil@sap.com]
Sent: Friday, February 17, 2006 10:41 AM
To: Marc Goodner; wsrx
Subject: RE: [ws-rx] i089, i090 - Scenario 2.4 Request-Reply, Anonymous
Client
Marc,
Could you please clarify your
position on the issues i089 and i090, specifically in light of the scenario
you submitted below. Note that both of these issues are accompanied with
certain proposals. It will be helpful to know whether by submitting this
scenario, you are agreeing/disagreeing/etc with the proposals.
-- Sanjay
From: Marc Goodner [mailto:mgoodner@microsoft.com]
Sent: Thursday, Feb 16, 2006 9:26 AM
To: wsrx
Subject: [ws-rx] i089, i090 - Scenario 2.4 Request-Reply, Anonymous
Client
All, below is the scenario for the reliable
req-repl with an anonymous client that was requested to be sent separately
to the main TC alias. This relates to issue i090 and i089. Regards, Marc
g
Scenario 2.4 Request-Reply,
Anonymous Client
The application level aspects of this scenario
are identical to those of the other Request-Reply scenarios – the client
and the service use a request-reply messaging pattern to exchange messages.
In this scenario, however, the client is
unreachable by the service. As a result, the service must use the HTTP
response for all outgoing messages – whether they are application level
or infrastructure level. The fact the client is anonymous makes this case
especially interesting mainly because the service must rely on the client
to make a call in order to be able to respond with a message of its own.
Message Exchange
The client and the service establish two
WS-RM sequences with a dual CS/CSR handshake (i.e. wsrm:Offer and wsrm:Accept
are present). The CSR is carried on the HTTP response.
The client then transmits one to three requests
on the client-to-server sequence. The HTTP response for each request carries:
-
The
response to that particular request.
-
A “piggy-backed”
SequenceAcknowledgement header acknowledging the current known state at
the receiver.
Each request, except for the first one, also
carries a piggy-backed acknowledgement acknowledging all the responses
the client has received at the point the request was made.
Once the client received acknowledgements
and responses for all its requests, it sends a TerminateSequence message
to the service and considers the client-to-service sequence complete. The
TerminateSequence message “piggy-backs” a SequenceAcknowledgement header
acknowledging the entire range of responses the client received. Upon receiving
the TerminateSequence, the service responds with a TerminateSequence of
its own – for the service-to-client sequence – and considers that sequence
complete.
If a reply never comes back and the HTTP
request times out or aborts, the client must always retransmit that request.
If the service already responded to an incoming request with a given message
number, it must respond with a copy of the original reply. As a consequence,
a request must be resent to allow for the retransmission of its reply even
if the request has already been acknowledged (by another reply received
on a different HTTP connection, for example).
Because the TerminateSequence message carries
data critical to the graceful shutdown of the service-to-client sequence,
the client must attempt to retransmit the message if it fails to receive
a response. The client does, however, consider its sequence complete regardless
of the reply it receives. On the other hand, a service will consider its
sequence gracefully shutdown only once it has received all the acknowledgements
and the TerminateSequence from the client. It just so happens that the
full acknowledgement range and the TerminateSequence are part of the same
message.
CreateSequence
Message Example
<s:Envelope>
<s:Header>
<a:Action
s:mustUnderstand="1">
http://docs.oasis-open.org/ws-rx/wsrm/200510/CreateSequence
</a:Action>
<a:MessageID>
urn:uuid:ecd75878-45a0-41db-a358-960969467056
</a:MessageID>
<a:ReplyTo>
<a:Address>
http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
</a:Address>
</a:ReplyTo>
<a:To
s:mustUnderstand="1">
http://server-machine/echoString
</a:To>
</s:Header>
<s:Body>
<r:CreateSequence>
<r:AcksTo>
<a:Address>
http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
</a:Address>
</r:AcksTo>
<r:Offer>
<r:Identifier>
urn:uuid:a721a819-35ea-436b-8106-fdcd317016c7
</r:Identifier>
</r:Offer>
</r:CreateSequence>
</s:Body>
</s:Envelope>
CreateSequenceResponse
Message Example
<s:Envelope>
<s:Header>
<a:Action
s:mustUnderstand="1">
http://docs.oasis-open.org/ws-rx/wsrm/200510/CreateSequenceResponse
</a:Action>
<a:RelatesTo>
urn:uuid:ecd75878-45a0-41db-a358-960969467056
</a:RelatesTo>
</s:Header>
<s:Body>
<r:CreateSequenceResponse>
<r:Identifier>
urn:uuid:2c8e5a86-abae-4dc6-960e-41c914228b03
</r:Identifier>
<r:Accept>
<r:AcksTo>
<a:Address>
http://server-machine/echoString
</a:Address>
</r:AcksTo>
</r:Accept>
</r:CreateSequenceResponse>
</s:Body>
</s:Envelope>
EchoString
Message Example
<s:Envelope>
<s:Header>
<r:Sequence
s:mustUnderstand="1">
<r:Identifier>
urn:uuid:2c8e5a86-abae-4dc6-960e-41c914228b03
</r:Identifier>
<r:MessageNumber>1</r:MessageNumber>
</r:Sequence>
<a:Action
s:mustUnderstand="1">
urn:wsrm:EchoString
</a:Action>
<a:MessageID>
urn:uuid:baf71839-cb2c-4fd8-99f1-d59bfe8d3aa7
</a:MessageID>
<a:ReplyTo>
<a:Address>
http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
</a:Address>
</a:ReplyTo>
<a:To
s:mustUnderstand="1">
http://server-machine/echoString
</a:To>
</s:Header>
<s:Body>
<echoString
xmlns="http://tempuri.org/">
<Text>Hello</Text>
<Sequence>urn:uuid:2c8e5a86-abae-4dc6-960e-41c914228b03</Sequence>
</echoString>
</s:Body>
</s:Envelope>
EchoStringResponse
Message Example
<s:Envelope>
<s:Header>
<r:Sequence
s:mustUnderstand="1">
<r:Identifier>
urn:uuid:a721a819-35ea-436b-8106-fdcd317016c7
</r:Identifier>
<r:MessageNumber>1</r:MessageNumber>
</r:Sequence>
<r:SequenceAcknowledgement>
<r:Identifier>
urn:uuid:2c8e5a86-abae-4dc6-960e-41c914228b03
</r:Identifier>
<r:AcknowledgementRange
Lower="1"
Upper="1"
/>
</r:SequenceAcknowledgement>
<a:Action
s:mustUnderstand="1">
urn:wsrm:EchoStringResponse
</a:Action>
<a:RelatesTo>
urn:uuid:baf71839-cb2c-4fd8-99f1-d59bfe8d3aa7
</a:RelatesTo>
</s:Header>
<s:Body>
<echoStringResponse
xmlns="http://tempuri.org/">
<EchoStringReturn>Hello</EchoStringReturn>
</echoStringResponse>
</s:Body>
</s:Envelope>
EchoString
Message Example (2)
<s:Envelope>
<s:Header>
<r:SequenceAcknowledgement>
<r:Identifier>
urn:uuid:a721a819-35ea-436b-8106-fdcd317016c7
</r:Identifier>
<r:AcknowledgementRange
Lower="1"
Upper="1"
/>
</r:SequenceAcknowledgement>
<r:Sequence
s:mustUnderstand="1">
<r:Identifier>
urn:uuid:2c8e5a86-abae-4dc6-960e-41c914228b03
</r:Identifier>
<r:MessageNumber>2</r:MessageNumber>
</r:Sequence>
<a:Action
s:mustUnderstand="1">
urn:wsrm:EchoString
</a:Action>
<a:MessageID>
urn:uuid:515df164-45a9-49a9-ba72-8f05bb8b6182
</a:MessageID>
<a:ReplyTo>
<a:Address>
http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
</a:Address>
</a:ReplyTo>
<a:To
s:mustUnderstand="1">
http://server-machine/echoString
</a:To>
</s:Header>
<s:Body>
<echoString
xmlns="http://tempuri.org/">
<Text>World</Text>
<Sequence>urn:uuid:2c8e5a86-abae-4dc6-960e-41c914228b03</Sequence>
</echoString>
</s:Body>
</s:Envelope>
Client’s TerminateSequence
Message Example
<s:Envelope>
<s:Header>
<r:SequenceAcknowledgement>
<r:Identifier>
urn:uuid:a721a819-35ea-436b-8106-fdcd317016c7
</r:Identifier>
<r:AcknowledgementRange
Lower="1"
Upper="3"
/>
</r:SequenceAcknowledgement>
<a:Action
s:mustUnderstand="1">
http://docs.oasis-open.org/ws-rx/wsrm/200510/TerminateSequence
</a:Action>
<a:To
s:mustUnderstand="1">
http://server-machine/echoString
</a:To>
</s:Header>
<s:Body>
<r:TerminateSequence>
<r:Identifier>
urn:uuid:2c8e5a86-abae-4dc6-960e-41c914228b03
</r:Identifier>
</r:TerminateSequence>
</s:Body>
</s:Envelope>
Service’s
TerminateSequence Message Example
<s:Envelope>
<s:Header>
<a:Action
s:mustUnderstand="1">
http://docs.oasis-open.org/ws-rx/wsrm/200510/TerminateSequence
</a:Action>
</s:Header>
<s:Body>
<r:TerminateSequence>
<r:Identifier>
urn:uuid:a721a819-35ea-436b-8106-fdcd317016c7
</r:Identifier>
</r:TerminateSequence>
</s:Body>
</s:Envelope>
Marc Goodner
Technical Diplomat
Microsoft Corporation
Tel: (425) 703-1903
Blog: http://spaces.msn.com/mrgoodner/
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]