Middlewaresystem-Entwicklung - MWE

Dieses Modul wurde im Sommersemester 2018 zum letzten Mal angeboten. Stattdessen bieten wir ab Wintersemester 2018/2019 die Projektmodule Verteilte Anwendungen, Plattformen und Systeme I und II an.

Sommersemester 2018

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Themenvergabe:Infoveranstaltung zu Projekten und Abschlussarbeiten:
Dienstag 12.04.2018, 12.15 Uhr - 13.45 Uhr, Raum O27-123 oder nach direkter Absprache mit dem Betreuer
Einordnung in die Studiengänge:Informatik, M.Sc.: Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc.: Projekt
Software-Engineering, M.Sc.: Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Voraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:-
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Hinweis: Die Themen für den Modulstart im Sommersemester 2018 werden noch ergänzt. Die Liste ist daher noch vorläufig.

Themen

PriPlus: Userfriendly Privacy

Betreuer: David Mödinger

Projektanteil: PriCloud ist ein Projekt mit dem Ziel einen Privatsphäre erhaltenden Cloudspeicher zu erhalten. Hierfür wird im Insitut an einem Prototypen in Python gearbeitet. Dieser bietet jedoch nur Konsolenzugriff auf die Subsysteme des Prototypen. Ziel des Projektes ist es ein fundiertes und geeignetes User Interface zu entwerfen und dieses praktisch zu erstellen. Das Thema kann nur mit 8 LP bearbeitet werden.

NetVision: Simple Visualization of Distributed Algorithms

Betreuer: David Mödinger

Projektanteil: In der Lehre steht man häufig vor der Herausforderung ein Problem geeignet zu visualisieren. Findet man eine geeignete Darstellung ist diese jedoch meist statisch, auf eine einzige Probleminstanz beschränkt und nicht interaktiv für die Studierenden. Ziel dieser Arbeit ist es ein Werkzeug zu erstellen um verteilte Algorithmen interaktiv zu visualisieren und so Studierenden die Möglichkeit zu geben damit zu experimentieren. Als erster Schritt muss hierfür ein Konzept erstellt werden (bestimmung geeigneter Einschränkungen für eine einfache Darstellung und Interaktion) sowie eine grafische Interaktion für die Modellierung des Algorithmus und des zu visualisierenden Netzes. Zuletzt gilt es diese Erkenntnisse in einer Java oder Web Applikation umzusetzen. Der genaue Umfang des Projekts richtet sich nach den gewählten Leistungspunkten und im Konzept ermittelten Herausforderungen und Einschränkungen. Das Thema kann mit 8 oder 16 LP bearbeitet werden.

Vergleich von Entwicklungsumgebungen für AngularJS

Betreuer: Franz J. Hauck

Projektanteil: Angular JS/2/4 ist ein populäres Framework zur Erstellung von Single-Page-Web-Applications. Aufgabe dieser Projektarbeit ist es verschiedene Entwicklungswerkzeuge zu recherchieren und vergleichend auszuprobieren, um Angular Anwendungen auf der Client-Seite zu entwickeln. Dies soll anhand eines selbst gestallten oder vorhandenen Beispielprojekts erfolgen. Wichtig ist die Integration in das Versionskontrollsystem Git. Für ein 16 LP Projekt sollte auch die Serverseite in Form eines REST-basierten Backends untersucht werden. Vorteilhaft sind Kenntnisse in Javascript und evtl. NodeJS und/oder Angular. Bei einem 16 LP Projekt könnte ein entsprechender Anteil Einarbeitung in diese Technologien in Form eines geeigneten Seminarthemas erfolgen.

weitere Themen zum Projekt in.Crease

Betreuer: Franz J. Hauck

in.Crease ist ein Informationssystem für Studierende, das sich als Lehrprojekt im Aufbau befindet. Es werden noch ein/zwei/drei Themen dazu angeboten, die jedoch erst Anfang April genauer formuliert werden.

Das Projekt arbeitet mit Angular 4, TypeScript, NodeJS, nginx und PostgreSQL.

Enabling Snapshotting in Multithreaded BFT-SMaRt

Betreuer: Gerhard Habiger

BFT-SMaRt ist eine Java Library für die einfache Entwicklung von Anwendungen die durch State Machine Replication ausfallsicher und sogar robust gegenüber byzantinischen Fehlern laufen können.

Ziel unserer Forschung ist die Beschleunigung von State Machine Replication, wozu wir in den letzten Monaten BFT-SMaRt um Multithreading-Komponenten erweitert haben. Ein Problem hierbei ist, dass das für die Fehlertoleranz zwingend notwendige Snapshotting erheblich erschwert wird und zur Zeit für unsere Optimierungen ausgeschaltet bleiben muss.
Dieses Projekt soll auf der Basis vorangegangener Projekte Wege ergründen wie Snapshotting in Verbindung mit Multithreading in BFT-SMaRt reaktiviert werden kann, sowie Implementierungen und Messungen der gefundenen Ansätze bereitstellen.

Dieses Thema kann mit 8 oder 16 LP bearbeitet werden. (This project can also be completed in english. Please contact me for further details).

Parallelizing a Java implementation of etcd

Betreuer: Gerhard Habiger

Ein kürzliches Studierendenprojekt reimplementierte den verteilten key-value store etcd in Java. Um diese Implementierung für zukünftige Forschung an fehlertoleranten Systemen weiter zu verwenden, soll dieses Projekt die Java-Implementierung parallelisieren. Durch intelligentes Locking soll ein möglichst hoher Grad an Parallelität erreicht werden, während die Korrektheit des Systems in allen Fällen bestehen bleibt. Anschließend soll durch Messungen der Performancegewinn gegenüber der sequentiellen Variante gezeigt werden.

Dieses Thema kann mit 8 oder 16 LP bearbeitet werden. (This project can also be completed in english. Please contact me for further details).

 

Wintersemester 2017/2018

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Vorbesprechung und Themenvergabe:Mittwoch 18.10.2017, 16.15 Uhr - 17.45 Uhr, Raum O27/411
Einordnung in die Studiengänge:Informatik, M.Sc.: Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc.: Projekt
Software-Engineering, M.Sc.: Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Voraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:-
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Themen

Nachimplementierung der etcd API in Java

Betreuer: Gerhard Habiger

