Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen
Bastian Cramer, Universität Paderborn
Entwurfsmuster für Webanwendungen
Projektgruppe: Generierung von Webanwendungen aus visuellen
Spezifikationen
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
2PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Gliederung
Einführung in Entwurfsmuster
Nachteile herkömmlicher Entwicklung
Technische Begriffe
Konkrete Entwurfsmuster
Zwischendurch: Vergleich mit dem Jakarta Struts Framework
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
3PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Was sind Entwurfsmuster?
Abstraktion eines Problems Universelle Lösung
Heutige Webanwendungen sind sehr komplex, z.B. Amazon, Ebay,...,
Trotzdem existieren Strukturen, die immer wieder auftauchen.
„Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice“
Christopher Alexander, 1977
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
4PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Herkömmlicher Entwicklungsprozess
Webanwendungen werden häufig relativ chaotisch erstellt
Resultierende Nachteile: Schlechte Wartbarkeit Keine Trennung zwischen Layout und Logik Schlechte Testbarkeit (Frontend/Backend) Schlechte Portierbarkeit Schlechte Wiederverwendbarkeit
Entwurfsmuster sollen diese Nachteile umgehen.
Jedoch: OO Herangehensweise nicht immer nötig!
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
5PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Technische Begriffe I
Komponente: Wiederverwendbarer Softwareteil mit definierten
Schnittstellen Komponenten können unterschiedlich granular sein
Java Bean: Java Klasse mit Attributen auf die mittels „Getter“ und „Setter“ Methoden zugegriffen werden kann
Model 1 / Model 2 – mehrschichtige Architekturen
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
6PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Technische Begriffe II
Das MVC Pattern
•CSS/HTML•XML/XSLT
•ApplicationServer:Tomcat o.ä.
Apache
•Datenbank:•MySQL
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
7PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Vergleich Struts MVC vs. JSP Technologie
<html><head> <title>JSP Iteration ohne MVC</title></head><body> <% Vector users = Datenbank.getUsersVector(); for (int i=0; i < users.size(); i++) out.println((String)users.get(i)); %></body></html>
<html:html locale="true"><head><title>Struts Iteration</title><html:base/></head><body><logic:iterate id="user" name="Users"> <bean:write name="user" property="name" /> </logic:iterate></body></html:html>
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
8PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Konkrete Entwurfsmuster
Es existieren verschiedene Typen von Entwurfsmustern: Design Navigation Spezielle für eCommerce Hier: OO Entwurfsmuster, für den Entwickler
1. Zentraler Verteiler / Controller Servlet Zentrales Servlet (Skript) verteilt Anfragen an
ausführende Skripte Vorteil bei Einsatz verschiedener Endgeräte
Dispatching
Controller
...Benutzeraktionen
Methode 1
Methode n
...
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
9PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Zentraler Verteiler
Vgl. Struts:
<action path="/userLogin" //Mapping Name type="de.myPackage.UserLoginAction" //mit Mapping
assoziierte Klasse validate="true" // Eingabedaten
validieren name="loginForm" // assoziierte Java Bean scope="session" // Gültigkeitsbereich input="/client/index.jsp"> // assoziierte JSP
<forward name="success" path="/client/success.jsp"/> // Forwarding bei Erfolg
<forward name="login" path="/client/index.jsp"/> // Forwarding bei Mißerfolg
</action>
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
10PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Kontinuität I
HTTP Protokoll zustandslos Es müssen Daten über mehrere Seiten „mitgenommen“
werden1. Parameter in der URL kodieren:
1. Hidden Fields
1. Unterschiedliche Button Namen
<a href=„skript.cgi?action=about“>About</>
<form action=„skript.cgi“><input type=„hidden“ name=„isbn“ value=„05254447“></form>
<input type=„submit“ name=„delete-05254447“/><input type=„submit“ name=„delete-05444777“/>
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
11PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Kontinuität II
Implementierung mittels Abstract Form Pattern Eingebautes Session Management
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
12PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Kontinuität III
Üblicherweise entstehen 3 Arten von Informationen:1. Formulardaten2. Fehlerdaten3. Voreingetragene Formulardaten
Three Java Bean Pattern schlägt vor, diese 3 Arten in 3 unterschiedlichen Beans zu speichern Alle Daten wohl definiert Leichte Verarbeitung Leichte Testbarkeit
Einsatz oft in Kombination mit einem zentralen Controller Pattern
Wird vom Struts Framework benutzt
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
13PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Kontinuität IV
Speicherung von sensiblen Daten in hidden Fields, Buttons oder URLs nicht immer möglich
Shop Anwendungen Sitzungsmanagement oft
bereits implementiert (PHP, JSPs,...)
Beachtung von Sicherheitsmerkmalen
Sitzungs Ids dürfen nicht gestohlen werden (erraten)
Verschlüsselung, möglichst mit Informationen über den Client
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
14PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Leistung
Anwendungen groß komplexe Validierung Client sollte möglichst viel Arbeit übernehmen Nicht zuverlässig
Active View Pattern zur Lastminimierung Typische Seiten einer Anforderung werden gecached
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
15PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Landestypische Formatierungen
Webanwendungen international
Anfrage an ObjectFormatter Generierung eines landestypischen SubObjectFormatterStruts:
<bean:message key=„title“/>
Universität PaderbornFakultät für E-Technik,
Informatik und Mathematik
16PG: Generierung von Webanwendungen aus visuellen Spezifikationen
Entwurfsmuster für WebanwendungenBastian Cramer
Vielen Dank für die Aufmerksamkeit!