16
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

Embed Size (px)

Citation preview

Page 1: 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

Page 2: 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

Page 3: 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

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

Page 4: 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

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!

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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>

Page 8: 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

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

...

Page 9: 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

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>

Page 10: 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

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“/>

Page 11: 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

11PG: Generierung von Webanwendungen aus visuellen Spezifikationen

Entwurfsmuster für WebanwendungenBastian Cramer

Kontinuität II

Implementierung mittels Abstract Form Pattern Eingebautes Session Management

Page 12: 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

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

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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“/>

Page 16: 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

16PG: Generierung von Webanwendungen aus visuellen Spezifikationen

Entwurfsmuster für WebanwendungenBastian Cramer

Vielen Dank für die Aufmerksamkeit!