Turbine Konzepte und Dienste

Slides:



Advertisements
Ähnliche Präsentationen
Warum Corinis CMS? Trennung von Inhalt, Layout und Struktur des Internetauftritts Dezentrale Pflege der Inhalte in den jeweiligen Fachabteilungen Pflege.
Advertisements

Programmieren im Großen von Markus Schmidt und Benno Kröger.
On the Criteria to Be Used in Decomposing Systems into Modules
Pflege der Internetdienste
1 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Übung 4 Mehrstufige Client/Server-Systeme mit JSPs, Servlets und JavaBeans (Web-Container)
eXist Open Source Native XML Database
Ruby on Rails im Überblick
Java 2 Enterprise Edition (J2EE)
Daniel Höfler Markus Thurner XMLApplicationPlatform Siemens OpenStage 60/80.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
XDoclet ETIS SS05.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
DVG Klassen und Objekte
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Einführung und Überblick
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Grundschutztools
UML Begleitdokumentation des Projekts
YouTube5 .0 Projektpräsentation
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Coccon das Web-XML-Publishing System Thomas Haller.
Installation FAQ-Forum Zope Basisinstallation Zusätzliche Module (Products) Grundkonfiguration Einrichten neuer Foren.
InfoPoint vom 9. November Was ist Joomla? Theorie Installation Extensions Administration Demo.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
08. September 2010Entwicklungsstrategien in Liferay 1 Christian Krause, URZ FSU Jena, IDM-Arbeitsgruppe.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Typo3 Templates und TypoScript
Typo 3. INSTALLATION TYPO3 INSTALLTOOL EXTENSIONS UND TEMPLATES INSTALLATION TEMPLAVOILA USERMANAGEMENT Inhalt:
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
Nicolas Frings Maximilian Bernd Stefan Piernikarcyk
- Velocity Template Engine
Turbine Konzepte und Dienste
Dipl.-Päd. Irene Tatzgern, MA
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Oliver Spritzendorfer Thomas Fekete
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
CMS-Kolloquium am 10. Januar 2006
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Torque robert.resch-wolfgang.schneider. uebersicht Was ist Torque Komponenten von Torque Generator Erzeugte Klassen Methoden Torque in Turbine Demobeispiel.
Analyseprodukte numerischer Modelle
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
CMS Content-Management-Systeme (CMS), dienen der Verwaltung und Pflege von Dokumenten und Inhalten in Inter- und Intranetanwendungen. Den Entwickler oder.
Velocity Workshop SE Projekt 1 Velocity Workshop Templatesprache im Turbine-Kontext.
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Typo 3 // Templa Voila * Was? * Warum? * Wie? - Praktische Übung.
Musterlösung IT-Struktur an Schulen © M. Stütz, F. Wrede LEU - Zentrale Planungsgruppe Netze am Kultusministerium Baden-Württemberg zwei Benutzerverwaltung.
TURBINE. Einführung Seit 1999 Java-Framework Integration in Webserver Open Source MVC Muster wird umgesetzt.
Datenbanken im Web 1.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine.
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
Loslegen mit Contrexx: In 10 Schritten zur professionellen Webseite. Juli 2012www.contrexx.com1 Autor: Nicolas Müller.
Das Entwurfsmuster Model-View-Controller
Schnelle PHP-Webapplikationen mit Booosta 3.0
 Präsentation transkript:

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

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:

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

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

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

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

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

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

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.

Assembler Die fünf Assembler im Systemablauf

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

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.

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.

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

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

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

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

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

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/

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

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

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

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

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

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

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

NEWAPP Beispielanwendung von Turbine Nach erfolgreicher Installation kann die Beispielanwendung aufgerufen werden http://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

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

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 E-Mail

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>

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

NEWAPP – Beispiel (4)

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()); }

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

ENDE Danke für die Mitarbeit und Aufmerksamkeit.