こんにちは、読者の皆様。
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;
いくつかのプログラミング言語のサポートもあります。
- Java
- .NET
- Php
メッセージをある形式から別の形式に変換する便利な方法の1つは、データマッピングです。
コードで行う場合とは異なり、非常に明確です。
上記ではメッセージ変換の問題について触れましたが、その前にメッセージを受信する必要があります。 これを行うために、politraにはかなり多数の入力ノードがあります。 私の実践で最も一般的なものは次のとおりです。
- MqInput
- ファイル入力
- SOAPInput
- HTTPInput
- タイムアウト通知
結果とともにメッセージを表示するには、ほぼ同じセットになります。 個々のケースでは、メッセージの入力、出力、または変換用に独自のノードを作成できます。
最新バージョンより前は、IIBはIBM MQと密接にリンクされていましたが、IIBの最近のバージョンではこれは不要になりました。 ただし、機能の一部はMQなしでは機能しないため、基本的な作業スキームにはMQのインストールが含まれます。
これは最初の投稿なので、私はそれを紹介しました。 トピックに興味がある場合は、話を続けます。
便利なリンク:
IBM Knowledge Center
フォーラム