Top Banner
3-Tier-Architecture 3-Tier-Architecture und J2EE und J2EE Oliver Müller <[email protected]> Seminar Software-Entwurf WS 2004/05
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.

Feb 07, 2018

Download

Documents

vodiep
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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