A timestamp-based two phase commit protocol for web services - Luiz Alexandre Hiane da Silva Maciel (2011)
Service Oriented Architecture (SOA) allows the development of software with requirements of interoperability and loose coupling. New services can be offered through the composition of existing services in order to address new business requirements. Business-to-business collaborative web applications demand a loosely coupled, coarse-grained interaction model. Thus, the traditional transaction architectures based on the ACID must be re-visited to support long-running web services. For such web services, it is not advisable to lock resources because they become blocked to other transactions. The two most adopted SOA architecture styles are the WS-* and REST (Representational State Transfer). WS-* is a set of specifications for the development of services based on SOAP and WSDL. The WS-* specifications support the implementation of non-functional requirements among them the transaction control. Two of the WS-* drawbacks are the implementation complexity and the strong dependency on SOAP and WSDL. REST, however, as an architectural style, does not provide "official" standards to address the non-functional requirements of services. We investigate the means by which a web service application can support transactions implementation using timestamp. We propose a protocol based in timestamp and two phase commit protocol in order to support the transactional control implementation in the web service domain. A protocol extension to improve the satisfaction of business rules is also proposed. The extension takes into account the application domain business rules which guide the web services behavior. In order to show the feasibility of the protocols, examples of an application are described. We also describe how the proposed protocols must be used to deal with host and connection failures.