2011.03.23.
1. Kliens – szerver architektúra
Osztott Objektumarchitektúrák j
{ { {
Dr. Tick József
{ {
{
Az ORB (object request broker) feladata
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” (ORB) keresztül kommunikálnak egymással (lényegében egy „szoftverbusz”)
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 gy hova milyen y szolgáltatást g 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}
{
{
{
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
2011.03.23.
Az osztott objektumarchitektúra vázlatos modellje
Az osztott objektumarchitektúra előnyei {
O1
O2
O3 {
Szoftverbusz
O4
O5
O6
{
O7 {
Az osztott objektumarchitektúrák használata a rendszerben {
Logikai g modellként: a rendszer strukturálása és szervezése z
z
z
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, d durva szemcsézettségű em é ett égű A modell finomítása
Lehetővé teszi a döntések elhalasztását ( (szolgáltatás l ált tá ki kiosztás tá ) 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 (folyt.) {
Kliens-szerver megvalósítás rugalmas megközelítéseként z z z z
A rendszer logikai modellje egy kliensszerver modell Mind a kliensek, mind a szerverek osztott objektumok Az objektumok j egy gy szoftverbuszon kommunikálnak egymással Rugalmasan konfigurálható, de tartalmaz megszorításokat
2
2011.03.23.
Az osztott objektumkezelést támogató köztes termékek főbb szabványai {
{
CORBA (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 szabványa, környezetben fut, de kifejlesztették Unixra is
A CORBA alapú osztott alkalmazás struktúrája Alkalmazás objektumok
Szakterületi eszközök
Horizontális CORBA-eszközök
A CORBA szabvány { { {
{
A modell komponensei { {
ORB
{
CORBA-szolgáltatások {
Object Management Architecture Siegel féle modellje
Teljesen j nyílt y é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
Alkalmazás-objektumok (az alkalmazásorientált i tált objektumok) bj kt k) Szakterületi eszközök (az OMG által az adott szakterületre definiált szabványos objektumok összessége) Horizontális CORBA-eszközök (sok szakterület számára közösek, pl :rendszerkezelő eszközök pl.:rendszerkezelő eszközök, GUI kezelők, kezelők stb.) CORBA-szolgáltatások (az osztott kezelést lehetővé tevő alapszolgáltatások, pl.:könyvtárak, biztonsági kezelés, stb.)
Ian Sommerville: Szoftverrendszerek fejlesztése, PANEM, Budapest, 2002
3
2011.03.23.
A szabvány 4 fő eleme 1.
Az alkalmazás objektumainak j objektummodellje (egy CORBA 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.
ORB Feladata az objektumok közötti kapcsolat teljes mértékű biztosítása. Az ORB tevékenysége egy kérés esetén: z z
z
z
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 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.) 4.
Alkalmazásterület specifikus p komponensek halmaza. (Szűkebb területhez köthető objektum gyűjtemény).
4
2011.03.23.
Az objektumok közötti kommunikáció szervezése
A CORBA 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). szabványos, független) Egyedi objektum azonosító (IOR – Interoperable Object Reference)
{
{
{ {
z z z
Objektumok kommunikációja ORB-n keresztül O1
O2
S(O1)
S(O2)
IDLszervercsonk
Egymástól Eg mástól jól elszigetelt els igetelt objekt objektumok, mok Implementáció teljes átlátszósága Az objektumok veszély nélkül áthelyezhetők
Kommunikáció az ORB-k között {
{
IDLklienscsonk
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 ORB „hozza össze” őket A megoldás előnyei:
{
A CORBA az ORB-ORB közötti kommunikációt támogatja a GIOP (Generic Inter-ORB Protocol) implementálásával. Szabványos protokollok, amelyeket az ORB-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é.
ORB Ian Sommerville: Szoftverrendszerek fejlesztése, PANEM, Budapest, 2002
5
2011.03.23.
Objektumok kommunikációja ORB-k között
CORBA szolgáltatások Service Object life cycle
O1
O2
O3
O4
S(O1)
S(O2)
S(O3)
S(O4)
Naming Events Relationships Externalization
IDLklienscsonk
IDLszervercsonk
IDLklienscsonk
ORB
IDLszervercsonk ORB
Hálózat Ian Sommerville: Szoftverrendszerek fejlesztése, PANEM, Budapest, 2002
Transactions Concurrency Control Property Trader Query
Description defines how CORBA objects are created, removed, moved, and copied defines how CORBA objects can have friendly symbolic names decouples the communication between distributed objects provides arbitrary typed n-ary relationships between CORBA objects coordinates the transformation of CORBA objects to and from external media coordinates atomic access to CORBA objects provides a locking service for CORBA objects i order in d to t ensure serializable i li bl access supports the association of name-value pairs with CORBA objects supports the finding of CORBA objects based on properties describing the service offered by the object supports queries on objects
http://www.jguru.com
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