Ausgewählte Themen in Verteile Systeme

Wintersemester 2013/2014

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, Jörg Domaschka, Benjamin Erb, Steffen Kächele, Stephan Kleber, Christian Spann, Rens van der Heijden
Termine:Mittwoch, 14.00 – 16.00 Uhr, O27-341
Vorbesprechung:Gemeinsame Vorbesprechung der Seminare ATVS und RTDS am Montag, 14.10.2013, 12.30 Uhr im Raum O27-341.
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

Graphenbasierte Computing-Frameworks
Betreuer: Benjamin Erb
(Thema bereits vergeben)
Benjamin Erb

Neben klassischen Batch-Processing-Plattformen wie Hadoop und speziellen graph-basierten NoSQL-Datenbanken wie neo4j gibt es auch dedizierte Frameworks, um auf graph-basierten Daten Berechnungen durchzuführen. In dieser Seminararbeit sollen solche Frameworks, wie zum Beispiel GraphX, Pregel oder PowerGraph, vorgestellt und erläutert werden.

Erlang's OTP Library
Betreuer: Benjamin Erb
(Thema bereits vergeben)

Erlang ist eine funktionale Programmiersprache, die insbesondere für nebenläufige und verteilte Anwendungen zunehmend Verbreitung findet. Ursprünglich für Telefonie-Anwendungen entworfen, stellt Erlang mit Open Telecom Platform (OTP) eine Standardbibliothek und Framework für verteilte, hochverfügbare Systeme bereit. In dieser Seminararbeit sollen die generischen Konzepte von OTP vorgestellt werden.
Flow-based Programming
Betreuer: Benjamin Erb
(Thema bereits vergeben)

Flow-based Programming ist ein Programmierparadigma, welches Anwendungen in Form von vernetzten Komponenten modelliert, die via Message Passing Daten austauschen. Als eine spezielle Variante von Dataflow Programming erlaubt dieses Paradigma unter anderem auch deklarative Nebenläufigkeit. Flow-based Programming ist durch Spracherweiterungen und Frameworks mittlerweile auch in mehreren Mainstream-Programmiersprachen verfügbar und ermöglicht unter anderem die Entwicklung von Web-Applikationen.
Event Sourcing & Command-Query Responsibility Segregation
Betreuer: Benjamin Erb
(Thema bereits vergeben)
Event Sourcing (ES) und Command-query Responsibility Segregation (CQRS) stellen zwei neuartige architektonische Muster für verteilte Softwareanwendungen dar. ES betrachtet den Zustand der Geschäftslogik nicht als direkt änderbaren Wert, sondern vielmehr als Resultat einer Reihe von gespeicherten Ereignissen (Events). CQRS ergänzt ES und ersetzt das traditionelle Lesen und Schreiben von Anwendugszuständen und trennt zwischen zustandsändernden Kommandos und Queries zur Zustandsabfrage. Ziel der Arbeit ist ein Überblick über beide Muster sowie eine Einordnung in verteilte Architekturen und verwandte Forschungsgebiete.
(Distributed) Complex Event Processing
Betreuer: Jörg Domaschka

(Thema bereits vergeben)

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.
Vereinheitlichung für die Beschreibung und Programmierung von Cloud Anwendungen
Betreuer: Jörg Domaschka

(Thema bereits vergeben)

In den letzten Jahren sind eine Vielzahl von Cloud Platformen entstanden, die auf einer der drei Schichten Software as a Service, Platform as a Service und Infrastructure as a Service operieren. Clouds auf einer der Schichten bieten oft eine ähnliche Funktionalität an, verwenden aber unterschiedliche Sprachen um die auszubringende Cloud-Anwendung bzw. die zur Verfügung stehenden Cloud Resourcen zu beschreiben. Gleiches gilt für die programmiersprachlichen Schnittstellen um auf die Funktionalität einer Cloud Platform zuzugreifen. In diesem Thema sollen Ansätze betrachtet werden, die zum Ziel haben die Beschreibung von Cloud Resourcen sowie Cloud Anwendungen  aber auch die Programmierschnittstelle zu vereinheitlichen.
Vergleich von Cloud Taxonomien
Betreuer: Jörg Domaschka und Steffen Kächele

(Thema bereits vergeben)

Die Arbeitsgruppe um Prof. Hauck hat vor kurzem einen Beitrag für eine Konferenz eingereicht, der eine Taxonomie für Cloud Systeme vorschlägt. In diesem Papier wird versucht die drei Aspekte Computing, Storage und Netzwerk voneinander zu trennen und für den jeweiligen Aspekt verschiedene Abstraktionsebenen einzuführen, auf denen Dienste angeboten werden können. Als Beispiel zeigt das Papier wie die Amazon Cloud Dienste auf diese Art kategorisiert werden können.

