Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Frameworks zur Implementierung von Hypertext Anwendungen Thorsten Berger Diplomstudiengang Informatik 5. Semester Ein Vortrag im Rahmen des Problemseminars.

Ähnliche Präsentationen


Präsentation zum Thema: "Frameworks zur Implementierung von Hypertext Anwendungen Thorsten Berger Diplomstudiengang Informatik 5. Semester Ein Vortrag im Rahmen des Problemseminars."—  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 2 Frameworks zur Implementierung von Hypertext Anwendungen 1.Einleitung, Definitionen 2.Grundlagen 3.Struts 4.Weitere Apache Frameworks 5.XForms 6.Literatur Übersicht

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

4 4 Frameworks zur Implementierung von Hypertext Anwendungen 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

5 5 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

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

7 7 Frameworks zur Implementierung von Hypertext Anwendungen CGI, Server-Extensions CGI – Interface zwischen WebServer und Anwendung ClientClient ServerServer AnwendungAnwendung Request Response „fork“ Ausgabe (HTML) Server Extensions: WebServer-spezifische API z.B. Netscape NSAPI, Microsoft ISAPI, Apache Module

8 8 Frameworks zur Implementierung von Hypertext Anwendungen Server Scripting, Servlets Server Scripting 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

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

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

11 11 Frameworks zur Implementierung von Hypertext Anwendungen MVC MVC – Modell (Quelle: SUN) OO-Framework zur GUI-Entwicklung ursprünglich Verwendung in Smalltalk-80 am Xerox PARC + 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

12 12 Frameworks zur Implementierung von Hypertext Anwendungen SUN – Model 1, Model 2 ClientClient Request JSP Bean Response Container / Middle Tier EIS Tier ClientClient Request Controller Servlet Response Container / Middle Tier EIS Tier View JSP Model Bean Model 1 Model 2

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

14 14 Frameworks zur Implementierung von Hypertext Anwendungen 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

15 15 Frameworks zur Implementierung von Hypertext Anwendungen Struts – Übersicht III

16 16 Frameworks zur Implementierung von Hypertext Anwendungen Struts – Controller I ActionServlet – struts-config.xml

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

18 18 Frameworks zur Implementierung von Hypertext Anwendungen Struts – View I 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: action org.apache.struts.action.ActionServlet application com.mycompany.mypackage.MyResources... Internationalisierung (i18n)

19 19 Frameworks zur Implementierung von Hypertext Anwendungen Struts – View II 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: Struts Tag-Set

20 20 Frameworks zur Implementierung von Hypertext Anwendungen Struts – Model I Model Frontend-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)

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

22 22 Frameworks zur Implementierung von Hypertext Anwendungen Struts – Formulare II Beispiel JSP

23 23 Frameworks zur Implementierung von Hypertext Anwendungen Struts – Formulare III 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; } Beispiel ActionForm-Bean

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

25 25 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

26 5. Weitere Apache Frameworks Turbine, Jetspeed, Cocoon

27 27 Frameworks zur Implementierung von Hypertext Anwendungen 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

28 6. XForms Geschichte, Ziele, Architektur, Praxis

29 29 Frameworks zur Implementierung von Hypertext Anwendungen XForms - Geschichte 1993 veröffentlicht ausreichend für damalige Ansprüche Herkömmliche HTML-Formulare Login: Passwort: Beispiel: Probleme: - fehlendes getrenntes Datenmodell - Eingabe-Validierung umständlich - Initialisierung - nur „flache“ Daten (Variable/Wert-Paar)

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

31 31 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

32 32 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

33 33 Frameworks zur Implementierung von Hypertext Anwendungen XForms – Praxis I Beispiel-Formular Model: Name Matrikel-Nr. Abschluss Diplom diplom Master master Einschreiben Interface Franz Matschenkow diplom Instance Data:

34 34 Frameworks zur Implementierung von Hypertext Anwendungen XForms – Praxis II... diplom... Namespaces und Standardwerte: Typisierung:

35 35 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)

36 36 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“, [3]E. Armstrong, J. Ball, S. Bodoff et al. „The J2EE 1.4 Tutorial“ [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“, Struts: XForms: Turbine: Jetspeed: Cocoon: Homepages:

37 37 Frameworks zur Implementierung von Hypertext Anwendungen Fazit Fragen?


Herunterladen ppt "Frameworks zur Implementierung von Hypertext Anwendungen Thorsten Berger Diplomstudiengang Informatik 5. Semester Ein Vortrag im Rahmen des Problemseminars."

Ähnliche Präsentationen


Google-Anzeigen