Oracle Generic Connectivity és Oracle Transparent Gateways Az Oracle tájékoztató kiadványa 2003. november
Oracle Generic Connectivity és Oracle Transparent Gateways
VEZETŐI ÖSSZEFOGLALÓ...................................................................................3 BEVEZETÉS..................................................................................................................3 KÜLÖNBÖZŐ FORRÁSRENDSZEREK ÖSSZEKAPCSOLÁSA .................4 Az SQL-utasítások átfordítása..................................................................................4 Az adatszótárak átfordítása.......................................................................................4 Az adattípusok átfordítása ........................................................................................5 AZ ORACLE SZINKRON ADATINTEGRÁCIÓS MEGOLDÁSA...............5 Heterogeneous Services.............................................................................................5 Transaction Service (tranzakciókezelés).............................................................6 SQL Service (SQL-hívások) .................................................................................6 Procedural Service (eljáráshívások).....................................................................7 Pass-Through SQL ................................................................................................7 A Heterogeneous Services előnyei...........................................................................7 Szerverintegráció....................................................................................................7 Elosztott optimalizálás..........................................................................................7 Ügynökök.....................................................................................................................8 Az SQL-utasítások és az adatszótár-információk átfordítása.........................9 Az adattípusok átfordítása....................................................................................9 Elkülönített szerverelérés (szerverizoláció) .......................................................9 Oracle Generic Connectivity ....................................................................................9 A Generic Connectivity korlátai....................................................................... 10 Oracle Transparent Gateways ............................................................................... 10 Az átjárók mobilitása.......................................................................................... 10 A HETEROGÉN RENDSZEREK TRANSZPARENCIÁJA.......................... 11 Transzparens működés........................................................................................... 11 Helytranszparencia .................................................................................................. 11 ÖSSZEFOGLALÁS ................................................................................................... 12
Oracle Generic Connectivity és Oracle Transparent Gateways
2
Oracle Generic Connectivity és Oracle Transparent Gateways
VEZETŐI ÖSSZEFOGLALÓ Az Oracle két integrációs megoldást kínál a különböző forrásrendszerekben található adatok valós idejű (szinkron) elérésére az Oracle-környezetekből. Ez a két megoldás az Oracle Generic Connectivity és az Oracle Transparent Gateways. Mindkettő az Oracle adatbázis-kezelőhöz mellékelve, annak részeként kapható.
BEVEZETÉS Komoly igény van arra, hogy a szervezetek összes információjukat egyetlen központi helyről összevont, integrált módon kezelhessék. Az adatok ilyen integrációja és konszolidálása lehetővé teszi a szervezet számára az üzleti adatok közti belső összefüggések és szinergiák könnyű, gyors hasznosítását. A kérdés az, hogyan lehet gyorsan, hatékonyan és gazdaságosan kialakítani egy olyan egységes vállalati adatkezelést, amely számos különböző forrású – Oracle és nem Oracle alapú rendszerekben található – adatot egyetlen alkalmazásból tesz elérhetővé, és ezáltal a felhasználónak egységes nézetben kínálja a vállalat rendelkezésére álló összes információt. Olyan technikai megoldásra van szükség, amellyel az informatikus szakemberek a vállalati hálózaton könnyen közzétehetik az adatokat, függetlenül attól, hogy azok forrása milyen nem Oracle alapú rendszerben, operációs rendszeren vagy hálózati platformon található. Az Oracle két megoldást kínál a különböző forrásrendszerekben található adatok valós idejű (szinkron) megosztására a szervezeten belül: Oracle Generic Connectivity és Oracle Transparent Gateways. A szinkron elérés az Oracle elosztott SQL-funkcióin alapul, amely menet közben végzi az adatok konszolidálását, és az alkalmazás vagy felhasználó elől elrejti az adatok tényleges helyét, mivel egy lokális táblának tünteti fel őket. A Generic Connectivity és a Transparent Gateways rugalmas, komoly teljesítményű és jól méretezhető transzparens hozzáférést biztosít az Oraclekörnyezetekből több mint negyven nem Oracle alapú rendszerhez, köztük a Microsoft SQL Server, IBM DB2 és Sybase rendszerekhez (az átjárók teljes listája a következő címen található: http://otn.oracle.com/products/gateways/content.html). Az alkalmazásfejlesztőknek így nem kell egyedi interfészeket fejleszteniük a nem Oracle alapú rendszerekhez, és az érdemi üzleti megoldásokra összpontosíthatnak. A Generic Connectivity és a Transparent Gateways maximálisan transzparens működésének köszönhetően mind a helyi, mind a távoli adatokat Oracle SQL és
Oracle Generic Connectivity és Oracle Transparent Gateways
3
eljáráshívás alapú interfészekkel lehet elérni, akkor is, ha a távoli adatok több más gyártó eltérő adatbázisaiban találhatók. Ez a transzparencia feleslegessé teszi az egyedi fejlesztésű alkalmazások adaptálását a különböző nem Oracle alapú forrásrendszerek adatainak eléréséhez, és így az alkalmazásfejlesztők kevesebb munkával jóval hordozhatóbb alkalmazásokat fejleszthetnek.
KÜLÖNBÖZŐ FORRÁSRENDSZEREK ÖSSZEKAPCSOLÁSA Bár úgy tűnhet, hogy különböző nem Oracle alapú rendszerek, amelyek SQLszabványokra épülnek, a felhasználói felület szintjén ugyanúgy működnek, e rendszerek között lehetnek kisebb (vagy jelentősebb) eltérések. Ezek a különbözőségek megakadályozhatják az eltérő rendszerek megfelelő együttműködését. Általában véve a rendszerek működésének három területe lehet, amely akadályozhatja a tényleges interoperabilitást: az SQL-utasítások átfordítása, az adatszótárak átfordítása és az adattípusok átfordítása. Olyan megoldásra van szükség, amely megfelelően lefordítja ezeket az egyik rendszer „nyelvjárásáról” a másikéra.
Az SQL-utasítások átfordítása Lehet, hogy egy relációs adattár szabványos SQL-re épül, mégis a különböző gyártók implementációi között finom eltérések vannak. Például ha a felhasználó az alábbi eredményhalmazt nagybetűsen szeretné visszakapni, egy Oraclekörnyezetben az alábbi SQL-utasítást hajtaná végre:
SELECT TO_UPPER(ename) FROM emp; Egy nem Oracle alapú környezetben azonban ugyanezt az eredményt esetleg a következő utasítással érné el:
SELECT UPPERCASE(ename) FROM emp; Egy heterogén megoldásnak automatikusan át kell tudnia fordítani az idegen rendszer nyelvváltozatát a helyi rendszerére (ahonnan a tranzakció indult), hogy így a felhasználónak ne kelljen több rendszer nyelvváltozatát használnia. És mindennek észrevétlenül, transzparens módon kell történnie.
Az adatszótárak átfordítása A metaadatok – az adatbázisos környezetet leíró információk – rendkívül hasznos eszközök az adatbázis-adminisztrátor számára az adatbázisos környezet felügyeletéhez. A különböző gyártók saját módszerekkel oldják meg ezeknek az adatoknak egy adatszótárban való tárolását, illetve megjelenítését. Egy olyan mechanizmusra van szükség, amely lehetővé teszi a metaadatok lekérdezését egy másik, távoli rendszerből úgy, hogy azok a helyi rendszer formátumában jelenjenek meg. Például az adatbázis-adminisztrátor a következő SQL-utasítást írja be egy Oracle adatbázis összes táblájának kilistázására:
SELECT * FROM sys.dba_objects WHERE object_type = ‘TABLE’;
Oracle Generic Connectivity és Oracle Transparent Gateways
4
Egy nem Oracle alapú környezetben ugyanezt az eredményt esetleg a következő SELECT utasítással érné el:
SELECT * FROM catalog_objects WHERE object_name LIKE ‘%EP%’ AND object_type = ‘TABLE’; Ugyanúgy, mint az SQL-átfordítás esetében, a heterogén megoldásnak automatikusan át kell tudnia fordítani a helyi adatbázis nyelvváltozatát használó adatszótár-lekérdezést a távoli céladatbázis nyelvváltozatára. Ehhez az átfordításhoz a helyi SELECT utasítást olyan lekérdezéssé kell átírni, amely a távoli rendszer lekérdezésével ugyanazokat az eredményeket szolgáltatja.
Az adattípusok átfordítása A harmadik terület, amely kihat az eltérő rendszerek együttműködésére, az adattípus-konverzió; itt is le kell tudni fordítani az egyik gyártó adattípusát a másik gyártó megfelelő adattípusára. Egy heterogén megoldásnak például transzparens módon tudnia kell kezelni a DB2 PACKED DECIMAL adattípus átfordítását az Oracle NUMBER adattípusára. Amikor egy adott távoli objektumra kiadunk egy DESCRIBE utasítást, ezt a helyi adatbázis adattípusaival kell megfogalmazunk.
AZ ORACLE SZINKRON ADATINTEGRÁCIÓS MEGOLDÁSA A „Különböző forrásrendszerek összekapcsolása” című részben leírt követelmények teljesítéséhez az Oracle a Generic Connectivity és a Transparent Gateways eszközöket biztosítja. Ez a megoldás két komponenst tartalmaz: az Oracle-kiszolgálóba beépített Heterogeneous Services (HS) összetevőt és egy ügynökprogramot (agent), amely biztosítja az információkat és adatkapcsolatot a nem Oracle alapú rendszerekhez.
Heterogeneous Services A nem Oracle alapú rendszerekkel való kommunikációhoz szükséges feldolgozást az Oracle8-ban megjelenő, az Oracle adatbázisszerverbe integrált, Heterogeneous Services nevű komponens biztosítja. A Heterogeneous Services (HS) kibővíti az Oracle SQL-feldolgozómotorját a távoli nem Oracle alapú rendszerek SQL-utasításainak és eljáráshívásainak értelmezéséhez szükséges funkciókkal, illetve a szükséges adatszótár-információk kiolvasásához megkövetelt leképezésekkel. Mivel integrált komponensként működik, a Heterogeneous Services képes kihasználni az Oracle adatbázisszerver hatékony SQL-utasításelemzési és elosztott optimalizálási lehetőségeit. Emellett az adatbázisszerver tranzakciókoordinációs funkciói biztosítják a tranzakciók összehangolását az Oracle alapú helyi és a nem Oracle alapú (idegen) távoli rendszer között, például az elosztott tranzakciók integritását biztosító kétfázisos
Oracle Generic Connectivity és Oracle Transparent Gateways
5
jóváhagyási (commit) protokollal, még akkor is, ha az idegen rendszer nem támogatja natív módon a kétfázisos jóváhagyást. Ez az integráció emellett azt is biztosítja, hogy a transzparens átjáró automatikusan kihasználja az Oracle adatbázis-kiszolgáló jövőbeni verzióiban megjelenő összes továbbfejlesztés előnyeit. Az Oracle adatbázis-kiszolgáló integrált komponenseként működő Heterogeneous Services a következő szolgáltatásokat nyújtja: •
Transaction Service (tranzakciókezelés)
•
SQL Service (SQL-hívások)
•
Procedural Service (eljáráshívások)
A fenti szolgáltatásokon felül a Heterogeneous Services lehetőséget biztosít natív SQL-utasítások kiadására az idegen célrendszernek. Ezt nevezik PassThrough SQL-nek. Transaction Service (tranzakciókezelés)
A transaction service szolgáltatás biztosítja, hogy az Oracle-környezet tudja kezelni az idegen rendszerekkel felépített felhasználó-hitelesítéses sessionöket. A sessionkezelés a kapcsolat létrehozását jelenti a nem Oracle alapú rendszer első elérésekor, valamint a kapcsolat transzparens lezárását az Oracle-klienssession végeztével. A transaction service szolgáltatás emellett gondoskodik a globális adatintegritás megőrzéséről is az elosztott tranzakciók végrehajtása során. Az Oracle ehhez egy kétfázisos jóváhagyási protokollt alkalmaz, még akkor is, ha az idegen rendszer nem támogatja natív módon a kétfázisos jóváhagyást. SQL Service (SQL-hívások)
Az SQL service a különböző rendszerek összekapcsolásához szükséges három átfordítási (megfeleltetési) funkció közül az első kettőt biztosítja (lásd a „Különböző forrásrendszerek összekapcsolása” című részben): az SQLutasítások és az adatszótár-információk átfordítását. •
Az SQL-utasítások átfordítása: az SQL service gondoskodik az Oracle SQL-utasítások átfordításáról az idegen célrendszer megfelelő SQLnyelvváltozatára. Ehhez az ügynökprogram által biztosított leíró információkat használja.
•
Az adatszótárak átfordítása: Az SQL service az idegen rendszerekhez intézett lekérdezéseknél az adatszótártáblára vonatkozó minden hivatkozást átír olyan módon, hogy az eredményhalmaz úgy nézzen ki, mintha egy Oracle-adatszótárból származna.
A harmadik fajta átfordítást, az adattípusok megfeleltetését, az ügynökprogram biztosítja, és „Az adattípusok átfordítása” című részben ismertetjük.
Oracle Generic Connectivity és Oracle Transparent Gateways
6
Procedural Service (eljáráshívások)
A Procedural service programozási interfészt biztosít a tárolt eljárások végrehajtására nem Oracle alapú rendszereken. Ezáltal például egy Oracle8i környezetből is el lehet érni az eljárás alapon programozott rendszereket, például egy üzenetkezelő vagy várósorkezelő rendszert. A Procedural service konkrétan úgy működik, hogy a PL/SQL-hívásokat megfelelteti az idegen rendszer azokkal egyenértékű eljárás- vagy függvényhívásainak. Pass-Through SQL
A Pass-through SQL biztosítja annak lehetőségét, hogy natív SQL-utasítást adjunk ki egy idegen rendszernek. Ezzel a rugalmas lehetőséggel olyan függvényeket vagy eljárásokat hajthatunk végre az idegen rendszerben, amelyeket a Generic Connectivity vagy a Transparent Gateways nem támogat. A Pass-through SQL egyaránt támogatja az eredményhalmazokat és a bind változókat. Segítségével DDL-utasításokat lehet végrehajtatni az idegen rendszerben.
A Heterogeneous Services előnyei Ahogy korábban ismertettük, a Heterogeneous Services integrálása az Oracle adatbázis-kiszolgálóba igen hasznos lehetőségeket biztosít a heterogén elosztott környezetekhez. A legjelentősebb ilyen előnyök: •
Szerverintegráció
•
Elosztott optimalizálás
Szerverintegráció
Amikor egy ügynökprogramot regisztrálunk az Oracle adatbázisszerverben, kiolvasásra kerülnek a nem Oracle alapú rendszer lehetőségei és a szükséges átfordítások, leképezések. Ezek az információk ettől kezdve helyileg tárolódnak. Így az Oracle szervernek nem kell mindannyiszor lekérnie ezeket az információkat, valahányszor kapcsolat létesül az idegen rendszerrel, és ezért a kapcsolat gyorsabban jön létre, és kevesebb adat átvitelét igényeli. Az idegen rendszer elérését az Oracle szerver rendkívül hatékony SQL-parsere (szintaktikai elemzője) is segíti. Ráadásul mivel az SQL-parser a szerveren működik, az idegen rendszernek kiadott SQL-utasításokat csak egyszer kell elemezni (míg más hasonló megoldásoknál először a helyi rendszer elemzi, majd egy külön gateway is újra elemzi). Emellett a heterogén környezetek felügyeletét segítik az úgynevezett V$ nézetek, amelyekkel kiolvashatók a heterogén környezetet jellemző információk. Elosztott optimalizálás
Az Oracle adatbázisszerver elosztott SQL-optimalizálási lehetőségei kiterjednek a nem Oracle alapú rendszerekre is. Ezáltal az Oracle képes megállapítani az SQL-utasítás végrehajtásának optimális módját. Például kideríti, hogy a legjobb elosztott teljesítmény úgy érhető el, ha JOIN művelettel egyesíti a távoli idegen rendszer két tábláját. Ebben az esetben a távoli rendszer csak a SELECT
Oracle Generic Connectivity és Oracle Transparent Gateways
7
utasítást kielégítő sorokat küldi vissza az eredeti Oracle-rendszernek, ami jelentősen csökkentheti a hálózaton keresztül továbbított adatok mennyiségét. Ezenfelül az úgynevezett kollokált inline nézetek segítségével jelentősen felgyorsíthatók az elosztott lekérdezések, mert így egy művelettel egyszerre több táblát lehet lekérdezni az idegen rendszerben (a többszöri üzenetváltás helyett). Például a helyi Oracle-rendszerben kiadjuk a következő SELECT utasítást:
SELECT l.a, l.b, r1.c, r1.d, r1.e, r2.b, r2.c FROM remote r1, remote r2, local l WHERE r1.c = r2.c AND r1.e > 300 AND r1.c = l.c Az Oracle a SELECT utasítást mondjuk a következőre írja át, és elküldi az ügynökprogramnak:
SELECT r1.c, r1.d, r1.e, r2.b, r2.c FROM remote r1, remote r2 WHERE r1.c = r2.c AND r1.e > 300 Ügynökök Az ügynökprogram feladata kideríteni a távoli idegen rendszer képességeit, valamint a használatához szükséges SQL-megfeleltetéseket, adattípuskonverziókat és interfészt. Ezek az ügynökök a Heterogeneous Services szolgáltatásaival együttműködve transzparens kapcsolatot biztosítanak az Oracle alapú és az idegen rendszerek közt. A heterogén környezet bővítésével újabb ügynököket lehet bevetni, és így akárhány más gyártótól származó idegen rendszerrel lehet kapcsolatot teremteni. Kétfajta ügynök van: HS-ügynök és Transparent Gateway-ügynök. HS-ügynökből is kétféle van: a HS ODBC, amely egy ODBC-illesztőprogramon keresztül kommunikál az idegen rendszerrel, illetve a HS OLE DB, amely egy OLE DB-illesztőprogramot használ. A HS-ügynökök az Oracle adatbázisszerver részei. A Generic Connectivity ezekkel az ügynökökkel kapcsolódik az idegen rendszerekhez. A Transparent Gateway-ügynökök az Oracle szervertől elkülönülten működnek. A HS-ügynökökkel szemben, amelyeknek ugyanazon a gépen kell futniuk, mint az Oracle adatbázis-kezelő, a Transparent Gateway-ügynökök bármely gépre telepíthetők. A lehető legjobb teljesítmény és funkcionalitás érdekében a Transparent Gateway átjárók a megfelelő natív interfészeken keresztül kommunikálnak az idegen rendszerekkel. Az ügynökök az átfogó heterogén kapcsolati megoldás fontos és szerves részei. Konkrétan a következőkről gondoskodnak: •
az SQL-utasítások és az adatszótár-információk átfordítása
•
az adattípusok átfordítása
•
elkülönített szerverelérés (szerverizoláció)
Oracle Generic Connectivity és Oracle Transparent Gateways
8
Az SQL-utasítások és az adatszótár-információk átfordítása
Ahogy korábban ismertettük, az ügynökök minden szükséges megfeleltetési információt tartalmaznak a Heterogeneous Services átfordítási szolgáltatásaihoz (a részleteket lásd az „SQL Service” pontnál). Amikor egy ügynökprogramot regisztrálunk az Oracle adatbázisszerverben, az ügynökből kiolvasásra kerülnek az SQL-utasítások és az adatszótár-információk átfordításához szükséges leképezések, melyek attól fogva az Oracle szerveren tárolódnak. A megfeleltetések helyi tárolásával azokat csak egyszer kell kiolvasni az ügynökből, így kevesebb oda-vissza kommunikációra van szükség. Az adattípusok átfordítása
Az SQL-utasítások és adatszótár-információk átfordításától eltérően, melyet a Heterogeneous Services az Oracle szerveren végez, az adattípusok átfordítását az ügynök végzi. Ennek két fő oka van: •
az overhead csökkentése;
•
a nem támogatott adattípusok konverziója.
Például mivel olyan sokféle numerikus adattípus van, az Oracle szerver és az ügynök közötti adatkommunikációt jelentősen csökkenti, ha az adattípusok konverzióját az ügynök végzi. Így nem kell előbb az összes lehetséges adattípus leírását továbbítani a szervernek a megfelelő NUMERIC Oracle-adattípusra való konverzió előtt. Az adattípusok átfordítása igen feldolgozásigényes, és ha ezt az ügynök végzi, nem az Oracle szervert terheli, vagyis javul az adatbázis-kiszolgáló teljesítménye. Emellett ha az ügynök ugyanazon a szerveren fut, mint az idegen célrendszer, a helyi CPU utasításkészletével végezheti az adattípus-átfordítást, ami jelentősen javítja a teljesítményt. Végül pedig ha az ügynök végzi az adattípus-átfordítást, akkor a nem támogatott adattípusokat is konvertálhatja olyan adattípusokra, amelyeket az Oracle támogat. (Megjegyzendő azonban, hogy nem minden ügynök nyújt ilyen szolgáltatást.) Elkülönített szerverelérés (szerverizoláció)
Az ügynök API-hívások útján kommunikál az idegen rendszerrel. Az ügynökprocessz az Oracle szervertől elkülönülten, külön processzként fut, ami megvédi az Oracle szervert az idegen rendszer esetleges meghibásodásától és/vagy a rendszerkönyvtáraiban megbújó programozási hibáktól.
Oracle Generic Connectivity A Generic Connectivity a 8.1.6-os verziótól kezdve található meg az Oracle adatbázisszerverben. Ez a kapcsolati megoldás arra az igényre ad választ, ha számos olyan adattárat kell elérni, amelyhez az Oracle nem dolgozott ki konkrét átjárómegoldást. Az ipari szabványú ODBC és OLEDB protokollokon keresztül biztosít transzparens kapcsolatot. A Generic Connectivity funkciót elsősorban a nem túl nagy igénybevételű adattárak – mint az Access, FoxPro, dBase, Excel stb. – felé irányuló ad hoc lekérdezések kezeléséhez fejlesztették ki.
Oracle Generic Connectivity és Oracle Transparent Gateways
9
A Generic Connectivity HS-ügynökökkel, ODBC/OLE DB illesztőprogramokon keresztül kommunikál az idegen rendszerekkel. Ezek a HS-ügynökök az Oracle adatbázisszerver részei, és alapértelmezésben a szerverrel együtt települnek. A Generic Connectivity korlátai
•
Ha egy táblában BLOB-oszlop szerepel, akkor mindenképpen kell lennie egy elsődleges kulcsként szolgáló külön oszlopnak.
•
A BLOB/CLOB típusú adatokat nem lehet pass-through lekérdezésekkel kiolvasni.
•
Nem megengedettek az olyan aktualizálási vagy törlési műveletek, ahol a WHERE kifejezésben valamilyen függvény szerepel.
•
A tárolt eljárások nincsenek támogatva.
•
A Generic Connectivity-ügynökök nem vehetnek részt elosztott tranzakciókban, csak az egy rendszeren belüli helyi tranzakciókat támogatják
Oracle Transparent Gateways A Generic Connectivity generikus megoldásként szolgál; ezzel szemben a Transparent Gateway átjárók az idegen rendszerekhez egyedileg kialakított és programozott megoldások. Így optimalizált elérést nyújtanak, tágabb funkciókkal és jobb teljesítménnyel, mint a Generic Connectivity. A Generic Connectivity ipari szabványokon alapul, míg a Transparent Gateway átjárók a nem Oracle alapú idegen rendszereket azok saját natív interfészén keresztül érik el. Az átjáró natív API-hívások útján kommunikál az idegen rendszerrel. Az Oracle Transparent Gateway hozzákapcsolódik az idegen rendszer rendszerkönyvtáraihoz, és onnan hívja meg a megfelelő rutint. Az átjáró további előnye az, hogy az Oracle adatbázisszervertől elkülönülten telepíthető. Az átjáróügynökök komoly mobilitást tesznek lehetővé. Az átjárók mobilitása
Mivel az átjáró mind az Oracle alapú, mind az idegen rendszerhez képest külső, az átjáró telepítése némi rugalmasságot enged meg. Az Oracle Transparent Gateway a következő helyekre telepíthető: •
a nem Oracle alapú rendszerre
•
az Oracle alapú rendszerre
•
egy külön rendszerre
Azonban bármelyik telepítési helyet választjuk is, az Oracle Transparent Gateway megoldásban szereplő összes rendszernek ugyanabban a hálózati tartományban kell lennie. Az Oracle Transparent Gateway telepítési helyének megválasztásánál több szempontot kell figyelembe venni: a hálózat forgalmát; azt, hogy van-e elérhető átjáróverzió az adott operációs rendszerhez; a hardvererőforrásokat és tárolókat.
Oracle Generic Connectivity és Oracle Transparent Gateways
10
Ha több Oracle szervernek kell tudnia elérni ugyanazt a nem Oracle alapú rendszert, akkor az az optimális, ha a transzparens átjárót az idegen rendszert futtató számítógépre telepítjük, mivel ekkor lesz szükség a legkevesebb hálózati kapcsolatra. Ha azonban a kívánt platformhoz nincs megfelelő átjáró, vagy ha az Oracle szerver vagy idegen szerver nem rendelkezik kellő hardvererőforrásokkal vagy tárolókapacitással az átjáró működtetéséhez, az átjáró egy külön számítógépre is telepíthető, amin olyan operációs rendszer fut, melyhez elérhető a kívánt Oracle Transparent Gateway átjáró. Bár ennél a konfigurációnál egy plusz hálózati kapcsolatra van szükség, ami némileg ronthatja a teljesítményt, ezzel a rugalmas megoldással elérhetővé válik az idegen rendszer (feltéve, hogy kialakítható a hálózati kapcsolat a külön gép és az idegen rendszer gépe között).
A HETEROGÉN RENDSZEREK TRANSZPARENCIÁJA Egy transzparens módon működő heterogén rendszernek nem csak az az előnye, hogy a felhasználók egységes felületen keresztül érhetik el mind az Oracle alapú, mind a nem Oracle alapú rendszereket, hanem egyúttal szilárd alapot biztosít a saját adatbázis-alkalmazások fejlesztéséhez. Így nem kell megkövetelni az alkalmazásoktól, hogy a nem Oracle alapú rendszerekkel azok saját natív interfészén keresztül kommunikáljanak (ami komoly feldolgozási terheléssel járhat az alkalmazás oldalán), hanem az összes alkalmazást egy egységes Oracle-interfészre lehet építeni. Vegyünk egy olyan helyzetet, amikor a felhasználó Oracle Transparent Gateway átjárókkal éri el a heterogén környezetben tárolt adatokat, de azt tervezi, hogy a heterogén adatkörnyezetet később egy Oracle alapú rendszerbe migrálja. Ha kifejleszt egy olyan adatbázis-alkalmazást, amely mind az Oracle, mind a nem Oracle alapú rendszerekkel azok saját natív interfészén keresztül kommunikál, majd ezt követően valamikor végbemegy a heterogén Oracle-környezetre való átállás, az új környezetben való működéshez módosítani kell az alkalmazást.
Transzparens működés Az idegen célrendszer távoli Oracle-rendszernek tűnik, mivel az ügynökök átfordítják az SQL-utasításokat, adatszótár-információkat és adattípusokat az idegen rendszer megfelelő nyelvváltozatára, és egyúttal gondoskodnak az idegen rendszerrel folytatott tranzakciók biztonságos kezeléséről. Ez a transzparens működés egységes felületet biztosít az adatbázis-alkalmazások fejlesztőinek, felgyorsítva a fejlesztést, és növelve az adatbázis-alkalmazás mobilitását.
Helytranszparencia Egyes esetekben nem elegendő a transzparens működés; az lenne az előnyös, ha el lehetne érni, hogy a rendszer minden távoli objektumot lokálisként lásson. Ez a „helytranszparencia” úgy érhető el, hogy minden távoli objektumhoz definiálunk egy nézetet (VIEW) vagy szinonimát (SYNONYM ). Ezután a távoli objektumra nem egy adatbázis-kapcsolat megadásával hivatkozunk, hanem a nézetre vagy szinonimára való közvetlen hivatkozással. Például a felhasználó a következő SELECT utasítással szeretne elérni egy távoli objektumot:
Oracle Generic Connectivity és Oracle Transparent Gateways
11
SELECT empid, ename, mgr FROM emp@non_Oracle_system; Miután létrehozott egy megfelelő SYNONYM emp-t a helyi adatbázisban, az alábbi SELECT utasítással tudja elérni a távoli objektumot:
SELECT empid, ename, mgr FROM emp; A helytranszparencia amellett, hogy feleslegessé teszi az adatbázis-kapcsolat megadását a távoli objektumok elérésénél, tovább fokozza az adatbázisalkalmazás mobilitását. Ha megváltozik a távoli adatbázis-objektum helye, elég egyszerűen módosítani a nézet vagy szinonima definícióját, és az adatbázisalkalmazás nem is érzékeli a változást.
ÖSSZEFOGLALÁS Az Oracle két megoldást kínál a különböző rendszerekben található adatok valós idejű (szinkron) elérésére: Oracle Generic Connectivity és Oracle Transparent Gateways. A Generic Connectivity az olyan nem Oracle alapú rendszerek esetében ajánlott, amelyekhez nincs Transparent Gateway átjáró. Különben a Transparent Gateway átjárókat célszerű alkalmazni, mert optimalizált elérést nyújtanak, tágabb funkciókkal és jobb teljesítménnyel, mint a Generic Connectivity.
Oracle Generic Connectivity és Oracle Transparent Gateways
12
A tájékoztató címe: Oracle Generic Connectivity és Oracle Transparent Gateways Dátum: 2003. november Szerző: Társszerzők: Oracle Corporation Nemzetközi központ 500 Oracle Parkway Redwood Shores, CA 94065, USA USA Központi felvilágosítás: Telefon: +1 (650) 506-7000 Fax: +1 (650) 506-7200 www.oracle.com Az Oracle Corporation biztosítja mindazokat a szoftvereket, amelyek az internetet működtetik. Az Oracle név az Oracle Corporation bejegyzett védjegye. A jelen anyagban említett különböző termék- és szolgáltatásnevek az Oracle Corporation védjegyei lehetnek. Az anyagban említett további termék- és szolgáltatásnevek a megfelelő tulajdonosok védjegyei lehetnek. Copyright © Oracle Corporation, 2003. Minden jog fenntartva.