Title: about async responses
I would like to summarize where I think we
are in terms of the use of WS-Reliablility for the ebMS Request-Response MEP
(Async). I typed this up rather quickly so I apologize if my mock diagram is
confusing. In addition I feel it will be necessary to keep the ebXML MessageId
and RefToMessageId elements to allow for correlation of Async Request-Response
messages.
ebMS
Request-Response MEP (Async):
COMPANY_A COMPANY_B
SOAP One-way MEP: Payload
(PO BOD, etc.) ------à S-RMP.Submit -------à R-RMP.Deliver -----à Payload(PO BOD, etc.)
SOAP One-way MEP: Payload
(PO Ack BOD, etc.) ß------------ R-RMP.Deliver <---------- S-RMP.Submit ß------------- Payload(PO Ack BOD, etc.)
RM-Reply options:
a. Callback RM-Reply:
SOAP One-way MEP: Payload
(PO BOD, etc.) ------à S-RMP.Submit ---------à R-RMP.Deliver -----à Payload(PO BOD, etc.)
SOAP One-way MEP: S-RMP ß------------------------------------
R-RMP(RM-Reply(Ack or Fault))
SOAP One-way MEP: Payload
(PO Ack BOD, etc.) ß------------ R-RMP.Deliver <------------- S-RMP.Submit ß------------- Payload(PO Ack BOD, etc.)
SOAP One-way MEP: R-RMP(RM-Reply(Ack or Fault)) ----------------------------------à S-RMP
b. Callback RM-Reply(Bundled):
SOAP One-way MEP: Payload
(PO BOD, etc.) ------à S-RMP.Submit + R-RMP.Deliver -----à Payload(PO BOD, etc.)
SOAP One-way MEP: Payload
(PO Ack BOD, etc.) ß------------ R-RMP.Deliver ß------------- (Payload + RM-Reply) S-RMP.Submit ß------------- Payload(PO Ack BOD, etc.)
SOAP One-way MEP: R-RMP(RM-Reply(Ack or Fault)) ----------------------------------à S-RMP
c. Poll RM-Reply:
SOAP One-way MEP: Payload
(PO BOD, etc.) ------à S-RMP.Submit + R-RMP.Deliver -----à Payload(PO BOD, etc.)
SOAP One-way MEP: S-RMP(RM-PollRequest) ----------------------------------à R-RMP
Or
SOAP Request-Response MEP: S-RMP(RM-PollRequest) ----------------------------------à R-RMP
SOAP One-way MEP: S-RMP ß------------------------------------
R-RMP(RM-Reply(Ack or Fault))
Or
SOAP Request-Response MEP: S-RMP ß------------------------------------
R-RMP(RM-Reply(Ack or Fault) – Sent in SOAP Response)
SOAP One-way MEP: Payload
(PO Ack BOD, etc.) ß------------ R-RMP.Deliver <------------- S-RMP.Submit ß------------- Payload(PO Ack BOD, etc.)
SOAP One-way MEP: R-RMP <--------------------------------- S-RMP(RM-PollRequest)
Or
SOAP Request-Response MEP: R-RMP <---------------------------------
S-RMP(RM-PollRequest)
SOAP One-way MEP: R-RMP(RM-Reply(Ack or Fault)) ----------------------------------à S-RMP
Or
SOAP Request-Response MEP: R-RMP(RM-Reply(Ack or Fault) –
Sent in SOAP Response) ----------------------------------à S-RMP
From: Jacques Durand
[mailto:]
Sent: Wednesday, September 01,
2004 10:54 AM
To:
''
Subject: [ebxml-msg] about async
responses
Precision
on how reliable async "responses" could be handled:
First a
reminder that ebMS Request-response MEP was implicit in ebMS 2.0 with
reftomessageid,
and additionally for synchronous
case, with SyncReplyMode.
Assuming
a more explicit notion of ebMS Request-response:
When asynchronous, such an
ebMS-level MEP does not necessarily map to a single SOAP Request-response MEP
instance (the HTTP binding of which is - though not necessarily - commonly
defined as an HTTP Request-response).
An
asynchronous ebMS Request-response does not have to involve WS-R
Deliver+Respond.
these two messages do not have to
appear as a pair Request / Response at RMP level:
they may be handled as two
unrelated SOAP messages (submitted to RMP via "Submit" operation),
and therefore subject to same WS-Reliability handling (same RM features).
(They
could map to - for example - two SOAP One-way MEP instances.)
This of
course does not hold for synchronous ebMS Request-responses, but then their
likely binding to
an underlying synchronous protocol
will not require the same handling of reliability for Responses.
Jacques