Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007



Ähnliche Dokumente
Remote Method Invocation

Remote Method Invocation

Remote Methode Invocation (RMI) ETIS SS05

Mobile und Verteilte Datenbanken

Client/Server-Programmierung

Client/Server-Programmierung

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

Remote Method Invocation

Konzepte von Betriebssystem-Komponenten Middleware RMI

Java RMI Remote Method Invocation

Einführung: Verteilte Systeme - Remote Method Invocation -

Java-Programmierung. Remote Method Invocation - RMI

Mobile und Verteilte Datenbanken

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Java Remote Method Invocation (RMI)

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1

-Testen verteilter Anwendungen

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz. Institut für Angewandte Informatik

Middleware. im Schweinsgalopp

Themen. Web Service - Clients. Kommunikation zw. Web Services

Verteilte Systeme: Entfernte Methodenaufrufe

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase

8.1.5 Java RMI Remote Method Invocation

4. Informatiktag NRW Projekt online Shop. Barbara Leipholz Schumacher Euregio Kolleg, Würselen

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

RMI. Wir haben. Komponenten auf einem Rechner. Remote Method Invocation

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006

Kommunikation. Björn und Georg

Remote Method Invocation (RMI)

Client/Server-Systeme

Warum EJB Technologie (1)?

Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 1)

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

1 Motivation. 1 Motivation. Standard Middleware für objektorientierte Anwendungen. Motivation. Fragmentierte Objektmodel. Java RMI

Client/Server-Programmierung

Programmieren II. Remote-Programmierung. Institut für Angewandte Informatik

Der lokale und verteilte Fall

Überblick. Netzprogrammierung 3. Verteilte Objekte in Java RMI. Verteilte Objekte

Kommunikation in verteilten Anwendungen

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

Verteiltes Rechnen. Verteilte Dienste mit Java Remote Method Invocation (RMI). Prof. Dr. Nikolaus Wulff

Übungen zu Softwaretechnik

JAVA Remote Method Invocation RMI/IIOP Tutorial

Vorkurs Informatik WiSe 16/17

Einstieg in die Informatik mit Java

Klausur: Java (Liste P)

Java in Verteilte Systeme - RMI

Grundlagen verteilter Systeme

RMI Server und Client

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

5A Kooperation: Lösungen

Netzwerkprogrammierung unter Linux und UNIX

Verteilte Systeme - Überblick

Einstieg in die Informatik mit Java

Transkript:

Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007

Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2

1. Einleitung 1.1 Teilnehmer 1.2 Projektbeschreibung 1.3 Vorraussetzungen 3

1.1 Teilnehmer Deniz Orkunoglu Schwerpunkt: Vergleich mit CORBA und RPC gezogen, Theorie Patric Eid Schwerpunkt: Programmierung von Beispielen, Theorie 4

1. Einleitung 1.1 Teilnehmer 1.2 Projektbeschreibung 1.3 Vorraussetzungen 5

1.2 Projektbeschreibung - Beschreibung von Java RMI mit praxisorientierten Beispielen - Bezüge zu RPC herstellen - Ergebnisse durch einen Vortrag und einer Dokumentation darstellen 6

1. Einleitung 1.1 Teilnehmer 1.2 Projektbeschreibung 1.3 Vorraussetzungen 7

1.3 Vorraussetzungen Client: Java Virtual Machine Server: Java 2 Runtime Environment (1.5.0_06) 8

Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 9

2. Einführung in RPC 2.1 Was ist RPC 10

2.1 Was ist RPC Einleitung RPC steht für remote procedure call realisiert Client-Server-Modell die Kommunikation zwischen Client und Server wird duch das RPC Protokoll vereinfacht (über das Netzwerk können Funktionen aufgerufen werden) 11

Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 12

3. RMI 3.1 Was ist RMI 3.2 Ablauf 3.3 RMI - Registry 3.4 Begriffe 3.5 Vergleich zu CORBA 13

3.1 Was ist RMI (1) Einleitung RMI steht für remote method invocation (entfernter Methodenaufruf) basiert auf dem Prinzip von RPC realisiert Client-Server-Modell Java Objekte werden aufgerufen Stub Klassen werden zur Kommunikation genutzt 14

3.1 Was ist RMI (2) Unterschied zu RPC RPC und RMI scheinen identisch zu sein, beide arbeiten mit Sockets RPC ist nicht für objektorientiertes Arbeiten geeignet 15

3. RMI 3.1 Was ist RMI 3.2 Ablauf 3.3 RMI - Registry 3.4 Begriffe 3.5 Vergleich zu CORBA 16

17 3.2 Ablauf

3. RMI 3.1 Was ist RMI 3.2 Ablauf 3.3 RMI - Registry 3.4 Begriffe 3.5 Vergleich zu CORBA 18

3.3 RMI Registry (1) Übersicht RMI Registry ist ein einfacher Namensdienst läuft auf dem RMI Server der Server muss gebunden werden Client benötigt eine Referenz auf das Server-Objekt 19

