320 likes | 441 Views
Dependable Composition of Web Services and Process Calculi. Manuel Mazzara Newcastle University. Agenda. Process Calculi and their Equivalences reconfigurability in the pi-calculus equivalences/bisimulation Dependable Composition of WS WS and standards BPEL composition Recovery
E N D
Dependable Composition of Web Services and Process Calculi Manuel Mazzara Newcastle University
Agenda • Process Calculi and their Equivalences • reconfigurability in the pi-calculus • equivalences/bisimulation • Dependable Composition of WS • WS and standards • BPEL composition • Recovery • Process calculi and BPEL • unification of Recovery Framework
What is a “process calculus”? • Language • syntax • semantics • pragmatics • Interaction • message passing • mobility • reconfigurability
Reconfigurability • Messages can include channel names (pi-calculus) • Sending an address expecting a reply to that address • output capability (MS Biztalk) • a received name will be used as the subject of outputs only • input capability (π-calculus) • a received name will be used as the subject of inputs
Equivalences • Functions • identical outputs for identical inputs • What about interactive programs? • bisimulation • programs exhibiting the same behaviour
Web Services vs. BEV Services SPECIFICATION IMPLEMENTATION 50p 50p 50p Push “tea” 50p Push “tea” 50p Push “coffee” Serve tea Push “coffee” Serve tea Serve coffee Serve coffee Milner’s CCS famous example
Message-sequences • These two BEV services accept the same message-sequences 50p.tea tea 50p.50p.coffe coffee • Are they the same? • message-sequencescan be inadequate • Essence of bisimulation • attention topossibilities still available at each state
Look at this state SPECIFICATION IMPLEMENTATION 50p 50p 50p Push “tea” 50p Push “tea” 50p Push “coffee” Push “coffee” Serve tea Serve tea Serve coffee Serve coffee
What is wrong? • This state in the specification has two possibilities: • 50p • “tea” • There is no matching state in the implementation • The implementation fails bisimulation
A new implementation SPECIFICATION NEW IMPLEMENTATION 50p 50p Push “tea” Push “tea” 50p 50p Push “coffee” Serve tea Push “coffee” Serve tea Serve coffee private dialog with Illy, Lavazza, Segafredo, Breda Serve coffee
Now it is fine! • Engagement in a private dialog with providers • at the end it still emits the coffee • Internal states • same external possibilities of the specification
BPEL for WS Composition XML (workflow) “programming language” Standard (11 April 2007)
BPEL Activities • A process consists of a set of (nested) activities • Basic activity • receive and send messages • assign values to variables • composition is stateful • signal faults • Structured activities • sequential, parallel • conditional • looping
Dependability in WS (standards) • SOAP is employed as an XML messaging protocol • SOAP is not compulsory in SOA anyway • message level • WS-Reliability (OASIS) • dependability added to the unreliable Internet channel of communication • WS-Security (OASIS) • specifies mechanisms to provide integrity and confidentiality of SOAP messages
Dependable Composition At the level of single services by domain-specific techniques Oracle BPEL process manager/Biztalk… provide no support stochastic Petri nets? Fault Prevention Fault Forecasting Fault Tolerance recovery Fault Removal Contracts conformance Deadlock Safety… not standardised
Recovery in WS • ACIDity is not possible when transactions last long periods and cross administrative domains • atomicity has to be relaxed • isolation has to be relaxed • no “perfect” roll-back • explicit compensation
BPEL Recovery Framework (1) WS-BPEL: scope Basic Units of Work WS-BPEL: fault handler Failures Management WS-BPEL: compensation Partial Roll-back
BPEL Recovery Framework (2) • Fault Handler (FH) • forwards error recovery • reacts to events occurring during the normal execution • catch blocks for explicitly thrown faults • generally returned by an invoke activity • possibly thrown from inside the process itself • scopes are abnormally terminated when FH is invoked • Compensation Handler (CH) • backwards error recovery • installed when the body successfully terminates • application-specific rollback • get back to a state where execution can continue • available for another activity requiring an undo
Bisimulation ? BPEL process ≈ ? ? BPEL process
Reduction Semantics Two ways to interact: Asynchronous message passing Eventraising
BPEL Encoding • Understanding of the OS ACTIVE BPEL semantics • It “should” implement the standard BPEL • Definition of the BPEL encoding Description of how the BPEL activites can be represented in the calculus
BPEL Encoding (only basic activities) Use of the continuation passing style technique
Unified Recovery Framework Work Unit Basic Units of Work Event Handler Failures Management Event Handler Partial Roll-back
Use of Bisimulation π process BPEL process ≈ π process BPEL process
Some feedback about this work • Semantics only for a subset of the BPEL activities • Encoding hardly readable • Timed theory not fully developed (timed transactions) • Explosion of states when encoding examples due to signaling of the end of each activity Efficient Analysis of BPEL 2.0 Processes Using pi-Calculus Weidlich, M.; Decker, G.; Weske, M.
Contacts Manuel.Mazzara@newcastle.ac.uk +44-(0)-191-222-5154 www.cs.ncl.ac.uk/people/manuel.mazzara www.linkedin.com/in/manuelmazzara