Brány v BPMN
Kosoštvorce a značka vnútri každého z nich. Brána nikdy nerobí prácu - iba rozhoduje, koľko odchádzajúcich ciest nesie token, a práve o tom je v skutočnosti každý spor o proces.
14 min čítaniaBPMN 2.03 z 7
Krátka odpoveď
- Brána nevykonáva žiadnu prácu. Je jediné, čo v BPMN mení počet živých tokenov, a všetko ostatné o bránach z toho vyplýva.
- Exkluzívna berie práve jednu odchádzajúcu cestu, paralelná berie všetky bez podmienok, inkluzívna berie každú cestu, ktorej podmienka platí.
- Brána riadená udalosťou nerozhoduje - čaká, a vyhráva prvá udalosť, ktorá nastane; ostatné sa zahodia.
- Ku každému rozdeleniu patrí zlúčenie rovnakého druhu. Inkluzívne rozdelenie do paralelného zlúčenia je uviaznutie; paralelné rozdelenie do exkluzívneho zlúčenia spustí všetko nasledujúce dvakrát.
01Gateway je pravidlo o tokenoch#
Vykonávací model BPMN je token, ktorý sa pohybuje diagramom. Gateway je jediná vec, ktorá mení počet tokenov: rozdelenie vie z jedného tokenu urobiť niekoľko, zlúčenie ich vie premeniť späť na jeden. Všetko ostatné o gateway z toho vyplýva.
Poznámka k názvu. Špecifikácia hovorí gateway; väčšina ľudí povie brána a hľadá brány. Je to tá istá vec a kosoštvorec je ten istý kosoštvorec - ale do názvu diagramu patrí gateway, lebo to je slovo, ktoré bude čítať každý BPMN nástroj aj každý recenzent.
Dva dôsledky stoja za zapamätanie. Po prvé, gateway nerobí žiadnu prácu - vyhodnocuje podmienky, ktoré už niekto vypočítal, a ak chcete niečo overiť, je to úloha pred gateway. Po druhé, rozdelenie zvyčajne potrebuje zodpovedajúce zlúčenie rovnakého druhu, pretože to, čo vytvorilo tokeny navyše, ich musí zase spojiť, inak dobehnú do konca zvlášť.
02Päť druhov#
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Exkluzívna (XOR) | kosoštvorec s X, alebo prázdny | Vyberie sa práve jedna odchádzajúca cesta. Podmienky sa vyhodnocujú v poradí a vyhráva prvá pravdivá. Predvolená voľba a tá, po ktorej treba siahnuť najskôr. |
| Paralelná (AND) | kosoštvorec s + | Vyberú sa všetky odchádzajúce cesty, úplne bez podmienok. Ako zlúčenie počká na každú prichádzajúcu cestu, až potom pokračuje. |
| Inkluzívna (OR) | kosoštvorec s krúžkom | Vyberie sa každá cesta, ktorej podmienka platí - jedna, viac alebo všetky. Ako zlúčenie čaká presne na tie vetvy, ktoré boli aktivované, čo je šikovnejšie, než to znie, a práve odtiaľ pochádzajú zaseknutia. |
| Event-based | päťuholník v dvojitom krúžku | Nerozhoduje - čaká. Vyberie sa cesta, ktorej udalosť nastane prvá, ostatné sa zahodia. |
| Komplexná | kosoštvorec s hviezdičkou | Únikový východ pre pravidlá, ktoré ostatné štyri nevyjadria - „pokračuj, keď sú tri z piatich schválení“. Zriedkavá a zvyčajne znak, že proces si pýta prekreslenie. |
03Rozdelenie, zlúčenie a join#
Ten istý symbol robí obe úlohy a to, ktorú práve robí, závisí len od toho, či má viac odchádzajúcich alebo viac prichádzajúcich tokov. Gateway s jedným vstupom a tromi výstupmi je rozdelenie; tri dnu a jeden von je zlúčenie.
Slovník si treba ustáliť, lebo na zbiehajúci prípad sa používajú tri slová. Zbiehajúca paralelná gateway je join: čaká na každú vetvu. Zbiehajúca exkluzívna gateway je merge: nečaká na nič a prepustí každý token. Obe sa kreslia ako ten istý kosoštvorec ako pri rozdelení, a nazvať merge joinom je spôsob, akým diagram začne tvrdiť, že sa dokončila práca, ktorá nikdy nebežala.
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Exkluzívne zlúčenie | viac dnu, jeden von | Prepustí každý token rovno, ako príde. Nečaká, pretože sa aj tak vybrala len jedna vetva. |
| Paralelné zlúčenie (AND-join) | viac dnu, jeden von | Počká na každú prichádzajúcu cestu a potom vydá jeden token. Toto je to, čo blokuje, a blokovať by malo zámerne. Je to konštrukcia, ktorú v BPMN zvyčajne myslíme slovom join. |
| Inkluzívne zlúčenie | viac dnu, jeden von | Čaká presne na tie vetvy, ktoré boli vyššie aktivované. Vyžaduje, aby engine uvažoval o celom procese, a je to konštrukcia, ktorá sa medzi nástrojmi správa najrôznejšie. |
| Zmiešaná gateway | viac dnu, viac von | Legálne. Nečitateľné. Rozdeľte jednou gateway a zlúčte druhou a diagram vám sám povie, čo robí. |
04Počítanie tokenov v diagrame vyššie#
Všetko z dvoch sekcií vyššie je jedna zručnosť: položte prst na štartovaciu udalosť a počítajte. Tu je proces poistnej udalosti z vrchu tejto stránky, prejdený krok po kroku, s počtom živých tokenov po každom z nich.
- Nastane „Claim received“. Jeden token. Sedí na toku do prvej gateway.
- Paralelné rozdelenie. Dva tokeny. Nevyhodnocujú sa žiadne podmienky a nič sa nevyberá - paralelné rozdelenie vydá vždy jeden token na každý odchádzajúci tok.
- Kontrola poistky aj kontrola podvodu bežia. Stále dva. Sú naozaj súbežné: diagram netvrdí nič o tom, ktorá skončí skôr, a ani to nepotrebuje.
- Paralelný join. Späť na jeden. Token, ktorý príde prvý, tam počká. Keď príde druhý, join oba spotrebuje a vydá jeden.
- „Covered?“ Jeden token, jedna vetva. Exkluzívna gateway počet nikdy nemení - mení len to, na ktorom toku token je.
- Vyplatiť alebo zamietnuť, potom koniec. Nula. Inštancia procesu je hotová, keď posledný token spotrebuje koncová udalosť.
Teraz to zámerne pokazte, lebo obe klasické chyby vidno už zo samotného počítania.
Urobte prvú gateway exkluzívnou a join nechajte paralelný. Rozdelenie teraz vydá jeden token, takže zbehne jedna kontrola. Paralelný join stále čaká na dva. Na druhom toku nikdy nič nepríde a poistná udalosť ostane v joine po celú životnosť systému. To je ten deadlock - a stačila jedna zmenená značka.
Nechajte rozdelenie paralelné a urobte join exkluzívnym. Prídu dva tokeny a exkluzívne zlúčenie nečaká na nič, takže oba prejdú rovno. „Covered?“ sa vyhodnotí dvakrát, úloha vyplatenia zbehne dvakrát a zákazník dostane zaplatené dvakrát. Toto je horšie než deadlock, lebo deadlock sa ohlási sám a dvojitá platba nie.
05Event-based gateway#
Toto je konštrukcia, vďaka ktorej sa „čakáme na dokumenty, ale nie donekonečna“ dá vyjadriť jedným obrázkom. Každý iný spôsob, ako to nakresliť - hraničná časovacia udalosť na čakacej úlohe, cyklus s podmienkou - buď zdvojuje logiku vypršania, alebo ju skrýva.
Idú s ňou dve pravidlá. Cieľmi event-based gateway musia byť zachytávajúce medziľahlé udalosti alebo receive úlohy, nikdy obyčajné úlohy: gateway je preteky medzi vecami, ktoré prichádzajú, a úloha neprichádza. A vetvy musia byť v čase naozaj navzájom výlučné, čo sú automaticky - prvá, ktorá nastane, ostatné zahodí.
06Podmienky a predvolené toky#
Podmienky žijú na odchádzajúcich sekvenčných tokoch, nie na gateway. Píšte ich ako krátke výrazy, ktoré vie čitateľ vyhodnotiť - amount > 10000, policy status = active - a dajte ich na čiaru bližšie ku gateway než k cieľu.
Práve jedna vetva vetviacej gateway by mala byť predvolený tok, kreslený s malou čiarkou cez chvost. Vyberie sa vtedy, keď neplatí žiadna iná podmienka, a je to to, čo zabráni, aby proces uviazol na gateway, kde sa dáta ukázali byť niečím, čo nikto nepredvídal.
Siahnite po ňom, keď
- Exkluzívnu, keď platí presne jedna cesta - čo je väčšinou
- Paralelnú, keď musia zbehnúť obe cesty a ani jedna nezávisí od druhej
- Event-based, keď proces čaká a rozhoduje niečo zvonku
- Predvolený tok na každej vetviacej exkluzívnej či inkluzívnej gateway
Siahnite po niečom inom, keď
- Inkluzívnu tam, kde stačí exkluzívna - stojí to zrozumiteľnosť a pridáva riziko deadlocku
- Komplexnú, takmer vždy - radšej prekreslite
- Gateway hneď za gateway bez ničoho medzi nimi
- Podmienky písané ako odseky prózy na popise toku
07Keď odpoveďou vôbec nie je gateway#
Modelár, ktorý sa naučil gateway, po nich siaha pri každom vetvení na svete a výsledkom je diagram, ktorý je zo 40 % kosoštvorec. Štyri ďalšie konštrukcie BPMN vyjadria rozhodnutie v nasledujúcich prípadoch lepšie a ich znalosť je väčšina rozdielu medzi procesným modelom, ktorý sa zmestí na stranu, a tým, ktorý nie.
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Podmienený sekvenčný tok | malý kosoštvorec na chvoste toku | Podmienka napísaná priamo na toku odchádzajúcom z úlohy, bez gateway. Správne pre jeden nepovinný krok - „pošli potvrdenie, ak si ho zákazník vypýtal“ - a nesprávne v okamihu, keď sú také dva, lebo niet kam dať predvolený tok a nič nezabráni, aby sa spustili oba. |
| Hraničná udalosť | krúžok na okraji úlohy | Pre niečo, čo preruší už bežiacu prácu: vypršanie času, chyba, zrušenie. Gateway vie položiť otázku len medzi dvomi úlohami, takže modelovať „ak toto v polovici zlyhá“ pomocou gateway znamená vymyslieť cyklus, ktorý neexistuje. |
| Event sub-process | bodkovaný zaoblený obdĺžnik | Pre niečo, čo môže nastať kedykoľvek počas procesu, nie na jednom známom mieste - zákazník zruší objednávku, regulátor si vypýta spis. Nakresliť to pomocou gateway znamená gateway za každou jednou úlohou. |
| Business rule task | úloha so značkou tabuľky | Keď je rozhodnutím štyridsať pravidiel namiesto jednej otázky. Jedna úloha ukazujúca na rozhodovaciu tabuľku hovorí „toto rozhodujú cenové pravidlá“ a necháva pravidlá tam, kde sa dajú zmeniť bez prekresľovania procesu. |
Štyri spôsoby, ako vyjadriť rozhodnutie, ktoré nie sú kosoštvorec. Každý z nich drží mimo diagramu niečo, čo by naň gateway pritiahla.
Test je, či je vetvenie súčasťou procesu, alebo súčasťou rozhodnutia. Poistná udalosť, ktorá ide na rýchlu linku alebo na manuálnu kontrolu, je proces: obe cesty vyzerajú inak a čitateľ potrebuje vidieť obe. To, do ktorého z deviatich rizikových pásiem udalosť patrí, je rozhodnutie: cesty sú potom identické a dať to na diagram stojí osem kosoštvorcov za jednu vetu. Pozrite si ako nakresliť BPMN diagram, kde tá hranica v praxi zvyčajne leží.
08Časté chyby#
- Paralelné rozdelenie, exkluzívne zlúčenie. Rozdelenie vyrobilo dva tokeny; exkluzívne zlúčenie oba prepustí a všetko za ním sa stane dvakrát.
- Inkluzívne rozdelenie, paralelné zlúčenie. Deadlock z vyššie uvedeného. Zlaďte svoje gateway.
- Práca vnútri gateway. Kosoštvorec s popisom „Overiť a smerovať“ je úloha a gateway v jednom obryse. Rozdeľte ich.
- Neoznačené vetvy. Dve čiary odchádzajúce z kosoštvorca bez popisu nútia čitateľa hádať a polovica z nich uhádne zle.
- Žiadny predvolený tok. Príde ten jeden vstup, na ktorý nikto nemyslel, a token nemá kam ísť.
- Obyčajné úlohy za event-based gateway. Nie je to legálne a zvyčajne to znamená, že sa myslela exkluzívna gateway.
Gateway a udalosti sú dve polovice riadenia toku v BPMN: gateway rozhodujú, udalosti čakajú a prerušujú. Proces modelovaný len pomocou gateway má sklon rásť do dlhých reťazcov dopytovania; ten, ktorý použije hraničné udalosti tam, kde má, ostáva oveľa bližšie k tomu, čo sa naozaj deje.
Po jednom riadku na každé
- 01Gateway mení počet existujúcich tokenov a sama nerobí žiadnu prácu.
- 02Exkluzívna vyberie jednu cestu, paralelná všetky, inkluzívna tie pravdivé.
- 03Event-based gateway nerozhoduje - preteká zachytávajúce udalosti.
- 04Ku každému rozdeleniu priraďte zlúčenie rovnakého druhu.
- 05Inkluzívne rozdelenie do paralelného zlúčenia je klasický deadlock.
- 06Pomenujte gateway ako otázku a každú vetvu označte odpoveďou.
09Časté otázky#
Aký je rozdiel medzi výlučnou a inkluzívnou bránou?
Výlučná brána, označená krížikom, vezme práve jednu odchádzajúcu cestu. Inkluzívna brána, označená krúžkom, vyhodnotí každú odchádzajúcu podmienku a vezme všetky, ktoré platia - môže to byť jedna, niekoľko alebo všetky.
Čo robí paralelná brána?
Paralelná brána, označená plusom, vezme každú odchádzajúcu cestu bez podmienok, pretože žiadne nemá na vyhodnotenie. Použitá ako zlúčenie čaká na token na každej prichádzajúcej ceste, kým pokračuje - takto sa modeluje, že všetky vetvy skončili.
Čo je brána riadená udalosťami?
Brána, ktorej každá odchádzajúca cesta začína medziľahlou zachytávajúcou udalosťou, pričom o zvolenej ceste rozhodne prvá udalosť, ktorá nastane. Takto sa modelujú preteky, napríklad odpoveď alebo vypršanie času, podľa toho, čo príde skôr.
Prečo inkluzívna brána uviazne?
Pretože inkluzívne zlúčenie čaká presne na tie vetvy, ktoré aktivovalo jeho zodpovedajúce delenie, a vie, ktoré to boli, len ak sú tie dve správne spárované. Rozdeľte inkluzívnou bránou a zlúčte paralelnou a zlúčenie bude navždy čakať na vetvu, ktorá nikdy nebežala.
Robia brány v BPMN nejakú prácu?
Nie. Brána iba smeruje tokeny: nikdy nevykoná činnosť a nikdy nezaberie čas. Čokoľvek sa zdá, že brána rozhoduje, vypočítala činnosť pred ňou a podmienky na odchádzajúcich tokoch ten výsledok iba čítajú.
V tejto sérii
Súvisiace články
Základy
Prehľad notácie
Diagramy správania
Diagramy správania
Prax modelovania
Prax modelovania