Presentation is loading. Please wait.

Presentation is loading. Please wait.

From Theory to Practice in Transactional Composition of Web Services Daniele Strollo Roberto Bruni, Gianluigi Ferrari, Hernàn Melgratti, Ugo Montanari,

Similar presentations


Presentation on theme: "From Theory to Practice in Transactional Composition of Web Services Daniele Strollo Roberto Bruni, Gianluigi Ferrari, Hernàn Melgratti, Ugo Montanari,"— Presentation transcript:

1 From Theory to Practice in Transactional Composition of Web Services Daniele Strollo Roberto Bruni, Gianluigi Ferrari, Hernàn Melgratti, Ugo Montanari, Emilio Tuosto University of Pisa

2 From Theory to Practice in Transactional Composition of Web Services Schedule  Introduction to Sagas  Basic concepts of JTWS  Java Signal Core Layer (JSCL)  Java Transactional Layer (JTL)  Examples

3 From Theory to Practice in Transactional Composition of Web Services Long Running Transactions  Transactions in e-Business scenario  ACID properties are relaxed:  atomicity (long running)  isolation (concurrency).  LRTs with compensation as solution to failures:  undo  alternatives to restoring of state (e.g. refund money…) Plain Reservation Service Reservation Request Payment Service: bank account (atomicity) credit card (isolation) Request for canceling reservation Payment

4 From Theory to Practice in Transactional Composition of Web Services Long Running Transactions…  Long-Running Transactions (LRTs):  Independent components loosely coupled  Each component maintains the consistency of its local data  Illusion of Atomicity given by compensations  Ad-hoc activities responsible for undoing the effects of partial executions when the whole computation cannot be completed.  Current proposals lack from formal foundations  Hard to prove properties

5 From Theory to Practice in Transactional Composition of Web Services Our goal  To provide a formally specified language for defining transactional aggregations at high level of abstraction.  To map high level transactional primitives into concrete coordination patterns.

