WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

使用するノードの決定

WebSphere® Message Broker には、メッセージ・フロー内で使用できるメッセージ処理ノードが多数あります。

始める前に:

概念のトピック (メッセージ・フロー・ノード) に目を通しておきます。

WebSphere Message Broker はまた、ユーザー定義ノードと呼ばれる独自のノードを定義するのに使用できるインターフェースも提供します。

ブローカーが稼働しているモードは、使用可能なノードのタイプに影響を与えることがあります。各動作モードに適用される制約事項を参照してください。

どのノードを使用するかは、メッセージに対して実行する処理によって異なります。

入力、出力、および要求ノード
入出力ノードは、クライアント・アプリケーションがメッセージを送信する先のメッセージ・フロー中のポイント (MQInput などの入力ノード) を定義し、また、どのクライアント・アプリケーションからメッセージを受信するか (MQOutput などの出力ノード) を定義します。 クライアント・アプリケーションは、ノードがメッセージの送信元または宛先として指定した I/O リソースとの間でメッセージの書き込みと読み取りを行うことにより、これらのノードと相互作用します。 メッセージ・フローには少なくとも 1 つの入力ノードが組み込まれていなければなりませんが、出力ノードや要求ノードが組み込まれている必要はありません。

入力ノードは、その他のメッセージ・フローを起動してその処理を行う時期を制御するため、他のノードとは異なります。 入力ノードは、メッセージ・フローで処理するデータがあることをチェックし、トランスポートまたはサーバーからそのデータを読み取り、後のフローにそのデータを渡して処理するように設計されています。 その他のノードは処理を行いますが、フローを起動する時期の制御は行いません。

Reply、要求、および応答ノードを使用して、メッセージ・フロー内から他のアプリケーションと対話することができます。これらのタイプのノードは、プロトコルのサブセットに対してのみ提供されます。

  • ブローカーにデプロイするためのメッセージ・フローを作成する場合、メッセージを受け取る入力ノードを少なくとも 1 つ組み込む必要があります。 選択する入力ノードは、入力メッセージの送信元、およびメッセージを受け取りたいフロー内の場所によって異なります。
  • メッセージ・フローで作成されたメッセージをターゲット・アプリケーションに送信する場合、1 つ以上の出力ノードを組み込むことができます。 選択する出力ノードは、次のように、そのメッセージのターゲット・アプリケーションでの受け取りの際に予定されているトランスポートによって決まります。
  • フローの途中で外部システムへの要求を行い、結果をメッセージ・ツリーに取り込む場合は、要求ノードを使用します。
メッセージの操作、拡張、および変換を行うためのノード

たいていどの企業でも、さまざまなシステム上で、さまざまなプログラム言語とさまざまな通信方法を使って、長年に渡って開発されてきた複数のアプリケーションがあるものです。 WebSphere Message Broker では、メッセージの形式を変換するようにメッセージ・フローを構成する機能を提供することにより、アプリケーションがこうした相違を理解しなくても良いようになっています。

例えば、個人名を保持する形式は多数あり、アプリケーションごとに異なります。 姓を最初と最後のどちらに置くか、ミドルネームのイニシャルを含めるか、大文字表記か小文字表記かは、順列の一部にすぎません。 各アプリケーションの要件を認識するようにメッセージ・フローを構成できるので、送信または受信アプリケーションには変更を加えることなく、各メッセージを正しい形式に変換できます。

メッセージの内容を処理し、いくつかの方法でそれを更新することができます。 ここでのユーザーの選択は、メッセージ・フローが処理するのが、事前定義 (モデル化) メッセージなのか、自己定義メッセージ (例えば XML) なのか、またはその両方なのかによって異なります。

メッセージ・フローでは、メッセージを完全に再作成することも、その形式を別の形式に変換する (例えば、フィールドの順序、バイト・オーダー、または言語を変更する) ことも、メッセージから内容を削除することも、メッセージに特定のデータを挿入することもできます。 例えば、あるノードでは、データベースと対話して追加情報を検索すること、あるいはメッセージのコピー (全体または一部) をデータベースに保管して、オフライン処理を可能にすることができます。

