|
11.1. Role of Transactions in Web Services/SOATransactions [Bern 1997], [Gray 1993] are a fundamental concept in building reliable distributed applications. A transaction is a mechanism to ensure that all the participants in an application achieve a mutually agreed upon outcome. Traditionally, transactions have provided the following properties:
Transactions with these properties (often referred to as ACID) are known as atomic transactions. In a Web service environment, transactional applications are constructed from the composition of one or more Web services, each of which might manipulate resources, adhere to the properties described earlier, and be party to an agreed overall coordinated outcome. However, in a Web services environment, the services that are the component parts of an application are typically loosely coupled and distributed across various independent systems spanning a network. Therefore, you might have to apply some of the properties of atomic transactions less strictly. You need more flexible forms of outcome coordination processing that have more relaxed forms of transaction to accommodate collaborations, workflow, real-time processing, and so on. Finally, there is a requirement for outcome processing that, although not necessarily requiring transactional behavior, does require the ability to identify operations that are part of the same Web service application. WS-Coordination defines such a coordination service, and WS-Atomic Transaction and WS-Business Activity provide a starter set of the most common coordination protocols. Figure 11-1 schematically illustrates where transactions (and the specifications described earlier) fit in the Web services model. Transactions provide a middleware service that augments the core Web services technologies of SOAP, Web Services Description Language (WSDL), and Universal Description, Discovery, and Integration (UDDI), enabling construction of a reliable computing environment. Figure 11-1. Web services and transaction. |
|