Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Turbine Konzepte und Dienste

Ähnliche Präsentationen


Präsentation zum Thema: "Turbine Konzepte und Dienste"—  Präsentation transkript:

1 Turbine Konzepte und Dienste
Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)

2 Einführung Servlet-basiertes Webapplikations-Framework
Ermöglicht schnell, sichere Webanwendungen zu erstellen Nützliches Framework zur Erstellung komplexer Applikationen mit HTML-Schnittstelle MVC-Muster wird umgesetzt Nicht nur im Web einsetzbar; Stand Alone Modus – man kann auch Einzelmodule verwenden Open Source (kostenlos, Quellcode frei verfügbar) Mögliche Einsatzgebiete: B2B, CRM, Portal-Engine, Bug-Tracking System Einzelmodule: Tourgue, Fulcrum, Tomcat 4.0 Customer Relationship Management:

3 MVC – Model View Controller
Modell zur Trennung bestimmter Programmeigenschaften Idee des Modells ist die Trennung des Programms in die drei Einheiten: Datenmodell Präsentation Programmsteuerung Model-Teil = SQL ; Datenmodell der Informationen Controller = Java View - Velocity

4 MVC – Model View Controller
Ziel: flexibles Programmdesign Änderung oder Erweiterung einfach zu halten. Übersicht und Ordnung in großen Anwendungen Trennung bringt Rollenverteilung mit sich: Fachkräfte können optimal eingesetzt werden Model-Teil = SQL ; Datenmodell der Informationen Controller = Java View - Velocity

5 MVC – Model View Controller
Model-Teil -beinhaltet die Werte und Eigenschaften der Komponenten Controller-Teil -werden Benutzer-Aktionen geprüft, ausgewertet und an das Model weitergeleitetet View-Teil -visuelle Darstellung der Komponenten Turbine stellt ein MVC-Modell im Sinne einer Webapplikation bereit Model-Teil = SQL ; Datenmodell der Informationen Controller = Java View - Velocity MVC-Architektur

6 MVC – Model View Controller
Vorteil: durch die Trennung der einzelnen Teile, kann z.B. das Aussehen einer Komponente verändert werden, ohne ihr Verhalten zu modifizieren neue Benutzer-Ereignisse erfordern nur neue Verhalten im Controller-Teil

7 MVC – Model View Controller
Nachteil: Kommunikationen zwischen View und Controller sind äußerst komplex und unüberschaubar Lösung: Entwicklung einer modifizierten MVC durch die Swing-Entwickler

8 MVC – Model View Controller
Modifizierte MVC Änderungen wie folgt: Modell – Controller - View Modifiziertes MVC

9 Request – Response Zyklus
Hauptaufgabe von Turbine auf HTTP-Request eines Users reagieren gewünschte Seite mitsamt Kopf, Navigation Fuß generieren und anschließend zurückzuliefern. Sukzessives Zusammensetzen und agieren auf User-Aktionen wird von so genannten Assemblern erledigt.

10 Assembler Die fünf Assembler im Systemablauf

11 Request – Response Zyklus
Bei einem Aufruf werden mehrere Assembler benötigt, die gemeinsam an dem Endresultat arbeiten HTTP-Request ist typischerweise Browseraufruf

12 Seitenstruktur Page – lädt die angegeben Seiten,
Screens, Layouts oder Default- Layout Layout – gibt die physikalische Struktur der zu erzeugenden HTML-Seite an Screen – stellt den Körper eines HTML- Dokument dar und ist verantwortlich für Benutzerinteraktion und Daten- anzeige Navigation – in den Navigationselementen können mehrere Seiten zusammen- gefasst und für mehrere Screens benutzt werden.

13 Seitenstruktur Nach Aufbau der einzelnen Komponenten wird die fertige HTML-Seite an den Benutzer zurückgegeben.  Page-Konzept ist eine objektorientierte Darstellung eines HTML-Dokuments.

14 Seitenstruktur Alle zur Seitenerzeugung instantierten Objekte können durch einen Caching-Mechanismus wieder verwendet werden, um Ressourcen zu sparen. Ende Gernot

15 Torque Ursprünglich ein Teil von Turbine Framework
mittlerweile eigenständiges Projekt Objektrelationales Datenbanktool Ist ein Object-Persistence-Layer, der sämtliche Aufgaben für die Datenbankanbindung übernimmt. Generiert einerseits SQL-CREATE Scripts um notwendige Tabellen zu erstellen andererseits die notwendigen Java-Klassen

16 Views mit Template-Systemen
Besteht in Turbine aus einem Screen, der zusammen mit der Navigation durch das Layout einer Seite zusammengesetzt wird. Ausgabeformat  HTML, XML Template Engines – Tools die Platzhalter z.B. HTML-Templates durch vom Modell gelieferte Daten ersetzen Templates werden vom Template Service verwaltet

17 Seitenaufbau Templates werden nicht direkt ausgegeben sondern vom Page-Modul mit Navigation versehen und gelayoutet In der Layout-Datei werden Kopf, Menü, Hauptscreen und Fuß in einer Tabellenstruktur zusammengefasst Positiver Aspekt: man muss nicht die gesamte Datei ändern sondern nur das betroffene Template

18 Seitenerstellung mit Screen
Screen ist eine Spezialisierung der abstrakten Klasse Screen. Ist ein Assembler und normalerweise mit einem gleichnamigen Template verknüpft. Abstrakte Methoden werden vom Layout aufgerufen

19 UI-Manager Service für die Benutzerschnittstelle (ähnlich CSS)
Ermöglicht das festlegen eines vordefinierten Designs unter Verwendung von einfachen Einstellungen wird im Template-File eingebunden WEBAPP/resources/ui/skins/

20 Sicherheit ausgeklügeltes Benutzerkonzept wird zur Verfügung gestellt
Einem Benutzer können: mehrere Rollen in verschieden Gruppen zugewiesen sein Verweis: Security-Service Rolle = Rechte Gruppen = horizontale Richtung

21 Sicherheit Security Model User Group Role Permission
org.apache.turbine.services.security Package User = Benutzer (1) Group = gruppe (mehere Benutzer) Role und Permission können für beide User bzw. Group vergeben werden Vergleichbar mit htaccess

22 Sicherheit / Benutzerkonzept
LOGIN Für jeden identifizierten, also eingeloggten Benutzer wird eine AccessControlList aufgebaut, in der geprüft wird, ob der Benutzer die entsprechenden Rechte hat

23 Sicherheit / Benutzerkonzept
Im Standardfall wird obige Aufteilung mittels Torque in die angegebene Datenbank persistiert. Turbine stellt unter dem Namen Flux eine Reihe von einfachen Screens und Aktionen zur Verfügung  ermöglichen webbasierte Benutzerverwaltung

24 Turbine Service Unterstützen MVC-Komponenten
Services sind Einzelanwendungen Selbstaufrufend Ressourcensprarend Könne auch ohne Turbine ausgeführt werden Ingesamt 26 Services

25 Turbine Service - Beispiele
Scheduler Service - Funktionen können zu einem beliebigen Zeitpunkt gestartet werden. Security Service - Management von Benutzern, Gruppen und Berechtigungen mittels Speicherung in eigener Datenbank

26 Turbine - Beispiele Grundlayout und Defaulteinstellungen
Benutzerverwaltung und Login-Vorgang Neue Seite generieren Stefan

27 NEWAPP Beispielanwendung von Turbine
Nach erfolgreicher Installation kann die Beispielanwendung aufgerufen werden Login Screen erscheint Nach erfolgreichem Login Weiterleitung auf das erste „Turbine Data Manager“ Layout Einfügen/Löschen/Editieren von Einträgen in die Standarddatenbank Anlegen und managen von Benutzer mit Flux, dem eingebauten Benutzermanagementsystem von Turbine

28 NEWAPP – Anpassung Layout
Grundlayout der Beispielanwendung: /newapp/templates/app/layouts/Default.vm $screen_placeholder Platzhalter für die Anzeige Zentrale Einstellung für Farben und Schriften: /newapp/resources/ui/skins/default/skins.props Vergleichbar mit CSS

29 NEWAPP – Beispiel (1) Anlegen eines neuen Benutzers mit Rolle „Turbine_Root“ Erstellung einer neuen Seite /newapp/templates/app/screens/UserInfo.vm Ausgabe folgender Informationen: Benutzername Passwort Vorname Nachname

30 NEWAPP – Beispiel (2) Source sollte wie folgt aussehen:
$page.setTitle("UserInfo") $page.setBgColor($ui.bgcolor) <meta http-equiv="Content-Type" content="text/html; charset=iso "> </head> <body> $benutzername $passwort $vorname $nachname $ </body>

31 NEWAPP – Beispiel (3) Die zuvor generierte Seite benötigt eine JAVA Datei, welche Sie mit Werten versorgt Erstellung einer neuen JAVA-Source /newapp/WEB-INF/src/java/org/mycompany/newapp/modules/screens/UserInfo.java

32 NEWAPP – Beispiel (4)

33 NEWAPP – Beispiel (5) JAVA Source sollte wie folgt aussehen:
package org.mycompany.newapp.modules.screens; import org.apache.turbine.modules.screens.VelocityScreen; import org.apache.turbine.services.servlet.TurbineServlet; import org.apache.turbine.util.RunData; import org.apache.velocity.context.Context; public class UserInfo extends VelocityScreen { public void doBuildTemplate(RunData data, Context context) { context.put("benutzername", data.getUserFromSession().getUserName()); context.put("passwort", data.getUserFromSession().getPassword()); context.put("vorname", data.getUserFromSession().getFirstName()); context.put("nachname", data.getUserFromSession().getLastName()); context.put(" ", data.getUserFromSession().get ()); }

34 NEWAPP – Beispiel (6) Apache starten
Beispiel aufrufen: Anmelden mit dem neu erstellten Benutzer Nun folgende URL aufrufen:

35 ENDE Danke für die Mitarbeit und Aufmerksamkeit.


Herunterladen ppt "Turbine Konzepte und Dienste"

Ähnliche Präsentationen


Google-Anzeigen