Pager サンプルの Text Messenger および SurfWatch は、異なるメッセージングのスタイルを使用してメッセージを ページャー・アプリケーションに送信する方法を例示します。 Text Messenger サンプルは、送信側アプリケーションがメッセージの宛先を知っている point-to-point メッセージングのデモを行います。一方、SurfWatch サンプルは、送信側および受信側アプリケーションが相互に切り離されているパブリッシュ/サブスクライブ・メッセージングのデモを行います。 パブリッシュ/サブスクライブ・スタイルのメッセージングは、掲示板にメッセージを書き込むことに似ています。メッセージを書き込む人は、だれがそのメッセージを読むことになるのかを必ずしも知っているわけではありません。また、そのメッセージを読む人は、掲示板にそれを書いたのがだれかを必ずしも知っているわけではありません。
このトピックでは、Pager アプリケーションに送信されたメッセージを処理するために Pager サンプルが使用する メッセージ・フローおよびメッセージ・セットについて説明します。 詳細については、WebSphere Message Broker の資料で メッセージ・フロー、 メッセージ・モデル、および Pager メッセージ・フローのノードについて調べてください。
Text Messenger アプリケーションを使用してメッセージを Pager サンプルに送信する場合、メッセージは TextMessenger メッセージ・フローによって処理されます。メッセージ・フローは、メッセージ・テキストの末尾に「Powered by IBM」というテキストを付加し、それを Pager アプリケーションに渡します。
次の図は、TextMessenger メッセージ・フローを示しています。
下の表では、TextMessenger メッセージ・フローで使用されるノードのタイプをリストしています。
ノード・タイプ | ノード名 |
---|---|
MQInput | TEXTMESSENGER |
Mapping | Add IBM Text |
MQOutput | TEXTMESSENGER_FAIL; PAGER |
TextMessenger メッセージ・フローは以下のアクションを実行します。
メッセージにテキストを付加するとき、Text Messenger メッセージ・フローはメッセージの構造を理解していなければなりません。メッセージの構造は外部メッセージ・セットで定義され、これをメッセージ・フローが参照します。このメッセージ定義なしでは、メッセージ・フローの中のより複雑なノード (Mapping ノード (Add IBM Text) など) は受信した情報を処理できなくなります。Mapping ノードは、メッセージを処理するために、メッセージ定義の情報を参照する必要があります。
例えば、「This is my message to the pager.」というメッセージを Text Messenger アプリケーションを使って 送信すると、メッセージ・フローに入るメッセージは次のようになります。
<pager>
<text>This is my message to the pager.</text>
</pager>
Mapping ノード Add IBM Text は、「Powered by IBM」というテキストをメッセージ・テキストの 末尾に付加することにより、メッセージを変更します。 メッセージ・フローからメッセージが出て行く際には、次のようになっています。
<pager>
<text>This is my message to the pager. Powered by IBM.</text>
</pager>
Surf Report Publisher アプリケーションがメッセージをパブリッシュすると、メッセージは SurfWatch メッセージ・フローに よって処理されます。 SurfWatch メッセージ・フローは、サーフ・レポート・メッセージをプレーンなページャー・メッセージに変換してから、 各メッセージを海岸の名前に対応するトピックにパブリッシュします。 Surf Report Publisher アプリケーションを使用してサブスクライブしたトピックのメッセージは、Pager アプリケーションによって 受け取られます。 詳細については、 WebSphere Message Broker の資料でパブリッシュ/サブスクライブ・メッセージングについて調べてください。
下の図は、SurfWatch サンプル・メッセージ・フローを示しています。
下の表では、SurfWatch メッセージ・フローで使用されるノードのタイプをリストしています。
ノード・タイプ | ノード名 |
---|---|
MQInput | SURFWATCH |
Mapping | Change The Message |
MQOutput | SURFWATCH_FAIL |
Publication | Publish Reports |
SurfWatch メッセージ・フローは以下のアクションを実行します。
サーフ・レポート・フォーマットからページャー・フォーマットへメッセージを変換する際、SurfWatch メッセージ・フローは、サーフ・レポート入力メッセージの構造とページャー出力メッセージの構造を理解していなければなりません。メッセージの構造は外部メッセージ・セットで定義され、これをメッセージ・フローが参照します。これらのメッセージ定義なしでは、Mapping ノード (Change The Message) などのより複雑なノードは受信した情報を処理できなくなります。Mapping ノードは、メッセージを処理するために、メッセージ定義の情報を参照する必要があります。
たとえば、Haleiwa 海岸についてのサーフ・レポートをサブスクライブするために Surf Report Publisher アプリケーションを使用した場合、メッセージ・フローに入るメッセージは次のようになります。
<SurfWatch>
<TimeDate>21.05.03 09:52:13</TimeDate>
<Break>Pipeline</Break>
<Waves>4</Waves>
<Wind>Side-offshore</Wind>
</SurfWatch>
Mapping ノード Change The Message により、 メッセージはサーフ・レポート・メッセージからプレーンなページャー・メッセージに変換されます。メッセージ・フローからメッセージが出て行く際には、次のようになっています。
<Pager>
<text>SurfWatch 21.05.03 09:52:13 Pipeline: Side-offshore, waves 4m.</text>
</Pager>