I celebrated my return from vacation Monday by getting on a plane to Seattle for the three-day Web Services Transactions technical committee face to face. ;-)
Bad weather in Chicago caused a total of 5 hours' delay on the way out, and I missed my connection. My bag, which I checked only because of the new restrictions, ended up on a different plane than I did, which cost me one of those hours. On the way back I decided it wouldn't happen again, so before leaving the hotel I threw away all the toothpaste, shaving gel, and cologne in my toilet kit. Of course the weather was fine Friday and the delays were minimal...
Anyway from Tuesday through Thursday we made some good progress on the WS-Transactions specifications. These are important specifications because some applications of Web services and SOA require transactional integrity, and because the coordination spec (WS-C) and compensation spec (WS-BA) lay the foundation for some of the advanced transaction models we will need for large scale, loosely-coupled, asynchronous applications of SOA.
Tuesday and Wednesday we resolved all outstanding issues with current drafts of WS-Coordination and WS-AtomicTransaction. We confirmed successful interop testing of them, and voted them to Public Review, which is the next step toward their becoming OASIS standards. (The new drafts will be posted soon on the TC website.)
Wednesday evening Ian Robinson, my co-chair, had the idea of going to the restaurant in the Space Needle. Not everyone went, but those of us who did had a great view of the sunset. As is typical for Seattle the day had been cloudy with a bit of rain but by evening it started to clear.
A lot of the discussion on Thursday was given over to issues on the WS-BusinessActivity specification.
The two-phase commit protocol defined in WS-AT hasn't fundamentally changed in 20 years (or more), and has been standardized at least four times previously (OSI TP, TX-RPC, OTS/JTS, and TIP). And implementations of this specification interoperate pretty smoothly, and the spec is pretty stable.
Of course you might ask whether two-phase commit is appropriate for Web services and SOA, but the answer is, like anything else, that it depends what you're doing, and it sometimes is.
Anyway the bigger, more open discussion is on alternative protocol models, which are more appropriate for asynchronous or long-running applications, such as WS-BA. Less is known about these from implementation experience.
WS-BA is an "open nested transaction" protocol, which means that "nested" or substransactions can commit without the overall transaction committing. Compensation actions are then required to undo any changes should the overall transaction have to roll back.
In this context the overall transaction can be thought of as a WS-BPEL script with multiple service invocations, and in fact one of the design criteria, if not the main one, for WS-BA is that is is a good match for WS-BPEL compensation scopes.
Other advanced transaction models and protocol mappings are possible on top of WS-C, but these are outside the scope of the current TC. We are still hoping to complete the TC's work within about a year of it's initial meeting last November, and at the moment we are probably on track for completion in early 2007.