420 likes | 431 Vues
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.
E N D
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
Design-time and run-time questions Run-time Design-time • verificationvalidationperformance analysis • process mining
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?
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?
Error 1: dangling tasks task4 task5 begin task1 task2 task3 end
Error 2: deadlock (task2) task2 begin task1 end
Error 3: unbounded and never-ending begin task1 task2 task3 end
Error 4: deadlock before or after termination begin task1 task2 task3 end
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
problem toolbox modeling Petri net description analysis structural analysis reachability analysis Markovian analysis OR-techniques simulation answers Petri-nets: a solver-independent medium
red1 red2 safe yr1 yr2 yellow1 yellow2 rg1 rg2 gy1 gy2 green1 green2 Reachability analysis
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!
Exercise: construct reachability graph c3 check_policy send_letter c4 c1 c2 c5 start register ready check_damage pay_damage c6
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
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
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
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
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.
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
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
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
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
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
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
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
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
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!
Performance analysis Questions: • throughput, waiting and service times • service levels • occupation rates Techniques: • simulation • queuing theory • Markovian analysis
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
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
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
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
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
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
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
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
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)
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, ... !
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.
Simulation • Random walk through the reachability graph • Computer experiment • pseudo random numbers • random generator • Validation • Statistical aspects • start run • subruns • Animation • Flexible • No proof!