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

 


Help: OASIS Mailing Lists Help | MarkMail Help

business-transaction message

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


Subject: RE: [business-transaction] Re: SP? RE: [business-transaction] RE: [business-transaction-comment] Public Comment


But but but, WS-CAF will require him to "create my own abstraction layer
- effectively a new protocol, and map it onto all existing ones - a huge
task, which I am not equipped to do..."

Or accept the WS-TXM BP suite of protocols as an abstraction layer,
assuming that would work for him (although BP too is a suite of
sub-protocols) and create his own mapping layer.

And yes all of that stuff can still be handled by one single simple set
of protocol messages.

So why not agree on a standard abstraction layer?


-----Original Message-----
From: Mark Little [mailto:mark.little@arjuna.com] 
Sent: Monday, November 10, 2003 3:51 AM
To: Lublinsky,Boris S.; Furniss, Peter;
business-transaction@lists.oasis-open.org
Cc: Newcomer, Eric
Subject: [business-transaction] Re: SP? RE: [business-transaction] RE:
[business-transaction-comment] Public Comment


Boris, I understand your concerns about standards. Why not join the
WS-CAF effort? Your input would be appreciated.

Mark.

----
Mark Little,
Chief Architect, Transactions,
Arjuna Technologies Ltd.

www.arjuna.com

----- Original Message -----
From: "Lublinsky,Boris S." <Boris.Lublinsky@CNA.com>
To: "Mark Little" <Mark.Little@arjuna.com>; "Furniss, Peter"
<Peter.Furniss@choreology.com>;
<business-transaction@lists.oasis-open.org>
Cc: "Newcomer, Eric" <Eric.Newcomer@iona.com>
Sent: Saturday, November 08, 2003 6:25 PM
Subject: SP? RE: [business-transaction] RE:
[business-transaction-comment] Public Comment


> This conversation is very fascinating, but...
> My paycheck, which I am very attached to, does not depend on 
> implementation of the best transactional protocol, (you guys know much

> more about it) but rather on my ability to architect complex systems. 
> These complex systems require transactional semantics all over the 
> place, but the absence of the well-defined protocol forces me to: 1. 
> Adjust service boundaries, when it is possible, to incorporate 
> transactional requirements into the service implementations. I 
> effectively need to factor transactional behavior in the service 
> "shape", which potentially has a negative impact on the overall SOA 
> proposition. 2. Over engineer error handling for every service and 
> system as a whole. I definitely need transactional support, but if I 
> want to have any chance to succeed, this support has to have a well 
> defined semantic and set of APIs/messages, supporting this semantics.
> Multiplicity of the transactional protocols will cause me to create my
> own abstraction layer - effectively a new protocol, and map it onto
all
> existing ones - a huge task, which I am not equipped to do.
Microkernel
> approach - good in principle - will lead to all kinds of vendor
> extensions/enhancements, which will break interoperability again.
> The unfortunate issue is that transactions have to be part of
> interoperability stack - any other solution will break the system.
> I am crying for help here....
>
> -----Original Message-----
> From: Mark Little [mailto:Mark.Little@arjuna.com]
> Sent: Friday, November 07, 2003 3:54 PM
> To: Furniss, Peter; business-transaction@lists.oasis-open.org; Mark 
> Little
> Cc: Lublinsky,Boris S.; Newcomer, Eric
> Subject: RE: [business-transaction] RE: [business-transaction-comment]

> Public Comment
>
>
> >===== Original Message From "Furniss, Peter"
> <Peter.Furniss@choreology.com>
> =====
> >The Mark-and-Peter thread - hope everyone did get Mark's reply to me.
>
> Yes, maybe we should change the title ;-)
>
> >
> >> -----Original Message-----
> >> From: Mark Little [mailto:mark.little@arjuna.com]
> >> Sent: 07 November 2003 11:05
> >> To: Furniss, Peter; business-transaction@lists.oasis-open.org
> >> Cc: Newcomer, Eric; Lublinsky,Boris S.
> >> Subject: Re: [business-transaction-comment] Public Comment
> >>
> >>
> >> >> The general approach, of small core and extra features as
> >>> needed, is
> >> >> appropriate, but the application of the principle to the problem
> is
> >> >> completely wrong.
> >> >>
> >> >> What we are all seeking is a protocol (or protocols) - a set of 
> >> >> messages with defined semantics - for communicating
> >>> transactionality
> >> >> between fairly loosely-coupled systems using webservices.
> Applying
> >> >> the micro-kernel paradigm means we should be looking to
> >>> abstract the
> >> >> variations in the semantics in different use cases to their 
> >> >> fundamentals, and have a protocol that transmits the 
> >> >> fundamentals. Don't even think of implementation or engines yet;

