RMI Server und Client

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "RMI Server und Client"

Transkript

1 RMI Server und Client RMI Server Remote Objekt(e) bereitstellen Wurzel Objekt in Verzeichnisdienst anmelden RMI Client Wurzel Objekt in entfernter JVM mittels Verzeichnisdienst finden Methoden von Remote Objekten aufrufen Ein Java Programm kann gleichzeitig RMI Client und RMI Server sein. 551

2 Beispiel: E Shop Was passiert, wenn Kunde Artikel kauft? Lieferung der Ware zum Kunden (Logistik) Bezahlen (Rechnung, Lastschrift, Kreditkarte usw.) Typische Aufgaben eines Warenwirtschaftssystems Im E Shop das Rad nicht neu erfinden, sondern Anbindung an WWS schaffen WWS präsentiert sich als Remote Objekt. E Shop faßt Bestelldaten zu einem Objekt zusammen. E Shop schickt Bestelldaten Objekt per RMI an WWS. Lieferstatus vom WWS holen 552

3 Lösungsidee Remote Interface E Shop WWS Kasse Stub Remote Objekt Bestellung Bestellung 553

4 Lösungsskizze: Remote Interface E Shop»sieht«WWS als Remote Interface de.rainer_klute.rmi.wws. Interface erbt von java.rmi.remote. Spezifiziert die Methoden des WWS, die ein RMI Client aufrufen kann. Alle Methoden eines Remote Objekts können eine RemoteException werfen. Netzprobleme Server Probleme 554

5 Lösungsskizze: Remote Objekt Remote Objekt implementiert Remote Interface. Hier: WWSImpl implementiert WWS. Klasse von UnicastRemoteObject ableiten (oder weitere Möglichkeiten nutzen) Beispiel: import java.rmi.*; import java.rmi.server.*; public class WWSImpl extends UnicastRemoteObject implements WWS Konstruktor des Remote Objekts macht es im Netz erreichbar. 555

6 Lösungsskizze: RMI Server Erzeugt Instanz des Remote Objekts Remote Objekt wird im Netz erreichbar. Meldet Instanz bei RMI Registrierung an Ordnet Remote Objekt einen Namen zu. Remote Objekt wird im Netz adressierbar. RMI Server oft als main() Methode des Remote Objekts realisiert. 556

7 Lösungsskizze: RMI Client Fordert Remote Objekt von RMI Registrierung an. Adressierung über den vom RMI Server festgelegten Namen Ruft Methoden des Remote Objekts auf. 557

8 Beispiel: Remote Interface package de.rainer_klute.rmi; import java.rmi.*; public interface WWS extends Remote { } /** <p>liefert den Status des WWS.</p> */ public String getstatus() throws RemoteException; /** <p>übermittelt eine Bestellung an das * Warenwirtschaftssystem.</p> */ public String bestellen(bestellung bestellung) throws RemoteException; 558

9 Beispiel: Remote Objekt package de.rainer_klute.rmi.server; import java.net.*; import java.rmi.*; import java.rmi.server.*; import de.rainer_klute.rmi.*; public class WWSImpl extends UnicastRemoteObject implements WWS { /** * <p>konstruktor hier nur zur Illustration: * Konstruktor der Oberklasse * UnicastRemoteObject} macht Objekt netzweit * erreichbar.</p> */ public WWSImpl() throws RemoteException { super(); } 559

10 Beispiel: Remote Objekt /** * <p>liefert den Status des WWS.</p> */ public String getstatus() throws RemoteException { System.out.println("getStatus()"); return "All subsystems running."; } /** * <p>übermittelt eine Bestellung an das * Warenwirtschaftssystem.</p> */ public String bestellen(bestellung bestellung) throws RemoteException { String s = "Order received: " + bestellung; System.out.println(s); return s; } 560

11 Beispiel: RMI Server /** * <p>startet den RMI Server.</p> */ public static void main(string args[]) { /* Security Manager installieren */ if (System.getSecurityManager() == null) System.setSecurityManager (new RMISecurityManager()); try { /* Remote Objekt erzeugen */ WWS wws = new WWSImpl(); 561

12 Beispiel: RMI Server } } /* Remote Objekt in RMI Registry anmelden. * Format des Namens: "//host/name" */ String wwsname = "//" + InetAddress.getLocalHost(). gethostaddress() + "/WWS"; System.out.println ("Versuche, WWS als \"" + wwsname + "\" zu registrieren."); Naming.rebind(wwsName, wws); System.out.println("Okay."); } catch (Exception e) { System.out.println ("Fehler: " + e.getmessage()); e.printstacktrace(); System.exit(1); } 562

13 Beispiel: RMI Client package de.rainer_klute.rmi.client; import java.net.*; import java.rmi.*; import de.rainer_klute.rmi.wws; public class WWSClient { public static void main(string args[]) { /* Security Manager installieren */ if (System.getSecurityManager() == null) System.setSecurityManager (new RMISecurityManager()); String remotename = args[0]; 563

14 Beispiel: RMI Client try { } WWS wws = (WWS) Naming.lookup(remoteName); String status = wws.getstatus(); System.out.println("WWS Status: " + status); Bestellung b = new BestellungImpl(); b.setkunde(1234); Posten p = new PostenImpl(); p.setartikel(4711); p.setanzahl(2); b.addposten(p); p = new PostenImpl(); p.setartikel(1000); p.setanzahl(1); b.addposten(p); String s = wws.bestellen(b); System.out.println("WWS Nachricht: " + s); 564

15 Beispiel: RMI Client } catch (Exception e) { System.out.println("Fehler: " + e.getmessage()); e.printstacktrace(); } } 565

16 RMI Registrierung Einfacher Verzeichnisdienst für RMI Verwaltet Zuordnungen von Namen (Strings) zu Remote Objekten. Notiert zu jedem Remote Objekt, woher die Klasse dieses Objekts stammt. Namensformat: //{hostname ipaddress}[:port]/objectname //rmi.rainer klute.de/wws // :1234/WWS 566

17 RMI Registrierung Starten der RMI Registrierung: CLASSPATH darf Anwendungsklassen nicht enthalten. bash: (unset CLASSPATH; rmiregistry &) csh: (unsetenv CLASSPATH; rmiregistry &) 567

18 Getrennte Entwicklung RMI ermöglicht Trennung der Entwicklung von Server und Client. Beispiel: Web Anwendung für Kunden einer Versicherung Kunde kann persönliche Daten aktualisieren. Jeder Interessent kann»seinen«persönlichen Berater anhand seiner eigenen Adresse ermitteln und kontaktieren. Entwicklung der Web Anwendung durch Internet Agentur Versicherung macht Kundendaten und Vertriebsdaten der Internet Agentur nicht zugänglich. Datenschutz, Betriebsgeheimnis Host 568

19 Getrennte Entwicklung Remote Interface Host Daten RMI Server RMI Client Web Oberfläche Versicherung entwickelt RMI Server mit Zugriff auf die Host Daten. Internet Agentur entwickelt RMI Client und Web Oberfläche (HTML Generierung mit JSP).

20 Klassen übersetzen Gemeinsam genutzte Interfaces de.rainer_klute.rmi.wws de.rainer_klute.rmi.bestellung de.rainer_klute.rmi.posten Server Klasse: de/rainer_klute/rmi/server/wwsimpl Client Klasse: de/rainer_klute/rmi/client/wwsclient de/rainer_klute/rmi/client/bestellungimpl de/rainer_klute/rmi/client/postenimpl 570

21 Klassen übersetzen Übersetzung durchführen: mkdir classes javac d classes src/de/rainer_klute/rmi/wws.java src/de/rainer_klute/rmi/bestellung.java src/de/rainer_klute/rmi/posten.java javac d classes src/de/rainer_klute/rmi/server/wwsimpl.java javac d classes src/de/rainer_klute/rmi/client/wwsclient.java src/de/rainer_klute/rmi/client/bestellungimpl.java src/de/rainer_klute/rmi/client/postenimpl.java 571

22 Stubs und Skeletons generieren RMI Client RMI Server Stub Skeleton Remote Objekt Stub Repräsentiert das Remote Objekt im Client. Skeleton Netzfähiges Gegenstück im Server Leitet Zugriffe an Remote Objekt weiter 572

23 Stubs und Skeletons generieren RMI Compiler rmic generiert Stubs und Skeletons aus Remote Klassen. Beispiel: rmic classpath classes d classes de.rainer_klute.rmi.server.wwsimpl Ergebnis: Klassen de.rainer_klute.rmi.server.wwsimpl_stub de.rainer_klute.rmi.server.wwsimpl_skel 573

24 JAR Dateien erzeugen RMI Client und RMI Server dürfen nicht den selben Classpath nutzen. Entspräche nicht dem Konzept der getrennten Entwicklung. Unterschiedliche JAR Dateien mit Klassen für Client und Server erzeugen rmicommon.jar mit gemeinsam genutzten Interfaces: WWS, Bestellung, Posten rmiserver.jar mit Server Klassen: WWSImpl, WWSImpl_Stub, WWSImpl_Skel rmiclient.jar mit Client Klasse: WWSClient, BestellungImpl, PostenImpl 574

25 Programme starten RMI Server: java cp dist/lib/rmicommon.jar:dist/lib/rmiserver.jar Djava.rmi.server.codebase=file:///home/.../classes/ Djava.rmi.server.hostname=mark Djava.security.policy=rmiPolicy de.rainer_klute.rmi.server.wwsimpl Versuche, WWS als "// /WWS" zu registrieren. Okay. RMI Client: java cp dist/lib/rmicommon.jar:dist/lib/rmiclient.jar Djava.security.policy=rmiPolicy de.rainer_klute.rmi.client.wwsclient //mark/wws WWS Status: All subsystems running. Server: getstatus() 575

26 Klassen laden mit RMI Wesentlich für das korrekte Funktionieren von RMI ist das Übertragen von Klassen. RMI Client benötigt die Stub Klasse(n). RMI Server benötigt die Klassen der Objekte, die ihm der RMI Client überträgt. Klassen sollten nicht im Classpath enthalten sein. Getrennte Entwicklung von Client und Server Anbieter des RMI Servers muß Stub Klasse(n) zum Herunterladen verfügbar machen. Property java.rmi.server.codebase teilt mit, wo die Klassen liegen. 576

27 Risiken bei fremdem Code Das Ausführen heruntergeladener Klassen ist ein Sicherheitsrisiko. Code kann beliebige Aktionen ausführen, zu denen der Benutzer berechtigt ist. Daten ausspionieren Daten verändern System schädigen 577

28 Sandkastenmodell Java 1.0 und 1.1 unterstützen das Sandkasten Modell: Java Applets dürfen nichts nur Anzeige im Browser. Java Applikationen dürfen alles. Sandkasten Modell unzureichend: Applets benötigen ggf. Zugriff auf Systemressourcen. Beispiel: Texteditor Applet speichert Text in lokaler Datei. Einschränkungen für Applikationen erforderlich Beispiel: Vom RMI Server geladene Klassen dürfen nur in das Verzeichnis /tmp schreiben. 578

