FEJLESZTÉSI KERETRENDSZER ÉS KOMPONENSTÁR



Hasonló dokumentumok
OKTATÁSI CSOMAG (SOA)

KÖZPONTI RENDSZER PILOT PROJEKTTERV

FOLYAMATLEÍRÁST SEGÍTİ GYAKORLATI ÚTMUTATÓ

SZÁLLÍTÓI TERMÉKEK INTEROPERABILITÁSI VIZSGÁLATA

ÚTMUTATÓ AKKREDITOROK SZÁMÁRA

Elektronikus közigazgatási keretrendszer Mentési rend ajánlás ELEKTRONIKUS KÖZIGAZGATÁSI KERETRENDSZER MENTÉSI REND AJÁNLÁS

A MAGYAR SOA ALAPÚ ARCHITEKTÚRA RENDSZERTERVE

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

ELEKTRONIKUS KÖZIGAZGATÁSI KERETRENDSZER INCIDENSMENEDZSMENT AJÁNLÁS

ELEKTRONIKUS KÖZIGAZGATÁSI KERETRENDSZER IT ÜGYFÉLSZOLGÁLAT AJÁNLÁS

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

SZOLGÁLTATÁSOK MEGFELELİSÉG VIZSGÁLATÁBAN TECHNIKAI LEÍRÁS KÖZREMŐKÖDİ SZERVEZETEKRE VONATKOZÓ ELVÁRÁSOK

ELEKTRONIKUS KÖZIGAZGATÁSI KERETRENDSZER RENDELKEZÉSREÁLLÁS MENEDZSMENT AJÁNLÁS

Szoftvertechnolo gia gyakorlat

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

RapidMiner telepítés i. RapidMiner telepítés

ELEKTRONIKUS KÖZIGAZGATÁSI KERETRENDSZER KIADÁSMENEDZSMENT AJÁNLÁS

BaBér bérügyviteli rendszer telepítési segédlete év

MINTA BIZTONSÁGI KATEGORIZÁLÁS SEGÉDLET

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Bevezetés a QGIS program használatába Összeálította dr. Siki Zoltán

Android alapok. Android játékfejlesztés

Bérprogram vásárlásakor az Ügyfélnek ben és levélben is megküldjük a termék letöltéséhez és aktiválásához szükséges termékszámot.

TERKA Törvényességi Ellenőrzési Rendszer Kiegészítő Alkalmazás

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

Útmutató az OKM 2007 FIT-jelentés telepítéséhez

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

SDX Professional 1.0 Telepítési leírás

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Oralce kliens installálása Windows Server 2003-ra

Adobe Reader program beállítása elektronikus aláírás és idıbélyeg ellenırzésére

NEPTUN 3R DIPLOMA MELLÉKLET NYOMTATÁS BEÁLLÍTÁSA

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

GIRO GSM MODEM/VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

Java programozási nyelv 6. rész Java a gyakorlatban

Telepítés, újratelepítés több számítógépre, hálózatos telepítés Kulcs-Bér program

I. A program áttelepítése másik számítógépre

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

VideoJet X10/X20/X40. Hálózati videokiszolgáló. Gyorstelepítési útmutató

PDF. Tartalomjegyzék 1/21

Netis Vezetékes ADSL2+, N Modem Router Gyors Telepítési Útmutató

Telepítési útmutató. web:

Útmutató a LOGSYS fejlesztői kábel eszközmeghajtó programjainak telepítéséhez

Netis vezeték nélküli, N típusú Router Gyors Telepítési Útmutató

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Útmutató 2010.

Technikai információk fejlesztőknek

Hardver és szoftver követelmények

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows 7 operációs rendszer és Internet Explorer 9 verziójú böngésző esetén

4. Válasszuk ki a dolgozót, majd nyomjuk meg az gombot. Megjelenik a dolgozó adatlapja. 5. Nézzük át, hogy minden adat helyesen van-e kitöltve, szüksé

1. DVNAV letöltése és telepítése

Magyar Gyors felhasználói útmutató A GW-7100PCI driver telepítése Windows 98, ME, 2000 és XP operációs rendszerek alatt

Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával

DOAS FordEcat kapcsolat beállítása

Metamodellezés. Simon Balázs BME IIT, 2011.

1 Rendszerkövetelmények

TvNetTel Internet Kapcsolat Beállítása

1. A Windows programok telepítése

PF1K bizonylatok kezelése ERA rendezések felhasználói dokumentum Lezárva:

Az Outlook levelező program beállítása tanúsítványok használatához

Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren

Infocentrum Számlázó hálózatos verzió + Firebird Adatbázismotor

