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

Hasonló dokumentumok
Segédanyag: Java alkalmazások gyakorlat

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.

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

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

Java tutorial. Csomagok. A program tagolasa. Alrendszerek kialakıtasa. Csomag. Alrendszerek kialakıtasa

R I Szer e i r alizáció.

Párhuzamos és Elosztott Rendszerek II

Analı zis elo ada sok

Java Remote Method Invocation API

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

CLEAN-PRECÍZ Integrált ügyviteli rendszer. Őstermelői bevallás készítése

Programoza s I. 11. elo ada s Oszd meg e s uralkodj! elvu algoritmusok. Sergya n Szabolcs

Serialization. RMI működése

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

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

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

Bevezetés a Python programozási nyelvbe

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

SZERVEZETI ÉS MŰKÖDÉSI SZABÁLYZAT

JavaBeans. Java tutorial. Komponens-elvu programoza s. Off-the-shelf. Megoldas Java modra. O sszeszerele s

II. orsza gos magyar matematikaolimpia XXIX. EMMV Szatma rne meti, februa r 28. ma rcius 3. VIII. oszta ly

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

eseményvezérelt megoldások Vizuális programozás 5. előadás

Már megismert fogalmak áttekintése

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

Speciális bútorok. Laborbútor. Oktatási bútor. Ipari bútor. Mérlegasztal. Laborszék

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely

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

NÖVÉNYTERMESZTÉSTAN. Az egyes növények termesztésének a részleteivel foglalkozik

Elosztott rendszerek

A SZOFTVERTECHNOLÓGIA ALAPJAI

PRECÍZ Információs füzetek

Informa cio k, Mo dszerek, O tletek e s Megolda sok a Precıź Integra lt U gyviteli Informa cio s rendszerhez. T31. Standolás

Adatkezelés. 11. előadás (Entity Beans)

Interfészek. PPT 2007/2008 tavasz.

Programozási nyelvek Java

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

Objektumorientált programozás C# nyelven

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

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

C++ programozási nyelv

RAP-4 ELEKTROMECHANIKUS SOROMPÓ

Java I. A Java programozási nyelv

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

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

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

BUSZI itemizált feladatok web felülete

Java programozási nyelv 4. rész Osztályok II.

JNDI - alapok. Java Naming and Directory Interface

Í ö ű ü ű ö ö ö ö Í ö ö ű ü ű ö ű ű ö ö ű ű ö Í ö ö ű ü ö ű ö ö ű ű ö

Java I. A Java programozási nyelv

ő ő ú Ú Í Í Ó Ú

Komponens alapú programozás Bevezetés

ő ő í í ő

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani

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

PRCX PRCX. Perdületes mennyezeti befúvóelem

Ú ű ű ű ű ű Ő ű Í ű ű

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

Ő Ü í ű ö ü Ú í ü í ú ö ű ö ö ű Ő ü í ö ü í ü ü í ö ü í ö ü ű ö ö ö Ű Ö ö ű ö ö ü ü Ó í Ő ü í ö ü í Ó Ü ö ü Í í Ö ö ü ö í ö ö ö

OOP #14 (referencia-elv)

Ö ü Ö Ó ő Ö

Programoza s I. 13. elo ada s Moho algoritmusok. Sergya n Szabolcs

A f ldm vel s gyi s vid kfejleszt si miniszter 81/2009. (VII. 10.) FVM rendelete

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

TEE Szoftverek licenc-csomag beszerz se

A Java EE 5 plattform

ú ő ú Ö ú ú ő ő Ó ő ő ő ő

Jelente s az Eo tvo s Lora nd Tudoma nyegyetemen zajlo tehetse ggondoza si teve kenyse gro l

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

Programozási nyelvek II.: JAVA

ELŐTERJESZTÉS. a Gólyafészek Bölcsőde Alapító Okiratának módosításáról

Hírlevél február. Fejleszte sek e s va ltoza sok a Precıź Integra lt U gyviteli Informa cio s rendszerben I.

C++ programozási nyelv

SZABÁLYSÉRTÉSI IRATOK ÜGYKEZELÉSI SZABÁLYZATA

JAVA webes alkalmazások

és az instanceof operátor

Lineáris. Soros. Okozati FIFO. Belépő

Adathálózati (Internet) szolgáltatás Általános Szerzıdési Feltételek (v1.2) Érvényes : tól. Tartalomjegyzék

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

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

TEE Eger, Kertalja u. szennyv zcsatorna, v zvezet k, csapad k

SyscoNet Kereskedelmi és Szolgáltató Kft.

Szoftvertechnológia alapjai Java előadások

NEFAG Zrt. SZARVASGOMBA-VADÁSZAT KARCAG-APAVÁRA ERDŐTERÜLETÉN. PÁRATLAN ÉLMÉNYT NYÚJTÓ KALAND A NEFAG Zrt. VENDÉGEKÉNT

JAVA PROGRAMOZÁS 2.ELŐADÁS

ELTE SAP Excellence Center Oktatóanyag 1

4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30)

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

