Titel: Ausgewählte Themen Verteilter Systeme
Englischer Titel: Selected Topics in Distributed Systems
Typ: Seminar, Modul
Kürzel / Nr. / Modulnr.: ATVS / CS5900.113 / ?
SWS / LP: 2S / 4LP
Dozent: Prof. Dr. Frank Kargl, Prof. Dr.-Ing. Franz J. Hauck
Betreuer: Stefan Dietzel,Steffen Kächele, Benjamin Erb, Stephan Kleber, Vladimir Nikolov, Sven Schober, Christian Spann, Rens van der Heijden
Termine: Mittwochs, 14.00 – 16.00 Uhr, O27-122
Vorbesprechung: Unverbindliche Vorbesprechung am Mittwoch, 17.04.2013, 14.15 Uhr im Raum O27-122.
Lernplattform: Die Seminarplätze werden per ILIAS vergeben. Bitte melden Sie sich dazu im ILIAS-Kurs an.
Themenvergabe: Die Themenvergabe erfolgt während der Vorbesprechung nach Anmeldereihenfolge im ILIAS-Kurs. Alternativ können Themen vorab in Absprache mit dem jeweiligen Betreuer vergeben werden, wir empfehlen aber die Vorbesprechung abzuwarten, um einen besseren Überblick über die Themen zu erhalten.

Themen

Software Defined Networking

Betreuer: Benjamin Erb

Software Defined Networking ermöglicht die Programmierung von Netzwerkkomponenten über offene Schnittstellen wie OpenFlow. Dadurch können zum Beispiel Netzwerk-Infrastrukturen virtualisiert oder neuartige Netzwerkdienste implementiert werden. Ebenso können Anwendungen über APIs Zugriff auf die Netzwerk-Infrastruktur bekommen.
Das Disruptor Pattern

Betreuer: Benjamin Erb

Das Disruptor Pattern bietet eine Alternative zu traditionellen Queues für die Inter-Thread-Kommunikation und wurde ursprünglich für "high-frequency trading" entwickelt. Es zielt hierbei insbesondere auf hochperformanten Durchsatz ab und orientiert sich an modernen CPU-Architekturen. Damit ist der Disruptor auch allgemein für nebenläufige Programmierung interessant.
Time-Warp Algorithmus für nebenläufige Simulationen

Betreuer: Benjamin Erb

Der Time-Warp Algorithmus stellt einen populären Mechanismus für die Ausführung von nebenläufigen, diskret-ereignisbasierten Simulationen dar. Er ermöglicht eine optimistische Ausführung bei gleichzeitiger Wahrung von zeitlicher Konsistenz.
Gegenmaßnahmen für Angriffe auf Anonymitätsnetze

Betreuer: Rens van der Heijden

Ziel dieser Arbeit ist, Angriffe auf Anonymitätsnetze, wie z.B. TOR, zu besprechen. Die Arbeit soll erklären, welche Sicherheitsziele angegriffen werden. Weiterhin sollen mögliche Gegenmaßnahmen erklärt werden. Es gibt die Wahlmöglichkeit, entweder detailliert auf 1-2 Angriffe einzugehen oder etwas weniger detailliert einen breiteren Bereich von Angriffen zu erklären.
Privacy-preserving Biometrics

Betreuer: Rens van der Heijden

In diese Arbeit sollen privacy-preserving biometrische Systeme besprochen werden. Hauptziel der Arbeit soll sein, zu erklären, warum man diese Systeme überhaupt braucht, und wie diese Systeme Privacy de(r/s) Benutzer(in/s) und Sicherheit des Systems beinflussen.
Bitcoins

Betreuer: Stefan Dietzel

(vergeben) Bitcoins sind eine neuartige, elektronische, verteilt berechnete Währung. Ziel der Arbeit ist es, einen Überblick über Bitcoins im allgemeinen sowie die verteilte Berechnung im speziellen zu geben.
Einsatz von Physically Unclonable Functions im Bereich IT-Sicherheit

Betreuer: Stephan Kleber