Im Seminar sollen weitere Angebote von anderen Cloud Anbietern klassifiziert und daneben noch zusätzliche Aspekte von Cloud Diensten (wie zum Beispiel Sicherheit) identifiziert werden, an denen die vorgeschlagene Taxonomie nicht ausreicht und folglich noch erweitert werden muss. Im Zuge dessen soll nach bestehenden Taxonomien/Nomenklaturen gesucht werden, die die fehlenden Aspekte abbilden und diese Taxonomien mit der vorgeschlagenen  vergleichen. 
CoreOS
Betreuer: Steffen Kächele
CoreOS ist ein Server Betriebssystem, welches relativ einfach und problemlos mit Aktualisierungen versorgt werden kann. Durch ein tiefgreifendes Container-Prinzip, wird hierbei vermieden, dass es zu Inkompatibilitäten zu den auf dem Server laufenden Anwendungen kommt. Container können zur Aktualisierung auf andere Rechner verschoben werden. Nach Vorstellung der CoreOS-Entwickler sollen so Server-Betriebssysteme ähnlich flexibel mit neuen Funktionen ausgestattet werden können, wie es bei heutigen Browsern der Fall ist.

Cloud Dienst für Qt
Betreuer: Steffen Kächele

(Thema bereits vergeben)

Digia betreibt mit Qt eine C++ Bibliothek zur plattformübergreifenden Entwicklung von GUI-Anwendungen. Unter dem Namen BaaS (Backend as a Service) stellt der Betreiber nun einen Dienst vor, mit welchem Entwickler sehr schnell ein Backend für ihre Qt and QML Anwendung erstellen können. Die Qt-Cloud nimmt ihnen dabei die Wartung von Server und Datenbanken, Skalierbarkeit sowie das Benutzermanagement ab. Im Rahmen dieser Seminararbeit sollen die Architektur, Funktionsweise und Entwicklung von Frontend Anwendungen mithilfe des neuen Backend Dienstes vorgestellt werden.
Automatische Analyse von Protokollen (Protocol Reverse-Engineering)
Betreuer: Stephan Kleber

(Thema bereits vergeben)
Bei Sicherheitsanalysen liegen in vielen Fällen Mitschnitte von Kommunikation oder kommunizierende Geräte vor, deren Protokoll vollkommen unbekannt ist. Zur Analyse und Rekonstruktion des Protokolls einer solchen Kommunikation sind nun verschiedene Ansätze denkbar. Neben der reinen statischen Analyse der Mitschnitte ist es in manchen Fällen möglich den Binärcode zumindest eines des Kommunikationspartners zu analysieren oder selbst generierte Pakete zu senden, deren Auswirkungen auf die kommunizierenden Entitäten beobachtet werden können. Tools wie "Discoverer", "ScriptGen" und "Dispatcher" stellen Vertreter dieser Ansätze dar. Ziel dieser Arbeit soll sein die Stärken und Schwächen der einzelnen Ansätze herauszuarbeiten und darzustellen, wo deren Grenzen beim Reverse-Engineering eines Protokolls liegen.
Binary Instrumentation
Betreuer: Stephan Kleber
Zur dynamischen Analyse von Programmen kann die sogenannte Binary Instrumentation verwendet werden. Hierbei werden mit unterschiedlichen Verfahren Hooks in das Programm eingebracht, die auf bestimmte Funktionsaufrufe reagieren und diese Protokollieren können, ohne den Programmablauf selbst zu beeinflussen. Auf gewisse Weise handelt es sich hierbei um den komplementären Ansatz zu Taint Tracking, das zur Verfolgung von Datenflüssen eingesetzt wird. Mit geegneter Prozessorunterstützung ist es sogar möglich solche Hooks auf eine Binärdatei anzuwenden, ohne dass diese rekompiliert werden muss. Ein Beispiel für ein solches Tool ist PIN, das von Intel entwickelt wurde. Diese Arbeit soll die Konzepte und Grundlagen von Binary Instrumentation darstellen und dazu PIN zur Veranschaulichung nutzen.
Privacy-Risiken durch Sensorik von Mobilgeräten
Betreuer: Stephan Kleber

