“Dynamic fault handling mechanisms for service-oriented applications” Fabrizio Montesi, Claudio Guidi, Ivan Lanese and Gianluigi Zavattaro Department of.

Slides:



Advertisements
Similar presentations
1 Ivan Lanese Computer Science Department University of Bologna Italy Managing faults and compensations in SOCK Joint work with Claudio Guidi, Fabrizio.
Advertisements

Methods Java 5.1 A quick overview of methods
A formalisation of Adaptable Pervasive Flows A. Bucchiarone 1, A. Lluch Lafuente 2, A. Marconi 1 and M. Pistore 1 1 FBK-IRST of Trento (Italy) 2 Department.
1 Reversibility for Recoverability Ivan Lanese Computer Science Department FOCUS research group University of Bologna/INRIA Bologna, Italy.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Fault in the Future Joint work with Gianluigi Zavattaro and Einar Broch Johnsen.
A university for the world real R © 2009, Chapter 15 The Business Process Execution Language Chun Ouyang Marlon Dumas Petia Wohed.
Dependable Composition of Web Services and Process Calculi Manuel Mazzara Newcastle University.
1 Ivan Lanese Computer Science Department University of Bologna Italy On the Interplay between Fault Handling and Request-response Service Invocations.
1 The SOCK SAGA Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
1 Ivan Lanese Computer Science Department University of Bologna Roberto Bruni Computer Science Department University of Pisa A mobile calculus with parametric.
1 Ivan Lanese Computer Science Department University of Bologna Italy Error Handling in Service Oriented Computing Joint work with Claudio Guidi, Fabrizio.
Business Process Orchestration
1 SOCK and JOLIE from the formal basis to a service oriented programming language Ivan Lanese Computer Science Department University of Bologna Italy Joint.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory for SSCC Joint work with Luis Cruz-Filipe, Francisco Martins,
1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
BPEL (Business Process Execution Language)
SOCK and JOLIE from the formal basis to a service oriented programming language Part II Claudio Guidi and Fabrizio Montesi.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
1 Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Error Handling: From Theory to Practice Joint work with Fabrizio Montesi italianaSoftware.
1 Static vs dynamic SAGAs Ivan Lanese Computer Science Department University of Bologna/INRIA Italy.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Fault in the Future Joint work with Gianluigi Zavattaro and Einar Broch Johnsen.
1 Programming SAGAs in SOCK Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro The SOCK saga.
1 Ivan Lanese Computer Science Department University of Bologna Italy On the expressive power of primitives for compensation handling Joint work with Catia.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory at Work: Program Transformations in a Service-centred Calculus.
Session II Part I – BPMN, BPEL and WS*
1 Ivan Lanese Computer Science Department University of Bologna Italy Towards a Unifying Theory for Web Services Composition Manuel Mazzara Faculty of.
1 Joint work with Antonio Bucchiarone (Fondazione Bruno Kessler - IRST, Trento) and Fabrizio Montesi (University of Bologna/INRIA, Bologna) A Framework.
EMBEDDED SOFTWARE Team victorious Team Victorious.
1 Exception and Event Handling (Based on:Concepts of Programming Languages, 8 th edition, by Robert W. Sebesta, 2007)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 2.
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
Demonstrating WSMX: Least Cost Supply Management.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
1 Joint work with Michael Lienhardt (PPS), Claudio Antares Mezzina (Trento), Jean-Bernard Stefani (INRIA) and Alan Schmitt (INRIA) Reversibility in Concurrency.
CMSC 202 Exceptions. Aug 7, Error Handling In the ideal world, all errors would occur when your code is compiled. That won’t happen. Errors which.
BPEL4WS (Business Process Execution Language for Web Services) Nirmal Mukhi Component Systems Department IBM Research.
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
6th Expert Meeting Business Process Management (BPM) Business Activity Monitoring (BAM) Complex Event Processing (CEP) Service Oriented Architecture (SOA)
Towards Global and Local Types for Adaptation Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint work with Mario Bravetti,
Workflow Early Start Pattern and Future's Update Strategies in ProActive Environment E. Zimeo, N. Ranaldo, G. Tretola University of Sannio - Italy.
Foundational Study and Practical Experimentation of Service Orchestration with SOCK/JOLIE Ivan Lanese, Fabrizio Montesi, Claudio Guidi, and Gianluigi Zavattaro.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Amending Choreographies Joint work with Fabrizio Montesi and Gianluigi Zavattaro.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 7: BPEL Some notes selected from.
Mario Bravetti Department of Computer Science University of Bologna INRIA research team FOCUS Choreography Projection and.
A Service Oriented Architecture for the Finance Case Study
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Decidability Results for Dynamic Installation of Compensation Handlers Joint.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
1 Joint work with Claudio Antares Mezzina and Jean-Bernard Stefani Controlled Reversibility and Compensations Ivan Lanese Focus research group Computer.
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Policy-Based Dynamic Negotiation for Grid Services Authorization Ionut Constandache, Daniel Olmedilla, Wolfgang Nejdl Semantic Web Policy Workshop, ISWC’05.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
By Nitin Bahadur Gokul Nadathur Department of Computer Sciences University of Wisconsin-Madison Spring 2000.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 8: More BPEL Notes selected from.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Adaptive Choreographies Joint work with Mila Dalla Preda, Jacopo Mauro and Maurizio.
3/18/2002AIM AB Review of WSRP/WSIA Adaptation Description Language, Past and Present Directions. Ravi Konuru, IBM.
SE 548 Process Modelling WEB SERVICE ORCHESTRATION AND COMPOSITION ÖZLEM BİLGİÇ.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
1 SOA Seminar Service Oriented Architecture Lecture 8: More BPEL Notes selected from the paper “Formal Semantics and Analysis of control flow in WS-BPEL.
1 Seminar on SOA Seminar on Service Oriented Architecture BPEL Some notes selected from “Business Process Execution Language for Web Services” by Matjaz.
Real-Time Systems Laboratory Seolyoung, Jeong JADE (Java Agent DEvelopment framework )
Business Process Execution Language (BPEL) Pınar Tekin.
Deadlock Freedom by Construction
Service-centric Software Engineering
Presentation transcript:

