A CORBA Rudics Attila 541. Bevezetés Probléma: A nagy számítógépes hálózati rendszerek heterogenitása -különféle architektúrájú számítógépek -különféle.

Slides:



Advertisements
Hasonló előadás
A számítógépes hálózatok és az Internet
Advertisements

A hálózat működése 1. A DHCP és az APIPA
ADATBÁZISOK.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
Elosztott objektumok használata Tihanyi Sándor december.
Készítette: Nagy Márton
Kliens-szerver architektúra
Hálózati és Internet ismeretek
C++ programozási nyelv Gyakorlat hét
Programozás III KOLLEKCIÓK 2..
RENDSZERINTEGRÁLÁS B_IN012_1
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
RMI = Remote Method Invocation
13.a CAD-CAM informatikus
OSI Modell.
Bevezetés a Java programozásba
Vizuális modellezés Uml és osztálydiagram UML eszközök
Ez a dokumentum az Európai Unió pénzügyi támogatásával valósult meg. A dokumentum tartalmáért teljes mértékben Szegedi Tudományegyetem vállalja a felelősséget,
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.

Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Mutatók, tömbök, függvények
Számítógép-hálózat • Önálló számítógépek összekapcsolt rendszere
A TCP/IP cím.
A C++ programozási nyelvSoós Sándor 1/10 C++ programozási nyelv Gyakorlat - 5. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
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) -
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
C# tagfüggvények.
C# tagfüggvények.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
Adatbázis-kezelés Papp-Varga Zsuzsanna. Elérhetőségek    as.
Bevezetés az ebXML-be Forrás: An Introduction to ebXML ebXML and Web Services Practical Considerations In Implementing Web Services Romin IraniRomin Irani.
WEB MES (webes gyártásirányító rendszer)
Bevezetés a C++ programozási nyelvbe
Objektumok. Az objektum információt tárol, és kérésre feladatokat hajt végre. Az objektum adatok (attribútumok) és metódusok (operációk,műveletek) összessége,
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
Objektumorientált tervezés és programozás II. 3. előadás
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Objektumorientált programozás
Komponens-absztrakció. Objektum-orientált paradigma korlátai Feltételezés az interfészekről: 1. öröklés és aggregáció alkalmazható, 2. közös programozási.
Java web programozás 11..
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
Objektumvezérelt rendszerek tervezése
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
Webes alkalmazásfejlesztés
Kapcsolatok ellenőrzése
Számítógép hálózatok.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Hálózatok a mai világban
1 Objektum orientált programozás Az objektumok és az osztályok – példányosodás Nagy Szilvia.
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Programozás III JPA.
A szoftver mint komplex rendszer: objektumorientált megközelítés.
Strukturális tervezési minták
Hálózatos programok készítése
MIB Dokumentáció.
Hibernate / EclipseLink / OpenJPA összehasonlítás
Operációs rendszerek.
Beépített függvények használata programozáskor
Integrált könyvtár rendszer (IKR)
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hálózati struktúrák, jogosultságok
Előadás másolata:

A CORBA Rudics Attila 541

Bevezetés Probléma: A nagy számítógépes hálózati rendszerek heterogenitása -különféle architektúrájú számítógépek -különféle operációs rendszerek -változatos rendszeren futó alkalmazások A megoldás:Az elosztott rendszerek különféle komponensei működésének összehangolására, összekapcsolására

Elosztott objektum-orientált rendszerek (Distributed Object Computig) és alkalmazások: Okai: -Az alkalmazás által használt adatok elosztottak: (az adatok több számítógépen léteznek, távolról hozzáférünk az adatokhoz,helyi tárolás nem megengedett) -A feldolgozás elosztott (kihasználása a többprocesszoros paralel feldolgozásnak és a különböző rendszerek által nyújtott egyedi jellemzők előnyeinek ) -Az alkalmazás felhasználói elosztottak (Minden egyes felhasználó az alkalmazásnak csak egy kis részét futtatja a saját számítógépén )

