Middlewaresystem-Praxis - MWP

Modulbeschreibung

Titel:Middlewaresystem-Praxis
Englischer Titel:Practice of Middleware Systems
Typ:Modul
Kürzel / Modulnr.:MWP / 70958
SWS / LP:4P / 8LP
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
Verantwortlich:Prof. Dr.-Ing. Franz J. Hauck
Unterrichtssprache:Deutsch
Turnus / Dauer:jedes Semester / ein volles Semester
Voraussetzungen (inhaltlich):Programmiererfahrung in Java, Grundkenntnisse in Rechnernetzen und Verteilten Systemen
Voraussetzungen (formal):-
Grundlage für (inhaltlich):Masterarbeit im Bereich Middleware
Lernergebnisse:Die Studierenden sollen im Bereich Middleware-Systeme Kenntnisse für den praktischen Umgang erlangen. Ein jeweils semesteraktuelles Themengebiet wird zunächst kurz theoretisch und dann 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 eines Kurzberichtes, Kurzpräsentationen zum Arbeitsstand, 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 vorgestellt und theoretisch beleuchtet. 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:Praktikum Multimedia- und Internetsysteme, 4P, 8LP, Pflicht, jedes Semester
Bewertungsmethode:Die Modulprüfung im Projekt erfordert Anwesenheit und enthält Ausarbeitung, Abschlusspräsentation sowie eine Bewertung der praktischen Problemlösung (Gewichtung jeweils abhängig vom Thema und wird zu Beginn bekannt gegeben).
Notenbildung:Ergebnis der Modulprüfung
Arbeitsaufwand:Präsenzzeit Praktikum: 60h
Selbststudium, Praktikumsarbeit, Abschlusspräsentation und Ausarbeitung im Praktikum: 180h
Summe: 240h

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?