next up previous contents
Nächste Seite: CORBA Aufwärts: Java Vorherige Seite: Java   Inhalt

RMI

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
\begin{figure}
\centerline {\psfig{figure=java/rmi_schicht.eps}} \end{figure}

Die einzelnen Teile von RMI arbeiten folgendermaßen zusammen:

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].

Abbildung 2.28: Name-Service von CORBA [Inprise 1999]
\begin{figure}
\centerline {\psfig{figure=java/rmi.eps}} \end{figure}


next up previous contents
Nächste Seite: CORBA Aufwärts: Java Vorherige Seite: Java   Inhalt