Re: interposition requirements

From
Mark Little <>
Date
2001-04-30T15:36:09+00:00
ID
027001c0d18b$063db2e0$2c623d0a@thinkblue
Thread
Re: interposition requirements
I 
  believe what was discussed at the face-to-face was disallowing or restricting 
  the ability of a sub-participant to register with the root 
  coordinator.  Is that the point that you're addressing?   The 
  other side of the coin, dis-allowing registration of a sub-participant with a 
  sub-coordinator isn't really possible.  A root participant may initiate 
  back end transactions, either BTP or other, without the root coordinator being 
  aware.

I think we're talking about the same thing. A 
sub-participant may not be able to register with the root coordinator (and I 
think the majority of the time won't want to). Typically only those web services 
that the initiator talks to directly will register with the root 
coordinator.

  
 

  
One 
  of the issues raised was the trust issue.  It is difficult to establish 
  trust from a sub-participant back to the root coordinator when 
  the only context information is a transaction 
identifier.

Agreed, and this is what I said in the last email. 
However, (and perhaps there was a misunderstanding about what was discussed), I 
was under the impression that all web service participants were going to be 
forced to register with the root coordinator.

  
 

  
One 
  of the arguments favoring registration of a sub-participant with the root 
  coordinator was performance.  Would the proponents of this please 
  correct me if I get this wrong.  The 
  position was that flattening the coordination space provided more control 
  of the participants.  Any time delays were 
  minimized because messages were sent to all participants, including 
  sub-participants at the same time rather than requiring a sub-coordinator to 
  act as an application proxy and forward any commit or cancel 
  requests.

If people are saying that sending (for example) 1000 
SOAP requests over the internet is more performant that 2, and 998 over a LAN 
then I'd like to see some justification for this. Unless you can use a broadcast 
medium, and even then it would have to be over something like dedicated ethernet 
with more than 4 participants, then flattening the tree will not give you better 
performance. What we're talking about is trading internet calls for intranet 
calls whenever possible. Obviously there may be cases where sub-coordinators 
talk to "locally" registered participants over exactly the same network as the 
root coordinator would, but that's not always going to be the case. 
Interposition has been used in many systems (not just transactions) for years, 
and its used precisely because it typically improves 
performance.

 

I heard that there was some attempt to justify this 
root-registration policy on the grounds of removing a bottleneck from the 
sub-coordinator? So, let's just get this straight: we're trading the perceived 
bottleneck of the sub-coordinator for the definite bottleneck of the network? 
Again, if someone's got some good figures showing that sending 1000 requests 
from, say, NY to LA is less of a bottleneck than sending 2 messages I'd love to 
see them.

  
 

  
My 
  opinion is that this breaks down completely for orchestrated 
  transactions.  Even for a transaction set where all of the root 
  participants are atomic, individual sub-participant failures may be 
  recoverable if the coordinator knows the context/semantic/business function in 
  which the sub-participant is called.  For sub-participants this is not 
  knowable at the root coordinator.  Even if the root coordinator knows the 
  kind of thing that is to be called e.g., parcel delivery service, it will not 
  know the business policies at the sub-participant site that define what thing 
  to call in different situations.  This information could (and should IMO 
  of application design) reside in the 
sub-coordinator.

Agreed. I'd like to see that sub-participants have to 
register with sub-coordinators. As you say, there's the separation of 
concerns issue, and definitely the performance/trust issue.

 

Mark.

 

----------------------------------------------
Dr. 
Mark Little ()
Transactions Architect, HP 
Arjuna Labs
Phone +44 191 2064538
Fax   +44 191 
2064203