Giter Site home page Giter Site logo

progaufgvup's Introduction

Abschlussprojekt zur Vorlesung „Verteilte und Parallele Systeme“

In der Vorlesung haben Sie das Chord-System, eine Distributed Hash Table (DHT), kennengelernt. Im Rahmen des Abschlussprojektes sollen Sie eine Chord-DHT (in Java oder C) selbst implementieren. Abgabe des Quelltextes, sowie eines lauffähigen Programms bis zum 14.7.2013. Für die Zulassung zur Prüfung ist das Abschlussprojekt obligatorisch notwendig. Folgende Funktionalität soll realisiert werden:

  1. Ein einfaches Chord-System, welches per Zufall erzeugte und interaktiv eingegebene Daten speichert, welche dann über die DHT gesucht werden können. Hierzu ist eine Hashfunktion, der Knotenbeitritt, sowie das Stabilization-Protokoll erforderlich. Eine Finger-Tabelle und das Maskieren von Knotenausfällen sind nicht notwendig. Für die Kommunikation zwischen den Knoten sollen TCP-Verbindungen verwendet werden.

  2. Das Programm soll vier Parameter auf der Konsole entgegen nehmen:

    • ip: die eigene IP-Adresse
    • port: der eigene Port
    • cip: die IP-Adresse eines bereits teilnehmenden Knotens
    • cport: der Port eines bereits teilnehmenden Knotens Der erste Knoten wird lediglich mit den beiden Parametern (-ip und -port) gestartet, bei allen weiteren Knoten müssen beim Start zusätzlich die beiden Parameter (-cip und -cport) angegeben werden.
  3. Es soll möglich sein, das Programm auf einem physikalischen Rechner mehrfach auszuführen, sodass ein komplettes Chord-System auf einem Rechner simuliert werden kann. Erstellen Sie zwei Skripte, welche 4 respektive 8 Knoten auf einem Rechner automatisch starten. Dies erleichtert Ihnen das Testen und uns die Abnahme am Ende.

  4. Ferner soll es eine textbasierte Schnittstelle zum interaktiven Testen des Chord-Systems geben. Diese soll jeder Knoten, neben sinnvollen Ereignisausgaben, anbieten. Die Schnittstelle soll drei Befehle zur Verfügung stellen:

    Befehl Wert Beschreibung
    put value Speichert die Zeichenkette value im Chord-System
    Ausgabe: hash Hash-Wert unter dem die Daten gespeichert wurden
    node Knoten (ID, IP und Port) auf dem Daten gespeichert wurden
    get hash Sucht die Daten (Zeichenkette) zu dem gegebenen Hashwert.
    Ausgabe: value Zeichenkette des gesuchten Hash-Wertes.
    node Knoten (ID, IP und Port) von dem Daten gelesen wurden.
    list Gibt alle lokal gespeicherten Daten mit Hashwerten aus.
    Ausgabe: values Die Daten.

Der Quelltext und das lauffähige Programm müssen bis zum 14.07.2013, 23.59Uhr per Mail an Herrn Florian Klein geschickt werden. Spätere Abgaben können nicht berücksichtigt werden! Zusätzlich muss das lauffähige Programm in der letzten Übungsstunde, am 18.07.2013, demonstriert werden. Die genaue Uhrzeit der jeweiligen Demonstration wird nach Abgabe aller Programme bekannt gegeben. Es ist möglich das Abschlussprojekt paarweise zu bearbeiten. In diesem Fall muss allerdings klar erkennbar sein, wer welche Arbeiten erledigt hat (beide Namen im Kopf jeder Quellcodedatei ist nicht ausreichend!). Außerdem muss vor Beginn des Abschlussprojektes bei Herrn Florian Klein angemeldet werden, welche beiden Studenten zusammen arbeiten werden.

progaufgvup's People

Contributors

kintor avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.