Apache Camel ist eine Bibliothek, die Enterprise Integration Patterns (EIP) implementiert. Obwohl Spring als IOC-Framework verwendet werden kann, ist es nicht einmal von Spring abhängig, sodass es vollständig plattformunabhängig ist. Es ist "nur" eine Bibliothek. Sie können es also in jeder JVM-Umgebung ausführen, z. B. einfaches JVM, Servlet, EJB, OSGI. Es bringt keinen der Vorteile (oder den Overhead) eines Containers wie Mule mit sich. Meiner Meinung nach hat dies eine sauberere Trennung der Bedenken in diesem Bereich zur Folge.
Mule kann auch in verschiedene Umgebungen eingebettet werden, aber ich denke, Mule hat sowohl die Vor- als auch die Nachteile, wenn die EIP-Bibliothek an den Container gekoppelt wird. Wenn Sie Mule in einer Servlet- oder EJB-Umgebung bereitstellen, möchten Sie wirklich das gesamte Gepäck des Mule-Containers tragen? Ich bin kein Mule-Experte, und ich denke, Sie können wahrscheinlich relativ wenig Aufwand betreiben und einige der redundanten Funktionen bereinigen. (Beachten Sie, dass dies nicht in allen Fällen eine schlechte Funktion ist. Es ist nur redundant, wenn Sie in einem anderen Container eingebettet ausführen.)
Apache ServiceMix ist ein OSGI-Container, der Camel verwendet, um EIP als Basis eines ESB zu implementieren. Obwohl ServiceMix in der Vergangenheit mit seinen Wurzeln in JBI begann, hat es sich von JBI entfernt und sich zu einer schönen Schichtarchitektur (IMO) entwickelt, die Apache CXF, Camel und ActiveMQ der Spitzenklasse in einem OSGI-Container kombiniert. Der wichtigste Wert ist hier nicht wirklich ServiceMix und seine JBI - Unterstützung, aber der zugrunde liegende OSGi - Container Standardgekoppelt mit bewährten Apache-Transporten wie CXF für Webdienste und ActiveMQ für JMS. OSGI ist ein ausgereifter Standard, der einen Container bietet, der die gleichen Arten von "DLL" -Hölle behandelt, die Microsoft vor dem Aufkommen von .NET geplagt haben. Während weder .NET noch OSGI die wesentliche Komplexität des zugrunde liegenden Problems lösen, bieten sie zumindest ein Mittel, um es anzugehen. OSGI hat auch andere Vorteile, aber aus Sicht der Produktauswahl ist der auf Standards basierende Container primär, und sein wesentliches Merkmal, das Mule (und Java im Allgemeinen) nicht ansprechen, ist das Abhängigkeitsmanagement.
Einige wichtige Dinge, die beim Vergleich von Mule mit Apache-Communities zu beachten sind. Mule ist wie Redhat in dem Sinne, dass es sich zwar um eine Open-Source-Lizenz handelt, aber meiner Meinung nach nicht wirklich eine offene Community ist. Jeder kann an Apache teilnehmen, während MuleSoft die Mule-Community und die endgültige Roadmap besitzt. Zweitens, obwohl die Mule-Community wohl ziemlich aktiv ist, denke ich, dass die Apache-Community viel größer ist (und natürlich, da es sich nicht um eine Gated-Community handelt). Beide Ansätze haben sowohl Vor- als auch Nachteile. Ein positiver Aspekt des Apache-Ansatzes ist, dass es mehrere Anbieter für ESBs gibt, die auf Camel, CXF, ActiveMQ und OSGI basieren. Zum Beispiel bietet Talend einen ESB für dieselben Kerntechnologien ohne die ServiceMix-JBI-Historie an. Dies hat sowohl Vorteile als auch Nachteile innerhalb der Apache-Community. Der eigentliche Punkt ist jedoch, den Unterschied zwischen Apache und Mule hervorzuheben. In der Mule-Community finden Sie keine zahlreichen Anbieter. IMO ist ein Apache ESB wie Talend oder ServiceMix eine breitere und umfassendere und letztendlich wettbewerbsfähigere Community als eine geschlossene Community wie Mule.
Ed Ost