“Dynamic fault handling mechanisms for service-oriented applications” Fabrizio Montesi, Claudio Guidi, Ivan Lanese and Gianluigi Zavattaro Department of Computer Science, University of Bologna

Outline Introduction Key concepts Static approach versus dynamic approach Fault, termination and compensation handlers Faults in the Request-Response pattern Demo Conclusions

Introduction Service oriented applications are usually distributed Orchestrators rely upon a workflow programming approach (e.g. WS-BPEL) Faults can be propagated within a system by involving several services Basic mechanisms: fault, termination and compensation handling. Static approach used so far, but some difficulties exists in some scenarios

Key Concepts (1) A scope is a process container able to manage faults A fault is a signal raised by a process towards the enclosing scope Termination is automatically triggered when a running scope must be smootlhy stopped because of a fault thrown by a parallel process Compensation is invoked to undo the effects of a scope whose execution has already successfully completed. Recovering mechanisms are implemented by exploiting handlers

Key concepts (2) Scope A Scope BScope C FH TH CH P A process P is in parallel with scope B and CFault handlersTermination handlersCompensation handlers f Process P raises fault f QR Scope C finishes with success C Compensation handler of scope C is promoted to the parent scope Scope B, which is still running, terminates its activities When all the child scopes have been termintated, the fault handler of scope A is executed Fault f Compensation handlers can be invoked within a fault handler

The static approach Usually error recovery is managed by statically associating handlers to scopes scope q ( P, FH, TH, CH ) Example: parallel composition between R and scope q where the compensation policy for q requires to compensate the activities executed so far in a reversed order. scope q ( i=0; while( i<100 ){ i=i+1; if (i%2=0) then P else Q }, FH, TH, CH ) R | i=50i=51 f

In this paper… We present a new approach for dealing with fault mechanisms: the dynamic approach The formal model has been presented in a previous paper. It is an extension of SOCK calculus We have implemented such a formal model within JOLIE. JOLIE is the actual implementation of SOCK

The formal model: SOCK SOCK is formal calculus for modelling Service Oriented Computing systems developed at the University of Bologna Three layers: service behaviour layer service engine layer services system layer It supports the RequestResponse communication pattern In a previous work, we have modelled fault handling mechanisms by exploiting a dynamic approach. "On the Interplay Between Fault Handling and Request-Response“ Claudio Guidi, Ivan Lanese, Fabrizio Montesi and Gianluigi Zavattaro ACSD pages , IEEE Computer Society, 2008.

Jolie is the implementation of SOCK It is an open-source project It is developed in Java It is a complete programming language It supplies a new programming paradigm which is the service oriented one In Jolie everything is a service It supports programming primitives for managing XML data Service embedding and redirection

The dynamic approach The basic idea of the dynamic approach is that handlers can be updated while computation progresses scope q ( P, H ) where H is a function which associates fault names to fault handlers and scope names to termination and compensation handlers Dynamic handling installation is addressed by two specific primitives: inst(H’) :updates the current handler function with H’ cH : refers to the previous installed handlers

