Extension of the Assurance Point (AP) Concept to Concurrently Executing Web Services within a Single Business Process
With the emergence of the Internet as a powerful communication tool, many businesses have begun turning to distributed computing for performing processes which can be broken into smaller pieces. This has led to the use of online web services that perform specific tasks and subsequently the creation of the service-oriented computing paradigm. With processes separated by organization and location, ensuring data consistency in a service-oriented environment is a challenge. The concept of Assurance Points (APs) provides a new approach to addressing data consistency in processes composed of service invocations.APs allow for checking of user-defined correctness conditions at different points during the execution of a business process, along with options for recovery actions to take if those conditions are not met. APs also serve as intermediate rollback points from which forward recovery can take place without having to reset an entire process when an error occurs. The initial definition of the AP concept focused on defining the semantics of recovery conditions known as rollback, retry, and cascaded contingency, assuming a sequential execution of services. This research has extended the AP concept to define the semantics of recovery conditions for concurrently executing threads, known as flow groups, within a process. In particular, this research has defined the placement of APs for use with flow groups and the flow group recovery semantics for rollback, retry, and cascaded contingency in the presence of parallelism. As a simplifying assumption, the semantics assume that there are no data dependencies among threads. The recovery semantics have also been designed to minimize rollback and recovery activities for concurrent threads within a flow group. This research has also included a detailed assessment of the current AP prototype, with new directions for a revised software architecture that can support the flow group recovery semantics as well as other future AP extensions.