1. Bevezetés. Szent-Györgyi Albert: Psalmus Humanus. œ œ. A-nyám? œ œ œ Œ Ó. Te al - kot - tál en-gem, vagyté-ged. œ Ó. meg-osz-szam?

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

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

A SZOCIÁLIS ÉS MUNKAÜGYI MINISZTÉRIUM HIVATALOS LAPJA TARTALOM

RESIDENT EVIL CODENAME: NIK

Java és web programozás

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

API tervezése mobil környezetbe. gyakorlat

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Átírás:

RMI = Remote Method Invocation í Meg tudjuk hıvni olyan objektumok meto dusait is, amelyek mas virtualis gepben futnak í Kommunikacio kulő nbő z gepeken futo Java programok kő ző tt Kliens-szerver alkalmazasok Elosztott alkalmazasok í Alternatıva: CORBA Nem csak Java programok/objektumok kő ző tt Kliens-szerver forgato kő nyv í A szerver program ele rhet ve tesz objektumokat bejegyzi ket egy registry-be a tavoli objektumok varjak, hogy a kliensek meghıvjak a meto dusaikat í A kliensek szereznek egy referenciat egy ilyen objektumra aztan hıvogatjak a tavoli objektumok meto dusait í A reszleteket az RMI rendszer elintezi... Elosztott objektumok rendszere forgato kő nyv í Kulő nbő z sza mıto gepeken futo kulő nbő z virtualis gepekben elhelyezked objektumokat bejegyzunk í Megkeresik egymast es kommunikalnak egyma ssal hıvogatjak egymas meto dusait í Egymas megkeresese: pl. registry-n keresztul í A reszleteket az RMI rendszer elintezi... Teve kenyse gek í Tavoli objektumok megkeresese rajuk referencia beszerzese rmiregistry-n keresztul meto dushıvasok parameterekent/eredmenyekent í Kommunika cio a ta voli objektummal sima meto dushıvasok a programozo szamara a reszleteket az RMI elfedi í Osztalydefinıcio s fa jlok tova bbıta sa egymasnak atadott objektumok osztalyanak bető ltese egy masik, tavoli virtualis gepb l 1

Dinamikus osztalybető ltes í Amikor a tavoli objektumok egymas meto dusait hıvja k... í parame tereket adnak a t e s visszate re si e rte keket kapnak í Nem biztos, hogy egy virtualis gep ismeri annak az objektumnak az osztalyat, amit ıgy kap í Az RMI lető lti az osztalydefinıcio t is Tavoli objektumok í Amelyeknek meg lehet hıvni meto dusait az RMI segıtse gevel ma s virtua lis ge pekb l í A java.rmi.remote interfe szt megvalo sıtja k í Megvalo sıtanak egy tavoli interfeszt (a Remote egy kiterjeszteset), amiben fel vannak sorolva a tavolro l elerhet meto dusaik Ta voli meto dus í Kiterjesztjuk a java.rmi.remote interfeszt í Ez lesz a ta voli interfe szú í Ebben vannak definialva a tavolro l meghıvhato meto dusok csak ezek hıvhato k tavolro l í Ezek a meto dusok specifikaljak, hogy kivalthatjak a java.rmi.remoteexception kive telt Mi is tő rtenik? í A kliens egy tavoli referenciavalú rendelkezik a tavoli objektumra í A kliens virtualis gepben egy proxy objektum van, ami Így csinal, mintha lenne a tavoli objektum tovabbıtja a meto dushıvasokat a tavoli objektumnak í Ezt a proxy objektumot stub-nak nevezik Stub - csonk: klienscsonk í A tavoli objektum reprezentansa a klien virtualis gepekben í Amikor tavoli objektumra referenciat szerzunk a registry-b l, akkor egy ilyen jő n letre í Amikor tavoli objektumokat parameterkent vagy visszateresi ertekkent atadunk, akkor ilyen ado dik at helyette í Ugyanazokat a tavoli interfeszeket valo sıtja meg, mint amit a tavoli objektum Meg cast-olni is lehet 2

Mit is kell akkor tennunk? í megvalo sıta sa í Fordıta s, e s uta na a csonkok legenera la sa í A fajlok kitevese a halo ra í Futtatas megvalo sıta sa (4/1) í El kell dő nteni, hogy a rendszerben mely komponensek lesznek ta volro l ele rhet k, e s melyek lesznek lokalisak megvalo sıta sa (4/2) í A ta voli interfe szek definia la sa a tavolro l elerhet szolgaltatasok definialasa í A ta voli meto dusok parame tereiben e s visszate re si erte keiben haszna lt tıpusok (osztalyok es interfeszek) megırasa megvalo sıta sa (4/3) í A tavoli osztalyok elkeszıtese implementaljak a tavoli interfeszeket megvalo sıtjak a ta volro l igenybevehet szolgaltata sokat í A meto dusok parame tereiben es visszate resi e rte keiben haszna lt tıpusok (oszta lyok e s interfe szek) megıra sa megvalo sıta sa (4/4) í Kliensek megvalo sıta sa raer akkor is, ha a tavoli objektumok mar uzembe vannak helyezve... 3

