When it comes to transaction management, the key limitation in many Web services-based implementations is performing cross-service transactions. As long as a service is at the root of a transaction and the scope of the transaction is limited to activities that are performed by the service's underlying solution logic, there is no need for cross-service transaction functionality, and the transaction can be managed by whatever proprietary technology (component-based, legacy, or otherwise) it encapsulates. However, as the amount of services in an environment grows, the need to span transactions across those services increases. To address this requirement a set of WS-* specifications were developed a while ago.
First, the WS-Coordination specification provides a context management mechanism implemented through a set of stateful system services capable of logging information about and tracking the status of an on-going activity performed by a set of services that have registered to participate within this activity. Two supplementary specifications, WS-AtomicTransaction and WS-BusinessActivity, were developed to work in conjunction with WS-Coordination by providing business protocols to its generic context management features.
These protocols dictate the terms of the activity. WS-AtomicTransaction, for example, provides protocols for ACID-type transactions with two-phase capability. WS-BusinessActivity provides protocols for long-running transactions with compensation processes (as opposed to a rollback). Adoption of these specifications has been slow and gradual. They are expected to become increasingly important in the next 1-2 years. Microsoft's Indigo, for example, has already been promoted as supporting WS-AtomicTransaction.
Dig Deeper on Topics Archive
Related Q&A from Thomas Erl
In this expert answer, 'Cloud Computing' author and consultant Thomas Erl discusses current and emerging cloud standards. Continue Reading
Cloud expert Thomas Erl discusses how community clouds work and which types of organizations might most benefit from using them. Continue Reading
Thomas Erl discusses the definition of what service statelessness means in relation to Web services and service-oriented architecture. Continue Reading