29 Sicherheit Java 2 ermöglicht fein granulierte Zugriffsberechtigungen. Welche Klasse darf welche Aktion ausführen? Von welchem Ort stammt diese Klasse (Codebase)? Von welchem Hersteller stammt diese Klasse (digitale Signatur)? Policy Datei legt Zugriffsberechtigungen fest. Beispiel: Klassen von klute.de:1111/ dürfen in /tmp lesen und schreiben. Security Manager führt Zugriffskontrollen durch. Beispiel: Berechtigungsprüfung beim Öffnen der Datei /tmp/foo 579

30 Beispiel: Policy Datei keystore "${user.home}/.keystore", "JKS"; grant { permission java.net.socketpermission "*", "resolve"; permission java.net.socketpermission "for.bar.de: ", "connect, accept"; }; grant codebase " { permission java.io.filepermission "<<ALL FILES>>", "read"; permission java.io.filepermission "/tmp/ ", "read, write"; }; grant signedby "RainerKlute" { permission java.security.allpermission; }; Erzeugen der Policy Datei: Texteditor oder policytool Verwenden der Policy Datei mit Djava.security.policy=url 580

31 Sicherheitsprüfungen aktivieren Java Programme laufen normalerweise ohne Security Manager. Alles ist erlaubt. Kompatibilität zu Java 1.0 und 1.1 ist gewährleistet. Standard Security Manager aktivieren Beim Start des Java Programms: java Djava.security.manager Djava.security.policy=policy url MeineKlasse Programmgesteuert: if (System.getSecurityManager() == null)

32 Sicherheitsprüfungen durchführen Viele Methoden der Java Standardklassen führen Sicherheitsprüfungen durch. Vor einer potentiell gefährlichen Operation Beispiel: Datei zum Lesen öffnen SecurityManager security = System.getSecurityManager(); if (security!= null) security.checkread(filename); Klasse SecurityManager besitzt zahlreiche checkxxx Methoden: checkaccept, checkaccess, checkawteventqueueaccess, checkconnect,

33 Sicherheitsgrundeinstellungen JDK Installation gibt Sicherheitsgrundeinstellungen vor. Dateien in ${java.home}/jre/lib/security, z.b. /opt/local/jdk1.3/jre/lib/security Hauptdatei java.security Hier nur einige Einstellungen zum Thema Policy # URLs von Policy Dateien: policy.url.1=file:${java.home}/lib/security/java.policy policy.url.2=file:${user.home}/.java.policy # Djava.security.policy=someURL erlaubt? policy.allowsystemproperty=true 583

34 Einstellungen in java.policy Standarderweiterungen dürfen alles. grant codebase "file:${java.home}/lib/ext/*" { permission java.security.allpermission; }; Jeder Code darf den aktuellen Thread stoppen, auf nichtprivilegierten Ports lauschen und Standard Properties lesen. grant { permission java.lang.runtimepermission "stopthread"; permission java.net.socketpermission "localhost:1024 ", "listen"; permission java.util.propertypermission "java.version", };

35 Klassen laden mit RMI RMI Classloader lädt Klassen nur dann, wenn ein Security Manager installiert ist. RMI Security Manager in Client und Server installieren if (System.getSecurityManager() == null) System.setSecurityManager (new RMISecurityManager()); 585

36 RMI Server starten RMI Server starten (1. Versuch) java cp dist/lib/rmiserver.jar:dist/lib/rmicommon.jar de.rainer_klute.rmi.server.wwsimpl Fehler: java.security.accesscontrolexception: access denied (java.net.socketpermission :1099 connect,resolve) Security Manager verbietet Verbindungsaufbau. 586

37 RMI Server starten RMI Server registriert Wurzel Objekt bei einer RMI Registrierung. Naming.rebind("//localhost/WWS", new WWSImpl()); Verbindung zur RMI Registrierung aufbauen Hier: localhost, Port 1099 (Voreinstellung) Alternativer Port möglich: "//localhost:1234/wws" Alternativer Rechner möglich: "//other.host.de/wws" AccessControlException, weil RMI Server keine Netzverbindung zur RMI Registrierung aufbauen kann 587

38 RMI Server starten Policy Datei mit der benötigten Berechtigung erstellen Mit Texteditor oder policytool grant { permission java.net.socketpermission "localhost:1099", "connect"; }; RMI Server starten (2. Versuch mit Policy Datei) java cp dist/lib/rmiserver.jar:dist/lib/rmicommon.jar Djava.security.policy=rmiServerPolicy de.rainer_klute.rmi.server.wwsimpl Fehler:

39 RMI Server starten RMI Registrierung starten (unset CLASSPATH; rmiregistry &) RMI Server starten (3. Versuch mit laufender RMI Registrierung) java cp dist/lib/rmiserver.jar:dist/lib/rmicommon.jar Djava.security.policy=rmiServerPolicy de.rainer_klute.rmi.server.wwsimpl Fehler java.rmi.serverexception: RemoteException occurred in server thread; nested exception is: java.rmi.unmarshalexception: error unmarshalling arguments; nested exception is: java.lang.classnotfoundexception: de.rainer_klute.rmi.server.wwsimpl_stub 589

40 RMI Server starten Fehlerursache finden java.rmi.serverexception: RemoteException occurred in server thread; nested exception is: java.rmi.unmarshalexception: error unmarshalling arguments; nested exception is: java.lang.classnotfoundexception: de.rainer_klute.rmi.server.wwsimpl_stub... at java.rmi.naming.rebind at de.rainer_klute.rmi.server.wwsimpl.main RemoteException: Fehler nicht im RMI Server, sondern in einer Remote Methode ClassNotFoundException: Kommunikationspartner kennt Klasse WWSImpl_Stub nicht. Naming.rebind: Kommunikationspartner ist die RMI Registrierung. 590