(Thema bereits vergeben)
Eine Vielzahl von Sensoren begleitet uns in Form eines Smartphones fast auf Schritt und Tritt. Dabei ist uns häufig gar nicht klar wie detailliert die Messungen dieser Sensoren sind und was wir damit an persönlichen Informationen preisgeben. Dabei können Angreifer unerwarteten Nutzen aus GPS, Kamera, Beschleunigungssensoren, Magnetfeldsensoren, Helligkeitssensoren und dergleichen ziehen. Daneben können auch interne Datenbanken wie Kontakte und Kalender als virtuelle Sensoren betrachtet werden. All dies macht Smartphones zu einem attraktiven Ziel für Angreifer, die Profilinformationen über den Nutzer generieren wollen. Ziel dieser Arbeit ist es, die verschiedenen Gefährungsarten der Privacy durch die einzelnen Sensoren zu formulieren und Beispiele für entsprechende Angriffe in der Literatur zu finden.
Angriffe auf Distance Bounding Protokolle
Betreuer: Stephan Kleber

(Thema bereits vergeben)
Distance Bounding Protokolle sollen dazu in der Lage sein, einer Entität "Prover" nachzuweisen, dass sich diese physisch in der Nähe einer anderen Entität "Verifier" befindet. Ein Anwendungsfall sind Keyless Entry Systeme, die den Zugang zu Räumen oder Fahrzeugen kontaktlos ermöglichen. Neuere Untersuchungen lassen jedoch Zweifel an der Eignung bekannter Distance Bounding Schemata aufkommen, den geforderten Nachweis fälschungssicher erbringen zu können. Ziel dieser Arbeit soll sein, die vorgebrachten Zweifel kritisch zu hinterfragen und gegen Literatur abzuwägen, die im Gegenteil behauptet, die Modelle, gegen welche solcherlei Beweise geführt wurden, seien zu stark.
Two-Factor-Authentication
Betreuer: Stefan Dietzel

(Thema bereits vergeben)

Immer mehr Dienste reagieren auf mögliche Schwachstellen von Passwörtern und führen zusätzliche Identifikationsmerkmale ein. Prominente Beispiele sind z.B. Google, Dropbox, Github. Diese Identifikation durch sowohl ein klassisches Passwort, als auch ein weiteres Merkmal wird Two-Factor-Authentication genannt. Während Passwörter ein nur dem Benutzer bekanntes Geheimnis ("something you know") sind, wird als zweites Merkmal oft ein Gegenstand genutzt, der sich im Besitz des Benutzers befindet ("something you have"). Durch die Kopplung an einen physischen Gegenstand wird die ungewollte wie auch die gewollte Weitergabe an Dritte erschwert. Ziel der Arbeit ist es, einen Überblick über Two-Factor-Authentication Mechanismen (etwa TOTP, HOTP, Ubikey) sowie proprietäre Systeme (etwa sogenannte Wish-It-Was-Two-Factor Systeme, SMS-Verifikation) zu geben und deren Sicherheitsimplikationen zu vergleichen.

Informations-Verbreitung in VANETs
Betreuer: Stefan Dietzel

(Thema bereits vergeben)

VANETs sind Ad-Hoc-Netze die sich ohne Zuhilfenahme von Infrastruktur zwischen Fahrzeugen auf der Straße bilden. Mit Hilfe von VANETs lassen sich Informationen aller Art zwischen Fahrzeugen austauschen; ein plastisches Beispiel sind Verkehrs-Informations-Systeme, die helfen können, intelligent Staus zu umfahren. Die besondere Herausforderung hierbei ist die hohe Mobilität von Fahrzeugen, welche den Einsatz von klassischen Routingprotokollen verhindert. Auch sind die Anforderungen in VANETs oft anders: Informationen müssen an meist geographisch eingegrenzte Gruppen von interessierten Fahrzeugen verteilt werden anstatt an einzelne Netzwerkteilnehmer versandt zu werden. Ziel dieser Arbeit ist es, einen Überblick vor allem über neuere Protokolle Multi-Hop Verbreitungsmechanismen (z.B. Geocast, Aggregation, Relevance-based Dissemination) zu geben.
Reputations-Management in Ad-Hoc Netzen
Betreuer: Stefan Dietzel
Mobile Ad-Hoc Netze bilden sich durch spontane drahtlose Vernetzung von nahezu beliebigen Knoten. Hierbei übernehmen alle Knoten Aufgaben die sonst nur von zentralen oder zumindest zentral verwalteten Knoten ausgeführt werden. Beispiele sind Routing von Paketen oder die Erfassung der Umgebung mittels Sensoren. Aufgrund der Ausführung durch beliebige Knoten stellt sich die Frage, ob die Aufgaben korrekt ausgeführt werden oder einzelne Knoten sich egoistisch verhalten oder das Netzwerk anderweitig angreifen. Um solche Knoten zu erkennen werden oft Reputations-Systeme eingesetzt. Diese bilden und verwalten Vertrauen in Knoten basierend auf bisheriger Interation. Ziel der Arbeit ist es verschiedene Reputationssysteme zu kategorisieren, vorzustellen und zu vergleichen.
(Netzwerk) Intrusion Detection Systeme
Betreuer: Rens van der Heijden

