Middlewaresystem-Entwicklung - MWE

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).