Projektanteil: Für die Verwaltung großer verteilter Systeme werden in der Regel Koordinierungsdienste wie ZooKeeper oder etcd eingesetzt. Um maximale Ausfallsicherheit und dennoch starke Konsistenzgarantien zu gewährleisten, sind solche Koordinierungsdienste durch State Machine Replication repliziert. Ein Problem dieses Replizierungsansatzes ist die zumeist schlechte Ausnutzung heutiger Multicore-Systeme. In unserer Forschung beschäftigen wir uns mit Methoden, SMR-replizierte Software zu beschleunigen und auch Multithreading zu erlauben. Hierfür sind unter anderem vergleichende Messungen mit etcd vorgesehen. Da etcd selbst komplett in Go geschrieben ist, sich unsere Forschung momentan jedoch auf Java konzentriert, soll in diesem Projekt die nach außen hin sichtbare API und dafür nötige Funktionalität von etcd in Java nachimplementiert werden. Es können dabei nahezu alle Schwierigkeiten die sich durch die Verteilung ergeben (Netzwerkkommunikation und -fehler, Konsensus, etc.) vernachlässigt werden. Es wird primär die Funktionalität, die eine nicht-verteilte Installation von etcd mit einem Host bereitstellen würde, verlangt. Das Projekt kann mit 16LP belegt werden.

Seminaranteil: Das Seminar kann den Koordinierungsdienst etcd und seine API bzw. angebotene Funktionalität im Detail untersuchen und vorstellen.

PriPlus: Userfriendly Privacy

Betreuer: David Mödinger

Projektanteil: PriCloud ist ein Projekt mit dem Ziel einen Privatsphäre erhaltenden Cloudspeicher zu erhalten. Hierfür wird im Insitut an einem Prototypen in Python gearbeitet. Dieser bietet jedoch nur Konsolenzugriff auf die Subsysteme des Prototypen. Ziel des Projektes ist es ein fundiertes und geeignetes User Interface zu entwerfen und dieses praktisch zu erstellen. Das Thema kann nur mit 8 LP bearbeitet werden.

NetVision: Simple Visualization of Distributed Algorithms

Betreuer: David Mödinger

Projektanteil: In der Lehre steht man häufig vor der Herausforderung ein Problem geeignet zu visualisieren. Findet man eine geeignete Darstellung ist diese jedoch meist statisch, auf eine einzige Probleminstanz beschränkt und nicht interaktiv für die Studierenden. Ziel dieser Arbeit ist es ein Werkzeug zu erstellen um verteilte Algorithmen interaktiv zu visualisieren und so Studierenden die Möglichkeit zu geben damit zu experimentieren. Als erster Schritt muss hierfür ein Konzept erstellt werden (bestimmung geeigneter Einschränkungen für eine einfache Darstellung und Interaktion) sowie eine grafische Interaktion für die Modellierung des Algorithmus und des zu visualisierenden Netzes. Zuletzt gilt es diese Erkenntnisse in einer Java oder Web Applikation umzusetzen. Der genaue Umfang des Projekts richtet sich nach den gewählten Leistungspunkten und im Konzept ermittelten Herausforderungen und Einschränkungen. Das Thema kann mit 8 oder 16 LP bearbeitet werden.

Vergleich von Entwicklungsumgebungen für AngularJS

Betreuer: Franz J. Hauck

Projektanteil: Angular JS/2/4 ist ein populäres Framework zur Erstellung von Single-Page-Web-Applications. Aufgabe dieser Projektarbeit ist es verschiedene Entwicklungswerkzeuge zu recherchieren und vergleichend auszuprobieren, um Angular Anwendungen auf der Client-Seite zu entwickeln. Dies soll anhand eines selbst gestallten oder vorhandenen Beispielprojekts erfolgen. Wichtig ist die Integration in das Versionskontrollsystem Git. Für ein 16 LP Projekt sollte auch die Serverseite in Form eines REST-basierten Backends untersucht werden. Vorteilhaft sind Kenntnisse in Javascript und evtl. NodeJS und/oder Angular. Bei einem 16 LP Projekt könnte ein entsprechender Anteil Einarbeitung in diese Technologien in Form eines geeigneten Seminarthemas erfolgen.

Seminaranteil: Bei 16 LP Projekten, Einarbeitung in Angular durch ein vorher abgestimmtes Thema, je nach Vorwissen.

Sommersemester 2017

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Vorbesprechung und Themenvergabe:Mittwoch 19.04.2017, 08.30 Uhr - 10.00 Uhr, O27-331
Einordnung in die Studiengänge:Informatik, M.Sc.: Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc.: Projekt
Software-Engineering, M.Sc.: Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Voraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:-
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Themen

in.Crease: DevOps Pipeline und Entwicklungsumgebung

Betreuer: Franz J. Hauck

Projektanteil: Für das Lehrprojekt eines Studieninformationssystems wurde in einer Masterarbeit ein weitgehendes Konzept für das so genannte Continious Delivery erstellt, d.h. ein Entwickler kann eine neue Version erstellen, die dann automatisch getestet und mit vorhandener Software kombiniert wird sowie auf Knopfdruck direkt produktiv gehen kann. In diesem Projekt, das eventuell sogar Raum für zwei zusammen arbeitende Studierende geben könnte, soll die gesamte Umgebung dokumentiert und weiter ausgebaut werden. Insbesondere soll ein Entwicklungskonzept für Angular2 integriert werden. Je nach Ausgestaltung sollte Interesse an Systemsoftware, Software-Entwicklung, Java- bzw. Angular2-Programmierung vorhanden sein. Das Projekt kann mit 8LP oder 16LP belegt werden.
Seminaranteil: Das Seminar kann ausgewählte Aspekte von DevOps, Continous Delivery und beteiligter Software zur Einarbeitung betrachten(z.B. Angular2, Jenkins, NPM + Node.js).

Topologieerkennung mit JTomato

Betreuer: Franz J. Hauck

Projektanteil: JTomato ist eine Software des Instituts, die verschiedene IP-Pakete mit genauen Timings absenden und empfangen kann (ICMP u.ä.). Aus einer Masterarbeit ist ein Konzept zur Topologieermittlung des Internets entstanden, das Eigenheiten von IPv6 ausnutzt. Leider wurde die Evaluation nur rudimentär ausgeführt. Thema des Projekts ist das Reimplementieren des Konzepts mit JTomato und eine Durchführung praktischer Messungen. Interesse an Netzwerkprotokollen sowie an der Programmierung in Java und C++ (wenig) wäre hilfreich. Das Thema kann mit 8 oder 16 LP bearbeitet werden.
Seminaranteil: Als Seminar könnten je nach Vorkenntnissen Aspekte von IPv6, der Topologieerkennung und von JTomato behandelt werden.

