3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und...
Transcript of 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und...
3-Tier-Architecture 3-Tier-Architecture und J2EEund J2EE
Oliver Müller<[email protected]>
Seminar Software-EntwurfWS 2004/05
2Oliver Müller: 3-Tier-Architecture und J2EE
3-Tier, was war das noch gleich ?3-Tier, was war das noch gleich ?
NEIN, das nicht !!!
3Oliver Müller: 3-Tier-Architecture und J2EE
Die LageDie Lage
- Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.
- Die Daten werden auf den Clients bearbeitet und verändert.
- Die meisten „älteren“ Applikationen sind nicht für den Betrieb in Netzwerken ausgelegt.
4Oliver Müller: 3-Tier-Architecture und J2EE
ForderungenForderungen
- vorhandene Applikationen sollen intra- bzw. internetfähig werden => Wiederverwendung
- die Logik der Geschäftsprozesse soll „im Haus“ bleiben, d.h. keine Verarbeitung von Daten auf unsicheren Clients => Sicherheit / Wartung
- die Anwendungsoberfläche soll variabel und austauschbar sein, ohne die Logik verändern zu müssen => Entkopplung
- die Datenspeicherung (z.B. Datenbank) soll ebenso austauschbar sein => Entkopplung
5Oliver Müller: 3-Tier-Architecture und J2EE
LösungsansätzeLösungsansätze
- Entkopplung (GUI) => MVC-Ansatz
- Entkopplung (DB) => ODBC
- Wiederverwendung => Erstellen einer Schnittstelle zur alten Applikation
- Sicherheit / Wartung => Applikation sollte auf eigenem Server laufen.
6Oliver Müller: 3-Tier-Architecture und J2EE
Die LösungDie Lösung
Kombination aus allen Anforderungendurch Einführen einer Zwischenschicht :
3 - Tier
3 - Schicht - Architektur
7Oliver Müller: 3-Tier-Architecture und J2EE
FragenFragen
Fragen ?
8Oliver Müller: 3-Tier-Architecture und J2EE
Architektur 1Architektur 1
DatenbankDaten-Server-Schicht
BenutzeroberflächeClient-Schicht
GeschäftslogikAnwendungs-Server-Schicht
9Oliver Müller: 3-Tier-Architecture und J2EE
Architektur 2Architektur 2
10Oliver Müller: 3-Tier-Architecture und J2EE
Die SchichtenDie Schichten
Die Schichtenund ihre
Aufgaben
11Oliver Müller: 3-Tier-Architecture und J2EE
Client - SchichtClient - Schicht
- dient der Präsentation der Daten
- Entgegennahme von Benutzer-Events
- Steuerung des Benutzer-Interfaces
- Client kann nicht nur klassische Applikation sein, sondern z. B. auch ein einfaches Java-Applet
12Oliver Müller: 3-Tier-Architecture und J2EE
Anwendungs - Server - SchichtAnwendungs - Server - Schicht
- enthält „gesamte“ Logik (Buisness-Objekte)
- stellt für Client-Schicht Dienste bereit
- schützt die Datenbestände
- durch (nicht visuelle) Komponenten erweiterbares Baukastensystem
13Oliver Müller: 3-Tier-Architecture und J2EE
Daten - Server - SchichtDaten - Server - Schicht
- „dumme“ Datenhaltung / -verwaltung ohne Logik
- „nur“ Sichern und Anbieten von Daten
- zumeist Datenbanksysteme
- evtl. auch Applikationen für Service-Dienste z.B. Ausdrucken von Lieferscheinen
14Oliver Müller: 3-Tier-Architecture und J2EE
Vorteile von 3-TierVorteile von 3-Tier
- Klare Trennung- von Darstellung und Applikationslogik- Wiederverwendbarkeit der bestehenden Dienste
- Entkopplung- Datenspeicher und Client sind getrennt- Neue Client-Applikation kann bestehende Dienst verwenden
- Kapselung- Applikationslogiken können in eigenen Applikationsklassen umgesetzt werden
- Komponentenbauweise- Einzelne Komponenten können ersetzt oder verändert werden- Komponenten können wie im Baukasten zusammengesetzt werden
15Oliver Müller: 3-Tier-Architecture und J2EE
Vorteile von 3-TierVorteile von 3-Tier
- Hohe Entwicklungsproduktivität- Applikationslogik und Oberflächencode getrennt erstellbar (Teams)- Datenbankspezifisches wird ausgelagert
- Gute Wartbarkeit- Veränderung hat „immer“ nur in einer Schicht Auswirkungen
16Oliver Müller: 3-Tier-Architecture und J2EE
Nachteile von 3-TierNachteile von 3-Tier
- Einarbeitungszeit- komplexes Framework- hohe Anforderung an Wissen und Erfahrung
- Mehraufwand- Planung- Modellerstellung- Kommunikation der Mitarbeiter- Überwachen der konsequenten Umsetzung
- Motivation- alle Mitarbeiter bereit für OO-Ansatz ?- „Muss das sein“-Mentalität (siehe Extreme Programming)
17Oliver Müller: 3-Tier-Architecture und J2EE
BeispielBeispiel
1. Maja hat Hunger!
2. Sie telefoniert und bestellt Futter3. Die Firma nimmt die Daten in Ihre Geschäfts- applikation auf und druckt den Lieferschein
18Oliver Müller: 3-Tier-Architecture und J2EE
BeispielBeispiel
4. Futter wird geliefert
5. Maja ist satt
19Oliver Müller: 3-Tier-Architecture und J2EE
Beispiel in 3-TierBeispiel in 3-Tier
Bestellung online1. Client-Schicht stellt Bestellmaske bereit2. Applikation-Schicht übernimmt Daten, gleicht sie mit KundenDB ab. Aktiviert alte Geschäftsapplikation. Sendet Bestätigung an Client-Schicht.3. Lieferschein wird von alter Applikation erstellt.4. Futter wird geliefert5. Maja ist satt
20Oliver Müller: 3-Tier-Architecture und J2EE
3-Tier vs. 2-Tier3-Tier vs. 2-Tier
- Kein direkter Zugriff auf Daten-Server
- geringe Netzwerklast
- Server sind „trusted“
- Logik nur in Applikation-Schicht Einfache Wartung und Erweite- rung.
- Daten-Server liegt frei
- hohe Netzwerklast. Client muss zur Verarbeitung alle Daten laden
- Clients sind „untrusted“
- Viel Logik im Client. Schlechte Wartbarkeit!
21Oliver Müller: 3-Tier-Architecture und J2EE
FragenFragen
Fragen ?
22Oliver Müller: 3-Tier-Architecture und J2EE
J2EEJ2EE
- J2EE ist ein Packet, das für die Umsetzung von 3-Tier-Architekturen erstellt wurde.
- Es enthält umfangreiche Klassen-Bibliotheken für die Schichten der Architektur.
- Betriebssystemgebundene Probleme, wie Netzwerknutzung sind schon implementiert.
- J2EE ermöglicht es dem Entwickler sich voll auf die Geschäftslogik zu konzentrieren.
23Oliver Müller: 3-Tier-Architecture und J2EE
J2EEJ2EE
- Hat sich zu einem Standard in der Entwicklung von Geschäftsanwendungen entwickelt.
- J2EE liefert gleich eigene Patterns zur Erstellung dieser Applikationen mit.
24Oliver Müller: 3-Tier-Architecture und J2EE
J2EEJ2EE
25Oliver Müller: 3-Tier-Architecture und J2EE
J2EEJ2EE
26Oliver Müller: 3-Tier-Architecture und J2EE
FragenFragen
Fragen ?
27Oliver Müller: 3-Tier-Architecture und J2EE
3-Tier Architektur3-Tier Architektur