Fault Recovery in WS-Diamond using the SH-BPEL Engine
Outline WS-Diamond and Orchestration Self-Healing BPEL (SH-BPEL) Recovery Scenarios Recovery Using SH-BPEL Future Work
Example of Interactions among WS-BPEL Processes Send OrderReceive Order Split Order Check Availability On Warehouse Check Availability On Supplier Calculate Cost Supply Check Availability Calculation Split CUSTOMERSHOP WAREHOUSE
Orchestration, Diagnosis, and Recovery Recovery Selector Diagnoser WS-BPEL Management Interface Web Service 1 Web Service 2 Web Service N Symptoms Event Logs Fault Notification Event Logs Other Alarms Repair Actions SH-BPEL
Process-Level Recovery Actions Using SH-BPEL Standard recovery mechanisms Provided by the language Specified by the designer Fault handler, compensation handler, event handler Pre-Processing recovery mechanisms Based on existing WS-BPEL constructs Inserted by designers using tags Process variable modification, single task or scope retrying, alternative paths specification, return back to defined safe points Extended recovery mechanisms Realized by external (with respect to the WS-BPEL engine) recovery modules Recovery modules interact with both the WS-BPEL engine and invoked Web services Substitution, Redo, Retry, ecc…
SH-BPEL Engine The purpose is the creation of a Self-Healing extension of BPEL engines (SH-BPEL) SH-BPEL allows standard, pre-processing, and extended recovery actions It is realized without modifying existing BPEL engine code It is composed of a set of interfaces and modules that enable The communication of SH-BPEL with the Diagnoser and the Repair Action Selector The communication between extended recovery modules and the traditional BPEL engine
SH-BPEL: The Architecture SH-BPEL API B-API M-APIMessage Monitor Standard BPEL Engine PM-API Process Manager E-API
SH-BPEL: The Process Manager Management Engine Management Interface BPEL Interface Mediator Web Service Invoker Substitution Manager Web Service Retriever Mediation Service Process Manager
Case 1: Customer Fault Send OrderReceive Order Split Order Check Availability On Warehouse Check Availability On Supplier Calculate Cost Supply Check Availability Calculation Split CUSTOMERSHOP WAREHOUSE 1. The CUSTOMER is declared faulty 2. The Recovery Selector stops the SHOP 3. The CUSTOMER is repaired 4. The Recovery Selector sets the order variable of SHOP inserting the correct value 5. The Recovery Selector resumes the SHOP process from the receive order activity
Case 2: Shop Fault Send OrderReceive Order Split Order Check Availability On Warehouse Check Availability On Supplier Calculate Cost Supply Check Availability Calculation Split CUSTOMERSHOP WAREHOUSE The SHOP is declared faulty The Recovery Selector stops the SHOP and the WAREHOUSE The split activity is repaired The Recovery Selector retries the split activity The Recovery Selector retries all the activities up to the calculate cost activity and then resumes the process
Case 3: Warehouse Fault Send OrderReceive Order Split Order Check Availability On Warehouse Check Availability On Supplier Calculate Cost Supply Check Availability Calculation Service Split Service CUSTOMERSHOP WAREHOUSE 1. The WAREHOUSE is declared faulty 2. The Recovery Selector stops the SHOP and the WAREHOUSE 3. The Recovery Selector substitutes the WAREHOUSE 4. The Recovery Selector redoes the check availability activity 5. The Recovery Selector redoes all the activities up to the calculate cost activity and then resumes the process
Demo Structure (Case 1 and Case 3) WS-BPEL Management Interface WAREHOUSE 1 SH-BPEL WSDL 1 ≠ WSDL 2 SHOP Client SH-BPEL Administrator WSDM Subscription Invocation Notification Repair WAREHOUSE 2 Stop Resume
Web Service Substitution: Mediator Configuration Mediation Service Warehouse 1 WSDL URBE Registry Warehouse 1 WSDL Warehouse 2 WSDL WSDL Matcher Similarity Engine Matching Engine Warehouse 2 WSDL Warehouse 1 WSDL Mapping Document
Web Service Substitution: Mediator execution Mediation Service External Data Retriever Translation Engine Input message (Warehouse 1 WSDL) Input message (Warehouse 2 WSDL) Output message (Warehouse 1 WSDL) Output message (Warehouse 2 WSDL)
Future Work Introduce Semantics to Enhance recovery actions Enhance service mediation Define patterns and strategies to recover from common faulty situations