PriPlus: Userfriendly Privacy

Betreuer: David Mödinger

Projektanteil: PriCloud ist ein Projekt mit dem Ziel einen Privatsphäre erhaltenden Cloudspeicher zu erhalten. Hierfür wird im Insitut an einem Prototypen in Python gearbeitet. Dieser bietet jedoch nur Konsolenzugriff auf die Subsysteme des Prototypen. Ziel des Projektes ist es ein fundiertes und geeignetes User Interface zu entwerfen und dieses praktisch zu erstellen. Das Thema kann nur mit 8 LP bearbeitet werden.

NetVision: Simple Visualization of Distributed Algorithms

Betreuer: David Mödinger

Projektanteil: In der Lehre steht man häufig vor der Herausforderung ein Problem geeignet zu visualisieren. Findet man eine geeignete Darstellung ist diese jedoch meist statisch, auf eine einzige Probleminstanz beschränkt und nicht interaktiv für die Studierenden. Ziel dieser Arbeit ist es ein Werkzeug zu erstellen um verteilte Algorithmen interaktiv zu visualisieren und so Studierenden die Möglichkeit zu geben damit zu experimentieren. Als erster Schritt muss hierfür ein Konzept erstellt werden (bestimmung geeigneter Einschränkungen für eine einfache Darstellung und Interaktion) sowie eine grafische Interaktion für die Modellierung des Algorithmus und des zu visualisierenden Netzes. Zuletzt gilt es diese Erkenntnisse in einer Java oder Web Applikation umzusetzen. Der genaue Umfang des Projekts richtet sich nach den gewählten Leistungspunkten und im Konzept ermittelten Herausforderungen und Einschränkungen. Das Thema kann mit 8 oder 16 LP bearbeitet werden.

Wintersemester 2016/2017

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Vorbesprechung und Themenvergabe:Montag 17.10.2015, 16.15 Uhr - 17.45 Uhr, O27-341
Einordnung in die Studiengänge:Informatik, M.Sc.: Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc.: Projekt
Software-Engineering, M.Sc.: Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Voraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:-
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Themen

in.Crease: ein Informationsdienst für Prüfungsordnungen

Betreuer: Franz J. Hauck

Projektanteil: In vorherigen Projekten wurde bereits Server-Software für die Präsentation, den Vergleich, die Kommentierung und die Verlinkung zwischen verschiedenen Prüfungsordnungen implementiert. Dieses Projekt soll den Dienst zur "Produktionsreife" bringen, so dass er für Studierende angeboten werden kann. Insbesondere sollen die Funktionen und die verwendete Oberfläche angepasst werden. Falls als 16 LP Projekt gewählt, soll das Einloggen mit KIZ-Login und der Zugriff auf Präferenzen realisiert werden. Die Implementierung erfolgt mit AngularJS und JavaEE (JBoss Wildfly, Hibernate/JPA, Postgres). Kenntnisse in der Vorlesung AvID und/oder AngularJS sind hilfreich, können aber auch erarbeitet werden. Das Projekt kann mit 8LP oder 16LP belegt werden.
Seminaranteil: Das Seminar kann ausgewählte Aspekte von AngularJS betrachten (z.B. Angular2).

in.Crease Datenmodell für ein Studieninformationssystem

Betreuer: Franz J. Hauck

Projektanteil: Der in.Crease Informationsdienst soll auch das Modulhandbuch und das Vorlesungsverzeichnis zusammenfassen. In mehreren Projekten wurden schon Prototypen erstellt. Es hat sich jedoch herausgestellt, dass das Datenmodell noch unzureichend ist. In diesem Projekt soll das Datenmodell verbessert werden (semesterweise Historie der Änderungen, individuelle Versionen). Als Technologien kommen Wildfly, JPA, Envers und Postgres zum Einsatz. Zum Projekt gehört ein abgeschlossener Data Access Layer sowie die dazugehörige Dokumentation des Modells.  Das Thema kann mit 8 oder 16 LP bearbeitet werden.
Seminaranteil: Als Seminar könnten je nach Vorkenntnissen Aspekte von JPA und Envers behandelt werden.

OpenStack-Anbindung für EmuSphere

Betreuer: Gerhard Habiger

Projektanteil: EmuSphere ist eine Plattform, mit der sich verteilte Serverlandschaften simulieren lassen, die dann z.B. verteilte Tests ausführen. Dabei werden unter anderem auch die Netzwerkeigenschaften zwischen den Knoten des verteilten Systems beeinflusst (z.B. Latenz, Jitter), um beispielsweise die Auswirkung globaler Verteilung eines Systems zu testen. EmuSphere wird zur Zeit an der Universität Passau in Kooperation mit dem Institut Verteilte Systeme entwickelt. Momentan benötigt EmuSphere zum Deployment der Testinstanzen die Cloud-Plattform OpenNebula. In diesem Projekt soll EmuSphere erweitert werden um das Deployment der Instanzen auch mit OpenStack zu ermöglichen.
Das Projekt kann mit 8 oder 16 LP abgelegt werden.
Seminar: Der Seminaranteil soll EmuSphere und seinen Einsatzzweck präsentieren.

Benchmarking Implementierung für PriCloud

Betreuer: David Mödinger

Projektanteil: PriCloud beschäftigt sich mit der Schaffung eines Privatsphäre erhaltenden Cloud Speichers. Eines der betrachteten Szenarien baut auf ein Peer-to-peer Netz auf. Die Aufgabe dieses Projektes ist es, einen Teil der aktuellen PriCloud Spezifikation zu implementieren. Diese Implementierung kann als Baislinie für einen Benchmark von weitergehenden Technologien dienen. Das Projekt kann als 8 oder 16 LP Projekt gewählt werden.
Seminar: Der Seminaranteil könnte sich mit dem Projekt PriCloud beschäftigen und dieses präsentieren, da eine Einarbeitung in dieses notwendig ist.

Sommersemester 2016

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Vorbesprechung und Themenvergabe:Dienstag, 12.04.2016, 16.15 Uhr - 17.45 Uhr, O27-341
Einordnung in die Studiengänge:Informatik, M.Sc.: Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc.: Projekt
Software-Engineering, M.Sc.: Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Voraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:-
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Hinweis: Die folgende Themenliste für den Modulstart im Sommersemester 2016 ist vorläufig und wird bis zum 08.04.2016 ergänzt und verändert.

Themen

