RE: [ebxml-msg] Reliable messaging and intermediaries

From
Durand, Jacques R. <>
Date
2007-12-07T04:41:15+00:00
ID
Thread
RE: [ebxml-msg] Reliable messaging and intermediaries
inline:

From: Sander Fieten 
[mailto:] 
Sent: Wednesday, December 05, 2007 3:16 
PM
To: 
Subject: Re: 
[ebxml-msg] Reliable messaging and intermediaries

My remarks as just made on the call:

* Why use RM on each leg of the route? I don't see any advantage because a 
=
missing ebMS ACK will lead to a re-send of the message on the ebMS level. 
(=
Assuming a At-Least-Once contract). At the moment I don't see what the RM 
o=
n each leg gives us. 

 

<JD> In my opinion, the ebMS synchronization signals cannot be 
expected to provide the same level of QoS as protocol-level RM. I would not for 
instance expect a synchronization exchange - back and forth - to occur for each 
message sent, or at every second, as the overhead of processing these is quite 
significant, certainly higher than sequence-based RM signals. I would not expect 
either to implement duplicate check at ebMS level (that would put a significant 
burden on endpoint MSHs that lets not forget, should ideally not need implement 
more than core V3 features), and rely instead on the one in RM (meaning indeed 
that with per-segment RM, if a duplicate is generated during the transfer 
through an intermediary, we wouldn't detect it). But at least using 
segment-level RM provides some RM QoS, that would take care of 50% of message 
losses/duplication. The only "end-to-end" feature that 2-tier reliability (as 
previously defined) provides, is message loss awareness and possible remedy. But 
the more of these losses are taken care of in protocl-level RM, the 
better.

 There is no question that 2-tier 
reliability as defined here is  not as good as "flat" end-to-end RM at 
protocol level.

* If considering special reliability 
behavior on the intermediaries as is t=
he case with the last one in the 
2-tiered solution described by Jacques, co=
uld it be possible to use WS-RM 
on each leg with the ACK on the current leg=
postponed till the the 
intermediary receives an ACK on the next leg? I did=
n't have time to look 
into, just an idea.
 

<JD> we wish that were possible, but this Ack semantics is not the 
one specified in WS-RM. It is very unlikely that RM built-in available SOAP 
stacks will allow this...

 
Regards
Sander 
Fieten

----
Sander 
Fieten
IT Architect

FIETEN IT
e: 
t:  +31 6 
51507886

On Dec 5, 2007, at 3:16 , Durand, Jacques R. wrote:

So we could call this option (already alluded to by 
  Ian in a previous
call in November) the 2-tiered reliability, the main 
  advantage of which
is that it does not require to route anything other than 
  ebMS messages:

Level 1: WS-RM/R only needs be used between pairs of 
  MSHs (so each path
segment is "independently reliable"), in other words the 
  reliability
headers are changing across an intermediary, but not the ebMS 
  header.

Level 2: additional ebMS signals allow for end-to-end 
  doublecheck, by
synchronizing the status on both sides. E.g. sender will 
  periodically
notify a list of "should-have-received"  ebMS IDs to 
  receiver, and a
symmetric synchronization signal sent by receiver MSH, 
  would notify of
what has NOT been received/delivered. Or conversely the 
  receiver will
notify a list of "have-received". Remedial action need not be 
  prescribed
(P-Mode will control) -  could range from just notifying 
  the application
layer on either/both sender or receiver side, to re-issuing 
  the missing
messages (from the ebMS layer, in order to avoid creating 
  RM-level
duplicates that could be eliminated at next RM 
  endpoint).

Some interesting aspects about this solution:
- the 
  status synchronization is a useful feature in itself as we seem to
agree 
  (awareness of loss by a receiver MSH allows better diagnostics on
failed 
  choreographies, etc). 
- the ultimate receiving MSH may not have to support 
  this feature in
order to have end-to-end reliability: the last intermediary 
  has to.
Indeed, when getting the "should-have-received" signal, the 
  intermediary
could be required to respond with only those messageIDs that 
  it has
actually successfully forwarded, removing the last possibility 
  of
"intermediary loss". E.g. it could be required to get the RM Ack 
  of
ultimate receiver, before even sending the "have-received" signal. 
  SO
that mode of reliability does not require an ultimate MSH to 
  support
more than core V3 features. This is becoming in the CDC network 
  case,
where MSH hubs serve clusters of endpoint MSHs. Even if last MSH is 
  not
supporting RM, this enables "end-to-previous-to-end" reliability 
  !

I am starting to like it.

So there seems to be two general 
  modes of reliable ebMS multi-hop:

(1) The "flat reliability" mode, 
  supported end-to-end by the RM layer.
Here, only the use of WS-Reliability 
  really makes sense, as the routing
is supposed to be controlled by ebMS 
  header info, even for establishing
RM sequences.

(2) two-tier 
  reliability, where the RM mechanism from WS protocol is
only used per 
  segment. Here both WS-Reliability and WS-ReliableMessaging
can be used 
  between MSH pairs.

Jacques

-----Original 
  Message-----
From: David RR Webber (XML) [mailto:] 
Sent: Wednesday, 
  November 28, 2007 6:46 AM
To: Durand, Jacques R.
Cc: Pim van der Eijk; 
  ; 
  Moberg Dale
Subject: RE: [ebxml-msg] Pim on routing 
  intermediaries,
WS-ReliableMessaging

Jacques,

Yes - I think 
  the ability to do status checks definately beckons
eventually.

I 
  like what you suggest - good lightweight logical next step.

During the 
  BCM work and then ebBP - we identified the need in extended
collaborations 
  to have a "linking and switching" status tracking
service.

This is 
  way more than what's needed for message delivery of course - but
then again 
  - the types of mechanisms could definately be interchangeable
/ reusable 
  here.

Since right now each ebBP / ebMS is responsible for its own 
  status
tracking - the obvious next logic step is to provide centralized 
  status
checking services.  We've explored this model in BCM - the 
  linking and
switching Appendix B spec' - which uses the Prolog 
  assertion/retraction
predicate based approach.

At some point we will 
  need to get serious about enabling that all -
would be a very cool facility 
  - incredibly useful for all kinds of
applications...

; 
  -)

