Frameworks zur Implementierung von Hypertext Anwendungen

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Cloud42 Dominik Muhler Seminar StuPro cims cims.
Semesterarbeit von Dieter Lorenz, Sebastian Galenski, Stephan Bury
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Inhalt – Technische Grundlagen
Basis-Architekturen für Web-Anwendungen
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
NATURAL Web-Integration 1 / 27/28-Feb-98 TST NATURAL Web-Integration Arbeitskreis NATURAL Süd Theo Straeten SAG Systemhaus GmbH Technologieberater Stuttgart.
Java 2 Enterprise Edition (J2EE)
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Daniel Höfler Markus Thurner XMLApplicationPlatform Siemens OpenStage 60/80.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
DOM (Document Object Model)
Dynamische Webseiten mit PHP Oder: LAMP - The open way.
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
XForms Von Matthias Keck.
eFormsDirect XML-basiertes eGovernment-Framework
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
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.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
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.
Projekt Web Engineering
Seminar Internet Technologien
NetUSE Web Application Framework Kai Voigt NetUSE AG 28. Februar 2003.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Coccon das Web-XML-Publishing System Thomas Haller.
Einführung Servlets/JSPs
Herzlich Willkommen… welcome… soyez la bienvenue….
EDC Entwicklerforum Geoprocessing im Web 18. Juli 2013 Benjamin Proß Ein erweiterbarer WPS Client für ArcMap.
Seminar Internet - Technologie
Seminar Web-Anwendungen mit JSP u. ASP.NET entwickeln JavaServer Faces Vortragender: Thomas Dermin Custom-Components.
TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Mit 3 Schichte zum Erfolg
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Grundlagen: Client-Server-Modell
Bedeutung von Internet-Technologien
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Java Server Pages Sergej Keterling
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Datenanbindung in Webapplikationen
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Projekt Pokémon (CSL) Evaluation Technologien / Entwicklungsumgebungen Schlusspräsentation, Philip Iezzi, BDLI 2.
Online GIS Online GIS – Der Nutzer Matthias Hofschen, ESRI Germany ESRI EUROPEAN USER CONFERENCE.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Datenbanken im Web 1.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Frameworks
Marcel Genzmehr 1 Javabasierte Webtechnologien Web Application Framework Turbine.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
 Präsentation transkript:

Frameworks zur Implementierung von Hypertext Anwendungen Thorsten Berger Diplomstudiengang Informatik 5. Semester Ein Vortrag im Rahmen des Problemseminars „Neue Entwicklungen in der Telematik“ Universität Leipzig Lehrstuhl für angewandte Telematik / e-Business Prof. Dr. Volker Gruhn Dr. Sami Beydeda 26. Januar 2004

Übersicht Einleitung, Definitionen Grundlagen Struts Weitere Apache Frameworks XForms Literatur Frameworks zur Implementierung von Hypertext Anwendungen

1. Einführung / Definition Hypertext-Anwendung, Framework

Hypertext-Anwendung Versuch einer Definition: - verteilte Anwendung, graphische Oberfläche im WWW - Gestaltung erfolgt mit HTML, WML, XML ... - Applikationsprotokoll HTTP Verwendung: - WWW: Portale, Online-Shops, Suchmaschinen etc - Intranet: firmeninterne Kommunikation, ersetzen „Fat Clients“ - Webservices: standardisierte APIs (WSDL) für best. Dienstleistungen, z.B. Suchanfragen bei Google ohne Browser Frameworks zur Implementierung von Hypertext Anwendungen

Framework Definition: Helmut Balzert in [1]: „Ein Rahmenwerk (framework) ist ein durch einen Software-Entwickler anpassbares oder erweiterbares System kooperierender Klassen, die einen wiederverwendbaren Entwurf für einen bestimmten Anwendungsbereich implementieren.“ grundlegendes Design/Architektur hohes Abstraktionsvermögen Bereitstellung versch. Komponenten Beschleunigung der Entwicklung Frameworks zur Implementierung von Hypertext Anwendungen

2. Grundlagen CGI, Server Extensions, Server Scripting, Servlet API, Modelle und Architekturen