Physically Unclonable Functions (PUFs) nutzen phyikalische Eigenschaften einzelner Hardwareinstanzen aus, um spezifisches, einzigartiges und nicht nachahmbares Verhalten von Algorithmen auf diesem einen Gerät zu erlangen. Insbesondere im Bereich der IT-Sicherheit ist ein solches Verhalten für Attestierung und spezielle Nutzung von Verschlüsselung sehr wertvoll. Diese Arbeit soll die aktuelle Forschung in diesem Bereich im Überblick beschreiben und interessante Anwendungsweisen dieses Konzeptes herausarbeiten.
Wireless Physical Layer Security

Betreuer: Stephan Kleber

Zu einem umfassenden Verständnis von sicherer Kommunikation gehört auch die Betrachtung der grundlegendsten Schicht der Datenübertragung: des "Physical Layers." Tatsächlich bietet gerade drahtlose Kommunikation, mit ihrem öffentlichen Medium, ein weites Spektrum an Sicherheitsproblemen, gerade durch ihre physikalischen Eigenschaften ergeben sich aber auch Möglichkeiten, um interessante, neuartige Lösungen für ebendiese Probleme zu entwickeln. Solche Lösungsstrategien sollen durch diese Arbeit im Überblick zusammengefasst und nach eigenem Interesse vertiefend betrachtet werden.
Mobile Phone Security

Betreuer: Stephan Kleber

(vergeben) Je ubiquitärer und je leistungsfähiger die Sensorik und die Hardware von Smart Phones wird, desto attraktiver werden diese Plattformen für Angreifer. Ziel dieser Arbeit ist es die Frage zu beantworten, warum dies der Fall ist und Ansätze wie AppFence und TaintDroid in diese Antwort einzuordnen.
Botnets: Verteilungsaspekte und Sicherheit

Betreuer: Stefan Dietzel

(vergeben) Botnets werden von Angreifern benutzt, um große Mengen von schlecht geschützten Rechnern für ihre Zwecke zu missbrauchen. Ein bekanntes Beispiel ist der Versand von SPAM-E-Mails. Um große Mengen von Rechnern zu koordinieren, sind verteilte Kommunikationsmechanismen notwendig. Um Botnets vor der Übernahme durch andere zu schützen wird die Kommunikation oft verschlüsselt. Ziel der Arbeit ist es, verschiedene Ansätze und aktuelle Strategien zu analysieren und einen Überblick zu geben.
Simulation und Testen verteilter Anwendungen

Betreuer: Christian Spann

(vergeben) Die Erforschung und Entwicklung verteilter Anwendungen stellt eine Vielzahl komplexer Herausforderungen an uns Informatiker. Für die Fehlersuche und parametrisierung muss ein solches System deshalb lokal und verteilt ausgiebig getestet werden. In diesem Seminar soll eine Recherche vorhandener Techniken und Anwendungen, welche diesen Prozess unterstützen durchegführt und die Resultate vorgestellt werden
Effiziente Programmiersprachen für verteilte Algorithmen

Betreuer: Christian Spann

Verteilte Algorithmen zeichnen sich häufig durch wiederkehrenden Nachrichtenverkehr zwischen verschiedenen Knoten und die verteilte nebenläufige Behandlung dieser Nachrichten aus. In klassischen imperativen Programiersprachen wie Java ist die Implementierung solcher Dienste meist nicht sehr elegant. Ziel des Seminars ist die Untersuchung Recherche von Design Patterns und alternativen Programmiermodellen für verteilte Algorithmen. 
Application-layer Multicast

Betreuer: Sven Schober