Cheers, DW

  -------- Original Message --------

  Subject: RE: [ebxml-msg] Pim on routing 
    intermediaries, 

  WS-ReliableMessaging

  From: "Durand, Jacques R." <>

  Date: Wed, November 28, 2007 9:06 am

  To: "David RR Webber (XML)" <>,  "Moberg 
    Dale"

  <>

  Cc: "Pim van der Eijk" <>, 
  

  <>

  

  David:

  

  That sounds like re-implementing reliability at ebMS 
    level - something

  I'd prefer to avoid until all other options fail to 
    deliver :-)...

  Besides guaranteed delivery there is also duplicate 
    detection (based 

  on sequence numbers or so for the 2 RM specs), so 
    the redundancy is 

  starting to build-up.

  

  Now, we may consider a mode of multi-hop reliability 
    where RM is 

  per-segment, and in order to catch the cases of loss 
    during router 

  forward, a kind of (ebMS) status request where the 
    initial sender MSH 

  could notify the ultimate receiver MSH of the list 
    of message IDs it 

  is supposed to have received over the last hour or 
    so, and the 

  receiver MSH would notify back on what it has not 
    been able to 

  deliver. Re-sending by the ebMS layer itself may or 
    may not be 

  mandated - could be left to a re-submit at 
    application level (if no 

  risk of duplicates). At least that would add 
    awareness of both sender
and receiver of message loss 
(i.e.

  non-delivery), something we do not have today 
    especially with WS-RM.

  This awareness by the receiver would in turn allow 
    the choreography 

  layer to better diagnose failures.

  

  Jacques

  

  

  -----Original Message-----

  From: David RR Webber (XML) [mailto:]

  Sent: Monday, November 19, 2007 6:42 
  PM

  To: Moberg Dale

  Cc: Pim van der Eijk; Durand, Jacques R.; 
  

  

  Subject: RE: [ebxml-msg] Pim on routing 
    intermediaries, 

  WS-ReliableMessaging

  

  Dale,

  

  I'm not sold on WS-Reliable messaging - for starters 
    its merely trying

  to mimick what ebMS already has for the past five 
    years!

  

  Then - who knows what oversights they've made in the 
    rush to get 

  something in place. Reading their design and such 
    does not give me 

  great confidence. My sense is we are well ahead of 
    them - and they 

  should be adopting ebMS reliable messaging (and 
    actually they are 

  trying to clone most of it!!!)  Of people using 
    WS the majority could 

  not careless about reliable delivery - in fact their 
    whole modus 

  operandi is built assuming unreliable messaging and 
    instant traffic
