IBM Integration Busとその内容

画像



こんにちは、読者の皆様。



ESBのような製品のクラスがあります。 ウィキペディアで述べたように、これはミドルウェアであり、...と今後の間で集中化され統合されたイベント指向のメッセージングを提供します。 そのようなESBの例は多くなく、それらはかなり狭い範囲で適用されます。 そのようなESBの1つはIBM Integration Bus(IIB)であり、バージョン9より前はIBM Message Brokerと呼ばれていました。



数年前、IIBのような製品に出会いました。 それがどんな動物なのかを理解しようとすると、ロシア語を話すインターネット上でそれに関する言及がほとんどないことがわかりました。 この投稿では、この非常に統合されたバスをすべて紹介し、私を探している人を助けます。



ロシアでは、この製品は銀行、保険、ロジスティクスで非常に限定的に使用されています。 大きなワークフローと信頼性に対する高い要件がある場所です。 また最近、大規模なガスプロジェクトがIIBの専門家を探していました。 そこでバスがどのように適用されるかはわかりませんが、テレメトリ(MQTT)は可能です。



このソフトウェアの本質は、これらのシステムがまったく異なるインターフェースと形式を持っている場合でも、N個のシステムを互いに接続することです。 Xシステムがデータベース内のテーブルにエントリを作成し、表示されたら、レコードのフィールドが送信されるJSONを含む別のアプリケーションのREST APIを呼び出し、アプリケーションXの別のテーブルに送信するマークを付けます。保証付き配送。 (あるアプリケーションが別のアプリケーションのデータベースに忍び込むと、それは悪いことですが、それは起こります!)これは、IIBストリームの典型的なタスクの外観です。



IIBで開発されているもの



IIBで最も便利なことの1つは、グラフィカルプログラミングです。 Eclipse環境では、パレットからノードをパレットから引き出し、それらを接続し、しっかりと接続すると、すべてが機能します。



次のようになります。



画像



ただし、通常はコードも記述する必要があります。 メッセージまたはロジックを変換するための主要な言語は、ESQL(拡張SQL)です。 PL / SQLに構文的に似ていますが、ツリーデータ構造での作業のためにシャープになっています。



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;
      
      





いくつかのプログラミング言語のサポートもあります。





メッセージをある形式から別の形式に変換する便利な方法の1つは、データマッピングです。



画像



コードで行う場合とは異なり、非常に明確です。



上記ではメッセージ変換の問題について触れましたが、その前にメッセージを受信する必要があります。 これを行うために、politraにはかなり多数の入力ノードがあります。 私の実践で最も一般的なものは次のとおりです。





結果とともにメッセージを表示するには、ほぼ同じセットになります。 個々のケースでは、メッセージの入力、出力、または変換用に独自のノードを作成できます。



最新バージョンより前は、IIBはIBM MQと密接にリンクされていましたが、IIBの最近のバージョンではこれは不要になりました。 ただし、機能の一部はMQなしでは機能しないため、基本的な作業スキームにはMQのインストールが含まれます。



これは最初の投稿なので、私はそれを紹介しました。 トピックに興味がある場合は、話を続けます。



便利なリンク:



IBM Knowledge Center

フォーラム



All Articles