java remote method invocation Kateřina Fricková, Matouš Jandek

Podobné dokumenty
RMI - Distribuované objekty v Javě

Katedra měřicí a řídicí techniky, VŠB - Technická univerzita v Ostravě, tř. 17. listopadu, Ostrava-Poruba, Česká republika

Remote Method Invocation RMI

RMI Remote Method Invocation

JAVA V RMI Java, letní semestr

JAVA RMI Java, letní semestr 2018

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

Common Object Request Broker Architecture

Soketové připojení Klient InetAddress getbyname() UnknowHostException SecurityException Socket getinputstream() getoutputstream() IOException Server

Úvod do Web Services

TÉMATICKÝ OKRUH Softwarové inženýrství

Tvorba informačních systémů

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

RMI - Remote Method Invocation

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007

(Enterprise) JavaBeans. Lekce 7

Softwarové komponenty a Internet

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Semináˇr Java X J2EE Semináˇr Java X p.1/23

ilé aspekty distribuovaných objektových systémů

Komunikace. Úrovová architektura protokol. Úrovová architektura protokol (2) Pednášky z distribuovaných systém

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

1. Směrovače směrového protokolu směrovací tabulku 1.1 TTL

Firemní informační systém

Se vznikem internetu se můžeme na síťovou komunikaci v Javě (komunikace mezi více JVM) dívat dvěma pohledy-způsoby:

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Nové jazykové brány do Caché. Daniel Kutáč

Struktura programu v době běhu

MASSIV. Middleware pro tvorbu online her

Profilová část maturitní zkoušky 2017/2018

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

Uklízení odpadků a analýza úniku

Komunikace s automaty MICROPEL. správa systému lokální a vzdálený přístup do systému vizualizace, umístění souborů vizualizace

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Správa paměti. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

Profilová část maturitní zkoušky 2013/2014

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

Inovace výuky prostřednictvím šablon pro SŠ

RESTful API TAMZ 1. Cvičení 11

Architektury komunikujících systémů

Manuscriptorium jako základ pro virtuální badatelské prostředí

TÉMATICKÝ OKRUH Softwarové inženýrství

Analýza protokolů rodiny TCP/IP, NAT

Dominik Vymětal. Informační technologie pro praxi 2009, Ostrava

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

PA165: Úvod do Java EE. Petr Adámek

Souborové systémy Mgr. Josef Horálek

Programování II. Návrh programu I 2018/19

UJO Framework. revoluční architektura beans. verze

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Úvod do informačních služeb Internetu

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Michal Andrejčák, Seminář Energetika v průmyslu, Hotel Vista Dolní Morava, Možnosti monitorování a ovládání Zpracování dat z rozvoden

I.CA RemoteSeal. Ing. Filip Michl První certifikační autorita, a.s

Základy počítačových sítí Model počítačové sítě, protokoly

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ

Identifikátor materiálu: ICT-3-03

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Copyright 2001, COM PLUS CZ a.s., Praha

Internet Information Services (IIS) 6.0

Architektury komunikujících systémů

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

Úvod do počítačových sítí

Disková pole (RAID) 1

Artlingua Translation API

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016

Návrhové vzory OMO, LS 2014/2015

Projektování distribuovaných systémů Lekce 2 Ing. Jiří ledvina, CSc

Server-side technologie pro webové aplikace

přetížení operátorů (o)

Jan Kratochvíl, F 3 MOD. 15. února 2004

1 Webový server, instalace PHP a MySQL 13

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.

11 Návrh programového vybavení

ATS Global B.V. ATS Bus.

Přístup do IS z mobilních zařízení

InternetovéTechnologie

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

TÉMATICKÝ OKRUH TZD, DIS a TIS

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Programovatelné automaty SIMATIC S7 a S5

Load Balancer. RNDr. Václav Petříček. Lukáš Hlůže Václav Nidrle Přemysl Volf Stanislav Živný

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Vyčtení / zapsání hodnot z/do OMC8000 pomocí protokolu UDP

Programování v jazyku Java RMI, vnitřní a vnořené třídy, generika

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Transkript:

java remote method invocation Kateřina Fricková, Matouš Jandek

Distribuovaný systém počítačový systém, ve kterém jsou jednotlivé komponenty propojeny počítačovou síťí komponenty systému sdílí cíl, kterého se snaží dosáhnout základní vlastnosti distribuovaného systému: komponenty systému jsou v provozu souběžně vysoká úroveň nezávislosti systému na jednotlivých komponentách komponenty systému nejsou navzájem synchronizované 1

