Blog
11. júna 2021 EEA s.r.o.

CAMUNDA – BPMN Modeler, Engine a ešte viac

Ak má zákazník potrebu automatizovať a zefektívniť firemné procesy a nemá nasadený rozsiahlejší informačný systém, ktorý by ich zastrešil, je nasadenie BPMN engine optimálne riešenie.

V predchádzajúcom blogu Ako vedia IT-čkári pomôcť alebo stručný sprievodca procesnou analýzou sme použili BPMN štandard na zdokumentovanie aktuálneho stavu procesu a zároveň na návrh nového procesu, v ktorom sme vyriešili problémy a požiadavky zákazníka.

Jednou z výhod použitia BPMN je priamy prechod z analýzy cez návrh rovno k implementácii riešenia. Toto umožňujú takzvané BPMN engines. BPMN engine je softwarový komponent, ktorý vie interpretovať nakreslený BPMN model. Poskytuje nástroje na zapojenie systémov, ktoré majú v kompetencii riešenie technických úloh procesu, ako aj podporu na zadanie a spracovanie používateľských úloh používateľmi definovaných rolí. Ak má zákazník potrebu automatizovať a zefektívniť firemné procesy a nemá nasadený rozsiahlejší informačný systém, ktorý by ich zastrešil, je nasadenie BPMN engine optimálne riešenie.

Na trhu je k dispozícii viacero implementácií BPMN postavených na rôznych technológiách a rôznej kvality. Viď napríklad porovnanie: https://www.itcentralstation.com/categories/business-process-management.
V minulosti sme používali jBPM, ale v posledných rokoch sme prešli na riešenie Camunda a sme z neho doslova nadšení.

Camunda je balík nástrojov nazývaných Camunda platforma, ktoré pokrývajú aktivity od procesnej analýzy (DESIGN) cez nasadenie modelovaných procesov ako súčasti informačných systémov (AUTOMATE) až po optimalizáciu ich výkonnosti (IMPROVE):

Camunda platforma je dostupná, ako to býva zvykom, v Community, ktorá je zadarmo a Enterprise verzii, za ktorú sa platí.
Jednotlivé nástroje som v predchádzajúcom obrázku označil farebne:

  1. Červené sú iba v Enterprise verzii
  2. Oranžové sú aj v Community verzii, ale s obmedzenou funkcionalitou
  3. Zelené sú aj v Community verzii plne funkčné

Výborné na tom je, že Community verzia je tak široká, funkčná a zdokumentovaná, že sme s ňou dokázali úspešne zrealizovať viaceré projekty.

Tento blog je o použití Community verzie Camunda platformy. Predstavím vám:
  1. Camunda Modeler – nástroj na kreslenie procesov
  2. Camunda Engine – komponent na nasadenie nakreslených procesov. Na ten sa pozrieme detailnejšie:
    1. Odporúčaný technologický stack – s čím ho môžeme namiešať
    2. Databázové transakcie – ako to má tam dole
    3. Možnosti nasadenia – aké rôzne situácie ustojí
    4. Hardware požiadavky – koľko železa zožerie
  3. Camunda Cockpit – nástroj na monitoring nasadených procesov

Tasklist predstavovať nebudem, keďže tento je príliš strohý pre komerčné použitie a implementujeme si vlastný krajší tasklist použitím Angular-u.

Camunda Modeler

Camunda Modeler je veľmi príjemný plne funkčný BPMN editor. Poskytuje všetky prvky štandardu BPMN 2.0:

Jednotlivé časti Camunda Modeler-u:
  • – Vľavo hore je panel s BPMN hlavnými elementami (udalosti, brány, úlohy, podprocesy, dátové objekty, pool-y,…)
  • – Vpravo od vybraného elementu sa zobrazia ikony cez ktoré môžeme:
    • Pokračovať výberom nasledujúceho elementu – horné 2 riadky ikon  – viď zobrazené kontextové menu – C
    • Upresniť typ nakresleného elementu – ikonka kľúča
    • Zrušiť element – ikona koša
  • D – V pravej časti je možné vyplniť parametre vybraného elementu

V Camunda Modeleri je možné editovať BPMN modely nakreslené aj v iných analytických nástrojoch, pokiaľ spĺňajú štandard BPMN 2.0.
Úspešne sme ho vyskúšali napríklad so široko používaným nástrojom Enterprise Architekt.
Okrem ukladania do BPMN súborov je možné nakreslené modely exportovať aj ako obrázky, čo je šikovná funkcionalita pri vytváraní dokumentácie.

