Náhľadový obrázok CAMUNDA

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álnym riešením.


Jednou z výhod použitia BPMN je priamy prechod z analýzy cez návrh priamo k implementácii riešenia. To umožňujú takzvané BPMN enginy. BPMN engine je softvérová komponenta, ktorá vie interpretovať nakreslený BPMN model. Poskytuje nástroje pre zapojenie systémov, ktoré majú v kompetencii riešenie technických úloh procesu, rovnako ako podporu pre zadávanie a spracovanie užívateľských úloh uží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álnym riešením.

Na trhu je k dispozícii viac implementácií BPMN postavených na rôznych technológiách a rôznej kvality. Pozri 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účasť informačných systémov (AUTOMATE), až po optimalizáciu ich výkonnosti (IMPROVE):


Náhľadový obrázok – Návod


Camunda platforma je dostupná, ako je zvykom, v Community verzii, 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ú len 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 natoľko široká, funkčná a zdokumentovaná, že sme s ňou dokázali úspešne zrealizovať viacero projektov.

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 – komponenta pre nasadenie nakreslených procesov. Na tú sa pozrieme detailnejšie:
    1. Doporučený technologický stack – s čím ho môžeme namiešať
    2. Databázové transakcie – ako to funguje vnútri
    3. Možnosti nasadenia – aké rôzne situácie zvládne
    4. Hardwarové požiadavky – koľko železa spotrebuje
  3. Camunda Cockpit – nástroj pre monitorovanie nasadených procesov

Tasklist nepredstavím, pretože je príliš strohý pre komerčné použitie a implementujeme si vlastný peknejší tasklist pomocou Angularu.

Camunda Modeler

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


Náhľadový obrázok – Návod


Jednotlivé časti Camunda Modeleru:

  • A – Vľavo hore je panel s hlavnými BPMN elementmi (udalosti, brány, úlohy, podprocesy, dátové objekty, pooly,…)
  • B – Vpravo od vybraného elementu sa zobrazia ikony, pomocou ktorých môžeme:
    • Pokračovať výberom nasledujúceho elementu – horné 2 riadky ikon – viď zobrazené kontextové menu – C
    • Upresniť typ nakresleného elementu – ikona kľúča
    • Zmazať 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, ak spĺňajú štandard BPMN 2.0.
Úspešne sme ho vyskúšali napríklad so široko používaným nástrojom Enterprise Architect.
Okrem ukladania do BPMN súborov je možné nakreslené modely exportovať aj ako obrázky, čo je užitočná funkcionalita pri tvorbe dokumentácie.

Camunda Engine – odporúčaný technologický stack

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


Náhľadový obrázok – Návod


Jednotlivé vrstvy architektúry:


Náhľadový obrázok – Návod

Camunda Engine – databázové transakcie

Stav danej inštancie procesu perzistentovaný 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:


Náhľadový obrázok – Návod


V tomto procese sa perzistentovaný stav procesu zmení, ak sú úspešne zrealizované operácie od ukončenej užívateľskej úlohy (Provide shipping address)

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é BPMN elementy: Receive Task, Message Event, Event-based Gateway
  2. špecifický signál (určený pre definovanú skupinu inštancií)
    Modelované BPMN elementy: Signal Events, Event-based Gateway
  3. splnenie užívateľskej úlohy užívateľom
    Modelované BPMN elementy: User Task
  4. uplynutie špecifického času
    Modelované BPMN elementy: Timer Event
  5. vykonanie publikovanej úlohy
    Modelované BPMN elementy: External Tasks

Transakcie je možné riadiť aj parametrami BPMN elementov, ale to je mimo rozsah tohto 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:


Náhľadový obrázok – Návod


Camunda Engine – hardvérové požiadavky

Faktory, ktoré určujú požiadavky Camunda Engine na hardware:

Náhľadový obrázok – Návod


Doporučená hardvérová konfigurácia podľa požiadavkov:


Náhľadový obrázok – Návod


Camunda Cockpit

Camunda Cockpit je administrátorské rozhranie realizované vo forme webového 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:


Náhľadový obrázok – Návod


Zobrazuje počty nasadených procesov, bežiacich inštancií, aktuálny počet incidentov, teda inštancií procesov, ktoré uviazli v chybovom stave a zadaných užívateľských úloh.

Výberom možnosti Running Process Instances (označené červeno) sa dostaneme do rozpisu nasadených procesov:


Náhľadový obrázok – Návod


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 tohto 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. Započí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 tohto procesu:

Náhľadový obrázok – Návod


    U elementov, ktoré sú definované ako čakacie (pozri kapitolu Databázové transakce), sa zobrazuje

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

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



    V dolnej tabuľke je zoznam týchto inštancií. Po kliknutí na ID vybranej inštancie môžeme prezerať aktuálne hodnoty procesných premenných, meniť ich hodnoty a týmto spôsobom riešiť incidenty.

Sme súčasťou BIQ Group