Interest in the Web services (WS) composition (WSC) paradigm is increasing tremendously. A real shift in distributed computing
history is expected to occur when the dream of implementing Service-Oriented Architecture (SOA) is realized. However, there
is a long way to go to achieve such an ambitious goal. In this paper, we support the idea that, when challenging the WSC issue,
the earlier that the inevitability of failures is recognized and proper failure-handling mechanisms are defined, from the
very early stage of the composite WS (CWS) specification, the greater are the chances of achieving a significant gain in dependability.
To formalize this vision, we present the
FENECIA (Failure Endurable Nested-transaction based Execution of Composite Web services with Incorporated state Analysis) framework. Our framework approaches the WSC issue from different points of view to guarantee a high level of dependability.
In particular, it aims at being simultaneously a failure-handling-devoted CWS specification, execution, and quality of service
(QoS) assessment approach. In the first section of our framework, we focus on answering the need for a specification model
tailored for the WS architecture. To this end, we introduce
WS-SAGAS, a new transaction model. WS-SAGAS introduces key concepts that are not part of the WS architecture pillars, namely,
arbitrary nesting,
state,
vitality degree, and
compensation, to specify failure-endurable CWS as a hierarchy of recursively nested transactions. In addition, to define the CWS execution
semantics, without suffering from the hindrance of an XML-based notation, we describe a textual notation that describes a
WSC in terms of
definition rules,
composability rules, and
ordering rules, and we introduce graphical and formal notations. These rules provide the solid foundation needed to formulate the execution
semantics of a CWS in terms of
execution correctness verification dependencies. To ensure dependable execution of the CWS, we present in the second section of FENECIA our
architecture THROWS, in which the execution control of the resulting CWS is distributed among engines, discovered dynamically, that communicate
in a peer-to-peer fashion. A dependable execution is guaranteed in THROWS by keeping track of the execution progress of a
CWS and by enforcing forward and backward recovery. We concentrate in the third section of our approach on showing how the
failure consideration is trivial in acquiring more accurate CWS QoS estimations. We propose a model that assesses several
QoS properties of CWS, which are specified as WS-SAGAS transactions and executed in THROWS. We validate our proposal and show
its feasibility and broad applicability by describing an implemented prototype and a case study.
Keywords Web services - Composition - Dependability - Failure - Distributed execution - Transaction model - QoS