Camunda Engine – odporúčaný technologický stack

Dodávateľom odporúčané komponenty spolupracujúce s BPMN engine (tzv. technologický stack) dostatočné na väčšinu stredne náročných projektov:

Jednotlivé vrstvy architektúry:

Camunda Engine – databázové transakcie

Stav danej inštancie procesu perzistovaný v relačnej databáze je menený v databázových transakciách, ktoré sú ohraničené čakacími stavmi realizovaného procesu. Napríklad:

 

V tomto procese sa persistovaný stav procesu sa zmení, ak sú úspešne zrealizované operácie od ukončenej používateľskej úlohy (Provide shipping adress)
po časovač (wait until next business day). Ak v rámci týchto operácií nastane výnimka, beh procesu pokračuje spracovaním tejto výnimky, alebo zostane v chybovom stave = incident.

Čakacie stavy, ktoré oddeľujú transakcie procesu čakajú na:

  1. špecifickú správu (adresovaná tejto inštancii procesu)
    Modelované BPM elementami: Receive Task,  Message Event,  Event-based Gateway,
  2. špecifický signál (určený pre definovanú skupinu inštancií)
    Modelované BPM elementami:  Signal Events, Event-based Gateway, 
  3. splnenie používateľskej úlohy používateľom
    Modelované BPM elementom: User Task,
  4. uplynutie špecifikovaného času
    Modelované BPM elementom: Timer Event,
  5. vykonanie publikovanej úlohy
    Modelované BPM elementom:  External tasks.

Transakcie je možné riadiť aj parametrami BPMNelementov, ale to je mimo rozsah tohoto blogu.

Camunda Engine – možnosti nasadenia

Podľa veľkosti, architektúry a nárokov systému, do ktorého je Camunda Engine nasadený, sú podporované 3 možnosti nasadenia:

Camunda Engine – hardware požiadavky

Faktory, ktoré vymedzujú požiadavky Camunda Engine na hardware:

Odporúčaný hardware konfigurácie podľa požiadaviek:

Camunda Cockpit

Camunda Cockpit je administrátorské rozhranie realizované formou web klienta, prostredníctvom ktorého je možné monitorovať bežiace inštancie procesov a riešiť ich incidenty.
Po prihlásení do Camunda Cockpit sa zobrazí celkový prehľad stavu Camunda Engine:

Zobrazuje počty nasadených procesov, bežiacich inštancií, aktuálny počet incidentov, teda inštancií procesov, ktoré sa zasekli v chybovom stave a zadaných používateľských úloh.
Výberom možnosti Running Process Instances (označené červenou farbou) sa dostaneme do rozpisu nasadených procesov:

Význam stĺpcov tabuľky:

  1. State = Stav inštancií daného procesu. Možnosti:
    1. (error)  niektoré inštancie sú v chybovom stave
    2. (tick)  nie sú žiadne incidenty v inštanciách tohoto procesu
  2. Incidents = Počet inštancií daného procesu/podprocesu v chybovom stave = incident
  3. Running Instances = Počet všetkých inštancií daného procesu. Zarátané sú aj inštancie v chybovom stave.
  4. Name = Názov nasadeného procesu alebo podprocesu

Po kliknutí na názov (Name) vybraného procesu sa zobrazí model tohoto procesu:

Pri elementoch, ktoré sú definované ako čakacie (viď. kapitola Databázové transakcie), sa zobrazuje

  1. číslo v modrom krúžku = počet inštancií tohoto procesu, ktoré v danom elemente čakajú,
  2. číslo v červenom krúžku = počet inštancií tohoto procesu, ktoré sa v danom elemente dostali do chybového stavu = incidenty

Ak je daný element podproces, sú tieto čísla sumou jeho čakacích elementov.
Vieme sa do neho vnoriť a vidíme rozloženie jeho inštancií a incidentov v detaile:

V spodnej tabuľke je zoznam týchto inštancií. Po kliknutí na ID vybranej inštancie vieme prezerať aktuálne hodnoty procesných premenných, meniť ich hodnoty a takto riešiť incidenty.

Roman IT-čkár

 

Podobné projekty