Sonic ESB: Programmierbare Integration

Der Druck, unterschiedliche Systeme im gesamten Unternehmen zu integrieren, nimmt stetig zu, aber das Herstellen von Verbindungen zwischen Systemen, auch solchen, die für die Integration konzipiert sind, bleibt eine entmutigende Aufgabe.

Traditionell verbanden Unternehmen Systeme mithilfe von Punkt-zu-Punkt-Links und benutzerdefiniertem Code. In jüngerer Zeit haben sich Integrationsbroker - proprietäre Software zum Herstellen von Verbindungen zwischen mehreren Systemen - als eine andere Lösung herausgestellt. Die Wartung von Punkt-zu-Punkt-Verbindungen ist jedoch teuer, und die Anschaffung von Integrationsbrokern war teuer. 

Sonic ESB gehört zu einer neuen Produktreihe, die als Enterprise Service Busse (ESBs) bezeichnet wird und leichte Integrationsbroker sind, die auf Standards wie XML und SOAP basieren und für die Verwendung in einer verteilten Umgebung entwickelt wurden.

Für Unternehmen, die einen inkrementellen Ansatz für die Integration von Unternehmensanwendungen verfolgen möchten, sind ESBs äußerst hilfreich. Mit dem Busmodell können zunächst einige Anwendungen mit der größten Amortisation integriert werden. Andere Anwendungen können später eingereicht werden, sobald Geld und Ressourcen verfügbar sind. Da die Eintrittsbarrieren niedrig sind, können diese Integrationsprojekte klein anfangen, eng verwaltet werden und wachsen, um zukünftige Anforderungen zu erfüllen.

Sonic ESB 5.0 ist bestrebt, diese Vorteile zu bieten, indem Messaging, Routing, Webdienste und Nachrichtentransformation kombiniert werden, um die Aktionen mehrerer Endpunkte von Internetanwendungen zu integrieren und zu koordinieren.

Eyeing Sonics ESB-Architektur

Ein typischer Integrationsbroker verfügt über eine Hub-and-Spoke-Architektur. Sonic ESB hingegen basiert auf dem nachrichtenorientierten Middleware-Produkt SonicMQ von Sonic Software, einem JMS-Anbieter (Java Message Service) für J2EE-Anwendungsserver. SonicMQ bietet Sonic ESB Konfigurations- und Laufzeitverwaltung, Messaging-Broker und verwaltete Container. Die Interaktionen zwischen SonicMQ und ESB sind so feinkörnig und vollständig, dass es kein Wunder ist, dass Sonic Software sie als Suite bezeichnet.

Da Sonic ESB auf einer Messaging-Infrastruktur basiert, kann seine Busarchitektur über das Unternehmens-LAN oder das globale Internet verteilt werden. Messaging-Knoten können aus Gründen der Zuverlässigkeit in Clustern auf mehreren Computern installiert werden. Diese Cluster können sich mit Clustern an anderen Standorten zusammenschließen, um Remote-Integrationspunkte bereitzustellen.

Darüber hinaus ist ein Domänenmanager in das System integriert und dient als Verzeichnis für im Netzwerk bereitgestellte Dienste.

Container verwalten Endpunkte, die dann den Lebenszyklus von Diensten verwalten, die Routing, Prozessfluss-Orchestrierung, Datentransformation und Sicherheit bieten. Diese Container passen Endpunkte auch an Legacy-Systeme an. Beispielsweise ist ein J2EE-Adapter verfügbar, um J2EE-basierte Systeme an den Bus anzuschließen. Service-Container werden normalerweise getrennt von den Messaging-Servern gehostet und befinden sich jeweils zusammen mit dem Legacy-System, das sie bedienen.

Nachrichten leiten sich mithilfe einer angehängten Reiseroute weiter, die über die Verwaltungskonsole erstellt wurde. Das inhaltsbasierte Routing erfolgt innerhalb der Endpunktdienste mithilfe von XPath, um angehängte XML-Dokumente anzuzeigen und basierend auf dem Inhalt des Dokuments bedingt weiterzuleiten. Der Transformationsdienst verwendet XSLT (eXtensible Style Language Transformation). Das Stylus-Produkt von Sonic Software erstellt grafisch XSLT-Dokumente, die von einem XML-Schema in ein anderes umgewandelt werden. Jedes andere XSLT-Tool funktioniert jedoch auch.

Ich suche den Integrationsarchitekten

Als ich in der zweiten Klasse war, brachte ein Kind in meiner Klasse ein Elektronikspielzeug mit, mit dem Sie ein Radio und andere einfache elektronische Geräte bauen konnten, indem Sie den mitgelieferten Schaltplänen folgten und die Blöcke zusammenklickten. Als ich Sonic ESB überprüfte, musste ich an Snap-Together-Programme denken, als ich die Konfiguration über die GUI-basierte Verwaltungskonsole manipulierte.

Obwohl Sie beim Einrichten von Sonic ESB hauptsächlich Konfigurationsdateien bearbeiten, ist das Endergebnis ein Prozess, der Daten manipuliert. Dies ist mehr als nur eine richtlinienbasierte Konfiguration - dies ist Programmierung.

