Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Ottoline Zaske Geändert vor über 10 Jahren
1
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
2
Übersicht Einleitung, Definitionen Grundlagen Struts
Weitere Apache Frameworks XForms Literatur Frameworks zur Implementierung von Hypertext Anwendungen
3
1. Einführung / Definition
Hypertext-Anwendung, Framework
4
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
5
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
6
2. Grundlagen CGI, Server Extensions, Server Scripting, Servlet API, Modelle und Architekturen
7
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
8
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
9
2.1. Modelle und Architekturen
Multi-Tier, Model 1, MVC
10
„Multi-Tier“-Architektur (Quelle: SUN)
Frameworks zur Implementierung von Hypertext Anwendungen
11
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
12
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
13
Übersicht, Controller, View, Model, Formulare, Validator
3. Struts Übersicht, Controller, View, Model, Formulare, Validator
14
Struts – Übersicht I seit 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
15
Struts – Übersicht III Frameworks zur Implementierung von Hypertext Anwendungen
16
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
17
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
18
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
19
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
20
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
21
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
22
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
23
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
24
Struts – Validator/Dynaforms
dynamische Formulare DynFormBean: generische Getter/Setter Deklaration in XML Validierung mit regulären Ausdrücken Frameworks zur Implementierung von Hypertext Anwendungen
25
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
26
5. Weitere Apache Frameworks
Turbine, Jetspeed, Cocoon
27
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
28
Geschichte, Ziele, Architektur, Praxis
6. XForms Geschichte, Ziele, Architektur, Praxis
29
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=" 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
30
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
31
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
32
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
33
XForms – Praxis I Beispiel-Formular Model: Interface Instance Data:
<xforms:model> <xforms:instance> <subscription> <name/> <matrikel/> <abschluss/> </subscription> </xforms:instance> <xforms:submission action=" 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> </matrikel> <abschluss>diplom</abschluss> </subscription> Frameworks zur Implementierung von Hypertext Anwendungen
34
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
35
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 ( Frameworks zur Implementierung von Hypertext Anwendungen
36
Literatur [1] H. Balzert „Lehrbuch der Software-Technologie“, 2002 [2]
A. Holub „Building user interfaces for object-oriented systems“, 1999 [3] E. Armstrong, J. Ball, S. Bodoff et al. „The J2EE 1.4 Tutorial“ 2003 [4] „The Struts User’s Guide“, [5] Micah Dubinko, "XForms Essentials", O'Reilly 2003 [6] M. Dubinko, L. Klotz, R. Merrik, T. Raman „W3C Candidate Recommendation“, Homepages: Struts: XForms: Turbine: Jetspeed: Cocoon: Frameworks zur Implementierung von Hypertext Anwendungen
37
Fazit Fragen? Frameworks zur Implementierung von Hypertext Anwendungen
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.