41 Sag mir, wo die Klassen sind RMI Registrierung soll Instanz von WWSImpl_Stub speichern und auf Anforderung an Clients ausliefern. RMI Registrierung benötigt die Klasse des Objekts. Klasse nicht im Classpath enthalten. RMI Registrierung bewußt ohne Classpath gestartet RMI Server muß der Registrierung verraten, wo die Klassen sind. Property java.rmi.server.codebase URL, z.b. file:///home/klute/classes/ oder klute.de:1111/ RMI Partner muß Ort der Klassen verraten. 591

42 RMI Registrierung Name: WWS... RMI Registrierung Objekt: Codebase: Stub... Server: rserver... RMI Client Stub RMI Server rserver Stub java.rmi.server.codebase= Class Server cserver 592

43 RMI Server starten RMI Server starten (4. Versuch mit Codebase) java cp dist/lib/rmiserver.jar:dist/lib/rmicommon.jar Djava.rmi.server.codebase=file:///home/klute/classes/ Djava.security.policy=rmiServerPolicy de.rainer_klute.rmi.server.wwsimpl Ausgabe: Versuche, WWS als "// /WWS" zu registrieren. Okay. Endlich Erfolg! Für s erste jedenfalls

44 RMI Client starten RMI Client starten (1. Versuch) java cp dist/lib/rmiclient.jar:dist/lib/rmicommon.jar de.rainer_klute.rmi.client.wwsclient //mark/wws java.security.accesscontrolexception: access denied (java.net.socketpermission mark resolve) Client benötigt das Recht, Host Namen per DNS aufzulösen, sprich: die IP Adresse zu ermitteln. Policy Datei für Client anlegen grant { permission java.net.socketpermission "*", "resolve"; }; 594

45 RMI Client starten RMI Client starten (2. Versuch mit Policy) java cp dist/lib/rmiclient.jar:dist/lib/rmicommon.jar Djava.security.policy=rmiClientPolicy de.rainer_klute.rmi.client.wwsclient //mark/wws java.security.accesscontrolexception: access denied (java.net.socketpermission :1099 connect,resolve) Client benötigt das Recht, auf die RMI Registry zuzugreifen. Hier: Port 1099 auf beliebigem Host grant { permission java.net.socketpermission "*", "resolve"; permission java.net.socketpermission "*:1099", "connect"; }; Ggf. Hosts einschränken oder Ports erweitern 595

46 RMI Client starten RMI Client starten (3. Versuch) java cp dist/lib/rmiclient.jar:dist/lib/rmicommon.jar Djava.security.policy=rmiClientPolicy de.rainer_klute.rmi.client.wwsclient //mark/wws java.lang.classnotfoundexception: java.security.accesscontrolexception: access denied (java.io.filepermission /home/klute/classes/ read) Client lernt aus Stub, wo die zugehörige Klasse ist. Client benötigt das Recht, auf das Klassenverzeichnis zuzugreifen. grant { permission java.net.socketpermission "*", "resolve"; permission java.net.socketpermission "*:1099", "connect"; permission java.io.filepermission "/home/klute/classes/ ", "read"; }; 596

47 RMI Client starten RMI Client starten (4. Versuch) java cp dist/lib/rmiclient.jar:dist/lib/rmicommon.jar Djava.security.policy=rmiClientPolicy de.rainer_klute.rmi.client.wwsclient //mark/wws java.security.accesscontrolexception: access denied (java.net.socketpermission :2833 connect,resolve) Client benötigt das Recht, eine Verbindung zum RMI Server aufzubauen (genauer: zum Remote Objekt). Port Nummer läßt sich im Konstruktor von UnicastRemoteObject festlegen. grant { permission java.net.socketpermission "*", "connect"; permission java.io.filepermission "/home/klute/classes/ ", "read"; }; 597

48 RMI Client starten RMI Client starten (5. Versuch) java cp dist/lib/rmiclient.jar:dist/lib/rmicommon.jar Djava.security.policy=rmiClientPolicy de.rainer_klute.rmi.client.wwsclient //mark/wws java.rmi.connectexception: Connection refused to host: ; nested exception is: java.net.connectexception: Verbindungsaufbau abgelehnt Stub sucht Skeleton auf dem eigenen Rechner ( = localhost) statt auf der Server Maschine. RMI Server hat sich bei der RMI Registrierung als»localhost«registriert. Diesen Rechnernamen gibt die RMI Registrierung mit dem Stub an den Client weiter. 598

49 RMI Server neu starten Property java.rmi.server.hostname legt Hostnamen oder IP Adresse für die Registrierung fest. RMI Server neu starten java cp dist/lib/rmiserver.jar:dist/lib/rmicommon.jar Djava.rmi.server.codebase=file:///home/klute/classes/ Djava.security.policy=rmiServerPolicy Djava.rmi.server.hostname=rserver de.rainer_klute.rmi.server.wwsimpl RMI Client neu starten Bingo! 599

50 Objekte übertragen Client stellt Bestellung zusammen. Interfaces Bestellung, Posten Implementierungen BestellungImpl, PostenImpl Client schickt Bestellung zum Server. Bestellung b = new BestellungImpl(); //... b.addposten(p); String s = wws.bestellen(b); System.out.println("WWS Nachricht: " + s); Übertragen zweier serialisierter Objekte (Marshalling).