INFORMATIKAI SEGÉDLET AZ ELEKTRONIKUS BEADVÁNYOK BENYÚJTÁSÁHOZ

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

A MOKKA hitelesítő szoftver telepítése és használata

OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)

Guarding Vision Beállítása

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

VisualBaker Telepítési útmutató

XML Webszolgáltatás alapú osztott alkalmazás fejlesztése Johanyák Zsolt Csaba 1

DRÉN & VALNER SZOFTVER KFT 4031 Debrecen, Egyetem sugárút 11/a. 1/5. 52/ , 52/ , 30/

INFORMATIKAI RENDSZERGAZDA SZAKKÉPESÍTÉS TANULÓI SEGÉDLET. Windows áttelepítő használatához

Adóbevallás leadása elektronikusan

A program telepítése

Oktatás. WiFi hálózati kapcsolat beállítása Windows XP és Windows 7-es számítógépeken. SZTE Egyetemi Számítóközpont

Használati útmutató a Székács Elemér Szakközépiskola WLAN hálózatához

M-Files Dokumentumkezelő telepítése

ElitBÉR bérrendszer telepítése hálózatos környezetben

JNDI - alapok. Java Naming and Directory Interface

Virtual Call Center kliens program MSI csomag telepítése

Mobil Partner telepítési és használati útmutató

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Telepítési útmutató a SMART Notebook 10 SP1 szoftverhez

Szolgáltatási szerződés elektronikus aláírása

Programozási technológia

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

Netlock Kft. által kibocsátott elektronikus aláírás telepítése Windows XP SP3 Internet Explorer 8 böngészőbe

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

KIRA. KIRA rendszer. Telepítési útmutató v1

Java Programozás 11. Ea: MVC modell

Ügyviteli rendszerek hatékony fejlesztése Magic xpa-val mobilos funkciókkal kiegészítve (kezdő) Szoftver telepítési útmutató

FITNESS SYSTEM Telepítési útmutató

OOP: Java 8.Gy: Abstract osztályok, interfészek

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

Átírás:

FEJLESZTÉSI KERETRENDSZER ÉS KOMPONENSTÁR

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:

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) 2008.09.22 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 Fejlesztési keretrendszer és komponenstár Az e-közigazgatás informatikai rendszere, e-közigazgatás, szolgáltatás alapú architektúra A dokumentum a szolgáltató állam által a közeljövıben kialakítandó ügyfélközpontú és ügyfélbarát elektronikus közigazgatási szolgáltatások megvalósításához szükséges informatikai rendszer felépítésére tesz javaslatot. Tárgyalja az e-közigazgatás szereplıinek kapcsolódási rendszerét, az e-közigazgatási rendszer tipikus komponenseit, az ügyfelek és szolgáltatók kapcsolódási módjait, az egységes kapcsolatrendszert biztosító e-közigazgatási szolgáltatási sín csatlakozási felületének leírását és a csatlakozás adminisztratív feltételeit. Szöveg Magyarország e-közigazgatási Keretrendszer Kialakítása projekt Miniszterelnöki Hivatal BME Informatikai Központ Magyar V1 Végleges EKK_ekozig_FejlesztesiKeretrendszerKomponenstar_080922_V1.doc

Verziókövetési táblázat A dokumentum neve Fejlesztési keretrendszer és komponenstár A dokumentum készítıjének neve BME IK A dokumentum jóváhagyójának neve A dokumentum készítésének dátuma 2009.09.21. Verziószám V1 Összes oldalszám 31 A projekt azonosítója e-közigazgatási Keretrendszer Kialakítása projekt Változáskezelés Verzió Dátum A változás leírása V1 2008.09.22. végleges V2 V3

Szövegsablon Megnevezés Leírás 1. Elıszó (Foreword) Az Elektronikus Közigazgatási Keretrendszer Kialakítása (EK3) projekt részeként indult Alkalmazásfejlesztési keretrendszer kidolgozása alprojekt célja: A magyar e-közigazgatási rendszer szolgáltatásorientált architektúrájának specifikálása A közigazgatási szolgáltatási sín (ESB) és mőködési rendjének specifikálása Fejlesztési útmutató és menetrend (roadmap) elkészítése Fejlesztési keretrendszer és komponenstár tartalmi meghatározása A fenti témákban oktatási csomagok kidolgozása Jelen dokumentum az alprojekt egyik terméke. 2. Bevezetés (Preamble) A dokumentum tárgyalja a fejlesztési keretrendszer és komponenstár telepítési útmutatóját valamint egy példát, amely lépésrıl lépésre bemutatja a keretrendszer és a komponenstár használatának módját. 3. Alkalmazási terület (Scope) Elektronikus közigazgatás 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)

