Inhaltsverzeichnis

Werbung
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
Herunterladen