The ACID transaction model has played a cornerstone role in service composition to guarantee that composite services (CSs) have transactional support and consistent outcomes even in presence of failures. However, the classical ACID properties are too restrictive for independent and multi-proprietors services running on distributed environments, such clouds. Transactional properties allow a relaxed atomicity and isolation, providing an "all-or-(almost)nothing" model.In previous works, we proposed a model to relax atomicity, called fuzzy atomicity, according user requirements (acceptable fuzzy atomicity). In this article, we extend that model and propose an approach to measure the fuzzy atomicity. Our model allows to self-adapt the CS execution, taking into account the state of the CS execution and user preferences (ie, the acceptable fuzzy atomicity expressed in the user requirements). This fuzzy atomicity measure is applied in a self-adaptive CS execution model based on the transactional properties (pivot, compensatable, and retriable) of its component services and on a checkpointing mechanism. It is suitable to cloud computing, which offers cloud services on demand and in which CS execution should preserve the self-organizing and self-adaptivity properties of such environment, specially in the presence of failures. We show how it is possible to relax the retriable property in CSs execution, based on our fuzzy atomicity model. Additionally, in this work, we present a comparative analysis of the most recent works in the context of ACID properties relaxation for CS.
KEYWORDScloud computing services, fault tolerance, relaxed atomicity, self-adaptive execution, service composition
INTRODUCTIONCloud is the most flexible and affordable on-demand platform for deploying custom applications in the form of services that are commonly called cloud services. The constantly increasing number of such services for accessing data on the cloud arises new challenges for enabling their integration and collaboration while guarantying self-organization and self-adaptivity properties, specially to manage failures. 1 Cloud services composition is a way to reach this collaboration and integration, since it consists in combining and coordinating several services allowing more complex service functionality that can respond more complex user queries. 2,3 Meanwhile, transactional support is a way to guarantee reliable composite service (CS), by considering the classical ACID (atomicity, consistency, isolation, and durability) transactional properties or a variation of them. [4][5][6][7] Traditional ACID transaction model provides an "all-or-nothing" execution approach to support service failures generally based on transactional properties, compensation, rollback, and replication. However, for some applications, the classical "all-or-nothing" model is too restrictive for independent and multi-proprietors services running on distributed environments, such as cloud platforms. In this sense, advanced transactional models have been adapted to rel...