Pro koho je tento seriál určen? V první řadě pro všechny vývojáře informačních systémů nebo Java Enterprise Edition (EE) vývojáře. Minimem je znalost Javy Standard Edition (SE). Doporučenou znalostí je však znalost Javy EE ve verzi 6. Zkušenosti s verzovacím systémem Git, nástrojem Maven a podnikovými procesy jsou výhodou. Seriál si neklade za cíl podrobně zachytit všechny detaily, ale popsat vybrané případy použití.
V prvním díle se zaměříme na důvody, které vedly ke vzniku elektronických modelů podnikových procesů. Dále bude velmi stručně popsán v současné době nejrozšířenější standard Business Process Model and Notation (BPMN) 2 pro jejich modelování. Včetně toho, jak může vypadat implementace tohoto standardu. V dalších dílech budou následovat detailnější informace o Red Hat JBoss BPM Suite a také popis ukázkové webové aplikace využívající projektu jBPM jako workflow engine. Seriál si neklade za cíl probrat dopodrobna všechny BPMN2 konstrukce, ale v ukázkách budou předvedeny jen některé, ty častěji používané.
K čemu jsou podnikové procesy dobré?
Podnikové procesy jsou jedním z posledních trendů v oblasti vývoje informačních systémů. Abych vám nejprve co nejlépe přiblížil, proč se používají, zkuste si představit následující situaci. Fiktivní firma NakupujteÜberCoolVěciLevně.cz má informační systém pro evidenci svého zboží pro zákazníky. Její činnost je obchodnická, vývoj tohoto systému si zaplatila u externí firmy, která jí zajišťuje podporu. Zjistili, že současný systém dodávání zboží je neefektivní a bude pro ně výhodnější zboží nerozvážet sami, ale najmout si pro tuto činnost externího dopravce.
Současný systém však byl naprogramován pro jiné účely. Musí tedy nyní změnit desítky různých formulářů, které v systému existují a které používají zaměstnanci. Dodavatel jejich systému je schopen tyto změny nasadit až za několik měsíců a bude chtít za předělávky hodně peněz. Firma přesto chce změny provést, zároveň ale začíná přemýšlet, jak příště podobné situace lépe zvládnout.
Výhody
Zpátky k podnikovým procesům. Existuje více definic, např. podle D. Hollingsworta: „Podnikový proces je sada jedné nebo více propojených procedur nebo činností, jež společně uskutečňují cíle nebo naplňují politiku firmy. Obvykle se tak děje v kontextu organizační struktury definující funkční úlohy a vztahy.“ Model je pak zjednodušením daného procesu, který se zaměřuje jen na vybrané vlastnosti. Cílem modelů podnikových procesů je firemní postupy popsat a to například diagramem nebo textovou reprezentací. Převedením modelů do elektronické formy lze dosáhnout automatizace řízení a zvýšení efektivity organizace, která takové modely nasadí. Mezi jejich hlavní výhody patří:
viditelnost | organizaci je umožněno lépe vidět, jak vnitřně funguje, a následně tak například odhalit místa, kde se nestíhají vyřizovat požadavky |
flexibilita | manažeři a obchodní analytici mohou sami upravovat veškerá firemní aktiva včetně procesů, pravidel nebo firemní politiky; mohou tak rychle a efektivně reagovat na rychle se měnící trh |
konzistence | manuální zásah do procesů a rozhodování může mít za následek neblahé následky a zvýšené náklady, podnikové procesy zajistí konzistentní chování systému i v kritických situacích |
Samozřejmě vždy záleží na konkrétním řešeném problému. Například pro jednoduché aplikace nemusí být jejich nasazení potřebné.
Pro tyto modely existují standardy. V současné době je nejrozšířenějším standardem již zmíněný BPMN ve verzi 2. Existuje více komerčních i open source implementací tohoto standardu.

