Verteilte Services mit dem Java RMI-Framework

RMI ermöglicht es mit einem Java-Objekt ein anderes Objekt aufzurufen, egal wo sich dieses befindet. Mit RMI können aber auch verteilte Services und Anwendungen erstellt werden. Hier geht es darum, wie man eine RMI-Anwendung im eigenen Unternehmen erstellen kann.


Das Java RMI-Framework (Remote Method Invocation) ermöglicht die virtuelle Erstellung transparenter verteilter Services und Anwendungen. RMI-basierte Anwendungen bestehen aus Java-Objekten, die gegenseitig ihre Methoden aufrufen, egal wo sie sich befinden. Dies ermöglicht einem Java-Objekt den Aufruf von Methoden eines anderen Java-Objekts, das sich auf einer anderen virtuellen Maschine befindet, in derselben Weise, wie Methoden eines Java-Objekts aufgerufen werden, das sich auf derselben virtuellen Maschine befindet.

Schnittstellen

Jedes entfernte Objekt muss exportiert werden, so dass es für eingehende entfernte Methodenaufrufe zur Verfügung steht. Entfernte Objekte können manuell exportiert werden, indem man die Methode java.rmi.server.UnicastRemoteObject.exportObject oder die Methode java.rmi.activation.Activatable.exportObject vom entfernten Objekt aus aufruft. Entfernte Objekte werden automatisch bei der Erzeugung exportiert, wenn sie entweder java.rmi.server.UnicastRemoteObject oder java.rmi.activation.Activatable erweitern.

Für jedes entfernte Objekt muss ein Konstruktor definiert werden, der eine java.rmi.RemoteException auslöst, da der Exportvorgang schließlich auch fehlschlagen kann. Listing A zeigt eine gültige Implementierung für die Schnittstelle des entfernten Objekts TimeKeeper.

Die RMI-Registry

RMI definiert ein Repository des entfernten Objekts, auch als RMI-Registry bekannt. Eine RMI-Registry ist ein einfacher Nameserver, der Referenzen zu entfernten Objekten verwaltet und diese anderen RMI-Servern zur Verfügung stellt.

Auf UNIX-basierten Systemen dient der folgende Befehl zum Starten der RMI-Registry:



Auf Windows-Systemen kann man für das Starten der RMI-Registry einen der beiden folgenden Befehle verwenden:



Standardmäßig läuft die RMI-Registry auf Port 1099. Man kann einen anderen Port zuweisen, indem man die Port-Nummer beim Starten der Registry angibt. So startet z. B. der folgende Befehl die Registry auf einem Windows-System auf Port 3000:



Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

ZDNet für mobile Geräte
ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

Artikel empfehlen:

Neueste Kommentare 

1 Kommentar zu Verteilte Services mit dem Java RMI-Framework

Kommentar hinzufügen
  • Am 9. Oktober 2003 um 10:27 von Riddler

    kurz
    Ein eher kurzer Beitrag über RMI, der nichts aussagt über die Komplexität der Entwicklung und auch die Schwächen von RMI (zB Objektmigration). Eine Aufstellung der Vor- und Nachteile in Zusammenhang mit andereren Möglichkeiten der verteilten Softwareentwicklung in Java (Sockets, Corba, …) wäre interessant gewesen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *