Intelligente Datenreplikation in dezentralen sozialen Netzen

  • Beschreibung

    Soziale Netzwerke wie Facebook oder Foursquare sind aus unserer heutigen Welt nicht mehr wegzudenken. Üblicherweise handelt es sich dabei um Webdienste, die mit Hilfe von zentralen Servern realisiert werden. Dies bringt für den Benutzer diverse Nachteile mit sich: Zum einen ist er für die Nutzung auf Internetkonnektivität angewiesen, zum anderen wirft die zentrale Datenspeicherung bei einem Drittanbieter Fragen der Privatsphäre auf.

    SODESSON ist eine Middleware, die den Austausch von Daten zwischen den Geräten befreundeter Nutzer selbstorganisiert, möglichst lokal und kostengünstig realisieren soll. Sie verwendet dabei einen Publish-Subscribe-Mechanismus, bei dem ein Gerät Themen abonniert, zu denen es aktuell gehalten werden soll (z.B. „Fotoalben von Bob“). Geht man davon aus, dass sich befreundete Nutzer vertrauen, häufig am selben Ort treffen und untereinander ihre Geräte kennen, ergeben sich völlig neue Möglichkeiten für effiziente und sichere P2P-Kommunikation.

    Aufgabenstellung

    Deine Aufgabe ist es, ein Kommunikationsprotokoll für SODESSON zu entwerfen, das gezielt die sozialen Bindungen der Gerätebesitzer und ihr Verhalten mit einbezieht. Bei dem Publish-Subscribe-Verfahren stellt sich vor allem die Frage, wann Daten übertragen werden sollen. Dabei müssen Parameter wie die Datengröße, Netzanbindung und Verfügbarkeit der beteiligten Geräte berücksichtigt werden. Eine Entscheidungsfunktion soll dann die optimale Art und Zeitpunkt der Kommunikation wählen. Dieses Protokoll sollst du dann für den P2P-Simulator OverSim implementieren.

    Arbeitsumgebung

    Dir stehen Linux-PCs in einem klimatisierten Pool-Raum zur Verfügung, gleich neben Kaffeevollautomat, Süßigkeiten und Kaltgetränken. Mit deiner Implementierung bringst du dann später leistungsstarke Simulations-PCs mit massenhaft RAM und CPU-Cores so richtig ins Schwitzen.

    Voraussetzungen

    Du bringst großes Interesse an sozialen Netzwerken mit und verlierst bei dem Protokollentwurf bei der nötigen Detailarbeit nicht den Blick für das Gesamtbild. Du hast schonmal über die verpflichtenden Uni-Projekte hinaus programmiert, idealerweise in C++. Grundwissen über die Funktionsweise von P2P-Netzen ist hilfreich, aber nicht feste Voraussetzung.