Tartalomjegyzék OpenAmeos...8.NET 3.5 és Windows SDK...10 JAX-WS RI...12 A kódgenerátor konfigurálása...13 Modellezés: projekt létrehozása...14 Modellezés: osztálydiagramok elkészítése...16 Modell exportálása...20 Kódgenerálás...21 Szolgáltatások implementálása...22 Folyamat elkészítése...24 Telepítés...29 Tesztelés...29

SOA fejlesztői keretrendszer és komponenstár telepítési és felhasználói útmutató Bevezetés Ez a dokumentum az XSD, WSDL és BPEL kódok generálására alkalmas kódgenerátor telepítésének és használatának menetét írja le. Először a beszerzendő komponensek és ezek telepítési útmutatói kerülnek ismertetésre. A dokumentum második fele az Ameos modellező eszköz és a generátor használatának módját mutatja be.

A telepítő tartalma A SoaCodeGenInstall.zip fájl tartalma: Ameos: az Ameos-hoz tartozó komponensek o Mof2Xmi: TDL kódgenerátor Ameos-hoz, amely az UML modellt MOF XMI-ba menti o Profile: a specifikált profile XSD, WSDL és BPEL generálásához Docs: dokumentációk SoaCodeGenerator: a kódgenerátor binárisai Telepítés OpenAmeos Modellezéshez az OpenAmeos nevű eszköz használható. Ez letölthető a következő címről: http://www.openameos.org/ Telepítéskor érdemes egy szóközt és ékezetet nem tartalmazó könyvtárat választani, pl: C:\Programs\OpenAmeos9.2.0 A telepítés után a csatolt Ameos\Mof2Xmi\main.tdl fájlt másoljuk be a következő könyvtárba: C:\Programs\OpenAmeos9.2.0\templates\uml\tdl\Languages\Mof2Xmi\main.tdl A projektek elhelyezéséhez hozzuk létre az alábbi könyvtárat: C:\Programs\OpenAmeos9.2.0\Projects Indítsuk el az Ameos-t, majd állítsuk be az alapértelmezett projektkönyvtárat (Admin/Preferences ): A Project Directory sorba írjuk be a következőt: C:\Programs\OpenAmeos9.2.0\Projects

Kattintsunk az OK gombra, majd az újraindítási kérdésre válaszoljunk nemmel, és manuálisan lépjünk ki. (Az automatikus újraindítás nem működik.) A base-line-ok elhelyezéséhez készítsük el az alábbi könyvtárat: C:\Programs\OpenAmeos9.2.0\Projects\baseline A profile telepítéséhez a csatolt Ameos\Profile\xsdwsdlbpel_profile.zip-et másoljuk be a következő könyvtárba: C:\Programs\OpenAmeos9.2.0\Projects\baseline Indítsuk el az Ameos-t, és kattintsunk a System/Baselines/Restore Selected Baseline menüpontra:

Adjuk meg az alábbi adatokat (fontos, hogy a Profiles könyvtárat válasszuk célkönyvtárnak!): Kattintsunk az OK gombra, így a profile telepítésre kerül. Lépjünk ki az Ameos-ból és az Ameos főkönyvtárában lévő C:\Programs\OpenAmeos9.2.0\ToolInfo.W32NTX86 fájlban keressük meg a következő sort: uml_profiles=c:\programs\openameos9.2.0\profiles/uml_profile ezt egészítsük ki, hogy az új profile-t is tartalmazza, pl.: uml_profiles=c:\programs\openameos9.2.0\profiles/uml_profile;c:\programs\openameos9.2.0\profiles/xsdwsdlbpel_profile (Amennyiben másik telepítési könyvtárat választottunk, értelemszerűen cseréljük le mindenhol az elérési útvonalakat.) Az Ameos ezzel készen áll a fejlesztésre..net 3.5 és Windows SDK A C# fájlok előállításához és fordításához szükség van az SvcUtil segédprogramra és a C# fordítóra. Ezek a Visual Studio 2008 telepítése után automatikusan elérhetők, de az eszköz nagyon sok helyet foglal. Ha a Visual Studio telepítését mellőzni kívánjuk, akkor a következő komponenseket kell letölteni és telepíteni ebben a sorrendben: 1..NET 2.0: http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en (22.4 MB) 2..NET 3.0: http://www.microsoft.com/downloads/details.aspx?familyid=10cc340b-f857-4a14-83f5-25634c3bf043&displaylang=en (2.8 MB) 3..NET 3.5: http://www.microsoft.com/downloads/details.aspx?familyid=333325fd-ae52-4e35-b531-508d977d32a6&displaylang=en (2.7 MB) Ezt követően a C# fordító alapértelmezett elérési útvonala (a továbbiakban [Csc]): c:\windows\microsoft.net\framework\v3.5\csc.exe

