Scribble サンプルについて

Scribble サンプルは、パブリッシュ/サブスクライブ・タイプのメッセージングを使用して、データをトランスポートします。詳細については、WebSphere Message Broker の資料で パブリッシュ/サブスクライブ・メッセージングについて調べてください。

ScribblePublisher および ScribbleSubscriber は、WebSphere MQ トランスポートまたは WebSphere MQ リアルタイム・トランスポートを使用してパブリケーション・メッセージをトランスポートできます。メッセージは、個々のアプリケーションの始動時に選択したトランスポートのタイプに応じてフォーマット設定され、そのメッセージ・フォーマットによって、メッセージがメッセージ・フローに出入りする方法が決定されます。メッセージのフォーマットには関係なく、すべてのパブリケーション・メッセージはメッセージ・フローを移動します。

Scribble サンプルは以下のアクションを実行します。

  1. ScribbleSubscriber アプリケーションを始動すると、トピック「scribble/coords 」および「scribble/clear 」をサブスクライブします。
  2. ScribblePublisher ウィンドウで描画を開始すると、ScribblePublisher は描画の座標を、トピック「scribble/coords」 上の ScribblePublish メッセージ・フローにパブリッシュします。
  3. メッセージ・フローは、メッセージが「scribble/coords 」トピックにパブリッシュされたことを確認し、パブリケーション・メッセージ内の座標を変換します。
  4. ScribbleSubscriber アプリケーションは、変換された座標を含むメッセージを受け取ります。「scribble/coords 」トピックのパブリケーションをサブスクライブしたからです。
  5. ScribblePublisher アプリケーションで「クリア」をクリックする と、ScribblePublisher は、scribble/clear トピックに関するメッセージを ScribblePublish メッセージ・フローにパブリッシュします。
  6. そのメッセージは scribble/coords トピックにはパブリッシュされなかったため、メッセージ・フローはメッセージ・データを変換しません。
  7. ScribbleSubscriber アプリケーションは、scribble/clear トピックに関するパブリケーションをサブスクライブしたので、メッセージを受け取ります。

以下のセクションでは、サンプルのリソースを詳細に説明しています。

メッセージ

Scribble サンプルは、2 つのフォーマットの JMS メッセージを使用します。

すべてのメッセージには標準メッセージ・テンプレートがあり、以下の部分がそのテンプレートに含まれています。

ScribblePublisher アプリケーションが Real-time タイプのメッセージ・トランスポートを使用してメッセージをパブリッシュする場合のパブリケーション・メッセージの形式は、ScribblePublisher が WebSphere MQ タイプのメッセージ・トランスポートを使用してメッセージをパブリッシュする場合とは異なります。しかし、ScribblePublish メッセージ・フローの Filter ノードで解析できるのは、WebSphere MQ トランスポート用の形式のメッセージだけです。それで Real-time Input ノードでは、メッセージ・フローのノードがメッセージを解析できるようにするため、Real-time メッセージ・フォーマットが WebSphere MQ メッセージに変換されます。

メッセージ・フローの Publication ノードは、WebSphere MQ メッセージング・トランスポートを使用する ScribbleSubscriber アプリケーションに、WebSphere MQ メッセージをパブリッシュします。しかし、ScribbleSubscriber がリアルタイム・トランスポートを使用する場合、Publication ノードは、メッセージをパブリッシュする際にメッセージ・フォーマットを Real-time に変換します。

詳しくは、WebSphere Message Broker の資料で、JMS ドメインについて参照してください。

メッセージ・フロー

下の図は、Scribble サンプルでパブリケーション・メッセージを処理する ScribblePublish メッセージ・フローを示しています。

ScribblePublish メッセージ・フローの画面取り

下の表では、ScribblePublish メッセージ・フローで使用されるノードのタイプをリストしています。

ノード・タイプ ノード名
MQInput SCRIBBLE_PUBLICATION
Real-timeInput Real-timeInput
Filter Filter On Topic
Compute Invert Coordinates
Publication Publication

