Systemarchitekturen für Verteilte Anwendungen - Client-Server, Multi-Tier, SOA, Event-Driven Architectures, P2P, Grid, Web 2.0

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

2008

305 Seiten

Format: PDF, Online Lesen

E-Book: €  34,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446417458

 

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