Those of you who pay attention to these things might have noticed that we recently published new versions of the WS-Transaction family of specifications. These versions are dated August 2005 and supersede the previous versions from October 2004.
You can find the new specifications on MSDN:WS-Coordination: http://msdn.microsoft.com/ws/2005/08/ws-coordination/WS-AtomicTransaction: http://msdn.microsoft.com/ws/2005/08/ws-atomictransaction/WS-BusinessActivity: http://msdn.microsoft.com/ws/2005/08/ws-businessactivity/
So what's new in these specifications, you might ask? Great question. We made a number of changes, all for good:
We've added some new co-proposers, including representatives from Hitachi, IONA and Arjuna. These companies have been involved in our WS-Transaction interoperability events for a long time and have made significant contributions in this space.
We addressed one of the more common interoperability problems by defining specific actions for WS-C and WS-AT fault messages, instead of leveraging the WS-Addressing fault action. This allows implementations to easily distinguish faults generated by the actual protocols from faults generated by the infrastructure or other binding-specific elements.
We also made the fault message schemas more precise and clarified the meaning of each standard fault code.
We clarified the use of WS-Trust in the WS-C security model for authorizing participants. Instead of leaving the precise details of this composition to the implementation, we specified the use of the <wst:IssuedTokens> header to propagate security tokens alongside coordination contexts. This should greatly simplify the interoperability of the model significantly.
Last, but far from least, we removed the old (and rather obsolete) WS-Policy sections from all three specifications, introducing a new policy model for WS-AT and WS-BA. It is now possible to create policy documents for applications that specify in an interoperable manner the requirements of a given web service with respect to coordination context flow. For example, by using the new policy assertions, one can now write a WS-AT-aware service that uses WS-Policy to tell clients whether they MUST, MAY or SHOULD NOT flow WS-AT transactions to the service. This is an area in which proprietary mechanisms and frameworks have been used forever, so having this policy in place is a highly significant step for the WS-* model and for web service interoperability in general.
One interesting fact: while we corrected some minor problems with the 2004/10 schemas, we did not make any changes that were significant enough to merit a namespace change. Consequently, the good old http://schemas.xmlsoap.org/ws/2004/10/wscoor/ namespace and friends are still current. Our intention here was to preserve the interoperability gains we made in our January 2005 interoperability event, preserving the possibility of continuing to interoperate with implementations that targeted the previous version of the specifications.
And yes, in case you were wondering, Indigo Windows Communication Framework has supported WS-AT since its first public releases and Beta 2 will be no exception. We have spent a lot of time working on transaction flow functionality, security and performance in these last few months, and that includes a fully secure and interoperable implementation of WS-AT. I was tempted to post what would apparently be the first snippet of code + configuration demonstrating how to enable WS-AT transaction flow between services, but I think I should probably wait until our public disclosure at the PDC. Let me just say that switching to WS-AT as your transaction flow protocol is a single line of configuration. Enabling a service for interoperable WS-AT transaction flow is as simple as selecting an interoperable standard binding and turning on transaction flow with another line of configuration.
Did I mention that I love the transaction flow features in WCF Beta 2? I'm sure I have. One of these days, I'll spend some time talking about the most interesting parts of WS-C and AT and why I think they're so important.
Speaking of the PDC, if you're going to be there and you'd like to talk to me about WCF transactions, or if you have questions about (or plans for !) WS-Transaction implementations or interoperability, drop me an email and let me know that you'll be looking for me there.