詳しくは、WebSphere Message Broker の資料で、ScribblePublish メッセージ・フローのノードについて参照してください。

ScribblePublish メッセージ・フローは、ScribblePublisher アプリケーションがパブリッシュした座標を変換し、その新しい座標を ScribbleSubscriber アプリケーションにパブリッシュします。詳しくは、WebSphere Message Broker の資料で、メッセージ・フローとメッセージ変換について参照してください。

ScribblePublish メッセージ・フローは以下のアクションを実行します。

  1. パブリケーション・メッセージを取得します。メッセージ・フローが入力メッセージを取得する方法は、 メッセージのフォーマット設定によって決まります。
  2. トピック上のパブリケーション・メッセージにフィルターを掛けます。
  3. scribble/coords 」トピックにパブリッシュされた座標を変換し、ScribbleSubscriber アプリケーションに反転して表示されるようにします。
  4. メッセージを出力します。メッセージがメッセージ・フローをどのように離れるかは、サブスクライバー・アプリケーションのメッセージ・ドメインによって決まります。

メッセージは、パブリッシャー・アプリケーションおよびサブスクライバー・アプリケーションで使用されるメッセージング・トランスポートには関係なく、説明のとおりにメッセージ・フローを移動します。しかし、メッセージ・フローの Filter ノードと Compute ノードで解析できるのは、WebSphere MQ トランスポート用の形式のメッセージだけなので、Real-timeInput ノードでは Real-time メッセージを WebSphere MQ メッセージに変換します。同じように、Publication ノードが WebSphere MQ メッセージを Real-time ポートにパブリッシュする場合には、それらのメッセージは Real-time メッセージに変換されます。

ESQL

ScribblePublish メッセージ・フローで使用される ESQL をワークベンチで表示するには、次のようにします。

  1. ワークベンチで、「ブローカー・アプリケーション開発」パースペクティブに切り替えます。
  2. 「リソース・ナビゲーター」ビューで、ScribblePublish.esql を ダブルクリックして、ESQL エディターで開きます。

Filter On Topic ノードの ESQL は ScribblePublish_Filter モジュールに含まれ、Invert Coordinates ノードの ESQL は ScribblePublish_Compute モジュールに含まれます。詳しくは、WebSphere Message Broker の資料で、ESQL について参照してください。

メッセージ・トランスポート

ScribblePublisher アプリケーションと ScribbleSubscriber アプリケーションは、情報を JMS メッセージに入れてパブリッシュします。それらのアプリケーションは、WebSphere MQ または Real-time メッセージング・トランスポートを使用してメッセージをトランスポートできます。

WebSphere MQ トランスポート

Scribble アプリケーションでパブリケーション・メッセージのトランスポートに WebSphere MQ を使用する場合、このアプリケーションは、下記の表に示すように WebSphere MQ ローカル・キューと対話します。

キュー メッセージ・フローによるキューの使用方法
SCRIBBLE_PUBLICATION メッセージ・フローは、ScribblePublisher アプリケーションがキューにパブリッシュしたイベント・パブリケーションを取得します。
SYSTEM.JMS.ND.SUBSCRIBER.QUEUE メッセージ・フローは、ScribbleSubscriber アプリケーションのキュー上にパブリケーションを入れ、ブローカーにパブリッシュします。

WebSphere MQ についての詳細は、WebSphere MQ 製品資料を参照してください。

WebSphere MQ リアルタイム・トランスポート

Scribble アプリケーションでパブリケーション・メッセージのトランスポートに Real-time を使用する場合、WebSphere MQ ローカル・キューと対話することはありません。 その場合、ScribblePublisher は Real-time ポートにパブリッシュし、ScribbleSubscriber は同じ Real-time ポートからパブリケーションを取得します。このサンプルの Real-time ポート番号は 1566 です。詳しくは、WebSphere Message Broker の資料で、WebSphere MQ リアルタイム・トランスポートについて参照してください。

メインページのアイコン   サンプルのホームに戻る