論文 DBSJ Letters Vol.3, No.1 ―――――――――――――――――――――――――――――――――――― 日本データベース学会 Letters Vol.3, No.1 1 A Simulation System of THROWS Architecture with WS-SAGAS Transaction Model Neila BEN LAKHAL ♠ Takashi KOBAYASHI ♦ Haruo YOKOTA ♥ With web services composition paradigm advent, the current research efforts are toward availability and reliability enhancement in distributed and loosely coupled systems. We proposed in a previous work WS-SAGAS transaction model and THROWS architecture for web services compositions reliable specification and execution. To check out our proposal viability and confidence degree, in this paper we propose a configuration of a system that simulates THROWS architecture for executing web services compositions specified as WS-SAGAS transactions. 1. Introduction The advent of the web services composition paradigm gained a rapid uptake as it meets exactly the requirements of full interoperability. In fact, being based on ever-present protocols and on a set of widely recognized standards (e.g., HTTP, SOAP, UDDI, and WSDL) makes them developer-friendly and not involving a whole learning curve as it is for CORBA, COM/DCOM and so on. However these special features allowed the composition of web services concept to reach a high level of acceptance, in view of the interoperability notable enhancement, there is an actual appeal to address more properly the reliability and availability issues. Specifically, considering that the web services are in essence hosted by different providers, they might have not compliant characteristics (e.g., transactional supports, management model). As a result, the update of any of these services might induce critical unforeseen impacts on the overall composition consistency. Furthermore, there is a need to probe a more elaborated collaboration mode among the different involved web services when executing a composition to not suffer the reliability problems of a centralized collaboration. Motivated by these concerns, we have proposed in a previous work WS-SAGAS a new transaction model[1][2] for web services compositions specification and THROWS (Transaction Hierarchy for Route Organization of Web Services), a distributed architecture for highly available execution of web services compositions[3]. In order to check out our proposal viability and confidence degree, in this paper we propose a configuration of a system that, first specifies web services compositions as WS-SAGAS transactions, and second ♠ Student Member Graduate School of Information Science and Engineering, Tokyo Institute of Technology neila@de.cs.titech.ac.jp ♦ Regular Member Global Scientific Information and Computing Center tkobaya@cs.titech.ac.jp ♥ Regular Member Tokyo Institute of Technology, Global Scientific Information and Computing Center yokota@cs.titech.ac.jp simulate the execution of these web services compositions within THROWS architecture. The implementation is heavily based on java programming language and makes extensive use of a set of web services enabling technologies namely, WSDL, UDDI and SOAP. In the reminder of this paper, we give an overview of WS-SAGAS and THROWS. After, we describe the proposed system configuration: the components and their interactions. We continue with sketching a case study and report on its execution. We end with concluding remarks and future work. 2. WS-SAGAS and THROWS Overview WS-SAGAS transaction model specifies the web services compositions as a hierarchy of arbitrary-nested transactions. These transactions potential execution is provided with retrial and compensation mechanisms. WS-SAGAS inherits the arbitrary nesting level, the relaxed ACID properties, the compensation and the vitality degree features proposed in several advanced transaction models[4][5]. To overcome web services Statelessness, we proposed to enrich WS-SAGAS with the state capturing. In WS-SAGAS, we defined a composition as an orchestration of elements (E i V ). An element has a state (S i ) and a vitality degree (noted V for vital and V ___ for not vital). According to the considered nesting level, the same element could be either assimilated to an atomic element or to a composition of elements. THROWS applies a peer-to-peer execution model where the composition execution control is distributed among dynamically discovered engines. An engine is attached to an involved web service and is allocated to an element. Once allocated, the engine becomes in charge of the service invocation, the execution context communication, the execution context update, the execution forward and eventually the execution control delegation or completion. On each engine, the Current Execution Progress (CEP) and the Candidate Engines List (CEL) are stored. 1. CEP keeps track of the web services compositions execution progress. When an element from a composition is executed by an engine, every change in that element's state is reflected on the CEP. 2. CEL contains all the candidate engines potentially enabled to execute an element. Every engine, after finishing successfully the execution of the element it was allocated to, it is responsible of generating the CEL of its direct successor(s). 3. Implementation We aim first at showing how the ideas proposed in WS-SAGAS and THROWS can be implemented using existing technologies namely WSDL, UDDI, SOAP and so on. Second, we endeavour to show to what extent these ideas can contribute considerably in reliability enhancement. For a better understanding of the implemented system, a case study is chosen. 3.1 Scenario For homogeneity's sake, we kept using the same travel reservation scenario that we have described in our former work in [2]. We have chosen a process involving four activities: a trip information registration