in.Crease: ein Informationsdienst zum Lesen und Vergleichen von Prüfungsordnungen

Betreuer: Franz J. Hauck

Projektanteil: In einem vorherigen Projekt wurde bereits Server-Software für die Präsentation, den Vergleich, die Kommentierung und die Verlinkung zwischen verschiedenen Prüfungsordnungen implementiert. Dieses Projekt soll den Dienst mit einer neu zu gestaltenden und ansprechenden Oberfläche in Betrieb nehmen. Die Implementierung erfolgt mit AngularJS und JavaEE (JBoss Wildfly, Hibernate/JPA, MySQL bzw. Postgres). Kenntnisse in der Vorlesung AvID und/oder AngularJS sind hilfreich, können aber auch erarbeitet werden. Das Projekt kann mit 8LP oder 16LP belegt werden.
Seminaranteil: Das Seminar kann ausgewählte Aspekte von AngularJS betrachten (Modularisierung, Routing, Bedienelemente, client-seitige Validierung etc.).

Werkzeuge für kryptographische Operationen in Java

Betreuer: Franz J. Hauck

Projektanteil: In einer Bachelorarbeit wurden bereits einfache Werkzeuge für kryptographische Operationen in Java entwickelt. Dieses Projekt soll den Prototyp komplementieren und vor allem gängige Operationen wie Erstellen und Beantragen von Zertifikaten ermöglichen. Die Implementierung erfolgt mit Java und JavaFX.
Seminaranteil: Das Seminar kann die Java Krypto-API (JCA und JSSE) behandeln oder auch JavaFX.

Implementation of asynchronous request handling in the fault-tolerant Java library BFT-SMaRt

Betreuer: Gerhard Habiger

Project: The BFT-SMaRt library, written in Java, allows distributed systems to be reliable even when experiencing byzantine failures. Current research efforts of our institute aim to integrate our own work on deterministic scheduling of multithreaded applications with BFT-SMaRt. Currently, BFT-SMaRt only supports synchronous request-response patterns and singlethreaded execution, whereas our planned fault-tolerant platform would enable multithreading and asynchronous request handling. This could significantly improve throughput and latency of fault-tolerant systems. The goals of this lab project are (i) to analyze the existing BFT-SMaRt Java codebase, (ii) to implement the necessary interfaces for asynchronous request handling in Java and (iii) to integrate these changes into the existing BFT-SMaRt libraries.
This project has a length of 16 ECTS.
Seminar: The Seminar can summarize the concepts of our scheduling algorithm for multithreaded applications and the BFT-SMaRt library and should identify the problems of combining the two.

Design and Implementation of an Educational Distributed System

Betreuer: David Mödinger

Project: A course on foundations of distributed systems is usually accompanied by several programming exercises. The goal of this project is a coherent project with well defined modules, consisting of different aspects of a distributed system taught in a course on distributed systems (e.g., message passing or time synchronisation). These modules should be covered by unit tests, which ideally could be run automatically on student submissions. This project has a length of 8 or 16 ECTS.
Seminar: The Seminar can cover (automatic) unit tests in Java or aspects of educational software design.

Wintersemester 2015/2016

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Vorbesprechung und Themenvergabe:Donnerstag 15.10.2015, 14.15 Uhr - 15.45 Uhr im Raum O27-341
Einordnung in die Studiengänge:Informatik, M.Sc.: Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc.: Projekt
Software-Engineering, M.Sc.: Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Voraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:-
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Themen

in.Crease: Inbetriebnahme eines elektronischen Modulhandbuchs

Betreuer: Franz J. Hauck

Projektanteil: In vorherigen Projekten wurde bereits ein Datenmodell und die Oberfläche für ein einfache Oberfläche für ein elektronisches Modulhandbuch implementiert. Dieses Projekt hat zur Aufgabe zum einen das Datenmodell auf eine neue Version zu aktualisierung und weiterhin die Benutzeroberfläche neu zu gestalten. Dazu gehören auch grafische Elemente, Icons und die Benutzerführung insgesamt. Die Implementierung erfolgt in AngularJS und JavaEE (JBoss Wildfly, Hibernate/JPA, MySQL). Kenntnisse in der Vorlesung AvID und/oder AngularJS sind hilfreich, können aber auch erarbeitet werden. Das Projekt kann mit 8LP oder 16LP belegt werden.
Seminaranteil: Das Seminar kann ausgewählte Aspekte von AngularJS betrachten (Modularisierung, Routing, Bedienelemente, client-seitige Validierung etc.).

in.Crease: Inbetriebnahme eines Informationsdienstes für Prüfungsordnungen

Betreuer: Franz J. Hauck

Projektanteil: In einem vorherigen Projekt wurde bereits Server-Software für die Präsentation, den Vergleich und die Verlinkung von verschiedenen Prüfungsordnungen implementiert. Dieses Projekt soll den Dienst mit einer ansprechenden Oberfläche in Betrieb nehmen. Die Implementierung erfolgt mit AngularJS und JavaEE (JBoss Wildfly, Hibernate/JPA, MySQL). Kenntnisse in der Vorlesung AvID und/oder AngularJS sind hilfreich, können aber auch erarbeitet werden. Das Projekt kann mit 8LP oder 16LP belegt werden.
Seminaranteil: Das Seminar kann ausgewählte Aspekte von AngularJS betrachten (Modularisierung, Routing, Bedienelemente, client-seitige Validierung etc.).

Werkzeuge für kryptographische Operationen in Java

Betreuer: Franz J. Hauck

Projektanteil: In einer Bachelorarbeit wurden bereits einfache Werkzeuge für kryptographische Operationen in Java entwickelt. Dieses Projekt soll den Prototyp komplementieren und vor allem gängige Operationen wie Erstellen und Beantragen von Zertifikaten ermöglichen. Die Implementierung erfolgt mit Java und JavaFX.
Seminaranteil: Das Seminar kann die Java Krypto-API (JCA und JSSE) behandeln oder auch JavaFX.

Sommersemester 2015

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Vorbesprechung und Themenvergabe:Dienstag, 14.04.2015, 16.15 Uhr - 17.45 Uhr, O27-341
Einordnung in die Studiengänge:Informatik, M.Sc.: Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc.: Projekt
Software-Engineering, M.Sc.: Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Voraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:-
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Themen

in.Crease: Elektronisches Modul- und Vorlesungsverzeichnis auf der Basis von Angular JS

Betreuer: Franz J. Hauck