> >> >> just define
> what
> >> >> the messages must mean, assuming no greater knowledge of
> >>> the internal
> >> >> behaviour of the opposite end than is mandated by the use of the

> >> >> protocol.
> >>>
> >>> Factoring where factoring makes sense is always a good idea. 
> >>> However, just because two protocols have messages that have the 
> >>> same name doesn't mean that they can be factored!
> >>
> >>Same name ? The portfolio approach gives different names to messages

> >>that turn out to have effectively the same meaning. We want to
> factorise
> >>on semantics, then choose the name.
>
> >But the fact is that they *don't* have the same semantics. Forward 
> >compensation and backward compensation are different things and have
> different
> >guarantees. If I use an XAResource then I know that when I tell it to

> >rollback, the work will be undone when rollback returns. If I use a 
> >compensation resource with a compensation transaction (e.g., Sagas)
> then the
> >guarantees are different and could result in cascade-abort, which 
> >could
> take
> >hours, days, weeks (or never) to complete. From a service composition

> >approach, I want to know what those guarantees are when I create my 
> >application because it'll affect what I can do. Just because 
> >somethings
> called
> >"cancel" and you map it to "rollback" and "compensate" at a higher
> level
> >doesn't let me see that the side-effects are different. And this 
> >isn't
> even
> >getting into the discussion about isolation, durability etc. which 
> >come
> into
> >play when you look at interoperability between TP implementations.
>
> Anything, but semantic factoring, will break interoperability and 
> create a disaster
> >>
> >> >> We should, in the first instance, further limit the scope
> >>> to the true
> >> >> inter-party exchanges - what btp calls the outcome protocol, but

> >> >> including the propagation and registration mechanisms. The 
> >> >> control mechanisms, by which an entity creates a transaction and
> >>> controls its
> >> >> lifecycle, are secondary - they will frequently be more 
> >> >> "intimate" than the outcome protocol (in-process api v 
> >> >> inter-process
> messages;
> >> >> intra-company transaction server v inter-company b2b
> >> >exchanges), and
> >> >> the control mechanism is meaningless without a standardised
> outcome
> >> >> protocol, but not vice versa.
> >> >>
> >> >> But WS-CAF/TXM, and to a lesser extent, WS-C/Tx apply the
> >>> micro-kernel
> >> >> approach to the engine that supports the control mechanism 
> >> >> (which doesn't need to follow a service-oriented
> >> >> architecture)
> >>
> >>> Why do you say this doesn't need to be SOA based? We're working in

> >>> a Web services environment for a start. I know well the argument 
> >>> that BTP isn't just Web services based, but in the world of Web 
> >>> services transactions that's not an argument at all.
> >
> >>I should have emphasized the word "need". How the application 
> >>software communicates with its immediate ws transaction support
> doesn't
> >>*have* to be WS - one could use the JTA interface or something based

> >>on it, for example. Of course, defining the control interactions in 
> >>wsdl makes it easier to have a separate hub-style coordination 
> >>service, but that's not an essential for getting coordination 
> >>between application services.  Whereas the outcome protocol *does* 
> >>have to be web-services (otherwise it would just be TIP)
>
> >OK, I understand your original point now. WS-CF/TXM build on Context,
> which
> >affects the interaction style, though it's not mandated.
>
> Context absolutely has to be there if we want any chance of 
> transaction propagation
> >
> >> >> and forces the inter-party exchanges (which are definitely SOA) 
> >> >> to be rich and varied.
> >> >>
> >> >> Given a common outcome protocol, with the fundamental
> >> >promise/decision
> >> >> (two-phase) pattern, the separate parties do not need to agree 
> >> >> beforehand which kind of transaction they are involved in this
> time.
> >>
> >> >That's not true. It may be the case with the people you're talking

> >> >to, but certainly for the users of the other specifications that 
> >> >isn't the case. Services want to know precisely what kind of 
> >> >transaction they are involved in, what the semantics associated 
> >> >with it are and (at some stage) whether they can actually be 
> >> >involved in that transaction.
> >
> >>This really is the crux of the matter - how often do the services in

> >>a transaction *really* need to know what is going on elsewhere ?
>
> Services usually don't, business process, orchestrating service - 
> does.
>
> >That may be the crux of some problem, but it's not what I meant in 
> >the
> above
> >paragraph! Basically it comes back to the different guarantees that
> each
> >extended transaction model (and I class ACID transactions as just a
> model on
> >this sliding spectrum) provides. Each protocol makes different
> assumptions
> >(rules) about the characteristics services/participants have in terms
> of
> >atomicity, isolation etc. and those services/participants must obey
> those
> >rules.
> Absolutely. The problem here that services implementations themselves 
> are, in this case, transactional resources, implementing certain 
> transactional guarantees. This can lead to another problem, which is -

