2. část: Nástroje a vzorový proces

Petr Vašíček, IBA CZ

V tomto díle se podíváme na konkrétní nástroje, které budeme v průběhu seriálu používat, a dozvíme se, jakým způsobem je lze získat. Dále si představíme jednoduchý vzorový proces, se kterým budeme v následujících dílech pracovat. Popíšeme si jeho průběh, účastníky (aktory), kteří v něm vystupují, a pro lepší představu o systému jako celku též zmíníme základní informace o backend a frontend části aplikace.

Použité nástroje

Jako první bude v seriálu představena platforma složená z nástrojů vyvinutých společností Sun Microsystems - OpenESB, NetBeans a aplikační server GlassFish:

  • OpenESB – podniková sběrnice služeb, jejíž součásti je i běhové prostředí pro BPEL.
  • NetBeans – vývojové prostředí; budeme v něm modelovat proces ve spustitelném jazyce BPEL a nasazovat jej do běhového prostředí; kromě toho lze pomocí něj vyvíjet i jiné typy java projektů (webové a desktopové aplikace, moduly atp.).
  • GlassFish – aplikační server, ve kterém běží OpenESB a frontendová i backendová část naší aplikace.
  • Business Process Visual Architect – návrhář procesů z dílny Visual Paradigm (komerční software – viz dále); budeme v něm zakreslovat procesy pomocí grafické notace BPMN.

V našem vzorovém projektu použijeme komunikační infrastrukturu OpenESB, na níž budeme postupně stavět BPMS infrastrukturu. OpenESB je implementací JBI (integrační standard specifikovaný v JSR-208 - více informací) a umožňuje přidávat další funkční celky v podobě JBI pluginů, čímž nám usnadní budování kompletního BPMS řešení. Jedním z důležitých pluginů je právě i WS-BPEL Service Engine pro spouštění procesů zapsaných v jazyce BPEL. Dalším může být například komponenta pro business pravidla či workflow.

Klikněte pro zvětšení

Obrázek 1: Architektura JBI

OpenESB je dobře provázána s vývojovým prostředím NetBeans, ve kterém lze snadno modelovat procesy v jazyce BPEL a sestavovat kompozitní aplikace, sloužící k provázání komponent nasazovaných do ESB. Současně je možné pomocí NetBeans vytvářet backend i frontend vyvíjeného systému, což zmenšuje počet nástrojů nutných k jeho vývoji a unifikuje vývojářské prostředí. NetBeans lze spolu s aplikační serverem GlassFish a OpenESB stáhnout jako bundle (společně distribuovaný balík), což zjednodušuje jeho instalaci, konfiguraci a také použití.

Pro modelování procesu v grafické notaci BPMN budeme používat nástroj Business Process Visual Architect, který není sice zdarma, nicméně jeho cena je poměrně nízká. Navíc existuje možnost stáhnout si jej na zkoušku po dobu 30 dní, což pro náš účel postačí. Díky jednoduchosti notace BPMN existují i volně dostupné kreslítka, umožňující modelovat BPMN procesy, nicméně nedosahují kvalit BP-VA.

Vývojové prostředí NetBeans 6.0.1 včetně aplikačního serveru GlassFish obsahujícího i OpenESB lze stáhnout zde. Vyberte poslední download (all – 195 MB).

Pro běh IDE i serveru je třeba mít nainstaováno Java JDK, nejlépe ve verzi 5.0. To je možné získat zde, konkrétně doporučujeme vybrat „JDK 6 Update 4“.

Nástroj Business Process Visual Architect od Visual Paradigm, ve kterém budeme modelovat proces, můžete stáhnout zdarma na této adrese. Na této stránce je potřeba vlevo nahoře kliknout na odkaz „Get a FREE copy“, zaregistrovat se, stáhnout produkt a nechat si na zadanou emailovou adresu zaslat soubor s licencí.


Ukázkový proces

Jak jsme již předeslali v úvodu seriálu, budeme celý životní cyklus BPM demonstrovat na jednom konkrétním procesu.

Pro modelování jsme vybrali jednoduchý a názorný proces, který si každý bude moci snadno představit, a to sice proces vytváření a schválení objednávky. Při návrhu tohoto procesu jsme nekladli přílišný důraz na realizmus procesu co se týče samotných požadavků, ani zda je proces správně navržen z pohledu analytického, ale spíše na jeho jednoznačnost, přehlednost a jednoduchou technickou proveditelnost. Záměrná trivialita procesu usnadní vysvětlování jednotlivých aspektů při jeho modelování a rovněž umožní věnovat se podrobně celému procesu. Tento proces budeme v této podobě používat s drobnými úpravami nebo obměnami až do konce seriálu.