Projektanteil: Diese Projektarbeit soll bestehende Konzepte des in.crease-Systems, ein elektronisches Lehre-Informationssystem, anstatt wie bisher mit JSF und Java EE nun mit Angular JS auf der Browserseite und mit Java EE auf der Serverseite implementieren. Kenntnisse im Bereich der Vorlesung AvID und/oder von Javascript/Angular JS sind hilfreich. Das Projekt kann nur mit 16LP durchgeführt werden.
Seminaranteil: Für das vorangehende oder parallel zu besuchenden Seminar bietet sich als Thema die Vorstellung von Angular JS und seine grundsätzlich andere Vorgehensweise im Vergleich zu JSF an.
[reserviert]

in.Crease: Integration bis zu einem lauffähigen Lehrinformationssystem

Betreuer: Franz J. Hauck

Projektanteil: Bisher sind im Rahmen von Projektarbeiten eine Reihe von Software-Komponenten entstanden, die noch nicht zu einem lauffähigen System zusammengefügt wurden. Aufgabe dieser Projektarbeit ist genau dies zu tun. Herausforderung ist hier die Einarbeitung in bestehende Software-Komponenten, in die Philosophie des Gesamtsystems und die Korrektur von nicht zusammenpassenden Teilen. Eventuell müssen Teile auch reimplementiert werden. Ziel ist ein lauffähiges System mit einer (teil-)automatischen Speisung mit aktuellen Modul- und Lehrdaten, der Präsentation der Lehrdaten an anonyme und eingeloggte Benutzer in ansprechendem Layout. Weiterhin ist auf der Basis einer vorhandenen Benutzerverwaltung die Erweiterung auf Benutzerpräferenzen, wie z.B. voreingestellter Default-Studiengang. Ein wichtiger Anteil ist die Dokumentation von Konventionen und Struktur-Überlegungen, damit künftige Arbeiten sich an diese Vorgaben halten. Idealerweise sind Vorkenntnisse im Bereich der Vorlesung AvID und/oder von JSF und EJB vorhanden.
Seminaranteil: Diese Arbeit könnte mit 8LP, d.h. ohne Seminar belegt werden. Mit Seminar bietet sich an bestehende Lehrinformationssysteme in ihrer Funktion und vor allem ihrer Benutzeroberfläche zu vergleichen. Das Seminar kann vorab oder parallel belegt werden.

in.Crease: Eingabesystem für Module und Vorlesungen

Betreuer: Franz J. Hauck

Projektanteil: Um die Lehrdaten zu bearbeiten benötigt das in.Crease System eine Benutzeroberfläche, die entsprechende Eingabemasken präsentiert. Je nach Schwierigkeit der Aufgabe kann der organisatorische Prozess realisiert werden, der aus der dezentralen Eingabe durch Dozenten und eine Genehmigung sowie Veröffentlichung der Daten durch die Gremien wie Studienkommission und Studiendekan besteht.
Seminaranteil: Diese Projektarbeit könnte mit 8LP, d.h. ohne Seminar belegt werden. Mit Seminar ist als Thema im vorab oder parallel zu belegenden Seminar eine Übersicht über die Gestaltung von Benutzeroberflächen für komplexe Editierinteraktionen zu betrachten, z.B. Editieren von Listen von Personen, Editieren von Studiengangszuordnungen, Editieren von Texten, Editieren von großen Datenmengen. Dabei ist die Intuitivität und die klare Benutzerführung zu bewerten. Damit wird die Grundlage für den Projektanteil gelegt, in dem solche Mechanismen eingesetzt werden müssen.
[reserviert]

in.Crease: versioniertes Einlesen von Moduldaten

Betreuer: Franz J. Hauck

Projektanteil: Die Moduldaten der Fakultät werden in einem LaTeX-Format bearbeitet und als versionierte Menge von LaTeX-Dateien gespeichert. Das Einlesen der Daten wurde bereits in vorangegangenen Projekten implementiert. Ziel dieser Arbeit ist es alle in GIT vorliegenden Modulversionen mit ihren korrekten Änderungszeitpunkten in eine versionierte Datenbank zu schreiben. Dazu wird Hibernate und Envers verwendet. Eine entsprechende Modell-Implementierung gibt es bereits. Herausforderungen sind hier, bei Aktualisierungen nur diejenigen Änderungen zu übernehmen, die noch nicht erfasst wurden. Weiterhin sind bestimmte Informationen nur rudimentär in den LaTeX-Dateien vorhanden, die manuell von Editoren eingegeben werden müssen. Es muss dafür gesorgt werden, dass diese Eingaben nicht überschrieben und gegebenenfalls in neuen Versionen weiter verwendet werden. Kennnisse im Bereich der Vorlesung AvID sind hilfreich.
Seminaranteil: Diese Projektarbeit kann mit 8LP, d.h. ohne Seminar belegt werden. Als Seminarthema bietet sich an Java-APIs und Implementierungen zum direkten Zugang auf GIT-Repositories vorzustellen.

Qualitätsanpassung von Videostreams

Betreuer:Vladimir Nikolov

Projektanteil: Video-Streams, wie sie bei Video-on-Demand, Videotelefonie oder -konferenzen benutzt werden, sind in ihrer Qualität durch die im Netz verfügbare Datenrate sowie die CPU-Ressourcen auf Sender- und Empfängerseite beschränkt. Heutige Systeme wie z.B. LibJitsi passen sich nur auf die Datenrate an. Im Projekt sollen Mechnismen integirert werden, die eine Anpassung an die vorhandenen CPU-Ressourcen erlauben. Messen und Abschätzen der REssourcen findet außerhalb von LibJitsi statt und ist bereits implementiert; entsprechende Interaktionen müssen aber integriert werden. Da in einem solchen Szenario ein Empfänger dem Sender eine Überlastung mitteilen muss, gehört beispielsweise auch eine entpsrechende Signalisierung mit einer RTCP-Erweiterung zur Projektarbeit. Ideale Vorkenntnisse bestehen durch die Vorlesung MMK.
Seminaranteil: Im vorangehenden Seminarteil oder parallel zu besuchenden Seminar sollen die möglichen Qualitätsanpassungen bei heute typischen Videocodecs zusammengestellt werden. Welche Metriken können genutzt weden (z.B. Frame-Rate)? Welche Mechanismen können eingesetzt werden (z.B. Enhancement-Layer)? Welche Auswirkungen haben diese auf Netz- und CPU-Ressourcen bei Sender und Empfänger?

