CORBA bevezetés. Paller Gábor 2004.10.08. Internet és mobil rendszerek menedzselése



Hasonló dokumentumok
CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Komponens modellek. 3. Előadás (első fele)

A SZOFTVERTECHNOLÓGIA ALAPJAI

CORBA. Mi a CORBA? A CORBA felépítése

Osztott Objektumarchitektúrák

Osztott alkalmazások fejlesztési technológiái Áttekintés

Kommunikáció. 3. előadás

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Book Template Title. Author Last Name, Author First Name

CO C R O B R A B OMG, ORB, CORBA

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Komponens alapú fejlesztés

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Osztott rendszerek (Distributed

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

S04-2 Elosztott alkalmazások készítése

A Java nyelv. V. rész Az objektumorientáltság magasabb fokú tulajdonságai: Perszisztencia, CORBA, RMI

Már megismert fogalmak áttekintése

A Java EE 5 plattform

Serialization. RMI működése

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Segédanyag: Java alkalmazások gyakorlat

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Számítógépes Hálózatok. 5. gyakorlat

Segédanyag: Java alkalmazások gyakorlat

SOAP komponensek Delphiben

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

JNDI - alapok. Java Naming and Directory Interface

S01-7 Komponens alapú szoftverfejlesztés 1

Bevezető. Servlet alapgondolatok

Univerzális munkafolyamat szimulátor

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Többfelhasználós és internetes térkép kezelés, megjelenítés

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Interfészek. PPT 2007/2008 tavasz.

ARM Cortex magú mikrovezérlők. mbed

Szoftver újrafelhasználás

Magas szintű adatmodellek Egyed/kapcsolat modell I.

CORBA-alapú elosztott alkalmazások. /Java és CORBA/

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Prolan Zrt. fejlesztéseiben. Petri Dániel

Java Remote Method Invocation API

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

CORBA alkalmazások nyomkövetése interceptor-ok segítségével 1

ELTE SAP Excellence Center Oktatóanyag 1

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

OOP: Java 8.Gy: Abstract osztályok, interfészek

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Webszolgáltatások (WS)

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

Operációs rendszerek. Az X Window rendszer

problémák elvárások megoldások EAI MDA MOF CWM köztes Sw eszközök hatékonyság konklúzió 09:09 problémák elvárások megoldások EAI MDA MOF CWM

Szolgáltatás-orientált technológiák alkalmazási kérdései Absztrakt 1. Bevezetés

Junior Java Képzés. Tematika

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

OOP. Alapelvek Elek Tibor

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

WebSphere Adapters. 6. változat 2. alváltozat. WebSphere Adapter for SAP Software felhasználói kézikönyv 6. változat 2. kiadás

JAVA PROGRAMOZÁS 2.ELŐADÁS

Java RMI Áttekintés. A Java RMI. A Java RMI architektúrája. Ficsor Lajos. Általános Infromatikai Tanszék Miskolci Egyetem 1.

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Adatbányászat és Perszonalizáció architektúra

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Viczián István IP Systems JUM XIX szeptember 18.

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

UML (Unified Modelling Language)

Szoftverarchitektúrák. 12. Sorozat portál (követelmény specifikáció)

Programozás módszertan p.1/46

Abstract osztályok és interface-ek. 7-dik gyakorlat

Transzport Réteg. Transzport réteg protokollok

Flex: csak rugalmasan!

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Számítógépes Hálózatok. 7. gyakorlat

webalkalmazások fejlesztése elosztott alapon

Objektum orientált programozás Bevezetés

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

JAVA webes alkalmazások

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

A TANTÁRGY ADATLAPJA

Átírás:

CORBA bevezetés Paller Gábor 2004.10.08

CORBA Common Object Request Broker Architecture Az Object Management Group (OMG) felügyeli (ugyanaz, mint az UML-t) A specifikáció célja alkalmazások együttműködésének biztosítása. Ezeket az alkalmazásokat tetszőleges nyelven, operációs rendszerre lehet fejleszteni és közöttük levő hálózati kapcsolat sem számít. A specifikáció tartalma: Objektumorientált, nyelvfüggetlen elosztott alkalmazások készítését lehetővé tevő keretrendszer Szabványos CORBA szolgáltatások Jelentősége a menedzsmentben: menedzsment interfészeket gyakran implementálnak CORBA modellben.

CORBA alapelvek A CORBA lehetővé teszi, hogy az alkalmazások objektumokat tehessenek más alkalmazás által elérhetővé A CORBA objektumok nem kell megfeleljenek semmilyen objektumnak az objektum funkcionalitását megvalósító programban Ezek az objektumok az Object Request Broker (ORB) ellenőrzése alatt vannak, az ORB hozza létre, adminisztrálja és pusztítja el őket Az alkalmazás csak a minimálisan szükséges számú objektumot osztja az ORB-n keresztül, az ORB-n keresztül történő hívás elég drága.

CORBA alapelvek (2) Az elosztott objektumokat a saját ORB-n keresztül érjük el, így az ORB-k együttműködése elfedi a megcélzott objektum implementálási nyelvét, az eléréshez használt protokolt, stb.

ORB absztrakció Az alkalmazások csak saját ORB-jüket látják, ez a CORBA következő fontos tulajdonságait teszi lehetővé: A kliens és a szerver tetszőleges nyelven lehetnek írva mindaddig, amíg az alkalmazás és az ORB együttműködése megfelel a CORBA által megkövetelt szemantikának. Az implementációs nyelv nem is kell objektum-orientált legyen. A kliens és a szerver lehetnek ugyanazon a gépen vagy lehetnek más gépeken is, melyek között hálózati kapcsolat van. Ha az ORB-k megértik egymást, a két ORB tetszőleges protokolt használhat egymás között Terhelésmegosztási vagy hibatűrési megfontolásokból a szervert át is lehet helyezni egy másik gépre és a kliens alkalmazás ezt nem veszi észre, mert az ORB-n keresztül ugyanazt a szolgáltatást látja.

CORBA architektúra részletesen (2) Object CORBA programozási egység, ami identitásból, interfészből és implementációból (servant) áll Servant célnyelven írt program, ami a távoli interfészt implementálja Client a távoli interfészt hívó program ORB Object Request Broker ORB interface a szabványos CORBA ORB interfész implementációspecifikus megvalósítása CORBA IDL stub és skeleton a nyelvfüggetlen interfészből fordított csatolókód az ORB és az alkalmazás között Dynamic Invocation Interface (DII) a stubok megkerülésével direktben lehet elérni az ORB szolgáltatásait. Pl. nem csak RPC hívás lehetséges, pl. egyirányú vagy szétválasztott kérés-válasz Dynamic Skeleton Interface (DSI) a DII szerveroldali párja. Lehetővé teszi, hogy az ORB IDL skeleton nélkül is továbbíthasson kéréseket az alkalmazásnak. Object adapter az ORB az objektum életciklusát vezérli ezen az interfészen keresztül

CORBA architektúra részletesen

CORBA specifikáció elemei ORB specifikáció, hogyan működik együtt az ORB és az alkalmazások Inter-ORB protokol, ami biztosítja az ORB-k együttműködését, még akkor is, ha az ORB-k különböző gyártóktól származnak Interface Definition Language, ami lehetővé teszi az elosztott objektumok interfészeinek nyelvfüggetlen leírását Számos szabványos CORBA szolgáltatás

GIOP és IIOP Az ORB-k közötti protokoll szabványosítva van, hogy különböző gyártóktól származó ORB-k is együttműködhessenek Szabvány protokollok General Inter-ORB protocol (GIOP): transzport-protokolltól független protokoll ORB-k között Internet Inter-ORB protocol (IIOP): GIOP TCP felett IIOP stack: GIOP IIOP TCP

Request: CORBA metódushívás Reply: CORBA metódushívás válasz GIOP protokolüzenetek CancelRequest: CORBA metódushívás megszakítása LocateRequest: megvizsgálja, hogy a cél ORB képes-e kezelni egy CORBA metódushívást. Erre a Request is használható lenne, de a LocateRequest nem viszi az (esetlegesen hosszú) hívási paramétereket LocateReply: Válasz a LocateRequest-re CloseConnection: Bármelyik fél küldheti, ha le akarja zárni a kapcsolatot. A lebontó fél összes kint levő kérése törlődik MessageError: Az üzenetet fogadó hibásnak találta a GIOP üzenetet

Példa: Request GIOP üzenetstruktúra Request ID (32 bites üzenetazonosító) Response flags (mikor kapja vissza a kliens a vezérlést (amikor az ORB elfogadta a kérését, amikor sikerült elküldeni, amikor a cél ORB visszajelzi, hogy a kérést sikeresen megkapta...) Target a célobjektum azonosítója a cél ORB-on belül. Kezdetben ez az érték teljesen ORB specifikus volt (objektumazonosító, objektumcím, stb.). A későbbi CORBA szabványokban bevezették az Interoperable Object Reference (IOR) fogalmát. Az IOR struktúra megmondja az objektum típusát, hogy null-e, milyen transzportokon elérhető, stb. A meghívandó metódus nevét Hívási paraméterek binárisan kódolva, egymás után pakolva

Interface Definition Language CORBA programokat sokféle nyelven lehet implementálni Az interfészek leírására kell egy közös nyelv, hogy pl. egy C++ kliens megértse, milyen interfészt nyújt egy Jáva objektum Az IDL nyelv egy ilyen közös interfészleíró nyelv Feladata: interfészek, közöttük levő öröklődési relációk, az interfészeken keresztül elérhető metódusok definiálása IDL leírásokból általában az ORB IDL fordítója IDL stubokat és skeletonokat fordít, közvetlenül az IDL interfészleírót nem használják

typedef sequence<long> LongVect; interface AdderInterface { long add( in long n1, in long n2 ); long addarray( in LongVect nums ); string reverse( in string str ); }; IDL példa A típusok (long, string) IDL típusok. Minden célnyelvnek definiálnia kell a leképezést a saját típusaira. Pl: CORBA long: 32 bites előjeles egész szám. Ennek Jávában az int Jáva típus felel meg. sequence<long>: CORBA long-ok változó hosszúságú tömbje. Ennek Jáva megfelelője: int-ek tömbje, int[]

IDL metódusok paraméterei in a metódushívás bemeneti paramétere. Más nyelveken ez megfelel az érték szerinti hívásnak inout a metódushívásnak ez egy bemeneti paramétere, de a metódus megváltoztathatja a bemeneti értéket és a metódus futásának a végén a hívó visszakapja a módosított értéket. Más nyelveken ez megfelel a referencia szerinti hívásnak out a metódusnak ez egy kimeneti paramétere. A hívás során nem adódik át bemeneti érték, a metódushívás végén a paraméter értéke visszaadódik a hívónak. Más nyelveken ezt gyakran referencia szerinti hívással implementálják

Öröklődés Interfészek örökölhetnek egy másik interfészből Többszörös öröklődés is lehetséges interface A {... } interface B: A {... } interface C: A {... } interface D: B, C {... }

Interface repository Egy ORB által szolgáltatott interfészek az interface repository-ban vannak, innen keresi ki az ORB, amikor hívást kap Általában nem az IDL fájlokat tárolják, hanem azokból fordított modulokat

CORBA interfészek

CORBA interfészek (2) Object services alkalmazástípustól független interfészek, amelyek általánosan szükségesek elosztott programokhoz Naming service objektumokat név szerint lehet megtalálni vele Trading service objektumokat tulajdonságaik alapján lehet megtalálni vele Common facilities alkalmazástípustól független interfészek, amelyek főleg végfelhasználói alkalmazásoknak hasznosak. Pl. Distributed Document Component Facility (DDCF). Domain interfaces - alkalmazástípusok részére kifejlesztett interfészek, pl. telekommunikáció, orvosi, pénzügyi, stb. Application interfaces kifejezetten az alkalmazás részére kifejlesztett interfészek

CosNaming service Ez a CORBA alapértelmezett elnevezési szolgáltatása Egy CORBA objektumot az IOR azonosít, ez azonban változhat, pl. amikor az ORB-t újraindítják A CosNaming egy CORBA szolgáltatás (szabályos IDL által leírt interfész), ami IOR-ok névhez rendelését ill. névhez tartozó IOR-ok lekérdezését teszi lehetővé A neveket egy hierarchikus struktúrában tárolja

CosTrading service "Telefonkönyv" szolgáltatás elosztott objektumok részére Az objektumot különböző tulajdonságaival együtt regisztrálni lehet a trader adatbázisban. A tulajdonságok alapján aztán bonyolult kereséseket lehet végezni

Szabványos CORBA szolgáltatások Tucatjával vannak a Common Facilities és Domain Interfaces kategóriában Common Facilities példák: Collection Service: Lehetővé teszi a leggyakoribb collection típusok (vektorok, hashtáblák, halmazok, sorok) egységesített manipulációját Event Service: objektumok közötti események küldését és fogadását teszi lehetővé Externalizing Service: lehetővé teszi egy objektum állapotának bájtsorozattá alakítását, majd ebből az objektum helyreállítását Time Service: Megszerezhető az aktuális idő, az időmérés hibájának becslésére is alkalmas... Domain Interface példák: Air Traffic Audio/Visual streams Genetikai adatok cseréje Tervezési és gyártórendszerek adatainak kezelése (Platform Data Management) Munkafolyamat (workflow)...