: 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
: Carl Hanser Fachbuchverlag
: 9783446417458
: 1
: CHF 31.10
:
: Informatik
: German
: 305
: Wasserzeichen/DRM
: PC/MAC/eReader/Tablet
: PDF
GUT VERTEILT IST HALB GEWONNEN
- Alles in einem Buch: die wichtigsten Architekturtypen verteilter Anwendungen.
- Lernen Sie die Unterschiede, Vor- und Nachteile der Architekturtypen kennen.
- Orientieren Sie sich an den zahlreichen Fallbeispielen des Buches.
- Sie erhalten Unterstützung bei der Auswahl der richtigen Architektur für Ihr spezifisches Einsatzszenario.
Verteilte DV-Lösungen werden mehr und mehr zum Kern der IT-Infrastruktur - sowohl bei Weltkonzernen als auch bei kleinen und mittleren Unternehmen. Sie ermöglichen einen effizienten Informationsfluss innerhalb eines Unternehmens und in Kunden- und Lieferantenbeziehungen. Über die Jahre haben sich verschiedene mögliche Architekturen etabliert: Client-Server, Multi-Tier, SOA, Event-Driven Architecture, P2P, Grid. Gleichzeitig liefert auch das Web 2.0 wichtige Impulse.
Als Entscheider, Projektleiter, Software-Architekten oder -Ingenieure stehen Sie vor der Herausforderung, sich für die 'richtige' Architektur für Ihr Einsatzszenario zu entscheiden. Dieses Buch gibt Ihnen dafür wertvolle Entscheidungshilfen.
Die Autoren beschreiben die Konzepte der verschiedenen Systemarchitekturen und stellen jeweils die wichtigsten Realisierungsplattformen und einfache Code-Beispiels vor. So lernen Sie die Architekturen kennen und bekommen einen Eindruck von der konkreten Umsetzung. Der Vergleich der Architekturen, die Beschreibung ihrer Vor- und Nachteile und eine Reihe von Fallbeispielen helfen Ihnen bei der Architekturwahl. Der Ausblick macht Sie vertraut mit zukünftigen Entwicklungen wie Software as a Service, Virtualisierung, Semantic Web und Ubiquitous Computing
Aus dem Inhalt: Softwarearchitekturen - Client-Server-Architekturen - 3- und N-Tier-Architekturen - SOA - Event-Driven Architecture - Peer to Peer - Grid-Architekturen - Web 2.0 und Web-orientierte Architekturen - Vergleichskriterien zur Architekturwahl - Fallbeispiele aus der Praxis - Künftige Entwicklungen

Kapitel 6 Event-Driven Architecture (EDA) (S. 119-120)

Die im vorigen Kapitel betrachteten Service-orientierten Architekturen (SOA) bieten ein Konzept, um Software auf Basis der von ihnen angebotenen Dienste ( Services) zu strukturieren. Insbesondere können aus bestehenden Anwendungssystemen Services extrahiert und dann zu komplexen Geschäftsprozessen zusammengesetzt werden.

Dieser Architekturansatz ist sehr gut geeignet, wenn die zu unterstützenden Prozesse Ablauf-orientiert sind, d.h. durch einzelne Arbeitsschritte, Abfragen, Schleifen usw. beschrieben werden können. Eine solche Ablauf-orientierte Sicht auf Geschäftsprozesse stößt aber in vielen Anwendungsbereichen an ihre Grenzen. Denn in der Realität sind viele Geschäftsprozesse ereignisgesteuert: immer mehr Detailinformationen werden elektronisch in Form von Ereignissen bereitgestellt.

Dabei handelt es sich um fein-granulare Daten, die häufigen Updates unterworfen sind, und auf die in angemessener Weise möglichst in Echtzeit reagiert werden muss. Oder, wie es in einer Gartner-Studie heißt:’the real world is mostly event driven’ [77]. Beispiele für solche ereignisgesteuerten Geschäftsprozesse gibt es viele: Logistische Prozesse, die eine zentrale Rolle in allen Wirtschaftsbereichen spielen, sind durch die Verarbeitung von Ereignissen bestimmt. Sie müssen bspw. auf den Eingang eines Werkstücks, das Beenden eines Fertigungsschritts oder das Auftreten eines Fehlers unmittelbar reagieren. Von besonderer Bedeutung ist dabei die Lokalisierung und Identifizierung von Waren und Gegenständen, wie sie mittels RFID-Technologie ( Radio Frequency Identi.cation) erfolgen kann. Aber auch in vielen betriebswirtschaftlichen Anwendungen sind Ereignisse von zentraler Bedeutung: die Steuerung von Arbeitsabläufen (Workflows) ist durch den Eingang von Bestellungen, Aufträgen, Buchungen usw. bestimmt. Ein klassisches Beispiel ist der Wertpapierhandel: die Kauf-Entscheidung für eine bestimmte Aktie hängt von der Entwicklung von Dollarkurs, Goldpreis, Dow Jones usw. ab. Jede einzelne Kursänderung kann als ein Ereignis aufgefasst werden und muss ggf. bei der Entscheidungsfindung berücksichtigt werden.

Im Business Activity Monitoring (BAM) werden die für alle Geschäftsprozesse relevanten Ereignisse in Echtzeit gesammelt und zu Daten verdichtet, um so kontinuierlich den aktuellen Status der kritischen Unternehmensprozesse bestimmen zu können. Auf Basis geeigneter Indikatoren lassen sich dann Entscheidungen fundierter treffen und die Prozesse dynamisch den Unternehmenszielen anpassen [17].

