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

Hasonló dokumentumok
Serialization. RMI működése

R I Szer e i r alizáció.

Párhuzamos és Elosztott Rendszerek II

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

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

Segédanyag: Java alkalmazások gyakorlat

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

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

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

Java RMI Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. javarmi / 1

Segédanyag: Java alkalmazások gyakorlat

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

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

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

RPC Remote Procedure Call Távoli eljárás hívás

Java Remote Method Invocation API

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

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

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

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

Osztott rendszerek (Distributed

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

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

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

Enterprise JavaBeans 1.4 platform (EJB 2.0)

RMI = Remote Method Invocation. Java tutorial. Kliens-szerver forgato kő nyv. Elosztott objektumok rendszere forgato kő nyv.

Elosztott rendszerek

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

JAVA webes alkalmazások

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

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

III. előadás. Kovács Róbert

Osztott Objektumarchitektúrák

Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M)

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

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

Programozási nyelvek Java

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

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

SOAP komponensek Delphiben

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

A SZOFTVERTECHNOLÓGIA ALAPJAI

RMI. Az alapoktól a részletekig RMI, activation, class loader-ek, serialization

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 C++ -ban 2007/7

UNIX: folyamatok kommunikációja

Interfészek. PPT 2007/2008 tavasz.

3. Osztályok II. Programozás II

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

A Java EE 5 plattform

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

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

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

Operációs rendszerek. Windows NT. A Windows NT

Alkalmazás és megjelenítés virtualizáció

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

Hamburger György, PTE Egyetemi Könyvtár informatikai osztályvezető

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Hálózati ismeretek. Az együttműködés szükségessége:

Elosztott rendszerek

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

Bevezető. Servlet alapgondolatok

INTELLIGENS HIBADETEKTÁLÁS ÉS KEZELÉS LEHETŐSÉGE JAVA ALAPÚ GRID RENDSZEREKBEN

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Smart Pointer koncepciója

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

OOP #14 (referencia-elv)

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

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.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

Fábián Zoltán Hálózatok elmélet

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Programozás alapjai. 7. előadás

Cisco Catalyst 3500XL switch segédlet

BME MOGI Gépészeti informatika 8.

OOP és UML Áttekintés

Objektumorientált programozás C# nyelven

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Öröklés és Polimorfizmus

ARM Cortex magú mikrovezérlők. mbed

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

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

1. Kapcsolók konfigurálása

C++ programozási nyelv

Programozási nyelvek Java

Virtuális függvények (late binding)

Számítógépes munkakörnyezet II. Szoftver

Programozási nyelvek Java

applikációs protokollok

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Programozási nyelvek Java

Átírás:

Kommunikáció Folyamatok közötti kommunikáció Minden elosztott rendszer alapja Marshalling Alap primitívek Direkt, indirekt portok Blokkolás, nem blokkolás

Pufferelés Megbízhatóság RPC

Az RPC jellemzői RPC argumentumok és visszatérési értékek RPC csonkok

IDL Kötések RPC meghibásodások Átviteli megoldások

RPC és az OSI referencia modell SunRPC XDR SunRPC és szállítási réteg SunRPC üzenetek

Csoport kommunikáció Példa IDL uuid(f0c37bd0-0d1b-4513-8c51-ec0d699740c0), version(1.0), [ implicit_handle(handle_t hdorpcbinding) ] interface DoRPC { void Show( [in, string] const char* szmsg); } ACF Application Configuration File [ implicit_handle(handle_t hdorpcbinding) ] interface DoRPC { } MIDL Microsoft IDL MIDL /app_config /no_cpp DoRPC.idl Eredmény:.h: közös Kliens oldal: client proxy Szerver oldal: server stub Megírni Lefordítani Kliens, Szerver