Ukázkový podnikový process v notaci BPMN2. Process začíná vždy jednou startovní událostí (start event) a končí alespoň jednou koncovou událostí (end event). Proces na obrázku také obsahuje uživatelské úlohy pro interakci s člověkem (human tasks) a úlohu zasílající email. Orientované hrany grafu určují směr toku v procesu. Pro dělení (a případné spojení) toku slouží brány (gateways).
Řešení
Nyní si ukážeme, jak může taková implementace vypadat a čeho lze s její pomocí dosáhnout. Pro ukázku použijeme open source produkt Red Hat JBoss BPM Suite 6, který lze po registraci stáhnout zdarma. Co všechno nabízí?
Asset Repository | repozitář pro aktiva (procesy, pravidla, …) založený na gitu |
BPMN2 Process Designer | webový nástroj pro návrh BPMN2 procesů |
Data Modeler | umožňuje definici datového modelu jako Java tříd |
Form Modeler | pro vytváření uživatelských formulářů (freemarker template) |
Artifact Repository | úložiště hotových balíků pro samotný engine založené na Mavenu |
Execution Server | běhové prostředí pro procesy |
Business Activity Monitoring (BAM) | nástroj pro vizualizaci statistik |
Business Central
Na obrázku 3 vidíme Business Central, která se skládá z již výše uvedeného výčtu komponent. Menu v horní liště odpovídá jednotlivým fázím životního cyklu podnikového procesu. Ve fázi Authoring je možné spravovat organizační jednotky, ve kterých lze vytvářet a klonovat git repozitáře. V těchto repozitářích lze vytvářet nové projekty, které mají balíčky a samotná tzv. aktiva, která zahrnují procesy, pravidla, datové modely, formuláře a další. Projekty se pak sestavují a distribuují jako běžné .jar soubory. Pro tuto distribuci .jar souborů se používá Maven repozitář. Ve fázi Deploy pak lze otestovaný projekt nasadit pro běhové prostředí Business Central. Existuje několik strategií a možností, jak projekty nasadit, tyto možnosti však nyní nebudeme do detailu rozebírat, dostaneme se k tomu později.
Process Management fáze je ta, kde je možné procesy spustit, typicky je jejich spuštění spojeno s vyplněním vstupního formuláře. Lze zde také sledovat stav běžících i dokončených procesních instancí, včetně jejich vnitřního stavu a proměnných. Procesy při svém běhu často vyžadují interakci s lidmi, k tomu slouží položka Tasks. Uživateli je pomocí jednotně vypadajícího formuláře předána nějaká vstupní informace a chce se po něm vyplnit jeho vstup, aby proces mohl pokračovat dál. Část Dashboards obsahuje široce konfigurovatelné grafy a tabulky a poskytuje tak manažerům cenné statistiky typu počet spuštěných procesních instancí, počty dokončených uživatelských úloh a mnoho dalších. Statistiky si lze libovolně přizpůsobit.
Aplikace počítá s různými rolemi uživatelů, u každé se předpokládají jiné vstupní znalosti:
administrátor | může spravovat všechno (tedy repozitáře, projekty, správu aktiv, management procesů a monitoring) |
vývojář | totéž co administrátor kromě správy repozitářů |
analytik | totéž co vývojář kromě správy projektů |
aktér (business user) | může jen spouštět procesy a pracovat na úkolech |
manažer | může pouze sledovat statistiky a tzv. klíčové ukazatele výkonnosti (key performance indicators – KPI) |
Cílem je tedy minimalizovat nutnost zapojení technických odborníků, nýbrž je kladen důraz na to, aby většinu operací zvládli udělat netechničtí experti zaměření pouze na svoji oblast (například finanční analytici, manažeři, lékaři, úředníci, atd.). Business Central jako webovou aplikaci běžící v Java EE kontejneru lze tedy použít pro kompletní životní cyklus nasazení podnikových procesů a to od jejich návrhu, balíčkování, provoz až po monitorování a analýzu. Samotný firemní informační systém tak může být výrazně zjednodušen a jeho logiku lze delegovat do Business Central, se kterou může komunikovat pomocí REST (REpresentational State Transfer) a JMS (Java Message Service) rozhraní. Tato rozhraní pak je možné i zapojit do sběrnice pro služby a využít tak výhod architektury orientované na služby (service oriented architecture – SOA). Business central lze také clusterovat pro zajištění vysoké úrovně dostupnosti a škálovatelnosti.

BPMN2 Modeler. Procesy lze navrhovat také v Jboss Developer Studiu nebo prostředí Eclipse, není nutné používat Business Central.
Další způsoby použití
Procesy však lze vyvíjet i jinak než v dodané webové aplikaci Business Central, například pro Eclipse existuje zásuvný modul – BPMN2 Modeler a v něm lze taktéž navrhovat BPMN2 procesy. Samotný engine pro podnikové procesy pak lze zabudovat i do uživatelské Java aplikace a používat jej tak pouze jako workflow knihovnu. Je tedy možné použít vlastní vzhled pro formuláře a využít jen podmnožinu nabízených vlastností a funkčnosti. Vývojář může ve své aplikaci využít nejen poskytnuté Java API, nýbrž může také využít díky dostupnosti zdrojových kodů jednotlivé komponenty a služby, ze kterých je sestavena samotná Business Central. Jednotlivé komponenty jsou open source a mají své vlastní repozitáře na Githubu.
V dalším díle se již dostaneme k ukázkám zdrojových kódů.
- xkcd: goto
xkcd.com/292/ - Red Hat JBoss BPM Suite
www.jboss.org/products/bpmsuite - BPMN 2.0
www.omg.org/spec/BPMN/2.0/