CGI, Server-Extensions CGI – Interface zwischen WebServer und Anwendung Request C l i e n t S e r v „fork“ A n w e d u g Response Ausgabe (HTML) Server Extensions: WebServer-spezifische API z.B. Netscape NSAPI, Microsoft ISAPI, Apache Module Frameworks zur Implementierung von Hypertext Anwendungen

Server Scripting, Servlets Ausführung von in HTML eingebettetem Script Code durch Interpreter Netscape proprietäre „Server Side Includes“ (SSI) moderne Scriptsprachen JSP, PHP, ASP, Python Java Servlets Spezifikation der J2EE Weiterentwicklung der „Server Extensions“ Ausführung in Servlet Container, z.B.: - Jakarta Tomcat - Jetty - Macromedia Jrun Frameworks zur Implementierung von Hypertext Anwendungen

2.1. Modelle und Architekturen Multi-Tier, Model 1, MVC

„Multi-Tier“-Architektur (Quelle: SUN) Frameworks zur Implementierung von Hypertext Anwendungen

MVC – Modell (Quelle: SUN) + saubere Kapselung der Komponenten + Erweiterbarkeit + Wiederverwendbarkeit + Austauchbarkeit der View - viele Transaktionen zwischen Komponenten (Unmenge an Listenern möglich) - Ereignisbehandlung bei verbindungslosem HTTP-Protokoll schwierig zu adaptieren MVC – Modell (Quelle: SUN) OO-Framework zur GUI-Entwicklung ursprünglich Verwendung in Smalltalk-80 am Xerox PARC Frameworks zur Implementierung von Hypertext Anwendungen

SUN – Model 1, Model 2 Model 1 Model 2 C l i e n t JSP Bean C Request JSP Bean Response Container / Middle Tier EIS Tier Model 2 C l i e n t Request Controller Servlet Response Container / Middle Tier EIS Tier View JSP Model Bean Frameworks zur Implementierung von Hypertext Anwendungen

Übersicht, Controller, View, Model, Formulare, Validator 3. Struts Übersicht, Controller, View, Model, Formulare, Validator

Struts – Übersicht I seit 1999 Framework als Teil des Apache Jakarta Projekts Open Source basiert auf J2EE/Servlet-Spezifikation Model 2 bereits sehr große Verbreitung Unterstützung durch IBM und SUN sehr gut dokumentiert internationalisiert plattformunabhängig Frameworks zur Implementierung von Hypertext Anwendungen

Struts – Übersicht III Frameworks zur Implementierung von Hypertext Anwendungen

ActionServlet – struts-config.xml Struts – Controller I ActionServlet – struts-config.xml <struts-config> <form-beans> <form-bean name="logonForm" type="org.apache.struts.example.LogonForm"/> </form-beans> <global-forwards type="org.apache.struts.action.ActionForward"/> <forward name="logon" path="/logon.jsp" redirect="false"/> </global-forwards> <action-mappings> <action path="/logon" type="org.apache.struts.example.LogonAction" name="logonForm" scope="request" input="/logon.jsp" unknown="false" validate="true"/> </action-mappings> </struts-config> Frameworks zur Implementierung von Hypertext Anwendungen

Struts – Controller II Actions Einstiegspunkt: Ablauf: public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) Ablauf: aktuelle User-Session validieren Validierung gesendeter Formular-Daten (vs. ActionForm-Bean) Ausführung Applikationslogik Aktualisierung verschiedener Session-/Request-Beans Rückgabe eines ActionForward nur eine Instanz für alle Requests Thread-Sicherheit gefordert! - Applikationslogik vermeiden! Frameworks zur Implementierung von Hypertext Anwendungen

Internationalisierung (i18n) Struts – View I Internationalisierung (i18n) basiert auf Javas Internationalisierungsfähigkeiten Locale - Klasse repräsentiert Nationalität inkl. versch. Eigenheiten ResourceBundle – Klasse enthält Locale-spezifische Objekte ResourceBundles können im Deployment-Descriptor (web.xml) angegeben werden: <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>application</param-name> <param-value>com.mycompany.mypackage.MyResources</param-value> </init-param> ... </servlet> Frameworks zur Implementierung von Hypertext Anwendungen