Ezután még a Windows SDK-t kell telepíteni: http://www.microsoft.com/downloads/details.aspx?familyid=e6e1c3df-a74f-4207-8586- 711EBE331CDC&displaylang=en A fenti linken egy kis letöltő és telepítő program van, ami csak a kiválasztott komponenseket installálja. Mivel az összes komponens elég sok helyet foglal, csak a következő komponenseket telepítsük: Telepítés után az SvcUtil.exe alapértelmezett elérési útvonala (a továbbiakban [SvcUtil]): c:\program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil.exe

JAX-WS RI A JAX-WS típusú szolgáltatások elkészítéséhez JDK 6-ot és a JAX-WS referencia implementációját kell beszerezni: http://java.sun.com/javase/downloads/index.jsp https://jax-ws.dev.java.net/ A JDK 6 telepítése után JAVA_HOME környezeti változót a JDK főkönyvtárára kell állítani, valamint a PATH környezeti változóban szerepeljen a java.exe könyvtára is! Ezt követően a JAX-WS RI-t tartalmazó bináris jar fájlt kell elindítani: %JAVA_HOME%\bin\java -jar JAXWS2.1.4-20080502.jar A lincensz elfogadása után a tartalma kibontásra kerül, pl. a C:\Programs\jaxws-ri könyvtárba. Ezt a könyvtárat kell megadni a JAXWS_HOME környezeti változóban. A lépések elvégzése után tehát a következőképpen nézhetnek ki a beállítások: Végül a %JAXWS_HOME%\lib\jaxb-api.jar és a %JAXWS_HOME%\lib\jaxws-api.jar fájlokat a következő könyvtárba kell másolni (ha nem létezik, létre kell hozni): %JAVA_HOME%\jre\lib\endorsed\

A kódgenerátor konfigurálása A kódgenerátor (SoaCodeGenerator.zip) kibontását követően a könyvtárban a következő fájlok találhatók: lib o amof2.0forjava.jar: a MOF metamodell Java implementációja o GenericVisitorCombinator.jar: visitor kombinátorok o MDACodeGeneratorCore.jar: a kódgenerátor magja o Mof2Loop.jar: loop bejárások a MOF metamodellhez o SbUtils.jar: néhány hasznos segédosztály o SoaCodeGenerator.jar: a kódgenerátor SoaCodeGenerator.bat: ezzel indítható a generátor config.xml: a kódgenerátor beállításai A config.xml tartalma: <?xml version="1.0" encoding="utf-8"?> <java version="1.6.0_02" class="java.beans.xmldecoder"> <object class="main.integrate.config"> <void property="csc"> <string>"c:\windows\microsoft.net\framework\v3.5\csc.exe"</string> </void> <void property="svcutil"> <string>"c:\program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil.exe"</string> </void> <void property="wsimport"> <string>"c:\programs\jaxws-ri\bin\wsimport.bat"</string> </void> <void property="xjc"> <string>"c:\program Files\Java\jdk1.6.0_02\bin\xjc.exe"</string> </void> </object> </java> Ebben a fájlban kell megadni az egyes eszközspecifikus generátorokra való referenciákat. A C# fordító elérési útját a csc property, az SvcUtil elérési útját az svcutil property, a JAX-WS-ben található wsimport.bat elérési útját a wsimport property, a JDK-ban található xjc.exe elérési útját az xjc property írja le. Minden elérési út abszolút legyen!

A komponenstár használata Modellezés: projekt létrehozása Első lépésként Ameos-ban meg kell rajzolni az UML osztálydiagramokat a profile-nak megfelelően. Ehhez hozzunk létre egy új Sytem-et: Adjunk neki nevet (a példában Eva):

Válasszuk ki az xsd, wsdl és bpel profile-okat: Végül az OK gomb megnyomására elkészül a System. (Windows Vistán az UAC többször (8-10) is megjelenhet, ilyenkor minden lépésben engedélyezni kell a műveletet.) Érdemes kikapcsolni a lock-okat, ha csak egyedül dolgozunk a modellen, mivel néha beragadnak, és a lock-olt modellelemeket nem lehet törölni. A kikapcsolást a következő menüponttal tehetjük meg: A megjelenő ablakban válasszuk a Locking subsystem-et:

