Osztott alkalmazások kezelése
VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) - Moduláris felépítés - Bővíthetőség/méretezhetőség
Architektúra típusok 2. Alap kliens-szerver modell Host kliens terminál terminál kezelő alkalmazás adatkezelő AB +: rugalmasság +: méretezhetőség -: programozás DB
Architektúra típusok 4. Middleware modell kliens terminál terminál kezelő alkalmazás adatkezelő AB adatkezelő AB alkalmazás middleware terminál kezelő middleware network kliens terminál network
Middleware típusok File kezelés:socket Távoli eljáráshívás: RPC, SOAP Adatbáziskezelés:ODBC, JDBC, RDA Üzenetküldés:MOM Távoli metódushívás:CORBA, RMI, DCOM Tranzakciókezelés:TUXEDO Névfeloldás:NS Feladat közvetítő:Broker Általános, közös szolgáltatások elvégzése - elérés biztosítása - konverzió - ütemezés
DBMS-NET kliensek DB szerverek
RDA/ODBC printf(”udpating...”); con1 = sqlconnect(TAVOLI1, ”peter”,”pwd”); con2 = sqlconnect(TAVOLI2, ”zoli”,”pwd”); sqlexec(con1,”UPDATE dolg SET fiz=0;”); sqlexec(con2,”UPDATE dolg SET fiz=0;”); Adatbázis független kezelő felület
RPC működése kliens szerver alkalmazás Client-Stub hálózati réteg szerver Server-Stub hálózati réteg - érték szerinti paraméterátadás - adatkonverzió - kliens várakozik a végrehajtásra - hibakezelés
MOM működése kliens szerver alkalmazás Client-MOM hálózati réteg szerver Server-MOM hálózati réteg - üzenet átadás - nincs várakozás - adatkonverzió- hibakezelés üzenetkezelő üzenetsorok
Komponens fogalma - szoftver modulja (szerv) - telepítési egység - jól definiált interface - belső implementáció elrejtett - nincs perzisztens állapota - más komponens felhasználhatja Objektum fogalma - szoftver egysége (molekula) - kódolási egység - egységbezárás - elrejtés - van perzisztens állapota - van egyedi azonosítója - öröklés - polimorfizmus Közös célok: - újrahasznosíthatóság - kezelhetőség - rugalmasság
CORBA modell Osztott objektum modell Osztott komponens modell (név feloldás, tranzakció, katalógusok, védelem,..) (dokumentum kezelés,..) (pénzügyi modul) (stornózás)
CORBA jellemzői - kliens-szerver mód kiterjesztése - transzparencia a kliens oldalon - függetlenség - middleware struktúra - önleíró struktúrák - többrétegű fejlesztési modellek - univerzális elérési felület - interface és implementáció elkülönítése - dinamikus kapcsolat építés - nyelvi adapterekkel bővitett - *funkció egységek kezelése - *együttműködés kezelése - *telepítés, karbantartás kezelése
CORBA rendszer működési séma
CORBA elemek Interface kezelése Interface: az objektum elérhető szolgáltatásai (név, paraméterek, típusok,..) a klienseknek ehhez kell illeszkedni IDL: Interface Definition Language (nyelvfüggetlen) module Iroda { interface Kérvény { attribute date beérkezési_idő; attribute beosztott Kezelők[20];.. Boolean Elfogad () : timeout;... }
CORBA elemek ORB kezelése ORB: objektum kérés közvetítő - nyilvántartja az objektumokat - nyilvántartja az elérésüket - kérés közvetítése - objektum aktivizálása - válasz közvetítése - objektum azonosítás kezelése - ORB interface: paraméter konverzió - ORB interface: hibakezelés
CORBA elemek Objektum szerver Objektum adapter - különböző nyelveken készült osztálydefiníciók - az IDL leírásból lehet automatikusan generálni - objektumokat hoz létre az ORB kérése alapján - együttműködhetnek az objektumok - az objektumokat ismerté teszi az ORB számára - az IDL leírást lehet automatikusan generálni - objektumok védelmének kezelése
DCOM struktúra Az MS osztott objektum modellje - API szintű szolgáltatást biztosít - nem biztosít objektum színtű perzisztenciát (nincs OID) - saját IDL nyelv - osztály azonosítása: 128 bites CLSID - osztályokat regisztrálni kell - egy objektum több interface-re is illeszkedik - a felhasználó egy CLSID-t küld - A DCOM server a CLASS FACTORY-val új objektumot hoz létre - a nem használt objektumokat kitörli
DCOM példa Set namespace = CreateObject("VoyagerLib.Bridge") Set adder = namespace.Lookup ("//" & Command & ":8000/MyCalculator") x = 3 y = 4 sum = adder.Add(x, y) MsgBox ("3 + 4 = " & sum) Kliens oldal: interface ICalculator { int add( int x, int y ); } class Calculator implements ICalculator { int add( int x, int y ) { int result = x + y; return result; } } Szerver oldal:
TUXEDO Alkalmazás kliens Funkció szerver System/T System/D System/Q System/HOST System/WS System/ DOMAINS TUXEDO struktúra - szolgáltatások nyilvántartása - költség optimalizálás - üzenet közvetítés - adatkonverziók