1. Kliens szerver architektúra Osztott Objektumarchitektúrák Dr. Tick József Jól bevált architektúra Kliens-szerver szerepek rögzítettek Szerver szolgáltatást nyújt, vagy igénybe vesz Kliens csak igénybe vehet szolgáltatást A rendszer tervezése során el kell dönteni, hogy hova milyen szolgáltatást telepítünk Kliensek utólagos hozzáadása -> szerverek megosztásának átértékelése (terhelés megosztás) {skálázhatóság megtervezése} 2. Osztott objektumarchitektúra A kliensek és a szerverek közti különbség megszüntetése Itt az alapvető rendszerkomponensek az objektumok Az objektumok interfészeken keresztül kínálják fel a szolgáltatásaikat A szoláltatás igénybevevője és nyújtója között nincs logikai megkülönböztetés Az objektumok egy köztes terméken () keresztül kommunikálnak egymással (lényegében egy szoftverbusz ) Az (object request broker) feladata biztosítja az objektumok kommunikációját, lehetővé teszi az objektum hozzáadását a rendszerhez / törlését a rendszerből, egy észrevétlen objektumok közötti interfész biztosítása. 1
Az osztott objektumarchitektúra vázlatos modellje O1 O2 O3 Szoftverbusz O4 O5 O6 O7 Az osztott objektumarchitektúra előnyei Lehetővé teszi a döntések elhalasztását (szolgáltatás tá kiosztás ) Nyílt rendszerarchitektúra (új erőforrások igény szerinti hozzáadása, különböző nyelven írt objektumok kommunikálhatnak egymással) Rugalmas és skálázható rendszer (a terhelés növekedésével objektumok adhatók a rendszerhez a többi objektum megváltoztatása nélkül) Lehetőséget biztosít a rendszer dinamikus újrakonfigurálására, az objektumok hálózaton keresztüli vándoroltatásával. Az osztott objektumarchitektúrák használata a rendszerben Logikai modellként: a rendszer strukturálása és szervezése A rendszer funkcionalitásának megszervezése a szolgáltatások révén, A szolgáltatások biztosításának megszervezése osztott objektumokkal, durva szemcsézettségű ett égű A modell finomítása Az osztott objektumarchitektúrák használata a rendszerben (folyt.) Kliens-szerver megvalósítás rugalmas megközelítéseként A rendszer logikai modellje egy kliensszerver modell Mind a kliensek, mind a szerverek osztott objektumok Az objektumok egy szoftverbuszon kommunikálnak egymással Rugalmasan konfigurálható, de tartalmaz megszorításokat 2
Az osztott objektumkezelést támogató köztes termékek főbb szabványai CA (Common Object Request Broker Architecture) Az OMG szabványa, Unix és MS környezetben fut DCOM (Distributed Component Object Model) A Microsoft szabványa, elsősorban MS környezetben fut, de kifejlesztették Unixra is A CA szabvány Teljesen nyílt és hozzáférhető Jelenleg a legelterjedtebb Széles konszenzuson alapuló szabvány (OMG -> 500 céget tömörít magába) A szabványok esetleges jövőbeni konvergenciájának alapja lehet A CA alapú osztott alkalmazás struktúrája A modell komponensei Alkalmazás objektumok Szakterületi eszközök Horizontális CA-eszközök CA-szolgáltatások Object Management Architecture Siegel féle modellje Ian Sommerville: Szoftverrendszerek fejlesztése, PANEM, Budapest, 2002 Alkalmazás-objektumok (az alkalmazás- orientált objektumok) k) Szakterületi eszközök (az OMG által az adott szakterületre definiált szabványos objektumok összessége) Horizontális CA-eszközök (sok szakterület számára közösek, pl.:rendszerkezelő eszközök, GUI kezelők, stb.) CA-szolgáltatások (az osztott kezelést lehetővé tevő alapszolgáltatások, pl.:könyvtárak, biztonsági kezelés, stb.) 3
A szabvány 4 fő eleme 1. Az alkalmazás objektumainak objektummodellje (egy CA objektum jól definiált nyelvfüggetlen interfésszel rendelkezik, mely IDL-ben (Interface Definition Language) van megfogalmazva. A szabvány 4 fő eleme (folyt.) 2. Feladata az objektumok közötti kapcsolat teljes mértékű biztosítása. Az tevékenysége egy kérés esetén: A hívott objektum lokalizálása. A hívott objektum aktiválása, azaz olyan állapotba hozása, hogy az fogadni tudja a hívást. A meghívás lebonyolítása paraméterátadással együtt. A művelet eredményének visszaadása a hívó objektum számára (a hibajelzés is eredmény) A szabvány 4 fő eleme (folyt.) 3. Általános osztott objektumkezelést támogató szolgáltatások halmaza. (Olyan szolgáltatások, melyeket sok osztott objektumkezelés vesz igénybe, pl: Directory, Transaction, Persistence) A szabvány 4 fő eleme (folyt.) 4. Alkalmazásterület specifikus p komponensek halmaza. (Szűkebb területhez köthető objektum gyűjtemény). 4
A CA objektummodell jellemzői Attribútumok és szolgáltatások egysége az objektum Interfész definícióval kell rendelkeznie IDL nyelven megírva, amely tartalmazza a nyilvános adatokat és műveleteket (IDL -> szabványos, nyelv független). Egyedi objektum azonosító (IOR Interoperable Object Reference) Az objektumok közötti kommunikáció szervezése Hívás a hívó objektum IDL-ben megadott interfészén keresztül, Szolgáltatás a szolgáltató objektum IDLben megadott interfészén keresztül, Az hozza össze őket A megoldás előnyei: Egymástól jól elszigetelt objektumok, Implementáció teljes átlátszósága Az objektumok veszély nélkül áthelyezhetők Objektumok kommunikációja -n keresztül Kommunikáció az -k között O1 S(O1) IDLklienscsonk O2 S(O2) IDLszerver- csonk A CA az - közötti kommunikációt támogatja a GIOP (Generic Inter- Protocol) implementálásával. Szabványos protokollok, amelyeket az -k ki tudnak cserélni egymás között. Az interneten keresztüli objektum elérést a GIOP egy alacsonyabb szintű TCP/IP protokollal kombinálva teszi lehetővé. Ian Sommerville: Szoftverrendszerek fejlesztése, PANEM, Budapest, 2002 5
Objektumok kommunikációja -k között CA szolgáltatások Service Description O1 O2 O3 O4 S(O1) S(O2) S(O3) S(O4) IDL- kliens- IDL- szerver- IDL- kliens- IDLszervercsonk csonk csonk csonk Hálózat Ian Sommerville: Szoftverrendszerek fejlesztése, PANEM, Budapest, 2002 Object life cycle Naming Events Relationships Externalization Transactions Concurrency Control Property Trader Query http://www.jguru.com defines how CA objects are created, removed, moved, and copied defines how CA objects can have friendly symbolic names decouples the communication between distributed objects provides arbitrary typed n-ary relationships between CA objects coordinates the transformation of CA objects to and from external media coordinates atomic access to CA objects provides a locking service for CA objects in order to ensure serializable access supports the association of name-value pairs with CA objects supports the finding of CA objects based on properties describing the service offered by the object supports queries on objects Kötelezően elolvasandó Ian Sommerville: Szoftverrendszerek fejlesztése, PANEM, Budapest, 2002 11. fejezet: Osztott rendszerek architektúrái (a 2002-es kiadásban a 278-299 old). 6