Struts – View II Struts Tag-Set erweitern vorhandene JSP-Taglibs um sinnvolle Funktionen: - Labels in länderspezifischer Sprache - iterative und logische Funktionen - Definition und Einbetten von Beans einfach zu erlernen Custom-Tags möglich später wahrscheinlich durch JSTL (JCP, Bestandteil von JSP 2.0) abgelöst Benutzung einer Bean: <jsp:useBean id=“cart“ scope=“request“ class=“com.mycompany.MyApp.MyCart“/> Frameworks zur Implementierung von Hypertext Anwendungen

Struts – Model I Model Frontend-Model Backend-Model ActionForm-Beans Datenbasis für View (JSP) stellt View Ausschnitt des Backends-Models bereit enthält Request-Parameter Backend-Model eigentliche Geschäftslogik und -daten nicht genau spezifiziert Verwendung verschiedenartiger Beans (Systemzustands-, Applikations-Logik-Beans) Frameworks zur Implementierung von Hypertext Anwendungen

Formulare und ActionForm-Beans Struts – Formulare I Formulare und ActionForm-Beans Abstraktion über normalen HTML-Formularen mehrseitige Formulare („Wizard“) Verifizierung übermittelter Daten in ActionForm-Bean Fehlermechanismen bei falscher Eingabe Frameworks zur Implementierung von Hypertext Anwendungen

Struts – Formulare II Beispiel JSP <html:errors/> <html:form name="logonForm" action="logon.do“ type="org.apache.struts.example.LogonForm"> <html:message key="prompt.username"/> <html:text property="username" size="16"/><br/> <html:message key="prompt.password"/> <html:password property="password" size="16"/><br/> <html:submit> <bean:message key="button.submit"/> </html:submit> <html:reset> <bean:message key="button.reset"/> </html:reset> </html:form> Frameworks zur Implementierung von Hypertext Anwendungen