Wegen der Vielzahl der potenziell auftretenden Ereignisse und ihrer komplexen Wechselwirkungen lässt sich in den beschriebenen Szenarien kein vordefinierter Ablauf für einen Geschäftsprozess festlegen. Das prozessorientierte Konzept von SOA greift hier also nicht.

Speziell für solche Ereignis-getriebene Systeme wurde das Konzept der Event- Driven Architecture (EDA) von David Luckham an der Stanford University entwickelt [55]. Im Wesentlichen handelt es sich dabei um eine Softwarearchitektur, die auf die Ereignisverarbeitung ausgerichtet ist, also das Erzeugen, Entdecken und Verarbeiten einzelner Ereignisse oder ganzer Ereignisströme als zentrale Architekturkomponenten beinhaltet.

Von Gartner wurde für eine Kombination von SOA und EDA der Begriff SOA 2.0 oder Advanced SOA geprägt.1 Als Hauptanwendungsgebiete werden dort u.a. Echtzeithandel in der Finanzbranche oder Verwaltung von RFID-Netzen identifiziert.

Inhaltsverzeichnis6
Vorwort12
Teil I Einführung14
Kapitel 1 Motivation und Überblick16
Kapitel 2 Softwarearchitekturen20
2.1 Der Begriff ”Softwarearchitektur“20
2.2 Leitgedanken zur Strukturierung von Software21
2.3 Kriterien für gute Softwarearchitekturen22
2.4 Die Dimensionen verteilter Systeme24
2.4.1 Verteilung und Kommunikation25
2.4.2 Nebenläufigkeit26
2.4.3 Persistenz27
2.5 Existierende Softwarearchitekturen für verteilte Systeme28
Teil II Architekturen für verteilte Systeme32
Kapitel 3 Client-Server-Architekturen34
3.1 Architekturkonzept34
3.1.1 Einführung34
3.1.2 Eigenschaften des Client-Server-Modells35
3.2 Realisierungsplattformen38
3.2.1 WWW-Clients und -Server38
3.2.2 Sockets40
3.2.3 RPC am Beispiel Java Remote Method Invocation41
3.2.4 Client und Datenbank-Server43
3.3 Code-Beispiele45
3.3.1 Sockets45
3.3.2 RPC mit Java RMI48
3.3.3 DB-Client und DB-Server50
Kapitel 4 3- und N-Tier-Architekturen54
4.1 Architekturkonzepte55
4.1.1 Dreischichtige Architekturen55
4.1.2 Mehrschichtige Architekturen59
4.2 Realisierungsplattformen62
4.2.1 Klassische Web 1.0-Anwendungsarchitekturen62
4.2.2 Verteilte Objekte am Beispiel CORBA64
4.2.3 JEE68
4.2.4 .NET76
4.3 Code-Beispiele85
4.3.1 Klassische Web 1.0-Anwendungsarchitekturen85
4.3.2 Verteilte Objekte am Beispiel CORBA: Code88
4.3.3 JEE91
4.3.4 .NET96
Kapitel 5 SOA102
5.1 Architekturkonzept102
5.1.1 Motivation102
5.1.2 Struktur von SOAs103
5.2 Web Services105
5.2.1 Motivation, Historie und Standardisierung105
5.2.2 SOAP107
5.2.3 WSDL111
5.2.4 UDDI113
5.2.5 WS-BPEL113
5.2.6 WS-I115
5.2.7 WS-*115
5.2.8 Fragestellungen in der Praxis116
5.2.9 Bewertung der Web Service Standards117
5.3 Realisierungsplattformen118
5.3.1 .NET118
5.3.2 Apache Axis120
5.3.3 Open Enterprise Service Bus123
5.3.4 Oracle WS-BPEL Engine125
5.4 Code-Beispiele126
5.4.1 Java / Axis126
5.4.2 .NET128
5.4.3 WS-BPEL129
Kapitel 6 Event-Driven Architecture (EDA)132
6.1 Architekturkonzept133
6.1.1 Ereignis-orientierte Softwarearchitektur134
6.1.2 Complex Event Processing137
6.1.3 EDA-Referenzarchitektur146
6.1.4 Vorgehen bei der Entwicklung von EDA-Anwendungen147
6.1.5 Aktueller Entwicklungsstand148
6.2 Realisierungsplattformen149
6.3 Code-Beispiele150
Kapitel 7 Peer-to-Peer154
7.1 Architekturkonzept155
7.1.1 Was ist P2P?155
7.1.2 Zentrale Architektur – Napster158
7.1.3 Verteilte Architektur – Gnutella159
7.1.4 Distributed Hash Tables162
7.1.5 Chord164
7.1.6 Split-Stream-Protokolle166
7.1.7 Bedeutung und Einordnung von P2P-Netzen168
7.2 Realisierungsplattformen168
7.2.1 JXTA169
7.2.2 Peer-to-Peer-Netze in der Praxis171
Kapitel 8 Grid-Architekturen174
8.1 Architekturkonzept175
8.1.1 Allgemeines176
8.1.2 Arten von Grids178
8.1.3 OGSA179
8.1.4 Weiterführende Literatur180
8.2 Realisierungsplattformen181
8.2.1 Konzeptionelle Realisierungen der OGSA182
8.2.2 Unabhängige Implementierungen187
8.2.3 Herstellerspezifische Implementierungen190
8.3 Code-Beispiele192
8.3.1 Globus Toolkit GT4192
8.3.2 Amazon193
Kapitel 9 Web 2.0 und Web-orientierte Architekturen198
9.1 Architekturkonzept200
9.1.1 Keep it Simple!200
9.1.2 Hochskalierbare Systeme mit REST201
9.1.3 AJAX: Neue Wege im Design von Web-basierten Benutzerschnittstellen202
9.1.4 JSON als leichtgewichtiger Ersatz für XML