Article Preview
TopIntroduction
The Web services approach (Erickson & Siau, 2008) has gained broad acceptance as a key technology to automate Business-to-Business (aka B2B) interactions. The Web services technology is an implementation of Service Oriented Architecture1. A Web service can be defined as an independent and auto descriptive software component that can be dynamically discovered and invoked through the Internet (or Intranet).
Companies can encapsulate their business processes and publish them as services; and afterwards discover, share and aggregate them. One interesting feature is the possibility to create added value services by composing other services. It is worth noting that the term composite service is usually used to denote composition of operations offered by different services (Alonso, Casati, Kuno, & Machiraju, 2004; Jordan et al., 2007). Throughout this paper, and without loss of generality, we consider services offering only one operation.
Different from business process components, services are generally provided by different organisations independently of any execution context. Since each organisation has its own rules, Web services are treated like strictly autonomous entities. Due to their inherent heterogeneity and autonomy it is difficult to predict the behaviour of composite services especially in case of failures.
The problem we tackle in this paper is how to ensure composite services reliability. By reliable composition, we mean every composition where all its instances have correct execution. An execution is said to be correct if it performs and finishes as intended (from a business point of view). In other terms, an instance execution is correct if it reaches its objectives and completes successfully or it fails properly in a consistent state according to designers requirements.
Current Web service technologies are unable to solve this problem efficiently. These technologies rely mainly on two strong approaches: Workflow Systems (WfS for short) (Georgakopoulos, Hornick, & Sheth, 1995; Jablonski & Bussler, 1996; Leymann & Roller, 1999; van der Aalst & van Hee, 2002; Fischer, 2007) and Advanced Transactional Models (ATM for short) (Georgakopoulos, Hornick, Krychniak, & Manola, 1994; Elmagarmid, Leu, Litwin, & Rusinkiewicz, 1990; Elmagarmid, 1992; Garcia-Molina & Salem, 1987; Garcia-Molina et al., 1991; Moss, 1981; Weikum & Schek, 1992). Taken separately, these technologies are unable to resolve composite services reliability in an effective way.
Indeed, while Workflow management is the key technology for automating business processes enabling their modelling, enactment and analysis, they don’t consider reliability problems in case of task failures. On the other hand, ATM ensures reliability of advanced transactions by extending the flat structure of the ACID transactional model and relaxing atomicity and isolation properties. Nevertheless, ATM remains limited for supporting workflow-like applications. First, their control structure still remain primitive compared to those of business processes and consequently to those of composite services. Secondly, they impose a set of constraints regarding the structure and transactional semantics that designers must comply to when modelling their applications.
In this paper, we propose a model for composite Web services that combines the expressivity power of workflow models and the reliability of transactional models. Based on this model, we present a set of techniques enabling to ensure reliability according to designers’ requirements (in terms of control flow and failure atomicity). We use the Accepted Termination States (ATS for short) (Elmagarmid et al., 1990; Rusinkiewicz & Sheth, 1995) property as an execution correctness criterion to relax atomicity.