Metakönyvtár a katalógus, ahol anélkül tájékozódhatunk a könyvek jellemzőiről és helyéről, hogy kézbe kellene őket vennünk. Metacímtár az Országos Széchenyi Könyvtár (OSZK) központi katalógusa, ahol egy helyen megtudhatjuk a minket érdeklő könyvről, melyik közgyűjteményben van meg Magyarországon. Metaprogram a menürendszer a számítógépekben és a telefonokban, hiszen lapozgatva benne különféle szolgáltatások között válogatunk, és meta-telefonkezelő a telefonos ügyfélszolgálat, ahol egy válaszológép igazítja el a telefonálót, melyik szolgáltatást milyen szám tárcsázásával érheti el.
Ezekben a szóösszetételekben a meta- előtag különféle dolgoknak eggyel magasabb szintű rendszerezésére, rendezettségére utal. Előtérbe kerülése az informatikában egy konszolidációs korszak velejárója. A hálózati rendszerek e konszolidációja egy lépéssel közelebb visz minket a globális hálózathoz.
Nyár végi összeállításunkban a hálózati számítástechnika két, a közeljövőben növekvő jelentőségre szert tevő fejleményét tárgyaljuk, a metacímtárak és a metaalkalmazások, alkalmazásplatformok előretörését. Mindkettőnek fontos, ha ugyan nem alapvető szerep jut a globális információkezelésben, az informatikai rendszerek internetes, vállalatközi konszolidációjában.
Fontos görög eredetű előtag a matematikai logikában, a különféle struktúrák tanulmányozásában a "meta-". Közismert paradoxonok - például a krétai Epimenides kijelentése, hogy "minden krétai hazudik", ami igaz sem lehet, de hamis sem - alapulnak azon a trükkön, hogy egy teljes rendszerről állítok valamit, majd az állítást magán a rendszeren belül kezdjük vizsgálni. Ezen szokás úgy segíteni, hogy kilépünk a struktúrából, és azt tágabb összefüggésekben, egy metarendszerbe helyezve vizsgáljuk tovább. Sokan találkozhattak már a színvakság ellenőrzésére szolgáló ábrával, amelyben színes körök vannak, s közülük kiemelkedik - színtévesztőknek nem emelkedik ki - egy szám. Ez az ábra több struktúrát tartalmaz, s aki egyszer felismerte benne a metaszinten jelenlévő számot, az már csak erővel tud visszalépni, és a képben csak köröcskéket látni. Douglas R. Hofstadter, Gödel, Escher, Bach: egy végtelen arany elme könyvéből másoltuk ide az alábbi ábrát, ami éppen ezt, a szintek közötti mozgást ábrázolja az emberi gondolkozásban. A struktúrák alá-fölé rendeltsége, a lépkedés fölfelé, metaszintről az újabb metaszintre nem az emberi gondolkodás terméke, a természetben is megvan. A kapcsolat azonban egyáltalán nem magától értetődő a szintek között: hiába írjuk le mikroszkopikus pontossággal az emberi agyat, hiába térképezzük fel működését, annak eredményét, a gondolatot, az érzelmeket már nem tudjuk ebből levezetni.
Szerencsére az informatikában még megvan a közvetlen kapocs szint és metaszint, címtár és metacímtár, alkalmazás és metaalkalmazás vagy alkalmazáskiszolgáló között. De a cél itt is az, ami a színlátást vizsgáló ábránál: minél tökéletesebben elfedni, amerikai terminológiával láthatatlanná, transzparenssé tenni a feladat végrehajtásában részt vevő alsóbb szinteket.
Metacímtár
Egy cég informatikai hálózatának összehangolt működése nagyjából megoldott még akkor is, ha az nagyon sokféle eszközből áll. Ott van az infrastruktúra, működik akár folyamatosan is. A gondok egyrészt akkor jelentkeznek, amikor ki kell lépni a nagyvilágba, másrészt akkor, amikor egy hirtelen nőtt cégnél az emberek kezdenek elveszni a sokféle adatbázis, nyilvántartó, könyvelő- és egyéb program között. Ugyanazt az adatot az egyikben így hívják, a másikban úgy, az egyiknél ezt a jelszót kell megadni a belépéshez, a másiknál azt: ember legyen a talpán, aki mindezt fejben tudja tartani.
Vagy gép, például egy metacímtár. A probléma akut voltát jelzi, hogy az egyelőre csak konzultációs segítséggel megvásárolható - némileg félrevezető módon DirXML-nek nevezett - Novell metacímtár megoldás beillesztésén már két magyar cégnél dolgoznak; sokan érdeklődnek iránta, és fenyeget a veszélye, hogy nem lesz annyi hozzáértő konzultáns, mint ahány helyen megoldást remélnek tőle. Tipikus példái az e tekintetben nehéz helyzetben lévő cégnek a mobiltelefon-társaságok, ahol a növekedés mindig gyorsabb, mint a tervezett, s ezért úgy készülnek az új fejlesztések, hogy ne zavarják a már működő rendszereket, és a konszolidálásra sosincs idő.
Egy amerikai piackutató, a Burton Group kimutatása szerint nem ritka a legnagyobb társaságok között az, amelynek számítógépes informatikai rendszerében száz alkalmazás és címtár tárol, használ a felhasználói hozzáféréssel kapcsolatba hozható adatot. Nyilvánvaló az átfedés, mondjuk, a személyzeti nyilvántartás, a telefonkönyv és a villámposta-regiszter között. Amikor egy partnernek változik valamelyik adata, az - amellett, hogy tartani kell a verejtékes munkával létrehozott összehangoltság felbomlásától - dupla vagy tripla munkát is jelent vagy az ügyintézőnek, vagy - ha a karbantartás központosított - a rendszer-adminisztrátornak.
A metacímtár ezen azáltal segít, hogy megjegyzi a kapcsolatokat, nyilvántartja a tartalmilag azonos adattípusokat, és gondoskodik a folyamatos szinkronizációról. Amint bekerül a személyzeti nyilvántartásban valakinek a neve mellé, hogy "elbocsátva, hozzáférés letiltva", valamennyi alkalmazás belépési jelszótárában, a munkaállomási jogosultság-ellenőrzés címtárában, a szakszervezeti könyvtárban: mindenütt, ahol a név előfordul, megtörténik az adatok frissítése, a dolgozó jogosultságainak törlése. Metacímtár használatakor az egymás mellett működő rendszerek címtárainak egyeztetése gépiessé válik, s azok a felhasználó és különösen a külső megkeresések számára egységes szerkezetben mutatkoznak, egységesen használhatók lesznek. A metacímtárnak ehhez legalább arra képesnek kell lennie, hogy bármilyen címtárstruktúrát bármilyen másikkal össze tudjon kapcsolni, függetlenül attól, hogy alkalmazáshoz, hálózati operációs rendszerhez, e-kereskedelmi programhoz tartozik, vagy netán egy másik metacímtáron keresztül érhető el. Aki megkeresi egy adat hivatkozásait a metacímtárban, az ugyanis tovább akar menni, hiszen magára az adatra van szüksége.
A működőképes összekapcsolásnak két előfeltétele a hatékony adatmegosztás és a szinkronizálás, a folyamatos adategyeztetés a metacímtár és az általa hivatkozottak között. A Novell Címtárszolgáltatás nyolcadik kiadását, az NDS 8-at ennek megoldásával tették alkalmassá a fejlesztők arra, hogy metacímtárként szolgáljon a hálózatban. A metacímtár felállítása úgy történik, hogy az NDS 8 címtárban - ami nem más, mint egy adatbázis - minden, a vállalatnál futó információs rendszerek közül legalább kettőben használt információhoz készül egy közös bejegyzés. Ahogy Maria Vargas Llosa Négy óra a Katedrálban című regényéhez az OSZK központi katalógusában megtaláljuk minden könyvtár raktári jelzetét, úgy tudunk utánanézni az NDS 8-on át annak, hogy Maria Vargas Llosa alkalmazott beiratkozott-e a szakszervezeti könyvtárba, és ha igen, akkor ott hogyan érhető el az általa kölcsönzött könyvek listája.
A metacímtár fabatkát sem ér szinkronizáció, a változások folyamatos átvezetése nélkül az NDS 8 és az alárendelt címtárak között. A Novell erre DirXML néven bocsátott ki programot. A DirXML-nek mindegy, hogy egy hálózati operációs rendszer címtárával, egy metacímtárral, alkalmazással vagy e-kereskedelmi címtárral kell-e kommunikálni. Amit megkövetel, az az, hogy egyeztetni lehessen az XML formátumú üzenet tartalmát az általa kiszolgált NDS adatbázisban tároltakkal. Vagyis legyen az üzenetből azonosítható, hogy melyik rekord tartalmának a megváltoztatását kérte az alárendelt címtár. Az XML-re azért esett a választás, mert szabványa lehetővé teszi a különféle forrásokból származó adatokat elegyítő üzleti logika rugalmas megvalósítását. A változásokat nem eljárásban, programban kell átvezetni, azokat az XML-üzenet hordozza.
Amelyik program képes az adatokat XML-állományban rendelkezésre bocsátani, azzal a DirXML már szót ért, a többihez szükség van egy DirXML-hajtónak nevezett fordítóra. Ez utóbbit vagy már elkészítették, vagy - ha egyedi programról van szó - az ingyenes fejlesztői környezet használatával elkészíthető. A DirXML integrálni tudja például a vállalati hálózatban a Lotus Notes címtár adatbázisát és az NDS 8-at. A Domino garantáltan üzenetet kap minden változásról az NDS 8-ban, és viszont: a Lotus Notes címtár változásairól is készül jelentés. A változások átvezetése eseményvezérelten történik. A Domino adminisztrátor megváltoztat egy bejegyzést, arról a DirXML közvetítésével értesül az NDS 8, és végrehajtja a változtatást. Ez a változtatás mint esemény újabb üzeneteket generál, azokat a DirXML a többi érintett címtárnak továbbítja. Ahogy a változtatás sorra mindenhol megtörténik, lecseng a Domino intézője által indított hullám. Hasonlóképpen, amikor a központi NDS-ben a rendszerintéző kiad egy felhasználói azonosítót, a DirXML sorra veszi az összes alkalmazást, erőforrást a hálózatban, így biztos, hogy nem marad ki egy sem, ahol meg kell adni neki a hozzáférési jogokat. Ezek a jogok viszont - és ez azért fontos, mert egy cégnél minden fontosabb nyilvántartásnak megvan a maga gazdája, aki felügyeli és felelős érte - nem feltétlenül keletkeznek automatikusan. Vagyis az új felhasználó belekerülhet ugyan a vállalati kantinban kiszolgálhatók adatbázisába, de megoldható, hogy csak akkor szolgálják ki, ha a konyhafőnök engedélyezte (és ő is időben beírta, hogy melyik menüre tart igényt).
Ez a példa is érzékelteti, hogy a címtárak egyre jobban belebonyolódnak az informatikai rendszerek kiszolgálásába, egyre messzebb kerülnek az azonosítók, levélcímek és erőforrások nyilvántartásának klasszikus feladatától. Ezért is lényeges, hogy a DirXML-lel a Novell az XML-t teszi meg az NDS 8 és az alkalmazások közötti kommunikáció közös nyelvének. Igaz, ez nem kizárólagos. Aki nem tud XML-ül, az talán ismeri az egyszerűsített internetes címtárcsere formátumot, az LDAP Directory Interchange Formatot, ezért a DirXML azt is elfogadja.
Tovább erősíti a DirXML ezzel az XML mint közös nyelv növekvő szerepét a teljes hálózati integrációban. A Novell és mások dolgoznak a címtárszolgáltatás igényeit jobban kielégítő XML-definíción. Ami ha elterjed, nem lesz szükség fordításokra, hiszen minden címtárprogram XML leírásban küldi-fogadja majd az információt.
A Novell Címtárszolgáltatás az X.500 szabvány egyik inkarnációja. E szabványt kidolgozói úgy alkották meg, hogy szemük előtt egy minden szervezetet, nyilvántartást mindenkivel összekapcsoló globális címtár lebegett. (Ez korántsem az adatbankok törvényileg tiltott tartalmi összekapcsolását jelenti, hiszen annak megakadályozására a hozzáférési jogosultságok rendszere hivatott!) A megvalósítás módját, mint az egy nyílt szabványnál illik is, okosan nyitva hagyták. Gondolhatnánk, hogy a DirXML alkalmas lesz erre, de ez nem így van. A globális címtár ugyanis valószínűleg csak adatbázis nélkül valósítható meg, magába a kommunikációs struktúrába fog beépülni. A DirXML-lel vagy más módon kialakított metacímtárak hálózata másra jó. A megnevezhető, számítógépben nyilvántartható dolgokat, az egész világmindenséget teszi bármikor bárhonnan elérhetővé a majdan megvalósuló globális címtár révén.
Legegyszerűbb formája a programmenü, ami felajánlja a programokat, s kiválaszthatjuk, melyiket is akarjuk elindítani. Programmenü a Windows Start vagy a Corel DAD és társai, a különféle ikonsorok, amikről egy kattintással lehet betölteni a megfelelő alkalmazást. De van az alkalmazások szervezésének, működésük egymásba fonásának, integrálásának egy másik, ennél jóval bonyolultabb és automatizáltabb formája, az alkalmazáskiszolgáló vagy alkalmazásplatform. Nem a menü, hanem ez utóbbi az, aminek a piackutatók szerint a következő években kulcsszerep jut az e-business szervezésében, az internetes üzletvitel kiszolgálásában.
Magát a kifejezést, hogy "alkalmazáskiszolgáló", Magyarországon is halljuk pár éve. Talán legtöbbet abban az időben szerepelt, amikor a Microsoft a Windows NT-t igyekezett előnyösen megkülönböztetni a Novell NetWare-től. Arra akarhattak rámutatni vele a propagandisták, hogy miközben egy Windows NT kiszolgálja a hálózatot, fogadja, leteszi, vagy éppen elküldi az adatokat a terminálokra, aközben ugyanazon a gépen programok, alkalmazások is futhatnak. Ellentétben a NetWare-rel, amely hálózati állománykiszolgálóként egy teljes gépet lefoglal. Tágabb értelemben is alkalmazáskiszolgáló viszont a UNIX, amely arra is képes, hogy fölötte egyszerre több terminállal adatkapcsolatot tartó programok fussanak. (Windows NT fölött ezt valósítja meg a Citrix.)
De mindez már a múlt. Amióta internet van, világháló van, böngésző van, és főleg Java van, mást értünk alkalmazáskiszolgáló alatt. Napjaink alkalmazáskiszolgálói a komponensekre építve három feladat megoldására használhatók. A meglévő alkalmazások világhálósítására, új üzleti funkciók beprogramozására és a hálózatcentrikus infrastruktúra kialakítására. A legelőrelátóbb elmékben évekkel ezelőtt készen volt már a globális számítógép-hálózat működési modellje, melyben a világ összes számítógépe egyetlen hatalmas rendszert alkot. A virtuális világ, ahova én csak bedobok egy kérdést, és ki tudja milyen programok, ki tudja hol futva és honnan szerezve hozzá az alapadatokat, kikalkulálják rá a választ. E modellben a feladatok végrehajtása, az alkalmazás kis programocskák hol párhuzamos, hol egymás utáni összehangolódó futásából áll össze. Hasonlít ez arra a szervezetelemző gondolkodásra, amely nem beosztásokat, hanem munkaköröket tekint, és azt mondja, hogy egy ember munkája során sokféle munkakört lát el. A munkakörök felderítése, tisztázása áttekinthetőbbé teszi a szervezetet, és hatékonyabbá a munkavégzést. Ugyanez történik az informatikában, a jól meghatározott feladatrészletet ellátó kész programocskák - a Java programot angolul appletnek, alkalmazáskának mondják - egy katalógusba kerülnek, és több feladatban hasznosíthatóvá válnak. Nevezik az önálló, rugalmasan meghívható eljárásokat komponensnek is, ezt hordozza a nevében a Microsoft Component Object Model (COM). A modell alapja - a feladat szétbontása apró részekre és azok összehangolt, egymást kiváró, részeredményeket cserélő végrehajtása - már a nagygépes világban is ismert volt. Így működnek a Simula szimulációs programnyelven írott programok.
Az évtized elején, amikor kezdtek széles körben elterjedni a személyi számítógépes hálózatok, az adatmozgások csökkentése érdekében azt a megoldást választották a programozók, hogy elválasztották egymástól az adatbázist és az adatok feldolgozását. A nagy és midi számítógépeken a teljes feldolgozás a központban történt, a képernyős munkahelyeken is csak egy - nem grafikus, csak karaktersorokat kiírni képes - terminál volt. A terminál közvetített a felhasználó és az alkalmazás között. Fogadta és továbbküldte az adatokat, kéréseket, és megjelenítette a választ, az eredményeket. Ezt a PC-s hálózaton - annak lassúsága miatt - nem lehetett megoldani, de érdemesnek látszott a sokak által használt adatokat egy központi helyen tartani, és onnan kiadni mindenkinek. Megfordult a munkafelosztás: most a kiszolgáló felől mentek csak a nyers adatok, és a hozzákapcsolt másik PC-n futó kliens program végezte az érdemi számításokat. Ahogy fejlődött a hardver, nőtt a hálózatok áteresztőképessége, felmerült, hogy érdemes lenne a feladatot megosztani. Amit ott érdemes, azt számolja ki egy program a kiszolgálón, amit pedig nem, az maradjon továbbra is a felhasználói munkaállomásra. Erősítette ezt az irányt a komponensek megjelenése is, de a végső lökést az új médium, a világháló szerepvállalása adta a teljes szemléletváltozáshoz. Az internetes világban ma főként két programnyelven készülnek objektumorientált programok, C++-ban és Javában, de ez a két világ előbb-utóbb szükségképpen egybeolvad. (Ha másképp nem, hát úgy, hogy megoldják a kölcsönös együttműködést a két szabvány komponensei között.)
Az alkalmazáskiszolgáló tehát a számítógép alaprendszere és a felhasználó tallózója közé ékelődve vezényli a parádét: a megfelelő komponensek futtatásával teljesíti a kéréseket. A világhálón egy külön honlap, a ServerWatch jelentős teret szentel bemutatásának, különféle változatai közzétételének. Kínál alkalmazáskiszolgálót az IBM (WebSphere Application Server), az Oracle (ORCL), a Sun (SUNW), a BEA (BEAS) és a Microsoft (MSFT) mellett más is. Egy közelmúltban megjelent amerikai összeállítás húsz alkalmazáskiszolgálót mutat be röviden. A Giga Information Group által nemrég közzétett közlemény szerint alkalmazáskiszolgálóra a vállalatok tavaly 585 millió dollárt költöttek, az idei forgalom 1,6 milliárd, és a 2003. évi kilencmilliárd dollár lesz.
Vargha Márton
Röviden a CORBA-ról
Ez a néhány éve a szaksajtó címlapjain szereplő betűszó a Common Object Request Broker Architecture rövidítése. Magyarul annyit tesz, mint közönséges objektumkérés-közvetítő felépítés. Szabványa a tizenegy éve, 1989 áprilisában a 3Com, az American Airlines, a Hewlett-Packard, a Philips Telecommunications N.V., a Sun Microsystems és a Unisys Corporation részvételével alapított Object Management Group (OMG) fő műve. Az objektumorientált számítástechnika előnyeit a hálózatban a lehető legteljesebb nyitottság biztosításával lehet kihasználni. Ez a nyitottság azt jelenti, hogy az elvégzendő tevékenységen kívül semmit nem kötünk ki akkor, amikor egy feladat számítógépes végrehajtását megszervezzük. Azt, hogy egy részletet melyik programka hajt végre, a pillanatnyi helyzet dönti el. Tegyük fel, hogy egy jelentéshez ki kell számítani néhány szám átlagát. Megvannak az adatok, már csak kell egy eljárás, ami átlagot számol. A közvetítő - ez az ORB, vagy Object Request Broker - megkapja a keresett programka paramétereit, és körülnéz előbb a saját programkakészletében, majd az interneten, majd a lehetőségek közül kiválaszt egyet, és az kiszámítja az átlagot. Érezhető, hogy ehhez a rendszer elemeinek úgy kell egymáshoz illeszkedniük, mint gépben a fogaskerekeknek, a szabványnak tágasnak és ennek megfelelően bonyolultnak is kell lennie. Ezért aztán a megvalósítás nem követte azonnal a szabvány kiadását, a működő objektumbrókerek az utóbbi években jelentek meg a piacon.