IT-Konzepte

Enterprise Integration Patterns

Die 65 Muster von Hohpe und Woolf, wie Systeme über Nachrichten zusammenarbeiten – in acht Kapiteln mit Diagrammen.

Die 65 Muster aus dem Buch Enterprise Integration Patterns von Gregor Hohpe und Bobby Woolf (2003), auf Deutsch erklärt und illustriert. Jedes Kapitel ist eine eigene Seite mit Diagrammen, Beispielen aus dem Alltag eines Online-Händlers und Hinweisen auf heutige Werkzeuge wie Kafka, RabbitMQ, Apache Camel und Spring Integration.

1. Integrationsstile

1File TransferSysteme tauschen Daten über Dateien aus
2Shared Databasealle Systeme arbeiten auf derselben Datenbank
3Remote Procedure Invocationein System ruft Funktionen eines anderen direkt auf
4MessagingSysteme kommunizieren asynchron über Nachrichten

2. Messaging-Grundlagen

5Message Channelbenannter Kanal, über den Nachrichten fließen
6MessageDatenpaket aus Header und Body
7Pipes and FiltersVerarbeitung als Kette unabhängiger Schritte
8Message Routerleitet Nachrichten je nach Bedingung weiter
9Message Translatorübersetzt zwischen Nachrichtenformaten
10Message EndpointVerbindungsstelle zwischen Anwendung und Messaging

3. Kanäle

11Point-to-Point Channelgenau ein Empfänger pro Nachricht
12Publish-Subscribe Channeljeder Abonnent erhält eine Kopie
13Datatype Channelein Kanal pro Nachrichtentyp
14Invalid Message ChannelAblage für unverarbeitbare Nachrichten
15Dead Letter ChannelAblage für unzustellbare Nachrichten
16Guaranteed DeliveryNachrichten überleben Ausfälle
17Channel Adapterbindet Anwendungen ohne Messaging an
18Messaging Bridgeverbindet zwei Messaging-Systeme
19Message Busgemeinsame Plattform für alle Anwendungen

4. Nachrichtenaufbau

20Command MessageNachricht, die eine Aktion auslöst
21Document MessageNachricht, die Daten überträgt
22Event MessageNachricht, die ein Ereignis meldet
23Request-ReplyAnfrage und Antwort über zwei Kanäle
24Return Addressdie Anfrage nennt den Kanal für die Antwort
25Correlation IdentifierID ordnet Antwort und Anfrage zu
26Message Sequencegroße Daten auf mehrere Nachrichten verteilt
27Message ExpirationAblaufzeit für Nachrichten
28Format IndicatorKennzeichen für Format und Version

5. Routing

29Content-Based RouterWeiterleitung nach Inhalt
30Message Filterunerwünschte Nachrichten verwerfen
31Dynamic RouterRouting-Regeln zur Laufzeit
32Recipient Listan eine berechnete Empfängerliste senden
33Splittereine Nachricht in Teile zerlegen
34AggregatorTeile zu einer Nachricht zusammenführen
35ResequencerReihenfolge wiederherstellen
36Composed Message Processorzerlegen, einzeln verarbeiten, zusammenführen
37Scatter-Gatheran viele senden, Antworten einsammeln
38Routing Slipdie Nachricht trägt ihre Route mit
39Process Managerzentrale Steuerung eines Ablaufs
40Message Brokerzentraler Vermittler für alle Systeme

6. Transformation

41Envelope WrapperNachricht in einen Transportumschlag packen
42Content Enricherfehlende Daten ergänzen
43Content Filterüberflüssige Daten entfernen
44Claim Checkgroße Daten ablegen, Beleg verschicken
45Normalizerviele Formate in eines bringen
46Canonical Data Modelgemeinsames Datenmodell für alle

7. Endpunkte

47Messaging GatewayMessaging hinter einer normalen Schnittstelle
48Messaging MapperObjekte in Nachrichten übersetzen
49Transactional ClientSenden und Empfangen in einer Transaktion
50Polling ConsumerEmpfänger fragt aktiv nach
51Event-Driven ConsumerEmpfänger wird automatisch aufgerufen
52Competing Consumersmehrere Empfänger teilen sich die Last
53Message Dispatcherein Empfänger verteilt intern
54Selective ConsumerEmpfänger wählt per Selektor aus
55Durable SubscriberAbonnent verpasst nichts, wenn er offline ist
56Idempotent ReceiverDuplikate richten keinen Schaden an
57Service ActivatorNachricht ruft einen normalen Dienst auf

8. Systemverwaltung

58Control Buseigener Kanal für Steuerung und Überwachung
59Detourzuschaltbarer Umweg über Zusatzschritte
60Wire TapKopie jeder Nachricht abzweigen
61Message Historydie Nachricht protokolliert ihren Weg
62Message StoreNachrichten zentral speichern
63Smart ProxyRequest-Reply abfangen und überwachen
64Test MessageTestnachrichten im laufenden Betrieb
65Channel PurgerKanäle leeren