Recently web service composition has become a very cost-effective way to develop business applications. However, owing to the unreliable nature of web services, providing the transactional support in execution of a service composition is an important design requirement. To guarantee the transactional execution of service compositions, a fault-handling routine has to be started once a service failure occurs in order to undo the effect of previously completed services by calling their corresponding compensation operations. Currently this fault-handling mechanism is implemented by means of low-level programming constructs such as exception-handling mechanism in languages such as WS-BPEL. However, since the logic of handling service failures might become very complex in some applications, this concern should be separated from the normal flow of the composition workflow based on the separation of concerns principle. To achieve this, in this study we have proposed an orchestration pattern for building a transactional service composition in which the failure-recovery logic is imposed on the composition workflow by a Labelled Transition System (LTS) as a separate module. It is assumed that each service within the composition is associated with two known transactional properties: (i) a rollback cost that indicates the cost of undoing (compensating) the service and (ii) a failure probability. The transactional logic of the service composition is also specified using the rollback dependencies represented in a rollback graph. An LTS then is generated to schedule the execution of services within the composition based on the composition transactional logic and properties such that upon a service failure, a recovery path with the lowest cost is followed.
['Omid Bushehrian', 'Salman Zare']
Cost-aware execution of transactional web services using labelled transition systems