3.3 RMI Registry (2) Aufrufen Unter Windows: start registry [port] Unter Unix: rmiregistry [port] & 20

3.3 RMI Registry (3) Ablauf 21

3. RMI 3.1 Was ist RMI 3.2 Ablauf 3.3 RMI - Registry 3.4 Begriffe 3.5 Vergleich zu CORBA 22

3.4 Begriffe (1) Stub 23

3.4 Begriffe (2) Sicherheit RMI benutzt integrierten Java Security Mechanismus Security Manager schützt vor schädlichem Code herunterladen von schädlichem Code wird meistens verweigert Verschlüsselung läuft über die Socketverbindung 24

3.4 Begriffe (3) Garbage Collection sammelt nicht mehr gebrauchte Objekte ein Objekte werden vernichtet 25

3. RMI 3.1 Was ist RMI 3.2 Ablauf 3.3 RMI - Registry 3.4 Begriffe 3.5 Vergleich zu CORBA 26

3.5 Vergleich zu CORBA (1) Sprache RMI: (-) nur Java CORBA: (+) sprachunabhängig (auch C++ und Java gemischt) Basis RMI: (+) benutzt JRMP (Java Remote Messaging Protocol) CORBA: (+) IIOP (Internet InterORB Protocol) 27

3.5 Vergleich zu CORBA (2) Programmieraufwand RMI: (+) erledigt RMIC-Compiler CORBA: (+) eigene Interface definition Language (IDL) Installationsaufwand RMI: (+) RMI ist Teil von Java, keine eigene Installation notwendig CORBA: (-) passender Maschinencode muss auf alle beteiligten Rechnern verteilt werden 28

3.5 Vergleich zu CORBA (3) Fehlersuche RMI: (+) evtl. mit Java Exceptios CORBA: (-) schwierig (binäre Codierung, verschiedene Sprachen..) Lernaufwand RMI: (+) mäßig CORBA: (-) groß (eigene Sprache IDL) 29

Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 30

4. Code Beispiele 4.1 Server erstellen 4.2 Client erstellen 4.3 Server und Client starten 31

4.1 Server erstellen (1) Aufruf der Methoden erfolgt über ein Remote-Interface Remote Exceptions können auftreten der Server muss einen eindeutigen Namen binden 32

4.1 Server erstellen (2) MyInterface.java import java.rmi.*; public interface MyInterface extends Remote { public String gettime() throws RemoteException; } 33

4.1 Server erstellen (3) MyServer.java (1) 34 import java.rmi.naming; import java.rmi.remoteexception; import java.rmi.server.unicastremoteobject; public class MyServer implements MyInterface{... public MyServer() {} public String gettime() throws RemoteException { String time = new java.util.date().tostring(); return time; }

4.1 Server erstellen (4) MyServer.java (2) 35... } //damit der Server alleine lauffaehig ist public static void main (String[] args) { MyServer server = new MyServer(); try { UnicastRemoteObject.exportObject(server); Naming.rebind( TimeServer, server); } catch (Exception e) { e.printstacktrace(); }

4.1 Server erstellen (5) Server kompilieren MyServer.java mittels 'javac' auf der Konsole kompilieren erzeugt eine.class Datei durch 'rmic' eine Stub-Klasse erzeugen diese dem Client zugänglich machen 36

4. Code Beispiele 4.1 Server erstellen 4.2 Client erstellen 4.3 Server und Client starten 37

4.2 Client erstellen (1) der Client muss wissen, wo sich der Server befindet er kommuniziert mit dem Remote Interface 38

4.2 Client erstellen (2) MyClient.java 39 import java.rmi.naming; public class MyClient { } public static void main (String[] args) { try { MyInterface rem = (MyInterface) Naming.lookup( //127.0.0.1/TimeServer ); System.out.println(rem.getTime()); } catch (Exception e) { } } p.printstacktrace();

4.2 Client erstellen (3) Client kompilieren kompilieren erneut mit 'javac' generiert eine.class Datei Anmerkung: Die IP des Servers hätte auch ein entfernter Rechner sein können, z.b. //lx3-08//timeserver. 40

4. Code Beispiele 4.1 Server erstellen 4.2 Client erstellen 4.3 Server und Client starten 41

4.2 Server und Client starten (1) zuerst muss RMI registriert werden dies passiert auf der Konsole mittels rmiregistry danach wird der Server durch java MyServer gestartet 42

4.2 Server und Client starten (2) Client mit java MyClient starten 43

Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 44

45 5. Live Vorstellung

Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 46

6. Ausblick Annäherung zwischen Java RMI und CORBA RMI benutzt kann auch das IIOP Protokoll von CORBA benutzen 47

Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 48

7. Fazit Positiv interessantes Thema Basiert auf dem Prinzip von RPC leichter Umstieg ermöglicht das Einsetzen einer objektorientierten Sprache da alles standardmäßig in Java vorhanden ist, lässt sich RMI einfach anwenden Negativ?? 49

Systemprogrammierung Wir bedanken uns für Ihre Aufmerksamkeit! Fragen??? 50