Monday, November 17, 2003



BPEL and Transactions

Thought it might be worthwhile to have a post about an area I work on directly here at Oracle - BPEL.  There is a very interesting article on BPEL and transactions written by the folks over at Choreology, published in Web Services Journal this month. 

The interesting thing that they show, unlike the the specifications for WS-AtomicTransaction/WS-Coordination and WS-CompositeApplicationFramework, is the leap to how transactional context might be passed around syntactically within BPEL itself (assuming some standardization of the above specifications) - the specifications themselves tend to be so low level that one has a hard time imagining their use within a BPEL context.   Check out Choreology's proposal  for passing around transaction context within BPEL (read the article for more detail):

<variables>
<variable name="receivebusinessTransactionContext"
               type="wscoor:CoordinationContext"/>
<variable name="ourBusinessTransactionContext"
               type="wscoor:CoordinationContext"/>
</variables>

<receive
  partnerLink="customer"
  portType="al:reservationPT"
  operation="createReservation"
  variable="reservationRequest"
  businessTransactionContext="receiveBusinessTransactionContext"/>

<invoke
  partnerLink="airline"
  portType="al:reservationPT"
  operation="createReservation"
  inputVariable="reservationRequest"
  inputBusinessTransactionContext="ourBusinessTransactionContext"
  outputVariable="reservationDetails"
  outputBusinessTransactionParticipants="FlightComponent"/>

Nice work illustrating a hard topic!

The article's authors also give insight into the politics of the BPEL OASIS TC - raising issues with the way transactions are done now (essentially implicitly because it is underspecified) versus their proposal which makes transactions explicit in the language itself.  Which is better is up for much debate as they imply, suggesting by their article that their explicit approach is preferred.

Something that would help, imo, is if the folks behind WS-T/C would either submit it to or join the OASIS TC on WS-CAF so the industry could have a unified Web services transaction story rather than a bunch of disjoint efforts (WS-C/T, the OASIS BTP and the one Oracle is participating in, because it is going through an public standards process, WS-CAF).  The non-submission to standards might make for "getting it done faster outside of standards" or good politicking but it seems to make for a lousy end result for customers who, whether you like it or not, will have a mixture of Microsoft, IBM, Oracle, BEA and others.

I wrote an introductory article on Web services transactions in last month's Oracle Magazine which mentioned that the standard/specification issue is relevant for transactions and noted that WS-CAF was at least taking the right process approach by coming at it from an open standards body perspective.



comment []
11:38:08 AM