51 Klassen Server Problem in der Beispielanwendung: Zugriff auf Klassen über das Dateisystem Im allgemeinen nicht möglich Lösung für produktive Anwendung: Klassendateien auf FTP oder HTTP Server legen Immer noch problematisch: Übertragen der Klassen vom RMI Client zum RMI Server Lösung: RMI Client implementiert eigenen HTTP Server. RMI überträgt Objekte. HTTP Server überträgt Klassen. 601

52 RMIClassServer RMIClassServer: HTTP Server für Klassen Basiert auf Mini Klassenserver von Sun Microsystems. Wird in normale RMI Client oder RMI Server Anwendung eingebaut. RMIClassServer rcs = RMIClassServer.instance(); int port = rcs.run(); Classpath der Anwendung in System Property de.rainer_klute.rmi.classserver.classpath vorgeben Ermittelt freien Port und startet Server Thread.

53 RMI: Nicht behandelte Themen RMI über Firewalls HTTP Tunnelling Objekte auf festgelegtem Port exportieren Eigene Socket Typen Z.B. RMI über SSL Remote Object Activation Remote Objekte auf Anforderung erzeugen Marshalling RMI IIOP RMI Programm (Java) spricht mit CORBA Programm. 603

7 Remote Method Invocation (RMI)

7 Remote Method Invocation (RMI) 7 Remote Method Invocation (RMI) Verteilte Java Anwendungen; Client/Server Architektur Vorläufige Version 188 c 2005 Peter Thiemann Server: Aufgaben erstellt remote objects Objekte, deren Methoden von

Mehr

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc. 7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.html) bietet leider nur begrenzte Verteilungsabstraktion Unterstützung

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf

Mehr

Konzepte von Betriebssystem-Komponenten Middleware RMI

Konzepte von Betriebssystem-Komponenten Middleware RMI Konzepte von Betriebssystem-Komponenten Middleware RMI Mario Kiefer 21. Januar 2005 1 Einführung RMI (Remote Method Invocation) ermöglicht es mit relativ einfachen Mitteln verteilte Anwendungen zu erstellen.

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 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

Mehr

Java Remote Method Invocation (RMI)

Java Remote Method Invocation (RMI) Java Remote Method Invocation (RMI) Alexander Petry 13. Mai 2003 engl.: Entfernter Methodenaufruf 1 Übersicht 1. Einleitung 2. RMI Interfaces und Klassen 3. Parameterübergabe 4. Dynamisches Nachladen von

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation RMI Beispiel

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation RMI Beispiel UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation RMI Beispiel el0100 copyright Abt. Technische Informatik,

Mehr

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

Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 2) Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 2) Robert Tolksdorf und Peter Löhr Überblick 1. Auffinden von.class-dateien 2. Serializable Parameter 3. Sicherheit 4. Code laden übers Web

Mehr

8.1.5 Java RMI Remote Method Invocation

8.1.5 Java RMI Remote Method Invocation 8.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi ) (http://java.sun.com/j2se/1.5/docs/guide/rmi ) (http://java.sun.com/docs/books/tutorial/rmi ) (http://java.sun.com/developer/onlinetraining/rmi/rmi.html

Mehr

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

9. Remote Method Invocation Grundlagen der Programmierung II (Java) 9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1

Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1 Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7 Inhaltsverzeichnis RMI Projekt gettime 1 Schritt 1: Interface Klasse definieren 1 Schritt 2: Implementation Class definieren 2 Schritt 3: RMI Compiler erstellen

Mehr

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

4. Informatiktag NRW 14.3.05. Projekt online Shop. Barbara Leipholz Schumacher Euregio Kolleg, Würselen 1/51 Projekt online Shop 4. Informatiktag NRW 14.3.05 Barbara Leipholz Schumacher Euregio Kolleg, Würselen 2/51 Die Firma Sprachen Lernen möchte ihr Angebot auf online Bestellungen ausweiten. Sprache Art

Mehr

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

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

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

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1 Komponenten 1 2. Die Anfänge 3 Peter Sturm, Universität Trier 1 Selbstzufrieden Anwendung Hardware 4 Oh? Da gibt es noch jemanden? Anwendung Anwendung TCP/IP Hardware Hardware 5 Peter Sturm, Universität

Mehr

Praktikum Verteilte Anwendungen

Praktikum Verteilte Anwendungen Technische Informatik (Info II) -Sommersemester 2006 - Folie 1 / 27 0 Gliederung 1.) Kurze Wiederholung/ Einleitung 2.) RPC/ RMI 3.) Praktisches Beispiel 4.) Aufgabenblatt Folie 2 / 27 Wiederholung/ Einleitung

Mehr

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Aufgabe 1 Bitte schreiben Sie ein RMI Objekt, das eine Person repräsentiert. Es soll die folgende Schnittstelle implementieren: public interface Person

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte

Mehr

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

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

H.2 Distributed Events

H.2 Distributed Events H Überblick über die 7. Übung H Überblick über die 7. Übung 1 RemoteEvent Remote Events ServiceEvents Basisklasse aller Jini Events package net.jini.core.event; import java.rmi.marshalledobject; Security-Policies

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

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

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz.  Institut für Angewandte Informatik Programmieren II Remote Method Invocation (RMI) Heusch -- Ratz KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote Method

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

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

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 1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)

Mehr

Überblick. Middleware - Übung. Model-View-Controller. Entwurfsmuster (Design Patterns)

