SZÁLLÍTÓI TERMÉKEK INTEROPERABILITÁSI VIZSGÁLATA
Szállítói termékek interoperabilitási vizsgálata
A dokumentum az Új Magyarország Fejlesztési Terv keretében, az Államreform Operatív Program támogatásával, az „Elektronikus közigazgatási keretrendszer” tárgyú kiemelt projekt megvalósításának részeként készült. A dokumentum elkészítésében részt vett:
2/14
Szállítói termékek interoperabilitási vizsgálata Metaadat-táblázat Megnevezés Cím (dc:Title) Kulcsszó (dc:Subject) Leírás (dc:Description)
Típus (dc:Type) Forrás (dc:Source) Kapcsolat (dc:Relation) Terület (dc:Coverage) Létrehozó (dc:Creator) Kiadó (dc:Publisher) Résztvevı (dc:Contributor) Jogok (dc:Rights) Dátum (dc:Date) Formátum (dc:Format) Azonosító (dc:Identifier) Nyelv (dc:Language) Verzió (dc:Version) Státusz (State) Fájlnév (FileName) Méret (Size) Ár (Price) Felhasználási jogok (UserRights)
Leírás Szállítói termékek interoperabilitási vizsgálata Folyamatleíró nyelv A dokumentum összefoglalja azokat a tapasztalatokat, melyeket jelentıs gyártók SOA fejlesztıeszközeinek és BPEL motorjainak eddigi használata során - az e-közigazgatási keretrendszer kialakítása projekt végrehajtásának elsı néhány hónapja alatt - nyertünk, különös tekintettel a BPEL nyelv hordozhatóságának kérdésére. Szöveg Folyamatleíró nyelv kiválasztása KOP-ok során megvalósuló projektek, központi IT fejlesztési projektek BME IK MEH EKK e-Közigazgatási Keretrendszer 2008.07.30 Microsoft Word .doc, elektronikus adathordozón Magyar V2 végleges EKK_ekozig_szallitoi_termek_vizsg_080730_V2.doc 13 oldal -
3/14
Szállítói termékek interoperabilitási vizsgálata
A dokumentum neve A dokumentum készítıjének neve A dokumentum jóváhagyójának neve A dokumentum készítésének dátuma Verziószám Összes oldalszám A projekt azonosítója
Verzió V1.0 V1.1 V1.2 V1.3 V1.4 V2
Dátum 2008.05.20 2008.05.29 2008.06.10 2008.07.27 2008.07.30 2008.07.30
Verziókövetési táblázat Szállítói termékek interoperabilitási vizsgálata
BME Informatikai Központ 2008.07.30. V2
13 e-Közigazgatási Keretrendszer kialakítása
Változáskezelés A változás leírása First draft Annotált tartalomjegyzékként átadott Bıvítések Szerkezeti változtatások, kiegészítések Javítások MeH-nek átadott verzió
4/14
Szállítói termékek interoperabilitási vizsgálata
Megnevezés 1. Elıszó (Foreword) 2. Bevezetés (Preamble) 3. Alkalmazási terület (Scope) 4. Rendelkezı hivatkozások (References) 5. Fogalom-meghatározások (Definitions) 6. A szabvány egyedi tartalma (UniqueContent) 7. Bibliográfia 8. Rövidítésgyőjtemény 9. Fogalomtár 10. Ábrák 11. Képek 12. Fogalmak 13. Verzió 14. Mellékletek (Appendix)
Szövegsablon Tanulmány, vizsgálati eredmény 1. fejezet 2. fejezet
7. fejezet
Folyószövegben Folyószövegben
nincs
5/14
Szállítói termékek interoperabilitási vizsgálata
Tartalomjegyzék 1. 2.
Elıszó.............................................................................................................................................................. 7 Bevezetés ........................................................................................................................................................ 7 2.1. A DOKUMENTUM CÉLJA ........................................................................................................................ 7 2.2. A DOKUMENTUM FELÉPÍTÉSE ................................................................................................................ 7 3. Vizsgált termékek ........................................................................................................................................... 8 4. Vizsgálati módszer .......................................................................................................................................... 8 5. Vizsgálat során nyert tapasztalatok ............................................................................................................... 11 6. Összefoglalás ................................................................................................................................................ 13
6/14
Szállítói termékek interoperabilitási vizsgálata
1. Elıszó Jelen dokumentum az e-közigazgatási keretrendszer részét képezi. Az e-közigazgatási keretrendszer kialakítása projekt megvalósítása során több olyan terméket is megvizsgáltunk, mely potenciálisan alkalmas lehet egy közigazgatási rendszerben folyamatmotorként és/vagy fejlesztıeszközként történı felhasználására. Vizsgálataink nem teljes körőek és nem auditálási jellegőek. Jelen dokumentumban tett megállapításaink elsısorban a mintarendszer kialakítása során nyert tapasztalatainkra alapulnak.
2. Bevezetés 2.1.
A dokumentum célja
A dokumentum célja összefoglalni azokat a tapasztalatokat, melyeket jelentıs gyártók SOA fejlesztıeszközeinek és BPEL motorjainak eddigi használata során - az e-közigazgatási keretrendszer kialakítása projekt végrehajtásának elsı néhány hónapja alatt - nyertünk, különös tekintettel a BPEL nyelv hordozhatóságának kérdésére. A projekt befejezı szakaszában minden bizonnyal jóval több tapasztalatról számolhatnánk be, azonban a folyamatleíró nyelv kialakítása, kiválasztása különösen indokolja a jelenlegi beszámolót ill. összefoglalót. Az általunk vizionált SOA alapokon felépülı e-közigazgatási rendszer egyik kulcsponti elemét adják a webszolgáltatások szervezését, vezénylését biztosító folyamatmotorok. Ezek a folyamatmotorok felelısek az e-közigazgatási buszon, és az egyes szervezeti egységeknél megjelenı szolgáltatások megfelelı sorrendben történı meghívását, összekapcsolását. Ezért különösen fontos kérdés, hogy a szóba jöhetı folyamatmotorok által közvetlenül értelmezendı folyamatleírás mennyire hordozható, és hogyan tudnak egymás mellet „megélni” a különbözı gyártók eszközei. Mennyire tekinthetık interoperabilis eszközöknek a fejlesztıeszközök. A dokumentum a fenti kérdésekre próbál gyors választ adni úgy, hogy a projekt további döntéseit segítse, támogassa.
2.2.
A dokumentum felépítése
Az 1. fejezet elhelyezi a dokumentumot az e-közigazgatási keretrendszeren belül. A 2. fejezet bevezetı információkat tartalmaz, megadva a dokumentum célját és felépítését. A 3. fejezet felsorolja a vizsgált terméket. A 4. fejezet bemutatja a vizsgálat menetét és a vizsgálat során az adott fejlesztıeszközzel kifejlesztendı egyszerő webszolgáltatást. Az 5. fejezet ismerteti a vizsgálat során szerzett tapasztalatokat. A 6 fejezet következtetéseket von le a tapasztaltakból.
7/14
Szállítói termékek interoperabilitási vizsgálata
3. Vizsgált termékek Az e-közigazgatási keretrendszer kialakítása projektben az alábbi szállítók folyamatmotor megoldásait illetve SOA fejlesztıeszközeit vizsgáltuk a saját mintarendszer környezetünkben. Termék
Folyamatmotor
Fejlesztı eszköz
Gyártó
ActiveBPEL
ActiveBPEL 5.0
ActiveVOS 5.0
Opensource
OpenESB
GlassFish v2-ur2
Netbeans 6.1
Opensource
CAPS 6
GlassFish v2-ur2 / SUN AS 8 WebSphere Process Server 6.1 BizTalk Server 2006 R2
Netbeans 6.1
Sun
WebSphere Integration Developer 6.1 Visual Studio 2005 SP1
IBM
JDeveloper 10g 10.1.3.3
Oracle
WebSphere BizTalk Oracle Suite
SOA Oracle AS 10g 10.1.3.1
Microsoft
1. táblázat: Vizsgált termékek
4. Vizsgálati módszer A vizsgálat során egy igen egyszerő feladatot oldottunk meg az egyes rendszerekben, majd azt vizsgáltuk, hogy a keletkezett technológiai szintő folyamatleírások, dokumentumok hogyan vihetık át az egyik rendszerbıl a másikba. A vizsgálat során nem vizsgáltuk a keletkezett megoldások hatékonyságát, vagy magát a fejlesztés nehézségeit. A hatékonyság vizsgálata összetettebb problémát igényelne, a fejlesztıi keretrendszer kényelmi szolgáltatásainak megítélése pedig nagy mértékben szubjektív képet adna. Ezért a továbbiakban csak az interoperabilitás szempontjait érintjük. A vizsgált probléma egy nagyon egyszerő, a 4 matematikai alapmővelet elvégzésére alkalmas asztali számológép-szolgáltatás kifejlesztése és portolása volt. A probléma megoldása során elvégeztük az eszközök egyszerő konfigurálását, és vizsgáltuk a WS-Addressing szabvány támogatottságát, valamint az elágazás és a kivételkezelés, mint folyamatminta megvalósítottságát. Ezen kívül vizsgáltuk a szolgáltatás megvalósíthatóságát mind szinkron, mind aszinkron folyamatként. Teljesen világos, hogy ezzel az egyszerő módszerrel nem nyerhetünk átfogó és minden részletre kiterjedı képet, de a bevezetıben leírt célok – a további döntések elıkészítése – szempontjából hasznos információkhoz jutunk. Magát folyamatot az XML szintaxisú BPEL definíció írja le, de annak interfészét külön WSDL (Web Services Description Language) [5] állomány tárolja. A vizsgálatban használt számológép-szolgáltatás BPEL formátumú leírásának osztást kiszolgáló részletét szemléltetik az alábbi ábrák (1. ábra és 2. ábra). Az elsı részlet BPEL 1.1, míg a második BPEL 2.0 formátumú. A 2.0-ás változaton jól megfigyelhetı az if szerkezet megjelenése.
8/14
Szállítói termékek interoperabilitási vizsgálata
... ... Divide Division by zero. ...
1. ábra: Számológép-szolgáltatás BPEL 1.1 verziójú kódrészlete
9/14
Szállítói termékek interoperabilitási vizsgálata
... ... $Divide/pilot:right = 0.0 Divide Division by zero. ....
2. ábra: Számológép-szolgáltatás BPEL 2.0 verziójú kódrészlete
A bemutatott programrészletekben jól felismerhetı a partnerkapcsolatokra (partnerLink) történı hivatkozás. Ez fontos elem a külsı kapcsolatok részleteinek elrejtéséhez. A partner link típus azt írja le, hogy miképpen lép interakcióba két fél, és mi az, amit egymásnak nyújtani tudnak.
10/14
Szállítói termékek interoperabilitási vizsgálata
A kódrészletek további XML állományokra hivatkoznak, melyek sémákat és interfészeket írnak le. A verzióváltás természetesen ezeket is érinti, bár ezek a viszonylag könnyen áthidalható verzióbeli különbségek közé tartoznak. A BPEL program és a WSDL leírások sematikus kapcsolatát szemlélteti a következı ábra (3. ábra). [21]
3. ábra: BPEL program és a WSDL leírások kapcsolta
5. Vizsgálat során nyert tapasztalatok A vizsgálat során nyert kép meglehetısen vegyes. Egyes rendszerek problémamentesen be tudták olvasni a másik fejlesztıeszközzel készült leírásokat, mások kisebb problémákkal, vagy egyáltalán nem. A következı táblázatban (2. táblázat) összefoglaltuk a legfontosabb tapasztalatokat, melyeket az elızı fejezeten bemutatott egyszerő – nem mindenre kiterjedı – vizsgálattal nyertünk a BPEL kód hordozhatósága tekintetében. Ismételten hangsúlyozzuk, hogy ezzel az egyszerő módszerrel nem nyerhettünk átfogó és minden részletre kiterjedı képet, de a bevezetıben leírt célok – a további döntések elıkészítése – szempontjából hasznos információkhoz jutottunk. Termék neve ActiveBPEL
OpenESB
Tapasztalat
Az ActiveBPEL segítségével mind BPEL 1.1, mind BPEL 2.0 verziójú leírást is lehet tervezni, de elıre meg kell mondani, melyiket használjuk. Utólag már nem lehet az elıállítandó BPEL leírás verziószámát módosítani, pontosabban van konvertálási lehetıség 1.1 -> 2.0 irányba, visszafelé nincs. Az eszközzel elıállított BPEL leírás más, a megfelelı verzióval kompatibilis rendszerbe problémamentesen beolvasható. Az OpenESB csak a BPEL 2.0 verzióját támogatja. Az eszközzel elıállított BPEL más, a megfelelı verzióval kompatibilis rendszerbe problémamentesen beolvasható. Az ActiveBPEL-lel való átjárás egészen jól mőködik mindkét irányba.
11/14
Szállítói termékek interoperabilitási vizsgálata Termék neve CAPS 6
Tapasztalat
OpenESB-vel kompatibilis nézetben azonosak a tapasztalataink az OpenESB-nél leírtakkal A CAPS 5 csak BPEL 1.0-át támogat, ami már eléggé elavult. Magát a szabványt is nehéz megtalálni. Képes 1.1-es verziót beimportálni és 1.0ássá konvertálni, ezt kipróbáltuk és mőködött. A másik irány viszont problémás, mivel a többi eszköz a BPEL 1.0-ás változatát nem támogatja.
WebSphere
BizTalk
Az IBM WebSphere a leírásától eltérıen a BPEL 1.1 és a BPEL 2.0 közti verziót implementál. Ez azt jelenti, hogy már vannak BPEL 2.0 sajátosságok a generált kódban, de nem fogad el minden, a BPEL 2.0 elıírás szerint kötelezıen megvalósítandó elemet. Így semelyik eszköz irányába sem átjárható. Ha csak korlátozott elemeket használunk fel és generált kódban a BPEL XML, a névterét lecseréljük, van esély arra, hogy importálni tudunk. A másik irány azonban nem megy: a WebSphere Integration Developer grafikus felületén létrehozott folyamatokban az XPATH kifejezésekbıl hiányzik a névtér prefix, amit a többi eszköz így nem tud értelmezni. A BizTalk szerver csak import/export formátumként használja a BPEL-t, belül XLANG/S formátumot tárol. A leírások alapján a BizTalk Server BPEL kompatibilis, de az importálásnál esetenként preproceszort kell futtatni. Ez elég körülményessé teszi a használatot. És bizonyos formai szabályokat be kell tartani a konverzió során. Fontos megjegyezni, hogy maga a termék nem tartalmaz natív BPEL motort.
Oracle SOA Suite
Az Oracle SOA Suite csak BPEL 1.1-es verziót támogat, és az ActiveBPEL-lel való átjárás apróbb, automatizálható konverziók, vagy megszorítások mellett mindkét irányban jól megoldható. 2. táblázat: Tapasztalatok termékenként
Némi magyarázatra szorul a CAPS 6 és az OpenESB viszonya, hiszen az 1. táblázat szerint azonos folyamatmotort és azonos fejlesztıeszközt használnak, mégis eltérı eredményekre jutottunk. Leegyszerősítve CAPS 6 = CAPS 5 + OpenESB [11], azaz a CAPS 6 az OpenESB eszközükre épít, de kompatibilitási okokból képes CAPS 5-ként viselkedni. A vizsgálatot úgy végeztük, hogy valójában csak a CAPS 5 funkcionalitását használtuk ki. Ez a magyarázat az eltérı eredményre. A vizsgálatok során megállapítottuk, hogy a leírások kicserélhetısége szempontjából alapvetıen az elıállított ill. beolvasott BPEL verzió a lényeges. A vizsgált rendszerek egy része csak a BPEL 1.1 változatot támogatja, és ez korlátozza az adatcserét. Az alábbi táblázat (3. táblázat) a támogatott verziók szempontjából foglalja össze tapasztalatainkat. Hangsúlyozzuk, hogy a vizsgálatok kizárólag az 1. táblázatban megadott verziókra terjedtek ki. Ezért a termékek más verzióira nem érvényesek megállapításaink. 12/14
Szállítói termékek interoperabilitási vizsgálata
Termék neve
Változat BLEL 1.0
ActiveBPEL OpenESB CAPS 6 WebSphere BizTalk Oracle SOA Suite
igen
BPEL 1.1
BPEL 2.0
igen
igen igen igen még nem
csak import már nem elı- ill. utófeldolgozással igen
3. táblázat: A vizsgált eszközök által támogatott BPEL verziók
Számunkra legmeglepıbb eredményt a WebsSphere vizsgálata hozta. Azt tartjuk meglepınek, hogy az IBM a tapasztaltakkal ellentétben azt kommunikálja, hogy terméke megfelel a BPEL 2.0 elıírásainak [19],[9].
6. Összefoglalás A dokumentum célja összefoglalni azokat a tapasztalatokat, melyeket jelentıs gyártók SOA fejlesztıeszközeinek és BPEL motorjainak eddigi használata során nyertünk. Mint ahogy a bevezetıben utaltunk rá, az elsıdleges cél a BPEL nyelv hordozhatóságának vizsgálata volt. A vizsgálati tapasztalatok megerısítették korábbi feltételezésünket, és azt a szakirodalomból származó véleményt, hogy ma még a BPEL nem egyformán támogatott folyamatleírási nyelv. Ennek elsıdleges oka, hogy a 2.0-ás szabvány nagyon friss. Ezt a verziót 2007 novemberében fogadta el az OASIS (Organization for the Advancement of Structured Information Standards) konzorcium [1]. Így egyes gyártók még nem építették be termékeikbe azt. Alapvetıen ez magyarázza BPEL kód hordozhatóságával kapcsolatban tapasztaltakat. Ugyanakkor maga a BPEL szabvány nem definiálja a folyamat grafikus megjelenítésének részleteit. Pontosabban nem ad információt arra, hogy az egyes folyamatelemek grafikus megjelenítéséhez szükséges információkat hogyan, milyen formában, milyen szimbólumokkal és hol kell tárolni. Ezért a fejlesztıeszközök ezt teljesen egyedileg tárolják, amibıl az következik, hogy egy adott folyamat grafikus megjelenése két különbözı fejlesztıeszközben még akkor is eltérhet, ha a két eszköz a BPEL szabvány elıírásainak mindenben eleget tesz. A fentiek miatt az e-közigazgatási keretrendszer folyamatainak BPEL-ben történı elsıdleges leírását nem javasoljuk. A BPEL jól használható technológiai folyamatleíró nyelvként abban az esetben, ha az egy magas szintő folyamatleírásból a megfelelı változatban automatikusan generálható. A magas szintő leírás kiválasztására a Folyamatleíró nyelv kiválasztása c. anyagban [3] teszünk javaslatot, mely dokumentum szintén az e-közigazgatási keretrendszer része.
13/14
Szállítói termékek interoperabilitási vizsgálata
7. Irodalomjegyzék [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22]
OASIS (Organization for the Advancement of Structured Information Standards) honlap: http://www.oasis-open.org, 2008. március BPEL (Business Process Execution Language) standard: http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.pdf, 2008. március Folyamatleíró nyelv kiválasztása, EKK_ekozig_folyamatleiro_kivalasztasa080728_V1-4.doc ActiveBPEL honlap: http://www.activevos.com/products.php, 2008. június WSDL specifikáció: http://www.w3.org/TR/wsdl, 2008. június OpenESB honlap: https://open-esb.dev.java.net/index.html, 2008. június Sun Java Composite Application Platform Suite (Java CAPS) honlap: http://www.sun.com/software/javaenterprisesystem/javacaps/index.jsp, 2008. június WebSphere Integration Developer honlap: http://www-306.ibm.com/software/integration/wid/, 2008. június WebSphere Process Server honlap: http://www-306.ibm.com/software/integration/wps/, 2008. június Microsoft BizTalk Server honlap: http://www.microsoft.com/biztalk/en/us/default.aspx, 2008. június CAPS termék fejlıdési vonulata: http://blogs.sun.com/lerognon/entry/history_of_java_caps_product, 2008. június GlassFish honlap: https://glassfish.dev.java.net/, 2008. június NetBeans honlap: http://www.netbeans.org/, 2008. június Oracle SOA Suite honlap: http://www.oracle.com/technologies/soa/soa-suite.html, 2008. június J2EE Java 2 Platform, Enterprise Edition honlap: http://java.sun.com/javaee WebSphere Application Server honlap: http://www-306.ibm.com/software/webservers/appserv/was/, 2008. március Eclipse honlap: http://www.eclipse.org/, 2008. március Oracle BPEL Process Manager: honlap http://www.oracle.com/technology/products/ias/bpel/index.html, 2008. március Websphere BPM megoldáscsomag, IBM, 2007 Weszolgáltatások összehangolása: a BPEL kiszolgáló elınyei, Oracle tájékoztató, 2004. An Introduction to BPEL, http://www.developer.com/services/article.php/3609381, 2008. március Simon Balázs: Szolgáltatás alapú elektronikus közigazgatás, diplomaterv, 2008
14/14