Web Services Transaction Architectures
Most web services transaction protocols build on the existing concepts of a transaction coordinator, participants, and a transaction context (see Figure 3). The general concepts behind these protocols are analogous to those of traditional transaction systems.
Figure 3 Web services transactions.
As the figure indicates, the application interacts with the coordinator in some fashion (the specifics are unique to the transaction protocol utilized) to initialize a transaction and create an associated transaction context; the transaction context is propagated between the clients and the services, providing a flow of context information required to identify a transaction with which work should be associated (as well as the location of the coordinator). The propagation of the context may occur transparently to the client and services.
Components of the web services transaction system are responsible for propagating the context whenever a client contacts a service whose work it wants as part of the transaction. When a service receives an invocation accompanied by a transaction context, it has to register a participant (possibly itself) with the referenced transaction. Subsequently, the transaction coordinator ultimately controls the work performed by the participant. Thus, the roles of coordinator and participant are actually rather similar to those defined in traditional transaction-processing systems.