Nächste Seite: CORBA
Aufwärts: Java
Vorherige Seite: Java
  Inhalt
ist Bestandteil von Java seit dem JDK 1.1 und ermöglicht das Starten von ,,Remote Procedure Calls`` [Wollrath und Waldo 1999]. Hierfür stellt ein Server Methoden zur Verfügung, mit denen Objekte manipuliert werden können. Die hierbei aufgerufenen Unterprogramme auf anderen Rechnern müssen ebenfalls in Java geschrieben sein. Der Aufbau einer verteilten Anwendung unter Benutzung von RMI ist folgendermaßen: Der Server stellt seine Dienste über eine Schnittstelle, einem Java-Interface, das Teil des Servers ist und mittels Namens-Diensten bekannt gemacht wird, zur Verfügung. Hierauf können sowohl der Server als auch der Client zugreifen. Durch Zugriff auf die Namens-Dienste kann der Client Informationen über die Schnittstelle erhalten und Methoden auf dem Server starten. Zur Übertragung der Daten werden die Objekte serialisiert.
Die Architektur von RMI ist in Abbildung 2.27 dargestellt.
Abbildung 2.27:
Architektur von RMI
|
Die einzelnen Teile von RMI arbeiten folgendermaßen zusammen:
- Das auf dem Server laufende Objekt wird durch den Client-Stub auf dem Client vertreten. Alle Aufrufe leitet der Client-Stub an das Server-Objekt weiter. Hierfür werden alle übergebenen Parameter und Objekte serialisiert.
- Auf der Serverseite baut der Server-Skeleton als Gegenstück zum Client-Stub die serialisierten Parameter und Objekte wieder zusammen.
- Der Transport der Daten zwischen Server und Client wird in der Transportschicht durchgeführt. Die Umwandlung der Daten geschieht hierbei in der Remote-Referenz-Schicht.
RMI lässt sich für verteilte Anwendungen leicht einsetzen und kann die Vorteile von Java, wie z.B. die Plattformunabhängigkeit, nutzen. Daten können problemlos zwischen einzelnen Prozessen ausgetauscht werden, solange sie serialisiert werden können. Die Implementation von MPI für Java verwendet daher auch die Funktionalität von RMI. Ein Nachteil von RMI, der bei der Verwendung von Java im Bereich des Hochleistungsrechnens nicht so gravierend ist, ist die Beschränkung auf Java-Objekte. Ein größerer Nachteil bei der Verwendung von Java und RMI im Bereich des Hochleistungsrechnens liegt im Geschwindigkeitsnachteil von Java gegenüber Programmiersprachen wie C++ und FORTRAN. Hier zeigen allerdings die neusten Entwicklungen im Bereich der Compiler für Java, dass eine ähnliche Performance wie unter FORTRAN in den nächsten Jahren erreicht werden kann [Artivagas u. a. 1999] [Maassen u. a. 2000].
Nächste Seite: CORBA
Aufwärts: Java
Vorherige Seite: Java
  Inhalt