exchanges (query/response).

  

  OK - so where does that leave us?

  

  Why can we not look at some kind of orchestration 
    agent here?  Seems 

  to me that what is needed is a very simple component 
    that is tasked 

  with plugging the gap and acting as an ebMS/SOAP 
    delivery extension
agent.

  All it has to be able to do is manage SOAP-based 
    exchanges at the 

  basic transport level.  If its built very dumb 
    and simple - it just 

  acts as a relay and a pass through - with minimal 
    logic - mostly just 

  leveraging SOAP acks and errors 
  themselves.

  

  The ebMS then interacts with one or more of these 
    SOAP relay agents - 

  and will keep trying delivery until it gets an 
    end-to-end SOAP 

  acknowledgement relayed back to it.

  

  The agent could be designed to use basic WS - and in 
    fact then any 

  SOAP server could be integrated as a delivery 
    service with the simple 

  addition of the agent component.  This seems 
    much more like what we 

  want.  Coopting delivery via SOAP 
  servers.

  

  DW

  

  "The way to be is to do" - Confucius (551-472 
    B.C.)

  

  

  
    -------- Original Message 
  --------

  
    Subject: [ebxml-msg] Pim on routing 
      intermediaries, 

  
    WS-ReliableMessaging

  
    From: "Moberg Dale" <>

  
    Date: Mon, November 19, 2007 3:32 
  pm

  
    To: "Pim van der Eijk" <>, 
       "Durand,  Jacques
R."

  
    <>, 
       <>

  
    

  
    [Pim explained the conflict between 
      WS-ReliableMessaging and the 

  
    advantages in using routing 
    intermediaries.]

  
    

  
    The main options for dealing with the conflict 
      are

  
    

  
    0. Use WS-Addressing anonymous for reply-to and 
      acks-to, and have 

  
    all intermediaries wait before their HTTP reply is 
      made.

  
    [The above does not scale well, is brittle, and 
      utilizes lots of 

  
    resources.]

  
    

  
    1. Use piggybacking (and presumably 1 message long 
      sequences?).

  
    [Still lacks routing advantages. RMSes have to 
      target RMDs, and so 

  
    have high lifecycle configurability burdens. 
      Routing intermediary 

  
    topology cannot be changed while leaving RMS 
      configuration
unchanged.

  
    Probably destroys advantages of ebMS routing 
      intermediary, as Pim 

  
    explained.]

  
    

  
    2. Locate RMD at routing intermediary, and check 
      security at 

  
    intermediary also.

  
    [ Loss of end to end 
  reliability.]

  
    

  
    

  
    Pim has convincingly explained how 
      WS-ReliableMessaging is not very 

  
    intermediary friendly and, along with Jacques, 
      reflects a step 

  
    backwards in trying to accommodate intermediaries 
      with end-to-end

  acknowledgments.

  
    However, the goal of WS-* technology level 
      convergence seems to 

  
    require that we support WS-ReliableMessaging 
      because it is the WS-I 

  
    sanctioned solution.

  
    

  
    Is option 2 above an option that could be 
      embellished to be 

  
    satisfactory? What would it take? Add on an 
      ebBP/RN style 

  
    ReceiptAcknowledgment or 
      ReceiptAcknowledgmentException (if we 

  
    wanted to be optimistic with respect to 
      WS-ReliableMessaging 

  
    terminated at intermediary working most of the 
      time?)

  
    

  
    Just some reactions. Good analysis 
    Pim!

  
    

  
    

  
    

  
    --------------------------------------------------------------------

  
    - To unsubscribe from this mail list, you must 
      leave the OASIS TC 

  
    that generates this mail.  You may a link to 
      this group and all your

  
    TCs in

  

  
    OASIS

  
    at:

  
    https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.p

  
    hp

---------------------------------------------------------------------
To 
  unsubscribe from this mail list, you must leave the OASIS TC that
generates 
  this mail.  You may a link to this group and all your TCs in 
  OASIS
at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php