Zusammenfassung Wydler Inhaltsverzeichnis 1 2 3 4 5 6 7 8 Multitier – Anwendungen ................................................................................................ 2 J2EE – Komponenten .................................................................................................... 2 2.1 J2EE Design Patterns for Performance ................................................................... 2 2.1.1 Design Patterns................................................................................................ 2 2.1.2 Session Façade ............................................................................................... 2 2.1.3 Data Transfer Object (Value Object) ................................................................ 3 DAO (Data Access Object)............................................................................................. 3 Frameworks ................................................................................................................... 3 4.1 Was ist im Wesentlichen ein Framework? ............................................................... 3 4.2 Welchen Zweck dienen Frameworks? ..................................................................... 3 4.3 Wie können Frameworks an die gegebenen Verhältnisse angepasst werden? ....... 3 Sevlets ........................................................................................................................... 4 5.1.1 Was verursacht den Aufruf der service() Methode?.......................................... 4 5.1.2 Wer ruft die Service-Methode effektiv auf?....................................................... 4 5.2 Der Servlet-Container (Web-Container)................................................................... 4 5.3 http-Srvlets.............................................................................................................. 4 5.4 Decorating Filter...................................................................................................... 4 Java Server Pages (JSP) ............................................................................................... 5 6.1 Vorteile.................................................................................................................... 5 6.2 Nachteile ................................................................................................................. 5 6.3 Actions .................................................................................................................... 5 6.4 Implizite Objekte...................................................................................................... 5 Presentation Patterns..................................................................................................... 5 7.1 Chaining.................................................................................................................. 5 7.2 Front-Controller ....................................................................................................... 5 7.2.1 Vorteile............................................................................................................. 5 7.2.2 Nachteile .......................................................................................................... 6 7.3 View Helper............................................................................................................. 6 Web-Anwendung............................................................................................................ 6 Seite 1 von 1 wim, 15.08.2003 Zusammenfassung Wydler 1 Multitier – Anwendungen Eine Aufteilung der Hauptaufgaben in verschiedene Bereiche scheint sinnvoll. So wird hauptsächlich zwischen der Präsentation und der Verarbeitung unterschieden. Auf Computer resp. Netzwerkebene kommen dann meist 3 Schichten (Tears) zum tragen. • Web – Tier → Servlets / JSP • Business – Tier → EJB • Daten – Tier → DB / Legacy Während Anfragen von Internet-Anwendungen (Browsers) mit HTTP über den Web – Tier laufen, gehen Standalone-Anwendungen direkt per RMI zum Business – Tier. Diese Aufteilung ist in J2EE mit sogenannten Containern gelöst. 2 J2EE – Komponenten Der J2EE-Server stellt die Middleware dar. In ihm laufen der Web-Container und der EJBContainer. Servlets und JSP sind Mittel, um zur Laufzeit HTML aus vorhandenen Daten zu erzeugen. Sowohl JSPs als auch Servlets laufen in einem Web-Container ab, der die Welt der Webseiten und http-Zugriffe auf Konzepte der Java-Welt abbildet. Browser-Clients können nur per http-Protokoll auf den Web-Container zugreiffen. Voll ausgebaute Java-Clients hingegen haben die Möglichkeit per RMI auf den EJBContainer als auch per http auf den Web-Container zuzugreifen. HTTP HTTP JDBC RMI 2.1 J2EE Design Patterns for Performance 2.1.1 Design Patterns Design Patterns sind Lösungen zu wiederkehrenden Problemen beim Software-Design. 2.1.2 Session Façade Die Clients müssen die Geschäftslogik auf der Mittelschicht über Netzwerkzugriffe aufrufen. Für einen Anwendungsfall können dabei viele Schritte erforderlich sein, die zu vielen Netzwerkzugriffen führen. 2.1.2.1 Problem Wie kann ein Client die Geschäftslogik eines Anwendungsfalles mit einem Netzwerkzugriff abarbeiten? 2.1.2.2 Lösung Die Abarbeitung des Anwendungsfalles wird an ein Objekt auf der Serverseite (die Session Façade) delegiert. Seite 2 von 2 wim, 15.08.2003 Zusammenfassung Wydler 2.1.3 Data Transfer Object (Value Object) Die Geschäftsdaten befinden sich auf der dritten Schicht, sollen aber im Client angezeigt und bearbeitet werden. Hierzu muss der Client die Daten über get-Methoden holen und über setMethoden zurückschreiben. Dies führt zu vielen Netzwerkzugriffen. 2.1.3.1 Problem Wie kann der Client Geschäftsdaten mit dem Server austauschen ohne für jeden wert eine get- oder set-Methode über das Netzwerk aufzurufen? 2.1.3.2 Lösung Alle benötigten Geschäftsdaten werden in einem serialisierbaren Java-Objekt (dem Value Objekt) übertragen 3 DAO (Data Access Object) • • Das DAO ist eine Java-Bean, die JDBC auf höherer Stufe abstrahiert. Es ist somit eine weitere Abstraktion des DB-Zugriffs. DAOs beinhalten einfache SET, GET, EXECUTE – Interfaces Middle Tier Browser • • Component DAO DB Man verwendet DAOs zum Entkoppeln der Datenbank-Logik → Änderungen am DB System wirken sich nicht auf die Business-Logik aus Das DAO kann in jedem Tier eingesetzt werden 4 Frameworks 4.1 Was ist im Wesentlichen ein Framework? • • • Generalisierte Anwendung Entwurfsmuster Trennt Business von Infrastruktur 4.2 Welchen Zweck dienen Frameworks? • • • • Trennung von Business und Infrastruktur Wiederverwendbarkeit bei Entwurf und Implementation Verkürzen der Entwicklungszeit Applikationen werden standardisiert 4.3 Wie können Frameworks an die gegebenen Verhältnisse angepasst werden? • • Durch Ableitung (Erweiterung) Delegation (API) Seite 3 von 3 wim, 15.08.2003 Zusammenfassung Wydler 5 Sevlets • • • • • • • 5.1.1 • 5.1.2 • Servlets sind eine Erweiterung der Web-Server Funktionalität (Platformunabhängig) Kann CGI ergänzen/ersetzen Einbindung via Server-API oder Standalone Nutzung der Vorteile der Java-Programmierung Servlets laufen in einer Web-Server Erweiterung, dem Web-Container auch ServletEngine genannt. Kommunikation via Request/Response und der Methode service() Servlets sind das Serverseitige Gegenstück zu den Applets Was verursacht den Aufruf der service() Methode? Ein Client-Request Wer ruft die Service-Methode effektiv auf? Der Servlet-Container → Web-Container 5.2 Der Servlet-Container (Web-Container) • • • Enthält, lädt, instanziert Servlets Steuert den Lebenszyklus (Vorgegeben durch J2EE [init – service - destroy]) Kreiert Threads 5.3 http-Srvlets • • Haben u.A. die Methoden doPost und doGet Benutzung der http-Servlets: http://localhost:8080/servlet/servlet_xy → servlet ist die Kennung der Klasse Servlets 5.4 Decorating Filter • Entkoppelt Request/Response von der Zusatzinformation bevor sie zum Servlet geleitet wird Seite 4 von 4 wim, 15.08.2003 Zusammenfassung Wydler 6 Java Server Pages (JSP) • • • • Ist eine Komponente des Web-Containers Wird dort eingesetzt wo statische und dynamische Inhalte gleichzeitig angezeigt werden sollen Einbettung von Java in HTML Eine JSP wird beim 1. Aufruf in ein Servlet konvertiert/kompiliert und als JSP-Servlet ausgeführt 6.1 Vorteile • • • HTML – Entwicklungsumgebung (Java Affinität) Trennung der Datenverarbeitung von der Darstellung Wartung 6.2 Nachteile • • Nicht Objektorientiert Notwendige Übersetzung beim 1. Gebrauch 6.3 Actions • • • Dienen der Spracherweiterung Sie vereinfachen und steigern die Effizienz Rollenteilung 6.4 Implizite Objekte • • • Sind Objekte die nicht instanziert / deklariert werden müssen, da sie es schon sind. Man kann einfach auf sie zugreiffen. Sie wurden durch den JSP-Container beim Generieren deklariert. Sie dienen der Skript-Programmierung 7 Presentation Patterns 7.1 Chaining • • • Aus mehreren Einzelausgaben von Servlets eine einzige Gesamtausgabe erstellen Ablauf: 1. Request an das Kontroller-Servlet, dieses sammelt die Antworten weiterer Servlets 2. Pakt die Antworten zu einer zusammen 3. Sendet eine gemeinsame einzige Antwort Der Request-Dispatcher (Container) übernimmt diese Aufgabe 7.2 Front-Controller • • • • 7.2.1 • • Ist ein „Anfragen-Handler“ (Koordinator) Der Front-Controller ist ein Servlet das ein eigenständiges Programm darstellt und entsprechend angepasst werden kann. Im Front-Controller ist die Ablaufsteuerung, der Lebenszyklus (Zustandsmaschine) festgelegt Dank der web.xml – Datei mit dem URL-Mapping können mehrere URLs auf ein und den selben Front-Controller zugreifen Vorteile Geschäftslogik verschiebt sich aus der View in den Controller Wiederverwendbarkeit Seite 5 von 5 wim, 15.08.2003 Zusammenfassung Wydler • 7.2.2 • • Sicherheit Nachteile Bei Ausfall des FC ist gesamte Anwendung tot Höherer Programmieraufwand 7.3 View Helper • • Der View-Helper ist durch die Attribute und die Accessors (getter-/setter-Methoden) eng an die JSP gebunden. Der http-Servlet-Request geht in folgenden Schritten: 1. request.setAttribute 2. servletContext 3. RequestDispatcher 4. Response Web-Container Request Browser DB Result Bean Response • JDBC Servlet JSP Der View-Helper eines Servlets wird über die http-Session, über einen Request an die JSP übergeben 8 Web-Anwendung Vier Komponenten (A, B, C und D) arbeiten folgendermassen als Web-Anwendung zusammen: • Komponente A nimmt alle Client-Anfragen entgegen und delegiert jeweils die Verarbeitung und die Darstellung gemäss Geschäftsablauf an die 3 übrigen Komponenten • Komponente B ist spezialisiert auf die dynamische Darstellung der Dateien im XMLFormat • Komponente C läuft als RMI-Server auf einem entfernten Rechner und liest die Daten von einem relationalen DB-System • Die aus der DB extrahierten Daten werden anschliessend im Servlet (Komponente D) so miteinander verrechnet, dass so anschliessend durch die Komponente B ausgegeben werden können http-Request Request A FrontController RMI-Response Request Response C RMI JDBC/RMI Response http-Response B View XML D Business Logic Seite 6 von 6 DB wim, 15.08.2003