Ukázka možnosti využit́ı programu OpenJUMP v SOA Martin Prager Institute of Geoinformatics Faculty of Mining and Geology, VSB-TUO E-mail: martin.prager.hgf@vsb.cz Kĺıčová slova: Orechestration, chainging, web services, GeoWeb, JUMP, SOA Abstrakt Tento krátký článek by měl poukázat prostřednictv́ım vytvořené extenze na možnost širokého uplatněńı open-source produktu OpenJUMP (dř́ıve JUMP) a jeho modularitu. A to konkrétně v oblasti servisně orientované architektury (SOA) se zaměřeńım na řetězeńı webových služeb. Úvod Servisně orientovaná architektura (SOA) přitahuje zájem všech oblast́ı IT pr̊umyslu. Poháněná standardy jako XML, webové služby a SOAP, SOA rychle proniká do hlavńıch chod̊u aplikaćı zásadńıch pro plněńı business operaćı. S rostoućım počtem dostupných služeb a nároky na efektivnost a obt́ıžnost řešených úloh si už mnohdy nevystač́ıme pouze s výsledky (zdroji) jednotlivých služeb, př́ıpadně s jejich statickým propojeńım. Jsme nuceni zač́ıt služby řetězit dynamicky. Spojovat je dle aktuálńıch potřeb, možnost́ı uživatele (finance, přesnost výsledk̊u, rychlost ap.). Existuj́ı dvě úrovně řetězeńı služeb, známé pod názvy orchestrace a choreografie (zaměřena v́ıce globálně). Orchestrace a choreografie je spojena s některými standardy (BPEL, WS-CDL, XLANG atd.) a organizacemi (OASIS, W3C, BPMI apod.) [4]. Extenze pro OpenJUMP OpenJUMP API poskytuje programátor̊um př́ıstup ke všem funkćım včetně I/O rozhrańı, datovým sadám, vizualizaci a prostorovým operaćım. Tato možnost z něj dělá vysoce mo- dulárńı a rozšǐritelný produkt. Rozš́ı̌reńı jsou zde realizována prostřednictv́ım zásuvných mo- dul̊u. Tyto moduly, které jsou po startu ” Workbench“ nahrány, můžou mı́t podobu ” plu- gin“ (položky menu), ” cursor tools“ (nástrojové tlač́ıtka), ” renderers“ (zp̊usoby vykreslováńı dat) a ” datasources“ (zp̊usoby nahráváńı a ukládáńı r̊uzných datových formát̊u) [3]. Ex- tenze, kterou jsem nazval ” WSPlugin“ poskytuje uživateli GUI pro vytvářeńı jednoduchých Geinformatics FCE CTU 2007 119 Ukázka možnosti využit́ı programu OpenJUMP v SOA sekvenčńıch řetěz̊u webových služeb. Umožňuje přidávat služby typu WSDL, WMS (WMS pouze na konec řetězu) jednotlivě, nebo hromadně s podporou vyhledáváńı v katalogu WSCO (http://gisak.vsb.cz/wsco/intranet/). Samotný řetěz poté vytvoř́ı uživatel přesunut́ım jednot- livých metod (operaćı ” Drag-and-Drop“) na pracovńı plochu. Obrázek 1 znázorňuje grafické rozhrańı pro propojováńı parametr̊u jednotlivých metod (aktivováno kliknut́ım na konkrétńı metodu). Parametry lze propojovat př́ımo, nebo je transformovat s využit́ım jazyka XSL, či za pomoćı XPath výraz̊u. Využit́ı XPath (viz http://www.w3.org) výraz̊u lze je patrné jak na následuj́ıćım obrázku, tak v přiloženém ukázkovém BPEL procesu. Obrázek 1: Grafické rozhrańı pro nastaveńı relaćı mezi metodami [4] Na obrázku 2 lze vpravo vidět spuštěnou extenzi s již vykonaným řetězem služeb, který vraćı jako odpověd’ GML vrstvu. Tato vrstva je automaticky vizualizována v mapovém okně Ope- nJUMP. V př́ıpadě, že na konci řetězu stoj́ı WMS služba, je zobrazena s následnou možnost́ı modifikace jej́ıch parametr̊u. Obrázek 2: Spuštěná extenze v prostřed́ı OpenJUMP [4] Jak již bylo zmı́něno v úvodu, řetězeńı služeb je spojeno se spoustou specifikaćı. Jazyk BPEL se stal v posledńıch dvou letech významným standardem, vyzdvihuj́ıćım využit́ı SOA z IT úrovně na obchodńı úroveň. Umožňuje organizaćım automatizováńı jejich obchodńıch proces̊u, prostřednictv́ım orchestrace služeb uvnitř i vně dané organizace [1]. Vyvinut firmami Micro- soft a IBM, standardizován neprofituj́ıćım konsorciem OASIS (http://docs.oasis-open.org). Geinformatics FCE CTU 2007 120 http://gisak.vsb.cz/wsco/intranet/ http://www.w3.org http://docs.oasis-open.org Ukázka možnosti využit́ı programu OpenJUMP v SOA Z toho d̊uvodu byla do extenze zabudovaná podpora BPEL jazyka. V př́ıpadě, že by chtěl uživatel daný řetěz služeb poskytovat širš́ı veřejnosti, má možnost ho exportovat (importo- vat pouze soubory exportované z extenze) jako proces do tohoto jazyka. Slouž́ı zde k tomu jednoduchý pr̊uvodce, který umožňuje nastavit některé základńı parametry (název procesu, metodu procesu, výběr relevantńıch vstupńıch parametr̊u ap.). Kromě těchto základńıch para- metr̊u lze nastavit export př́ımo do formátu ” ActiveBPEL engine“ stroje (http://www.active- endpoints.com/open-source-active-bpel-Intro.htm). BPEL proces se jev́ı navenek jako stan- dardńı webová služba, kterou bychom mohli opětovně nač́ıst do extenze a propojit s daľśımi službami, př́ıpadně procesy. Dále v extenzi lze nastavit některé vlastnosti prostřed́ı, pracovat s projektem ap. Extenze v současnosti umožňuje grafický návrh sekvenčńıho řetězeńı webových služeb s podporou př́ımého zobrazováńı mapových výstup̊u. Na rozd́ıl od všech ostatńıch pro- dukt̊u určených k řetězeńı webových služeb, umožňuje do řetězu zařazovat kromě WSDL služeb i služby WMS. BPEL jazyk je sice standard, ovšem s přenositelnost́ı procesu mezi r̊uznými BPEL stroji je problém. Většinou každý z těchto stroj̊u potřebuje k interpretaci kromě standardńıch soubor̊u BPEL jazyka ještě daľśı podp̊urné soubory, které jsou bohužel typické pro jednotlivé stroje. Jak je vidět prostřed́ı OpenJUMP lze asi rozš́ı̌rit o cokoliv. K tomuto faktu značně přisṕıvá velmi dobrá dokumentace programu a jeho široká komunita. Základńı struktura BPEL procesu activities Význam jednotlivých element̊u je následuj́ıćı [2]: � partnerLinks – zde jsou definovány služby, které proces využ́ıvá a poskytuje. Uvnitř každého partnerLink muśı být vymezena aspoň jedna z dvou možných roĺı. Roli sa- motného procesu určuje atribut myRole a naopak roli partnera atribut partnerRole; � variables – tato část specifikuje proměnné, které proces využ́ıvá. BPEL umožňuje de- klarovat proměnné třemi zp̊usoby: jako typ WSDL zprávy, jako typ XML Schema (jed- noduchý nebo složený) a jako XML Schema element; � correlationSets – ještě před spuštěńım daného procesu docháźı k vytvořeńı jeho instance. Význam tohoto elementu spoč́ıvá v tom, že zabezpečuje doručováńı přicházej́ıćıch zpráv odpov́ıdaj́ıćım instanćım proces̊u; � faultHandlers – jak už název sám o sobě ř́ıká, tento element slouž́ı ke zpracováńı chyb, které nastanou při běhu procesu. Chyby mohou být vyvolány explicitně (pomoćı elementu < throw >), nebo implicitně (jako např. výsledek chyby při voláńı nějaké partnerské služby). Naopak pro zachytáváńı chyb je využ́ıván element s odpov́ıdaj́ıćım jménem < catch >; � compensationHandler – tento element poskytuje možnost zpětného zotaveńı z chyby v specifikované oblasti. Jinými slovy pokusit se o jakési vyčistěńı a navráceńı se do stavu, Geinformatics FCE CTU 2007 121 http://www.active-endpoints.com/open-source-active-bpel-Intro.htm http://www.active-endpoints.com/open-source-active-bpel-Intro.htm Ukázka možnosti využit́ı programu OpenJUMP v SOA kde může proces po chybě pokračovat; � eventHandlers – slouž́ı k zachyceńı událost́ı. V BPEL jsou dva typy: př́ıchoźı zprávy (koresponduj́ı s WSDL operacemi) a alarmy (aktivovány po uživatelem zadaném čase). V každém tomto elementu muśı být obsažen aspoň jeden zmı́něny typ; � activities – struktura procesu pokračuje tzv. aktivitami (elementy), které už implemen- tuj́ı jeho samotný tok. Každý proces má jednu hlavńı aktivitu. BPEL obsahuje sadu jednoduchých aktivit, které můžeme skládat a vytvářet tak aktivity složené (viz [2]). Ukázkový BPEL proces An error occurred while submitting the order. All transactions have been canceled. ’obce32633’ ’nazob_a’ $getAreasRequest.Obec substring-after(substring-before($getXY_0Response.xy,’ ’),’(’) Geinformatics FCE CTU 2007 122 Ukázka možnosti využit́ı programu OpenJUMP v SOA substring-after(substring-before($getXY_0Response.xy,’)’),’ ’) ’epsg:32633’ ’esri:102065’ substring-before($xy2xy_1Response.xy,’,’) substring-after($xy2xy_1Response.xy,’,’) $getAreasRequest.Vzdalenost ’voda’ ’nazev’ $getFeaturesGML_2Response.countries Použité zdroje 1. BLANVALVET, S; BOLIE, J; CARDELLA, M; CAREY, S; CHANDRAN, P; COENE, Y; GEMINIUC, K; JURIČ, M; NGUYEN, H; PODUVAL, A; PRAVIN, L; THOMAS, J; TODD, D. BPEL Cookbook: Best Practivec for SOA-based integration and composite applications development. Birmingham: Packt Publishing Ltd., 2006. ISBN 1-904811- 33-7 2. OASIS. [online]. 2007. Dostupný na WWW: http://www.oasis-open.org 3. OpenJUMP. [online]. 2007. Dostupný na WWW: http://openjump.org 4. PRAGER, M. Řetězeńı webových služeb v prostřed́ı open source GIS. Diplomová práce. 2007. Ostrava. Dostupný na WWW: http://gisak.vsb.cz/˜pra089/texty/DP pra089 v1 0.pdf Geinformatics FCE CTU 2007 123 http://www.oasis-open.org/ http://openjump.org http://gisak.vsb.cz/~pra089/texty/DP_pra089_v1_0.pdf