Verteilte Services mit dem Java RMI-Framework

Damit entfernte Objekte gefunden und verwendet werden können, müssen die Clients, auf denen sich die entfernten Objekte befinden, mit einem RMI-Server verbunden werden, der Referenzen auf die Objekte enthält. Ein RMI-Server ist einfach eine Java-Klasse, die eine Hauptmethode implementiert, jedes entfernte Objekt instantiiert und exportiert und die Instanzen an einen Namen in der RMI-Registry bindet.

Jedes Mal, wenn Code durch eine JVM heruntergeladen werden soll, müssen entsprechende Sicherheitsvorkehrungen getroffen sein, um das System vor Objekten zu schützen, die unsichere Operationen durchführen. Deshalb muss die Hauptmethode eines RMI-Servers einen Security Manager erstellen und installieren, wie das folgende Beispiel illustriert:

Der RMI-Server erzeugt Instanzen der entfernten Objekte und bindet sie dann an einen Namen, der von einem entfernten Client gefunden und aufgerufen werden kann, wie im folgenden Beispiel:

Wenn ein entferntes Objekt instantiiert ist, wird es exportiert und für die Annahme eingehender Aufrufe zur Verfügung gestellt.

Sobald ein entferntes Objekt instantiiert und an einen Namen gebunden ist, können entfernte Aufrufer das Objekt anhand des Namens finden, die Referenz eines entfernten Objekts erhalten und dann Methoden dieses Objekts aufrufen.

Das Beispiel in Listing B zeigt einen einfachen RMI-Server, der einen Security Manager installiert und dann ein entferntes Objekt erzeugt und bindet.

Den Server starten

Zum Starten eines RMI-Server genügt es, den Server einfach wie jede normale Java-Anwendung auszuführen. Allerdings müssen in der Kommandozeile eine Reihe von Eigenschaften mit ihren zugehörigen Namen und Werten angegeben werden:

  • Die Eigenschaft java.rmi.server.codebase wird definiert, damit Klassen dynamisch in die Registry und dann zum Client heruntergeladen werden können.
  • Die Eigenschaft java.security.policy wird definiert, damit der Server weiß, welche Sicherheitsrichtlinien er anzuwenden hat.

Das Beispiel für eine Kommandozeile in Listing C demonstriert, wie man den SimpleRMIServer startet, wobei die Eigenschaft java.rmi.server.codebase auf http://myhost/~jeff/remoteobjects und die Eigenschaft java.security.policy auf $HOME/jeff/policies/policy gesetzt wird.

Nachdem der SimpleRMIServer gestartet wurde, müsste man die folgende Anzeige sehen:

Zusammenfassung

In diesem Artikel ging es darum, wie RMI für entfernte Interaktionen eingesetzt werden kann, so dass sich Programmierer auf andere Themen als auf die Kommunikations-Infrastruktur konzentrieren können. Das Framework von Java zum Aufrufen entfernter Methoden erlaubt dem Programmierer das virtuelle Erstellen transparenter verteilter Services und Anwendungen. RMI-basierte Anwendungen verwenden Java-Objekte, die gegenseitig ihre Methoden aufrufen können, egal wo sie sich befinden.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Lags beim Online-Gaming? DSL-Vergleich und andere Tipps schaffen Abhilfe

Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…

3 Tagen ago

GenKI-Fortbildung immer noch Mangelware

Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…

3 Tagen ago

Netzwerk-Portfolio für das KI-Zeitalter

Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…

3 Tagen ago

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

3 Tagen ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

3 Tagen ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

4 Tagen ago