Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine
Marcel Genzmehr 2 Überblick Einführung Was ist enthalten? MVC Umsetzung Aufbau Beispiel Fazit Quellen
Marcel Genzmehr 3 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
Marcel Genzmehr 4 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 – Logging, Java Naming Services –... Verwaltung und Steuerung von User-Sessions Flux: Screens und Aktionen zur Benutzerverwaltung
Marcel Genzmehr 5 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: )
Marcel Genzmehr 6 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...
Marcel Genzmehr 7 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)
Marcel Genzmehr 8 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
Marcel Genzmehr 9 Die Assembler Besteht aus 5 unterschiedlichen Modulen – Action – Page – Layout – Navigation – Screen Für den Ablauf „flow“ zuständig
Marcel Genzmehr 10 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
Marcel Genzmehr 11 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
Marcel Genzmehr 12 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
Marcel Genzmehr 13 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
Marcel Genzmehr 14 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
Marcel Genzmehr 15 Einbettung
Marcel Genzmehr 16 Zusammenspiel
Marcel Genzmehr 17 Klassenloader
Marcel Genzmehr 18 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
Marcel Genzmehr 19 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
Marcel Genzmehr 20 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
Marcel Genzmehr 21 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
Marcel Genzmehr 22 Demo – „Daten auflisten“ List.javaList.vm
Marcel Genzmehr 23 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
Marcel Genzmehr 24 Links Power aus der Turbine (Artikel) turbine.pdf Beispiel: Webshop
Marcel Genzmehr 25 Vielen Dank für Ihre Aufmerksamkeit Fragen?