以下の例は、メッセージ変換の重要性を示しています。
  • ある受注入力アプリケーションでは、パーツ ID がメッセージの本文に含まれるのに対し、それに関連付けられている在庫アプリケーションでは、パーツ ID がメッセージ・ヘッダーに入っていることを期待しています。 メッセージをあるメッセージ・フローに送ります。 このメッセージ・フローは、これらの 2 種類の形式が分かっているので、必要に応じて情報を形式設定し直すことができます。
  • あるデータ入力アプリケーションは、株式取引情報の入ったメッセージを作成します。 このメッセージを受信するアプリケーションによっては、そのままの情報を必要とする場合も、メッセージに株価収益 (PE) 率の情報を追加する必要がある場合もあります。 株式取引メッセージをあるメッセージ・フローに送ります。 このメッセージ・フローは、ある出力ノードへはメッセージに変更を加えずに渡し、他の出力ノードへは付加的な情報を計算して追加します。 この計算を行うため、このメッセージ・フローでは、データベースで現在の株価を検索し、この値と元のメッセージの取引情報を使用して PE 値を計算してから、更新したメッセージを渡します。

また、以下のノードを使って相互に対話するメッセージ・フローを作成することもできます。 あるメッセージ・フローのデフォルト操作が他のメッセージ・フローの操作に影響を与えることはありませんが、データベースなどの外部ソースで情報の保管や検索を行うようにメッセージ・フローを構成すれば、このアクションを強制的に起こすことができます。

これらのノードは、メッセージの変換用に提供されます。

決定を下すためのノード

メッセージ・フロー内の制御の順序とフローに関するさまざまなことを判別するノードを使用して、フローによるメッセージの処理を決定できます。 メッセージ・フロー内のイベントの、時間と発生頻度を決定するノード (TimeoutControl および TimeoutNotification) を使用することもできます。 ルーティングはメッセージ変換には依存しません。ただし、メッセージがたどる経路によって、メッセージに対してどのような変換が実行されるかが正確に決定されることはあります。

例えば、ある振替アプリケーションが、常にもう 1 つのアプリケーションにメッセージを送信するとします。 振替額が 10,000 ドルを上回るメッセージについては、もう 1 つ別のアプリケーションにも送信して、高額の取引をすべて記録できるようにします。

別の例として、ある全国規模の自動車クラブでは、特定のメンバーに対し、しきい値を超える注文について特別サービスを提供します。 大部分の注文は通常のチャネルへルーティングされますが、メンバーシップ番号と注文額が特定の基準にかなう場合は特殊な処理が適用されます。

メッセージを処理する時点で追加のルーティング情報をメッセージに組み込むことにより、さらに動的なルーティング・オプションも設定できます。 オプションの規則セットをセットアップし、メッセージに設定された値 (宛先) に基づいてメッセージ受信が行えるようにします。 こうした規則を設定するにあたっては、追加したメッセージ内容で決めた順番に従って、1 つ以上のオプションの規則セットでメッセージを処理するようにできます。

これらのノードは、メッセージ・フローの中でメッセージがたどる経路を決定するために提供されます。

時間に制約される操作を制御するためのノード
毎日特定の時刻にバッチ・アプリケーション・プロセスを実行したり、一定間隔で情報を処理してパブリッシュしたり (例えば通貨の為替レートを計算して銀行に送るなど)、または既定時間内で特定のトランザクションが完了しない場合に、指定のリカバリー・アクションを取りたいことがあります。 これらすべての場合について、2 つのタイムアウト・ノード (TimeoutControl および TimeoutNotification) が提供されています。 時間に制約される操作を制御するためのノードを参照してください。
その他のノード
以下のタスクを実行するための、その他のノードがあります。
  • 要求の照合
  • メッセージ・コレクションの作成
  • メッセージのシーケンスの制御
  • エラーの処理と報告
  • メッセージ・フロー・セキュリティー・マネージャーの起動
詳細については、その他のノードを参照してください。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:45:16


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | ac00330_