> you can't really impose transactional semantics on the transactional 
> scope, including services, that does not support this transactional 
> semantics. This is like force one phase resource to participate in 2PC
>
> >>How will it affect their internal behaviour ?
>
> >Well, like I said, if we just take ACID semantics then I'd like 
> >serializability from my services for a start, which is something not
> all
> >models require. It wouldn't be good practice for me to glue together 
> >my
>
> >application from some services that did provide serializability and
> some that
> >didn't.
> See above
>
> >> How would differences
> >>in the internal mechanism affect the rest of the transaction ?  If 
> >>we are service-oriented, or even just trying to keep the different 
> >>elements
> of
> >>an application appropriately separated, it is only the service 
> >>behaviour that is of interest.
>
> >I'm not sure if we are in conflict here, but I'll assume we are ;-)
>
> >How the service behaves is mandated by the transaction model is
> participates
> >within. The overall behaviour of the service with respect to the
> transaction
> >is a combination of the business logic embedded in that service and 
> >the
>
> >participant(s) that interacts with the transaction.
>
> So basically, implementation is irrelevant, but supported 
> transactional semantics is very important
>
> >> Within a service, one needs to decide
> >>how *different* transactions affect each other (or how to stop them 
> >>doing so), but what does it actually need to know about each, except

> >>when two bits of the same transaction come into the same service, 
> >>and what the
> >>timescales are.
> >>
> >>An excellent statement of service-orientation as it applies to these

> >>protocols is found in the short statement on WS-AtomicTransaction in

> >>the paper "Secure, Reliable,
> >> Transacted Web Services: Architecture and Composition" from IBM and
> >>Microsoft
>
>>(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwe
> bs
> >>rv/html/wsOverView.asp among other places)
> >>
> >>Section 3.7.2 of that is:
> >>
> >>WS-AtomicTransaction defines a specific set of protocols that plug
> into
> >>the WS-Coordination model to implement traditional two-phase atomic 
> >>transaction protocols. It is important to note that the atomic, 
> >>two-phase model is only with
> >>respect to the services involved. Sites or infrastructure offering
> >>services may
> >>advertise two-phase commit, but use some other intra-enterprise
model
> >>like
> >>compensation or versioning. This freedom makes a simple two-phase
> commit
> >>model
> >>more useful for long-running Internet computations.
> >>
> >>which I entirely agree with. Of course, the statement completely 
> >>sabotages the need to have a separate BA.
>
> >Well let's just say that there's a difference of opinion within large

> >organisations like IBM and MSFT on everything and if you talk to
> different
> >people you'll get different answers. C'est la vie!
>
> >
> >
> >>>   A
> >>> service that supports Atomic Transaction (taking the IBM/MSFT/BEA 
> >>> specs to be even handed) is written entirely differently from one 
> >>> that supports Business Activity. And the user of that service had 
> >>> better know before hand that it can't be invoked using Business 
> >>> Activity because it can't provide the necessary service-side 
> >>> semantics to obey the protocol.
> >
> >what exactly can't it do ?  The reader of the BA spec will think the 
> >service is going to do perform,/compensate-if-told-to - but the work 
> >is still tentative in some way until compensate|close and, since this

> >is a service, it isn't really meaningful to ask if the "partial 
> >results are accessible".
>
> This I think is a very important point-back to the issue that service 
> becomes a transactional resource and has to be implemented as such
>
> >Hopefully previous answers answer this. If not, let me know.
>
> >
> >> > Each participant is concerend only with establishing (via the 
> >> > application exchanges) what the content of its promise will
> >> be, making
> >> > the promise, and applying the decision.
> >>
> >> But you ignore what it means to make the promise, or even what that

> >> promise is. There are occassions where such a promise can be pushed

> >> to the back-end and not affected by the type of protocol. But there

> >> are many more where it can't. Maybe I'm missing something here 
> >> (perhaps reading too much between the lines) because I'm sure you 
> >> can't believe that abstract "promises" and signals are all that's 
> >> required.
> >>
> >> > It
> >> > generally doesn't need to know what else is going on in the 
> >> > transaction, and the rest of the transaction doesn't need
> >> to know how
> >> > it is delivering on its promises.  That's service-oriented 
> >> > transactionality.
> >>
> >> That is definitely one specific model, and Business Activities/Long