Az elosztott rendszerek jellemzői LokálisElosztott KommunikációGyorsLassú Hibalehetőség Összes objektum egyszerre Hálózat által szétválasztott objektumok külön Konkurens hozzáférés Csak többszálúság segítségével Biztosított BiztonságosIgenNem

Kezdet, elsô probálkozások. Az RPC (RemoteProcedure Call) vagy távoli eljáráshívás -Kliens – Szerver kapcsolat lebonyolitása, ezek: * lehetnek különbözõ nyelven írva * futhatnak más gépen *futhatnak más operációs rendszer alatt *futhatnak más hardveren Nagy hátránya, hogy nem támogatja az objektum-orientált programozást

OMG A probléma megoldására megalakult az Object Management Group (OMG) -> kidolgozza a heterogén elosztott objektum-orientált rendszerekkel kapcsolatos alapvető fontosságú szabványokat. - legfontosabb szabványosítási területe az OMA (Object Management Architecture) objektumkezelési architektúra -OMG válasza a ma elérhetõ, gyorsan szaporodó hardver- és szoftvertermékek közötti interoperabilitás iránt felmerülõ igényre a CORBA (Common Object Request Broker Architecture )

Corba Definíciók: -A CORBA (Common Object Request Broker Architekture) egy fejlesztési metodológia az elosztott távközlési szoftverek fejlesztéséhez. -A CORBA szabvány definiál egy olyan kommunikációs mechanizmust, amely lehetővé teszi hálózaton elosztott objektumoknak egymás metódusainak hívását, egymás szolgáltatásainak igénybevételét.

A CORBA jellemzői: - platformfüggetlen -gyártófüggetlen: *Nyílt szabvány *OMG tesztjein, megkaphatják a szabványnak-megfelelõ (CORBA-conformant) tanusítványt -nyelvfüggetlen -helyfüggetlen

CORBA alapfogalmak * A CORBA objektum egy olyan absztrakt entítás, amely képes a kliensektõl érkezõ kérések megválaszolására. Minden CORBA objektumnak vagy egy jól definiált felülete (interface). * A kliens egy program amely kéréseket intéz egy CORBA objektumhoz. Maga a kliens fogalom relatív, mert tud szerverként is viselkedni. * A szerver egy program amely megvalósít egy vagy több CORBA objektumot. Az objektum életciklusa független az õt megvalósító szerver életciklusától -> perzisztens objektumok használatára.

CORBA alapfogalmak * Egy kérés (request) : egy CORBA objektum egy mûveletének a meghívása. * Az objektum referencia egy CORBA objektumot azonosít a kliens számára. A referencia átlátszó (opaque), azaz a kliens semmi mást nem tud tenni vele, mint felhasználni egy kérés elküldéséhez. * A servant (TODO) egy olyan entitás a szerver programban, amely egy vagy több CORBA objektum valósít meg (incarnate).

A Corba Komponensei: - ORB (Object Request Broker) az a középsõ réteg, ami a kliens és a szerver között lehetõvé teszi az egyszerû kommunikációt. - OMG IDL(Interface Definition Language) interfészleíró nyelv -Az OMG IDL interfészleíró nyelvnek más programozási nyelvekre történő leképezése - Kliens- és szervercsonkok szerkezete (mind a dinamikus, mind a statikus metódushívási modellben) - DII (Dinamic Invocation Interface)Dinamikus metódushívási interfész. - SII : Statikus metódushívási interfész. - DSI (Dinamic Skeletron Interface) Dinamikus szerveroldali-csonk interfész.

