01 Architektur verteilter Anwendungen

Werbung
FWP Aktuelle Technologien zur
Entwicklung verteilter JavaAnwendungen
Sommersemester 2015
Michael Theis, Lehrbeauftragter
1
Wer braucht schon einen Architekten?
Sommersemester 2015
Michael Theis, Lehrbeauftragter
2
Applikationen benötigen anderer Systeme
 Applikationen unterstützen andere Systeme

Web UI (HTTP/HTML)
Enterprise
Application
Remote Service Interfaces (RMI)
Mainframe based Applications (JCA)
Relational Databases (JDBC/JPA)
Remote Service Interfaces (RMI)
Web Service Interfaces (HTTP/SOAP)
Web Service Interfaces (HTTP/SOAP)
Message-based Interfaces (JMS)
Message-based Interfaces (JMS)
Wie wollen Sie diese Komplexität ohne Architektur bewältigen?
Sommersemester 2015
Michael Theis, Lehrbeauftragter
3
Sommersemester 2015
Michael Theis, Lehrbeauftragter
4
Präsentation
(Presentation*)
Geschäftslogik
(Business, Domain*)
Integration
(Integration, Data Source*)
• Interaktion zwischen Anwendung und Benutzer
• Anzeige und Bearbeitung von Informationen
• Kern der Anwendungen bestehend aus Diensten
in einer Serviceschicht (Service Layer) und
Domänenmodell (Domain Model)
• Integration externer Ressourcen
• Transformation externes Domänenmodell /
internes Domänenmodell
Quelle: Martin Fowler „Patterns of EAA“ mit geänderten Namen (*: urspr. Name)
Sommersemester 2015
Michael Theis, Lehrbeauftragter
5
Wohldefinierte Schnittstellen zwischen den
Schichten
 Abhängigkeiten zwischen Schichten nur in eine
Richtung
 Getrennte Verantwortlichkeiten
 Lose Kopplung / Hohe Kohäsion
 Verteilung der Schichten auf verschiedene
Lokationen möglich

Sommersemester 2015
Michael Theis, Lehrbeauftragter
6
Benutzer


HTTP /
HTML


Benutzeroberfläche für
menschliche Benutzer
Beinhaltet nur
Präsentationslogik
Höchste Änderungshäufigkeit
innerhalb der Anwendung
Rich Client oder Thin Client
Präsentation
(Presentation)
Sommersemester 2015
Michael Theis, Lehrbeauftragter
7
HTTP/REST
HTTP/SOAP
RMI/IIOP
Lokal
Kern der Anwendung
 Bereitstellung von Services


Geschäftslogik

(Business)

Service Layer
Service
Service

Domain Model
Domain
Object
Sommersemester 2015
Domain
Object
Domain
Object
Lokal: Präsentationsschicht der
eigenen Anwendung
Entfernt: Andere Anwendungen
Services operieren auf
einheitlichem Domänenmodell
Nutzt Integrationsschicht für
Integration von externen
Ressourcen
Michael Theis, Lehrbeauftragter
8
Lokal
Integration
(Integration, Data Source)
Resource Access Components
Repository
Integriert externe Ressourcen
 Bildet externes Domänenmodell auf internes
Domänenmodell ab
 Kapselt Information über
konkrete Integration

Adapter

Datenbank
Sommersemester 2015
JCA
JPA


Welche Datenbank?
Welches Kommunikationsprotokoll?
Welches externe System?
HOST
Michael Theis, Lehrbeauftragter
9
Auch: Ports & Adapter
 Außenwelt kommuniziert mit
Applikation über Ports
 Applikation kommuniziert mit
Außenwelt über Ports
 Technologiespezifische
Adapter hinter Ports übersetzen Kommunikation
 Applikation kennt keine Details
der Außenwelt
 Außenwelt ist simulierbar

Adapter
Adapter
Adapter
Adapter
Application
Adapter
Adapter
HOST
Datenbank
Sommersemester 2015
Michael Theis, Lehrbeauftragter
10
Sommersemester 2015
Michael Theis, Lehrbeauftragter
11
UI Component
Business
Component
Resource Access
Component
Faces
Servlet
Boundary
Mainframe
RAC
UI Component
Tree
Control
RDBMS RAC
Entity
Webservice
RAC
Managed
Bean
View
Sommersemester 2015
Messaging
RAC
Michael Theis, Lehrbeauftragter
12
Ermöglicht Entkopplung, Kapselung und klare
Trennung der Verantwortlichkeiten
 Erleichtert die Erstellung service-orientierter
Applikationen
 Leicht umzusetzen

1 Implementierungsklasse pro Komponente
 1 Interface pro Komponente (empfehlenswert)
 Gruppierung in Module/Packages gemäß Konvention

Sommersemester 2015
Michael Theis, Lehrbeauftragter
13
Entscheidung für Designmodell zu Projektbeginn
 Wesentliche Modelle:

Serviceorientiert (Service Oriented Architecture SOA)
 Domänengetrieben (Domain Driven Design DDD)


Modelle können kombiniert werden, aber ein
Modell sollte Hauptmodell sein
Sommersemester 2015
Michael Theis, Lehrbeauftragter
14
Service Oriented Architecture





Services enthalten alle Logik
Domänenobjekte sind leere
Datenträger
Optimierung für Verteilung
bestimmt internes Design
Fördert Anti-Pattern Anemic
Domain Model *
Widerspricht objektorientiertem Design
Domain Driven Design
Domänenobjekte enthalten
Daten und Logik
 Services enthalten nur Logik
zur Orchestrierung von
Domänenobjekten
 Verteilter Zugriff über Adapter
 Entspricht objekt-orientiertem
Design

* Martin Fowler „AnemicDomainModel“ http://www.martinfowler.com/bliki/AnemicDomainModel.html
Sommersemester 2015
Michael Theis, Lehrbeauftragter
15
Sommersemester 2015
Michael Theis, Lehrbeauftragter
16
Verteilung
• Regelt
Kommunikation
verteilter
Anwendung
Sommersemester 2015
Transaktionen
• Steuern Zugriff auf
transaktionale
Resourcen
• Stellen
Datenkonsistenz
sicher
Persistenz
• Bietet die
dauerhafte
Speicherung von
Daten
• Bildet
Domänenmodell
auf relationales
Datenmodell ab
Michael Theis, Lehrbeauftragter
Sicherheit
• Schützt die
Anwendung vor
unberechtigten
Zugriffen
17
Sommersemester 2015
Michael Theis, Lehrbeauftragter
18
“Don’t distribute your objects!”
Quelle: Martin Fowler „Patterns of EAA“
Sommersemester 2015
Michael Theis, Lehrbeauftragter
19








Das Netzwerk ist zuverlässig
Latenz[zeit] ist 0
Bandbreite ist unendlich
Das Netzwerk ist sicher
[Netzwerk-]Topologie ändert sich nicht
Es gibt nur einen Administrator
Transportkosten sind 0
Das Netzwerk ist homogen
Quelle: Peter Deutsch, James Gosling Fallacies of Distributed Computing
http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing
Sommersemester 2015
Michael Theis, Lehrbeauftragter
20
Rechner
Komplexität
Rechner
Prozess
Rechner
Prozess
App
App
Prozess
Rechner
Prozess
App
Rechner
App
Prozess
Prozess
App
App
App
Grad der Verteilung
Sommersemester 2015
Michael Theis, Lehrbeauftragter
21
Skalierbarkeit
 Ausfallsicherheit
 Technologiegrenzen
 Unterschiedliche Standorte
 Bereitstellung von Diensten für externe Consumer
 Komposition eigener Dienste aus Diensten
externer Provider

