Náhledový obrázek CAMUNDA

CAMUNDA – BPMN Modeler, Engine a ještě více

Pokud má zákazník potřebu automatizovat a zefektivnit firemní procesy a nemá nasazený rozsáhlejší informační systém, který by je zastřešil, je nasazení BPMN engine optimálním řešením.


Jednou z výhod použití BPMN je přímý přechod z analýzy přes návrh rovnou k implementaci řešení. To umožňují takzvané BPMN engines. BPMN engine je softwarová komponenta, která umí interpretovat nakreslený BPMN model. Poskytuje nástroje pro zapojení systémů, které mají v kompetenci řešení technických úloh procesu, stejně jako podporu pro zadávání a zpracování uživatelských úloh uživateli definovaných rolí. Pokud má zákazník potřebu automatizovat a zefektivnit firemní procesy a nemá nasazený rozsáhlejší informační systém, který by je zastřešil, je nasazení BPMN engine optimálním řešením.

Na trhu je k dispozici více implementací BPMN postavených na různých technologiích a různé kvality. Viz například srovnání: https://www.itcentralstation.com/categories/business-process-management.
V minulosti jsme používali jBPM, ale v posledních letech jsme přešli na řešení Camunda a jsme z něj doslova nadšení.

Camunda je balík nástrojů nazývaných Camunda platforma, které pokrývají aktivity od procesní analýzy (DESIGN), přes nasazení modelovaných procesů jako součásti informačních systémů (AUTOMATE), až po optimalizaci jejich výkonnosti (IMPROVE):


Náhledový obrázek – Návod


Camunda platforma je dostupná, jak to bývá zvykem, v Community verzi, která je zdarma, a Enterprise verzi, za kterou se platí.

Jednotlivé nástroje jsem v předchozím obrázku označil barevně:

  1. Červené jsou pouze v Enterprise verzi
  2. Oranžové jsou i v Community verzi, ale s omezenou funkcionalitou
  3. Zelené jsou i v Community verzi plně funkční

Výborné na tom je, že Community verze je natolik široká, funkční a zdokumentovaná, že jsme s ní dokázali úspěšně zrealizovat více projektů.

Tento blog je o použití Community verze Camunda platformy. Představím vám:

  1. Camunda Modeler – nástroj na kreslení procesů
  2. Camunda Engine – komponenta pro nasazení nakreslených procesů. Na ten se podíváme detailněji:
    1. Doporučený technologický stack – s čím ho můžeme namíchat
    2. Databázové transakce – jak to funguje uvnitř
    3. Možnosti nasazení – jaké různé situace zvládne
    4. Hardwarové požadavky – kolik železa spotřebuje
  3. Camunda Cockpit – nástroj pro monitoring nasazených procesů

Tasklist představovat nebudu, protože je příliš strohý pro komerční použití a implementujeme si vlastní hezčí tasklist pomocí Angularu.

Camunda Modeler

Camunda Modeler je velmi příjemný plně funkční BPMN editor. Poskytuje všechny prvky standardu BPMN 2.0:


Náhledový obrázek – Návod


Jednotlivé části Camunda Modeleru:

  • A – Vlevo nahoře je panel s hlavními BPMN elementy (události, brány, úlohy, podprocesy, datové objekty, pooly,…)
  • B – Vpravo od vybraného elementu se zobrazí ikony, pomocí kterých můžeme:
    • Pokračovat výběrem následujícího elementu – horní 2 řádky ikon – viz zobrazené kontextové menu – C
    • Upřesnit typ nakresleného elementu – ikona klíče
    • Smazat element – ikona koše
  • D – V pravé části je možné vyplnit parametry vybraného elementu

V Camunda Modeleru je možné editovat BPMN modely nakreslené i v jiných analytických nástrojích, pokud splňují standard BPMN 2.0.
Úspěšně jsme ho vyzkoušeli například se široce používaným nástrojem Enterprise Architect.
Kromě ukládání do BPMN souborů je možné nakreslené modely exportovat i jako obrázky, což je užitečná funkcionalita při tvorbě dokumentace.

