Odborný článek - BPEL – jazyk pro automatizaci procesů

Určitě jste již mnohokrát slyšeli o automatizaci procesů, procesních aplikacích nebo vizuálním programování procesů. V čem se ale píší procesní aplikace a jak se mohou procesy automatizovat?

Co je to BPEL?

Odborný článekJazyk BPEL (Business Process Execution Language) disponuje jasně definovanou sadou aktivit, které lze využít při modelování obchodních procesů určených k automatizovanému strojovému vykonávání. Je vlastně velmi podobný tradičním programovacím jazykům, obsahuje aktivity větvení, smyčky, přiřazení proměnné, volání služby, vyvolání výjimky apod. Tyto aktivity tak umožňují konstrukci libovolného procesu.
BPEL je dnes ustálenou definicí, kterou vzala pod svá křídla standardizační organizace OASIS a vede BPEL jako standard pro popis interakcí mezi (webovými) službami. Proto také jeho plný název zní WS-BPEL (Web Services Business Process Execution Language). Říká, že vztahy mezi službami lze popsat pomocí tzv. obchodního procesu (business process). Obchodní proces je mapa aktivit, které reprezentují různé operace, z nichž nejdůležitější je právě volání různých služeb. Proces v pojetí standardu WS-BPEL popisuje posloupnost a podmínky volání služeb v servisně orientované architektuře (SOA) známé i jako tzv. orchestrace služeb. Přes tuto složitou definici se jazyk BPEL výborně hodí k jednoznačnému popisu firemních procesů, podle kterého lze procesy následně strojově vykonávat. Historicky vzniklo hned několik jazyků sloužících k popisu obchodních procesů. WSFL od IBM, XLANG od Microsoftu, BPML a BPMS podporované společnostmi JBoss a Intalio Inc. Nakonec byl za spolupráce několika velkých společností definován jazyk BPEL4WS, který byl podán organizaci OASIS ke standardizaci. Tak vznikl v roce 2004 standard WS-BPEL (název lépe zapadá do rodiny WS-* standardů), který je dnes již ve verzi 2.0.


Hlavní vlastnosti a cíle jazyka BPEL

  • Definice obchodních procesů, které volají externí služby pomocí webových služeb a zároveň vystavují svá rozhraní jako (webovou) službu. Samotný obchodní proces se tak stává službou. Tak lze skládat procesy do větších celků.
  • Definice obchodního procesu pomocí jazyka založeného na standardu XML. BPEL nedefinuje grafické znázornění procesů, ale standardizuje jeho XML definici.
  • Poskytuje funkce pro manipulaci s daty, umožňuje definovat procesní proměnné a pomocí těchto dat ovlivňovat běh procesu.
  • Podpora řízení životního cyklu obchodního procesu. Proces lze spustit, předčasně ukončit, pozastavit, znovu spustit, apod.
  • Podpora long-running transakčního modelu, který umožňuje definici hranic transakce (scope) a kompenzačních akcí při neúspěšném dokončení transakce.
  • Použití webových služeb pro dekompozici a skládání obchodních procesů.
  • Postaven na standardech webových služeb.
  • Podpora řízení obchodních procesů událostmi (podpora asynchronního modelu volání).

BPEL4PEOPLE, WS-HumanTask

Odborný článekVelmi záhy se přišlo na to, že součástí skutečných obchodních procesů jsou také lidé neboli lidské aktivity. Tedy, že v určitém kroku procesu je třeba vytvořit úkol pro uživatele a po jeho splnění může proces pokračovat dále ve svém předepsaném běhu.
Proto vznikly dvě rozšiřující specifikace - BPEL4PEOPLE a WS-HumanTask, které se snaží vyplnit mezery BPELu v oblasti zapojení lidí do procesů.

Jaká jsou tedy hlavní rozšíření definovaná BPEL4People a WS-HumanTask?

  • In-line human task - nová aktivita BPEL pro lidskou interakci v procesu
  • Stand-alone human task, jako aktivita mimo kontext BPEL procesu (jde vlastně o samostatnou službu),
  • Sjednocení životní cyklu, vlastností a chování human task aktivity,
  • API pro manipulaci s human task aktivitou a s úkoly, které tato aktivita vytváří,
  • Definice task management system - systém pro správu a práci s úkoly,
  • Podpora pro přiřazování uživatelů human aktivitám pomocí rolí,
  • Podpora scénářů jako jsou „systém 4 očí", nominace, eskalace, notifikace apod.

Jak BPEL4People tak WS-HumanTask specifikace se již hojně využívají v řešeních většiny výrobců software pro procesní automatizaci a jsou nyní ve fázi standardizace organizace OASIS. Pravděpodobně se stanou součástí nové verze jazyka BPEL 3.0.

BPEL a BPMN

Standard WS-BPEL popisuje význam a vlastnosti jednotlivých aktivit, jejich XML definici, ale nespecifikuje jejich grafický zápis.
Někteří dodavatelé proto vytvořili svoji vlastní grafickou notaci jazyka BPEL, která se s každou verzí zdokonaluje tak, aby byly procesy co nejpřehlednější.
Naproti tomu BPMN (Business Process Modeling Notation) je grafická notace pro modelování procesů názornou a přehlednou formou.

Cílem BPMN je poskytnout firmám možnost zmapovat procesy a pohlížet na ně v grafické podobě. Přitom podoba a smysl všech symbolů je standardizován,každý přesně rozumí tomu, co daný model znamená a jak proces funguje. To je obrovský přínos, pokud potřebujete procesy komunikovat napříč firmou, mezi odděleními, mezi obchodními a IT útvary.


Rozdíly mezi BPEL a BPMN jsou tedy zřejmé:
  • BPMN je popisná notace pro business modely procesů a je ustálená na úrovni grafických symbolů, jejich významů a logických propojení.
  • BPEL je standard pro provádění a popis procesů a hovoří spíše technickou řečí. Je standardizován na úrovni XML definice procesu.

Automatický převod BPMN procesního modelu do jazyka BPEL?

Odborný článekJakmile začneme uvažovat, že některé firemní procesy popsané v primárním obchodním modelu firmy, chceme automatizovat (a za tímto účelem převést je do jazyka BPEL), narážíme obvykle na větší či menší obtíže.
A to hlavně v případech, kdy chceme převod provést pomocí exportu do BPEL z modelovacího nástroje - tedy automaticky. Běžně se stává, že může existovat více způsobů jak danou konstrukci v BPMN převést do BPEL a v některých případech je nemožné po převodu zachovat lidskou čitelnost výsledného BPEL procesu, protože mezi konstrukcemi BPMN vs BPEL někdy jednoduché mapování ani neexistuje.
Pokusy o automatické generování BPEL procesů z BPMN notace tedy prozatím nepřinesly očekávaný výsledek. Ne že by byly nemožné, ale přínosy takové automatické transformace nebyly prozatím dostatečné. Ručními opravami a laděním malé části strojového BPEL kódu lze běžně strávit mnohem víc práce, než bylo plánováno na manuální přípravu automatizovaného procesu. A to nehovoříme o následných úpravách a tvorbě inovovaných verzí procesu. Zkrátka, zkušený BPEL vývojář zatím provede manuální převod do BPEL notace většinou rychleji a hlavně spolehlivěji. I tak je BPEL de-facto standardem na poli automatizace firemních procesů, neustále se vyvíjí a rozšiřuje o další užitečné vlastnosti a má před sebou jistě ještě dlouhou budoucnost.


Menu v záhlaví