| 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
|