Institut für Verteilte Systeme
- 1:
Projekte. - 2:
Publikationen. - 3:
Lehre. - 4:
Personen. - 5:
Intranet.
Weitere Themen
Multimedia- und Internetsysteme
Hauptseminar / WS 2009/2010 / CS 5900
Angaben
- Nummer/Titel
- CS 5900 / Multimedia- und Internetsysteme, MIT / Multimedia and Internet Systems
- Dozent
- Prof. Dr. Franz Hauck
- Betreuer
- Holger Schmidt, Jörg Domaschka, Jan-Patrick-Elsholz, Vladimir Nikolov, Christian Spann, Sven Schober
- SWS/Leistungspunkte
- 2S, 4 LP
- Termine
- Montag, 14.15-15.45 Uhr, Raum O27-2203
- Zuordnung
- Dipl. Inf.: Hauptseminar
Dipl. Medieninf.: Hauptseminar
Ba. Inf. (PO 2008): Seminar Informatik
Ba. Medieninf. (PO 2008): Seminar Medieninformatik
Ma. Inf. (PO 2001): Hauptseminar
Ma. Inf. (PO 2008): Vertiefungsmodul Informatik "Verteilte Systeme (Vertiefung)", Projektmodul Informatik "Middleware (Projekt)"
Ma. Medieninf.: Vertiefungsmodul Medieninformatik "Verteilte Systeme (Vertiefung)", Projektmodul Medieninformatik "Middleware (Projekt)"
- Anmeldung
- Es hängen Teilnehmerlisten im Institut für Verteilte Systeme aus. Zum verbindlichen Anmelden bitte eintragen. Die Themenzuordnung erfolgt in der Reihenfolge der Anmeldung. Anmeldung ist auch in der Vorbesprechung der Themen möglich. Die Vorbesprechung findet statt am
Montag, 12.10.2009 um 14.15 Uhr im Raum O27-2203
Es sind noch Themen zu vergeben. Interessenten melden sich bitte bei einem der Betreuer. - Sprache
- Sowohl Ausarbeitung als auch Vortrag können wahlweise in Deutsch oder Englisch erbracht werden.
- Ilias
- Die ganze Veranstaltung wird im Ilias Learning Management System der Univerität Ulm abgebildet. Hier gehts zur Vorlesung in Ilias. Dort finden Sie Folien, Übungsaufgaben, Foren und Zusatzinformationen. Treten Sie einfach dem gleichlautenden Kurs bei. Dazu müssen Sie sich zunächst mit Ihrem KIZ-Account anmelden. Für den Kursbeitrit benötigen Sie dann noch den Zugangscode, der in der Vorlesungs bekannt gegeben wurde.
Überblick/Kontext
Verteilte Systeme haben während des letzten Jahrzents durch die zunehmende Verbreitung des Internets stetig an öffentlicher Präsenz und damit an Bedeutung gewonnen. Der Trend geht hin zu immer stärker vernetzten Endgeräten, die rund um die Uhr mit anderen Endgeräten oder hochverfügbaren Diensten kommunizieren.
Das Seminar soll einen Einblick in die Herausforderungen und Probleme des möglichen Zukunftsszenarios der hochvernetzen Welt bieten. Wir werden dabei einen Blick auf verschiedene Middleware Systeme und Architekturen werfen, die speziell für Internet- oder Multimediadienste entworfen wurden oder die Grundlage für solche Systeme legen können.
Ablauf/Formales
Der/Die Schein/Note wird auf Anwesenheit, Vortrag, Ausarbeitung und Diskussionsbereitschaft erteilt. Die verbindliche Anmeldung erfolgt über die im Institut aushängenden Teilnehmerlisten. Die Themenvergabe findet in der Vorbesprechung anhand der Reihenfolge der Teilnehmerlisten statt. Zu jedem Vortrag gibt es außerdem feste Deadlines, die unbedingt eingehalten werden müssen.
Die Ausarbeitung muss dem ACM SIG Proceedings Style folgen und darf die Länge von acht Seiten nicht überschreiten ( LaTeX Vorlage - freie Wahl zwischen Option 1 und 2; benötigt werden jeweils die .bib, .tex und .cls Datei; Word Vorlage). Als Abgabeformat ist PDF gewünscht.
Inhalt/Themen
Byzantinische Fehlertoleranz
Betreuer: Christian Spann
Replikation ist wird heutzutage häufig genutzt um Anwendungen fehlertolerant zu machen. Dabei werden Anwendungen auf mehreren Rechnern parallel betrieben und diese stellen dann als Gruppe gemeinsam einen Dienst nach aussen dar. Dabei wird aber häufig von einem eher schwachen Bedrohungsmodell ausgegangen: Im schlimmsten Fall stoppt ein Knoten seinen Dienst und schickt keine Nachrichten mehr. Angriffsszenarien wie das Einschleusen von veränderten Paketen von aussen oder das hacken eines Knotens der Gruppe werden nicht durch den Algorithmus aufgefangen. Deshalb wird verstärkt an Algorithmen geforscht die auch byzantinische Fehler - also alle möglichen Fehlerarten (ausgenommen Weltuntergänge etc ;) ) abfangen können. Ziel ist es einen Überblick über das Forschungsgebiet der Byzantinischen Fehlertoleranz zu geben und einen Algorithmus näher zu beschreiben.
Deterministisches Scheduling
Betreuer: Christian Spann
Replikation ist wird heutzutage häufig genutzt um Anwendungen fehlertolerant zu machen. Dabei werden Anwendungen auf mehreren Rechnern parallel betrieben und diese stellen dann als Gruppe gemeinsam einen Dienst nach aussen dar. Dass auch moderne Rechner mit mehreren Prozessoren effizient von den verteilten Diensten genutzt werden können, ist es unumgänglich Anwendungen mit mehreren Threads zu unterstützen. Um aber durch die Nebenläufigkeit keine Inkonsistenzen zwischen den verschiedenen Replikaten zu bekommen, muss der Zugriff auf kritische Abschnitte auf allen Replikaten in der gleichen logischen Reihenfolge ablaufen. Dies wird durch deterministische Scheduler ermöglicht. Ziel der Arbeit ist es einen Überblick über die existierenden Schedulingalgorithmen und deren Funktionsweise zu geben.
Persistenz in Java
Betreuer: Jörg Domaschka
Der Java Standard bietet von Haus auf keine Unterstützung für die Persistenz von Objekten. Allerdings sind in den letzten Jahren außerhalb des Standards Tools und APIs entstanden, die die Sprache um Persistenzmechanismen erweitern (z.B. Hibernate, Apache iBATIS, Java Data Objects, Oracle TopLink, Apache Cayenne oder die Java Persistence API). Ziel des Vortrags ist es diese Mechanismen zu analysieren, ihre Fähigkeiten zu kategorisieren und die jeweiligen Systeme anhand dieser Kategorien zu vergleichen.
Fehlertoleranz-, Konsistenz- und Persistenzmechanismen in Cloud Umgebungen
Betreuer: Jörg Domaschka
Cloud Umgebungen wie zum Beispiel Amazon EC2 oder Googles Apps Engine bieten eine Vielzahl von Diensten, die (gegen entsprechende Bezahlung) einen dynamischen Zugriff auf eine idealerweise beliebige Anzahl von Resourcen erlaubt. Ziel des Vortrags/der Ausarbeitung ist es darzulegen, wie mit den duch die Cloud bereitgestellten Mitteln (in der Regel eine verteilte Datenbank, ein verteiltes Dateisystem) Konsistenz zwischen den Prozessen einer Cloud Anwendung hergestellt und auch eine Fehlertoleranz der gesamten Anwenung erreicht werden kann. Daneben sind die Auswirkungen für den Programmierer bzw. die Änderungen am Programmiermodell zu diskutieren.
Neue Features in Java 7
Betreuer: Jörg Domaschka
Der Milestone Cycle des Java 7 Projekts sieht vor, dass ein erster vollständiger Prototyp im Oktober 2009 zur Verfügung stehen soll. Java 7 kommt mit einigen Neuerungen hinsichtlich der Sprachsyntax, des Klassenlade-Mechanismuses, der I/O-API, ... Weiterhin gibt es erstmals auch ein Modulkonzept (jigsaw). Im Vortrag soll eine Auswahl der neuen Features vorgestellt werden. Zudem ist ein Vergleich des Modulkonzepts mit existierenden Systemen, die ähnliche Funktionalität anbieten, wie zum Beispiel gewünscht.
Synchronous Groupware - vergeben -
Betreuer: Jan-Patrick Elsholz
Google Wave ist ein internetbasiertes System zur Kommunikation und Zusammenarbeit in Echtzeit und fällt somit in die Klasse der synchronous groupware. Es soll anhand von Google Wave das aktuelle Forschungsgebiet aufgezeigt sowie Vor- und Nachteile erörtert werden.
P2PSIP
Betreuer: Sven Schober
Verschiedene Ansätze des P2PSIP recherchieren und vorstellen.
Google MapReduce - vergeben -
Betreuer: Holger Schmidt
MapReduce ist ein von Google eingeführtes Programmiermodell, das eine einfache Abstraktion für nebenläufige Berechnungen über sehr große Datenmengen bietet. Im Rahmen des Seminars soll dieses Programmiermodell mit mehreren Beispielen vorgestellt werden.
Spring Dynmaic Modules
Betreuer: Jan-Patrick Elsholz
In der Java Welt gibt es die bekannten Java Beans. Darauf basieren verschieden Enterprise Applications wie EJB und Spring. Letztere gibt es in der Kombination mit OSGi als Spring Dynamic Modules. In diesem Seminar soll ein Überblick über Spring Dynamic Modules gegeben werden, der zwangsläufig an den genannten Technologien vorbeiführt.
RTSJ: Echtzeit in Java - vergeben -
Betreuer: Vladimir Nikolov
Multimedia- und Internetsysteme begegnen heutzutage immer mehr Echtzeitanforderungen. Zum Beispiel muss ein Multimedia-Server bestimmte Aufgaben innerhalb streng definierter Zeitschranken erfüllen, um seinen Klienten eine vereinbarte Dienstgüte gewährleisten zu können. Die notwendigen Techniken hierfür werden meist von Echtzeitbetriebssystemen zur Verfügung gestellt, auf die "native" Echtzeitanwendungen bisher direkt aufsetzen konnten. Lange Zeit schien Java keine geeignete Programmierumgebung für solche Anwendungen zu sein. Doch das älteste und somit erste JSR überhaupt (JSR 1: Real-time Specification for Java) forderte bereits die Spezifikation einer Echtzeiterweiterung für Java Laufzeitumgebungen. Diese Spezifikation wurde erst kürzlich vollständig fertiggestellt und schon mehrfach implementiert. Im Rahmen dieses Seminars sollen die "neuen" Echtzeit-Programmiersemantiken und Erweiterungen in Java vorgestellt, sowie vorhandene Implementierungen der Spezifikation umrissen werden.