Updating handlers The install primitive updates the current handler for the specified fault or scope name main { scope( myScope ) { install( f => Handler for f")); line 1"); install( f => Handler updated for f")); line 2"); install( f => cH; handler")); line 3"); throw( f ) } f => Handler for f")f =>f => Handler updated for f")f => Handler updated for f"); handler")

Execution priority for install primitive The install primitive is executed with priority w.r.t. fault processing main { install( myFault => HANDLER FOR myFault ); scope( myScope ) { install( this => Handler for f")); line 1"); install( this => Handler updated for f")); line 2"); install( this => cH; handler")); line 3") } | scope( faultScope ) { throw( myFault ) } f

Termination Termination is always propagated to sibling and child scopes, and it is always completed before the enclosing scope processes the fault handler main { install( f => FAULT HANDLER FOR f ); scope( myScope ) { install( this => HANDLER FOR myScope ); scope( childScope ) { install( this => HANDLER FOR childScope );... } } | throw( f ) } f

Compensation A compensation handler is a termination handler promoted to the parent scope when the child scope finishes successfully. A compensation handler can be activated by means of a specific primitive which can only be used within a handler. main { install( f => FAULT HANDLER FOR f; comp( myScope ) ); scope( myScope ) { install( this => HANDLER FOR myScope; comp( chScope ); scope( chScope ) { install( this => HANDLER FOR childScope );... } } ; throw( f ) } chScope myScope

From static to dynamic Static approach can be trivially simulated with the dynamic one: scope q ( P, FH, TH, CH ) scope q (inst(f=>FH);inst(this=>TH);P;inst(this=>CH),H) We can rewrite the previous example as it follows: scope q ( i=0; while( i P’;cH)} else {Q;inst(this=>Q’;cH)} } ) R | scope q ( i=0; while( i<100 ){ i=i+1; if (i%2=0) then P else Q }, FH, TH, CH )

Request-Response communication pattern Jolie supports the RequestResponse communication pattern which is inspired by the Request-Response and Solicit- Response operations of WSDL 1.1 In a RequestResponse operation a message is received and, after a body process is executed a response is sent to the invoker. Jolie supplies two specific primitives for receiving and sending messages on a RR op_name( request )( response ){ body_process } request )( response )

Faults in the Request-Response pattern Fault management within a RequestResponse pattern is an interesting issue: What happen when a fault is raised within the RR? What happen when a fault is raised by a process on the SR side? SRRR P Behaviour without faults

Faults in the Request-Response pattern (2) What happen when a fault is raised within the RR? In this case, a fault message is automatically sent to the sending primitive of the invoker SRRR P Behaviour without faults

Faults in the Request-Response pattern (3) What happen when a fault is raised by a process on the SR side? In this case, the sending primitive (SR) always waits for the incoming response before the fault is handled by the service SRRR P Behaviour without faults

Demo: the automotive example It describes the scenario where a car failure occurs. The car requests for an orchestrator to the assistance service in order to search for garage, car rental and truck services. In case the failure is about a tyre replacement, the orchestrator will look for a garage service which can send someone to the car for replacing the tyre. In case the failure is about the engine, the orchestrator will look for a garage and for a truck for carrying the car to the garage. Concurrently, it will look for a rental car service in order to find another car to use. The rent car will be sent to the garage coordinates if found, to the faulted car coordinates otherwise.

Demo: the automotive example (2) The engine failure: Assistance Car Register Garages 21 3 Rental 21 3 Truck 21 3 Banks AEVisa mySQL 9

Demo: the automotive example (3) The engine failure involves also the truck services and the car rental ones if no garage services are available the orchestrator will not search for a truck service and, if a rental car service is found the new car is redirected to the faulted one instead of the garage if no truck services are available the garage reservation will be revoked and the car rental one, if found, will be redirected to the faulted car coordinates.

Something to know about Jolie… In Jolie everything is a service Services can be embedded, both statically and dynamically, within another service Services can be passed from a service to another through message exchange and then embedded at run-time: service mobility Jolie exploits the programming power of Java. It is possible to create services developed in Java which can be easily embedded within a Jolie service: JavaServices

Conclusions In Jolie we have implemented the dynamic fault mechanisms formally developed in our previous work the dynamic approach is based upon the install primitive for updating handlers the install primitive must be executed with priority w.r.t. fault mamagement RequestResponse communication pattern has been enhanced with automatic fault communication As a future work we intend to formalize fault mechanisms in our choreography calculus and then implement it

Thank you! Questions?