06.11.2014 Aufrufe

Hinweise Aufgabe 1 Aufgabe 2 Aufgabe 3 (*) - TU Berlin

Hinweise Aufgabe 1 Aufgabe 2 Aufgabe 3 (*) - TU Berlin

Hinweise Aufgabe 1 Aufgabe 2 Aufgabe 3 (*) - TU Berlin

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Lade das Quellcode-Archiv uebung2.tar.gz von der Vorlesungswebseite und entpacke<br />

es. Mittels File → Import kannst du das Projekt z.B. in Eclipse importieren.<br />

1. In der Vorlesung haben wir die Definitionen von Charakteristischer Pfadlänge und<br />

dem Clustering-Koeffizienten kennengelernt. Im ersten Schritt sollen diese beiden<br />

Metriken implementiert werden.<br />

Du findest im Projekt ein Paket p2p.uebung2.graph, das einen sehr simplen ungerichteten<br />

Graphen implementiert. Desweiteren findest Du ein Paket p2p.uebung2.<br />

generators mit einem Interface GraphGenerator mit dem Graphen generiert werden<br />

können.<br />

Du findest ein Interface p2p.uebung2.analysis.Analyzer, mit zwei Methoden<br />

zum Bestimmen von Charakteristischer Pfadlänge und dem Clustering-Koeffizienten.<br />

Implementiere dieses Interface in der Klasse p2p.uebung2.analysis.AnalyzerImpl.<br />

Führe den JUnit Test p2p.uebung2.analysis.AnalyzerTest im Ordner test aus.<br />

Wenn er erfolgreich ist, sollte diese <strong>Aufgabe</strong> erledigt sein.<br />

Tipp: Für die charakteristische Pfadlänge musst du die kürzesten Wege zwischen<br />

zwei Punkten bestimmen. Dies ist mit einer Breitensuche möglich.<br />

2. In der Vorlesung haben wir weiterhin, die Generierung von Graphen nach dem<br />

Barabási-Albert Modell und dem Watts-Strogatz Modell kennengelernt.<br />

Implementiere diese Modelle in den Klassen p2p.uebung2.generators.Graph-<br />

GeneratorBarabasiAlbert und p2p.uebung2.generators.GraphGeneratorWatts-<br />

Strogatz. Die JUnit Tests im Paket p2p.uebung2.generators können zum Testen<br />

genutzt werden. Es könnte insb. beim passieren Watts-Strogatz Modell passieren,<br />

dass die Ergebnisse leicht abweichen, wenn das rewiring unterschiedlich implementiert<br />

wird.<br />

Tipp: Die Klassen GraphGeneratorGnp und GraphGeneratorRing zeigen, wie man<br />

Graphgeneratoren erzeugt.<br />

3. Nutze die Klassen aus (a) und (b) und vergleiche die Ergebnisse mit denen aus der<br />

Tabelle in den Folien (Eigenschaften von Gnutella, Untersuchung von 2000).<br />

<strong>Aufgabe</strong> 4<br />

In der Vorlesungen habt ihr die grundlegenden Operationen von distributed hash tables<br />

(DHTs) kennengelernt:<br />

• Jeder Knoten im Netz ist für einen bestimmten Bereich von IDs zuständig.<br />

• Es gibt eine Routing-Funktion, die eine Nachricht an einen Knoten sendet, der für<br />

eine gegebene ID zuständig ist.<br />

Überlege, wie ein Instant-Messenger-Programm mit Hilfe eines DHT-Netzes realisiert<br />

werden kann. Dabei soll folgende Funktionalität vorhanden sein (analog zu Skype):<br />

2

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!