1 / 42

Analysis of workflows : Verification, validation, and performance analysis .

This article discusses the techniques and methods for analyzing workflows, including verification, validation, and performance analysis. It covers topics such as process mining, deadlock detection, resource requirements, and more.

toddi
Télécharger la présentation

Analysis of workflows : Verification, validation, and performance analysis .

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Eindhoven University of Technology Faculty of Technology Management Department of Information and Technology P.O. Box 513 5600 MB Eindhoven The Netherlands w.m.p.v.d.aalst@tm.tue.nl Analysis of workflows: Verification, validation, and performance analysis. Wil van der Aalst

  2. Design-time and run-time questions Run-time Design-time • verificationvalidationperformance analysis • process mining

  3. Techniques to analyze workflows (design-time) • Validation is concerned with the relation between the model and reality. • Verification is typically used to answer qualitative questions • Is there a deadlock possible? • It is possible to successfully handle a specific case? • Will all cases terminate eventually? • It is possible to execute two tasks in any order? • Performance analysis is typically used to answer quantitative questions • How many cases can be handled in one hour? • What is the average flow time? • How many extra resources are required? • How many cases are handled within 2 days?

  4. Verification: analysis techniques can be used to avoid logical errors. c3 check_policy send_letter c4 c1 c2 c5 start register ready check_damage pay_damage c6 Is this a correct workflow? If not, how to correct it?

  5. It this process correct?

  6. Error 1: dangling tasks task4 task5 begin task1 task2 task3 end

  7. Error 2: deadlock (task2) task2 begin task1 end

  8. Error 3: unbounded and never-ending begin task1 task2 task3 end

  9. Error 4: deadlock before or after termination begin task1 task2 task3 end

  10. Soundness property Eventually the case terminates and the moment it terminates all references have been removed. process definition • The soundness property corresponds to two standard Petri-net properties (liveness and boundedness). • Standard Petri-net-based tools can be used. • For (almost) free-choice nets this can be checked in polynomial time! begin end

  11. problem toolbox modeling Petri net description analysis structural analysis reachability analysis Markovian analysis OR-techniques simulation answers Petri-nets: a solver-independent medium

  12. red1 red2 safe yr1 yr2 yellow1 yellow2 rg1 rg2 gy1 gy2 green1 green2 Reachability analysis

  13. Reachability graph • Each node corresponds to a reachable state. • Done by a computer. • A computer can cope with reachability graphs with millions of nodes. The traffic lights are safe!

  14. Exercise: construct reachability graph c3 check_policy send_letter c4 c1 c2 c5 start register ready check_damage pay_damage c6

  15. Structural analysis Many techniques are available: • place invariants • transition invariants • traps and siphons • reduction rules • decomposition techniques • S-covers/T-covers • special techniques for subclasses: • state machines • marked graphs • free-choice nets • asymmetric free-choice nets

  16. Place invariants • A place invariant assigns a weight to each place such that the weighted token sum remains constant. man couple marriage divorce • 1man + 1woman+2couple =constant (man+woman+2couple=7) • woman + couple • man + couple • man - woman woman

  17. red1 red2 safe yr1 yr2 yellow1 yellow2 rg1 rg2 gy1 gy2 green1 green2 Example red1+yellow1+green1 = 1 red2+yellow2+green2 = 1 safe + green1 + green2 + yellow1 + yellow2 = 1 red1 + red2 - safe = 1

  18. Place invariants can be used to check detect errors • There should be a positive place invariant assigning positive weights to all places and identical weights to begin and end. • 1.begin + 1.end + ..... = constant begin end

  19. Exercise c3 send_letter check_policy c1 c4 c5 c2 start register ready check_damage pay_damage c6 Use place invariants to motivate the correctness of the process definition.

  20. Example process_form send_form c1 c5 archive c3 time-out evaluate start register ready c7 c2 c6 c4 check_proc Sound? P-inv.? process_complaint

  21. Example (2) process_form send_form c1 c5 archive c3 time-out evaluate start register ready c2 c6 c4 check_proc Sound? P-inv.? process_complaint

  22. Example (3) process_form send_form c1 c5 archive c3 time-out evaluate c8 start register ready c7 c2 c6 c4 check_proc Sound? P-inv.? process_complaint

  23. Example (4) process_form send_form c1 c5 archive c3 time-out evaluate start register ready c7 c2 c6 check_proc c4 Sound? P-inv.? process_complaint

  24. Example (5) process_form send_form c1 c5 archive c3 time-out evaluate start register ready c7 c2 c6 c4 check_proc Sound? P-inv.? process_complaint

  25. Transition invariants • A transition invariant assigns a weight to each transition such that the net effect of firing each transition the specified number of time is zero, i.e., the initial marking is reproduced. man couple marriage divorce • marriage + divorce • 2.marriage + 2.divorce woman

  26. Transition invariants can be used to detect errors short-circuited net • There should be a positive transition invariant assigning positive weights to all transitions. begin end

  27. Example • Give transition invariants of short-circuited net. c3 check_policy send_letter c4 c1 c2 c5 start register ready check_damage pay_damage c6

  28. Why invariants? • Can be calculated efficiently (polynomial time for a basis). • Independent of initial marking. • However, the main reason is didactical! You only truly understand a model if you think about it in terms of invariants!

  29. Performance analysis Questions: • throughput, waiting and service times • service levels • occupation rates Techniques: • simulation • queuing theory • Markovian analysis

  30. Example: sequential (1) 24 arrivals per hour • average throughput time : 22.2 minutes • service time: 8.0 minutes • waiting time: 14.2 minutes 2 resources, average service time of 4 minutes 2 resources, average service time of 4 minutes c1 task1 c2 task2 c3

  31. Parallel (2) 24 arrivals per hour 2 resources, average service time of 4 minutes • average throughput time : 15 minutes • service time: 4 minutes • waiting time: 11 minutes c21 c23 task1 c1 c3 task2 c22 c24 2 resources, average service time of 4 minutes

  32. Compose (3) • average throughput time : 9.5 minutes • service time: 7.0 minutes • waiting time: 2.5 minutes 24 arrivals per hour 4 resources, average service time of 7 minutes c1 task12 c3

  33. Flexible resources (4) • average throughput time : 14.0 minutes • service time: 8.0 minutes • waiting time: 6.0 minutes 24 arrivals per hour 4 resources, average service time of 4 minutes c1 task1 c2 task2 c3

  34. Triage (5) 1 resource, average service time of 8 minutes • average throughput time : 31.1 minutes • service time: 8.0 minutes • waiting time: 23.1 minutes difficult cases 2 resources, average service time of 4 6 difficult c21 minutes cases per hour task1a c1 c23 task2 c3 task1b 18 easy cases c22 per hour easy cases 1 resource, average service time of 2.66 minutes

  35. Priority (6) easy cases have priority 2 resources, average service time 8 (difficult case) or • average throughput time : 14 minutes • service time: 8 minutes • waiting time: 6 minutes 2.66 (easy case) minutes 6 difficult cases per hour task2 c1 task1 c2 c3 18 easy cases per hour easy cases have priority 2 resources, average service time 8 (difficult case) or 2.66 (easy case) minutes

  36. situation description average average average throughput t. service time waiting t. Situation 1 sequential 22.2 8.0 14.2 Situation 2 parallel 15 4(8) 11(7) Situation 3 compose 9.5 7.0 2.5 Situation 4 flexibility 14.0 8.0 6.0 Situation 5 triage 31.1 8.0 23.1 Situation 6 priorities 14.0 8.0 6.0 Results

  37. Queuing models service Basic characteristics: • average number of arrivals per time unit: l (mean arrival rate) • average number that can be handled by one server per time unit: m (mean service rate) • number of servers: c waiting arrivals l c m

  38. Basic relationships: average time between arrivals: 1/l average service time: 1/m occupation rate: r = l/(c*m) average number being served: r = l/m Queuing models (2) l c m W,Lq S,L W (S) = average time in queue (system) Lq (L) = average number in queue (system) • L = Lq + r • S = W + 1/m • Lq = l * W • L = l * S (Little’s formula)

  39. M/M/1 queue • Lq = (l* l)/(m * (m-l)) • L = l/(m-l) = r/(1-r) • W = r/(m-l) • S = 1/(m-l) l 1 m • Assumptions: • time between arrivals and service time follow a negative expontential distribution • 1 server (c = 1) • FIFO Also formulas for M/Er/1, M/G/1, M/M/c, ... !

  40. Exercise 1 resource, average service time of 8 minutes difficult cases 1 resource, average Calculate: • occupation rates, • average waiting time, • average throughput time, • average number in system. service time of 2 6 difficult c21 minutes cases per hour task1a c1 c23 task2 c3 task1b 18 easy cases c22 per hour easy cases 1 resource, average service time of 2.66 minutes • Increase the occupation rate until 90%: • average waiting time, • average throughput time, • average number in system.

  41. Simulation • Random walk through the reachability graph • Computer experiment • pseudo random numbers • random generator • Validation • Statistical aspects • start run • subruns • Animation • Flexible • No proof!

  42. Simulation using Protos/ExSpect

More Related