Upload
damian-hartmann
View
218
Download
2
Embed Size (px)
Citation preview
03.06.2004 Marcel Genzmehr1
Javabasierte Webtechnologien
Web Application Framework Turbine
03.06.2004 Marcel Genzmehr2
Überblick
Einführung Was ist enthalten? MVC Umsetzung Aufbau Beispiel Fazit Quellen
03.06.2004 Marcel Genzmehr3
Einführung
Seit 1999 in Entwicklung Open Source Projekt
– Teil des Apache Jakarta Projekts KEIN „application server“ MVC-Framework Integration anderer Jakarta Projekte
– (Jetspeed, Velocity, ...) Sammlung von immer wieder gebrauchten Modulen und
Werkzeugen
03.06.2004 Marcel Genzmehr4
Was ist enthalten?
Grosse Sammlung von Services unter dem Namen Fulcrum:
– Automatische Validierung von HTML-Formularen (Intake-svc)– Web-Services (z.B. File-Upload)– Sicherheitssystem mit Benutzer, Rollen, Gruppen und
Berechtigungen– JavaMail zum Verschicken von E-Mail– Logging, Java Naming Services– ...
Verwaltung und Steuerung von User-Sessions Flux: Screens und Aktionen zur Benutzerverwaltung
03.06.2004 Marcel Genzmehr5
Model
Torque für Datenbank Zugriffe– OR-Mapper– XML-Beschreibung des DB-Schemas– Anfragen ggf. über sogenannte Criteria-Objekte oder SQL– Erzeugt Objekte als Repräsentation der Daten– Pool zu Verwaltung von JDBC Verbindungen– Siehe ORM/JDO (Vortrag: 17.06.2004)
03.06.2004 Marcel Genzmehr6
View
JSP möglich Integration von Template Engines (empfohlen) Velocity
– Open Source, Apache Jakarta Projekt– Dokumente aus Templates– Einfache Kontrollstrukturen– Für jede Art von Text verwendbar– Kommunikation zwischen Code und Template über Kontext
Objekte Weiter Template Lösungen: WebMacro, FreeMarker ...
03.06.2004 Marcel Genzmehr7
Pull-Model
Tool Objekte Zum Datenaustausch zwischen Model und View Effektive Trennung der Daten von Präsentationsschicht Einheitliches Interface:
– Model-Definition kann sich ändern ohne die Präsentation zu beeinflussen
– Nur das Tool objekt muss angepasst werden Verschiedene Lebenszeiten
(Global, Session, Request, User)
03.06.2004 Marcel Genzmehr8
Controller
Wird zur Verfügung gestellt Meist Action-Klassen
– Werden von Servlet aufgerufen– Nehmen notwendige Veränderungen am Model vor– Falls nötig: neues View setzen
03.06.2004 Marcel Genzmehr9
Die Assembler
Besteht aus 5 unterschiedlichen Modulen– Action– Page– Layout– Navigation– Screen
Für den Ablauf „flow“ zuständig
03.06.2004 Marcel Genzmehr10
Action-Klassen
Programmcode der Aufgaben ausführt– z.B. Daten aus einem Login Formular verarbeiten
Validiert in der Regel die Eingabe Speicherung der Eingabe in einer DB Entscheidet welcher Screen folgt Wird von Page aufgerufen Vorteil:
– Datenverarbeitung getrennt von Servlet– Erweiterbar durch Aufruf EJBs
03.06.2004 Marcel Genzmehr11
Screen-Klassen
Wird von Layout ausgeführt Stellt den Körper der Seite dar Verantwortlich für Datenanzeige Generiert den HTML Teil der Seite Normalerweise Template-Context Ausführung von Code möglich
– z.B. ein EJB das die HTML Seite bzw. den Template-Context mit Daten aus dem Modell füllt
03.06.2004 Marcel Genzmehr12
Navigation
Wird von Layout aufgerufen Stellt das allgemeine Navigationsschema dar
– Header, Footer, Menu Ermöglicht verschiedener Navigationsmodule für
unterschiedliche Layouts und Screens Aufruf von EJBs möglich
03.06.2004 Marcel Genzmehr13
Layout
Wird vom Page-Modul aufgerufen Bestimmt die physikalische Struktur der Seite
– Position der Navigationsauswahl– Position des Bodys (Screen)
Führt das Screen-Modul aus zum Seitenaufbau Erstellt die Navigation mit dem Navigations-Modul
03.06.2004 Marcel Genzmehr14
Page Modul
Erstes Glied in der Ausführungskette Beinhaltet alle anderen Module Überpüft ob Aktion ausgeführt werden muss
– Wenn ja: Versuch die Aktion auszuführen Anfordern des Layouts Ausführen des aktuellen Layouts
03.06.2004 Marcel Genzmehr15
Einbettung
03.06.2004 Marcel Genzmehr16
Zusammenspiel
03.06.2004 Marcel Genzmehr17
Klassenloader
03.06.2004 Marcel Genzmehr18
Klassenloader
Dynamisches Laden der 5 Module Optionaler Cache für schneller Ladezeiten Pfad zu den Loader in Konfigurationsdatei angegeben
– Bei Änderung des Framework Kern nur Pfad umsetzen– Keine Veränderung im Code nötig
Bietet die Möglichkeit die Webanwendung als Stand-Alone anzubieten, getrennt von Framework
03.06.2004 Marcel Genzmehr19
Zusammenfassung
Page-Konzept = OO-Darstellung eines HTML-Dokumentes Torque, Actions, Seiten Controller und View = MVC-
Konzept Caching-Mechanismus:
– Intantiierte Objekte für mehrere Seiten verwendbar– Ressourcen sparen
Klassenloader:– Einfaches ändern des Kernsystems Angabe eines anderen
Klassenloader in der Konfigurationsdatei
03.06.2004 Marcel Genzmehr20
Bsp.: „Suche Längen-/Breitengrad“
Aufgabe:– Einfache Webanwendung– Eingabe/Auflisten von Daten– Suche nach Daten (Ortsnamen)– Validierung der Eingaben und Fehlerausgabe– Speicherung der Daten in Datenbank
03.06.2004 Marcel Genzmehr21
Umfang
Geschätzter Aufwand– Mit TDK, ca 2h Arbeit– 2 Action-Klassen– Eine Screen-Klasse– 3 Pull Tools– 5 weitere, automatisch erzeugte Klassen – 4 Screen Templates– 4 Templates für Navigation und Layout– Ca. 150 Zeile Java Code, 100 Zeilen HTML
03.06.2004 Marcel Genzmehr22
Demo – „Daten auflisten“
List.java List.vm
03.06.2004 Marcel Genzmehr23
Fazit
Dient zur schnellen Entwicklung von Webapplikationen Durch Templates und Tools können Oberflächen leicht
gestaltet werden Einheitlicher Code für verschiedene DB-Anwendungen Baukastensystem ermöglicht wiederkehrende Aufgaben
nicht ständig neu zu erfinden
03.06.2004 Marcel Genzmehr24
Links
http://jakarta.apache.org/turbine/
Power aus der Turbine (Artikel)
turbine.pdf
Beispiel: Webshop
03.06.2004 Marcel Genzmehr25
Vielen Dank für IhreAufmerksamkeit
Fragen?