IP-Multicast ist eine relativ alte Idee die von 1-zu-N-Kommunikation erzeugte Bandbreitenlast zu optimieren. Dabei muss die Datenquelle nicht N Ströme versenden, sondern kann, unterstützt durch Verteilerknoten im Netzwerk (Multicast-fähige Router), die Duplikation der zu versendenden Paket auf ein Minimum reduzieren. Die Voraussetzung von Infrastrukturknoten im Internet hat die weite Verbreitung von IP-Multicast bis heute verhindert. Application Layer Multicast (ALM) ist der Versuch die geschilderte Funktionalität auf Anwendungsebene nachzubilden. End-Systeme nehmen dabei die Stelle der vorher im Netz befindlichen Verteilerknoten ein. Die sich dabei ergebenden Herausforderungen sind Ziel reger Forschungsaktivtät. Dieses kann synoptisch (Überblicksartige Darstellung vorhandener Ansätze), als auch fokussiert (Darstellung eines Ansatzes im Detail) bearbeitet werden.
Moderne Bandbreitenmesstechniken

Betreuer: Sven Schober

Die Verfügbare Bandbreite von einem Internet-Host zu einem anderen ist eine schwer bestimmbare Größe. Zum einen ist sie abhängig vom gewählten Pfad, zum anderen von den physischen Gegebenheiten jedes einzelnen Links entlang dieses Pfades. Desweiteren beeinflußt Drittverkehr (seien es Anwendungen auf den Meßendpunkten, oder völlig unbeteiligte Hosts, welche Pfadsegmente mit dem gemessenen teilen) erheblich die Messwerte. Aufgrund dieser Probleme wurden minimalinvasive Meßverfahren entwickelt, welche die verfügbare Bandbreite mit möglichst geringem Overhead zu bestimmen versuchen. Ziel dieses Themas ist es einen Überblick über aktuellste Entwicklungen in diesem Gebiet zu geben. 
Softwareverteilungsalgorithmen für Datenzentren

Betreuer: Steffen Kächele

Das Auslagern von Software in entfernte Datenzentren gewinnt zunehmend an Bedeutung (Cloud Computing). Hierbei werden durch Einsatz von Virtualisierung gewöhnlich Knoten von mehreren Nutzern gleichzeitig verwendet. Die Auswahl der Computing-Knoten sowie das Deployment der Software geschieht in der Regel für den Nutzer völlig transparent. In dieser Seminararbeit sollen Algorithmen vorgestellt werden, welche beim Installieren oder Skalieren von Software passende Knoten bestimmen.
OpenShift

Betreuer: Steffen Kächele

 

PaaS-Plattformen bieten ihren Nutzern eine Umgebung, in welcher sie eigene Software in entfernten Datenzentren ausführen können. In dieser Seminararbeit soll die OpenSource PaaS-Plattform OpenShift vorgestellt werden.
Resource Reclaiming in Echtzeitsystemen

Betreuer: Vladimir Nikolov

Reservierungsbasierte Echtzeitsysteme arbeiten mit abstrakten Ressourcenkapazitäten, um für zeitliche Isolierung zwischen Tasks garantieren zu können. Diese Kapazitäten werden in einer offline-betriebenen Analyse des Taskverhaltens ermittelt und den Tasks zugewiesen. Zur Laufzeit jedoch kann das Verhalten, aufgrund diverser unvorhersehbarer Faktoren, variieren. Benötigen Tasks weniger Ressourcen als zuvor angenommen, so werden im Gesamtsystem Ressourcen verschwendet. Resource Reclaiming ermöglicht die dynamische Anpassung der Kapazitäten bei pessimistischen Annahmen. Die prominentesten Algorithmen hierzu sind CASH und GRUB. Diese Algorithmen sollen hier kurz vorgestellt und gegenübergestellt werden.
Verteilte Dateisysteme

Betreuer: Jörg Domaschka

Verteilte Dateisysteme sind seit langem Forschungsthema in Bereich der verteilten Systemen. Eine größere Beachtung finden sie allerdings erst seitdem Big Data und Cloud Computing einem Hype unterworfen sind. In dieser Seminararbeit sollen verschiedene verteilte Dateisysteme sowie Cluster Dateisysteme untersucht und vergleichend gegenübergestellt werden. Typische Klassifizierungsmerkmale sind zum Beispiel Fehlertoleranz, Skalierbarkeit, API und Konsistenz.

(Distributed) Complex Event Processing