Implementaci tohoto procesu budeme realizovat ve středně velké (fiktivní) firmě. Tato firma již má definován proces pro vytvoření objednávky a prvním krokem v jeho životním cyklu bude jeho namodelování business analytikem. V procesu vystupují tři role:
  • Objednatel provádí zadání objednávky do systému (ve firmě je učeno několik lidí, kteří mohou tuto roli zastávat a tedy vytvářet objednávky),
  • Technické oddělení, které tvoří pracovníci, jejichž úkolem je posoudit vhodnost objednaného zboží,
  • Finanční ředitel rozhoduje o dražších nákupech ve firmě

Proces začíná vytvořením objednávky a končí jejím schválením či zamítnutím. V případě schválení je objednávka předána k objednání. To už je předmětem navazujícího procesu, o kterém budeme předpokládat, že je již namodelován a funkční, a nebudeme se jím podrobněji zabývat.

Klikněte pro zvětšení

Obrázek 2: Modelový proces

Proces je tedy iniciován akcí Objednatele, který založí objednávku v systému, uvede druh zboží, kvantitu a důvod objednávky (business reason). Objednávka je následně předána technickému oddělení ke schválení. To ji posoudí (zda není zboží již zastaralé, zda je vhodné pro požadovaný účel apod.) a rozhodne o jejím schválení. Pokud technické oddělení objednávku nezamítne (s uvedeným důvodem), proces pokračuje do rozhodovacího okamžiku, ve kterém se rozvětví podle ceny objednaných položek. Pokud je vyšší či rovna 40.000 Kč, musí ji schválit Finanční ředitel, v opačném případě je schválena automaticky. Po schválení je objednávka označena jako připravená k objednání (přebírá ji Nákupčí). Proces je pro představu zachycen v uvedeném BPMN diagramu, význam jednotlivých grafických elementů a postup k detailnějšímu modelu bude ukázán v příštím díle.

Nyní ještě krátce popíšeme prezentační vrstvu (frontend) a vrstvu business logiky (backend), se kterými bude proces v interakci. Frontend podobných systému tvoří často portálové řešení, v našem případě si ale vystačíme s jednoduchou webovou aplikací, jež bude umožňovat přihlášení uživatele a podle jeho role mu nabídne možnost vytvořit objednávku, sledovat založené objednávky a vyjádřit se k objednávce, která byla přiřazena ke schválení tomuto uživateli. Aplikace poskytne formuláře pro provedení všech interakcí s procesem. Samotná business logika, která zpracovává požadavky a pracuje s databází, je obsažena v EJB modulu, jenž je nasazen v aplikačním serveru GlassFish. K tomuto modulu lze přistupovat přes rozhraní webových služeb, a to jak z procesu, tak přímo z webové aplikace.

V příštím díle

V příštím díle budeme modelovat představený proces v nástroji Business Process Visual Architect. Ukážeme si, jak přistoupit k návrhu celého procesu a jak jej realizovat, včetně jemného úvodu do grafické notace BPMN. Srovnáme také úrovně, na kterých lze proces modelovat. Výsledkem příštího dílu či možná dvou bude kompletní návrh procesu v BPMN, podle kterého bude proces následně převeden do XML jazyka BPEL.

39 Comments:

Anonymní said...

Z úvodu do seriálu jsem pochopil, že budeme procesy modelovat v Intaliu a tak jsem si ho stáhl a nainstaloval a začal si ho osahávat. Ach ouvej - a teď Visual Paradigm...?

Anonymní said...

Tak tentokrát si nemůže nikdo stěžovat, že jste mu naložil málo práce. Než jenom všechny nástroje nainstaluje a párkrát si je spustí, bude tu nový díl:)

Anonymní said...

Mně osobně Intalio fakt nebere - připadá mi tak technologicky nepůvabné, že jsem ráda za lidský modeler. Abychom ale seriál stihli dřív, než vyprší zkušební licence! Možná si ho koupíme, ale nejdřív si chci vyzkoušet, co všechno umí.

Anonymní said...

První díl se mi zdál jednoduchý a pochopitelný. Ten druhý mě zaskočil. Zkusím ho postupně jako non-IT sežvýkat. Pokud bude takto přituhovat, asi bude 2 týdenní pauza mezi články málo:) :)

