Alexander Schill Thomas Springer. Verteilte Systeme. Grundlagen und Basistechnologien. 2. Auflage. 4y Springer Vieweg

Alexander Schill • Thomas Springer Verteilte Systeme Grundlagen und Basistechnologien 2. Auflage 4y Springer Vieweg Inhaltsverzeichnis 1 1.1 1.2 ...
11 downloads 2 Views 52KB Size
Alexander Schill • Thomas Springer

Verteilte Systeme Grundlagen und Basistechnologien 2. Auflage

4y Springer Vieweg

Inhaltsverzeichnis

1 1.1 1.2 1.3 1.4

Einleitung Anwendungsbeispiel Zielsetzung Verteilter Systeme Basiskonzepte Übungsaufgaben

2 2.1 2.2 2.3 2.4 2.5

Systemarchitekturen Client/Server-Modell Objektorientiertes Modell Komponentenbasiertes Modell Dienstorientiertes Modell Mehrstufige Architekturen 2.5.1 Dreistufige Architekturen 2.5.2 Cluster 2.6 Grid Computing 2.6.1 Grid-Architektur 2.6.2 Anwendungsfelder des Grid Computing 2.7 Cloud Computing 2.7.1 Dienstmodelle des Cloud-Computing 2.7.2 Anwendungsfelder und Plattformen Lösungen für Cloud-Lösungen 2.8 Peer-to-Peer-Architekturen 2.8.1 Typen von Peer-to-Peer-Architekturen 2.8.2 Anwendungsgebiete von Peer-to-Peer-Architekturen 2.9 Zusammenfassung 2.10 Übungsaufgaben

3 3.1

Kommunikation Remote Procedure Call 3.1.1 Architektur

3 5 6 9 14 15 18 20 22 23 24 26 28 29 31 31 34 36 37 39 39 41 46 47

XII

3.2

3.3

3.4

3.5

3.6

3.7

3.8 3.9 4 4.1 4.2 4.3

Inhaltsverzeichnis

3.1.2 Schnittstellenbeschreibung 3.1.3 Bindevorgang 3.1.4 Parameterübergabe 3.1.5 Prozessverwaltung 3.1.6 Fehlersemantik 3.1.7 Asynchrone RPCs 3.1.8 Erweiterungen Remote Method Invocation 3.2.1 Java Remote Method Invocation 3.2.2 Schnittstellenbeschreibung 3.2.3 Server-Programm 3.2.4 Client-Programm 3.2.5 Automatische Speicherverwaltung Asynchronous JavaScript und XML 3.3.1 Grundkonzept 3.3.2 AJAX Technologien Web Services 3.4.1 Grundkonzept 3.4.2 Web Services Description Language 3.4.3 SOAP 3.4.4 Universal Description, Discovery and Integration 3.4.5 Bindevorgang und Dienstaufruf Message Oriented Middleware 3.5.1 MQ Series 3.5.2 Java Messaging Service 3.5.3 Fazit Mobiler Code und Mobile Objekte 3.6.1 Mobiler Code 3.6.2 Mobile Objekte Strombasierte Kommunikation 3.7.1 Anwendungsklassen und Anforderungen 3.7.2 Verbindungssteuerung 3.7.3 Strombasierte Kommunikation auf Basis von Internetprotokollen Zusammenfassung Übungsaufgaben

49 49 51 52 53 55 56 57 57 58 60 61 63 64 66 66 69 69 70 73 75 77 78 80 81 82 83 84 85 92 93 95 96 99 102

Transaktionen Grundkonzepte Entfernter Datenbankzugriff Verteilte Transaktionen 4.3.1 Zwei-Phasen-Commit-Protokoll 4.3.2 Optimistisches Zwei-Phasen-Commit-Protokoll 4.3.3 Nebenläufigkeitskontrolle 4.3.4 Geschachtelte verteilte Transaktionen

107 108 112 114 116 116 120

Inhaltsverzeichnis

4.4

4.5 4.6 5 5.1

5.2

5.3

5.4

5.5

5.6 5.7 5.8 6 6.1

6.2

6.3

6.4

XIII

Transaktionsmonitore 4.4.1 Realisierte Mechanismen 4.4.2 Systemmodell 4.4.3 Legacy-Integration 4.4.4 Komponentenbasierte Transaktionssteuerung Zusammenfassung Übungsaufgaben

122 122 123 125 127 128 128

Sicherheit und Schutz Anforderungen 5.1.1 Angriffsszenarien 5.1.2 Schutzziele Verschlüsselung 5.2.1 Symmetrische Kryptoverfahren 5.2.2 Asymmetrische Kryptoverfahren 5.2.3 Digitale Signaturen 5.2.4 Kombinierte Verfahren Authentisierung 5.3.1 Authentisierung mittels symmetrischer Kryptoverfahren .. 5.3.2 Authentisierung mittels asymmetrischer Kryptoverfahren . Autorisierung 5.4.1 Gruppen und Rollen 5.4.2 Zugriffskontrolllisten 5.4.3 Capabilities Firewalls 5.5.1 Typen von Filtern 5.5.2 Firewall-Architekturen Anonymität 5.6.1 Pseudonyme Zusammenfassung Übungsaufgaben

133 133 134 135 136 137 139 139 140 140 143 144 146 147 148 150 150 152 153 154 154 155