Überblick. Middleware - Übung. Model-View-Controller. Entwurfsmuster (Design Patterns) Überblick Middleware - Übung Tobias Distler, Michael Gernoth, Rüdiger Kapitza Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

JINI Security & Scalability. JINI Security

JINI Security & Scalability. JINI Security JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor Inhalt JINI-Beispielumgebung Kommunikation Was darf fremder Code? Exploits Folgerungen 1 Seminarraum mit Printer Lookup Service

Mehr

36.2 Example ClassLoader. 36.3 Example Appletviewer

36.2 Example ClassLoader. 36.3 Example Appletviewer 36 ClassLoader How are classes loaded into the Java Virtual Machine (JVM)? from the local file system (CLASSPATH). by an instance of ClassLoader... and when? - When they are needed the first time. class

Mehr

Remote Methode Invocation (RMI) ETIS SS05

Remote Methode Invocation (RMI) ETIS SS05 Remote Methode Invocation (RMI) ETIS SS05 Motivation Ablauf der Kommunikation Erstellung Remote-Service Zusammenfassung Gliederung 2 Motivation I RMI: Remote Method Invokation Möglichkeit verteilte Java-Anwendungen

Mehr

KAPITEL 1 RMI Verteilte Programmierung unter JAVA von Anja Austermann

KAPITEL 1 RMI Verteilte Programmierung unter JAVA von Anja Austermann RMI Verteilte Programmierung unter JAVA von Anja Austermann Da die Sprache Java sehr stark an der Programmierung für das Internet orientiert ist, stellt sie mit RMI einen Mechanismus zur Verfügung, mit

Mehr

Übung zur Vorlesung "Einführung in Verteilte Systeme"

Übung zur Vorlesung Einführung in Verteilte Systeme Übung zur Vorlesung "Einführung in Verteilte Systeme" Wintersemester 2004/05 Thema: Java RMI Ulf Rerrer Institut für Informatik Universität Paderborn Inhalt Java Remote Method Invocation RMI-Architektur!

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 8

Praktikum aus Softwareentwicklung 2, Stunde 8 Praktikum aus Softwareentwicklung 2, Stunde 8 Lehrziele/Inhalt 1. Remoting Remoting Über Remoting können Objekte über JavaVMs hinweg miteinander kommunizieren. Das ist auch mit Socket-Programmierung möglich.

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Implementierung III. Implementierung IV

Implementierung III. Implementierung IV Übersicht Implementierung III GUI und Verhalten (Teil 2) Implementierung IV Schnittstelle zur Umgebung Integration und Test Alexander Geraldy Softwarepraktikum - Teil: Eingebettete Systeme SoSe 20031 Implementierung

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Aufgabe 1: Wintersemester 07/08 Übungsblatt 2 20.11.07 Grundlagen verteilter Systeme Lösungsvorschlag

Mehr

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

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Java Security. Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff

Java Security. Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff Java Security Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff Das Java Sicherheitskonzept Java wurde von Anfang an auf Sicherheit im Internet ausgelegt. Unsicherer Code

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 14

Praktikum aus Softwareentwicklung 2, Stunde 14 Praktikum aus Softwareentwicklung 2, Stunde 14 Lehrziele/Inhalt 1. Java Service 2. Sicherheit Java Service Ein Java Service ist ein Interface, Objekte die dieses Interface implementieren können zur Laufzeit

Mehr

10.1 Remote Method Invocation (RMI)

10.1 Remote Method Invocation (RMI) 10.1 Remote Method Invocation (RMI) Verteilte Java Anwendungen Methodenaufrufe auf Fremdobjekten (remote objects) Object Serialization Typen bleiben erhalten Package java.rmi (und andere) Vorläufige Version

Mehr

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

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik Programmieren II Remote-Programmierung KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote-Programmierung Remote Method Invocation

Mehr

Implementierung IV: Schnittstelle zur Umgebung. und. Integration und Test

Implementierung IV: Schnittstelle zur Umgebung. und. Integration und Test Sommersemester 2003 Implementierung IV: Schnittstelle zur Umgebung und Integration und Test 34 Aufgabe 6 Implementierung IV: Schnittstelle zur Umgebung und Integration und Test Umfang: 2 Wochen Punkte:

Mehr

Java Security. Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff

Java Security. Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff Java Security Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff Das Java Sicherheitskonzept Java wurde von Anfang an auf Sicherheit im Internet ausgelegt. Unsicherer Code

Mehr

Benutzerauthentifizierung und Zugriffsschutz mit JAAS

Benutzerauthentifizierung und Zugriffsschutz mit JAAS Benutzerauthentifizierung und Zugriffsschutz mit JAAS Werner Eberling werner.eberling@mathema.de www.mathema.de Übersicht Altbekanntes kurz erwähnt Java Security Des Kaisers neue Kleider JAAS Zu Ihren

Mehr

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Inhalt. Übung zur Vorlesung "Einführung in Verteilte Systeme" Das RMI-Schichtenmodell. Java Remote Method Invocation. Wintersemester 2004/05

Inhalt. Übung zur Vorlesung Einführung in Verteilte Systeme Das RMI-Schichtenmodell. Java Remote Method Invocation. Wintersemester 2004/05 Übung zur Vorlesung "Einführung in Verteilte Systeme" Wintersemester 2004/05 Ulf Rerrer Thema: Java RMI Institut für Informatik Universität Paderborn Inhalt Java Remote Method Invocation RMI-Architektur!

Mehr

AVO Übung 1. Java RMI, Custom Sockets, Activation. 2. November 2004 (WS 2004) Andreas I. Schmied