Camunda Engine – doporučený technologický stack

Dodavatelem doporučené komponenty spolupracující s BPMN enginem (tzv. technologický stack) jsou dostatečné pro většinu středně náročných projektů:


Náhledový obrázek – Návod


Jednotlivé vrstvy architektury:


Náhledový obrázek – Návod

Camunda Engine – databázové transakce

Stav dané instance procesu perzistovaný v relační databázi je měněn v databázových transakcích, které jsou ohraničeny čekacími stavy realizovaného procesu. Například:


Náhledový obrázek – Návod


V tomto procesu se persistovaný stav procesu změní, pokud jsou úspěšně zrealizovány operace od ukončené uživatelské úlohy (Provide shipping address)

po časovač (wait until next business day). Pokud v rámci těchto operací nastane výjimka, běh procesu pokračuje zpracováním této výjimky, nebo zůstane v chybovém stavu = incident.

Čekací stavy, které oddělují transakce procesu, čekají na:

  1. specifickou zprávu (adresovanou této instanci procesu)
    Modelované BPMN elementy: Receive Task, Message Event, Event-based Gateway
  2. specifický signál (určený pro definovanou skupinu instancí)
    Modelované BPMN elementy: Signal Events, Event-based Gateway
  3. splnění uživatelské úlohy uživatelem
    Modelované BPMN elementy: User Task
  4. uplynutí specifického času
    Modelované BPMN elementy: Timer Event
  5. provedení publikované úlohy
    Modelované BPMN elementy: External Tasks

Transakce je možné řídit i parametry BPMN elementů, ale to je mimo rozsah tohoto blogu.

Camunda Engine – možnosti nasazení

Podle velikosti, architektury a nároků systému, do kterého je Camunda Engine nasazen, jsou podporovány 3 možnosti nasazení:


Náhledový obrázek – Návod


Camunda Engine – hardwarové požadavky

Faktory, které určují požadavky Camunda Engine na hardware:

Náhledový obrázek – Návod


Doporučený hardware konfigurace podle požadavků:


Náhledový obrázek – Návod


Camunda Cockpit

Camunda Cockpit je administrátorské rozhraní realizované formou webového klienta, prostřednictvím kterého je možné monitorovat běžící instance procesů a řešit jejich incidenty.
Po přihlášení do Camunda Cockpit se zobrazí celkový přehled stavu Camunda Engine:


Náhledový obrázek – Návod


Zobrazuje počty nasazených procesů, běžících instancí, aktuální počet incidentů, tedy instancí procesů, které uvízly v chybovém stavu a zadaných uživatelských úloh.

Výběrem možnosti Running Process Instances (označeno červeně) se dostaneme do rozpisu nasazených procesů:


Náhledový obrázek – Návod


Význam sloupců tabulky:

  1. State = Stav instancí daného procesu. Možnosti:
    1. (error) některé instance jsou v chybovém stavu
    2. (tick) nejsou žádné incidenty v instancích tohoto procesu
  2. Incidents = Počet instancí daného procesu/podprocesu v chybovém stavu = incident
  3. Running Instances = Počet všech instancí daného procesu. Započítány jsou i instance v chybovém stavu.
  4. Name = Název nasazeného procesu nebo podprocesu


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

Náhledový obrázek – Návod


    U elementů, které jsou definovány jako čekací (viz kapitola Databázové transakce), se zobrazuje

    1. číslo v modrém kroužku = počet instancí tohoto procesu, které v daném elementu čekají,
    2. číslo v červeném kroužku = počet instancí tohoto procesu, které se v daném elementu dostaly do chybového stavu = incidenty

    Pokud je daný element podproces, jsou tato čísla součtem jeho čekacích elementů.
    Můžeme se do něj ponořit a vidíme rozložení jeho instancí a incidentů v detailu:



    Ve spodní tabulce je seznam těchto instancí. Po kliknutí na ID vybrané instance můžeme prohlížet aktuální hodnoty procesních proměnných, měnit jejich hodnoty a tímto způsobem řešit incidenty.

Jsme součástí BIQ Group