Ebben a bejegyzésben az Oracle egyik ESB megoldásával, az Oracle Service Bus-szal ismerkedünk meg egy kicsit összetettebb HelloWorld demó segítségével, mely elkészítéséhez forráskódot és rövid leírást is nyújtunk.
Az alábbi szoftverekre lesz szükségünk:
- · Oracle Weblogic Server 11g (alkalmazás szerver)
- · Oracle Service Bus (szolgáltatás busz)
- · Oracle Enterprise Pack for Eclipse (Eclipse fejlesztőeszköz plug-in)
- · Oracle Database 10g Express Edition (adatbázis)
Az első három termék az Oracle Fusion Middleware 11g csomag része és az alábbi linken érhetőek el:
http://www.oracle.com/technetwork/middleware/service-bus/downloads/index.html
Megemlíteném, hogy az Oracle middleware platformjára való fejlesztéshez elsődlegesen ajánlott eszköz a JDeveloper, ebben a leírásban azonban a Weblogic Serverhez mellékelt Oracle Enterprise Pack for Eclipse IDE-t (a továbbiakban OEPE) fogjuk használni.
A fejlesztői környezet beállítása
A fejlesztői környezet beállítása a fent felsorolt szoftverek letöltését, telepítését és konfigurációját foglalja magába, ehhez a következő leírás szolgál segítségül:
http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15017/overview.htm#OSBIN1010
A telepítés során:
· létrejön az úgynevezett middleware home mappa, melybe a middleware portfólió komponensei és azok beállításai kerülnek
· a Weblogic szerverhez elkészítünk egy domaint JAX-WS támogatással
· kiválaszthatjuk, hogy milyen JRE-et használjon a szerver (a hosztgépen futó SDK-t vagy az enterprise környezethez optimalizált JRockit-ot)
· megadhatjuk, hogy fejlesztői vagy produkciós környezetbe telepítjük-e a Weblogic alkalmazás szervert
· az alábbi topológia kerül kialakításra:
Ezután indítsuk el az OEPE-t, majd vegyük fel a Weblogic Servert a Server Runtime-ok közé.
Telepítsük az Oracle Database 10g adatbázis szervert is, (használható természetesen más adatbázis szerver is), majd vegyük fel datasource-ként a Weblogic Serverben az Admin Console felület segítségével (http://localhost:7001/console). A datasource neve legyen oracleDS (erre hivatkoznak a csatolt források perzisztencia beállításai).
Az integrációs forgatókönyv
A csatolt demó konstrukcióban három pénzintézet(bank) rendszerei lépnek egymással interakcióba. Miután a hangsúly az Oracle Service Bus funkciónak bemutatásán van, így nem kerül sor banki funkciók sokaságának kidolgozására vagy a robosztus működés megvalósítására sem: az egyes bankok csupán felhasználóik és azok számlaegyenlegeinek nyilvántartását végzik és ezen funkcionalitáshoz, mint üzleti szolgáltatásokhoz biztosítanak hozzáférést.
Az ESB modul egy architekturális szinttel feljebb foglal helyet: a bankok kiajánlott szolgáltatásaiból, azok meghívásával és közbeiktatott, mediációs logika segítségével komponál újabb szolgáltatást (és közben elvégzi a különböző banki interfészek közötti transzformációt is), esetünkben pénzátutalást valósít meg a bankok között és adott bankon belül.
Az alkalmazások telepítése
A három egyszerű bank implementáció forrását a mellékelt osb_helloworld.zip fájl alábbi mappái tartalmazzák:
- · ElsoBank
- · DunaBank
- · NepBank
Hozzunk létre ezekkel a nevekkel új Webservice projekteket az OEPE-ben, másoljuk be az egyes kód részleteket, majd deploy-oljuk őket a Weblogic Serverre. Az alkalmazások sikeres telepítéséről a szerver logból tudunk meggyőzödni. Mindhárom rendszer webszolgáltatás interfésze rendelkezik egy initialize nevű operációval, ezeket meghívva tudjuk példaadatokkal feltölteni az adatbázist; illetve az egyes felhasználók neveit és egyenlegeit lekérdező operációk is rendelkezésre állnak, melyekkel ellenőrizni tudjuk azokat.
A rendszerek webszolgáltatás-teszteléséhez a soapUI programot javaslom, melyhez workspace-t és példaprojektet mellékeltünk a csatolt állományban.
A kis banki példa alkalmazások sikeres inicializálása után nekiállhatunk az ESB modul telepítésének, ehhez másoljuk be a workspace-ünkbe a csatolt ElsoOSBConfig és MoneySender mappákat és importáljuk be az OEPE felületén is őket (Import > Existing Projects to workspace). A legtöbbet ezen a ponton sajátíthatunk el az OSB mediációival kapcsolatban, még pedig a PenzProxy szolgáltatás mediációjának és az egyes XQuery-k kódjának tanulmányozásával.
Ezután a modul telepítése a szerverre az alkalmazásokéhoz hasonlóan történik, annyi különbséggel, hogy az ElsoOSBConfig konfigurációs projektet kell csak telepíteni, mivel ez tartalmazza a MoneySendert.
Az új szolgáltatás WSDL leírója az alábbi címen érhető el:
· http://localhost:7001//MoneySender/ProxyServices/PenzProxy?wsdl
Ezt a szolgáltatást tesztelhetjük soapUI segítségével is, de még több információt kapunk az Oracle Service Bus konzol felületének (http://localhost:7001/sbconsole/) Debug üzemmódjában (Resource Browser > Proxy Services), mivel az egyes tesztkérések elküldése után itt láthatóvá válnak a mediációs primitívek által végrehajtott lépések is. Megjegyezném még, hogy ezen a felületen lehetőség nyílik a telepített mediáció weben keresztül történő szerkesztésére is (szintén hasznos feature).
A felépített architektúra az alábbi ábrán látható:
Remélem hasznos volt ez a példa megoldás, ha bárhol elakadtatok, kérdezzetek nyugodtan!
Liter András