Beispiel ActionForm-Bean Struts – Formulare III Beispiel ActionForm-Bean import org.apache.struts.action.ActionForm; public class LogonForm extends ActionForm{ protected String username; protected String password; public void setUsername(String user){ username = text; } public String getUsername(){ return username; public void setPassword(String pwd){ password = pwd; public String getPassword(){ return password; Frameworks zur Implementierung von Hypertext Anwendungen

Struts – Validator/Dynaforms dynamische Formulare DynFormBean: generische Getter/Setter Deklaration in XML Validierung mit regulären Ausdrücken Frameworks zur Implementierung von Hypertext Anwendungen

Struts - Fazit sehr übersichtlich (im Kern nicht mehr als 10 Klassen) leicht zu verstehen flexibel, stabil große Freiräume für Entwickler ↔ Gefahr falscher Implementierung Zukunft? wichtigstes Framework im Jakarta Projekt (Konkurrent Turbine) Integration in JSTL Integration in JavaServer Faces Frameworks zur Implementierung von Hypertext Anwendungen

5. Weitere Apache Frameworks Turbine, Jetspeed, Cocoon

Weitere Apache Frameworks Turbine: seit 1999 Teil des Jakarta Projekts erweitertes MVC: „Model 2+1“ Entwicklungsunterstützung durch: - Service Framework Fulcrum - Java Caching System JCS - Projektverwaltungs- und Dokumentationstool Maven - objektrelationales Tool Torque Jetspeed: Portal-Framework, basiert auf Turbine Entwicklung so weit wie möglich ohne Programmierung Seitenkonzept: Portlets Cocoon: Portal-Framework, komplett XML-basiert „Pipelines“-Konzept: versch. XML-Technologien hintereinander bereiten Ausgabe auf Frameworks zur Implementierung von Hypertext Anwendungen

Geschichte, Ziele, Architektur, Praxis 6. XForms Geschichte, Ziele, Architektur, Praxis

Herkömmliche HTML-Formulare XForms - Geschichte Herkömmliche HTML-Formulare 1993 veröffentlicht ausreichend für damalige Ansprüche Beispiel: <form name=„LoginForm" method="post“ action="http://localhost:8080/swt/manager.UebManager"> Login: <input type="text" name="login" maxlength="12" size="12"><br> Passwort: <input type="text" name=„pwd" maxlength=“12“ size=“12"><br> <input type="submit" name="submit" value=“Einloggen"> </form> Probleme: - fehlendes getrenntes Datenmodell - Eingabe-Validierung umständlich - Initialisierung - nur „flache“ Daten (Variable/Wert-Paar) Frameworks zur Implementierung von Hypertext Anwendungen

heutige Anforderungen XForms - Ziele heutige Anforderungen transparente Unterstützung vieler unterschiedlichster Endgeräte: PC/Workstation, PDA, Set-Top-Box, Mobiltelefon ... mehrere Eingabemöglichkeiten: Text, Sprach-/Schrifterkennung Ziele von XForms Wiederverwendbarkeit Plattformunabhängigkeit Universalität Frameworks zur Implementierung von Hypertext Anwendungen

XForms - Übersicht kein eigenständiger Dokument-Typ eingebettet in andere Markup-Sprachen (bspw. XHTML 2.0) Darstellung in HTML, WML, VoiceXML .... komplexe (hierarchische) Datenstrukturen möglich starke Typisierung Formular kann sich über mehrere Seiten erstrecken nicht auf einen Request/Response-Zyklus beschränkt; → Autorisierungskette realisierbar Frameworks zur Implementierung von Hypertext Anwendungen

XForms - Architektur Model: XML Schema, hierarchisch, Modellierung von (dynamischen) Abhängigkeiten möglich, User-Interface: visuelle Darstellung, verschiedene Oberflächen für unterschiedliche Endgeräte; Instance-Data: konkrete, vom Client übermittelte, Formulardaten Adressierung der Elemente mit XPath, Übertragung mit XForms Submit Protocol Frameworks zur Implementierung von Hypertext Anwendungen

XForms – Praxis I Beispiel-Formular Model: Interface Instance Data: <xforms:model> <xforms:instance> <subscription> <name/> <matrikel/> <abschluss/> </subscription> </xforms:instance> <xforms:submission action="http://localhost:8080/swt/ manager.UebManager?action=SubscribeStudent“ method="post" id="submit"/> </xforms:model> <input ref="name"> <label>Name</label> </input> <input ref="matrikel"> <label>Matrikel-Nr.</label> <select1 ref="abschluss"> <label>Abschluss</label> <item> <label>Diplom</label> <value>diplom</value> </item> <label>Master</label> <value>master</value> </select1> <submit submission="submit"> <label>Einschreiben</label> </submit> Instance Data: <subscription> <name>Franz Matschenkow</name> <matrikel>1234567</matrikel> <abschluss>diplom</abschluss> </subscription> Frameworks zur Implementierung von Hypertext Anwendungen

Namespaces und Standardwerte: XForms – Praxis II Namespaces und Standardwerte: ... <subscription xmlns="de.myUniversity.myChair"> <name/> <matrikel/> <abschluss>diplom</abschluss> </subscription> Typisierung: <xsd:schema ...> ... <xsd:simpleType name="matrikel"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{7,8}"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> Frameworks zur Implementierung von Hypertext Anwendungen

XForms - Fazit Nachfolger der HTML-Formulare flexibel, mächtig Lern- und Zeitaufwand? Tool-Unterstützung notwendig Browser-Unterstützung notwendig derzeit nur serverseitige Implementierungen verwendbar: Chiba (http://chiba.sourceforge.net) Frameworks zur Implementierung von Hypertext Anwendungen

Literatur [1] H. Balzert „Lehrbuch der Software-Technologie“, 2002 [2] A. Holub „Building user interfaces for object-oriented systems“, http://www.holub.com, 1999 [3] E. Armstrong, J. Ball, S. Bodoff et al. „The J2EE 1.4 Tutorial“ http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html, 2003 [4] „The Struts User’s Guide“, http://jakarta.apache.org/struts/userGuide [5] Micah Dubinko, "XForms Essentials", O'Reilly 2003 [6] M. Dubinko, L. Klotz, R. Merrik, T. Raman „W3C Candidate Recommendation“, http://www.w3.org/TR/2002/CR-xforms-20021112/ Homepages: Struts: http://jakarta.apache.org/struts XForms: http://www.w3.org/MarkUp/Forms Turbine: http://jakarta.apache.org/turbine Jetspeed: http://jakarta.apache.org/jetspeed Cocoon: http://cocoon.apache.org Frameworks zur Implementierung von Hypertext Anwendungen

Fazit Fragen? Frameworks zur Implementierung von Hypertext Anwendungen