Frage

Ich überlege, einen ESB in ein vorhandenes webbasiertes Java/Maven-Produkt zu integrieren.Konkret schaue ich mir ServiceMix und Mule an.Das Produkt stellt eine Verbindung zu mehreren verschiedenen Diensten her, darunter E-Mail, Quartz, RESTful-Webservices über HTTP, SMS und IM.Ich habe nur einen kurzen Blick auf die Dokumentation geworfen und die beiden Optionen scheinen ziemlich schwerfällig und ziemlich komplex zu sein.Es scheint ein Lehrbuchbeispiel für die Verwendung eines ESB zu sein, aber ich möchte nicht viel Zeit damit verbringen, nur das eine oder andere System zu lernen.

Wie gesagt, ich habe bereits eine von Maven erstellte Web-App und hatte gehofft, dass die Integration eines der Systeme ziemlich einfach sein würde, selbst für etwas so Einfaches wie das Versenden einer E-Mail, aber es sieht so aus, als würde das Hinzufügen von beidem die halbe Welt in Anspruch nehmen Begriffe wie Gläser und wären schwer in das bestehende Produkt einzubetten.

Lohnt es sich, eine dieser Optionen in Anspruch zu nehmen?Gibt es eine einfache Möglichkeit, sie in eine bestehende App zu integrieren, ohne diese komplett umzustrukturieren?Gibt es andere, leichtere Optionen?Gibt es einige Aspekte, die ich berücksichtigen sollte, damit sich ihr Einsatz lohnt?

War es hilfreich?

Lösung

Mule ist recht einfach zu verwenden, was das Zusammenbinden von Diensten mit XML angeht, und es gibt viele Videobeispiele, die ich sehr hilfreich fand.

ESBs sollen die Zukunft sein und wie Sie sagen – Ihres scheint ein Lehrbuchbeispiel dafür zu sein, wo man es einsetzen kann.

Ich werde versuchen, alle Ihre Fragen zu beantworten:

Lohnt es sich, eine dieser Optionen in Anspruch zu nehmen?Ich denke, das ist eine Frage, die Sie sich stellen müssen: Was wollen Sie erreichen?Wenn Sie versuchen, die Implementierung zu vereinfachen, wird die Implementierung über reinen Code oder ESB wahrscheinlich genauso lange dauern, einschließlich aller Setups.Wenn Sie es als Lernübung betrachten, könnte es sich lohnen.

Gibt es eine einfache Möglichkeit, sie in eine bestehende App zu integrieren, ohne diese komplett umzustrukturieren?Kurze Antwort: Nein.Für die Integration in die meisten Bibliotheken/Frameworks von Drittanbietern sind einige Umgestaltungen erforderlich.

Gibt es andere, leichtere Optionen?Mule ist eigentlich ganz einfach.Möglicherweise können Sie einen MQ für HTTP, SMS und IM verwenden.Möglicherweise ActiveMQ oder RabbitMQ.

Gibt es einige Aspekte, die ich berücksichtigen sollte, damit sich ihr Einsatz lohnt?Ja, ESBs sind für Unternehmen konzipiert, in denen häufig neue Dienste hinzugefügt werden und sich die Konfiguration wahrscheinlich ändern wird.Wenn alles in XML vorliegt, ist diese Änderung etwas einfacher.Wenn Sie also nur eine einmalige Software erstellen, ist dies möglicherweise nicht der richtige Weg.Wenn Sie jedoch später weitere hinzufügen und ständig verschiedene Dienste verbinden, ist dies möglicherweise die beste Route.

Andere Tipps

Sie können auch einen Blick auf Apache Camel Rahmen nehmen wollen, die für alle wirklich mächtig ist die Integration braucht man ohne die Strafen von einem ausgewachsenen ESB erwähnt.

Ross Mason, schrieb der Gründer des Mule Projekt einen wirklich guten Artikel zu diesem Thema, um ESB oder nicht ESB . Ich empfahl es, einen Blick. Außerdem können Sie prüfen wollen, Mule iBeans die ein viel einfacheres Modell, wenn Sie bietet Aufbau dieses als Web-App und will nur einige leichte Integration zu tun und sind in der Mediation nicht interessiert.

ich Rat nicht Ihre wertvolle Zeit mit MULE zu verschwenden. Meine Erfahrung ist so weit nicht gut. Ich würde es nicht für jedes kritische System. Es ist weit weg von einem ausgereiftes Produkt zu sein. Abgesehen davon, dass RESTful Services auf jeden Fall eine Menge Einfachheit versprechen und hat reale Anwendungsfälle.

Ich würde sagen, dass es sich lohnt die Investition, wenn Sie mehr als zwei Anwendungen oder Datenbanken haben, dass Notwendigkeit, miteinander reden, und sie sind mit mehr als einem Kommunikationsprotokoll. Oder, wenn Sie diese Situation erwarten in der Zukunft wahr zu sein. Klingt wie Ihre Anforderungen sicher passt das.

Eine andere Situation, die die Verwendung eines ESB oder zumindest eine Nachricht Bus vorschlagen würde, wäre, wenn Sie erwarten, oder müssen eine oder mehrere der Anwendungen unabhängig von den anderen zu entwickeln. Zum Beispiel ist ein unter aktiver Entwicklung und die andere nicht. Ein ESB kann die stabilen Systeme aus Veränderungen der aktiv entwickelten Systeme isoliert die Notwendigkeit, immer zu entfernen alles werden zu aktualisieren.

Die wahre Stärke eines ESB ist, dass Anwendungen können alle Entscheidungen über delegieren, wie man kommuniziert und mit wem an den ESB zu kommunizieren und diese Komponente die volle Verantwortung für diese Aspekte lassen. Alle anderen Komponenten voneinander und müssen sich keine Sorgen isoliert geworden über einander stark Probleme von Kombinationen von Abhängigkeiten zu reduzieren.

Im Hinblick auf die Lernkurve ich gefunden habe, Mule ESB ziemlich einfach zu sein zu holen und würde auf jeden Fall eine viel niedrigere Lernkurve sein, dass alle erforderlichen APIs versuchen zu lernen, die die mehrere Dienste zu sprechen, dass Sie versuchen, eine Verbindung zu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top