RMI Az RMI (Remote Method Invocation), azaz távoli metódushívás egy olyan eszköz a Java nyelvben, mely lehetővé teszi más VM-ben (Virtual Machine virtuális gép) elhelyezkedő objektumok metódusainak meghívását. Szerializáció - Serialization Egy objektum szerializáció során egy bájtfolyammá alakul, mely ezek után használható a Java nyelv szabványos kimenet és bemenet kezelési módszereivel. Ennek ellenkezője a deszerializáció, mely a visszaalakítást jelenti a bájtsorozatból objektummá. A szerializáció alkalmas például egy objektum háttértárra való kiírására, azaz állományba mentéshez, illetve alkalmas a VM-ek közötti kommunikáció megvalósítására, ugyanis a szerializált objektum a hálózaton átküldhető, mint bájtfolyam, és a másik oldalon visszaalakítható objektummá. RMI Az RMI rendszer nem más, mint Java osztályok gyűjteménye, azaz nem nyelvi elem. A Java fejlesztőkörnyezettel adott RMI rendszer saját szemétgyűjtő mechanizmussal is rendelkezik. A Java nyelvben nincsen olyan referencia, mely egy másik virtuális gépen elhelyezkedő objektumot címezne meg, ezért ehelyett egy úgynevezett csonkot kell használni. Csonk A csonk egy olyan objektum, mely a lokális virtuális gépen helyezkedik el, és hasonlít a távoli objektumra azzal a különbséggel, hogy nincs benne implementálva a távoli objektum metódusainak törzse. A metódushívást tehát úgy kell elképzelni, hogy a csonk egy metódusát hívjuk meg, mely a JRMP (Java Remote Method Protocol) protokollt használva továbbítja a hívást a távoli objektumnak, szerializálva a paramétereket, blokkolva a végrehajtást, majd ha visszaérkezik a visszatérési érték a hálózaton, deszerializálja azt, és visszaadja azt a hívó félnek. A csonk elkészítése automatikus. Csonk A csonk használata teljesen transzparens, egyenértékű a távoli referenciával. A hívás során a hálózaton a következő információk mennek át, melyek el vannak rejtve: a hívott objektum azonosításához szükséges információk, a hívott metódus azonosításához szükséges információk, illetve a metódushívás aktuális paraméterei, szerializálva. Fontos, hogy más-más virtuális gépen az ugyanarra az objektumhoz tartozó csonk igaz ugyan, hogy különböző objektum, de ugyanarra az objektumra vonatkozó referencia.

Fogadó A fogadó oldalon RMI háttérszálak futnak, melyek várják a beérkező távoli metódushívásokat. Amint kapnak egy ilyent, továbbadják azt a megcímzett objektumnak, mely ugyanazon a virtuális gépen helyezkedik el. Ebben már implementálva van a metódus törzse, így végrehajtódik az. A visszatérési értéket aztán visszaküldi a hívó oldalon szereplő csonknak, mely továbbadja a hívónak. Rejtett információk Az előlünk elrejtett információk, melyek átmennek a hálózaton: a távoli metódus visszatérési értéke a kivétel, melyet vagy a távoli objektum dobott, vagy az RMI rendszer működése közben lépett fel. Paraméterek A paraméterként átadott objektumok nem mennek vissza a hívó félhez. Ez azt jelenti, hogy a paramétereken véghezvitt változás nem aktualizálódik a hívó oldalon, azaz érték szerinti paraméterátadásról beszélünk. Ez közvetlenül abból következik, hogy a deszerializáció során a hívott oldalon egy másolat keletkezik az eredeti objektumból. Exportálás Abban az esetben, mikor példányosítunk egy objektumot, ami távolról elérhetővé akarunk tenni, közölni kell az RMI háttérszálakkal a készen állását, hogy most már fogadhat távoli metódushívásokat erre az objektumra vonatkozólag, illetve azért, hogy tudja, hova kell a hívást továbbadni. A közlést exportálásnak nevezzük. Természetesen egy objektumot unexportálni is lehet, ezek után nem érhető el többet RMI-n keresztül. Exportáláskor létrejön egy csonk példány is a hívott oldalon, melyet használva a hívó oldalon érhetjük el az eredeti, távolról elérhető objektumot. RMI Registry RMI Registry Ahhoz, hogy referenciához jussunk a távolról hívható objektumra, szükségünk van a hozzá tartozó csonkra. De a csonk példány a hívott oldalon keletkezik, tehát valahogy el kell jutnia a hívó félhez. Ennek lekérése az RMI registry-n keresztül történik, méghozzá RMI technikával, ugyanis a registry nem más, mint egy távolról elérhető objektum, melynek távolról hívható metódusaival rendelhetünk egy objektumhoz egy referenciát, kérhetjük le azt, illetve távolíthatjuk el a registry-ből. A registry csonk és név párokat tartalmaz. Egy távoli objektum azonosítását egy speciális cím teszi lehetővé, melyben szerepel a számítógép neve, opcionálisan egy port, illetve az objektum neve.

RMI Registry A Java fejlesztő környezetben kapunk egy segédprogramot, mely létrehoz egy registry példányt, és exportálja azt. Erre azért van szükség, mivel a registry is egy távolról elérhető objektum. Honnan tud a hívó fél referenciát szerezni a registry-re? Tudjuk ennek a címét és a port számát, valamint speciális azonosítóval rendelkezik, ezért csonkot generálhatunk anélkül, hogy kapcsolatba lépnénk az registry-t példányosító és azt exportáló virtuális géppel. Működés Interfész rmic RMIExampleImpl szerver / kliens stub / skeleton javac RMIExampleImpl.java - szerver javac RMIExample.java - interfész javac RMIClient.java - kliens java.policy - jogok rmiregistry RMI Registry Szerver Kliens Köszönöm a figyelmet!