Anonymní said...

Stáhl, instaloval, zírám! Vypadá to fakt zajímavě.

Anonymní said...

Opravdu půjde na takto jednoduchém procesu ukázat všechny BPMS fígle? Pro takovýto proces snad ani Visual Architect nebudeme potřebovat.

Anonymní said...

Nejsem IT expert, takže promiňte tuto otázku: Jaký je rozdíl mezi BPEL enginem a workflow?

Anonymní said...

Snad někdo odpoví fundovaněji, ale standardní BPEL (nevím ale, jak je to v této jeho konkrétní implementaci) neumí lidské interakce (na to je třeba BPEL4People). Na ty potřebujete ještě další modul - workflow.

Anonymní said...

p. Bílek: V seriálu bychom rádi představili obě platformy, tedy kombinaci OpenESB + NetBeans i Intalio BPMS. Nejprve začneme s první variantou.

Jarka: Licence pro BP-VA trvá 30 dní, budeme se snažit do té doby publikovat všechny díly, ve kterých se s tímto nástrojem pracuje.

Petr: Rádi bychom představili nějaký složitější a zajímavější proces, ale v začátku je pro nás více důležité, aby bylo co nejjednodušší jej namodelovat a naimplementovat. V pozdějších dílech můžeme případně proces rozšířit.

Anonymní said...

BPEL skutečně lidskou interakci sám neumí řešit, komunikaci člověk - proces tedy musí zabezpečit přímo aplikace, a to formulářem pro danou akci (interakci s procesem) a voláním BPELu (přes webovou službu). Pokud má BPMS podporu pro workflow, řeší tyto interakce speciální komponenta, která lidské úkoly (human tasks) eviduje a nabízí vlastní rozhraní pro jejich splnění. Kromě toho může podporovat eskalaci, timeout, upozorňování na úkoly apod.

Anonymní said...

Děkuji, pane Vašíčku, ale pozor - 30 dní mi už běží. Ale vážně. Mám letos v rozpočtu slušné peníze na pořízení nástroje, ale určitě se hodně rozmyslím, komu je dám. Máme totiž špatnou zkušenost s mizernou podporou, takže ve všech trochu spoléháme na sebe a chceme si proto koupit to, co nás nebude prudit.

Anonymní said...

Mohu se ještě zeptat - jaký je tedy rozdíl mezi BPEL a jeho rozšířením na BPEL4People?

Anonymní said...

To jsem rád, že nebudu muset Intalio vyhodit. Docela se mi za ten měsíc zalíbilo a zdá se mi, že toho umí víc, než celý aris dohromady.

Anonymní said...

Jsem zatím z obou dílů nadšená - vykládáte to podstatně srozumitelněji, než jsem čekala. Děkuji a vydržte!!

Anonymní said...

K tomu BPEL4People bych si dovolil použít definici z webservices.org.

BPEL4People extends the capabilities of WS-BPEL to support a broad range of human interaction patterns, allowing for expanded modeling of business processes within the WS-BPEL language.

BPEL4People is comprised of two specifications including:

* WS-BPEL Extension for People which layers features on top of WS-BPEL to describe human tasks as activities that may be incorporated as first-class components in WS-BPEL process definitions.

* Web Services Human Task introduces the definition of stand-alone human tasks, including the properties, behavior and operations used to manipulate them. Capabilities provided by Web Services Human Task may be utilized by Web services-based applications beyond WS-BPEL processes.

Anonymní said...

A je docela možné, že se BPMI standard BPEL4People stane součástí OASIS standardu WSBPEL-3.0. Uvidíme :)

Anonymní said...

Výsledné řešení bude tedy pracovat výhradně s webovými službami. Má open esb taky schopnost kontejnerizovat newebové aplikace?

Anonymní said...

OpenESB nabízí širokou škálu binding component, které umožňují komunikovat přes soubor, JDBC, SAP, MQ, CORBA atd.

Dokonce existují i rozšíření třetích stran, které umožňují komunikovat s protololy jako Cobol.

Unknown said...

marie: nas serial se zabyva hlavne IT slozkou BPM, ktera je pomerne slozita, ale budeme se snazit, aby to bylo srozumitelne pro vsechny :-)