(Thema bereits vergeben)

In vielen Geschäfts- und privaten Netzwerken gibt es ein Bedarf, die Geräte innerhalb des Netzes vor Angreifern zu schützen. Eine wichtiges Hilfsmittel hierzu ist ein Intrusion Detection System (IDS), welches versucht, Angreifer zu identifizieren auf Basis von Netzwerkkommunikation. Diese Arbeit soll unterschiedlichen Arten von IDS darstellen und vergleichen.

Homomorphe Verschlüsslung
Betreuer: Rens van der Heijden

(Thema bereits vergeben)

(Dieses Thema ist hauptsächlich für RTDS-Teilnehmer geeignet.)
Komplette homomorphe Verschlüsselung gilt seit einiger Zeit als "heiliger Gral" der Kryptographie-Forschung. Dieses Ziel ist seit kurzem Erreicht worden auf Basis von Lattices. Das Ziel für diese Seminararbeit ist, die unterschiedlichen Anwendungen von homomorpher Verschlüsslung zu besprechen. Es gibt die Wahlmöglichkeit, in die Breite zu gehen, oder einen bestimmten Anwendungsfall im Detail auszuarbeiten. Beispiele sind hier multi-party computation, wo man versucht Eingaben von mehrere Parteien zu verrechnen, ohne das die Eingaben bekannt werden, oder searching in encrypted data, wo man einen Cloud-Dienst anbietet, der eine verschlüsselte Datenbank durchsuchen kann, ohne die Schlüssel zu kennen.
Elekronisch Wählen: Theorie und Praxis
Betreuer: Rens van der Heijden
In manchen Länder gibt es aus praktischen und ökonomischen Gründen einen elektronischen Wahlprozes. Die Implementierung dieses Prozesses ist sehr unterschiedlich: sie variiert von elektronischer Angabe und Zählung (z.B. in den USA) bis zu Internet-Wahlen (z.B. in Estland). Obwohl es seit längerer Zeit (hauptsächlich theoretische) Forschung in diesem Bereich gibt, werden elektronische Systeme im letzten Jahren in manche Länder abgeschafft (z.B. in die Niederlande) wegen mögliche Sicherheitsproblemen. In dieser Arbeit ist das Ziel, die theoretischen und praktischen Aspekte dieses Themas abzudecken sowie die Schwächen zu verstehen.
Software Verifikation
Betreuer: Rens van der Heijden
In der heutigen automatisierten Welt gibt es mehr und mehr Geräte, die schwere oder gefährliche Aufgaben von Menschen übernehmen. Beispiele sind das Steuern von Flugzeugen bis hin zu Industrie-Steuersystemen und dem Curiosity Mars Rover. In diesen Geräten gibt es eingebettete Software, die sich nicht einfach austauschen lässt, und eine Bug in solchem Code könnte großen Schaden verursachen. Obwohl Testing eine Ansatz ist, um solches zu vermeiden, kann man sich damit eher schwierig gegen gezielte Angreifer schützen. Deswegen gibt es auch den Ansatz von Software Verifikation, der in dieser Arbeit vorgestellt werden soll. Dazu soll die Arbeit Grundlagen und praktische Aspekte abdecken.
Byzantinische Fehlertoleranz anschaulich erklärt
Betreuer: Christian Spann
Byzantinisch Fehlertolerante Systeme schaffen es, in asynchronen Netzwerken mit dem Ausfahl einer definierten Anzahl von Teilknoten des Systems zurechtzukommen. Dabei kann das System sich nicht einmal darauf stützen, ob ein Teilknoten antwortet oder nicht, da das System wie oben erwähnt in einem asynchronen Netzwerk operiert in welchem Nachrichten beliebig verzögert werden können. Da die Algorithmen zur Lösung dieses Problems teilweise etwas knifflig sind, ist es Ziel dieses Themas, alle zu lösenden Teilprobleme vergleichend anhand zweier Algorithmen anschaulich vorzustellen.

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