THROWS: an architecture for highly available distributed execution of Web services compositions

Web services emergence has triggered extensive research efforts. Currently, there is a trend towards deploying business processes as an orchestration of Web services compositions. Given that Web services are inherently loosely-coupled and are primarily built independently, they are most likely to have characteristics (e.g., transaction support, failure recovery, access policies) that might not be compliant with each other. It follows that guaranteeing the reliability and availability of the obtained Web services compositions is a challenging issue. Aligned with this tendency, we focus on the availability and reliability of Web services compositions. Specifically, in this paper, we propose THROWS, an architecture for highly available distributed execution of Web services compositions. In THROWS architecture, the execution control is hierarchically delegated among dynamically discovered engines. The progress of the compositions execution by several distributed engines is continuously captured. Moreover, the Web services compositions executed through the architecture we propose are previously specified as an hierarchy of arbitrary-nested transactions. These transactions execution is provided with retrial and compensation mechanisms which allow the highly available Web services compositions execution.