A Corba Komponensei: - IR(Interface repository) Interfészgyűjtemény Run-time adatbázis a szerver oldali objektumok IDL definícióját tartalmazza - Implementation repository Implementációgyűjtemény A szerver oldali implementációk tárolása. - OA (Object Adaptor ) Objektumadapterek:megadja a csatornát, amin keresztül egy objektum szerver az Object Request Broker-rel (ORB) kommunikál. - BOA(Basic Object Adaptor):Alapvető szolgáltatásokat nyújtó objektumadapter. - ORB szoftverek együttműködési protokolljai.Ha a két szoftverkomponens két külön helyen van, akkor az adatátvitel a GIOP protokol segítségével valósul meg(ESIOP DCE-alapú). Az IIOP a GIOP Internetre alkalmazott változata, ez TCP/IP-alapú.

A Corba Komponensei:

Az ORB(Object Request Broker) -elosztott szolgáltatás -eljuttatja a kérést a távoli objektumhoz -megkeresi a távoli objektumot a hálózaton -továbbítja a kérést az objektumhoz -megvárja az eredményeket, és azt visszaküldi a kliensnek.

Az ORB(Object Request Broker) - egy programozás nyelvtől független megvalósítást biztosít a kérések számára -a feladatát a legtranszparensebb módon végzi : -kliens elől eltakarja az célobjektum elhelyezkedését és implementációját. -A metódushívást végrehajtó kliensnek nem kell tudnia az elérni kívánt objektum állapotáról(aktív vagy éppen perzisztens) -A kliens nem ismeri az ORB által a metódushívás közvetítésére használt módszereket. -az egyazon folyamaton belüli, és azonos programozási nyelven implementált objektumok metódusainak hívása helyi metódushívási mechanizmusaival történik.

Az ORB(Object Request Broker) -a különböző folyamatok közötti metódushívás általában a TCP/IP protokollcsalád valamely transzportprotokolljával történik -Az ORB feladata a távoli(és helyi) objektumreferenciák kezelése -egyedi objektumazonosítót (IOR) hoz létre egy CORBA objektum létrehozásakor -Az alkalmazások ezeket az objektumazonosítókat adják tovább más alkalmazásoknak

Az IDL(Interface Definition Language ) -Az objektumok által biztosított szolgáltatások az interfészük révén van megadva, és ezek az interfészek az OMG által meghatározott IDL-n vannak leírva -az interfész-ek tartalmazzák az objektumok metódusainak és adattagjainak a specifikációját valamint egyes elemek típusára vonatkozó információkat Pl. // Hello.idl interface Hello { void say_hello(); };

Az IDL(Interface Definition Language ) - deklaratív nyelv-> nem alkalmas számításokra -csakis a kommunikációs felületek definiálhatóak benne -programozási nyelvektől független -heterogén számítógépes környezetekben kedvező. -nyelvi leképezések használata,létezése(Java,C++) -az IDL definícióka fileokban tárolodnak

Az IDL főbb elemei Interfészek -definiálják az objektumok távolról hívható metódusait, attribútumait -implementáció nincs!! -tuljadonképpen mûveleti szignatúrák gyûjteménye -Az OMG IDL lehetőséget nyújt interfészek közötti öröklési relációk leírására is,támogatja a többszörös öröklődést -egyenértékûek más IDL típusokkal

Az IDL főbb elemei Modulok -az IDL névtartomány hierarchikus kiterjesztésének támogatása miatt fontos. -egy adott nevű modulban definiált azonosítókra más modulokból a modul nevével minősítve hivatkozhatunk Konstansok -állandó értékeket rögzíthetünk az IDL specifikációs fájlban. Adattípusok -specifikálják az interfészekben levő metódusok paramétereinek típusát, visszatérési értékük típusát, illetve az általuk kiváltható kivételek jellemzőit.

Az IDL főbb elemei Műveletek -definiálják az egyes IDL interfészelemek egy-egy etódusát,szignatúráját (mi az illető metódus neve, milyen típusú paraméterei vannak, milyen a visszatérési értéke, milyen kivételeket vált ki.) - Az egyes műveletek paramétereihez definiálva van az illető paraméterek átadási módja is.Ezek lehetnek: -Klienstől a szerver felé történő paraméterátadás. (in) -Szervertől a kliens felé történő paraméterátadás. (out) -Mindkét irány egyszerre (a híváskor a klienstől a szerver felé, majd visszatér éskor a szervertől a kliens felé). (Inout)

