Intelligente dezentrale Datenreplikation in 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. Nicht erst seit der NSA-Affäre wirft die zentrale Datenspeicherung bei einem Drittanbieter Fragen der Privatsphäre auf. Bei einem dezentralen Ansatz wiederum muss die individuelle Leistungsfähigkeit und Verfügbarkeit der beteiligten Geräte berücksichtigt werden. Darüber hinaus kann ein Angreifer durch Metadaten Kommunikationsmuster zwischen Benutzern ableiten, selbst wenn der eigentliche Inhalt der Daten verschlüsselt ist.

    SODESSON ist eine dezentrale Middleware, die den Austausch von Daten zwischen den Geräten befreundeter Nutzer selbstorganisiert und ressourcenbewusst 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“). Dabei sollen die Daten nur zwischen Geräten übertragen werden, deren Besitzer tatsächliche Abonnenten sind. Geht man davon aus, dass Abonnenten derselben Themen auch häufig miteinander befreundet sind und untereinander ihre Geräte und deren Leistungsfähigkeiten kennen, können sich diese gegenseitig bei der Datenverteilung helfen. Dadurch ergeben sich völlig neue Möglichkeiten für effiziente und private 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. Da es sich um ein dezentrales Protokoll handelt, stellt sich die Frage, zwischen welchen Geräten zu welchem Zeitpunkt Daten übertragen werden. Dabei müssen 

    • ressourcenbezogene Parameter wie die Datengröße, Netzanbindung und Geräteverfügbarkeit 

    und

    • soziale Vertrauensbeziehungen der Nutzer

    berücksichtigt werden. 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.