Institut für Verteilte Systeme
- 1:
Projekte. - 2:
Publikationen. - 3:
Lehre. - 4:
Personen. - 5:
Intranet.
Weitere Themen
Middleware
Praktikum im Hauptstudium / WS 2004/2005 / CS 5850
Angaben
- Dozent
- Prof. Dr. Franz J. Hauck
- Betreuer
- Andreas Schmied
Andreas Schorr - Termine
- Vorbesprechung am 22.10.04 um 9.00 Uhr im Raum 121, Freitag 8-10 Uhr im Raum 121
- SWS
- 4P
Bitte kommen Sie umgehend im Büro O27-346 für die Vergabe der Server-Accounts vorbei!
Please meet us immediately in office O27-346 to get a server account!
Themengebiet
Eine der Forschungsgruppen der Abteilung Verteilte Systeme beschäftigt sich mit Middleware-Systemen. Diese Systeme dienen als Plattform zur Entwicklung verteilter Anwendungen. Beispiele für solche Systeme sind Java RMI, CORBA, .NET, Enterprise Java Beans. Spezielle Middleware-Systeme unterstützen verteilte Anwendungen, die garantierte Übertragungsqualitäten erfordern, z.B. für multimediale Datenströme.
Im Praktikum werden in diesem Semester zwei Themenbereiche angesprochen. Zum einen wird eine Web-basierte Anwendung mit Hilfe von Enterprise Java Beans (EJB) und Java Server Pages (JSP) entwickelt. Zum anderen werden Middleware-Komponenten für die Übertragung von Video- und Audioströmen im Internet implementiert.
Web-basierte Anwendung
Enterprise Java Beans ist eine Middleware-Technik, die es erlaubt eine Anwendung in Form von Komponenten (Beans) zu entwickeln. Dabei unterstützt die Middleware (ein EJB-Container) den Entwickler bei Persistenz (dauerhafte Speicherung von Daten), Sicherheit, Transaktionen und dem Lebenszyklus der Komponenten. Mit Hilfe von JSP wird die dynamische Erzeugung von Web-Seiten mit Aufrufen an Beans verknüpft.
Ziel des Praktikums ist es, in einzelnen Arbeiten eine oder mehrere Web-basierte Anwendungen zu entwickeln. Als Anwendungen kommen z.B. in Frage:
- Werkzeug für die Anmeldung und Verwaltung von Prüfungen durch den Prüfungsausschuss
- Literaturdatenverwaltung mit Literatursuche und Up- und Download von Dokumenten
- Anmeldeprogramm für Studierende (für Seminar- oder Prüfungsanmeldung)
- elektronisches Abgabesystem für Übungsaufgaben
Voraussetzungen: Java-Kenntnisse
Nützliche Vorkenntnisse: EJB-Kenntnisse (z.B. aus "Architekturen für verteilte Internetdienste"), Eclipse-Kenntnisse
Video-Audio-Übertragung
Ein Teil der Middleware-Gruppe der Abteilung beschäftigt sich mit einer Middleware zur Unterstützung von verteilten Multimedia-Anwendungen, welche Streaming-Dienste für Audio und Video anbieten und sich automatisch an Veränderungen in der vom Netzwerk bereitgestellten Dienstegüte anpassen. Im Praktikum sollen in diesem Semester zentrale Komponenten dieser Middleware, sogenannte Media-Controller, für Linux implementiert werden. Das Ziel des Praktikums ist es, mit Hilfe dieser Komponenten eine Anwendung zur Audio- und Video-Kommunikation über IP, einen Video-On-Demand Server und einen Multimedia-Proxy zu entwickeln. Letzterer dient dazu, Multimediaströme in unterschiedliche Formate zu konvertieren. Diese Komponenten sind auf Senderseite für das Erzeugen, Verarbeiten und Versenden, und auf Empfängerseite für das Empfangen, Verarbeiten, Synchronisieren und Darstellen von Audio- und Video-Streams verantwortlich. Eine weiterer Media-Controller wird auf Proxy-Knoten eingesetzt, um Multimedia-Streams in einem Netzwerk an die vorhandenen Ressourcen des Netzes und der Endgeräte anzupassen. Eine plattformabhängige Implementierung in C++ für das Windows Betriebssystem ist bereits vorhanden, sodass Teile des Codes nicht völlig neu entwickelt, sondern lediglich auf Linux portiert werden müssen. Der Media-Controller besteht aus einer Reihe von Teilkomponenten, die jeweils von einzelnen Teilnehmern des Praktikums entwickelt werden können. Im Einzelnen sind folgende Module zu implementieren:
- RTP/RTCP-Stack: Übertragung der Daten mittels des Realtime Streaming Protocol (RTP)
- Packetizer/Depacketizer: Zerlegen/Verpacken von Audio-/Video-Frames in RTP-Pakete und Zusammenfügen von Paketen
- Audio/Video Filter: Filterung von Multimediadaten zur Reduzierung der Datenrate
- Audio/Video Transcoder: Konvertierung von Multimediadaten in verschiedene Formate
- File I/O: Lesen/Schreiben von diversen Multimediadateiformaten (z.B. AVI, MPEG)
- Audio/Video Capturing: Einlesen von Multimediadaten von Mikrofon bzw. Webcam
- Audio/Video Output: Darstellen von Video-Frames auf dem Bildschirm, bzw. Ausgabe von Audio-Samples auf dem Lautsprecher
- Proxy Media Controller: integriert die Komponenten a) bis d)
- Sender/Empfänger Media Controller: integriert die Komponenten a) bis g); Synchronisation zwischen Multimedia-Streams
Voraussetzungen: C++-Kenntnisse
Nützliche Vorkenntnisse: je nach
Teilaufgabe: Netzwerkprotokolle, Threads und Thread- Synchronisation,
Verarbeitung von Multimediadaten unter Linux
Anmeldung
Bei Interesse melden Sie sich bitte unverbindlich bei Prof. Franz Hauck, Andreas Schmied oder bei Andreas Schorr per E-Mail an. In der ersten Woche des Wintersemesters wird im Rahmen einer Vorbesprechung eine konkrete Themenvergabe vorgenommen. Haben Sie Interesse und möchten nähere Auskünfte, so wenden Sie sich bitte ebenfalls an die Betreuer.
