25
03.06.2004 Marcel Genzmehr 1 Javabasierte Webtechnologie n Web Application Framework Turbine

03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

Embed Size (px)

Citation preview

Page 1: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

03.06.2004 Marcel Genzmehr1

Javabasierte Webtechnologien

Web Application Framework Turbine

Page 2: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

03.06.2004 Marcel Genzmehr2

Überblick

Einführung Was ist enthalten? MVC Umsetzung Aufbau Beispiel Fazit Quellen

Page 3: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 4: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 5: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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)

Page 6: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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 ...

Page 7: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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)

Page 8: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 9: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

03.06.2004 Marcel Genzmehr9

Die Assembler

Besteht aus 5 unterschiedlichen Modulen– Action– Page– Layout– Navigation– Screen

Für den Ablauf „flow“ zuständig

Page 10: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 11: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 12: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 13: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 14: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 15: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

03.06.2004 Marcel Genzmehr15

Einbettung

Page 16: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

03.06.2004 Marcel Genzmehr16

Zusammenspiel

Page 17: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

03.06.2004 Marcel Genzmehr17

Klassenloader

Page 18: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 19: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 20: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 21: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 22: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

03.06.2004 Marcel Genzmehr22

Demo – „Daten auflisten“

List.java List.vm

Page 23: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

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

Page 25: 03.06.2004Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine

03.06.2004 Marcel Genzmehr25

Vielen Dank für IhreAufmerksamkeit

Fragen?