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
| 1 | File Transfer | Systeme tauschen Daten über Dateien aus |
| 2 | Shared Database | alle Systeme arbeiten auf derselben Datenbank |
| 3 | Remote Procedure Invocation | ein System ruft Funktionen eines anderen direkt auf |
| 4 | Messaging | Systeme kommunizieren asynchron über Nachrichten |
2. Messaging-Grundlagen
| 5 | Message Channel | benannter Kanal, über den Nachrichten fließen |
| 6 | Message | Datenpaket aus Header und Body |
| 7 | Pipes and Filters | Verarbeitung als Kette unabhängiger Schritte |
| 8 | Message Router | leitet Nachrichten je nach Bedingung weiter |
| 9 | Message Translator | übersetzt zwischen Nachrichtenformaten |
| 10 | Message Endpoint | Verbindungsstelle zwischen Anwendung und Messaging |
3. Kanäle
| 11 | Point-to-Point Channel | genau ein Empfänger pro Nachricht |
| 12 | Publish-Subscribe Channel | jeder Abonnent erhält eine Kopie |
| 13 | Datatype Channel | ein Kanal pro Nachrichtentyp |
| 14 | Invalid Message Channel | Ablage für unverarbeitbare Nachrichten |
| 15 | Dead Letter Channel | Ablage für unzustellbare Nachrichten |
| 16 | Guaranteed Delivery | Nachrichten überleben Ausfälle |
| 17 | Channel Adapter | bindet Anwendungen ohne Messaging an |
| 18 | Messaging Bridge | verbindet zwei Messaging-Systeme |
| 19 | Message Bus | gemeinsame Plattform für alle Anwendungen |
4. Nachrichtenaufbau
| 20 | Command Message | Nachricht, die eine Aktion auslöst |
| 21 | Document Message | Nachricht, die Daten überträgt |
| 22 | Event Message | Nachricht, die ein Ereignis meldet |
| 23 | Request-Reply | Anfrage und Antwort über zwei Kanäle |
| 24 | Return Address | die Anfrage nennt den Kanal für die Antwort |
| 25 | Correlation Identifier | ID ordnet Antwort und Anfrage zu |
| 26 | Message Sequence | große Daten auf mehrere Nachrichten verteilt |
| 27 | Message Expiration | Ablaufzeit für Nachrichten |
| 28 | Format Indicator | Kennzeichen für Format und Version |
5. Routing
| 29 | Content-Based Router | Weiterleitung nach Inhalt |
| 30 | Message Filter | unerwünschte Nachrichten verwerfen |
| 31 | Dynamic Router | Routing-Regeln zur Laufzeit |
| 32 | Recipient List | an eine berechnete Empfängerliste senden |
| 33 | Splitter | eine Nachricht in Teile zerlegen |
| 34 | Aggregator | Teile zu einer Nachricht zusammenführen |
| 35 | Resequencer | Reihenfolge wiederherstellen |
| 36 | Composed Message Processor | zerlegen, einzeln verarbeiten, zusammenführen |
| 37 | Scatter-Gather | an viele senden, Antworten einsammeln |
| 38 | Routing Slip | die Nachricht trägt ihre Route mit |
| 39 | Process Manager | zentrale Steuerung eines Ablaufs |
| 40 | Message Broker | zentraler Vermittler für alle Systeme |
6. Transformation
| 41 | Envelope Wrapper | Nachricht in einen Transportumschlag packen |
| 42 | Content Enricher | fehlende Daten ergänzen |
| 43 | Content Filter | überflüssige Daten entfernen |
| 44 | Claim Check | große Daten ablegen, Beleg verschicken |
| 45 | Normalizer | viele Formate in eines bringen |
| 46 | Canonical Data Model | gemeinsames Datenmodell für alle |
7. Endpunkte
| 47 | Messaging Gateway | Messaging hinter einer normalen Schnittstelle |
| 48 | Messaging Mapper | Objekte in Nachrichten übersetzen |
| 49 | Transactional Client | Senden und Empfangen in einer Transaktion |
| 50 | Polling Consumer | Empfänger fragt aktiv nach |
| 51 | Event-Driven Consumer | Empfänger wird automatisch aufgerufen |
| 52 | Competing Consumers | mehrere Empfänger teilen sich die Last |
| 53 | Message Dispatcher | ein Empfänger verteilt intern |
| 54 | Selective Consumer | Empfänger wählt per Selektor aus |
| 55 | Durable Subscriber | Abonnent verpasst nichts, wenn er offline ist |
| 56 | Idempotent Receiver | Duplikate richten keinen Schaden an |
| 57 | Service Activator | Nachricht ruft einen normalen Dienst auf |
8. Systemverwaltung
| 58 | Control Bus | eigener Kanal für Steuerung und Überwachung |
| 59 | Detour | zuschaltbarer Umweg über Zusatzschritte |
| 60 | Wire Tap | Kopie jeder Nachricht abzweigen |
| 61 | Message History | die Nachricht protokolliert ihren Weg |
| 62 | Message Store | Nachrichten zentral speichern |
| 63 | Smart Proxy | Request-Reply abfangen und überwachen |
| 64 | Test Message | Testnachrichten im laufenden Betrieb |
| 65 | Channel Purger | Kanäle leeren |