Remote procedure call komunikační protokol umožňující programu vykonat kód, který existuje v jiném adresním prostoru (lokálním i vzdáleném) základní model fungování RPC protokolů metoda komunikace: request-response architektura systému: klient-server klient: lokální zdroj, poskytuje programu rozhraní pro volání vzdálených procedur server: vzdálený zdroj, zpracovává požadavky zaslané klienty, vrací výsledky vykonaných procedur a funkcí zpět klientovi 2

stub: lokální reprezentace vzdálené metody 2 typy client stub a server stub 3

postup volání vzdálené procedury: v klientské aplikaci se zavolá příslušná client stub metoda client stub provede konverzi parametrů do formátu určeného konkrétním RPC protokolem tzv. marshalling data se odešlou na cílový server server stub provede konverzi parametrů do formátu používaného serverem tzv. unmarshalling server stub zavolá danou metodu odpověď obsahující výsledek volané metody probíhá obdobně 4

Java RMI RMI Remote Method Invocation rozhraní pro vzdálené volání metod v jazyce Java objektově orientované 2 Podporované komunikační protokoly JRMP RMI-IIOP (CORBA) 5

Distributed garbage collection automatická správa paměti pro vzdálené objekty na straně serveru když klient vytvoří referenci na vzdálený objekt, zavolá se metoda dirty() na straně serveru když klient po nějakou dobu nepoužívá danou referenci, zavolá se metoda clean(), která referenci zruší 6

Architektura Java RMI Java RMi se skládá ze 3 vrstev vrstva Stub/Skeleton vrstva Remote Reference vrstva Tranport 7

Stub/Skeleton layer odpovídá za serializaci a deserializaci objektů lokální zástupná třída pro vzdálené třídy stub dynamicky generovaný (preferovaný způsob) staticky generovaný nástroj rmic skeleton v aktualní verzi Java již nepotřebné 8

Remote reference layer uchovává informace o vzdálených serverech získává reference na vzdálené objekty zajišťuje volání vzdálených metod překlad paměťových adres z/do lokálních ke komunikaci používá transport layer 9

Získání vzdálených objektů klient potřebuje od serveru reference na vzdálené objekty server pomocí třídy java.rmi.naming nebo java.rmi.registry spojí v registru název se vzdáleným objektem klient si podle jména v registru vyhledá vzdálený objekt, nyní si objekt může zavolat ze serveru další reference lze získat pomocí návratové hodnoty metody 10

Rozhraní java.rmi.registry.registry než si klient může zavolat vzdálenou metodu, musí obdržet referenci na vzdálený registr LocateRegistry.getRegistry(port) rozhraní dokáže vyhledat (dle názvu), vypsat a získat reference na vzdálené objekty v registru metody bind, unbind, rebind umožňují klientovi obsluhovat reference na objekt, aniž by záznam smazaly z registru na straně serveru 11

Třída UnicastRemoteObject UnicastRemoteObject.exportObject(engine, 0) metoda zpřístupňuje vzdáleným uživatelům metody a upřesňuje číslo portu, na kterém komunikace proběhne druhý argument rovný nule znamená, že se jedná o anonymní port metoda exportobject vrací stub vzdáleného objektu 12

Rozhraní odvozené od java.rmi.remote Interface aby se objekt stal vzdáleným, musí implementovat rozhraní splňující: je potomkem rozhraní java.rmi.remote musí být public každá z metod musí mít uvedeno vyjímečné ukončení java.rmi.remoteexception java.rmi.notboundexception je vyvolána, pokud se klient snaží hledat v registru metody, které neexistují 13

Jednoduchá RMI aplikace 14

Vytvoření rozhraní serveru Compute.java Task.java 15

Vytvoření rozhraní klienta ComputeClient.java 16

Vytvoření rozhraní klienta Factorial.java 17

Vytvoření rozhraní klienta Factorial.java 18

Nasazení ComputeEngine.java 19

Výhody Java RMI objektově orientované mobilní chování (bezproblémová změna role klienta a serveru) jednoduché na používání přenositelné (spustitelné na čemkoli, co má JVM) server může mít více klientů 20

Nevýhody Java RMI závislé na propojení sítí občas nemusí být tolik bezpečné 21

Děkujeme za pozornost. 22