Wintersemester 2014/2015

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Vorbesprechung und Themenvergabe: Mittwoch, 15.10.2014, 16.15 Uhr - 17.45 Uhr, O27-341
Einordnung in die Studiengänge:Informatik, M.Sc.: Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc.: Projekt
Software-Engineering, M.Sc.: Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Voraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:-
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Sommersemester 2014

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Vorbesprechung:Mittwoch 23.4.2014 16.15 Uhr, Raum O27-341
In der Vorbesprechung wird der organisatorische Rahmen präsentiert, die möglichen Themen vorgestellt und danach vergeben.
Einordnung in die Studiengänge:Informatik, M.Sc. (PO 2013): Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc. (PO 2013): Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verwantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Vorraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Vorraussetzungen (formal):keine
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:keine
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Themen

in.Crease: Benutzerverwaltung für ein elektronisches Modulhandbuch

Betreuer: Franz J. Hauck

Projektanteil: Für ein elektronisches Modulhandbuch und Vorlesungsverzeichnis gibt es bereits erste Arbeiten für eine Benutzerführung. Die eingesetzte Technologien sind Java EE insbesondere Java Server Faces und EJB. Für die künftige Benutzerverwaltung sollen geeignete Tabellen für die Benutzerinformationen entwickelt und mit Authentisierungs- und Autorisierungsmechanismen verknüpft werden. Dies soll sich nahtlos in ein Java EE System integrieren. Insbesondere soll die Eingabe von Passwörtern nicht im System selbst sondern bei externen Dienstleister wie z.B. dem KIZ erfolgen. Hierzu sind entsprechende Technologien und Machbarkeiten auszuloten und dann umzusetzen. Entsprechende Kooperationen mit dem KIZ werden vom Betreuer geregelt. Ideale Voraussetzung sind Kenntnise im Bereich Web-Technologien bzw. AvID Stoff.
Seminaranteil: Im vorangehenden oder parallel zu besuchenden Seminar sind Mechanismen und Konzepte für die entfernte und web-basierte Authentisierung zusammen zu tragen, vergleichend gegenüber zu stellen und in der Eignung für den Projektanteil zu evaluieren. Insbesondere sollten OpenID, Shiboleth, OAuith und ähnliche zu untersuchen.

in.Crease: Datenmodellierung für ein elektronisches Modulhandbuch

Betreuer: Franz J. Hauck

Projektanteil: Für ein ein elektronisches Modulhandbuch und Vorlesungsverzeichnis soll eine effiziente Datenmodellierung durchgeführt werden. Die Modellierung soll mittels JavaEE (genauer EJB und JPA, Java Persistence API erfolgen). Die notwendigen Entitäten und Attribute müssen auf ein geeignetes relationales Schema umgesetzt werden. Ein vorläufiges Datenmodell ist vorhanden. Die Herausforderung ist, die Revisionierbarkeit der Daten, d.h. alle Änderungen bleiben gespeichert und müssen nachvollziehbar sein. Das Modell soll in der Lage sein, alle Daten von einem bestimmten Zeitpunkt wieder herzustellen. Um dies zu erreichen sind verschiedene Vorgehensweisen nebeneinander auszuprobieren und deren Effizienz und Handhabung zu vergleichen. Ideale Voraussetzung sind Kenntnisse von JPA bzw. AvID Stoff.
Seminaranteil: Im vorangehenden oder parallel zu besuchenden Seminar sind bestehende Erweiterungen von JPA für die Revisionierbarkeit von Daten zu ermitteln und deren Fähigkeiten im Vergleich gegenüber zu stellen.

Orchestrierte Topologieerfassung

Betreuer: Sven Schober

Wissen über die Netzwerktopologie kann Helfen die Quality-of-Service verteilter Multimedia-Anwendungen zu verbessern. So können z.B.  Cluster innerhalb der Teilnehmer von Videokonferenzen erkannt werden und gezielt Proxy-Server platziert werden, die die Netzwerklast verringern.  Ein bekanntes Werkzeug zur Topologieerfassung ist traceroute, welches die einzelnen "Hops" einer Internet-Route von Quell- zu Zielhost sichtbar machen kann. Um ein umfassendes Bild der Topologie zwischen mehreren Teilnehmern zu erhalten müssen jedoch einige Herausforderungen angegangen werden: Zum einen existiert mit Load-Balancern eine starke Quelle von Ungenauigkeiten, zum anderen sind die Routen der Hin- und Rückrichtung im Allgemeinen nicht identisch und selbst wenn ist dies nicht immer ohne weiteres Erkennbar.  Am Lehrstuhl für Verteilte Systeme entstand u.a. bereits eine Traceroute- Implementierung, welche es erlaubt aus Java heraus Traces zu starten und umfassenden Einfluss auf die versendeten Pakete zunehmen.  In diesem Thema soll der Stand der Technik bei der Topologieerkennung aufgearbeitet (Seminaranteil) werden und aufbauend auf den existierenden Vorarbeiten eine Implementierung angefertigt (Projektanteil) werden.

Kombinierte Bandbreiten- und Topologieerfassung

Betreuer: Sven Schober

Verteilte Anwendungen können von Wissen über Bandbreite und Topoligie des Netzwerks zwischen Hosts profitieren. So können z.B.  Proxy-Server an "günstigen" Stellen platziert werden, um Flaschenhälse weniger zu belasten.  Bisher gibt es für beide Einsatzfälle separate Werkzeuge, für Topologieerkennung z.B. traceroute, für Bandbreitenmessung z.B.  tcpperf. Gerade letztere Kategorie belastet den Netzwerkpfad zwischen Quell- und Zielhost jedoch stark, weshalb in der Forschung einige Ansätze entwickelt wurden die Belastung zu reduzieren.  Weiterhin messen die vorhandenen Ansätze meist nur die Ende-zu-Ende-Bandbreite, Informationen darüber, wo der Flaschenhals entlang des Pfades liegt bleibt verborgen.  Am Lehrstuhl für Verteilte Systeme entstand ein Werkzeug mit dem aus Java heraus Pakete versendet werden können, auf deren Aufbau umfassend Einfluß genommen werden kann. So kann damit z.B.  traceroute sehr einfach implementiert werden, aber auch die erwähnten modernen Bandbreitenmesstechniken.  Ziel dieses Themas soll die Aufarbeitung der Literatur (Seminaranteil) und die Erarbeitung eines Ansatzes zur kombinierten Toplogie-, Latenz- und Bandbreitenmessung entlang eines Pfades sein, sowie eine Implementierung aufbauend auf den vorhandenen Vorarbeiten (Projektanteil).

