Loesung 3 - Verteilte Systeme

Werbung
UNIVERSITÄT ULM
Fakultät für Informatik
Verteilte Systeme
Prof. Dr. Peter Schulthess
Ralph Göckelmann
Stefan Frenz
Lösung zur 3. Übung Verteilte Betriebssysteme
Aufgabe 1: Remote Method Invocation
a) Schreiben Sie ein RMI-Serverprogramm, welches eine beliebig lange Zahlenfolge sortiert. Die Zahlenfolge soll
in einem Integer-Array abgelegt sein. Sie können zu Testzwecken eine feste Zahlenfolge im Klienten
verwenden. Der Sortieralgorithmus kann frei gewählt werden (z.B. BubbleSort oder QuickSort).
b) Warum ist bei RMI keine zusätzliche IDL-Datei notwendig?
Java ist eine typsichere Sprache. Eine zusätzliche Typisierung durch eine IDL kann entfallen.
Aufgabe 2: Serialisierung
a) Schreiben Sie ein RMI-Serverprogramm, welches den Klienten eine Methode void dumpTree (Tree root) anbietet,
mit der ein im Parameter Tree übergebener Binärbaum am Bildschirm ausgegeben wird. Schreiben Sie einen
Klienten und testen Sie ihren Server, indem Sie zufällig einen Binärbaum erzeugen und dessen Wurzel als
Parameter an den Server übergeben.
b) Erweitern Sie ihren Klienten und verfolgen Sie die Serialisierung des übergebenen Baumes. Für die
Serielisierung von Java-Objekten wird die Methode writeObject gerufen. Überschreiben Sie diese geerbte
Methode und geben Sie zunächst den Namen/Inhalt des Knoten aus. Rufen Sie anschließend die DefaultRoutine defaultWriteObject um die Serialisierung durchzuführen.
Aufgabe 3: RPC
a) Beschreiben und bewerten Sie den Remote Procedure Call (Vorteile gegenüber einfacheren
Kommunikationsdiensten und generelle Probleme).
+ durch RPC können nicht nur Nachrichten versendet sondern auch Dienste auf anderen Rechnern
gestartet werden
+ Parameter müssen nicht von Hand verpackt und entpackt werden, wie beispielsweise bei
Kommunikation mit X-Server (Æ Interface durch Beschreibungssprache IDL def.)
+Aufruf einer entfernten Fkt. sieht für den Programmierer aus, wie der Aufruf einer lokalen Fkt. aus
+Referenzen auf komplexe Strukturen können einfacher gehandhabt werden, als mit Sockets
- Netzwerk kann zusammenbrechen
- Netzwerk überlastet
- Referenzen können u.U. großen Datentransfer verursachen
- IDL kompliziert durch nicht typsichere Sprache C (besser z.B. Java)
b) Was steht in den Dateien IDL und ACF?
ACF = Application Configuration File
Beschreibt Attribute die nur das lokale System betreffen, nicht den Netzwerktransfer. Sie wird
verwendet, um Details fuer den zu generierenden Stubcode zu definieren.
Inhalt: min. Interface-Handle (genügt meistens)
IDL = Interface Definition Language
Interface-Header: UUID, Versionsnummer
(optional: Defaultattribut für nicht-attributierte Pointer)
Interface:
Interfacebeschreibung
- spezifiziert die Schnittstelle der Remote-Prozeduren auf Server (kein Objekt Æ nur
Fkt.)
- beschreibt, was zwischen Klient und Server übertragen wird Æ Zeiger besonders
kritisch
UUID = Universal Unique Identifier
Eindeutige Identifikation eines RPC Interfaces, generiert mit guidgen.exe. Dieses Hilfsprogramm
erzeugt eine eindeutige Nummer (Netzwerkadapteradresse, Zeit, ...).
Herunterladen