Systemarchitekturen für Verteilte Anwendungen (eBook)
305 Seiten
Carl Hanser Verlag GmbH & Co. KG
978-3-446-41745-8 (ISBN)
- 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
Prof. Dr. Jürgen Dunkel, Prof. Dr. Carsten Kleiner und Prof. Dr. Arne Koschel bauen für ihre Lehre an der FH Hannover auf ihrer langjährigen Industrieerfahrung auf. Arne Koschel ist nebenberuflich als Berater tätig. Dr.-Ing. Andreas Eberhart ist Geschäftsführer der Fluid Operations GmbH in Walldorf. Prof. Dr. Stefan Fischer unterrichtet an der Universität zu Lübeck.
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
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.
Erscheint lt. Verlag | 4.9.2008 |
---|---|
Verlagsort | München |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Netzwerke |
Schlagworte | Client-Server • GRID • Multi-Tier • Software-Architektur • Systemarchitektur • Verteilte Systeme • Web 2.0 |
ISBN-10 | 3-446-41745-1 / 3446417451 |
ISBN-13 | 978-3-446-41745-8 / 9783446417458 |
Haben Sie eine Frage zum Produkt? |
Größe: 5,0 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich