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

Post on 07-Feb-2018

218 views 0 download

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<oliver.mueller@stud.uni-hannover.de>

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