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

Latrodectus: Gefährlicher Nachfolger von IcedID

Latrodectus, auch bekannt als BlackWidow, ist auch unter dem Namen LUNAR SPIDER bekannt.

1 Tag ago

Apple meldet Rekordumsatz im vierten Fiskalquartal

Die Einnahmen klettern auf fast 95 Milliarden Dollar. Allerdings belastet der Steuerstreit mit der EU…

5 Tagen ago

Baseus Bowie 30 Max: Erste Bluetooth-Kopfhörer mit Head-Tracking-Spatial-Audio

Neue Over-Headset-Kopfhörer von Baseus bieten Raumklang-Audio und unterdrücken Störgeräusche um rund 96 Prozent.

5 Tagen ago

Microsoft steigert Umsatz und Gewinn im ersten Fiskalquartal

Das stärkste Wachstum verbucht die Cloud-Sparte. Microsoft verpasst bei der Umsatzprognose für das laufende Quartal…

5 Tagen ago

Bezahlkarten: Infineon verspricht weniger Plastikmüll

Ein Coil-on-Module-Package integriert Chip und Antenne, was den Kartenkörper fast vollständig recycelbar machen soll.

6 Tagen ago

Firefox 132 schließt elf Sicherheitslücken

Mindestens eine Anfälligkeit erlaubt das Einschleusen von Schadcode. Außerdem erweitern die Entwickler den Support für…

6 Tagen ago