RMI Remote Method Invocation

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

Remote Method Invocation RMI

JAVA V RMI Java, letní semestr

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

JAVA RMI Java, letní semestr 2018

RMI - Distribuované objekty v Javě

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

RMI - Remote Method Invocation

Distribuované systémy a výpočty

Programování v Javě I. Leden 2008

Programování v Javě I. Únor 2009

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

Abstraktní datové typy: zásobník

KTE / ZPE Informační technologie

1. Téma 12 - Textové soubory a výjimky

Algoritmizace a programování

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

Java - výjimky. private void vstup() throws IOException {... }

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

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

Java Výjimky Java, zimní semestr

Soubor jako posloupnost bytů

Principy objektově orientovaného programování

Úvod do programovacích jazyků (Java)

Teoretické minimum z PJV

Seminář Java II p.1/43

Vytváření a použití knihoven tříd

Java a XML. 10/26/09 1/7 Java a XML

Java a Caché IV: Manipulace s objekty

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

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

1. Programování proti rozhraní

Z. Kotala, P. Toman: Java ( Obsah )

Algoritmizace a programování

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

20. Projekt Domácí mediotéka

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Generické programování

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Distribuované systémy a výpočty

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

Reflexe_03. Používání dynamického proxy

Dědičnost (inheritance)

Podmínky na zápočet. Java, zimní semestr

JAVA. Java Management Extensions JMX

Textové soubory. alg9 1

Projekty pro výuku programování v jazyce Java

Vláknové programování část V

8. přednáška: Soubory a proudy

17. Projekt Trojúhelníky

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu

Výjimky. v C# a Javě

PREPROCESOR POKRAČOVÁNÍ

STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Přehled probírané látky

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

Výjimky. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Typický prvek kolekce pro české řazení

Bezpečnost v Javě. Architektura zabezpečení jazyka Java.

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod do programování - Java. Cvičení č.4

Technologie JavaBeans

Enterprise Java Beans 3.0

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ

Java Managenent Extension JMX

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

Java Řetězce Java, zimní semestr

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

Abstraktní třída a rozhraní

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Komponenty v.net. Obsah přednášky

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Java aplety. Předávání parametrů z HTML

Regulární výrazy. Vzory

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Jazyk C# (seminář 6)

Zpracování výjimečných situací

Úvod do programovacích jazyků (Java)

Reflexe RTTI Runtime Type Identification

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Algoritmizace a programování. Terminálový vstup a výstup

Distribuované systémy a výpočty (14) 7/1/2008

Session Beans. Petr Aubrecht CA. Vtipy budou tentokrát o krizi:

UJO Framework. revoluční architektura beans. verze

Obrázek 6.14: Prohlížec nápovedy

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

X-komponenty 3.1. Uživatelská příručka. J. Kocman, V. Trojan

Návrhové vzory OMO, LS 2014/2015

Transkript:

2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1

RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient server http://java.sun.com/docs/books/tutorial/rmi/index.html 2007/09 ver.2.0 2

RMI aplikace host1 (RMI client) host2 (RMI server) RMI rmiregistry client RMI RMI URL protokol server web server URL protokol URL protokol web server 2007/09 ver.2.0 3

RMI aplikace host1 (RMI client) host2 (RMI server) client 2 3 server rmiregistry 1 1 registrace objektu (svázání objektu se jménem) - Registry.rebind 2 dotaz na objekt příslušící danému jménu- Registry.lookup 3 práce se vzdáleným objektem - Remote_object.remote_method 2007/09 ver.2.0 4

Části Java RMI aplikace vzdálený interface deklarace metod vzdáleného objektu vyvolávaných klientem vzdálený objekt implementace vzdáleného interface klient komunikace stub, skeleton (Java 2 skeleton nemá) 2007/09 ver.2.0 5

Remote remote methods metody volané mezi JVM remote objects objekty s remote metodami remote interface určuje remote objekty, rozšiřuje interface java.rmi.remote všechny remote metody musí deklarovat java.rmi.remoteexception remote stub nahrazuje remote objekt lokální reprezentací (proxy) stejná množina remote interface, marshaling, unmarshaling 2007/09 ver.2.0 6

Tvorba aplikace remote interface implementace remote objektů implementace klienta překlad zdrojových kódů vytvoření stubu distribuce aplikace start aplikace 2007/09 ver.2.0 7

Implementace deklarace remote interface definice konstruktoru remote objektu implementace všech remote metod vytvoření a instalace remote objektů main metoda vytvoření a instalace security manageru vytvoření instancí remote objektů registrace objektů ve jmenných službách rmiregistry, JNDI 2007/09 ver.2.0 8

RMI - Interface package compute; import java.rmi.remote; import java.rmi.remoteexception; public interface MathServer extends Remote { public int secti(int a, int b) throws RemoteException; 2007/09 ver.2.0 9

RMI Remote object package engine; import java.rmi.*; import java.rmi.server.*; public class MathServerImpl extends UnicastRemoteObject implements MathServer { public MathServerImpl() throws RemoteException { super(); public int secti(int a, int b) throws RemoteException { int result; result=a+b; System.out.println(a + " + " + b + " = " + result); return result; 2007/09 ver.2.0 10

RMI - Server package engine; import java.rmi.*; public class Server { public static void main(string[] args) { if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager()); String name = "//localhost:" + args[0] + "/mathserver"; try { MathServerImpl obj = new MathServerImpl(); Naming.rebind(name, obj); catch (Exception e) { System.err.println("Data exception: " + e.getmessage()); 2007/09 ver.2.0 11

RMI - Client package RMI; import java.rmi.*; public class Client { public static void main(string args[]) { if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager()); try { MathServer mth; String name = "//" + args[0] + ":" + args[1] + "/mathserver"; mth = (MathServer) Naming.lookup(name); int a = Integer.valueOf(args[2]).intValue(); int b = Integer.valueOf(args[3]).intValue(); System.out.println(a + " + " + b + " = " + mth.secti(a, b)); catch (Exception e) { System.err.println("Data exception: " + e.getmessage()); 2007/09 ver.2.0 12

Bezpečnost defaultní metody policytool.exe policytool java.security.policy grant { permission java.net.socketpermission "*:1024-65535","connect,accept"; permission java.io.filepermission "\data\-","read"; permission java.io.filepermission "c:\\home\\ann\\classes\\-","read"; ; grant { permission java.security.allpermission; ; 2007/09 ver.2.0 13

Překlad a spuštění javac RMI/MathServerImpl.java rmi -d. RMI.MathServerImpl rmiregistry java -Djava.security.policy=policy RMI/Server -Djava.rmi.server.codebase=file:/home/class/ 2007/09 ver.2.0 14