Das Programmieren von Sonic ESB erfolgt nicht mit einer einheitlichen Notation, sondern umfasst das Schreiben von Java- und JavaScript-Ausschnitten zusammen mit XSLT-, XML-Schemas und WSDL-Dateien. Mehrere verschiedene grafische Tools ordnen all dies zu einer Gesamtkonfiguration zusammen, die das richtige Routing und den richtigen Service für das gewünschte Ergebnis liefert. 

Sonic Software bietet ein umfassendes Beispiel für eine Lieferkette im Handbuch Erste Schritte. Wenn Sie dieses Beispiel durcharbeiten, werden Sie mit den wichtigsten Modi der ESB-Interaktion vertraut gemacht und mit den Konzepten und Verwaltungstools vertraut gemacht, die zum Konfigurieren und Verwenden des Busses erforderlich sind.

Während ich den Konfigurationsprozess durchlief, war ich beeindruckt, wie schwierig es war, die verschiedenen Teile im Auge zu behalten, was sie taten und wie sie zusammenpassen. Die Verwaltungskonsolen von Sonic ESB sind so gut wie ich gesehen habe. Sie sind jedoch keine Programmierumgebungen, sondern bieten nur rudimentäre Unterstützung für die Abstraktion. Der Prozessablauf ermöglicht beispielsweise das Benennen und Einbetten, aber so wichtige Dinge wie der bedingte Ablauf sind in JavaScript-Dateien und XSLT verborgen.

Die verschiedenen Formate - Java, JavaScript, XSL, XML-Schema usw. -, die Prozesse und Daten beschreiben, sind eine zusätzliche Belastung. Obwohl die Verwendung von Sonic ESB ein Programmiervorgang ist, handelt es sich um ein Produkt, das auf einem Cluster von Technologien und nicht auf einer einzigen gut gestalteten Notation basiert.

Das ist nicht unbedingt die Schuld von Sonic Software. Sie arbeiten mit den Tools, die sie für die Technologien und Standards benötigen, die ihre Kunden verlangen. Ich bezweifle, dass Sonic Software in der Lage sein würde, eine einheitlichere Notation einzuführen.

Da keine einheitliche Notation verfügbar ist, gibt es nur wenige visuelle Hinweise zum Verständnis des Nachrichtenflusses, der Fehlerbedingungen und der Datentransformationen. In der Tat wäre es ohne die Bilder und die Beschreibung im Handbuch Erste Schritte schwierig gewesen, den Nachrichtenfluss im bereitgestellten Beispiel für die Lieferkette zu verstehen. Mir wurde klar, dass das Handbuch Erste Schritte die Systemarchitektur war. Die Bilder und Beschreibungen im Handbuch entsprechen wahrscheinlich denen, die die Entwickler des Beispiels beim Erstellen verwendet haben.

Der erfolgreiche Einsatz von Produkten wie Sonic ESB erfordert die gleiche sorgfältige Planung durch Entwickler, die als „Integrationsarchitekten“ fungieren. Die Tools, Techniken und Modellierungsmethoden, die Integrationsarchitekten zur Verfügung stehen, sind noch rudimentär, aber Sonic ESB bietet eine umfassende Reihe von Tools, die für die Implementierung der Integration erforderlich sind, sobald diese geplant ist.

Flexibilität zu einem Preis

In Kombination mit SonicMQ bietet Sonic ESB eine auf Standards basierende Methode, um sowohl ältere als auch neue Anwendungen aus dem gesamten Unternehmen auf zuverlässige und kostengünstige Weise zu integrieren. Die Integration einer Reihe von Systemen in Sonic ESB sollte weniger kosten als die Verwendung proprietärer Integrationsbroker.

Bei der Überprüfung von SonicXQ, dem Vorgänger von Sonic ESB, kamen wir zu dem Schluss, dass „SonicXQ Entwicklern eine solide Reihe sicherer und zuverlässiger BPM-Services (Business Process Management) bietet“ (siehe „BPM auf Kurs halten“, 30. September, Seite 26).

Das hat sich nicht geändert. Während die Verwaltungstools jetzt erheblich verbessert wurden, erfordert Sonic ESB 5.0 häufig eine komplexe Konfiguration. Um dies zu erreichen, sind erhebliche Kenntnisse in Technologien wie J2EE, messagingorientierter Middleware, XML, XSLT, XPath, JavaScript und Java erforderlich.

Dies ist der Preis für Flexibilität. Einige Tools zielen auf Benutzerfreundlichkeit ab und bieten sogar, dass Geschäftsleute sie zur Verwaltung von Geschäftsprozessen verwenden können. Keiner von ihnen bietet jedoch die Flexibilität, die für eine vollständige Systemintegration erforderlich ist. SonicESB bietet diese Flexibilität, aber nur, wenn Sie Entwickler und Integrationsarchitekten haben, die davon profitieren können.

Scorecard Verwaltbarkeit (15,0%) Benutzerfreundlichkeit (10,0%) Unterstützung (10,0%) Skalierbarkeit (25,0%) Interoperabilität (25,0%) Zuverlässigkeit (15,0%) Gesamtpunktzahl (100%)
Sonic ESB 5.0 5.0 6.0 7.0 9.0 9.0 9.0 7.9