RE: interposition requirements

From
Bill Pope <>
Date
2001-04-30T14:55:13+00:00
ID
C4EE90263CBFD411A0C800B0D0490095014DA9DB@bst-mail02
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.

 

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.

 

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.

 

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.

 

=bill

  
-----Original Message-----
From: Mark Little 
  [mailto:]
Sent: Monday, April 30, 2001 7:28 
  AM
To: bt models
Subject: interposition 
  requirements

  
I've been talking to Jim Webber and Savas P. who attended last weeks 
  face-to-face. From their notes, and from little I could hear on the 
  teleconference, it would appear that there was some discussion about 
  sub-participant registration. In this email I'll term the web services that a 
  client interacts with directly the root-participants, and any web service that 
  those services talk to the sub-participants.

  
 

  
Now, a root participant receives a context it must be BTP-aware (and I 
  think we agreed on this at the meeting). Therefore, at some point in its life 
  it will register with the coordinator as a root-participant that can be driven 
  during the termination protocol. If during the course of an application 
  invocation a root participant needs to contact another BTP-aware service, the 
  question is, where does the sub-participant register?

  
 

  
In a traditional TP environment, if all participants had to register with 
  the root coordinator then performance would typically be in the drain, 
  especially if one node has lots of participants. Therefore, the typical way to 
  get round this is to use interposition, whereby a proxy for the transaction 
  manager (a sub-coordinator) is registered with the root, and local 
  participants register with the sub-coordinator. The advantage to performance 
  is obvious. However, interposition is not mandated, and a participant that 
  wants to register back with the root coordinator is (usually) free to do 
  so.

  
 

  
So, do we want something like this in BTP? From what I've heard, the 
  answer was no. I disagree with this for several reasons:

  
 

  
(i) performance: see above.

  
 

  
(ii) trust: the root coordinator may only trust requests (e.g., 
  registration) from the root services.

  
 

  
(iii) connectivity: there may be no direct route to the root coordinator 
  for the sub-participants, e.g., an intranet with only a few external ip 
  addresses, but which has lots of internal web services.

  
 

  
What I would suggest is that we allow interposition, such that if a 
  sub-participant receives a context, it is up to the service that sent it 
  whether or not it wants to modify the context to point to a sub-coordinator 
  and not directly back to the root coordinator. The sub-coordinator piece to 
  this puzzle is not web service specific, so we're not putting a burden on the 
  application developer; it's something that can be developed once for all 
  time.

  
 

  
Mark.

  
 

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