Fordıtas, es utana a csonkok legenera la sa í Forra sfa jlok lefordıtasa javac í A.class fajlokbo l a csonkok legeneralasa rmic tő bbek kő ző tt ez is resze a Development Kit-nek A fajlok kitevese a halo ra í Minden.class fajlt, amit a kliensek haszna lni szeretne nek majd, ele rhet ve tesszuk egy WEB-szerveren keresztul a tavoli interfeszek a klienscsonkok a segedosztalyok es segedinterfeszek (parameterek, visszate re si e rte kek tıpusa...) Futtata s í Az rmiregistry program ez is resze a Development Kit-nek í A tavoli objektumokat bejegyz programok pl. a szerverek í A haszna lo programok kliensek Hogyan is kell akkor ilyet ırni? í Keszıtsunk el egy tavoli objektumot, ami tud ő sszegezni egesz szamokat! í Definia ljuk a szolga ltata st: Adder interfesz í Megvalo sıtjuk a tavoli objektumot: RemoteAdder osztaly í Irunk egy kliens programot, ami hasznalja Adder interfesz í Terjesszuk ki a java.rmi.remote interfeszt í Irjuk bele a szolgaltatast, ami most ket meto dus add: hozzad egy szamot az eddigi ő sszeghez get: lekerdezi az eddigi ő sszeget í Gondoskodjunk arro l, hogy a meto dusok deklaraljak a throws klo zukban a java.rmi.remoteexception kivetelt mellette egyebeket is deklaralhatnanak... 4

RemoteAdder osztaly í Meg kell valo sıtson egy tavoli interfeszt, most pl. az Adder interfeszt í Kiterjesztjuk a java.rmi.server.unicastremoteobject osztalyt í Irnunk kell konstruktort is í Gondoskodni kell arro l, hogy beregisztraljuk az osztaly egy peldanyat egy registry-be pl. ırhatunk egy main meto dust is benne, ami ezt megteszi... Ta voli interfe sz megvalo sıta sa í Implementa ljuk az interfe szben specifika lt meto dusokat í A throws klo zban mar nem kell feltuntetni a java.rmi.remoteexception kivetelt persze, ha akarjuk, kivalthatjuk, es akkor fel kell tuntetni í Konstruktort is kell ırni, ami viszont kivalthatja ezt a kivetelt, tehat nem lehet a default konstruktorra tamaszkodni. UnicastRemoteObject í Erdemes ebb l szarmaztatni a tavoli objektumok osztalyat í Kenyelmi oszta ly tostring, equals, hashcode ű exportalasú, lesza rmazasnal automatikus í Pont-pont (unicast, es nem broadcast) kommunika cio í Alapertelmezett socket-os megvalo sıtasa az RMI-nek Ha nem leszarmazott... í Meg kell valo sıtani az RMI specifikacio ban adott szemantikaval az Object-beli m veleteket í Explicit exportalni kell a tavoli objektumot hogy az RMI rendszer tudomast szerezzen ro la UnicastRemoteObject.exportObject(ᑺ) A beregisztra la s mo dja í Megfelel biztonsa gi felugyel (security manager) installalasa í A tavoli objektum osztalyanak peldanyosıtasa í Bejegyzes pl. rmiregistry-be vagy mas szolgaltato ba, pl. JNDI 5

Biztonsagi felugyel í Vedi a virtualis gepet es az azt futtato rendszert a lető ltő tt ko dto l (pl. lokalis fajlrendszer elerese) í Kő telez definialni, ha azt akarjuk, hogy dinamikus osztalylető ltes menjen parameterek, visszateresi ertekek, kivetelek tıpusara í java.rmi.rmisecuritymanager í Olyasmi, mint ami az appletek eseten is van í Lehet mast is beallıtani, vagy jogokat adni egy policy fajllal System.get/setSecurityManager() Bejegyze s í Ahhoz, hogy egy kliens szerezni tudjon egy referencia t e lete els ta voli objektuma ra í A tő bbire mar tud referenciat szerezni ett l í Predefinit tavoli objektum: RMI registry í Nev alapjan lehet t le tavoli objektumokra referencia t ke rni í Szolga ltata s elindıta sa: rmiregistry í API hozza: java.rmi.naming registry rmi://sza mıtoge p:port/ne v í Ha nem adunk meg szamıto gepet, akkor az aktualis szamıto gep í Ha nem adunk meg portot, akkor 1099 í Ha bejegyeztunk egy tavoli objektumot, akkor mar van egy referencia ra, ezert nem lehet t felszabadıtani szemetgy jtessel, ezert a main vegeterese utan nem all le a prg. Pelda í Olyan tavoli objektumot fogunk ırni, ami valamilyen feladatot old meg. Az, hogy mi a feladat, ismeretlen akkor, amikor a tavoli objektumot elkeszıtjuk. Annyit tudunk csak, hogy leırhato egy bizonyos interfesszel. A dinamikus osztalybető ltes gondoskodik a tő bbir l 6