Digitale Fernsteuerung

Betreuer: Jan-Patrick Elsholz

Projektanteil: Für die Middleware Instant-X soll eine digitalen Fernsteuerung für Video on Demand (VoD) weiterentwickelt werden. Dazu gehört die prototypische Abbildung des Real-Time Streaming Protokolls (RTSP) auf die API der Middleware. Sowohl die Server- als auch die Clientseite sollen betrachtet und im Test-driven Development entwickelt werden. Ideale Voraussetzung sind Kenntnisse von RTSP und der MMK Stoff.
Seminaranteil: Im vorangehenden oder parallel zu besuchenden Seminar sind die Besonderheiten der Middleware Instant-X herauszuarbeiten. Neben den grundsätzlichen Fähigkeiten sind vor allem der Einsatz von RTSP im Zusammenhang mit dem Projektanteil darzustellen.

Zugriffanalyse vorhandener Anwendungen

Betreuer: Steffen Kächele

Projektanteil: Heutige mobile Betriebssysteme (Android/iOS) bieten eine mehr oder weniger umfangreiche Rechteverwaltung für Anwendungen an. Beim Zugriff auf kritische Ressourcen müssen sich Anwendungen entsprechende Rechte bereits während der Installation einholen. Auf üblichen Desktop- und Serverbetriebssystemen ist der Ressourcenzugriff von Anwendungen hingegen weitgehens intransparent. Für vorhandene Java Anwendungen soll ein Analysetool entworfen werden, dass den Zugriff der Anwendung auf System-Ressourcen, Programm-Bibliotheken und JVM-Funktionalität analysiert und darstellt. Das Analysetool soll generisch für mehrere Anwendungsfälle anpassbar und konfigurierbar sein. Die Analyse soll auf Java Bytecode operieren.
Seminaranteil: Im vorangehenden oder parallel zu besuchenden Seminar sind die Funktionsweise von Codeanalyse (insbesondere Bytecode-Analyse) herauszuarbeiten.

Wintersemester 2013/2014

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / 70521
SWS / LP:2S+3Pj / 16LP
Vorbesprechung:Vorstellung und Vergabe der Themen am Donnerstag, 17.10.2013, 10.15 Uhr - 11.45 Uhr, O27-341
Einordnung in die Studiengänge:Informatik, M.Sc. (PO 2013): Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc. (PO 2013): Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt

Informatik, M.Sc. (PO 2010): Projektmodul
Medieninformatik, M.Sc. (PO 2010): Projektmodul
Verwantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Vorraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Vorraussetzungen (formal):keine
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:keine
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h

Themen

in.Crease: GUI-Komponenten für ein elektronisches Modulhandbuch

Betreuer: Franz J. Hauck

Projektanteil: Für ein elektronisches Modulhandbuch und Vorlesungsverzeichnis soll eine erste Version für eine Benutzerführung weiterentwickelt werden. Dazu gehören der Entwurf der Benutzeroberfläche, der Navigation und Benutzerführung für Betrachtungs- und Editorfunktionen. Gemäß dem MVC-Muster soll vor allem View und Controller für einen abgegrenzten Aufgabenbereich erstellt werden. Ein lauffähiger Prototyp soll nach einer Konzeptphase mit JavaEE (genauer JSF und Servlets) entwickelt werden. Ideale Voraussetzung sind Studium der Medieninformatik und Kenntnise von JSF bzw. AvID Stoff.
Seminaranteil: Im vorangehenden oder parallel zu besuchenden Seminar sind die Besonderheiten von JSF herauszuarbeiten. Neben den grundsätzlichen Fähigkeiten sind vor allem der mögliche Einsatz von Validatoren und Templates im Zusammenhang mit dem Projektanteil darzustellen.

in.Crease: Datenmodellierung für ein elektronisches Modulhandbuch

Betreuer: Franz J. Hauck

Projektanteil: Für ein ein elektronisches Modulhandbuch und Vorlesungsverzeichnis soll eine effiziente Datenmodellierung durchgeführt werden. Die Modellierung soll mittels JavaEE (genauer EJB und JPA, Java Persistence API erfolgen). Die notwendigen Entitäten und Attribute müssen auf ein geeignetes relationales Schema umgesetzt werden. Dabei ist die Herausforderung, dass alle Datenänderungen einzeln persistiert werden müssen, um Änderungen nachträglich nach zu verfolgen. Hierzu sollen verschiedene Schemata erstellt und deren Abfrageeffizienz bei großen Datenmengen evaluiert werden. Ideale Voraussetzung sind Kenntnisse von JPA bzw. AvID Stoff.
Seminaranteil: Im vorangehenden oder parallel zu besuchenden Seminar sind die Besonderheiten von JPA herauszuarbeiten. Neben der grundsätzlichen Funktion sind vor allem die Besonderheiten des objektrelationalen Mappings von JPA im Zusammenhang mit dem Projektanteil darzustellen.

Orchestrierte Topologieerfassung

Betreuer: Sven Schober

Wissen über die Netzwerktopologie kann Helfen die Quality-of-Service verteilter Multimedia-Anwendungen zu verbessern. So können z.B.  Cluster innerhalb der Teilnehmer von Videokonferenzen erkannt werden und gezielt Proxy-Server platziert werden, die die Netzwerklast verringern.  Ein bekanntes Werkzeug zur Topologieerfassung ist traceroute, welches die einzelnen "Hops" einer Internet-Route von Quell- zu Zielhost sichtbar machen kann. Um ein umfassendes Bild der Topologie zwischen mehreren Teilnehmern zu erhalten müssen jedoch einige Herausforderungen angegangen werden: Zum einen existiert mit Load-Balancern eine starke Quelle von Ungenauigkeiten, zum anderen sind die Routen der Hin- und Rückrichtung im Allgemeinen nicht identisch und selbst wenn ist dies nicht immer ohne weiteres Erkennbar.  Am Lehrstuhl für Verteilte Systeme entstand u.a. bereits eine Traceroute- Implementierung, welche es erlaubt aus Java heraus Traces zu starten und umfassenden Einfluss auf die versendeten Pakete zunehmen.  In diesem Thema soll der Stand der Technik bei der Topologieerkennung aufgearbeitet (Seminaranteil) werden und aufbauend auf den existierenden Vorarbeiten eine Implementierung angefertigt (Projektanteil) werden.

Kombinierte Bandbreiten- und Topologieerfassung