Sommersemester 2015
Michael Theis, Lehrbeauftragter
22
File Transfer
Sommersemester 2015
Gemeinsame
Datenbank
Remote
Procedure
Call
Michael Theis, Lehrbeauftragter
Messaging
23
Anwendungen tauschen Informationen über
Dateien aus
 Anforderungen bestimmen Häufigkeit des
Austausches
Export
App 1
Import

App 2
Gemeinsame Daten
Sommersemester 2015
Michael Theis, Lehrbeauftragter
24
Anwendungen tauschen Informationen über
gemeinsame Tabellen aus
 Datenbank-Schema bestimmt Datenformat

Anwendung 1
Anwendung 2
Anwendung 3
Gemeinsame Daten
Sommersemester 2015
Michael Theis, Lehrbeauftragter
25
Anwendungen kapseln ihre Daten und stellen
Interfaces für den Zugriff zur Verfügung
 Austausch der Informationen erfolgt über
synchronen entfernten Methodenaufruf
Anforderung mit
Eingabeparametern
Stub
App 1
Antwort mit
Rückgabewert
Sommersemester 2015
Michael Theis, Lehrbeauftragter
Skeleton

App 2
26
Häufiger, unmittelbarer, zuverlässiger und
asynchroner Austausch von Nachrichten
 Flexibelste Integration, erfordert aber Umdenken

Messaging System
Anforderung
Endpunkt
Antwort
Sommersemester 2015
Anforderung
Endpunkt
Sender
Anforderungskanal
Antwortkanal
Michael Theis, Lehrbeauftragter
Empfänger
Antwort
27
Sommersemester 2015
Michael Theis, Lehrbeauftragter
28
Atomicity
• Eine Transaktion wird entweder ganz oder gar nicht
ausgeführt
Consistency
• Eine Transaktion überführt eine transaktionale
Ressource von einem bestehenden konsistenten
Zustand in einen neuen konsistenten Zustand
Isolation
• Das Ergebnis einer Transaktion darf für andere
Transaktionen solange nicht sichtbar sein, bis diese
Transaktion erfolgreich abgeschlossen worden ist.
Durability
• Das Ergebnis einer erfolgreich abgeschlossenen
Transaktion muss dauerhaft erhalten bleiben und
Abstürze jeder Art überstehen.
Sommersemester 2015
Michael Theis, Lehrbeauftragter
29
Durchsatz
Isolationsgrad
Sommersemester 2015
Serializable
• Wiederholte Lesezugriffe liefern gleiche Sätze und gleiche
Ergebnismengen
• Schreib-, Lese- und Bereichsoperationen verursachen Sperren
Repeatable
reads
• Wiederholte Lesezugriffe liefern gleiche Sätze aber
unterschiedliche Ergebnismengen möglich (Phantom Read)
• Schreib- und Leseoperationen verursachen Sperren
Read
committed
• Lesezugriffe liefern nur committete Sätze
• Schreiboperationen verursachen Sperren
Read
uncommitted
• Lesezugriffe liefern nicht committete Sätze
• Keine Sperren
Michael Theis, Lehrbeauftragter
30

Begin


Transaktion beginnt
Commit
Transaktion endet erfolgreich
 Beteiligte transaktionale Ressourcen werden verändert


Rollback
Transaktion bricht nach Fehler ab
 Beteiligte transaktionale Ressourcen bleiben
unverändert

Sommersemester 2015
Michael Theis, Lehrbeauftragter
31

Transaktion mit mehreren beteiligten
transaktionalen Ressourcen in zwei Phasen
Phase 1: Commit vorbereiten
 Phase 2: Commit ausführen

(0) Commit
(1a) Commit möglich?
(1a) Commit möglich?
Koordinator
(2a) Commit
durchführen!
(2a) Commit
durchführen!
(1b) Ja
(1b) Ja
DB1
Sommersemester 2015
DB2
Michael Theis, Lehrbeauftragter
32

Bei Aufrufen entfernter Anwendungen wird der
Transaktionskontext mit übertragen

