パブリッシュ/サブスクライブ・メッセージング

パブリッシュ/サブスクライブ・メッセージングによって、情報の提供者をその情報の利用者から分離することができます。 送信側および受信側アプリケーションは、情報を送受信するために互いの情報を知っている必要はありません。

Point-to-Point IBM® MQ アプリケーションは、メッセージを別のアプリケーションに送信する前に、そのアプリケーションに関する何かを認識する必要があります。 例えば、情報の送信先のキューの名前がわかっていなければなりませんし、場合によってはキュー・マネージャー名を指定する必要もあります。

IBM MQ パブリッシュ/サブスクライブを使用すると、ターゲット・アプリケーションについてアプリケーションが認識する必要がなくなります。 送信側アプリケーションが行う必要があるのは、以下の処理だけです。
  • アプリケーションが必要とする情報を含む IBM MQ メッセージを 書き込み ます。
  • 情報のサブジェクトを示すトピックへのこのメッセージの割り当て。
  • IBM MQ にその情報の分布を処理させます。
同様に、ターゲット・アプリケーションも、受け取る情報のソースについて何も知る必要はありません。

以下の図は、最も単純なパブリッシュ/サブスクライブ・システムを示しています。 パブリッシャーが 1 つ、キュー・マネージャーが 1 つ、サブスクライバーが 1 つあります。 サブスクライバーがサブスクリプションをキュー・マネージャー上に作成し、パブリッシャーがパブリケーションをキュー・マネージャーに送信します。 そのパブリケーションを、キュー・マネージャーがサブスクライバーに転送します。

図1: 簡単なパブリッシュ/サブスクライブの構成
パブリッシャーとサブスクライバーによってフラッキングされたキュー・マネージャーが表示されます。 サブスクリプションはサブスクライバーからキュー・マネージャーに流れ、パブリケーションはパブリッシャーからキュー・マネージャーを経由してサブスクライバーに流れます。
標準的なパブリッシュ/サブスクライブ・システムには、さまざまなトピックに関する複数のパブリッシャーと複数のサブスクライバーがあり、多くの場合、キュー・マネージャーも複数あります。 1 つのアプリケーションがパブリッシャーとサブスクライバーの両方を兼ねることもあります。

パブリッシュ/サブスクライブ・メッセージングと Point-to-Point のもう 1 つの重要な相違点は、Point-to-Point キューに送信されたメッセージを処理するのは、単一のコンシューム・アプリケーションのみであるという点です。 複数のサブスクライバーがインタレストを登録しているパブリッシュ/サブスクライブ・トピックにパブリッシュされたメッセージは、すべてのインタレスト・サブスクライバーによって処理されます。