6 From Theory to Practice in Transactional Composition of Web Services Saga Calculus (SC): syntax  Atomic activities:   [ {0, THROW}  Ranged over by A, B, …  Processes:  P ::= A ¥ B | P;P | P||P  Sagas:  S ::= A | [P] | S;S | S||S Saga Calculus naturally abstracts away from low level computational details and communication patterns [BMM@POPL05]. The formal semantics is given by traces [BHF@25YCCS,BBFHMM @CONCUR05].

7 From Theory to Practice in Transactional Composition of Web Services Basic concepts of SC: compensable process  Compensable process: P = A¥B  P executes the main activity A and installs the compensation activity B  B is not installed if A is not completely executed  A is called forward flow and B the backward flow A ¥ B

8 From Theory to Practice in Transactional Composition of Web Services Basic concepts of SC: Saga  The process P contained in a Saga S S ::= [P] Encloses the execution of process P in an “atomic context”. The execution of successful backward flow is isolated from the outside. Only in case of unsuccessful compensation action, the event is forwarded to previous stages.

9 From Theory to Practice in Transactional Composition of Web Services Purchase orders Accept Order Update Credit Prepare Order

10 From Theory to Practice in Transactional Composition of Web Services Purchase orders without compensations Accept Order Update Credit Prepare Order S = [ AO ; UC | PO ] The possible traces are:  ` S = { } AOUCPO AOUCPO

11 From Theory to Practice in Transactional Composition of Web Services Purchase orders with compensations Accept Order Refuse Order Update Credit Refund Money Prepare Order Update Stock S = [ AO ¥ RO ; UC ¥ RM | PO ¥ US ] Successful execution:  ` S = { } Failure with successful compensation (not enough money):  ’ ` S = { } Failure and unsuccessful compensation (unable to resemble stock):  ’’ ` S = { }

12 From Theory to Practice in Transactional Composition of Web Services Schedule  Introduction to Sagas  Basic concepts of JTWS  Java Signal Core Layer (JSCL)  Java Transactional Layer (JTL)  Examples

13 From Theory to Practice in Transactional Composition of Web Services JTWS Architecture JTL (Transactional Layer) JSCL (Signal Core Layer) JTWS  JSCL defines:  Async/sync signal passing  Signal links  Logical ports  Handler/Emitter  Generic Component  management of flow sessions  JTL defines:  Types of signals useful to represent LRTs  Sequential and Parallel composition of services

14 From Theory to Practice in Transactional Composition of Web Services Schedule  Introduction to Sagas  Basic concepts of JTWS  Java Signal Core Layer (JSCL)  Java Transactional Layer (JTL)  Examples

15 From Theory to Practice in Transactional Composition of Web Services JSCL: application building blocks  Signal Links:  unicast  unidirectional  typed Emitter Handler SigType  Agents:  Signal Emitter  Signal Handler Resource Signal Input Ports Signal Output Ports Agent  Signals:  Abstraction of an event  Typed Session Internal Data  Logical Ports  AND / OR / NOT SIG_TRUE SIG_FALSE SIG_TRUE SIG_FALSE

16 From Theory to Practice in Transactional Composition of Web Services Example Resource AgentB Resource AgentC Resource AgentD Resource AgentA eventType n eventType 1

17 From Theory to Practice in Transactional Composition of Web Services JSCL in detail connectSignal registerSignal JTWS Component JTWS Component Connecting two components:  The Emitter makes a request to a handler to be connected  The Handler gives the permissions to the Emitter to create the input signal link

18 From Theory to Practice in Transactional Composition of Web Services JSCL in detail emitSignal handleSignal JTWS Component JTWS Component Queue Connecting two components:  The Emitter makes a request to a handler to be connected  The Handler gives the permissions to the Emitter to create the input signal link Forwarding a signal:  Emitter: emitSignal (signal, async)  Handler: the method handleSignal (signal, async) is invoked automatically. This method “propagates” the signal to all the registered handlers. The asynchronous signals are managed by the handler.

19 From Theory to Practice in Transactional Composition of Web Services Schedule  Introduction to Sagas  Basic concepts of JTWS  Java Signal Core Layer (JSCL)  Java Transactional Layer (JTL)  Examples

20 From Theory to Practice in Transactional Composition of Web Services Cmt Rb Exc Inv JTWS: Java Transactional Layer (JTL)  Prefixed set of signals with a precise semantics:  SNG_INVOKE,  SGN_COMMIT,  SGN_ROLLBACK  Structural composition of services:  Sequence and Parallel  Well defined semantics for transactional flows. JTL Component

21 From Theory to Practice in Transactional Composition of Web Services JTL: AtomicTask  AtomicTask defines the interface that each atomic activity of SC must fit.  We assume that any class which implements AtomicTask cannot throw any exception but AtomicActionException.

22 From Theory to Practice in Transactional Composition of Web Services JTL: Basic Compensable Process  A SC compensable process is defined in JTL as: Comp (A, B) ´ A ¥ B with A,B AtomicTasks.  The forward flow corresponds to the execution of A.  The backward flow corresponds to the the execution of B.  Exceptions are raised in presence of faults during execution of B. A A B B

23 From Theory to Practice in Transactional Composition of Web Services JTL: Basic Compensable Process... A A B B Inv Executes main activity A Successful execution of A Inv Unsuccessful execution of A Rb Request for abort. Executes B. Compensation failure Rb Compensation successful executed Exc

24 From Theory to Practice in Transactional Composition of Web Services JTL: sequence Seq (P, Q) ´ P;Q  JTLSequence.addInternalComponent (JTLComponent) permits to add new components in the sequence. InOut iRb iEx oRb oEx oCt iCt P Q seq.addInternalComponent (Q)

25 From Theory to Practice in Transactional Composition of Web Services JTL: sequence InOut iRb iEx oRb oEx oCt iCt PQ A A Inv

26 From Theory to Practice in Transactional Composition of Web Services JTL: sequence InOut iRb iEx oRb oEx oCt iCt PQ A A Inv B B Rb

27 From Theory to Practice in Transactional Composition of Web Services JTL: sequence InOut iRb iEx oRb oEx oCt iCt PQ Inv B B Rb

28 From Theory to Practice in Transactional Composition of Web Services JTL: sequence InOut iRb iEx oRb oEx oCt iCt PQ B B Rb

29 From Theory to Practice in Transactional Composition of Web Services JTL: sequence InOut iRb iEx oRb oEx oCt iCt PQ B B Rb

30 From Theory to Practice in Transactional Composition of Web Services JTL: sequence InOut iRb iEx oRb oEx oCt iCt PQ Rb

31 From Theory to Practice in Transactional Composition of Web Services JTL: parallel InOut iRb iEx oRb oEx oCt iCt Collector Dispatcher Inv P Q Status = (-,-) Par (P, Q) ´ P|Q

32 From Theory to Practice in Transactional Composition of Web Services JTL: parallel InOut iRb iEx oRb oEx oCt iCt Collector Dispatcher P Q A A A A Status = (---,---) Inv

33 From Theory to Practice in Transactional Composition of Web Services JTL: parallel InOut iRb iEx oRb oEx oCt iCt Collector Dispatcher P Q A A A A Status = (Inv,---) Inv

34 From Theory to Practice in Transactional Composition of Web Services JTL: parallel InOut iRb iEx oRb oEx oCt iCt Collector Dispatcher P Q A A A A Status = (Inv,Inv) Inv

35 From Theory to Practice in Transactional Composition of Web Services Saga in JTL  The behavior of a Saga S ::= [P] in JTL is the following:  If P sends an Inv signal:  S propagates internally the Cmt signal  S sends externally the Inv signal  If P sends an Rb signal:  S sends externally the Inv signal  If P sends an Exc signal:  It is ignored since the status is inconsistent

36 From Theory to Practice in Transactional Composition of Web Services JTL: saga InOut P SignalH Exc and Cmt ignored while Abt is transformed to Inv

37 From Theory to Practice in Transactional Composition of Web Services Schedule  Introduction to Sagas  Basic concepts of JTWS  Java Signal Core Layer (JSCL)  Java Transactional Layer (JTL)  Examples

38 From Theory to Practice in Transactional Composition of Web Services Purchase Order in JTL Accept Order Refuse Order Update Credit Refund Money Prepare Order Update Stock S = [ AO ¥ RO ; UC ¥ RM | PO ¥ US ] Seq ( Comp (AO, RO), Par ( Comp (UC, RM), Comp (PO, US)))

39 From Theory to Practice in Transactional Composition of Web Services Purchase Order in JTL: graphical representation Out iEx UC PO iRb iCt In oEx oRb oCt RM US AO RO Out iEx iRb iCt In oEx oRb oCt

40 From Theory to Practice in Transactional Composition of Web Services JTWS: advantages  JSCL  Basic framework for programming coordination.  Abstraction for communication details.  Logical ports permit a simple design of the flow diagrams.  The connections can be modified at run-time.  Distributed flow execution.  Primitives for authorizing access to signals.  JTL  Based on a robust theory  Simple to program  Extendible to other transactional logics

41 From Theory to Practice in Transactional Composition of Web Services Concluding remarks  From a formal specification of naïve sagas we have presented JTWS.  Contribution is a setting for designing business process transactions  Visual/graphical representation of parallel sagas  Process calculus description in bijective correspondence with sagas diagrams  Executable, distributed translation of symbolic processes  Future works  GUI to develop JTL and JSCL components  Debugger environment to test the behavior of the involved components  Support for advanced features like nesting, speculative choice (N. Zappone).

42 From Theory to Practice in Transactional Composition of Web Services oOOo ?

43 From Theory to Practice in Transactional Composition of Web Services Semantics of Saga Calculus. COMPOSITION OF STANDARD TRACES int(p,q) represents all the possible interleaving of the observable flows p,q.

44 From Theory to Practice in Transactional Composition of Web Services Semantics of Saga Calculus.. TRACES OF Naive Sagas

45 From Theory to Practice in Transactional Composition of Web Services Semantics of Saga Calculus... COMPOSITION OF COMPENSABLE TRACES

46 From Theory to Practice in Transactional Composition of Web Services Semantics of Saga Calculus…. TRACES OF COMPENSABLE PROCESSES

47 From Theory to Practice in Transactional Composition of Web Services JSCL in detail connectSignal / emitSignal registerSignal / handleSignal JTWS Component JTWS Component Queue Connecting two components:  The Emitter makes a request to a handler to be connected  The Handler gives the permissions to the Emitter to create the input signal link Forwarding a signal:  Emitter: emitSignal (signal, async)  Handler: the method handleSignal (signal, async) is invoked automatically. This method “propagates” the signal to all the registered handlers. The asynchronous signals are managed by the handler.


Download ppt "From Theory to Practice in Transactional Composition of Web Services Daniele Strollo Roberto Bruni, Gianluigi Ferrari, Hernàn Melgratti, Ugo Montanari,"

Similar presentations


Ads by Google