230 likes | 364 Views
RobustBPEL2: Transparent Autonomization in Business Processes through Dynamic Proxies. Onyeka Ezenwoye S. Masoud Sadjadi Autonomic Computing Research Lab Florida International University. ISADS 2007. Introduction. The Trend
E N D
RobustBPEL2: Transparent Autonomization in Business Processes through Dynamic Proxies Onyeka Ezenwoye S. Masoud Sadjadi Autonomic Computing Research Lab Florida International University ISADS 2007
Introduction • The Trend • Organizations need to integrate applications and data with other divisions, customers, partners, etc. • This is commonly known as Enterprise Application Integration (EAI) or Business Process Integration (BPI)
Enterprise A Enterprise C … … … … App 1 App 1 App 1 App 1 App N App N App N App N CORBA etc. Java RMI .NET Internet Firewall Firewall Firewall Firewall Enterprise B Enterprise D Introduction • The Problem • The existing marketplace is littered with proprietary middleware/protocols (e.g. Java RMI, .NET, CORBA, etc) for service interaction. • These protocols do not openly support inter-organization service interactions over the internet.
Web services • What is a Web Service • Web services are applications that communicate through middleware (WSDL) over the internet. • Core Technologies • XML (eXtensible Markup Language) • SOAP (Simple Object Access Protocol) • WSDL (Web Service Description Language)
Customer Customer Sales Service (a workflow) Accounting Service Production Service Inventory Service Delivery Service Business Processes • Service Aggregation
Business Process Execution Language (BPEL) • BPEL is workflow language for recursive composing aggregate Web service • XML based • A BPEL process is defined in terms of its interactions with partners. • A partner may provide service to the process, require service from the process or both.
*A Loan Approval Process Client Web Service Web Service Client *www.activebpel.org
Service Service Service Service Orchestration application BPEL • Workflow Design • Structure • Non-DAG • Support for iterations, loops • Data Movement • Centralized
BPEL • Workflow Design • Composition System • User-directed • Language-based (xml-based) • Graph-based • Fault tolerance • Non • Has fault and event handlers
BPEL Challenges • Not modular enough to support • Separation of concerns • Maintainability • Evolution • BPEL is not dynamic • No runtime workflow alteration for optimization or fault-tolerance
BPEL Challenges • Minimal fault handling. • Supports compensation handling. • Dynamism through middleware • application, messaging.
Our Approach • Transparent Adaptation • Allows introduction of new code (component) at run-time • does not tangle cross-cutting concerns with original application (separates functional code from non-functional code) • preserves desirable original behavior • is transparent to the original code (the original code is unaware of the adaptation)
RobustBPEL • Why RobustBPEL • BPEL is susceptible to failures of partner services • BPEL provides no fault tolerance • BPEL is not dynamic • BPEL not modular enough for aspect programming • Provide robustness in the event of failure of invoked services. • Allow for runtime introduction of components
RobustBPEL • RobustBPEL-1 (Static Proxies) [ICEIS-06] • RobustBPEL-2 (Dynamic Proxies) [ISADS-07]
RobustBPEL • Encapsulate BPEL activities with generic hooks. • Hooks will point to “proxy” Web Service. • Fault tolerance and adaptation will be provided through Proxy service • Fault tolerance • Task level • Retry • Alternate resource
*A Loan Approval Process Client Web Service Web Service Client *www.activebpel.org
A better Loan Approval Process Web Service Monitor Web Service Web Service Monitor Web Service
RobustBPEL-2 Generator Parser Adapt-Ready BPEL Compiler Generated Adapt-Ready BPEL Original BPEL Local Disk XML Configuration File Template for Proxy Class Binding stub for WSi Binding stub for WSi Dynamic Proxy Compiler Generated Dynamic Proxy Legend: File or Document Processor Data Flow Generator
The Proxy • Proxy isspecificbutdynamic • Interface for proxy is specific • One proxy from every adapted process • Discovers and bind to alternate services
ptn pt1 WS1 WSn Architectural diagrams showing the sequence of interactions among the components in a typical aggregate Web service. Client Program 2 Aggregate Web Service 1 n partner Web services . . . . . . Legend: Service port type (pt) Web service (WS) Sequence of events Service dependency 1
ptj ptj pt1 ptn pti pti WSi1 WSip WSj1 WS1 WSjq WSn Sequence of interactions in RobustBPEL-1 Client Program 2 Adapt-Ready Aggregate Web Service 1 n partner Web services . . . . . . Absence of Faults 3 Presence of Faults pti ptj 4 Static Proxy p equivalent Web services for WSi . . . . . . generated to handle the faults by two selected partner Web services (WSi and WSj) q equivalent Web services for WSj . . . . . . Legend: Service port type (pt) Web service (WS) Sequence of events 1 Service dependency (static binding) Service dependency (dynamic binding)
pt1 ptn WS1 WSn Sequence of interactions in RobustBPEL-2 Client Program 2 Adapt-Ready Aggregate Web Service 1 n partner Web services . . . . . . Absence of Faults 3 Presence of Faults pti ptj 4 Dynamic Proxy UDDI registry services UDDI generated to handle the faults by two selected partner Web services (WSi and WSj) ptj 5 Dynamically identified equivalent Web services for WSi and WSj ~WSi ptj ~WSj Legend: Service port type (pt) Web service (WS) Sequence of events 1 Service dependency (static binding) Service dependency (dynamic binding)