Rozšíření Petriho sítí pro modelování správy pracovních procesů
Daniel Cvrček
ÚIVT FEI VUT Brno
cvrcek@dcse.fee.vutbr.cz
Abstrakt
Správa pracovních procesů (Workflow management) slibuje řešení dlouhodobého
problému kontroly, sledování, optimalizace a podpory obchodních procesů.
Hlavní oporou tohoto přístupu je jasné vyjádření logiky obchodních procesů,
což umožňuje počítačovou podporu. Na následujících stránkách jsou popisovány
výhody a nevýhody použití Petriho síti pro účely popisu procesů a dále
popis určitých rozšíření, která se snaží odstranit některá slabá místa
klasických Petriho sítí pro dané účely.
Obsah
1. Úvod
1.1 Systémy správy pracovních procesů
(WfMS)
1.2 Použití Petriho sítí
2. Zdroje v pracovních procesech
3. Objektové sítě vyššího stupně (HOON)
3.1 Prvky grafického jazyka
3.2 Struktura
3.3 Značky
3.4 Meta místa
3.5 Další vlastnosti (postplaces,
inscription, firing behaviour)
4. Interpretace HOONa
5. Literatura
1. Úvod
V současné době se návrháři moderních kancelářských informačních systémů
potýkají s problémy, které dříve nebyly tak podstatné. Vlastně nepřetržitě
vznikají nové programové komponenty pro správu a zpracování kancelářských
informací, které jsou stále mocnější, ale také složitější. To je příčinou
velkých potíží ve chvíli, kdy se rozhodneme nějakým způsobem změnit strukturu
systému správy informací, nebo procesů. Důvodem je to, že komplexní informační
systémy se odkazují na konkrétní aplikace a ve chvíli, kdy se rozhodneme
pro nějakou změnu, je třeba zasahovat přímo do tohoto složitého systému.
Tím dochází k určitému paradoxu. Na jedné straně jsou počítačové technologie
nezbytné pro úspěšné řízení podniku, ale na druhé straně velmi dramatickým
způsobem brzdí změny struktury podniku podle aktuálních a neustále se měnících
potřeb. To je situace, která vedla k tomu, že v posledních 5 až 10 letech
vznikají různé systémy pro správu pracovních procesů, které se snaží řešit
popsané problémy.
1.1 Systémy správy pracovních procesů (WfMS)
V současné době existuje velké množství výzkumných, ale i komerčních produktů,
které se označují jako systémy správy pracovních procesů, ale jejich filozofie
a funkčnost se velmi liší. Proto vyjmenuji základní vlastnosti, které by
takový systém měl mít.
-
Měl by být založen na formálním a proveditelném procesním modelu tak, aby
metodicky pokrýval jak analýzu sytému, tak jeho simulaci.
-
Měl by oddělit procesy od aplikačních programů tak, aby podporoval změny
a vývoj procesů a sdílení částí procesů.
-
Aplikační struktura systému pracovních procesů, tj. uspořádání a vztahy
programových komponent a uživatelské činnosti musí být určeny pouze procesním
modelem.
-
Kontrola pracovních toků by měla být prováděna interpretací procesního
modelu (jako DB systémy oddělily data od aplikačních programů, tak interpret
pracovních procesů odděluje procesy od aplikačních programů).
-
Konkrétní aktivity jsou řízeny procesním modelem, který lze kdykoliv změnit.
To mimo jiné znamená, že celý WfMS musí mít otevřené aplikační rozhraní
tak, aby umožňoval snadné přidávání nových aplikačních komponent.
-
Skládání a vztahy mezi jednotlivými komponentami pro podporu procesů by
měli podporovat decentralizovanou strategii.
-
Musí podporovat vzájemnou spolupráci mechanismů, které pracují s heterogenitou
a autonomií a musí poskytovat synchronizaci a konzistenci v distribuovaném
prostředí.
1.2 Použití Petriho sítí
Mezi formálními a poloformálními funkcionálními modely mají Petriho sítě
velmi prominentní postavení. Petriho sítě mají minimálně následující tři
výhodné vlastnosti.
-
Formální sémantika s grafickým zápisem - řídící logika může
být popsána graficky a přesto formálně. Formalizováno je i několik rozšíření
Petriho sítí (barva, čas, hierarchie). Toho je možno velmi výhodně využít
ve fázi návrhu a hlavně analýzy procesního modelu. Formální model je jednoznačný
(význam konstrukcí je jasný), může být použit pro definici smluv, je
nezávislý na nástrojích, je vhodný pro posuzování vlastností procesů (živost),
umožňuje použití analytických technik.
-
Je založen na stavech místo na událostech - současné techniky
pro modelování procesů (od datových toků až po algebru procesů) jsou založeny
na událostech a stavy jsou implicitní. Stejně je to i se současnými WfMS.
Jestliže se ovšem podíváme na následující obrázek, tak vidíme, že rozdíl
mezi modelem založeným na událostech a modelem založeným na stavech (i
když se zdá velmi jemný) má dosti značný vliv na možnosti popisu procesu.
Je možno odlišit uvolnění úlohy od provedení úlohy (definice různých spouštěčů),
snadné modelování soutěžících úloh (uživatel, čas) a další.
-
Bohaté analytické techniky - model procesů, který může být
použit na různých úrovních rozhodování řídících pracovníků může být použit
i pro analýzu některých vlastností takového modelu. Např. určení spolehlivosti
procedury pracovního procesu, kam patří určení živosti, zbytečných úloh
(neúčastní se zpracování procesů), ukončení procedury pro jakoukoliv úlohu,
nebo celkový čas potřebný na provedení úlohy. Je také snadné určit časy
odezvy, čekací stavy a zaneprázdnění zdrojů (uživatelů, skupin uživatelů).
Pro popis procesů jsou ovšem klasické C/E Petriho sítě nevhodné v tom
smyslu, že jejich sémantické prostředky jsou velmi chudé, i když na druhou
stranu existují velmi silné formální prostředky pro analýzu C/E sítí. Pro
uspokojivý popis skutečných procesů je nutné použít Petriho sítě vysoké
úrovně (High Level Petri Nets), jejichž sémantika je obohacena o barvu,
čas a hierarchie. Tyto rozšíření jsou potřeba pro uspokojivou aplikaci
Petriho sítí na popis rozsáhlých řídících procesů.
Jelikož značky v modelovaném systému často reprezentují objekty (dokumenty,
zdroje, zboží), je v mnoha případech potřeba reprezentovat atributy těchto
objektů. Tyto atributy se u Petriho sítí označují jako barva. Jestliže
popis značek rozšíříme o čas - časové razítko, tak získáme časové
barvené Petriho sítě, které jsou schopné stručně popsat mnoho řídících
procesů, tak se dostáváme do dalších potíží. Výsledné modely jsou ovšem
velmi rozsáhlé. Proto zavádíme konstrukci hierarchie, kterou nazýváme
systém. Systém je souhrn míst, přechodů a případně podsystémů.
I přes všechna tato rozšíření mají Petriho sítě vysoké úrovně určité principiální
slabiny. Nejsou například schopny popsat dynamiku vývoje a výjimek. Vývoji
systému nelze zabránit, protože k němu dochází neustále (vnitřní organizační
reformy, změny vnějšího prostředí). Na druhou stranu mnoho výjimečných
situací v WfS je nepředvídatelných, nebo neočekávaných a je nemožné, nebo
velmi obtížné je zachytit ve fázi modelování. Tato dynamika klade vysoké
požadavky na strukturální pružnost konceptuálních modelů. V Petriho sítích
jsou všechny vlastnosti modelu nastaveny v modelovací fázi a dynamické
vázání a rekonfigurace není podporována. Konceptuálně je většina síťových
systémů uzavřených (kromě počátečního značení nejsou změny stavů ovlivňovány
vnějšími faktory).
Další nevýhodou je, že neexistuje systematická správa vnějších zdrojů
a nejsou podporovány obousměrné vztahy. V procesních sítí je možno zpracovávat
spouštěcí signály z vnějšího okolí, ale ty obsahují pouze kontrolní informace
v předem daném kontextu.
2. Zdroje v pracovních procesech
Až do této chvíle jsme za zdroje považovali uživatele, případně skupiny,
či role uživatelů. Tak je definuje van der Aalst v [1], [2], [3]. Pro další
text si zavedeme jinou definici, která se mi líbí mnohem více a kterou
uvádějí Löwe, Wikarsi a Han v [4].
Úkolem WfMS a řídícího inženýrství je optimálně přeuspořádat množinu
obchodních objektů, obchodních aktivit, zaměstnance, programy a kontrolní
informace, které jsou mezi aktivitami vyměňovány. Tyto fyzické zdroje můžeme
rozdělit na následující:
-
obchodní objekty - zde jsou míněny formuláře, dokumenty,
archivní složky, objednávky, dodávkové listy, účty, atd. Tyto objekty mohou
být primitivní, nebo složené.
-
aktivity - jednotky práce, které jsou spouštěny požadavkem
na službu, zprávou o výsledku, nebo výskytem události. Jestliže aktivita
běží, tak ji nazveme činností
-
vztahy mezi systémovými zdroji - odpovídají komunikačním linkám
-
činitelé - spouštějí aktivity - ruční, automatické, poloautomatické
-
role - pozice činitele v organizační struktuře, slouží k
asociace činitelů a aktivit, které mohou činitelé spouštět.
Tato definice je mnohem vhodnější pro praktické použití, kdy je v modelech
potřeba brát v úvahu v některých případech velmi široké okolí systému.
3. Objektové sítě vyššího stupně (HOON)
V síťovém grafu je možné odlišit aktivní a pasivní entity (přechody, místa).
Tento přístup s sebou ovšem přináší některé nevýhody. Ústřední myšlenkou
HOON je, že určitá oblast, doména míst může obsahovat jak pasivní, tak
i aktivní zdroje, tak i OO entity. Aktivní a objektové prvky mohou být
dynamicky vázány na přechody a spuštění přechodu pak může dynamicky svázat
pasivní a aktivní prvky. Tento přístup by měl vyřešit problémy změn modelu
za běhu.
3.1 Prvky grafického jazyka
Kromě klasických prvků Petriho sítí jsou v tomto modelu přidány některé
další tak, aby bylo možno do modelu začlenit nové pojmy - agregace míst,
pozdní-vázání značky, správa zdrojů a komunikace s uživatelem za běhu.
Místa (P) - kontejnery multimnožin rozlišitelných prvků,
může mít definován typ, který musí obsahovat všechny typy prvků, které
mohou být v daném místě uloženy.
Meta místa (MP) - kontejnery míst, nebo meta míst logicky
spolu souvisejících
Kontrolní místa (CP) - speciální typ meta míst. S přechody
jsou spojeny přerušovaně - dynamická vazba, půjčování a vracení zdrojů.
Každý přechod vlastní CP výhradně. Značky jsou kresleny hvězdičkou.
Přechody (T) - aktivní prvky v HOON.
Hrany - v tomto modelu je kromě klasických ještě několik
dalších typů hran. Kopírovací hrany (značky v presetu nejsou zrušeny, každý
přechod dostane jednu kopii). Jestliže není možno značku libovolně kopírovat,
je nutné použít kopírovací hranu s pozdní vazbou, která zajistí, že všechny
značky budou po provedení přechodu přeneseny zpět.
3.2 Struktura
HOON se skládá ze dvou typů sítí - pracovní a kontrolní síť (Working
Net, Control Net). Pracovní sítě popisují synchronizaci a kontrolní
struktury pracovních procesů plus tok informací. Značka může znázorňovat
a)datovou hodnotu, b) spouštěcí zprávu c) odkaz na objekt, což je zvláštní
typ zprávy, jenž indikuje dostupnost samotného datového objektu.
Kontrolní sítě jsou odpovědné za správu zdrojů a interakci s uživatelem
za běhu. Do obou těchto typů sítí patří CPs, které tvoří jejich rozhraní.
Značky v CP mohou na jedné straně představovat požadavky, nebo potvrzení
pro kontrolní síť, na druhou stranu mohou zastupovat čtyři typy zdrojů:
síťové objekty (podsítě), komponentní objekty (programové komponenty),
datové objekty (perzistentní data) a činitele (osoby, nebo programový kód).
Obecně mohou být na každém CP viditelné všechny sdílené zdroje. Viditelnost
objektů je ovšem možno kontrolovat podle různých strategií Správcem
zdrojů.
Tato struktura dovoluje, aby pracovní sítě generovaly požadavky na další
zdroje, nebo výjimky. Na druhou stranu je možné do kontrolní míst přidávat
nové značky.
Struktura kontrolní sítě je aplikačně nezávislá a má generickou povahu
- přechod může vlastnit CP. Kontrolní síť může tedy opět obsahovat pracovní
síť a kontrolní síť vyšší úrovně.
3.3 Značky
V tomto modelu je zastáván pojem hybridního modelování, který Petriho sítím
přidává některé rysy OO modelu a přitom zachovává původní vlastnosti těchto
sítí. Existují dva přístupy. Datový typ místa odpovídá objektové třídě,
jejímiž členy jsou a) datové složky vytvořené OO jazykem b) instance podsítě.
V modelu jsou použity oba přístupy na různých úrovních modelu (síťová,
komponentní nebo datová úroveň) a v různých stupních kompletnosti. Výsledkem
koexistence je výskyt dvou typů značek: klasické a objektové. Objektové
nesou struktury s chováním a vlastním životním cyklem. Pro uchování takových
objektů jsou použity CP.
Síťová úroveň
Na síťové úrovni jsou definovány síťové šablony pro často používané
síťové struktury. Jsou to abstraktní podsítě bez kontrolních značek (neexistuje
dědičnost, jsou tedy ploché a bez zprávy zdrojů). Z těchto šablon je
možno přiřazením kontrolních značek odvozovat síťové objekty se jménem.
Každá kontrolní značka, která zastupuje síťový objekt může mít přiřazeny
predikáty, které určují podmínky pro aktivaci.
Komponentní úroveň
Na této úrovni mluvíme o programových podsystémech, nebo samostatných
programových produktech. Dědičnost a klasifikace není uvažována. Objekty
jsou černou skříňkou s dobře definovaným rozhraním, přes které jsou volány
jednotlivé funkce objektu. Druhou možností komunikace s těmito objekty
je zasílání zpráv.
Datová úroveň
Zde jsou uvažovány entity vytvořené OO technikami - zapouzdřením dat.
Data jsou viditelná pouze přes služby - metody objektu, které s
nimi pracují. Datové objekty jsou speciálním typem dat. Jsou sdílené a
zůstávají fyzicky skryty. Manipulaci se sdílenými objekty provádí správce
zdrojů a v modelu jsou pouze odkazy na tyto objekty. HOON podporuje
kompletní OO model.
Pozn.: zprávy jsou v modelu buď na místech spojených s typem zpráva,
nebo na meta místech. Instance zpráv jsou n-tice a mohou být použity pro
výměnu zpráv a/nebo pro referenci sdílených objektů.
3.4 Meta místa
Vstupní/výstupní místa mohou být sdružena do vstupních/výstupních meta
míst. Důvodem pro zavedení meta míst je větší pružnost rozhraní pro síťové
objekty. Mohou být ovšem použity i pro pouhé sdružení souvisejících míst,
což zjednodušuje výsledný graf.
Pomocí meta míst a CP může být se stejným přechodem asociováno více síťových
objektů. Jelikož aktivace síťového objektu závisí pouze na vstupních značkách,
tak v jednom přechodu můžeme spouštět síťové objekty z různých šablon.
Barvení Petriho sítě nám umožní správně přiřadit vstupní značky na vstupní
místa síťového objektu.
3.5 Další vlastnosti (postplaces, inscription, firing
behaviour)
Postsety
V modelu HOON mohou mít přechody implicitní postsety, které nejsou
graficky vyjádřeny v grafu. To umožňuje dynamické vazby v rámci sítě. V
tom případě hraje roli výběru kompatibilita a typová kontrola. V modelu
jsou definovány dva typy: send a broadcast. V prvním případě existuje jediný
příjemce, ale je o něm rozhodnuto až ve chvíli poslání značky. V druhém
případě může být příjemců velké množství (pak je třeba např. uvažovat řešení
množství konkrétních zdrojů a jejich správu).
Pozdní vazba (late-binding)
Ke značkám je možno přistupovat několika způsoby: first, last, user,
labi. Poslední jmenovaný podporuje late-binding, kdy se dynamicky rozhoduje
mezi dostupnými zdroji, daty, nebo síťovými objekty.
Spuštěním T1 se s konečnou platností rozhodne o hodnotě EXP
a tím se zvolí správná značka. Jestliže by od P3 vedla kopírovací
hrana s pozdní vazbou, tak po ukončení T bude značka (zdroj )vrácen zpět.
Jestliže dotyčná hrana bude mít označení FIRST/FIRST. Tak bude vzata
první značka v řadě a zpět bude vrácena opět na první místo.
Inskripce
-
Hrany - popis specifikuje kolekci značek, které mohou přes hranu přejít.
Popisů může být několik spojených logickou spojkou AND, nebo OR. U hran
s pozdní vazbou jsou výrazy určeny za běhu.
-
Místa - značky jsou v místech uspořádány do pole, do kterého je možno přistupovat
různými způsoby. U meta míst je definována vícerozměrné pole a při přístupu
se používá popis <pod_místo, typ přístupu>.
-
Přechody - zde jsou definovány predikáty odpálení, které určují podmínku
nutnou pro provedení přechodu. Tyto logické výrazy se mění s příchody a
odchody kontrolních značek v přechodu.
Změna stavu
Změna stavu má tři fáze - odemknutí (preset odpovídá vstupním podmínkám),
uvolnění (v případě pozdní vazby musí existovat odpovídající značky) a
odpálení přechodu.
Samotné odpálení se řídí jedním ze tří následujících pravidel:
-
progress free (volný běh) - po uvolnění může přechod vystřelit,
ale nikdy nemusí
-
progress prone (přikloněn k běhu) - odpálení závisí na jiných přechodech
(může být i zrušeno) a nevíme ani kdy k němu dojde
-
immediate firing (okamžité odpálení) - po uvolnění musí být přechod
okamžitě odpálen.
Jestliže dojde k samotnému odpálení přechodu, tak postupně dojde k následujícím
akcím:
-
vyhodnocení a aktivace kontrolních značek (týká se všech značek
v příslušném CP) - příkladem je zpracování zdrojů, jež potom z CP zmizí.
-
odebrání znače z presetu
-
provedení činností měnících stav
-
vytvoření nových značek v postsetu
4. Interpretace HOONa
Na předcházejících stránkách byl popsán abstraktní model pro popis pracovních
procesů. Jestliže chceme tento model uvést do života, je nutné ho převést
do tvaru vhodného pro počítačové zpracování. K tomu účelu je nutné vytvořit
program pro interpretaci vytvořeného modelu - workflow model interpreter.
Jednotlivé instance tohoto programu se nazývají workflow engine.
5. Literatura
[1] van der Aalst, W.M.P., The Application of Petri
Nets to Workflow Management (ps.gz).
[2] van der Aalst, W.M.P., van Hee K.M., Business Process Redesign:
A Petri-net-based Approach.
[3] van der Aalst, W.M.P., Three Good Reasons
for Using a Petri-net-based Workflow Management System (ps.gz).
[4] Löwe M., Wikarski D., Han Y., Higher-Order
Object Nets and Their Application to Workflow Modeling
(ps.gz).