Remote Method Invocation
Remote Method Invocation ("RMI") ist der Aufruf einer Methode eines entfernten Java-Objekts und realisiert die Java-eigene Art eines sog. RPC. "Entfernt" bedeutet dabei, dass sich das Objekt in einer anderen Virtuellen Maschine befinden kann (die ihrerseits auf einem entfernten Rechner oder auf dem lokalen Rechner laufen kann). Dabei sieht der Aufruf für das aufrufende Objekt (bzw. dessen Programmierer) genauso aus, wie ein lokaler Aufruf, es müssen jedoch besondere Ausnahmen abgefangen werden, die zum Beispiel einen Verbindungsabbruch signalisieren können.
Auf der Client-Seite kümmert sich der sogenannte Stub - eine mit dem RMI-Compiler "rmic" erzeugte Klasse - um den Netzwerktransport. Der Stub muss entweder lokal oder über das Netz für den Client verfügbar sein.
Entfernte Objekte können zwar auch von einem bereits im Programm bekannten entfernten Objekt bereitgestellt werden, für die erste Verbindungsaufnahme wird aber die Adresse des Servers und ein Bezeichner benötigt, mit dem ein Namingservice auf dem Server eine Referenz auf das entfernte Objekt zurückliefert.
RMI bezeichnet außerdem ein Kommunikationsprotokoll, das für entfernte Aufrufe zwischen Java-Objekten verwendet wird, und eine Java-Standard-Klassenbibliothek, mit der diese Aufrufe realisiert werden können. Diese Klassenbibliothek ist Teil der Java 2 Standard Edition (J2SE).
