3.4 Remote Method Invocation (RMI)

Abbildung 3: Remote Method Invocation, JDK 1.1


RMI Architektur in Abbildung 3

weitere Bestandteile von RMI

Die wesentlichen Schritte der RMI-Kommunikation:

  1. Eine entfernte Klasse muß ein definiertes Interface haben, das das Remote-Interface erweitert. Alle Remote-Methoden müssen RemoteExceptions auslösen können.
  2. Zu dem Interface muß eine passende Implementierung existieren.
  3. Mit Hilfe des RMI-Compilers rmic müssen aus der Remote-Implementierung die entsprechenden Klassen für Stub und Skeleton abgeleitet werden. Mit JDK 1.2 wird kein Skeleton mehr benötigt.
  4. Das RMI Repository, ein Verzeichnis von Server-Methoden, muß mit dem Daemon rmiregistry aktiviert und gestartet werden.
  5. Ein Serverprozess muß ein Exemplar object der Remote-Klasse erzeugen und mit rmi.Naming.bind( "name", object) beim Repository anmelden.
  6. Der Clientprozeß muß ein lokales Exemplar Interface object
    des Remote- Interfaces erzeugen. Dies geschieht mit
    (Interface) rmi.Naming.lookup( "rmi://host/method" )
  7. Alle Remote-Methoden dieser Instanz können dann mit
    result = object.method(parm) wie lokale Methoden verwendet werden.

Abbildung H: UML RMI
UML RMI

Mit Java 2, aka JDK 1.2, gibt es ein ausgefeiltes und flexibles Sicherheitsmanagement

eine Datei die alles erlaubt:

  grant {
      permission java.security.AllPermission;
  };

eine Datei die von Überall den Zugang nur über die Ports 4000-5000 erlaubt:

  grant {
      permission java.net.SocketPermission "*:4000-5000", "connect,accept";
  };

3.5 Zusammenfassung


© Universität Mannheim, Rechenzentrum, 2000-2002.

Last modified: Wed Oct 5 12:07:07 CEST 2005