Az IDL más elemei: Beépített típusok(short,long,unsigned short, unsigned long,float, double,char,octet(1b),string és boolean Elnevezett típusok (Typedef) Felsorolási típusok (Enum) Direkt szorzat típusok (struktúrák) (Struct) Unió típusok (Union)-Ezeknek diszkriminátora van Tömb típusok (Vector,Matrix) Szekvencia típusok(Sequence) Attributumok - a CORBA objektum állapotának egy része melyet az interfészen keresztül lekérdezni/módosítani lehet

Az IDL más elemei: Öröklődés -Az interfészek örökölhetnek egymástól -lehetőségünk van olyan IDL műveleteket definiálni, melyek bármilyen típusú interfésszel működnek(Object) -A NIL létezése Az Any típus -bármely más IDL típus értékét képes tárolni -típusinformációt is magában hordoz -a nyelvi leképezés határozza meg,hogy egy any értékét hogyan lehet beállítani és kiolvasni

IDL leképezése programozási nyelvekre -szükség van a specifikációs és az implementációs eszköz közötti kapcsolat megteremtésére -a kapcsolatot az IDL nyelvnek a különféle programozási nyelvekre történő leképezését tartalmazó szabványok teremtik meg -Szabványositások: -adattípusainak a leképezését az illető programozási nyelv szabványosított adattípusaira -A kliens- és a szervercsonkok szerkezetét. -CORBA objektumok implementációjának számos más részletét

CORBA sematikus Müködése -az interfészt az IDL fordító dolgozza fel, és létrehozza az adott interfésznek megfelelő stub és skeleton osztályokat -a stub objektum pontosan az IDL-ben megadott interfészt valósítja meg; ez tekinthető a távoli szerver objektum lokális helyettesítő példányának ;ezzel fog kommunikálni a kliens -a skeleton mentesíti a szerver objektumot a CORBA- specifikus részletek ismerete alól ; tartalmazza mindazt a funkcionalitást, amely a hálózaton keresztül (az ORB közvetítésével) érkező kérések vételével, a paraméterek deszerializálásával, valamint az eredmény szerializálásával és elküldésével kapcsolatos

CORBA sematikus Müködése

Az Interface Repository(IR) Interfészgyüjtemény -futás idejü hozzáférés az interfészgyüjteményhez -az IDL definiciok formáját tartalmazza:objektumok, metodusok leirását, paramétereit -Az IR-t általában egy, a CORBA szoftverhez adott szerverprogram valósítja meg -az ORB ennek az adatbázisnak a segítségével tudhatja meg azt, hogy a meghívott metódus milyen típusú paramétereket vár -a tárolt adatok futás közben kicserélhetők, törölhetők

Az implementációgyűjtemény -a rendszerben levő CORBA objektumokról tartalmaz információkat (például azt, hogy az illető objektumok hogyan érhetők el, hol vannak tárolva, illetve hogyan lehet őket aktivizálni, ha valamikor szükség lesz rájuk). -minden elkészült CORBA objektumimplementáció jellemzőit bejegyzik ebbe az implementációgyűjteménybe -a CORBA objektumok klienseit, nem kell az implementációgyűjteménybe bejegyezni, csak ha maguk nem definiálnak új CORBA objektumokat szerver feladatokat is ellátva.

DII és a DSI -akkor használjuk ha fordítási időben nem ismerjük a használni kívánt CORBA objektumok felületét -A DII(Dynamic Invocation Interface –Dinamikus hivásí felület) használatához meg kell adnunk a célobjektumot, a meghívni kívánt művelet nevét, a paraméterek típusát és értékét, valamint a művelet által kiváltható kívételek típusát;ezeket az adatokat vagy az Interface Repository-ból szerezhetjük meg, vagy bekérhetjük a felhasználótól stb. Miután megadtuk az adatokat, utasítjuk az ORB-t a kérés elküldésére, a válasz megérkezte után pedig feldolgozhatjuk az eredményt. -a paramétereket és a visszatérési értéket is any típusként kell kezelni

DII és a DSI - A DII-nek szerver oldali párja, a DSI (Dynamic Skeleton Interface). A DSI úgy mûködik, hogy a programozó megadhat egy speciális függvényt, a DIR-t (Dynamic Implementation Routine), melyet az ORB meghív, ha az adott objektumhoz kérés érkezik. A DIR megkapja a mûvelet nevét és általános formában a paramétereket. Feladata a mûvelet eredményének és az kimenõ paraméterek értékének kiszámítása. A DII-t és a DSI-t azért fontos, mert sok olyan szoftver, amely a CORBA-t illeszti egy adott programozási nyelvhez, ezt a két szolgáltatást használja az illesztés megvalósításához.

OA - objektumadapterek -a szerverobjektumok az objektumadapteren keresztül tartják a kapcsolatot az ORB-vel -a szerveroldali alkalmazások elérhetik az ORB szolgáltatásait -a BOA adapter(Basic Object Adapter) *Objektumreferenciák generálása és értelmezése *Objektumimplementációk bejegyzése az implementációgyűjteménybe *Objektumimplementációk aktiválása és deaktiválása -BOA adapteren kívül léteznek egyéb objektumadapterek is

OA - objektumadapterek -egy implementáció aktiválása -egy objektum aktiválása -BOA objektumadapterek négy alapvető implementáció, illetve objektumaktiválási módot támogatnak : *Több objektumnak közös szerver alapú stratégia *Objektumonkénti önálló szerver alapú stratégia *Metódushívásonkénti önálló szerver alapú stratégia *Perzisztens szerver alapú stratégia

A CORBA objektumok ősosztálya -CORBA::Object - interface Object { ImplementationDef get_implementation(); InterfaceDef get_interface(); boolean is_nil(); Object duplicate(); void release(); boolean isá(in string a_típus_logikaiázonosítója); boolean nonéxistent(); boolean iséquivalent(in Object másikóbjektum_referenciája); unsigned long hash(in unsigned long maximum); Status create_request(in Context ctx, in Identifier művelet, in NVList paraméterlista, inout NamedValue visszatérésiíerték, out Request kérés, in Flags kérés_jellemzők); }

ORB szoftverek együttműködésének megszervezése -Az elején nem volt szabvány -> sok baj -A CORBA szabvány 2.0 változatától kezdődően definiáltak két ORB együttműködési protokollt: - az általános együttműködési protokollt(GIOP) -a DCE alapú együttműködési protokollt(DCE/ESIOP ) - Az ORB implementációk általában a GIOP(General Interoperability Protocol ) protokollnak a TCP/IP összeköttetés-alapú transzport protokoll feletti implementációját támogatják, az ún. IIOP protokollt (ez az Internet-alapú ORB együttműködési protokoll)

A CORBA szolgáltatások -Az alkalmazásfejlesztés megkönnyítésére az OMG definiált néhány szolgáltatást (CORBAServices), melyeket a CORBA-t használó programok igénybe vehetnek. Ezeknek a szolgáltatásoknak a felülete OMG IDL-ben van megadva. -A fontosabb szolgáltatások a következõk: Naming Service - Ennek segítségével a CORBA objektumoknak nevet adhatunk, és név szerint kereshetünk köztük. (Telefonkönyv) Trader Service - A Naming Service általánosítása. Az objektumokhoz tulajdonságokat rendelhetünk, és ez alapján kereshetünk köztük. (Yellow Pages) Event Service - Osztott rendszerünket eseményvezérelten mûködtethetjük. Transaction Service - Osztott tranzakciókat hozhatunk létre segítségével. Lifecycle Service - CORBA Objektumainkat perzisztenssé tehetjük