Jürgen Dunkel, Andreas Eberhart, Stefan Fischer, Carsten Kleiner, Arne Koschel
Systemarchitekturen für Verteilte Anwendungen
Client-Server, Multi-Tier, SOA, Event-Driven Architectures, P2P, Grid, Web 2.0
Inhaltsverzeichnis
6
Vorwort
12
Teil I Einführung
14
Kapitel 1 Motivation und Überblick
16
Kapitel 2 Softwarearchitekturen
20
2.1 Der Begriff ”Softwarearchitektur“
20
2.2 Leitgedanken zur Strukturierung von Software
21
2.3 Kriterien für gute Softwarearchitekturen
22
2.4 Die Dimensionen verteilter Systeme
24
2.4.1 Verteilung und Kommunikation
25
2.4.2 Nebenläufigkeit
26
2.4.3 Persistenz
27
2.5 Existierende Softwarearchitekturen für verteilte Systeme
28
Teil II Architekturen für verteilte Systeme
32
Kapitel 3 Client-Server-Architekturen
34
3.1 Architekturkonzept
34
3.1.1 Einführung
34
3.1.2 Eigenschaften des Client-Server-Modells
35
3.2 Realisierungsplattformen
38
3.2.1 WWW-Clients und -Server
38
3.2.2 Sockets
40
3.2.3 RPC am Beispiel Java Remote Method Invocation
41
3.2.4 Client und Datenbank-Server
43
3.3 Code-Beispiele
45
3.3.1 Sockets
45
3.3.2 RPC mit Java RMI
48
3.3.3 DB-Client und DB-Server
50
Kapitel 4 3- und N-Tier-Architekturen
54
4.1 Architekturkonzepte
55
4.1.1 Dreischichtige Architekturen
55
4.1.2 Mehrschichtige Architekturen
59
4.2 Realisierungsplattformen
62
4.2.1 Klassische Web 1.0-Anwendungsarchitekturen
62
4.2.2 Verteilte Objekte am Beispiel CORBA
64
4.2.3 JEE
68
4.2.4 .NET
76
4.3 Code-Beispiele
85
4.3.1 Klassische Web 1.0-Anwendungsarchitekturen
85
4.3.2 Verteilte Objekte am Beispiel CORBA: Code
88
4.3.3 JEE
91
4.3.4 .NET
96
Kapitel 5 SOA
102
5.1 Architekturkonzept
102
5.1.1 Motivation
102
5.1.2 Struktur von SOAs
103
5.2 Web Services
105
5.2.1 Motivation, Historie und Standardisierung
105
5.2.2 SOAP
107
5.2.3 WSDL
111
5.2.4 UDDI
113
5.2.5 WS-BPEL
113
5.2.6 WS-I
115
5.2.7 WS-*
115
5.2.8 Fragestellungen in der Praxis
116
5.2.9 Bewertung der Web Service Standards
117
5.3 Realisierungsplattformen
118
5.3.1 .NET
118
5.3.2 Apache Axis
120
5.3.3 Open Enterprise Service Bus
123
5.3.4 Oracle WS-BPEL Engine
125
5.4 Code-Beispiele
126
5.4.1 Java / Axis
126
5.4.2 .NET
128
5.4.3 WS-BPEL
129
Kapitel 6 Event-Driven Architecture (EDA)
132
6.1 Architekturkonzept
133
6.1.1 Ereignis-orientierte Softwarearchitektur
134
6.1.2 Complex Event Processing
137
6.1.3 EDA-Referenzarchitektur
146
6.1.4 Vorgehen bei der Entwicklung von EDA-Anwendungen
147
6.1.5 Aktueller Entwicklungsstand
148
6.2 Realisierungsplattformen
149
6.3 Code-Beispiele
150
Kapitel 7 Peer-to-Peer
154
7.1 Architekturkonzept
155
7.1.1 Was ist P2P?
155
7.1.2 Zentrale Architektur – Napster
158
7.1.3 Verteilte Architektur – Gnutella
159
7.1.4 Distributed Hash Tables
162
7.1.5 Chord
164
7.1.6 Split-Stream-Protokolle
166
7.1.7 Bedeutung und Einordnung von P2P-Netzen
168
7.2 Realisierungsplattformen
168
7.2.1 JXTA
169
7.2.2 Peer-to-Peer-Netze in der Praxis
171
Kapitel 8 Grid-Architekturen
174
8.1 Architekturkonzept
175
8.1.1 Allgemeines
176
8.1.2 Arten von Grids
178
8.1.3 OGSA
179
8.1.4 Weiterführende Literatur
180
8.2 Realisierungsplattformen
181
8.2.1 Konzeptionelle Realisierungen der OGSA
182
8.2.2 Unabhängige Implementierungen
187
8.2.3 Herstellerspezifische Implementierungen
190
8.3 Code-Beispiele
192
8.3.1 Globus Toolkit GT4
192
8.3.2 Amazon
193
Kapitel 9 Web 2.0 und Web-orientierte Architekturen
198
9.1 Architekturkonzept
200
9.1.1 Keep it Simple!
200
9.1.2 Hochskalierbare Systeme mit REST
201
9.1.3 AJAX: Neue Wege im Design von Web-basierten Benutzerschnittstellen
202
9.1.4 JSON als leichtgewichtiger Ersatz für XML
208
9.1.5 Event-basierte Programmierung mit Feeds
209
9.1.6 Mashups: Daten- und Applikationsintegration im Browser
211
9.1.7 Architektonische Probleme bei Mashups und AJAX
212
9.2 Realisierungplattformen
215
9.2.1 AJAX-Werkzeuge
215
9.2.2 UI Libs
216
9.2.3 Mashup IDEs
217
9.2.4 Alternative Clients
217
9.3 Code-Beispiele
219
9.3.1 REST Client in Java
219
9.3.2 JavaScript Mashup
221
Teil III Auswahl einer konkreten Architektur
224
Kapitel 10 Vergleichskriterien zur Architekturwahl
226
10.1 Anforderungen aus dem Softwarelebenszyklus
227
10.1.1 Analyse und Design
228
10.1.2 Entwicklung und Test
229
10.1.3 Betrieb
230
10.1.4 Management und Umfeld
231
10.1.5 Analyse der Architekturen
232
10.2 Anforderungen der Anwendungen
247
10.2.1 Grad an Interaktivität
248
10.2.2 Zahl der Teilnehmer
248
10.2.3 Ressourcenbedarf
249
10.2.4 Dynamik
249
10.2.5 Robustheitsanforderungen
249
10.2.6 Anwendungsgebiet
250
10.3 Zusammenfassung der Architekturbewertung
250
Kapitel 11 Verteilte Anwendungen: Fallbeispiele aus der Praxis
252
11.1 Fallbeispiele ”Klassische Web-Anwendungsarchitekturen und Verteilte Objekte“
252
11.1.1 Klassische Web 1.0-Anwendungsarchitekturen
252
11.1.2 3-Tier Web- und verteilte Objekte-Anwendung mit CORBA: ”UIS-Föderationsarchitektur“
253
11.2 Fallbeispiele ”N-tier-Architekturen“
254
11.2.1 .NET: ”3-Schicht-Anwendung vita.NET“
255
11.2.2 Java EE/J2EE: ”Standard-Web-Anwendungen PetStore und Duke’s Bank“
258
11.3 Fallbeispiele ”SOA“
260
11.3.1 SOA und Web Services: ”Amazon.com“
261
11.3.2 SOA und ESB: ”Einführung in einem mittelständischen Versicherungsunternehmen“
261
11.3.3 SOA, CORBA und J2EE: ”Erfahrungen bei der Migration eines IMS-basierenden Kernbankenverfahrens in eine Service-orientierte Architektur“
265
11.4 Fallbeispiele ”Peer-to-Peer“
270
11.5 Fallbeispiele ”Grid“
270
11.5.1 Huge Scale Grid: ”Worldwide LHC Computing Grid (WLCG)“
270
11.5.2 Kleine Grids: ”ViSoGrid“
272
11.6 Fallbeispiel Web 2.0: ”Flickr“
274
Teil IV Ausblick und Zusammenfassung
276
Kapitel 12 Künftige Entwicklungen
278
12.1 Software as a Service
278
12.2 Virtualisierung
279
12.3 Appliances
281
12.4 Cloud Computing
283
12.5 Semantic Web
284
12.6 Ubiquitous Computing
286
12.7 Ultra-Large-Scale Systems
287
Kapitel 13 Zusammenfassung
290
Literaturverzeichnis
292
Stichwortverzeichnis
300
© 2009-2024 ciando GmbH