Enterprise Integration Patterns (EIP) ist ein Buch von Gregor Hohpe und Bobby Woolf und beschreibt 65 Patterns für den Einsatz von Enterprise Application Integration und Message-Oriented Middleware in Form einer Pattern Language. Sie helfen uns dabei, standardisierte Wege zur Integration von Anwendungen zu nutzen, ohne dass Sie das Rad jedes Mal neu erfinden müssen, wenn Sie ein Problem haben.
Das Ziel von Enterprise-Integrationsmustern besteht darin, eine gemeinsame Sprache und eine Reihe von Workflow-Aktionen zu erstellen, um sie dann miteinander zu kombinieren, um einen ausgereiften, praktischen Geschäftsprozess zu erstellen. Es bietet einen Katalog mit 65 Mustern, die Ihnen helfen, effektive Messaging-Lösungen für Ihr Unternehmen zu entwerfen.
Das Buch unterscheidet vier Top-Level-Alternativen für die Integration:
- Datei Übertragung
- Gemeinsame Datenbank
- Remoteprozeduraufruf
- Nachrichten
Die folgenden Integrationstypen werden eingeführt:
- Informationsportal
- Datenreplikation
- Gemeinsame Geschäftsfunktion
- Serviceorientierte Architektur
- Verteilter Geschäftsprozess
- Business-to-Business-Integration
- Eng gekoppelte Interaktion vs. lose gekoppelte Interaktion
Zeichnen Sie ein Musterdiagramm für die Unternehmensintegration mit dem kostenlosen Online-Tool
Das kostenlose Enterprise Integration Patterns-Tool (EIP-Diagramm-Tool) von Visual Paradigm verfügt über eine Reihe von Bearbeitungsfunktionen, die das Erstellen von Diagrammen einfacher und schneller machen, wie z. Das EIP-Diagramm-Tool enthält auch eine Reihe von EIP-Symbolen und -Formen, mit denen Sie verschiedene Arten von EIP-Diagrammen erstellen können.
Sie können Ihre Muster ganz einfach entwickeln und sie dann über Formate wie PNG, JPG, GIF, SVG und PDF ausgeben und teilen.
Lernen Sie EIP mit Beispielen und Vorlagen
Sie können mit einem leeren Diagramm oder einer EIP-Vorlage beginnen. Im Folgenden sind einige der Vorlagen aufgeführt. Klicken Sie auf die Schaltfläche Bearbeiten, um sofort mit der Bearbeitung zu beginnen. Es ist kostenlos und es ist keine Registrierung erforderlich.
Beispiel für Enterprise-Integrationsmuster: Smart Proxy
Beispiel für Enterprise-Integrationsmuster: MSMQ für zusammengesetztes Messaging
Bearbeiten Sie das obige Beispiel online
Möchten Sie einige andere Unternehmensintegrationsmuster übernehmen?
EIP Online Editing Repository von Visual Paradigm
Implementierungsrahmen für EIPs
Apache Camel unterstützt die meisten Enterprise Integration Patterns aus dem hervorragenden Buch von Gregor Hohpe und Bobby Woolf. Basierend auf Enterprise Integration Patterns (EIP), um Sie bei der Lösung Ihres Integrationsproblems zu unterstützen, indem Sie Best Practices sofort anwenden. Camel unterstützt die meisten Enterprise Integration Patterns aus dem hervorragenden Buch von Gregor Hohpe und Bobby Woolf sowie neuere Integrationsmuster von Microservice-Architekturen .
Wenn Sie neu bei Camel sind, sollten Sie vielleicht die Erste Schritte im Benutzerhandbuch ausprobieren, bevor Sie versuchen, diese Muster zu implementieren.
NACHRICHTENSYSTEME
Nachrichtenkanal
Wie kommuniziert eine Anwendung mithilfe von Messaging mit einer anderen?
Nachricht
Wie können zwei durch einen Nachrichtenkanal verbundene Anwendungen eine Information austauschen?
Wie können wir eine komplexe Verarbeitung einer Nachricht durchführen und gleichzeitig Unabhängigkeit und Flexibilität bewahren?
Wie können Sie einzelne Verarbeitungsschritte entkoppeln, sodass Nachrichten abhängig von bestimmten Bedingungen an unterschiedliche Filter weitergeleitet werden können?
Wie können Systeme mit unterschiedlichen Datenformaten per Messaging miteinander kommunizieren?
Wie stellt eine Anwendung eine Verbindung zu einem Nachrichtenkanal her, um Nachrichten zu senden und zu empfangen?
NACHRICHTENKANÄLE
Wie kann der Anrufer sicher sein, dass genau ein Empfänger das Dokument erhält bzw. den Anruf durchführt?
Veröffentlichen Sie den abonnierten Kanal
Wie kann der Sender ein Ereignis an alle interessierten Empfänger übertragen?
Was macht das Messaging-System mit einer Nachricht, die es nicht zustellen kann?
Wie kann der Absender sicherstellen, dass eine Nachricht zugestellt wird, selbst wenn das Messaging-System ausfällt?
Wie können Sie eine Anwendung mit dem Nachrichtensystem verbinden, damit sie Nachrichten senden und empfangen kann?
Wie können mehrere Messaging-Systeme verbunden werden, sodass Nachrichten, die auf einem verfügbar sind, auch auf den anderen verfügbar sind?
Was ist eine Architektur, die es getrennten Anwendungen ermöglicht, zusammenzuarbeiten, aber in einer entkoppelten Weise, sodass Anwendungen einfach hinzugefügt oder entfernt werden können, ohne die anderen zu beeinträchtigen?
Datensynchronisierung durch Erfassen von Änderungen, die an einer Datenbank vorgenommen wurden, und Anwenden dieser Änderungen auf ein anderes System.
KONSTRUKTION VON NACHRICHTEN
Wie kann Messaging verwendet werden, um Ereignisse von einer Anwendung zu einer anderen zu übertragen?
Wenn eine Anwendung eine Nachricht sendet, wie kann sie eine Antwort vom Empfänger erhalten?
Woher weiß ein Antwortender, wohin er die Antwort senden soll?
Woher weiß ein Anfragender, der eine Antwort erhalten hat, für welche Anfrage dies die Antwort ist?
Wie kann ein Absender angeben, wann eine Nachricht als veraltet betrachtet und daher nicht verarbeitet werden sollte?
NACHRICHTEN-ROUTING
Wie gehen wir mit einer Situation um, in der die Implementierung einer einzelnen logischen Funktion (z. B. Bestandsprüfung) auf mehrere physische Systeme verteilt ist?
Wie kann eine Komponente vermeiden, uninteressante Nachrichten zu erhalten?
Wie können Sie die Abhängigkeit des Routers von allen möglichen Zielen vermeiden und gleichzeitig seine Effizienz beibehalten?
Wie leiten wir eine Nachricht an eine Liste von (statisch oder dynamisch) angegebenen Empfängern weiter?
Wie können wir eine Nachricht verarbeiten, wenn sie mehrere Elemente enthält, von denen jedes auf andere Weise verarbeitet werden muss?
Wie führen wir die Ergebnisse einzelner, aber zusammengehöriger Meldungen zusammen, damit sie als Ganzes verarbeitet werden können?
Wie können wir einen Strom verwandter, aber falscher Nachrichten wieder in die richtige Reihenfolge bringen?
Prozessor für zusammengesetzte Nachrichten
Wie können Sie den gesamten Nachrichtenfluss aufrechterhalten, wenn Sie eine Nachricht verarbeiten, die aus mehreren Elementen besteht, von denen jedes eine andere Verarbeitung erfordern kann?
Wie halten Sie den gesamten Nachrichtenfluss aufrecht, wenn eine Nachricht an mehrere Empfänger gesendet werden muss, von denen jeder eine Antwort senden kann?
Wie leiten wir eine Nachricht nacheinander durch eine Reihe von Verarbeitungsschritten, wenn die Abfolge der Schritte zur Entwurfszeit nicht bekannt ist und für jede Nachricht variieren kann?
Wie leiten wir eine Nachricht durch mehrere Verarbeitungsschritte, wenn die erforderlichen Schritte zur Entwurfszeit möglicherweise nicht bekannt und möglicherweise nicht sequenziell sind?
Wie können Sie das Ziel einer Nachricht vom Absender entkoppeln und den Nachrichtenfluss zentral steuern?
Wie kann ich Nachrichten drosseln, um sicherzustellen, dass ein bestimmter Endpunkt nicht überlastet wird oder wir eine vereinbarte SLA mit einem externen Dienst nicht überschreiten?
Wie kann ich eine Nachricht von vielen in einem bestimmten Zeitraum abtasten, um zu vermeiden, dass die Downstream-Route nicht überlastet wird?
Wie kann ich das Senden einer Nachricht verzögern?
Wie kann ich die Last auf mehrere Endpunkte verteilen?
Wie kann ich aufhören, einen externen Dienst anzurufen, wenn der Dienst unterbrochen ist?
Wie kann ich einen entfernten Dienst in einem verteilten System aufrufen, in dem der Dienst in irgendeiner Art von Dienstregistrierung nachgeschlagen wird?
Wie kann ich eine Reihe verwandter Aktionen in einer Kamelroute definieren, die entweder erfolgreich abgeschlossen (alle) oder nicht ausgeführt/kompensiert werden sollen?
Wie kann ich eine Nachricht gleichzeitig an mehrere Endpunkte weiterleiten?
Wie kann ich die Verarbeitung einer Nachricht in einer Schleife wiederholen?
NACHRICHTENTRANSFORMATION
Wie kommunizieren wir mit einem anderen System, wenn der Absender der Nachricht nicht alle erforderlichen Datenelemente zur Verfügung hat?
Wie vereinfachen Sie den Umgang mit einer großen Nachricht, wenn Sie nur an wenigen Datenpunkten interessiert sind?
Wie können wir das Datenvolumen der über das System gesendeten Nachrichten reduzieren, ohne den Informationsgehalt zu opfern?
Wie verarbeitet man Nachrichten, die semantisch äquivalent sind, aber in einem anderen Format ankommen?
Wie kann ich den Nachrichtentext sortieren?
Wie führe ich ein Skript aus, das die Nachricht möglicherweise nicht ändert?
Wie kann ich eine Nachricht validieren?
MESSAGING-ENDPUNKTE
Wie verschieben Sie Daten zwischen Domänenobjekten und der Messaging-Infrastruktur, während Sie die beiden voneinander unabhängig halten?
Ereignisgesteuerter Verbraucher
Wie kann eine Anwendung automatisch Nachrichten verarbeiten, sobald sie verfügbar sind?
Wie kann eine Anwendung eine Nachricht verarbeiten, wenn die Anwendung bereit ist?
Wie kann ein Messaging-Client mehrere Nachrichten gleichzeitig verarbeiten?
Wie können mehrere Verbraucher auf einem einzigen Kanal ihre Nachrichtenverarbeitung koordinieren?
Wie kann ein Nachrichtenkonsument auswählen, welche Nachrichten er erhalten möchte?
Wie kann ein Abonnent vermeiden, Nachrichten zu verpassen, während er sie nicht abhört?
Wie kann ein Nachrichtenempfänger mit doppelten Nachrichten umgehen?
Wie kann ein Kunde seine Transaktionen mit dem Messaging-System kontrollieren?
Wie kapseln Sie den Zugriff auf das Messaging-System vom Rest der Anwendung?
Wie kann eine Anwendung einen Dienst entwerfen, der sowohl über verschiedene Messaging-Technologien als auch über Nicht-Messaging-Techniken aufgerufen werden kann?
SYSTEMMANAGEMENT
Wie können wir ein Messaging-System effektiv verwalten, das über mehrere Plattformen und ein weites geografisches Gebiet verteilt ist?
Wie können Sie eine Nachricht durch Zwischenschritte leiten, um Validierungs-, Test- oder Debugging-Funktionen auszuführen?
Wie prüfen Sie Nachrichten, die auf einem Punkt-zu-Punkt-Kanal übertragen werden?
Wie können wir den Nachrichtenfluss in einem lose gekoppelten System effektiv analysieren und debuggen?
Wie kann ich die Verarbeitung einer Nachricht protokollieren?
Steps gruppiert eine Reihe von EIPs zu einer zusammengesetzten logischen Einheit für Metriken und Überwachung.