Betreuer: Jörg Domaschka

Beim event processing handelt es sich um einen Ansatz einen Strom von Events zu analysieren und aus diesem Schlussfolgerungen zu ziehen. Complex Event Processing (CEP) betrachtet dabei zusätzlich Daten aus verschiedene Quellen. Viele kommerzielle Produkte zur Umsetzung von CEP, aber auch Forschungsarbeiten basieren auf einem Systemmodell, in dem die Event-Analyse auf nur einem Knoten stattfindet, was notwendigerweise eine Begrenzung des maximalen Durchsatzes zur Folge hat. In dieser Seminarabeit soll zunächst CEP anhand existierender Systeme vorgestellt werden. Daneben sollen Event Processing Frameworks herangezogen werden und mit CEP Systemen hinsichtlich Komplexität, Ausdrucksmächtigkeit und Skalierbarkeit verglichen werden.
Deterministische Anwendungen

Betreuer: Jörg Domaschka

Eine deterministische Anwendung hat die Eigenschaft, dass sie bei jedem Lauf die gleichen Ergebnisse liefert, wenn man sie mit dem gleichen Initialzustand startet und ihr die selben Eingaben zuführt. Determinismus ist sowohl beim Debuggen als auch bei der Ausführung nebenläufiger Programme eine wünschenswerte Eigenschaft. Daneben ist er essentiell für die Anwendung bestimmter Fehlertoleranztechniken. In dieser Seminararbeit sollen existierende Ansätzeaufgezeigt werden wie Nicht-Determinismus sowohl in Hinblick auf die Dateneingabe als auch hinsichtlich Nebenläufigkeit beseitigt werden kann.

Beschreibung und allgemeine Angaben, Modulbeschreibung

Einordnung in die Studiengänge: Informatik, BSc.: Seminar
Medieninformatik, BSc.: Seminar
Software-Engineering, BSc.: Seminar

Informatik, Dipl.: Hauptseminar
Medieninformatik, Dipl.: Hauptseminar
(siehe auch unsere Hinweise zu Seminaren)
Lehr- und Lernformen: Ausgewählte Themen Verteilter Systeme, 2S, 4LP
Verantwortlich: Prof. Dr. Frank Kargl
Unterrichtssprache: Deutsch
Turnus / Dauer: jedes Semester / ein volles Semester
Vorraussetzungen (inhaltlich): Grundlagen der Rechnernetze, Proseminar
Vorraussetzungen (formal): -
Grundlage für (inhaltlich): -
Lernergebnisse: Studierende vertiefen exemplarisch an einem Teilgebiet der Informatik ihre Kenntnisse im selbstständigen Arbeiten mit wissenschaftlicher Literatur sowie im mündlichen und schriftlichen Präsentieren von fachwissenschaftlichen Inhalten. In Diskussionen wird die Fähigkeit zur kritischen Reflektion geübt. Im fachlichen Teil des Seminars stehen aktuelle Themen der Verteilten Systeme im Fokus. Abhängig vom Thema lernen Studierende ein konkretes System oder ein Konzept Verteilter Systeme kennen. Sie können diese Systeme in einen größeren Kontext einordnen und deren Vor- und Nachteile selbständig ableiten.
Inhalt: Zu Beginn des Seminars werden Themen des wissenschaftlichen Arbeitens (z.B. Literaturrecherche, Schreiben einer Publikation, Präsentationstechniken) eingeführt, um den Studenten eine methodische Hilfestellung zu geben. Die Erstellung der eigentlichen Ausarbeitung und Präsentation erfolgt in individueller Betreuung. Die Ergebnisse werden in einer Abschlusspräsentation vorgestellt.
Literatur: Wird je nach Thema zu Beginn der Veranstaltung bekannt gegeben.
Bewertungsmethode: Leistungsnachweis über erfolgreiche Teilnahme. Diese umfasst Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit.
Notenbildung: unbenotet
Arbeitsaufwand: Präsenzzeit: 30 h
Vor- und Nachbereitung: 90 h
Summe: 120 h