AVO Übung 1. Java RMI, Custom Sockets, Activation. 2. November 2004 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik Abteilung Verteilte Systeme Projektgruppe AspectIX AVO Übung 1 Java RMI, Custom Sockets, Activation 2. November 2004 (WS 2004) Andreas I. Schmied (schmied@inf...)

Mehr

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

Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 1) Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 1) Robert Tolksdorf und Peter Löhr Überblick 1. Fernaufrufbare Objekte 2. Das Objektverzeichnis rmiregistry 3. Parametersemantik Dokumentation

Mehr

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) Hier soll ein Überblick 1 über die RMI-Technologie der Java 2 Plattform gegeben werden. Inhaltsverzeichnis 1.Überblick...3 2.RMI Architektur...6 2.1.Überblick...6 2.2.RMI

Mehr

Middleware. im Schweinsgalopp

Middleware. im Schweinsgalopp Middleware im Schweinsgalopp 1 Szenario Unternehmen verwendet SAP als ERP-System wickelt Versand über Dienstleister, hier UPS ab UPS bietet Verfolgung der Lieferung über Web- Schnittstelle Daten im ERP

Mehr

Janeva:.NET meets J2EE

Janeva:.NET meets J2EE Inhalt: Motivation Was ist Janeva? Systemvoraussetzungen Installation Beispiel Converter Fazit Motivation Motivation: Janeva testen einen Überblick verschaffen Lauffähiges Beispiel Entscheidungshilfe über

Mehr

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung Client/Server-Programmierung WS2007/08 EJB/JSP: Schritt-für-Schritt Anleitung Version 1.1, 26.09.07 Eingesetzte Software: - Apache Tomcat 5.5.9 bzw. 5.5.12 (http://tomcat.apache.org/download-55.cgi#5.5.12)

Mehr

Reflection. Arthur Zaczek. Nov 2014

Reflection. Arthur Zaczek. Nov 2014 Arthur Zaczek Nov 2014 1 Einleitung 1.1 Definition Reflection ist das Auslesen von Metainformationen über Klassen, deren Methoden & Eigenschaften zur Laufzeit. 1.2 Anwendungsfälle Analyse von Programmen

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 2 05.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Das

Mehr

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

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme I Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

Java in Verteilte Systeme - RMI

Java in Verteilte Systeme - RMI In diesem Kursteil Modul 2 : Remote Method Invocation RMI Modul Einleitung Was ist Java RMI? RMI Architektur Übersicht Der Transport Layer Garbage Collection Remote Reference Layer RMI Stubs und Skeletons

Mehr

JAVA Remote Method Invocation JRMP Tutorial

JAVA Remote Method Invocation JRMP Tutorial JAVA Remote Method Invocation JRMP Tutorial Abteilung Technische Informatik, Institut für Informatik, Universität Leipzig Abteilung Technische Informatik, Wilhelm Schickard Institut für Informatik 11.6.2013

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

Mehr

Security. Einführung Klassenlader Bytecode-Prüfung Sicherheitsmanager Berechtigungen. Praktikum aus Softwareentwicklung 2 Markus Löberbauer 1

Security. Einführung Klassenlader Bytecode-Prüfung Sicherheitsmanager Berechtigungen. Praktikum aus Softwareentwicklung 2 Markus Löberbauer 1 Security Einführung Klassenlader Bytecode-Prüfung Sicherheitsmanager Berechtigungen Praktikum aus Softwareentwicklung 2 Markus Löberbauer 1 Sicherheitsmechanismen in Java Sicherheit ist integraler Bestandteil

Mehr

Kapitel 6: Verteilte Objekte durch RMI. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Kapitel 6: Verteilte Objekte durch RMI. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes Kapitel 6: Verteilte Objekte durch RMI Prinzip von RMI RMI (Remote Method Invocation) erlaubt den Aufruf von Methoden von Objekten, die sich auf einem anderen einem entfernten Rechnersystem befinden. Man

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

5.7 Zugriffsschutz in Programmiersprachen

5.7 Zugriffsschutz in Programmiersprachen 5.7 Zugriffsschutz in Programmiersprachen Schichtung abstrakter Maschinen geschützte Objekte Systemobjekte, Anwendungsobjekte Programmiersprache Systemobjekte, insbesondere Dateien Betriebssystem Adreßräume,

Mehr

Internetanwendungstechnik (Übung)

Internetanwendungstechnik (Übung) Internetanwendungstechnik (Übung) JacORB S. Bissell, G. Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr. EN6,

Mehr

E.1 Object Request Brokers

E.1 Object Request Brokers E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen

Mehr

Sicherheitsmechanismen in Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 19: Sicherheit. Sicherheitsmechanismen in Java

Sicherheitsmechanismen in Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 19: Sicherheit. Sicherheitsmechanismen in Java Universität Osnabrück 1 Sicherheitsmechanismen in Java 3 - Objektorientierte Programmierung in Java Vorlesung 19: Sicherheit Sprachsicherheit Java wurde mit hohen Sicherheitsansprüchen entworfen, da Applets

Mehr

Security. Einführung Klassenlader Bytecode-Prüfung Sicherheitsmanager Berechtigungen. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.

Security. Einführung Klassenlader Bytecode-Prüfung Sicherheitsmanager Berechtigungen. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Security Einführung Klassenlader Bytecode-Prüfung Sicherheitsmanager Berechtigungen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Security Einführung Klassenlader und Bytecode-Prüfung Sicherheitsmanager

Mehr

Netzprogrammierung Verteilte Objekte in Java RMI II

Netzprogrammierung Verteilte Objekte in Java RMI II Netzprogrammierung Verteilte Objekte in Java RMI II Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme mailto: tolk@inf.fu-berlin.de http://www.robert-tolksdorf.de

Mehr

Java in Verteilte Systeme

Java in Verteilte Systeme In diesem Kursteil Modul 2 : Remote Method Invocation RMI Modul Einleitung Was ist Java RMI? RMI Architektur Übersicht Der Transport Layer Garbage Collection Remote Reference Layer RMI Stubs und Skeletons

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

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 3. Februar 2006 Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006 Aufkleber Name: Vorname: Matrikel: Studiengang: inkl. DPO4, B/M, Schwerp., Schreiben Sie zunächst Ihren

Mehr

5A Kooperation: Lösungen

5A Kooperation: Lösungen 5A Kooperation: Lösungen 5A.1 Wissens- und Verständnisfragen 1.a.) dass nicht auf jedem Computer alle Programme und Daten vorgehalten werden müssen / dass damit auch Geräte auf anderen Rechnerknoten angesprochen

Mehr

J Fernmethodenaufrufe Remote Method Invocation (RMI)

J Fernmethodenaufrufe Remote Method Invocation (RMI) J Fernmethodenaufrufe Remote Method Invocation (RMI) ermöglicht Abstraktion in einem verteilten System Socket-Kommunikation Fernaufrufe (RPC) J Fernmethodenaufrufe Remote Method Invocation (RMI) keine

Mehr

JDBC. Java DataBase Connectivity

JDBC. Java DataBase Connectivity JDBC Java DataBase Connectivity JDBC-Schichten JDBC besteht aus 2 Teilen, 1. aus Datenbanktreibern, die den Anschluß von Java-Anwendungen an Datenbanksysteme wie Sybase, DB/2, Oracle, MS ACCESS oder Mini

Mehr

C Java RMI. 1 Java. Objektorientierte Sprache

C Java RMI. 1 Java. Objektorientierte Sprache Java RMI 1 1 Java Objektorientierte Sprache Objekte und andere Datentypen: int, float, boolean, etc. Objektreferenzen Verweise auf Objekte keine Zeiger, Adressen o.ä. Methodenaufruf bei vorhandener Objektreferenz

Mehr

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen

Mehr

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

Installationshandbuch

Installationshandbuch Installationshandbuch Erforderliche Konfiguration Installation und Aktivierung - 1 - Erforderliche Konfiguration Programme der 4D v15 Produktreihe benötigen folgende Mindestkonfiguration: Windows OS X

Mehr

Übungen zu Verteilte Systeme : Aufgabe zu Java-RMI (1)

Übungen zu Verteilte Systeme : Aufgabe zu Java-RMI (1) BEREICH DATENTECHNIK U VS 031 01 TH 02 Übungen zu Verteilte Systeme : Aufgabe zu Java-RMI (1) Aufgabenstellung : Es ist ein über RMI aktivierbarer generischer Problemlösungs-Server in Java zu entwickeln.

Mehr

Installationshandbuch. Erforderliche Konfiguration Installation und Aktivierung

Installationshandbuch. Erforderliche Konfiguration Installation und Aktivierung Installationshandbuch Erforderliche Konfiguration Installation und Aktivierung Erforderliche Konfiguration Programme der 4D v12 Produktreihe benötigen folgende Mindestkonfiguration: Windows Mac OS Prozessor

Mehr

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen

Mehr

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

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006 Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006 Aufkleber Name: Vorname: Matrikel: Studiengang: inkl. DPO4, B/M, Schwerp., Schreiben Sie zunächst Ihren Namen

Mehr

Instrumentierung und Dekodierung

Instrumentierung und Dekodierung 116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so

Mehr

Sicherheitsmechanismen in Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 19: Sicherheit. Sicherheitsmechanismen in Java

Sicherheitsmechanismen in Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 19: Sicherheit. Sicherheitsmechanismen in Java Universität Osnabrück 1 Sicherheitsmechanismen in Java 3 - Objektorientierte Programmierung in Java Vorlesung 19: Sicherheit Sprachsicherheit Java wurde mit hohen Sicherheitsansprüchen entworfen, da Applets

Mehr

Programmiermethodik. Übung 13

Programmiermethodik. Übung 13 Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java

Mehr

WebService in Java SE und EE

WebService in Java SE und EE Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt.

Mehr

Verwaltung von Java-2-Zugriffspolitiken. Rainer Falk Lehrstuhl für Datenverarbeitung TU München falk@ei.tum.de

Verwaltung von Java-2-Zugriffspolitiken. Rainer Falk Lehrstuhl für Datenverarbeitung TU München falk@ei.tum.de Verwaltung von Java-2-Zugriffspolitiken Rainer Falk Lehrstuhl für Datenverarbeitung TU München falk@ei.tum.de Inhalt Zugriffskontrolle bei Java 2 Motivation Konzept für eine effiziente Administration Prototyp

Mehr

7.1.1 Grundzüge der Fernaufruf-Implementierung

7.1.1 Grundzüge der Fernaufruf-Implementierung 7.1.1 Grundzüge der Fernaufruf-Implementierung = Aufrufbeziehung Aufrufer Vertreter (proxy, client stub) Fernaufrufdienst A d a p t e r Treiber (skeleton, server stub) Fernaufrufdienst Aufgerufener (Modul,

Mehr

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10.  Institut für Angewandte Informatik Programmieren I Fehlerbehandlung Exceptions Heusch 2. Bd, 3 Ratz 10 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Exceptions und ihre Behandlung Exception - Ausnahmebedingung

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2013/2014 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 8. November 2013 Betriebssysteme / verteilte

Mehr