IBM Integration Bus und was es isst

Bild

Guten Tag, lieber Leser.

Es gibt eine Klasse von Produkten wie ESB . Wie auf Wikipedia erwähnt, handelt es sich um Middleware, die ein zentrales und einheitliches ereignisorientiertes Messaging zwischen ... und im Folgenden bereitstellt. Es gibt nicht viele Beispiele für solche ESBs und sie werden eher eng angewendet. Eine dieser ESBs ist IBM Integration Bus (IIB), bis Version 9 hieß sie IBM Message Broker.

Vor einigen Jahren bin ich auf ein Produkt wie IIB gestoßen. Beim Versuch zu verstehen, um was für ein Tier es sich handelt, stellte ich fest, dass es im russischsprachigen Internet nur sehr wenige Hinweise darauf gibt. Dieser Beitrag wird diesen Integrationsreifen in seiner ganzen Pracht vorstellen und denen helfen, die mich suchen.

In Russland wird das Produkt in den Bereichen Banken, Versicherungen und Logistik nur in sehr begrenztem Umfang eingesetzt. Genau dort, wo es einen großen Workflow und hohe Anforderungen an die Zuverlässigkeit gibt. Ebenfalls kürzlich suchte ein großes Gasprojekt nach Spezialisten für IIB. Ich weiß nicht, wie der Bus dort angewendet wird, aber es ist für Telemetrie (MQTT) möglich.

Das Wesentliche dieser Software besteht darin, N Systeme miteinander zu verbinden, auch wenn diese Systeme völlig unterschiedliche Schnittstellen und Formate haben. Angenommen, das X-System erstellt einen Eintrag in der Tabelle in seiner Datenbank. Wenn dies angezeigt wird, möchten wir die REST-API einer anderen Anwendung mit JSON aufrufen, in der die Felder unseres Datensatzes übertragen werden, und das Senden an eine andere Tabelle der X-Anwendung markieren. Und dies alles mit Transaktionsunterstützung und garantierte Lieferung. (Wenn sich eine Anwendung in die Datenbank einer anderen einschleicht, ist das schlecht, aber es passiert!) So sieht eine typische Aufgabe für einen IIB-Stream aus.

Was wird in IIB entwickelt


Eines der bequemsten Dinge in IIB ist die grafische Programmierung. Wenn Sie in einer Eclipse-Umgebung Knoten aus einer Palette aus einer Palette ziehen, sie miteinander verbinden und dazwischen funktioniert alles.

Es sieht so aus:

Bild

Normalerweise müssen Sie aber auch Code schreiben. Um Nachrichten oder Logik zu transformieren, ist die Hauptsprache ESQL (Extend SQL). Es ähnelt syntaktisch PL / SQL, ist jedoch für die Arbeit mit Baumdatenstrukturen geschärft.

CREATE PROCEDURE CopyMessageHeaders() BEGIN DECLARE I INTEGER 1; DECLARE J INTEGER; SET J = CARDINALITY(InputRoot.*[]); WHILE I < J DO SET OutputRoot.*[I] = InputRoot.*[I]; SET I = I + 1; END WHILE; END; 

Es gibt auch Unterstützung für mehrere Programmiersprachen:

  • Java
  • .NET
  • Php

Eine bequeme Möglichkeit, eine Nachricht von einem Format in ein anderes umzuwandeln, ist die Datenzuordnung:

Bild

Ganz klar, im Gegensatz zu Code.

Oben habe ich das Problem der Nachrichtentransformation angesprochen, aber vorher muss eine Nachricht empfangen werden. Dafür gibt es eine ziemlich große Anzahl von Eingangsknoten in der Politik. Die häufigsten in meiner Praxis sind:

  • MqInput
  • Dateieingabe
  • SOAPInput
  • HTTPInput
  • Timeout-Benachrichtigung

Das Anzeigen einer Nachricht mit dem Ergebnis erfolgt ungefähr gleich. In Einzelfällen ist es möglich, eigene Knoten für die Eingabe, Ausgabe oder Transformation einer Nachricht zu schreiben.

Vor den neuesten Versionen war IIB untrennbar mit IBM MQ verbunden, in neueren Versionen von IIB ist dies jedoch nicht mehr erforderlich. Ein Teil der Funktionalität funktioniert jedoch nicht ohne MQ, sodass das grundlegende Arbeitsschema die Installation von MQ umfasst.

Da dies der erste Beitrag ist, habe ich ihn einleitend gemacht. Wenn Interesse an dem Thema besteht, werde ich die Geschichte fortsetzen.

Nützliche Links:

IBM Knowledge Center
Forum

Source: https://habr.com/ru/post/de445138/


All Articles