Apache Camel - Übersicht
Camel ist eine Black Box, die Nachrichten von einem Endpunkt empfängt und an einen anderen sendet. Innerhalb der Black Box können die Nachrichten verarbeitet oder einfach umgeleitet werden.
Warum also einen Rahmen dafür haben? In praktischen Situationen, wie in der Fallstudie zur Einführung dargestellt, kann es viele Sender und Empfänger geben, die jeweils ihrem eigenen Protokoll wie ftp, http und jms folgen. Das System erfordert möglicherweise viele komplexe Regeln, z. B. sollte die Nachricht von Absender A nur an B & C übermittelt werden. In Situationen müssen Sie die Nachricht möglicherweise in ein anderes Format übersetzen, das der Empfänger erwartet. Diese Übersetzung kann bestimmten Bedingungen unterliegen, die auf dem Inhalt der Nachricht basieren. Daher müssen Sie möglicherweise zwischen Protokollen übersetzen, Komponenten zusammenkleben, Routing-Regeln definieren und Filterung basierend auf Nachrichteninhalten bereitstellen. Dies ist in der folgenden Abbildung dargestellt -
Um die oben genannten Anforderungen zu erfüllen und eine geeignete Softwarearchitektur für viele solcher Situationen zu entwerfen, wurden Enterprise Integration Patterns ( EIP ) 2003 von Gregor Hohpe und Bobby Woolf dokumentiert. Apache Camel bietet die Implementierung dieser Muster und der Zweck dieses Tutorials ist das Unterrichten Sie erfahren, wie Sie Camel in Situationen wie der in der Einführung beschriebenen verwenden.
Apache Camel ist ein Open Source Framework. Es handelt sich um eine nachrichtenorientierte Middleware, die eine regelbasierte Routing- und Mediations-Engine bereitstellt. Sie können Regeln definieren, z. B. ob es sich um eine Milchbestellung handelt, die an einen Milchverkäufer weitergeleitet wird, und ob es sich um eine Ölbestellung handelt, die an einen Ölverkäufer umgeleitet wird, und so weiter. Mit Camel können Sie diese Regeln implementieren und das Routing in einem vertrauten Java-Code durchführen. Dies bedeutet, dass Sie Ihre vertraute Java-IDE verwenden können, um diese Regeln in einer typsicheren Umgebung zu definieren. Wir müssen keine XML-Konfigurationsdateien verwenden, die normalerweise sperrig sind. Camel unterstützt jedoch die XML-Konfiguration über das Spring Framework, wenn Sie XML zum Konfigurieren der Regeln verwenden möchten. Sie können sogar Blueprint XML-Konfigurationsdateien und sogar eine Scala DSL verwenden, wenn Sie ein Scala-Liebhaber sind. Dies bedeutet auch, dass Sie Ihre bevorzugten Java-, Scala-IDE- oder sogar einen einfachen XML-Editor verwenden können, um die Regeln zu konfigurieren.
Die Eingabe für diese Engine kann eine durch Kommas getrennte Textdatei, ein POJO (Plain Old Java Object) und XML sein. XML ist eines der verschiedenen anderen von Camel unterstützten Formate. Ebenso kann die Ausgabe der Engine in eine Datei, in eine Nachrichtenwarteschlange oder sogar auf Ihren Monitorbildschirm umgeleitet werden, damit Sie die an die jeweiligen Lieferanten gesendeten Bestellungen anzeigen können. Diese werden als Endpunkte bezeichnet, und Camel unterstützt das EIP-Muster für Nachrichtenendpunkte . Die Kamelendpunkte werden später im Kapitel Endpunkte erläutert.
Camel wird normalerweise mit Apache ServiceMix , Apache ActiveMQ und Apache CXF verwendet , um serviceorientierte Architekturen zu implementieren.