A megjelenő parancssorban adjuk ki rendre a status, disable, status, quit, quit parancsokat: Ha ezekkel a beállításokkal készen vagyunk, rajzoljuk meg a kívánt osztálydiagramokat a profile-nak megfelelően (ld. következő szakasz). Modellezés: osztálydiagramok elkészítése Egy egyszerűsített EVA áttérési folyamatot készítünk el. Ez a következőképpen néz ki: 1. Az APEH megadja egy vállalkozó bevételét az adószám alapján. 2. A Cégbíróságnál kell átállítani a vállalkozás formáját EVÁ-ra, amely visszaadja, hogy a művelet sikeres volt-e. 3. A vezérlő folyamat először lekérdezi a bevételt, és amennyiben az nem haladja meg a 20 millió Ft-ot, átállítja a vállalkozás formáját EVÁ-ra. A folyamat bemenete a vállalkozó adószáma, kimenete az ügyintézés eredménye: átváltott-e a vállalkozás típusa EVÁ-ra. El kell készíteni tehát az APEH, a Cégbíróság és a folyamat interfészeit leíró UML osztályokat. A Class elemen jobbgombbal kattintva adjunk hozzá egy új osztálydiagramot a projekthez:

Az osztálydiagram palettája: Rajzoljunk egy package-et, nevezzük el EvaSample-nek, majd duplán kattintva rajta az Object fülön adjuk meg a színét, az Extensibility fülön pedig az alábbi beállításokat: Az Apply gomb hatására érvényre jutnak a beállítások.

Készítsük el az alábbi osztályokat a csomagon belül: Az osztályon kétszer kattintva a Members fülön értelemszerűen kitölthetők a metódusok adatai, pl.: Az Apply gomb hatására érvényre jutnak a beállítások.

Minden osztályhoz az Extensibility fülön adjuk hozzá az alábbi stereotype-okat: A Soap11Binding tagged value-inak értéke legyen a következő: Vegyük fel az alábbi dependency-ket és lássuk el őket a megfelelő stereotype-okkal:

Mentsük el a modellt, amely így készen áll a generáláshoz. Modell exportálása A modell elkészülte után futtassuk le a Mof2Xmi generátort (a főablakban jobb egérgombra jelenik meg a menü): Ennek hatására az üzenetek logjában a következők jelennek meg: Az adott projekt könyvtárában előáll a modell XMI változata, pl.: c:\programs\openameos9.2.0\projects\eva\src_files\eva.xmi Ez a bemenete a kódgenerátornak.

Kódgenerálás A kódok generálásához másoljuk át a keletkezett XMI-t a kódgenerátor könyvtárába, majd indítsuk el a SoaCodeGenerator.bat fájlt, paraméterként pedig adjuk át az XMI fájl nevét kiterjesztés nélkül! Pl.: SoaCodeGenerator.bat Eva Ha minden eszköz telepítése és konfigurálása megfelelő, akkor a keletkezett fájlok egy output nevű könyvtárban jelennek meg: output: az alapértelmezett kimeneti könyvtár o common: a korábbi fejezetekben ismertetett XSD-k, WSDL-ek és BPEL-ek schema: az XSD-k wsdl: a WSDL-ek bpel: a BPEL-ek o stubs: az eszközspecifikus stub-ok wcf: a WCF stub-jai jaxws: a JAX-WS stub-jai o projects: az eszközspecifikus projektek ActiveBPEL: az ActiveBPEL-ben megnyitható projektek (1.1 és 2.0-ás BPELhez) OpenESB: az OpenESB-ben megnyitható projektek (JAX-WS és 2.0-ás BPEL) OracleJDeveloper10g: Oracle JDeveloper 10g-ben megnyitható projektek (1.1-es BPEL) OracleJDeveloper11g: Oracle JDeveloper 11g-ben megnyitható projektek (JAX-WS) VisualStudio2008: Visual Studio 2008-ban megnyitható projektek (WCF) Másoljuk ki a kívánt eszköz megfelelő projektjét, nyissuk meg az eszközben és implementáljuk a szolgáltatásokat!