Betreuer: Sven Schober

Verteilte Anwendungen können von Wissen über Bandbreite und Topoligie des Netzwerks zwischen Hosts profitieren. So können z.B.  Proxy-Server an "günstigen" Stellen platziert werden, um Flaschenhälse weniger zu belasten.  Bisher gibt es für beide Einsatzfälle separate Werkzeuge, für Topologieerkennung z.B. traceroute, für Bandbreitenmessung z.B.  tcpperf. Gerade letztere Kategorie belastet den Netzwerkpfad zwischen Quell- und Zielhost jedoch stark, weshalb in der Forschung einige Ansätze entwickelt wurden die Belastung zu reduzieren.  Weiterhin messen die vorhandenen Ansätze meist nur die Ende-zu-Ende-Bandbreite, Informationen darüber, wo der Flaschenhals entlang des Pfades liegt bleibt verborgen.  Am Lehrstuhl für Verteilte Systeme entstand ein Werkzeug mit dem aus Java heraus Pakete versendet werden können, auf deren Aufbau umfassend Einfluß genommen werden kann. So kann damit z.B.  traceroute sehr einfach implementiert werden, aber auch die erwähnten modernen Bandbreitenmesstechniken.  Ziel dieses Themas soll die Aufarbeitung der Literatur (Seminaranteil) und die Erarbeitung eines Ansatzes zur kombinierten Toplogie-, Latenz- und Bandbreitenmessung entlang eines Pfades sein, sowie eine Implementierung aufbauend auf den vorhandenen Vorarbeiten (Projektanteil).

Effizientes Checkpointing in Byzantinisch Fehlertoleranten Bibliotheken

Betreuer: Christian Spann

Verteilte Anwendungen sehen sich in der Realität mit verschiedenen Ausfall- bzw. Angriffsszenarien konfrontiert. Der Rechner auf dem die Anwendung ausgeführt wird kann ausfallen oder von Hackern übernommen werden. Byzantinisch Fehlertoleranten Systeme versuchen dies durch eine Replikation der Anwendung auf mehrere Rechner zu verhindern. Dabei ist die Logik für eine solche Verteilung unter anderem darauf angewiesen, periodisch den Zustand der Anwendung zum gleichen logischen Zeitpunkt auf allen Replikaten zu sichern. Denn erst nach dieser Sicherung kann die Anfragehistorie der Anwendung gelöscht werden. Die Notwendigkeit dieser Historie ergibt sich aus der durchzuführenden Fehlererholung beim Ausfall bzw. einer übernahme eines Replikats. 
Projektanteil: Design und Implementierung eines Moduls zur verteilten Erstellung und Verifikation von Zustandsschnappschüssen.
Seminaranteil: Untersuchung verschiedener Ansätze zur Erstellung solcher Schnappschüsse und Identifikation der notwendigen Komponenten und Methoden.

Sommersemester 2013

Modulbeschreibung

Titel:Middlewaresystem-Entwicklung
Englischer Titel:Development of Middleware Systems
Typ:Modul
Kürzel / Modulnr:MWE / ?
SWS / LP:2S+3Pj / 16LP
Vorbesprechung:Unverbindliche Vorbesprechung am 18.04.2013, 10.15 Uhr im Raum O27-341.
Einordnung in die Studiengänge:Informatik, M.Sc. (PO 2012): Projekt
Informatik, Lehramt: Wahlfach
Medieninformatik, M.Sc. (PO 2012): Projekt
Informationssystemtechnik, M.Sc.: Wahlpflicht Informatik, Projekt
Verwantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein oder zwei Semester
Vorraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Vorraussetzungen (formal):keine
Grundlage für (inhaltlich):Masterarbeit
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme in das selbständige wissenschaftliche Arbeiten eingeführt werden. Ein jeweils semesteraktuelles Themengebiet wird theoretisch und vor allem praxisorientiert ausgearbeitet. Die Studierenden sollen vertiefte Kenntnisse im jeweiligen Themengebiet erlangen. Daneben werden ausgewählte und themenabhängige Schlüsselqualifikationen vermittelt wie das Schreiben wissenschaftlicher Memoranden, die Evaluation von Messergebnissen, das Arbeiten in Kleingruppen und die Organisation von Softwareprojekten. Die Handhabung eines konkreten Middlewaresystems und die Lösung einer konkreten Problemstellung wird geübt.
Inhalt:Ein semesteraktuelles Themengebiet wird zunächst durch ein einführendes Seminar erschlossen. Durch Selbststudium, Literaturstudium und geleitete Projektarbeiten wird ein individuelles oder in einer kleinen Gruppe zu bearbeitendes Teilthema weiter vertieft, indem konkrete Problemstellungen bearbeitet werden. Beispielhafte Teilthemen sind:
  • Aufbau von Komponenten für eine Multimedia-Middleware,
  • Lösen eines anwendungsorientierten Problems mit verschiedenen Middleware-Techniken (z.B. EJB, CORBA, RMI, ICE, FORMI),
  • Integration neuer Middleware-Mechanismen (z.B. für Fehlertoleranz, Skalierbarkeit, Persistenz), Strukturierung von Middleware-Software (z.B. durch Patterns, aspektorientierte Programmierung, Reflexion).
Literatur:keine
Lehr- und Lernformen:Multimedia- und Internetsysteme, 2S, 4 LP, Pflicht, jedes Semester
Multimedia- und Internetsysteme im Eigenbau, 3Pj, 12 LP, Pflicht, jedes Semester
Seminar und Projektseminar können parallel oder hintereinander abgelegt werden. Vereinzelte Themen erfordern den Beginn mit dem Seminar.
Bewertungsmethode:Die Vergabe der Leistungspunkte erfolgt für je eine Modulteilprüfung im Seminar und Projektseminar.
Die Modulteilprüfung Seminar erfordert Anwesenheit und enthält Ausarbeitung, Vortrag und Mitarbeit (Gewichung wird zu Beginn jeweils bekannt gegeben).
Die Modulteilprüfung Projektseminar erfordert Anwesenheit und Mitarbeit und enthält Ausarbeitung und Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:nach Leistungspunkten gewichtete Note der Modulteilprüfungen
Arbeitsaufwand:Präsenzzeit Seminar, Projektseminar: 75h
Vortrag, Ausarbeitung im Seminar: 90h
Selbststudium, Projektarbeit, Abschlusspräsentation und Ausarbeitung im Projektseminar: 315h
Summe: 480h