 |
≫ |
|
|
 |
WebSphere MQの特長は、そのメッセージ・キューイング・モデルと呼ばれるプログラム間通信方式にあります。このモデルの概略を図1に示しました。
|
 |
 |
他のプログラム間通信方式と最も異なるのは、アプリケーション同士が直接セッションを張らず、キュー経由で間接的にデータ/メッセージをやり取りする点です。メッセージ・キューイング・モデルでは、いったんキューにメッセージを蓄積し(MQPUT)、
宛先アプリケーションはこのキュー経由でメッセージを受け取って(MQGET)処理します。両側のアプリケーションの処理は一体ではなく、相互のキューを境に大きく2つの処理に分けられています。送り手側の処理はキューに蓄積するまでであり、受け手側の処理とは独立して実行可能になっています。
送り手と受け手が別々のプラットフォーム上で動く場合、このモデルの優位性がより明確になります。送り手側のアプリケーションは、ローカルにあるキューにメッセージを蓄積すれば、リモートにある受け手アプリケーションが稼働できるか否かにかかわらず、処理を終了できます。
受け手の都合により処理を元に戻す必要はありません。分散環境において、受け手アプリケーションがすぐにデータ/メッセージを受け取れないケースはさまざまあります。
例えば受け手側のハード/OS障害や、ネットワーク障害などです。こうした障害があったとしても、送り手側は独立して処理を実行できま す。いったんローカルのキューに蓄積されたメッセージは、WebSphereMQが受け手側に間違いなく届けます。例えばネットワーク障害が起こっていた場合、WebSphere MQは
ネットワーク障害の回復を待ってローカルのキューから受け手側に送信。以降、受け手側アプリケーションがキューから取り出し、送り手側とは独立して処理を進めます(図2)。キューはその後の処理を確実に実行するため、多くはディスクに配置されますが、メモリー上に置くようにも指定できます。
「いったんキューに蓄積」というのはあくまで論理的な基本方式であり、物理的な入出力をするか否か、すぐに受け手アプリケーションを実行するか否かは選択可能です。キューを境に別々の処理として実行することも、一体の処理としての実行も可能です。
この柔軟さこそが、メッセージ・キューイング・モデルの本領なのです。 |
 |
 |
- 非同期モデル
- コネクションレス(セッション不要)
- 両方のプログラムが同時に稼動している必要なし(キュー経由のプログラム間通信)
- 多様なアプリケーションに対応可能
・「郵便」方式
|
 |
 |
- プラットフォームに共通のMQI
- 容易なアプリケーション開発
- ネットワークの複雑さからアプリケーションを解放(プロトコルの違いやネットワーク障害からの回復を考える必要がありません)
- 時間に依存しないアプリケーション連携(メッセージを送るアプリケーションは同時に稼動している必要はありません)
|
|