• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Workflow repair
 

Workflow repair

on

  • 1,110 views

How to repair a workflow?

How to repair a workflow?

Statistics

Views

Total Views
1,110
Views on SlideShare
1,106
Embed Views
4

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 4

http://www.slideshare.net 2
http://www.linkedin-ei2.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Workflow repair Workflow repair Presentation Transcript

    • Workflow Repair aspects and algorithms Privatissimum Vladimir Ivanchenko 04-12-2006
    • What is repair?
      • By repair we understand a
        • sequence of actions in order to provide
        • the original, intended properties of an artefact
        • after a failure has occurred
      • Properties characterize artefacts and include
        • functional,
        • behavioural as well as
        • quality of service properties
      • Usually assumed: the faulty artefact provided correctly the intended properties
    • Types of repair for composed WSs
      • Pre-defined
        • Defined by the designer of the WS
        • Implemented by handlers (composition of handlers)
        • All possible failure scenarios must be anticipated
        • Completeness, correctness, optimality?
      • Approach: handle unknown scenarios by adding knowledge and (more) general problem solving capabilities
      • Automatically generated (focus of this presentation)
        • Is a sequence of atomic repair actions applied to activities
        • Is generated in case when no pre-defined handler exists
    • Our dimension
      • Cooperation style:
      • Fully orchestrated
      • Choreography
      • Sustainability:
      • Class repair
      • Instance repair
      • Level:
      • IT infrastructure
      • Service
      • Controllability:
      • Interruptible
      • Non interruptible
      • Design of processes:
      • Correct orchestration
      • Failure in orchestration
      Repair of composite WS
      • Properties of service provision:
      • Functional
      • Non-Functional properties (QS, e.g. time, cost, …)
    • Simple example partners workflow objects Goal objects : plane_ticket, hote_res, restaurant_res Get Security status Determine trip dates Book flight Book hotel [duration>1] Get weather report Employee Travel agency1 Hotels.com Weather service project_name, duration, city_name, arrival_date project_name security_status duration, city_name, arrival_date plane_ticket city_name, arrival_date, duration, security_status hote_res city_name, arrival_date weather_report a0 a2 a3 a4 a5 a7 Get pers. preferences isvegeterian Reserve dinner isvegeterian, city_name restaurant_res a6 a1 Travel agency2 Travel agency3 employee_id  Org. dept. Secretary Org. dept.
    • General repair algorithm
      • 1 Compute repair plan - all the sets of redo, compensate, adjustment, skip actions;
      • 2 Select which repair actions shall be deactivated;
      • 3 Make ordering on the repair scheme and select the repair action to be executed first;
      • 4 Execute this repair action;
        • MIGRATE to new process (with includes repair actions and the rest of workflow) OR
        • insert repair actions to paused workflow and resume it
      • 5 Estimate the new state of the workflow instance;
      • 6 Select which repair actions shall be activated;
      • 7 If repair scheme contains no activated repair action - exit;
      • 8 If needed regenerate all repair plan - go to step 1;
      • 9 Go to step 3;
    • Goal dependencies and choosing blocks Goal object: hote_res Case 1: duration = 0 a2 is not goal dependent Case 2: duration > 1 a2 is goal dependent Is goal dependent? abnormal infected Solution: 1. Repair a0 2. a4: Which case we have? 3. Repair a2 or not We don’t have to repair not goal dependent activities Get Security status Book flight a2 a3 Get pers. preferences a1 Get weather report Reserve dinner a7 a6 Book hotel [ duration >1] a4 a5 project_name security_status security_status hote_res Determine trip dates duration , project_name a0 (1) (2) Goal depends on a4
    • Conditional repair plan Determine trip dates Get Security status Book flight Book hotel Get weather report Get pers. preferences Reserve dinner a0 a2 a3 a4 a5 a7 a6 a1 (1) (2) COMP a0 REDO a0 REDO a4 COMP a6 COMP a5 COMP a2 REDO a2 COMP a5 REDO a5 COMP a3 REDO a3 DO a7 (1) (2) ok abnormal possibly infected not executed COMP a6 REDO a6 May be removed during the repair execution (shown in example) plane_ticket hote_res restaurant_res [duration>1]
    • Choosing blocks in conditional plan comp(a0) redo(a0) comp(a7) redo(a8) redo(a10) redo(a3) enter(w1) enter(w2) comp(a1) redo(a1) redo(a4) leave(w1) leave(w2) new_value(x2)=old_value(x2) ? yes no
    • Assumptions
      • Some activities have WF behind
      • Actions: COMP, REDO, DO
      • Repair with concurrency is possible!
      • Each condition in repair plan corresponds to condition in the workflow model
      • Objects are not shared in parallel blocks
    • DLV-K and MBP(NuPDDL)
      • DLV-k:
        • Plans with concurrency (repair actions in parallel)
        • No conditions: need extra stage of business-logic or tricks
      • MBP:
        • PDDL-dialect based
        • Conditional plans
        • No concurrency
        • Linux-based
        • Works too slow
    • Advanced with ways and concurrency executed(a1). executed(a2). executed(a3). -executed(a4). executed(a5). -compensated(a1). -compensated(a2). -compensated(a3). -compensated(a4). -compensated(a5). actuell(x1,2). actuell(x2,2). actuell(g,2). -oka(a1). -oka(a2). okv(x1,1). okv(x2,1). okv(g,1). branchwastaken(w1). -branchwastaken(w2). comp a2 comp a5 comp a1 redo a2 redo a1 redo a3 a4 redo a5 redo a5 way2 way1 Plan is correct but not optimal
    • Rules /1 a1 x1_2 Activity with only output. aa1. compa1. redoa1. executable aa1 if -executed(a1), -compensated (a1). executable redoa1 if -executed(a1), compensated(a1). executable compa1 if actuell(x1_2), executed(a1), -oka(a1). caused -okv(x1_2) if -oka(a1). caused executed(a1) after aa1. caused okv(x1_2) after aa1. caused actuell(x1_2) after aa1. caused -actuell(x1_1) after aa1. caused -executed(a1) after compa1. caused oka(a1) after compa1. caused compensated(a1) after compa1. caused -okv(x1_2) after compa1. caused actuell(x1_1) after compa1. caused executed(a1) after redoa1. caused -compensated(a1) after redoa1. caused okv(x1_2) after redoa1. caused actuell(x1_2) after redoa1. caused -actuell(x1_1) after redoa1.
    • Rules /2 a4 a3 x1_3 way2 Activity under condition. executable aa4 if -executed(a4), -compensated(a4), branchwillbetaken(w2), branchactivated(w2). executable redoa4 if -executed(a4), compensated(a4), branchwillbetaken(w2), branchactivated(w2). executable compa4 if actuell(x1_3), executed(a4), -oka(a4). executable compa4 if actuell(x1_3), executed(a4), branchwastaken(W), branchwillbetaken(V), V<>W. caused -oka(a4) if executed(a4), branchwastaken(W), branchwillbetaken(V), V<>W. caused -oka(a4) if -oka(a3). caused -okv(x1_3) if -oka(a4). caused executed(a4) after aa4. caused okv(x1_3) after aa4. caused actuell(x1_3) after aa4. caused -actuell(x1_2) after aa4. caused -executed(a4) after compa4. caused oka(a4) after compa4. caused compensated(a4) after compa4. caused -okv(x1_3) after compa4. caused actuell(x1_2) after compa4. caused executed(a4) after redoa4. caused -compensated(a4) after redoa4. caused okv(x1_3) after redoa4. caused actuell(x1_3) after redoa4. caused -actuell(x1_2) after redoa4.
    • Rules /3 a3 x2_2 aa3. redoa3. executable aa3 if -executed(a3), okv(x2_2). executable redoa3 if executed(a3), okv(x2_2). caused -oka(a3) if -okv(x2_2), executed (a3). caused executed(a3) after aa3. caused branchactivated(w2) after aa3, branchwillbetaken(w2). caused branchactivated(w1) after aa3, branchwillbetaken(w1). caused branchactivated(w2) after redoa3, branchwillbetaken(w2). caused branchactivated(w1) after redoa3, branchwillbetaken(w1). Conditional block.
    • Rules /4 a5 g_2 x1_2;x1_3 Activity reads, two alternatives, after conditional block executable aa5 if branchactivated(W), -executed(a5), -compensated (a5), okv(x1_2), actuell(x1_2), branchwillbetaken(w1). executable aa5 if branchactivated(W), -executed(a5), -compensated (a5), okv(x1_3), actuell(x1_3), branchwillbetaken(w2). executable redoa5 if branchactivated(W), -executed(a5), compensated(a5), okv(x1_2), actuell(x1_2),branchwillbetaken(w1). executable redoa5 if branchactivated(W), -executed(a5), compensated(a5), okv(x1_3), actuell(x1_3),branchwillbetaken(w2). executable compa5 if actuell(g_2), executed(a5), -oka(a5). caused -oka(a5) if -okv(x1_2), branchwastaken(w1), executed (a5). caused -oka(a5) if -okv(x1_3), branchwastaken(w2), executed (a5). caused executed(a5) after aa5. %nothing new, same as a1 a2 a4 caused okv(g_2) after aa5. caused actuell(g_2) after aa5. caused -actuell(g_1) after aa5. caused -executed(a5) after compa5. caused oka(a5) after compa5. caused compensated(a5) after compa5. caused -okv(g_2) after compa5. caused actuell(g_1) after compa5. caused executed(a5) after redoa5. caused -compensated(a5) after redoa5. caused okv(g_2) after redoa5. caused actuell(g_2) after redoa5. caused -actuell(g_1) after redoa5.
    • Case: all executed, ab, other way a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x1_1, x2_1, g_1 are ok x2_2 x1_2;x1_3 will be taken: w2 was taken: w1 Correct solution: comp(a5), comp(a2), redo(a2), redo(a3), a4, redo(a5). Generated solution: executed(a1). executed(a2). executed(a3). -executed(a4). executed(a5). -compensated(a1). -compensated(a2). -compensated(a3). -compensated(a4). -compensated(a5). actuell(x1_2). actuell(x2_2). actuell(g_2). -oka(a1). -oka(a2). okv(x1_1). okv(x2_1). okv(g_1). branchwillbetaken(w2). -branchwillbetaken(w1). branchwastaken(w1). -branchwastaken(w2). Initially: ab ab √
    • Case: all executed, ab, same way w1 a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x1_1, x2_1, g_1 are ok x2_2 x1_2;x1_3 will be taken: w1 was taken: w1 Correct solution: comp(a5), comp(a2),comp(a1), redo(a1), redo(a2),redo(a3), redo(a5). Generated solution: executed(a1). executed(a2). executed(a3). -executed(a4). executed(a5). -compensated(a1). -compensated(a2). -compensated(a3). -compensated(a4). -compensated(a5). actuell(x1_2). actuell(x2_2). actuell(g_2). -oka(a1). -oka(a2). okv(x1_1). okv(x2_1). okv(g_1). branchwillbetaken(w1). -branchwillbetaken(w2). branchwastaken(w1). -branchwastaken(w2). Initially: ab ab √
    • Analysis of 2 alternative ways a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x2_2 x1_2;x1_3 ab ab a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x2_2 x1_2;x1_3 ab ab COMP(a2), REDO(a2), REDO(a3), ……………
    • Complex example 13 activities, inclusive choosing blocks, parallel Goal: branchtoprocess(w1,a5), -branchactivated(w1), branchtoprocess(w2,a5), -branchactivated(w2) ? (21) Execution time: 51 sec. No ways, just “branchwillbetaken” - w1, w3 Execution time: 0,47 sec. Goal: branchtoprocess(w1,a5), branchtoprocess(w3,a8), -branchactivated(w3), branchtoprocess(w4,a8), -branchactivated(w4), -branchactivated(w1), branchtoprocess(w2,a5), -branchactivated(w2) ? (21) Execution time: 26 sec. Goal must be formulated in other way ?
    • Repair Reasoner WS
      • RR is a usual web service with has some operations and as output generates plans in some form
      • Each session works with one workflow (there are NO general view, privacy guaranteed), there may be used many RR services for different partners’ workflows
        • Information about goal/infected objects is propagated between sessions as additional parameter
        • Type of repair action to be applied is propagated between sessions as additional parameter
    • Propagations a4 a5 a0 a1 a2 a3 x1 x1 x2 x3 x6 x3 x4 x2 x5,x6 x6 x7 way2 way1 a10 a11 a12 y3 y1 y2 x5 y6 x5 a13 a14 a15 x2 y2,y7 y2 x6,y6 y5 y2 inf ab inf inf inf gd gd gd inf inf gd WF1 WF2
    • Repair Reasoner WS : operation “generate plan” Repair Reasoner Web Service Tomcat Axis Model, log, diagnose, [repair action, i/g obj] nuPDDL / k-lang Invoke external application plan BPEL BPEL GPT/MBP: Linux, K-lang:Windows ? ? ? Include IDs of session for low-level workflows ask/inform other sessions about goal/infected objects, repair actions Also set of goal dependent/infected objects
    • Repair Reasoner WS : operation “check plan” Repair Reasoner Web Service Tomcat Axis Plan, log, diagnose, SessionID Ok / new needed Compare old/new values Check dependencies Eliminate non-goal/non-infected
    • Repair Reasoner WS : operation “new goal dep/infect” Repair Reasoner Web Service Tomcat Axis SessionID, new set of goaldep/infect BPEL Restore model a) Model Already exists regenerate repair plan b) Model Not yet exists fix data (be ready for the future)
    • Thank you.