OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

bt-spec message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: [bt-spec] FW: Issue 89


 
----- Original Message -----
Sent: Monday, April 22, 2002 11:38 PM
Subject: Re: [bt-spec] FW: Issue 89

Comments intermixed <gb>

Mark Little wrote:

Geoff, removing all text from previous emails in order to make an implementation suggestion: if I have read your requirement correctly then what you want to do is basically have multiple TMs shadow each other (you have talked about 2 TMs, but I don't see why it couldn't be extended to more than that to improve availability.) If that is the case then rather than have one TM send its state to another (which I'm still dubious about for security reasons at the very least), how about the following:

<gb> Your along the right lines .. It is more a case of "passing" control rather than "shadowing" which learns heavily towards HA.

<ml>At this point the issue is only talking about state serialisation and deserialisation. If you want to open it up further then please do so. However, unless you do, I still think that this example solves the current problem.</ml>

Key point : Complex supply chains "hinder" visability of transactions boundaries - one traverses complex supply chains by "passing" transaction contol from one TM to another.

<ml>Again, this wrapper technology would do this since the intelligence about which TM is the controller can be as complex or as simple as you want. For example, given the location of the sender, the wrapper could determine that a physically close TM is the master for this invocation and shadow to the other(s).</ml>

 

It is possible to have more than 2 TMs, however in reality I could not think why one would want more than 4 TM's ( this is based on the most complex supply chain interop problem I know / face </gb>

<ml>Possibly because availability is not proportional to the number of replicas you have.</ml>


  
  As with CORBA OTS and even JTA, BTP basically hides implementations behind interfaces (OK, BTP doesn't actually get as high up the stack as an interface, but there's an implicit subtext that shows that the users of the message sets could very well be hidden behind some additional level of indirection). [And Web Services do this for us as well.] So, if that's the case, a user of a coordinator (or factory in the case of BTP) doesn't see what's behind that interface. It could be a single coordinator, or it could have some additional intelligence that farms incoming requests out to multiple (possibly different vendor) coordinators. In that way, an ENROL message (for example) is, as far as a participant is concerned, received by a coordinator, but behind the scenes it is actually distributed to, say, 2 different coordinators, one of which will act as the master and the other will act as the backup in the event of a failure. This happens transparently, doesn't require any state transfer (i.e., no modification to BTP) and works completely within the security model (or lackthereof) that BTP assumes. As a vendor, it is then up to the provider of this coordinator-farmer, to ensure that the coordinator services that are farmed out to are secure and in line with whatever security model the vendor provides to users or that users require. In addition, this is a recursive structure, since I'd assume that this coordinator-farmer could talk to its coordinators using BTP messages and they may appear to it as coordinators, but may in fact be other farms. Obviously, for performance reasons another vendor may decide to use some proprietary means of distributing the BTP requests, but that's hidden behind this farm interface and does not impact the user at all. 
<gb> I do like the ENROL idea, however this comes across as a Load Balancing solution ( I may misunderstand your position here ) </gb>

<ml>You could use it as such, since the intelligence is hidden. However, what I'm trying to show here is that more than one TM gets the messages transparently and can act on them in such a way that one of them (call it the master) does all of the work (e.g., sends back an ENROLLED message) while the other (call it/them the backup(s)) simply change their state accordingly. If the master goes down, then the backup can come into play and take over, and this is seamless to participants and other users. As indicated above, the actual role of master and backup can be selected based on lots of different criteria (c.f. coordinator-cohort where each client/invocation could potentially have a different master/backup combination). So we end up with peer-to-peer shadowing as you wanted.</ml>


 This would appear to give you the ability that you require. In addition, the amount of intelligence at the farm site could be down to the vendor. For example, you might not want to do this level of farming for Joe Bloggs service since he didn't pay you for it, but for XYZ Corporation you might. There are obviously lots of ways in which this approach could be extended and if you want me to go into more detail please ask. The important point that I want to stress again, is that this approach does not require any modification to the current BTP specification. (And it's based on previous implementation experience.) 
<gb> Your help is appreciated </gb>
 Mark. ----------------------------------------------
Dr. Mark Little, Distinguished Engineer,
Transactions Architect, HP Arjuna Labs
Email: mark_little@hp.com
Phone: +44 191 2606216
Fax  : +44 191 2606250  



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC