A Reservation-based Extended Transaction Protocol for Coordination of Web Services
Web services can be used to automate business activities that span multiple enterprises over the Internet. Such business activities require a coordination protocol to reach consistent results among the participants in the business activity. In the current state of the art, either classical distributed transactions or extended transactions with compensating transactions are used. However, classical distributed transactions lock data in the databases of different enterprises for unacceptable durations or involve repeated retries, and compensating transactions can lead to inconsistencies in the databases of the different enterprises. In this article, we describe a novel reservation protocol that can be used to coordinate the tasks of a business activity. Instead of resorting to compensating transactions, the reservation protocol employs an explicit reservation phase and an explicit confirmation and cancellation phase. We show how our reservation protocol maps to the Web services coordination specification, and describe our implementation of the reservation protocol. We compare the performance of the reservation protocol with that of the two-phase commit protocol and optimistic two-phase commit protocol. We also compare the probability of inconsistency for the reservation protocol with that for compensating transactions.