3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und...

27
3-Tier-Architecture 3-Tier-Architecture und J2EE und J2EE Oliver Müller <[email protected]> Seminar Software-Entwurf WS 2004/05

Transcript of 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und...

Page 1: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

3-Tier-Architecture 3-Tier-Architecture und J2EEund J2EE

Oliver Müller<[email protected]>

Seminar Software-EntwurfWS 2004/05

Page 2: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 3: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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.

Page 4: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 5: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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.

Page 6: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 7: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

7Oliver Müller: 3-Tier-Architecture und J2EE

FragenFragen

Fragen ?

Page 8: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

8Oliver Müller: 3-Tier-Architecture und J2EE

Architektur 1Architektur 1

DatenbankDaten-Server-Schicht

BenutzeroberflächeClient-Schicht

GeschäftslogikAnwendungs-Server-Schicht

Page 9: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

9Oliver Müller: 3-Tier-Architecture und J2EE

Architektur 2Architektur 2

Page 10: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

10Oliver Müller: 3-Tier-Architecture und J2EE

Die SchichtenDie Schichten

Die Schichtenund ihre

Aufgaben

Page 11: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 12: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 13: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 14: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 15: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 16: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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)

Page 17: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 18: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

18Oliver Müller: 3-Tier-Architecture und J2EE

BeispielBeispiel

4. Futter wird geliefert

5. Maja ist satt

Page 19: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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

Page 20: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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!

Page 21: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

21Oliver Müller: 3-Tier-Architecture und J2EE

FragenFragen

Fragen ?

Page 22: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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.

Page 23: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

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.

Page 24: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

24Oliver Müller: 3-Tier-Architecture und J2EE

J2EEJ2EE

Page 25: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

25Oliver Müller: 3-Tier-Architecture und J2EE

J2EEJ2EE

Page 26: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

26Oliver Müller: 3-Tier-Architecture und J2EE

FragenFragen

Fragen ?

Page 27: 3-Tier-Architecture und J2EE - se.uni- · PDF fileOliver Müller: 3-Tier-Architecture und J2EE 3 Die Lage - Applikationen laufen auf Clients und greifen auf die Daten von Servern zu.

27Oliver Müller: 3-Tier-Architecture und J2EE

3-Tier Architektur3-Tier Architektur