Fraunhofer Watermarking-Portal

Screenshot der Ansicht

Hauptprojekt des ersten Praxissemesters 2004 am Fraunhofer-IPSI war es, zusammen mit meiner Kollegin Verena Henrich das Fraunhofer Watermarking-Portal zu entwickeln. Diese dynamische Web-Anwendung, ermöglichte registrierten Nutzern, Watermarking selbst auszuprobieren. Außerdem konnten Wasserzeichen-Entwickler ihre Algorithmen zur Laufzeit in das Portal einbinden. Leider wurde das Portal mittlerweile abgeschaltet.

Eingesetzte Technologien

Als Programmiersprache wird Java 5.0 (Java EE) eingesetzt. Die statischen Seiten sind HTML-Seiten, die dynamischen JSPs. Persistente Daten wurden zu Anfang noch komplett in XML-Dateien abgelegt. Das Mailing erfolgt über die JavaMail API.

Umsetzung

Um die hohe Erweiterbarkeit und Änderbarkeit zu erreichen, ist das Portal nach dem Model-View-Controller-Pattern aufgebaut. Dabei sind Ansichten (Views), Daten (Model) und Anwendungslogik (Controller) strikt voneinander getrennt.

Alle Anfragen gehen immer an ein zentrales Servlet – den FrontController – der diese an eine Klasse RequestProcessor weiterleitet. Diese führt nun in Abhängigkeit der in der Anfrage übergebenen Parameter sowie des Zustands von Model und Session die Methoden der entsprechenden Action-Klassen aus. Eine Action hat semantisch eine bestimmte Funktionalität (zum Beispiel LoginAction) und kann die Daten des Models lesen und modifizieren sowie den nächsten View in die Session legen.

Die Klasse ScreenFlowManager holt sich den View aus der Session und ordnet ihr die konkrete JSP zu, die dann vom Controller als Antwort an den Nutzer ausgeliefert wird. Meldet sich der Nutzer zum Beispiel mit falschem Passwort am System an, würde die Fehlermeldung von der Action, die die Anmeldedaten überprüft, in die Session gelegt. Die JSP würde die Meldung dann anzeigen, indem sie diese wieder aus der Session holt.

Um die Ablaufsteuerung allein dem Controller zu überlassen, muss auf statische Links verzichtet werden, denn sie legen von vornherein fest, welche Seite hinter dem Link steckt und wie diese aussieht. Der Ablauf wird daher in Prozesse (Processes) und Schritte (Steps) eingeteilt. Ein Link verweist maximal auf einen Process, nie auf einen Step. Ein Process besteht aus einzelnen Steps. Außerdem wird ein StartStep festgelegt, der nach einem Prozesswechsel aufgerufen wird. Einem Step sind seine möglichen Nachfolger-Steps, sein View sowie Pre- und PostActions zugeordnet, die der RequestProcessor ausführen lässt. Der nächste Schritt wird von den Actions festgelegt.

Auszeichnung

Urkunde des

Im Juni 2005 wurde das Portal mit dem "AKEP Award 2005 – Sonderpreis für Ausbildungsinitiativen" ausgezeichnet, denn "Die Einmaligkeit der Anwendung, die Fortschrittlichkeit und die Bedeutung des Themas sowie der generische interne Aufbau sind charakteristisch für das Ausbildungsprojekt und machen gleichzeitig seine Preiswürdigkeit aus" (Dr. Elisabeth Niggemann).

Download