Namens- und Verzeichnisdienste Anforderungen 6.1.1 Anforderungen an die Namensstruktur 6.1.2 Anforderung an die Realisierungseigenschaften Grundbegriffe und Namensstrukturen 6.2.1 Kontexte 6.2.2 Namensinterpretation 6.2.3 Junctions: Kombination von Namensräumen Realisierungstechniken 6.3.1 Realisierungsarchitektur 6.3.2 Optimierungsmöglichkeiten Systembeispiele 6.4.1 Internet Domain Name System

160 160 160 161 161 162 163 163 164 166 169 169

XIV

6.5 6.6 7 7.1

7.2

7.3

7.4 7.5 8 8.1

8.2

8.3

8.4

8.5

Inhaltsverzeichnis

6.4.2 X.500 Directory Service 6.4.3 Java Naming and Directory Interface Zusammenfassung Übungsaufgaben

172 176 177 178

Komponentenbasierte Entwicklung Verteilter Systeme Komponentenbasierte Softwareentwicklung 7.1.1 Softwarekomponenten 7.1.2 Softwareentwurf und -lebenszyklus 7.1.3 Anwendungsmodellierung mit UML 7.1.4 Komponentenplattformen Middleware und Application Server 7.2.1 Objektorientierte Middleware: Java RMI und CORBA 7.2.2 Message Oriented Middleware (MOM) 7.2.3 Komponentenbasierte Middleware 7.2.4 Gesamteinordnung der Middleware-Ansätze Test und Debugging 7.3.1 Prinzip des Debugging 7.3.2 Test und Debugging Verteilter Systeme 7.3.3 Lamport-Verfahren 7.3.4 Reexecution und Replay 7.3.5 Haltepunkte 7.3.6 Beherrschung der Informationsflut Zusammenfassung Übungsaufgaben

182 185 188 192 194 211 212 213 214 216 217 218 218 220 221 222 223 223 224

Dienstbasierte Architekturen und Technologien Schritte zur Realisierung dienstorientierter Geschäftsprozesse .. 231 8.1.1 Grundlegende Konzepte 231 8.1.2 Vorgehensweise 233 Modellierung von Geschäftsprozessen 235 8.2.1 Petri-Netze 236 8.2.2 Business Process Model and Notation (BPMN) 239 Ausführung von Geschäftsprozessen 242 8.3.1 Business Process Execution Language (BPEL) 242 8.3.2 Fazit 247 Technologien und Standards zur Umsetzung dienstorientierter Architekturen 248 8.4.1 Verzeichnisdienste 249 8.4.2 Transaktionsunterstützung 250 8.4.3 Sicherheit mit WS-Security 254 Realisierungplattformen 260 8.5.1 Enterprise Service Bus (ESB) 260 8.5.2 Java Business Integration (JBI) 262 8.5.3 Service Component Architecture (SCA) 263

Inhaltsverzeichnis

XV

8.6 8.7

Zusammenfassung Übungsaufgaben

265 266

9 9.1 9.2 9.3 9.4 9.5 9.6

Weiterführende Konzepte der Softwareentwicklung Architekturbeschreibungssprachen Konfigurationsprogrammierung Model Driven Architecture Aspektorientierte Programmierung Zusammenfassung Übungsaufgaben

271 276 281 283 287 287

10 Mobile Computing 10.1 Mobile Computing: Anwendungen 10.2 Mobilfunknetze 10.2.1 Multiplexveriahren 10.2.2 Zellulare Weitverkehrsnetze 10.2.3 Lokale Funknetze 10.2.4 Satellitenbasierte Netze 10.2.5 Gesamteinordnung 10.3 Protokolle für Mobile Computing 10.3.1 Dynamic Host Configuration Protocol 10.3.2 Mobile IP 10.3.3 Mobile TCP 10.3.4 Mobile RPC 10.4 Unterstützungsmechanismen für Mobile Computing 10.4.1 Stellvertreteransatz 10.4.2 Abgekoppelte Operationen 10.4.3 Autonome Operationen 10.4.4 Dateisysteme für Mobile Computing 10.4.5 Datenbanklösungen für Mobile Computing 10.4.6 Objektorientierte Erweiterungen 10.4.7 Mechanismen zur Adaption von Anwendungsdaten 10.5 Adaptive Web-Anwendungen 10.5.1 Wireless Application Protocol 10.5.2 Verwendung einer gemeinsamen Beschreibungssprache. 10.6 Java-basierte Anwendungen für mobile Rechner 10.6.1 Grundlegender Aufbau 10.6.2 Anwendungsentwicklung 10.7 Kontextabhängige Systeme 10.7.1 Lokationsabhängige Dienste 10.7.2 Basiskonzepte für kontextabhängige Systeme 10.8 Ausblick 10.9 Zusammenfassung 10.10 Übungsaufgaben

291 295 295 297 299 301 302 304 304 305 306 308 310 310 312 314 315 318 321 324 329 330 333 343 343 346 348 349 354 363 364 366

XVI

Inhaltsverzeichnis

11

Zusammenfassung und Ausblick

A A.1 A.2 A.3 A.4 A.5 A.6 A.7 A.8 A.9 A.10

Lösungen Kapitel 1 Kapitel 2 Kapitel 3 Kapitel 4 Kapitel 5 Kapitel 6 Kapitel 7 Kapitel 8 Kapitel 9 Kapitel 10

377 378 382 388 391 393 396 402 410 411

Literaturverzeichnis

419

Index

427

Suggest Documents