> >> Running Actions do epitomise that behaviour precisely because 
> >> they've been designed with that in mind. However, the Atomic 
> >> Transaction models (from both specs.) are intended for 
> >> *interoperability* between existing TP systems. Please remember 
> >> that Web services are as much about interoperability as they are 
> >> about the internet. And in which case, the semantic differences 
> >> between these types of protocol are significant and can't be 
> >> ignored, especially at setup (bind) time or (importantly) at 
> >> implementation time.
> >
> >I'm quite certain you can use BTP to interoperate with other TP
> systems.
> >In
> >fact isn't that what the JOTM implementation effectively does, 
> >treating BTP as just another transaction protocol.
>
> >Well the JOTM implementation only implements close-top atoms as far 
> >as
> I'm
> >aware.
>
> I don't think that it is feasible to mandate that WS transactions are 
> build on top of existing TPMs. This can cause two many problems in the

> general case. I would rather see it as a rare option
>
>
> >  BTP lacks the synchronization
> >mechanism (which is we've suggested sync should be stirred into the 
> >convergence pot). What else is special ? We've got an atomic flag
>
> >The semantics! There is no implied semantic for isolation or cancel 
> >or durability (as examples) with BTP - and that's fine: that's not a
> problem for
> >certain types of application (i.e., this isn't a criticism of the
> protocol).
> >However, because of that very fact an application provider can't
> determine
> >purely from the fact that a service is BTP-compliant that it's also
> going to
> >fully support ACID semantics (again, as an example). Despite what the
> above
> >IBM paper may say, the Atomic Transaction model in WS-T is meant 
> >purely
> for
> >inter-organisational TP-to-TP interactions where the ACID semantics 
> >are
>
> >mandated and must be known a priori.
>
> >Now, you could do this with BTP with suitable Qualifiers and maybe
> publishing
> >the service in a special way in UDDI, for example. But the fact is 
> >that
> it's
> >not part of the protocol. You have to go outside the protocol to do
> this.
>
> I hope, for interoperability sake, that semantics is explicitly 
> defined in the protocol
>
> >
> >
> >> > Of course, there are cases where it is appropriate to pass more 
> >> > information about the transactional behaviour between the
> >> parties. But
> >> > those are refinements of the basic exchange, and
> >> appropriately passed
> >> > as qualifiers, policy declarations etc.  For example, informing 
> >> > all receivers of a context that any participant enrolled with
> >> it will get
> >> > the same decision allows said receivers to share work between 
> >> > participants, if they so wish, in a way that would be unsound 
> >> > without that assurance. Announcing time limits and time scales, 
> >> > allows other parties (if they have the flexibility) to choose an 
> >> > appropriate internal mechanism for how they will work in this 
> >> > case - but a service that lacks the flexibility doesn't have to 
> >> > be told about a completely different protocol just because some 
> >> > transactions it is involved in will take longer than others.
> >>
> >> Qualifiers are a useful extension to protocols but must be used 
> >> with care and have to be agreed upon by all sides in any 
> >> "negotiation". So if I have to define Qualifiers that take a base 
> >> BTP protocol (say) to the level of ACID transactions (no forward 
> >> compensation, isolation levels, etc.) then all parties are going to

> >> have to agree on the precise meaning of those Qualifiers, I'm going

> >> to have to make sure that MustUnderstand (or whatever) is set to 
> >> true so no one can break the protocol, my services are going to 
> >> have to publicise the fact that they understand these Qualifiers 
> >> (it could be done dynamically, but in our experience that's not
> >> the way people work at the moment), ...
> >
> >Unless we take as a starting axiom that everyone must know what kind 
> >of transaction it is, it is difficult to see why *all* the players 
> >MustUnderstand.
>
> >That is precisely my starting axiom - remember, interoperability is
> pretty
> >important!
>
> Thank you
>
> > The qualifier stuff is useful to some, but may not
> >be to all. Why can't that service do forward compensation if it
> delivers
> >the right results to me and to everybody else. ?
>
> >Because forward compensation doesn't give me the same guarantees for
> "undo" as
> >rollback (timeliness for a start) and neither does it say anything
> about
> >isolation or durability. BTP defines just the termination protocol,
> leaving
> >everything else (such as isolation) up to the service or protocol
> extensions
> >via Qualifiers. However, WS-T/WS-TXM have implied or explicit 
> >semantics
> for
> >more than termination associated with each model.
>
> >
> >> There's a lot of work there to take a basic protocol and narrow it 
> >> to a more specific protocol. It's all possible and I'm sure you've 
> >> as much experience in doing it as we have. But what's to be gained 
> >> from going that route as opposed to making those agreements 
> >> explicit in the protocol messages and the WSDL to start with? From 
> >> the experiences and feedback we've had, the latter approach is what

