Workflow Management Kap. 4. Analyzing Workflows Wil van der Aalst has copyrights to almost all figures in the following slideshow made by Lars Frank. “Soundness” analysis can prevent logical errors: Soundness property: Unbounded and never ending loop error: A petri net is bounded when there is an upper limit for tokens. A petri net is safe when the upper limit for tokens is one for all places = Bounded by value one. Soundness property proof: If a transition is replaced by a sound workflow, then the resulting workflow is also sound. Examples of Sound nets: Example of Sound proof: Why is there no proof for the soundness property? Techniques to analyze workflows: (About the structure of the workflow. For example soundness) (About attribute values and management of the workflow) Deadlock illustration where both Trans1 and Trans2 want to lock(låse) Object1 and Object2: slut Trans 2 frigiv2 1 lås4 1 lås1 1 lås2 Trans 2 1 object2 object1 Trans 1 Trans 2 slut lås3 Trans 1 1 frigiv1 Trans 1 1 Fairness property: The fairness property says that if a task potentially can be executed, then it will be executed sooner or later. Does the workflow have a logical error if task2 is a “marriage” that produce “families”? Petri-net analysis: Reachability graph without cycles: Reachability graph with reachable states: Reachability graph with cycles: Yellow Yellow Both red Green Green (red1,green1,yellow1,safe,red2,green2,yellow2,safe) Some petri nets has Place invariants: Place invariants = Constant calculated as the weightet sum of the tokens in each place. Example: man +woman + 2 * couple = 7 Performance analysis: Computer simulation is the repeated execution of a process where choices are made upon various probability distributions. A Markov chain is a reachability graph with the probability of transition added to it. Prove the soundness of the coupled ecommerce workflow? Which ecommerc e model will you recommend in practice? End of session Thank you !!! Petri net Work flow for global E-commerce transactions where the stocks are in the locations of the different suppliers. Start Canseled order 1. Put products in the basket Stock rejected order Non confirmed order 2. Confirm order-lines and update stocks in servers Sub orders 3.Suppliers send products Confirmed order Timer OR split 5. Send the received products to the customer En Products 4. Receive products from suppliers and update QUANTITY received All products are received 6. Send the rest of the products to the customer SubPetri net of activity 2 Non confirmed order AND split Order -line 2.1 try to confirm the next order-line Order -line 2.2 Supplier's server try to confirm order-line More order-lines Order 2.3 Update Order with supplier answer for each order-line OR split AND join All answers received Order Stock rejected order 2.4 Send Order with confirm answers to the Customer. If the Order was confirmed The Timer is set and confirming Sub-orders are send to the involved suppliers. Confirmed Order Timer Sub-orders Answer Exercise in quantitative analysis: