Einführung in RMI


L. E.
Diese Lernkarten bieten einen Überblick über Remote Method Invocation (RMI) auf Universitätsniveau. Sie behandeln zentrale Konzepte wie Remote Objects, die auf Servern liegen und Methoden für Clients bereitstellen, sowie Remote Interfaces, die diese Funktionen definieren. Die Karteikarten erklären auch die Rolle der RMI Registry als Namensdienst und die Kommunikation zwischen Clients und Servern über Remote References. Zudem wird der Ablauf von RMI detailliert beschrieben, einschließlich der dynamischen Klassenladung und der Sicherheitsrestriktionen. Diese Lernkarten sind ideal für Studierende der Informatik, die RMI in Java verstehen und anwenden möchten.
Karten
8
Lernende
1
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
15.11.2016 / 15.11.2016

Lernkarten

Was passiert grob bei RMI?

  • Aufruf einer Methode eines entfernten Java-Objekts, realisiert die Java-eigene Art des Remote Procedure Call

  • Objekt kann sich in einer anderen Java Virtual Machine befinden, die ihrerseits auf einem entfernten Rechner oder auf dem lokalen Rechner laufen kann

Was sind Stub und Skeleton?

Stub: (client-seitiger) Stellvertreter für das entfernte Objekt beim RMI-Server

Skeleton: (server-seitiger) Stellvertreter für das aufrufende Objekt

Was ist RMI Registry?

  • Namensdienst auf dem Server
  • Adresse des Servers und Bezeichner (RMI-URL) werden bei erster Verbindungsaufnahme benötigt --> RMI liefert für Bezeichner eine Referenz auf das entfernte Objekt zurück; entferntes Objekt im Server muss zuvor unter diesem Namen beim Namensdienst registriert sein

Wie heißen die drei wichtigsten Komponenten beim RMI?

  • Remote Interface
  • Remote Object
  • Remote Reference

Was ist Remote Interface?

  • beschreibt Funktionen, die auf dem Server zur Verfügung stehen

  • definiert das Verhalten des entfernten Objekts (ohne dieses zu implementieren)

Was ist Remote Object?

  • stellt das entfernte Objekt dar

  • liegt auf dem Server

  • implementiert das Remote Interface und das Verhalten der für die Clients zur Verfügung stehenden entfernten Methoden

  • vom Server können eine oder mehrere Instanzen des Remote-Objekts erstellt werden

  • muss von UnicastRemoteObject abgeleitet sein und einen parameterlosen Konstruktor haben, denn dieser ruft nur den Konstruktor von UncicastRemoteObject auf und könnte sonst eine Remote Exception auslösen

  • jede Methode muss eine RemoteException deklarieren, auch der parametrelose Konstruktor

Was ist Remote Reference?

  • Referenz auf Remote Objects

  • Clients bekommen Remote Reference von der RMI Registry

Wie ist der Ablauf bei RMI?

  1. Server registriert Remote Object bei der RMI-Registry unter einem eindeutigen Namen

  2. Client sieht bei der RMI-Registry unter diesem Namen nach und bekommt eine Objektreferenz, die seinem Remote Interface entsprechen muss

  3. Client ruft Methode aus der Objektreferenz auf; dabei kann ein Objekt der Klasse X übergeben werden, die der JVM des Servers bisher nicht bekannt ist Server-JVM lädt Klasse X dynamisch nach (z.B. Webserver des Client)

  4. die Server-JVM führt Methode auf dem Remote Object aus, wobei evtl. dynamisch geladener Fremdcode benutzt wird (z.B. Methoden von X), der im Allgemeinen Sicherheitsrestriktionen unterliegt; Client werden die Rückgabewerte dieses Aufrufs gesendet oder er bekommt eine Fehlermeldung (z.B. bei einem Verbindungsabbruch)

Lernen