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



Podobné dokumenty
RMI Remote Method Invocation

Remote Method Invocation RMI

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

JAVA V RMI Java, letní semestr

RMI - Distribuované objekty v Javě

JAVA RMI Java, letní semestr 2018

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

RMI - Remote Method Invocation

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

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

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

Softwarové komponenty a Internet

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

Abstraktní datové typy: zásobník

Distribuované systémy a výpočty

Tvorba informačních systémů

UJO Framework. revoluční architektura beans. verze

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

Michal Krátký, Miroslav Beneš

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

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

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

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

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

Technologie JavaBeans

Tvorba informačních systémů

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Enterprise Java Beans 3.0

Algoritmizace a programování

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

1. Programování proti rozhraní

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

8 Třídy, objekty, metody, předávání argumentů metod

Programování v Javě I. Leden 2008

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

JAVA. Java Management Extensions JMX

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

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

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

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

Úvod do Web Services

Java - řazení objektů

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

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

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

10 Generické implementace

Architektura aplikace

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

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

Web Services na SOAP

Výchozí a statické metody rozhraní. Tomáš Pitner, upravil Marek Šabo

Webové služby a XML. Miroslav Beneš

Semin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2009 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 25

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

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

KTE / ZPE Informační technologie

Vytváření uživatelských datových typů a funkcí v Javě

návrhový vzor Singleton.

Generické programování

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

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

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

Teoretické minimum z PJV

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/

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

Java a Caché IV: Manipulace s objekty

ISZR Referenční agent.net

Komponentní technologie

typová konverze typová inference

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

Shibboleth v systému DSpace

Programovací jazyk Java

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

(Enterprise) JavaBeans. Lekce 7

Testovací metoda. Testovací metoda. public class SimpleTest {

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

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

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Typický prvek kolekce pro české řazení

Pokročilé Webové služby a Caché security. Š. Havlíček

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

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

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

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

Nastavení DCOM. Uživatelský manuál

Firemní informační systém

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

Webové služby. Martin Sochor

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

Dalším příkladem může být například výstup dat na různá zařízení, souborů, grafických rozhraní, sítě atd.

Manuál pro používání aplikace IDMonitor

Internet Information Services (IIS) 6.0

Úvod do programovacích jazyků (Java)

JAVA JavaBeans Java, letní semestr

DPKOM_2. Technologie Enterprise JavaBeans Řízení zdrojů a primární služby

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

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

Transkript:

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

Úvod JINI (pronounced GEE-nee; loosely derived from the Arabic for magician) Systém pro vyhledávání (lookup) a objevování (discovery) objektů v síti Zcela dynamický systém Dynamický lookup Dynamické discovery Skládá se ze tří základních komponent Klient Server Vyhledávací služba (lookup)

Úvod RMI základní komunikační model Distribuovaný bezpečnostní systém Integrace do RMI Rozšíření JVM bezpečnostního modelu Protokol pro nalezení objektu a navázání na aplikaci Vyhledávací služby Vrací objekt realizující službu (lokální proxy)

Programový model Vyhledávací služby (lookup) Pronájem (leasing) rozšiřuje referenční model o časovou složku Události Rozšíření modelu událostí javabeans Přidává další možnosti Transakční zpracování

JINI a codebase Lookup Lookup Service JVM (Reggie) Join, publish Klient JVM Call Server JVM Codebase (HTTP server)

JINI Lookup service spuštění Spuštění Reggie a Codebase (HTTP serveru) Codebase java -jar tools.jar -port 8081 -dir. -verbose RMI daemon rmid -J-Dsun.rmi.activation.execPolicy=none Reggie java -jar -Djava.security.policy=policy.all reggie.jar && http://localhost:8081/reggie-dl.jar policy.all.\reggie_log public

JINI Lookup service - Reggie Reggie je implementace JINI lookup služeb Ukládá serializované objekty Objekty jsou připojeny k lookup službě (publikování objektu)

JINI - server Registrace služeb Entry[] attr = new Entry[1]; -- pole artibutů služby attr[0] = new Name("CasASpotrebaServer"); -- název služby mujserver = new CasASpotrebaServer(); -- vlastní služba sluzba = new ServiceItem(null, mujserver, attr); -- lookup = new LookupLocator("jini://localhost"); registr = lookup.getregistrar(); registr.register(sluzba, Lease.FOREVER); -- registrace služby na -- URL localhost -- získání registrátoru -- nastavení parametrů

JINI - klient Volání služeb lookup = new LookupLocator ("jini://localhost"); registr = lookup.getregistrar(); -- URL atributy = new Entry[1]; atributy[0] = new Name("CasASpotrebaServer"); -- služba template = new ServiceTemplate (null, null, atributy); serverinterface = (CasASpotrebaInterface) registr.lookup (template); cas = serverinterface.vypocticas(vzdalenost, rychlost);

JINI - bezpečnost RMISecurityManager if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager()); Konfigurační soubor (policy.all) grant { permission java.net.socketpermission "*:1024-65535", "connect,accept"; permission java.io.filepermission "\data\-","read"; permission java.security.allpermission; };

JINI - server Modul serveru Vlastní server public class CasASpotrebaServer extends UnicastRemoteObject implements CasASpotrebaInterface { public CasASpotrebaServer() throws RemoteException { super(); } public double vypocticas(double vzdalenost, double rychlost) throws RemoteException { double vysledek; return vysledek; } }

JINI - server Modul serveru Definice rozhraní import java.rmi.remote; import java.rmi.remoteexception; public interface CasASpotrebaInterface extends Remote { // metoda pro spocitani casu z rychlosti a vzdalenosti public double vypocticas(double vzdalenost, double rychlost) throws RemoteException; // metoda pro spocitani aktualni spotreby z celkove vzdalenosti a // prumerne spotreby public double vypoctispotrebu(double vzdalenost, double spotreba) throws RemoteException; }

JINI - spouštění javac -classpath.;jars\jini-ext.jar *.java rmic CasASpotrebaServer java -jar tools.jar -port 8081 -dir. -verbose rmid -J-Dsun.rmi.activation.execPolicy=none java -jar -Djava.security.policy=policy.all reggie.jar http://localhost:8081/reggie-dl.jar policy.all.\reggie_log public java -cp.;jars\jini-ext.jar;jars\tools.jar;jars\reggie.jar -Djava.security.policy=jars\policy.all -Djava.rmi.server.codebase=http://localhost:8080/ CasASpotrebaServer java -classpath.;jars\jini-core.jar;jars\jini-ext.jar;jars\tools.jar; jars\reggie.jar -Djava.security.policy=jars\policy.all -Djava.rmi.server.codebase=http://localhost:8080/ CasASpotrebaClient localhost 10 10 10