Klausur zu „Verteilte Anwendungen“ SS 2004 (Prof. Dr. J.Schlichter, Dr. W.Wörndl) Name: ________________________________ (bitte deutlich schreiben) Matrikelnummer: ___________________________ Zustimmung zur Veröffentlichung des Ergebnisses im Internet: { ja { nein Datum: 19.07.2004 Die Klausur besteht aus 5 Aufgaben, in denen maximal 40 Punkte erreicht werden können. Sie haben 90 Minuten Zeit, um die Aufgaben zu bearbeiten. Es sind keine Hilfsmittel zugelassen. Notieren Sie bitte zuerst auf allen 7 Blättern der Klausur Ihren Namen. Die Beantwortung der Aufgaben kann in (aussagekräftigen) Stichpunkten und mit beschrifteten Skizzen erfolgen. Falls der Platz bei den Aufgaben für die Antwort nicht ausreicht, dann benutzen Sie bitte die Rückseite des Blattes. Notenverteilung: 1.0 38-40 1.3 35-37 1.7 32-34 2.0 2.3 2.7 29-31 27-28 25-26 3.0 3.3 3.7 23-24 21-22 19-20 Bei Punktezahl zwischen Notenstufen wird aufgerundet. 4.0 17-18 4.3 10-16 4.7 5-9 Name: ________________________________ 2 Aufgabe 1: Transparenz (6 Punkte) Transparenz ist ein wichtiges Konzept bei verteilten Anwendungen. a) Ist die folgende Aussage richtig oder falsch? (mit kurzer Begründung) „(Hohe) Transparenz bei verteilten Anwendungen bedeutet, die Verteiltheit einer Anwendung für den Benutzer möglichst sichtbar zu machen“ b) Beschreiben Sie die Replikationstransparenz (replication transparency). c) Geben Sie ein Beispiel, wann eine größtmögliche Transparenz bei verteilten Anwendungen nicht sinnvoll ist. Name: ________________________________ 3 Aufgabe 2: Verzeichnisdienst LDAP (6 Punkte) Lightweight Directory Access Protocol (LDAP) ist ein Protokoll zum Zugriff auf einen Verzeichnisdienst. Beschreiben Sie das Informations- und das Namensmodell von LDAP. Name: ________________________________ 4 Aufgabe 3: Vektoruhren und Gruppenkommunikation (15 Punkte) Vektoruhren (logical vector clocks) sind ein Mittel zur Modellierung von Ereignissen einer verteilten Anwendung. a) Bestimmen Sie im nachfolgenden Beispiel die Veränderung der Werte für die Vektoruhren von TK1, TK2 und TK3. Die Vektoruhren seien jeweils mit dem Nullvektor initialisiert; die gestrichelten Pfeile repräsentieren den Nachrichtenaustausch zwischen Komponenten. (Hinweis: Zeichnen Sie die Werte an den Events der Teilkomponenten direkt in das Beispiel ein) b) Erläutern Sie eine Möglichkeit, die Auslieferung von Nachrichten an eine Gruppe von Prozessen total zu sortieren. D.h. alle Nachrichten sollen in einer festen Reihenfolge ausgeliefert werden. Name: ________________________________ 5 c) ISIS ist ein Softwaresystem, dessen Zielsetzung die Unterstützung von verteilten Prozessgruppen ist. Das cbcast Verfahren (causal broadcast) von ISIS realisiert eine virtuell synchrone Zustellung von Nachrichten an einzelne Gruppenmitglieder. Beschreiben Sie den Algorithmus des cbcast Verfahrens. Name: ________________________________ 6 Aufgabe 4: Verteilte Dateisysteme (6 Punkte) Gegeben sei ein verteiltes Dateisystem, das die Replikation von Dateien unterstützt. Der Zugriff auf die Dateikopien werde mit Hilfe eines Votierungsverfahrens (voting) geregelt. a) Beschreiben Sie den prinzipiellen Ablauf eines Votierungsverfahrens. b) Gegeben sei nun ein Votierungsverfahren mit 3 Servern und folgenden Eigenschaften: Replikationsgrad der Dateien REP = 3 Lesequorum R = 1 Schreibquorum W = 2 Markieren Sie zu den folgenden Aussagen, ob sie richtig oder falsch sind (ohne Begründung). (Hinweis zur Bewertung: Falsch markierte Antworten führen zu Punktabzug.) richtig falsch { { Das gegebene Votierungsverfahren ist geeignet, um einen gleichzeitigen Lese- und Schreibzugriff auf eine Datei zu verhindern { { Wenn von den 3 Servern nur 1 Server erreichbar ist (also 2 Server können keine positive Stimme abgeben), dann ist ein Schreibzugriff ausgeschlossen, aber ein Lesezugriff noch möglich { { Wenn einer der 3 Server ein Stimmengewicht von 2 hat (die anderen beiden Server haben das Stimmengewicht 1), dann muss für eine „WriteAll-Read-Any“ Strategie ein Schreibquorum W = 4 gewählt werden { { Allgemein gehören die Votierungsverfahren zu den optimistischen Verfahren der Nebenläufigkeitskontrolle (optimistic concurreny control) { { Ein optimistisches Verfahren zur Nebenläufigkeitskontrolle schließt einen Zugriff auf inkonsistente Daten grundsätzlich aus Name: ________________________________ 7 Aufgabe 5: Java RMI (7 Punkte) Java Remote Method Invocation (RMI) ermöglicht einen verteilten Methodenaufruf in einer Java Anwendung. a) Erläutern Sie die Schritte, die bei der Entwicklung einer Java RMI Anwendung nötig sind. b) Was ist der prinzipielle Unterschied der Vorgehensweise bei der Entwicklung einer RMI Anwendung im Vergleich zu Corba oder traditionellen RPC-Systemen?