> >> people in Web services are after (whether they want Web services 
> >> for the internet or for interoperability).
> >
> >Except they won't actually be explicit.
>
> >Sorry, who won't be explicit about what?
>
> > The attraction of the portfolio
> >approach is indeed that everything is declared up-front - "this 
> >transaction is being run under the WS-LRA agreement - if you can't 
> >cope with that, don't join in". However, in practice, if there is, in

> >a particular case a genuine need for distributed understanding of the

> >internal behaviour of the parties, the general protocol-defined 
> >agreement is probably not going to be enough.
>
> >What do you call the general protocol? In my definition I'd say that
> "2PC as
> >unifying approach" is the general protocol and WS-T/WS-TXM define
> specific
> >protocols. Is that consistent with your meaning?
>
> Frankly, I have no idea what this means. I would say that 2PC is one 
> of unifying protocols. Cohesion can be the other one
>
> >  Compare with XA - although XA
> >semantics are fairly tightly-defined, you still have to dig into the 
> >database manual for sophisticated cases, and if you are into tight or

> >loose coupling (in the XA sense), you need a further agreement 
> >(between your program and the database configuration, in that case)
> >
> >So, how big is the portfolio going to get ?  Will there be any chance
> of
> >interoperation if every service has to choose which of the 3, 5, 10, 
> >60 transaction protocols it can cope with ?
>
> >Who knows? At last count there were well over a dozen extended
> transaction
> >models some for very specific niche cases and many that were
> multi-phased
> >(more than 2). But we're not saying that every service has to support
> every
> >protocol. Where did that come from?
>
> >
> >
> >There's a further point - it's claimed that WS-TXM supports 
> >interoperation between transaction protocols. From the ws-caf faq on 
> >the Arjuna
> >website:
> >
> >WS-TXM's transaction model supports interoperability across multiple 
> >transaction protocols, including BTP, WS-TXM itself, and other 
> >proprietary
> protocols
> >such as WS-Transaction.
> >
> >(I thought I'd seen a wider list claimed, but I can't find it)
> >
> >Now it's possible I've misunderstood that, and the "interoperability"
> is
> >that
> >you can use a BTP atom (say) to deliver the promises of WS-TXM LRA
> (say)
> >- but
> >that doesn't seem to be so from context (and would make it a very 
> >misleading statement). That's certainly possible, but no different 
> >from saying any of the
> >protocols (except those wedded to acid and xa) could "interoperate"
> >between local
> >database transactions using a compensation approach (say).
> >
> >But if it means what it seems to, that it is possible to use ws-txm 
> >as
> a
> >transaction bridge,
> >with one transaction spanning multiple protocols and mechanisms, then

> >I think you've made my argument. That can only be true if it 
> >*doesn't* matter what the internal
> >mechanisms are and the protocols *are* semantically equivalent.
>
> >If memory serves, it refers to the BP model which is specifically 
> >about
>
> >interoperability across different models and enterprise domains. The 
> >assumptions that that model makes are much more in the area of what 
> >you
> might
> >traditionally consider SOA because it's intended for loosely-coupled 
> >environments. But that doesn't make it BTP.
>
> >
> >
> >> >
> >> > The WS-CAF/TXM and WS-C/Tx "portfolio" architectural paradigm is 
> >> > inappropriate for web-service transactions.
> >>
> >> Based on whose experiences? I hate to keep sounding like a broken 
> >> record, but as far as Web services are concerned, the paradigms 
> >> being proposed by IBM, Microsoft, BEA, Oracle, Sun, IONA, Fujitsu 
> >> and many others (who make up the Web services
> >> "heavy-weights") are appropriate.
> >
> >ok, so I'm heretic :-).
>
> >I'm saying nothing ;-)
>
> > Perhaps the industry hasn't thought through for transactionality
> >the implications of service-orientation.
>
> >Or perhaps it has. Don't you think that's worth considering?
> Based on what is available, it has not
>
> >  (though actually some of this
> >goes right back to OSI CCR and TP - where the open systems 
> >interconnection paradigm (identical to the contemporary internet 
> >paradigm) was rather similar to SOA). And
> >as you pointed out, they didn't implement those much either.
>
> >Let's meet back on this discussion in 2010 and see what happened ;-)
>
> >Mark.
>
> Boris
>
>
>


To unsubscribe from this mailing list (and be removed from the roster of
the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/business-transaction/member
s/leave_workgroup.php.



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