jarmila: predchozi komentare sklouzly do technickych detailu, zkusim odpovedet v obecne rovine:
- workflow chapeme jako obecny pojem, ktery souvisi s nejakou cinnosti, na ktere se podili vice osob, a ktera obvykle trva dlouho (hodiny,dny,..) a vetsinou se resi uvnitr jednoho systemu
- BPEL je oproti tomu technicka norma pro provadeni obchodnich procesu uvnitr procesniho serveru a je zameren spise na implementaci procesu napric jednotlivymi systemy
- BPEL je tedy technicka low-level reprezentace nejakeho namodelovaneho procesu, treba workflow...
- pomoci BPEL muzeme modelovat i procesy, ktere nemaji povahu "toku prace" ale jsou napriklad jen "shlukem" udalosti a aktivit

Anonymní said...

Děkuji za vysvětlení, i když si nejsem zcela jistá, že to úplně chápu. U nás používáme jako hlavní systém SAP. Můžu se na BPEL dívat jako na automatizované postupné spouštění nějakých navazujících sapích i nesapích transakcí. Mohou si tyto transakce vzájemně přes ESB předávat parametry? Nebo jsem úplně vedle?

Anonymní said...

A ještě bych poprosila o jedno vysvětlení - k čemu je dobré a bude nám sloužit rozlišení mezi back-end a front-end?

Unknown said...

Predavani parametru mezi transakcemi lze resit napriklad pomoci BPEL promennych, coz bude v serialu jiste ukazano...

BPM system je implementovan jako vicevrstva (multi-tier) aplikace, rozdelenim na frontend a backend je dulezite hlavne z pohledu architektury systemu - uvidite pozdeji u human tasku.

Anonymní said...

Obecně lze v BPELu orchestrizovat vše co lze připojit přes BC (Binding Component) do routeru (JBI prostředí), ty BC tam zpřístupní danou funkcionalitu jako službu.

Nicméně záleží na tom, jak moc je ta daná BC chytrá, co všechno například ze SAP aplikace zpřístupní. Bez problému lze zapojit krom SOAP taky HTTP, JMS a File BC.

Anonymní said...

Děkuji moc za promptní vysvětlení. Počkám na příklad. Zatím jdu studovat SAP XI:)

Anonymní said...

Asi patřím mezi netrpělivé, ale už mám dávno nainstalováno, proces namodelován... A ještě dotaz - budou uveřejňovány zdrojové kódy příkladů?

Anonymní said...

Zdrojové kódy budou přístupné.

Anonymní said...

Taky hlásím, že mám nainstalováno a už se těším na díl nový. Bude seriál vycházet pravidelně v nějaký den (třeba v sobotu:)?

Anonymní said...

Obávám se, že toto zaručit nemůžeme :)

Anonymní said...

Seriál se mi zatím moc líbí. Určitě vydržte!

Anonymní said...

Bude v rámci seriálu taky aspoň malý kurz - vysvětlení notace BPMN pro ty z nás, kteří zatím pracovali v notacích jiných?

Anonymní said...

Jemný úvod uděláme, nicméně bych si dovolil doporučit BPM školení, které bude IBA CZ realizovat zhruba kolem května.

Více na http://www.ibacz.eu/

Anonymní said...

Máme si aktivovat verzi Anakyst nebo Modeler?

Anonymní said...

Stačí Modeler.

Anonymní said...

Modelování v BPMN mi připadá strašně složité. Zejména práce se bubprocesy. Na jednu stranu je příjemná možnost libovolné hierarchizace, na stranu druhou je těžké to v modelu dobře ošetřit. Těším se na nějaké školení.

Lukáš Matějka said...

Těžko soudit, nicmnéně BPMN bylo navrženo s ohledem na to, aby bylo modelování přehledné pro všechny účastníky cyklu. Od tohoto modelu je k implementaci ještě poměrně daleko. Co se Vám zdá konkrétně nepřehledné?

Anonymní said...

Nějvětší potíže mi dělá správné vzájemné napojení subprocesů (rozhraní). Je to tím, že jsem zvyklý na jinou notaci (EPC), která byla daleko exaktnější.

Anonymní said...

Taky s tím má potíže - v každém nástroji funguje hierarchizace subprocesů jinak.

Anonymní said...

dobry den, dostala jsem se k serialu az nyni, nevim, zda jeste odpovidate ne dotazy, ale mam Macintosh a kdyz si chci stahnout JDK, nenabizi mi to platformu Mac... je mozne si to presto nejak stahnout? dekuji. sarka

McFaylo said...

Dobry den, myslim, ze odpoved na Vasu otazku najdete na tychto strankach:
http://developer.apple.com/java/

Martin

ISSN 1802-5676  | Copyright © 2003-2008 BPS Business Process Services