turbine konzepte und dienste arzt manuel (theorie) berger-schützeneder stefan (beispiele) hammerle...
TRANSCRIPT
![Page 1: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/1.jpg)
Turbine Konzepte und Dienste
Arzt Manuel (Theorie)
Berger-Schützeneder Stefan (Beispiele)
Hammerle Gernot (Theorie)
![Page 2: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/2.jpg)
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
![Page 3: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/3.jpg)
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
![Page 4: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/4.jpg)
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
![Page 5: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/5.jpg)
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
MVC-Architektur
![Page 6: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/6.jpg)
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
![Page 7: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/7.jpg)
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
![Page 8: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/8.jpg)
8
MVC – Model View Controller
Modifizierte MVC
Modifiziertes MVC
![Page 9: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/9.jpg)
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.
![Page 10: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/10.jpg)
10
Assembler
Die fünf Assembler im Systemablauf
![Page 11: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/11.jpg)
11
Request – Response ZyklusBei einem Aufruf werden mehrere Assembler benötigt, die gemeinsam an dem Endresultat arbeiten
![Page 12: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/12.jpg)
12
Seitenstruktur
Page – lädt die angegeben Seiten, Screens, Layouts oder Default-Layout
Screen – stellt den Körper eines HTML-Dokument dar und ist verantwortlichfür Benutzerinteraktion und Daten-anzeige
Layout – gibt die physikalische Struktur derzu erzeugenden HTML-Seite an
Navigation – in den Navigationselementen können mehrere Seiten zusammen-gefasst und für mehrere Screensbenutzt werden.
![Page 13: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/13.jpg)
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.
![Page 14: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/14.jpg)
14
Seitenstruktur
Alle zur Seitenerzeugung instantierten Objekte können durch einen Caching-Mechanismus wieder verwendet werden, um Ressourcen zu sparen.
![Page 15: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/15.jpg)
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
![Page 16: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/16.jpg)
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
![Page 17: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/17.jpg)
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
![Page 18: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/18.jpg)
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
![Page 19: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/19.jpg)
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/
![Page 20: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/20.jpg)
20
Sicherheit
ausgeklügeltes Benutzerkonzept wird zur Verfügung gestellt
Einem Benutzer können: mehrere Rollen in verschieden Gruppen
zugewiesen sein
![Page 21: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/21.jpg)
21
Sicherheit
Security Model User Group Role Permission
org.apache.turbine.services.security Package
![Page 22: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/22.jpg)
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
![Page 23: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/23.jpg)
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
![Page 24: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/24.jpg)
24
Turbine Service
Unterstützen MVC-Komponenten Services sind Einzelanwendungen Selbstaufrufend Ressourcensprarend Könne auch ohne Turbine ausgeführt
werden Ingesamt 26 Services
![Page 25: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/25.jpg)
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
![Page 26: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/26.jpg)
26
Turbine - Beispiele
Grundlayout und Defaulteinstellungen Benutzerverwaltung und Login-
Vorgang Neue Seite generieren
![Page 27: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/27.jpg)
27
NEWAPP
Beispielanwendung von Turbine Nach erfolgreicher Installation kann die
Beispielanwendung aufgerufen werdenhttp://localhost:8080/newapp/servlet/newapp
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
![Page 28: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/28.jpg)
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
![Page 29: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/29.jpg)
29
NEWAPP – Beispiel (1)
Anlegen eines neuen Benutzersmit Rolle „Turbine_Root“
Erstellung einer neuen Seite /newapp/templates/app/screens/UserInfo.vm
Ausgabe folgender Informationen: Benutzername Passwort Vorname Nachname E-Mail
![Page 30: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/30.jpg)
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-8859-1"></head>
<body>$benutzername$passwort$vorname$nachname$email</body>
![Page 31: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/31.jpg)
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
![Page 32: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/32.jpg)
32
NEWAPP – Beispiel (4)
![Page 33: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/33.jpg)
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("email", data.getUserFromSession().getEmail());
}}
![Page 34: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/34.jpg)
34
NEWAPP – Beispiel (6)
Apache starten
Beispiel aufrufen:http://localhost:8080/newapp/servlet/newapp
Anmelden mit dem neu erstellten Benutzer
Nun folgende URL aufrufen:http://localhost:8080/newapp/servlet/newapp/template/UserInfo.vm
![Page 35: Turbine Konzepte und Dienste Arzt Manuel (Theorie) Berger-Schützeneder Stefan (Beispiele) Hammerle Gernot (Theorie)](https://reader035.vdokument.com/reader035/viewer/2022070310/55204d7649795902118cb4c2/html5/thumbnails/35.jpg)
35
ENDE
Danke für die Mitarbeit und Aufmerksamkeit.