Aufgerufene Methode kann die die Transaktion des
Aufrufers teilen (muss aber nicht)
Koordination der Transaktionen übernimmt der
aufrufende Container (Applikationsserver)
 Umsetzung teilweise aufwändig bzw. unmöglich

Sommersemester 2015
Michael Theis, Lehrbeauftragter
33
Sommersemester 2015
Michael Theis, Lehrbeauftragter
34

Authentisierung == Wer bist du?
Identifizierung eines Objekts und die Überprüfung der
Identität
 Identität entspricht Benutzername
 Identifizierung erfolgt über Credentials


Autorisierung == Was darfst du?
Überprüfung von Berechtigungen eines angemeldeten
Benutzers bezogen auf geschützte Ressourcen
 Berechtigungen entsprechen Rollen / Gruppen

Sommersemester 2015
Michael Theis, Lehrbeauftragter
35
Application Server
(1) Zugriff
(2) Formular
(3) Auth.daten
(4) Token
Web Container
SC
EJB Container
SC
Servlet
EJB
(5) Zugriff + Token
Security Provider
Plugin
LDAP
Sommersemester 2015
Michael Theis, Lehrbeauftragter
Plugin
Plugin
DB
Identity
Manager
36

Bei Aufrufen entfernter Anwendungen wird der
Securitykontext mit übertragen
Aufgerufene Methode läuft im gleichen Securitykontext wie der Aufrufer
 Benutzer muss sich nicht erneut anmelden (Single
Signon/SSO)

Beteiligte Container (Application Server) müssen
einander trauen
 Umsetzung teilweise aufwändig

Sommersemester 2015
Michael Theis, Lehrbeauftragter
37
Sommersemester 2015
Michael Theis, Lehrbeauftragter
38
Spalte
Primärschlüssel
Klasse
Zeile
Tabelle
feld 1
feld 2
PK
PK
Vererbung
Klasse
1
ORM
feld 1
feld 2
Beziehungen
1..*
Klasse
Komposition
PK
FK
PK
FK
Indizes
feld 1
feld 2
Sommersemester 2015
Tabelle
Constraints
Michael Theis, Lehrbeauftragter
39
Mapping muss programmiert werden
 Zugriff auf die Datenbank mit SQL muss
programmiert werden

Klasse
Klasse
ORM
JDBC
DataSource
DAO
SQL
Tabelle
Tabelle
Tabelle
Klasse
Sommersemester 2015
Michael Theis, Lehrbeauftragter
40
Persistente Klassen werden mit MappingAnnotationen versehen und mit Datasource
verknüpft
 Persistenzframework führt Mapping durch und
generiert SQL zur Laufzeit

Klasse
Klasse
ORM
Klasse
Sommersemester 2015 Annotationen
Persistence
.xml
Michael Theis, Lehrbeauftragter
JDBC
DataSource
JPA
SQL
Tabelle
Tabelle
Tabelle
41
Sommersemester 2015
Michael Theis, Lehrbeauftragter
42
Sommersemester 2015
Michael Theis, Lehrbeauftragter
43




Martin Fowler: Patterns of Enterprise Application Architecture
Addison Wesley 2003; ISBN 0-321-12742-0
Adam Bien: Real World Java EE Patterns: Rethinking Best Practices
press.adam-bien.com September 2012; ISBN 978-0-300-14931-6
Gregor Hohpe, Bobby Wolfe
Enterprise Integration Patterns
Addison Wesley, 2004, ISBN: 0-321-20068-3
Eric Evans: Domain Driven Design:
Tackling Complexity in the Heart of Software
Addison Wesley 2004; ISBN 0-321-12521-5
Sommersemester 2015
Michael Theis, Lehrbeauftragter
44
Michael Theis
Lehrbeauftragter Hochschule München
email
mobile
web
Sommersemester 2015
[email protected]
+ 49 170 5403805
http://www.tschutschu.de/Lehrauftrag.html
Michael Theis, Lehrbeauftragter
45
Herunterladen