Szolgáltatások implementálása Implementáljuk a szolgáltatásokat például Visual Studio 2008-ban! Az elkészült solution-t megnyitva a következő lesz az eredmény: Írjuk meg az Apeh kódját: namespace EvaSample { public class Apeh : IApeh { // Az eredmény a kapott adószám tízszerese lesz: public long GetBevetel(string adoszam) { long result; if (long.tryparse(adoszam, out result)) return result * 10; else return 0; } } }

És a Cégbíróságét: namespace EvaSample { public class Cegbirosag : ICegbirosag { // A c:\temp\cegbirosag.txt-ben egy új bejegyzés keletkezik public bool SetVallalkozasForma(string adoszam, string forma) { using(streamwriter output = new StreamWriter(@"c:\Temp\cegbirosag.txt", true)) { output.writeline("ido: {0}", DateTime.Now); output.writeline("adoszam={0}, Forma={1}", adoszam, forma); output.writeline(); } return true; } } } A web.config-ban használjuk a következő konfigurációt: <system.servicemodel> <behaviors> <servicebehaviors> <behavior name="apehbehavior"> <servicemetadata httpgetenabled="true"/> <servicedebug includeexceptiondetailinfaults="false" /> </behavior> <behavior name="cegbirosagbehavior"> <servicemetadata httpgetenabled="true"/> <servicedebug includeexceptiondetailinfaults="false" /> </behavior> </servicebehaviors> </behaviors> <services> <service behaviorconfiguration="apehbehavior" name="evasample.apeh"> <endpoint address="" binding="basichttpbinding" contract="evasample.iapeh"/> <endpoint address="mex" binding="mexhttpbinding" contract="imetadataexchange" /> </service> <service behaviorconfiguration="cegbirosagbehavior" name="evasample.cegbirosag"> <endpoint address="" binding="basichttpbinding" contract="evasample.icegbirosag"/> <endpoint address="mex" binding="mexhttpbinding" contract="imetadataexchange" /> </service> </services> </system.servicemodel>

Folyamat elkészítése A projektet megnyitva ActiveVOS-ban:

A teljes folyamat képe:

A folyamat kódja: <?xml version="1.0" encoding="utf-8"?> <bpel:process xmlns:bpel="http://docs.oasisopen.org/wsbpel/2.0/process/executable" xmlns:eva="http://ik.bme.hu/eva" xmlns:merge="http://mdacodegenerator/xmlmerge-1.0" xmlns:xsd="http://www.w3.org/2001/xmlschema" merge:attributemode="copymissing" merge:contentmode="manual" merge:id="process" name="evaatteres" targetnamespace="http://ik.bme.hu/eva"> <bpel:extensions> <bpel:extension mustunderstand="no" namespace="http://mdacodegenerator/xmlmerge-1.0"/> </bpel:extensions> <bpel:import importtype="http://www.w3.org/2001/xmlschema" location="../schema/evasample.xsd" namespace="http://ik.bme.hu/eva"/> <bpel:import importtype="http://schemas.xmlsoap.org/wsdl/" location="../wsdl/evasample.wsdl" namespace="http://ik.bme.hu/eva"/> <bpel:import importtype="http://schemas.xmlsoap.org/wsdl/" location="../wsdl/evasamplepl20.wsdl" namespace="http://ik.bme.hu/eva"/> <bpel:partnerlinks> <bpel:partnerlink myrole="ievaatteresrole" name="ievaatteres" partnerlinktype="eva:ievaatteres_partnerlinktype"/> <bpel:partnerlink name="icegbirosagpl" partnerlinktype="eva:icegbirosag_partnerlinktype" partnerrole="icegbirosagrole"/> <bpel:partnerlink name="iapehpl" partnerlinktype="eva:iapeh_partnerlinktype" partnerrole="iapehrole"/> </bpel:partnerlinks> <bpel:variables> <bpel:variable merge:id="uid_fa0d1683-e1a7-4d74-a5f8- E8007DF9BAED_Input" messagetype="eva:ievaatteres_evaatteres_inputmessage" name="evaatteresinput"/> <bpel:variable merge:id="uid_fa0d1683-e1a7-4d74-a5f8- E8007DF9BAED_Output" messagetype="eva:ievaatteres_evaatteres_outputmessage" name="evaatteresoutput"/> <bpel:variable element="eva:getbevetel" name="getbevetelinput"/> <bpel:variable element="eva:getbevetelresponse" name="getbeveteloutput"/> <bpel:variable element="eva:setvallalkozasforma" name="setvallalkozasformainput"/> <bpel:variable element="eva:setvallalkozasformaresponse" name="setvallalkozasformaoutput"/> </bpel:variables> <bpel:sequence> <bpel:receive createinstance="yes" merge:attributemode="copymissing" merge:contentmode="auto" merge:id="uid_fa0d1683-e1a7-4d74-a5f8- E8007DF9BAED_Receive" name="evaatteresrequest" operation="evaatteres" partnerlink="ievaatteres" variable="evaatteresinput"/> <bpel:assign name="assigninit"> <bpel:copy> <bpel:from> <bpel:literal> <eva:evaatteresresponse> <eva:evaatteresresult>false</eva:evaatteresresult> </eva:evaatteresresponse> </bpel:literal> </bpel:from> <bpel:to part="parameters" variable="evaatteresoutput"/>

</bpel:copy> <bpel:copy> <bpel:from> <bpel:literal> <eva:getbevetel> <eva:adoszam>string</eva:adoszam> </eva:getbevetel> </bpel:literal> </bpel:from> <bpel:to variable="getbevetelinput"/> </bpel:copy> <bpel:copy> <bpel:from part="parameters" variable="evaatteresinput"> <bpel:query>eva:adoszam</bpel:query> </bpel:from> <bpel:to variable="getbevetelinput"> <bpel:query>eva:adoszam</bpel:query> </bpel:to> </bpel:copy> </bpel:assign> <bpel:invoke inputvariable="getbevetelinput" name="getbevetel" operation="getbevetel" outputvariable="getbeveteloutput" partnerlink="iapehpl"/> <bpel:if> <bpel:condition>$getbeveteloutput/eva:getbevetelresult <= 20000000</bpel:condition> <bpel:sequence> <bpel:assign name="assignsetvallalkozasforma"> <bpel:copy> <bpel:from> <bpel:literal> <eva:setvallalkozasforma> <eva:adoszam>string</eva:adoszam> <eva:forma>string</eva:forma> </eva:setvallalkozasforma> </bpel:literal> </bpel:from> <bpel:to variable="setvallalkozasformainput"/> </bpel:copy> <bpel:copy> <bpel:from part="parameters" variable="evaatteresinput"> <bpel:query>eva:adoszam</bpel:query> </bpel:from> <bpel:to variable="setvallalkozasformainput"> <bpel:query>eva:adoszam</bpel:query> </bpel:to> </bpel:copy> <bpel:copy> <bpel:from>'eva'</bpel:from> <bpel:to variable="setvallalkozasformainput"> <bpel:query>eva:forma</bpel:query> </bpel:to> </bpel:copy> </bpel:assign> <bpel:invoke inputvariable="setvallalkozasformainput" name="setvallalkozasforma" operation="setvallalkozasforma" outputvariable="setvallalkozasformaoutput" partnerlink="icegbirosagpl"/> <bpel:assign name="assignevaatteresoutput"> <bpel:copy> <bpel:from variable="setvallalkozasformaoutput"> <bpel:query>eva:setvallalkozasformaresult</bpel:query>

</bpel:from> <bpel:to part="parameters" variable="evaatteresoutput"> <bpel:query>eva:evaatteresresult</bpel:query> </bpel:to> </bpel:copy> </bpel:assign> </bpel:sequence> </bpel:if> <bpel:reply merge:attributemode="copymissing" merge:contentmode="auto" merge:id="uid_fa0d1683-e1a7-4d74-a5f8- E8007DF9BAED_Reply" name="evaatteresresponse" operation="evaatteres" partnerlink="ievaatteres" variable="evaatteresoutput"/> </bpel:sequence> </bpel:process> A folyamatleíró tartalma (EvaAtteres20.pdd): <?xml version="1.0" encoding="utf-8"?> <pdd:process xmlns:bpelns="http://ik.bme.hu/eva" xmlns:pdd="http://schemas.active-endpoints.com/pdd/2006/08/pdd.xsd" location="bpel/eva20/bpel/evaatteres20.bpel" name="bpelns:evaatteres" platform="enterprise"> <pdd:partnerlinks> <pdd:partnerlink name="iapehpl"> <pdd:partnerrole endpointreference="static" invokehandler="default:address"> <wsa:endpointreference xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:ns5="http://ik.bme.hu/eva" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <wsa:address>http://genius/eva/services/apeh.svc</wsa:address> <wsa:metadata> <wsa:servicename PortName="IApeh_Soap11Binding_Port">ns5:IApeh</wsa:ServiceName> </wsa:metadata> </wsa:endpointreference> </pdd:partnerrole> </pdd:partnerlink> <pdd:partnerlink name="icegbirosagpl"> <pdd:partnerrole endpointreference="static" invokehandler="default:address"> <wsa:endpointreference xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:ns5="http://ik.bme.hu/eva" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <wsa:address>http://genius/eva/services/cegbirosag.svc</wsa:address> <wsa:metadata> <wsa:servicename PortName="ICegbirosag_Soap11Binding_Port">ns5:ICegbirosag</wsa:ServiceName> </wsa:metadata> </wsa:endpointreference> </pdd:partnerrole> </pdd:partnerlink> <pdd:partnerlink name="ievaatteres">

<pdd:myrole allowedroles="" binding="msg" service="ievaatteresservice"/> </pdd:partnerlink> </pdd:partnerlinks> <pdd:references> <pdd:schema location="project:/eva20/schema/evasample.xsd" namespace="http://ik.bme.hu/eva"/> <pdd:wsdl location="project:/eva20/wsdl/evasample.wsdl" namespace="http://ik.bme.hu/eva"/> <pdd:wsdl location="project:/eva20/wsdl/evasamplepl20.wsdl" namespace="http://ik.bme.hu/eva"/> </pdd:references> </pdd:process> Telepítés Az eszközökből telepítsük a projekteket a szokásos módon! Tesztelés Készítsünk egy egyszerű konzolos tesztprogramot Visual Studio-ban és hívjuk meg a folyamatot! A projekt létrehozása után adjuk hozzá a referenciát a web-szolgáltatásra:

Ennek hatására elkészülnek a stub-ok, valamint a következő konfigurációs fálj (app.config): <?xml version="1.0" encoding="utf-8"?> <configuration> <system.servicemodel> <bindings> <basichttpbinding> <binding name="icegbirosag_soap11binding_binding" closetimeout="00:01:00" opentimeout="00:01:00" receivetimeout="00:10:00" sendtimeout="00:01:00" allowcookies="false" bypassproxyonlocal="false" hostnamecomparisonmode="strongwildcard" maxbuffersize="65536" maxbufferpoolsize="524288" maxreceivedmessagesize="65536" messageencoding="text" textencoding="utf-8" transfermode="buffered" usedefaultwebproxy="true"> <readerquotas maxdepth="32" maxstringcontentlength="8192" maxarraylength="16384" maxbytesperread="4096" maxnametablecharcount="16384" /> <security mode="none"> <transport clientcredentialtype="none" proxycredentialtype="none" realm="" /> <message clientcredentialtype="username" algorithmsuite="default" /> </security> </binding> <binding name="ievaatteres_soap11binding_binding" closetimeout="00:01:00" opentimeout="00:01:00" receivetimeout="00:10:00" sendtimeout="00:01:00" allowcookies="false" bypassproxyonlocal="false" hostnamecomparisonmode="strongwildcard" maxbuffersize="65536" maxbufferpoolsize="524288" maxreceivedmessagesize="65536" messageencoding="text" textencoding="utf-8" transfermode="buffered" usedefaultwebproxy="true"> <readerquotas maxdepth="32" maxstringcontentlength="8192" maxarraylength="16384" maxbytesperread="4096" maxnametablecharcount="16384" /> <security mode="none"> <transport clientcredentialtype="none" proxycredentialtype="none" realm="" /> <message clientcredentialtype="username" algorithmsuite="default" /> </security> </binding> <binding name="iapeh_soap11binding_binding" closetimeout="00:01:00" opentimeout="00:01:00" receivetimeout="00:10:00" sendtimeout="00:01:00" allowcookies="false" bypassproxyonlocal="false" hostnamecomparisonmode="strongwildcard" maxbuffersize="65536" maxbufferpoolsize="524288" maxreceivedmessagesize="65536" messageencoding="text" textencoding="utf-8" transfermode="buffered" usedefaultwebproxy="true"> <readerquotas maxdepth="32" maxstringcontentlength="8192" maxarraylength="16384" maxbytesperread="4096" maxnametablecharcount="16384" /> <security mode="none"> <transport clientcredentialtype="none" proxycredentialtype="none" realm="" /> <message clientcredentialtype="username" algorithmsuite="default" /> </security> </binding> </basichttpbinding> </bindings> <client> <endpoint address="http://tempurl.org" binding="basichttpbinding" bindingconfiguration="icegbirosag_soap11binding_binding" contract="evaservicereference.icegbirosag" name="icegbirosag_soap11binding_port" /> <endpoint address="http://tempurl.org" binding="basichttpbinding" bindingconfiguration="ievaatteres_soap11binding_binding" contract="evaservicereference.ievaatteres" name="ievaatteres_soap11binding_port" /> <endpoint address="http://tempurl.org" binding="basichttpbinding" bindingconfiguration="iapeh_soap11binding_binding" contract="evaservicereference.iapeh" name="iapeh_soap11binding_port" />

</client> </system.servicemodel> </configuration> A tesztelő program kódja: namespace EvaTest { class Program { static void Main(string[] args) { try { Program.TestEvaAtteres("123456"); Program.TestEvaAtteres("123456789"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } } } public static void TestEvaAtteres(string adoszam) { EvaAtteresClient evaatteres = new EvaAtteresClient("IEvaAtteres_Soap11Binding_Port", "http://genius:8080/active-bpel/services/ievaatteresservice"); try { bool siker = evaatteres.evaatteres(adoszam); if (siker) Console.WriteLine("A(z) {0} adszámú vállalkozás formája EVÁ-ra váltott.", adoszam); else Console.WriteLine("A(z) {0} adszámú vállalkozás formája nem változott.", adoszam); } finally { evaatteres.close(); } }

A tesztet lefuttatva az eredmény a következő: A c:\temp\cegbirosag.txt tartalma: Ido: 9/19/2008 6:38:16 PM Adoszam=123456, Forma=EVA Az ActiveVOS konzolon megjelent a két folyamat: