Lehrstuhl Prof. Zitterbart - Institut für Telematik

Software-Entwicklung (PSE) - ITM Prof. Zitterbart

Experimentierplattform für Instant-Messaging

Vorbesprechung am Mittwoch, dem 17. Mai 2017 um 15:30 Uhr im Seminarraum 367, Geb. 20.20/3. OG
XMPP
Themenfeld PSE
Tagtäglich nutzen wir internetbasierte Anwendungen wie WhatsApp, machen uns dabei aber nur wenige Gedanken darüber über die Zusammenhänge und Mechanismen sind die sich hinter der der einfachen Oberfläche verbergen. Wie findet eine Nachricht ihren Weg zum Empfänger? Welche Probleme treten dabei auf? Wie - und wo! - werden sie gelöst?

Das PSE-Projekt "Experimentierplattform für Instant-Messaging" setzt sich nicht nur mit moderner Software-Entwicklung auseinander sondern greift einige dieser Fragen auf - und bietet so auch die Möglichkeit, parallel in der Vorlesung Einführung in Rechnernetze erlernte Inhalte direkt anzuwenden und in die Praxis umzusetzen.

XMPP

Das XMPP-Protokoll ist ein flexibler, offener Internetstandard für Kommunikationsdienste. Sein primäres Anwendungsgebiet ist Instant-Messaging. Aufgrund seiner Erweiterbarkeit kann XMPP aber auch für eine Vielzahl anderer Zwecke genutzt werden. Wie E-Mail basiert XMPP auf einer dezentralen, föderierten Architektur. Facebook-Messenger und Google Talk basierten auf XMPP, WhatsApp verwendet XMPP nach wie vor in einer modifizierten Form.

Projektziele

Im Rahmen des PSEs soll eine aus Client und Server bestehende Experimentierplattform für Instant-Messaging auf Basis des XMPP-Protokolls entstehen. Eine sinnvolle Teilmenge des Standards ist in einer modularen Architektur umzusetzen, so dass einzelne Komponenten und Protokollschichten im Netzwerkstack mit geringem Aufwand ersetzt werden können. Dabei können auch Aspekte von Sicherheit und Privatsphärenschutz eine Rolle spielen.

Solide Java-Kenntnisse werden vorausgesetzt. Vorwissen zur Netzwerkprogrammierung (insbesondere mit Java) schadet nicht, kann sich aber auch im Laufe des Praktikums (und der parallel stattfindenden Vorlesung Einführung in Rechnernetze) angeeignet werden.

Entwicklungsumgebung

  • Eclipse

  • JUnit zum Testen

  • Überdeckungstests zum Beispiel mit CodeCover