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.

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.
  1. 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.
  2. 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ší.
  3. 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í:

  1. 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é.
  2. 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í
  3. vztahy mezi systémovými zdroji - odpovídají komunikačním linkám
  4. činitelé - spouštějí aktivity - ruční, automatické, poloautomatické
  5. 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

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:

  1. progress free (volný běh) - po uvolnění může přechod “vystřelit”, ale nikdy nemusí
  2. 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
  3. 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:

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).