Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Frameworks zur Implementierung von Hypertext Anwendungen

Ähnliche Präsentationen


Präsentation zum Thema: "Frameworks zur Implementierung von Hypertext Anwendungen"—  Präsentation transkript:

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


Herunterladen ppt "Frameworks zur Implementierung von Hypertext Anwendungen"

Ähnliche Präsentationen


Google-Anzeigen