Procesmodelleren (terug van weggeweest) Jaap van der Woude Informatica Open Universiteit, Nederland 2011-05-31
Outline 1. Motivatie 2. Modelleren 3. Petri-net 4. Coloured Petri-net 5. CPNtools 2
Nieuwe cursus T04211 Procesmodelleren Van statisch modelleren (ER, class diagram) dynamisch modelleren (MSC, activity diagrams) component georienteeerd ontwerp Naar analyseerbare modellen sound workflow constructie rapid prototyping 3
Nieuwe cursus Procesmodelleren is een vak tussen BSc vakken MDD (model driven development) en Java x MSc vakken WAI (Web services) en OBR (bedrijfsregels) Gebruikmakend van propaedeuse (sets, logica, lineaire algebra) flarden automaten en functioneel programmeren Gebaseerd op Petri-netten 4
Proces Bedrijfsprocessen op verschillende abstractieniveaus Strategisch: componentsgewijs construeren (hierarchie) Tactisch: correctheid van data en controlflow (kleur) Operationeel: performance en statistiek (simulatie) Voorbeelden organisatie van een afdeling inrichting van een productieketen workflow management systeem besturing modeltreinbaan, sudoku oplosser 5
Modelleren Wat descriptief representatie van de geobserveerde werkelijkheid normatief specificatie van de wenselijke situatie Waarom communiceren validatie, documentatie en indoctrinatie monitoren wat gebeurt? en moet waarom hoe beter? analyseren meting, berekening en bewijs. Op welke basis? Hoe inzichtelijk grafische helderheid (en simplisme) precies mathematische rigeur balans tussen architectuur en algoritme 6
ModelleerModeling talen languages (1) MS Workflow Foundation FileNet Global 360 BPM Suite YAWL Axxerion InConcert IBM WebSphere XPDL Flowmark COSA casewise BPEL BPM one BWise UML Global 360 Protos jbpm ADs FlowConnect SAP Workflow BPMN EPCs Ensemble Flower TeamWARE Bizagi BPM, Advanced Petri Net Course, 23 Promatis BiZZdesigner 2010 Yasper [110618 TouWdag] 7
Modelleer talen Wij richten ons op Petrinetten want eenvoudige en begrijpelijke grafische notatie helder modelleren van concurrente systemen wel-gedefinieerde semantiek goede analyse methoden en tools industriele talen kunnen vaak (deels) naar Petrinetten vertaald worden geen modieuze eendagsvlieg 8
I/O relaties a? b? b! c! d! input: a?, b? output: b!, c!, d! 9
I/O relaties pa a? Trans b? b! pb c! d! pc pd plaats: pa, pb, pc, pd transitie: Trans input: a?, b? output: b!, c!, d! 9
I/O relaties pa Trans pc pd plaats: pa, pb, pc, pd transitie: Trans marking: 2pa + pd pb not enabled Marking met tokens Token toont bezetting van een plaats Enabled (vuurklaar) als elke input bezet is Vuring van transitie is atomair consumeert een token uit elke input en produceert een token in elke output 9
I/O relaties pa Trans pc pd plaats: pa, pb, pc, pd transitie: Trans marking: 2pa + pb + pd pb enabled Marking met tokens Token toont bezetting van een plaats Enabled (vuurklaar) als elke input bezet is Vuring van transitie is atomair consumeert een token uit elke input en produceert een token in elke output 9
I/O relaties pa Trans pc pd plaats: pa, pb, pc, pd transitie: Trans marking: 2pa + pb + pd pb VUUR Marking met tokens Token toont bezetting van een plaats Enabled (vuurklaar) als elke input bezet is Vuring van transitie is atomair consumeert een token uit elke input en produceert een token in elke output 9
I/O relaties pc pa Trans pb pd plaats: pa, pb, pc, pd transitie: Trans marking: pa + pb + pc + 2pd enabled Marking met tokens Token toont bezetting van een plaats Enabled (vuurklaar) als elke input bezet is Vuring van transitie is atomair consumeert een token uit elke input en produceert een token in elke output 9
I/O relaties pa Trans pc pd plaats: pa, pb, pc, pd transitie: Trans marking: pa + pb + pc + 2pd pb VUUR Marking met tokens Token toont bezetting van een plaats Enabled (vuurklaar) als elke input bezet is Vuring van transitie is atomair consumeert een token uit elke input en produceert een token in elke output 9
I/O relaties pa Trans pc pd plaats: pa, pb, pc, pd transitie: Trans marking: pb + 2pc + 3pd pb not enabled Marking met tokens Token toont bezetting van een plaats Enabled (vuurklaar) als elke input bezet is Vuring van transitie is atomair consumeert een token uit elke input en produceert een token in elke output 9
compositie net constructie door combinatie van I/O relaties Trb pc pa a? Trans b? b! c! d! pd Trc pb Trd 10
compositie plaatsfusie van in- en outputplaatsen van transities Trb pc pa a? Trans b? b! c! d! pd Trc pb Trd 11
compositie samen vormen ze een open systeem Trb pc pa a? Trans b? b! c! d! pd Trc pb Trd Hier met twee input plaatsen en 1 outputplaats niet atomair 12
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
definitie Een Petri-net is een gerichte bipartiete graaf Twee soorten knopen: plaatsen en transities De toestand is een marking met tokens Vuring van een transitie verandert de toestand Toestanden met hun veranderingen is een transitiesysteem check policy refuse start register check damage pay end 13
verkeerslichten g g' r x r' o o' Is dit tweetal verkeerslichten veilig? en fair? #g + #o + #x + #g + #o = 1 14
Gekleurde netten Nadelen klassiek: Klassieke netten zijn niet Turing volledig Het klassieke net wordt gauw erg groot Generalisatie vraagt grote aanpassing van het net Beperkte control flow informatie Geen waarde informatie Oplossing: kleur (CPN) Tokens met waarde Transities met relaties tussen waarden CPN is Turing volledig Gevaar: dreigt programmeren te worden 15
vb: gemiddelde pa a? Trans b? b! pb c! d! pc pd plaats: pa, pb, pc, pd transitie: Trans initieel bevat pb een token met waarde (0, 0) Trans a?, c! : N b?, b! : N N d! : Q b! = (fst(b?) + a?, snd(b?) + 1) c! = a? d! = fst(b!)/snd(b!) De plaatsen moeten toepasselijk getypeerd zijn! 16
vb: gemiddelde pa a Trans (b,b') (b+a, b'+1) pb a (b+a)/(b'+1) pc pd met inscripties langs de pijlen Trans a?, c! : N b?, b! : N N d! : Q b! = (fst(b?) + a?, snd(b?) + 1) c! = a? d! = fst(b!)/snd(b!) De plaatsen moeten toepasselijk getypeerd zijn! 16
tunnelomgeving 17
CPNtools Onwerpen van Hierarchische Gekleurde Petri-netten Animeren, simuleren en analyseren Deens product (Michael Westergaard) cpntools.org Nu onderhouden op de TU/e (gekoppeld aan ProM) Open source software onder Windows (en Linux) Expressies in SML (strikte functionele taal) 18
Na de pauze Klein modelletje met toenemende eisen: Tunnel CPNtools oefening met de hulp van Rik van Geldrop Arjan Mooij Jan Martijn van der Werf Nodig zijn: CPNtools tunnelbasis.cpn eventueel te vinden op www.win.tue.nl/ japie/touw/ (Zie ook: Sudoku-oplosser voor CPNtools (Klassieke) Petri-netten bouwer: Yasper ) 19