メッセージ交換は、メッセージキューを介したアプリケーション間の非同期通信です。送信側アプリケーションは、メッセージをメッセージキューに送信するとそのメッセージを相手が受信したかどうかにかかわらず終了することができます。
一方、受信側アプリケーションは、メッセージが到着しているかどうかにかかわらずメッセージ受信を行うことができます。また、このとき、メッセージが到着するまで待つことや、メッセージが到着していないと復帰することもできます。
1方向の非同期メッセージ通信のモデルを図2.3 1方向の非同期通信に示します。
図2.3 1方向の非同期通信
送信側アプリケーションAは、MQD内のどのメッセージキューにもメッセージを送信することが可能です。一方、受信側アプリケーションBはメッセージを受信するためにメッセージキューを最低一つは用意する必要があります。メッセージキュー(キューb)は、受信側アプリケーションBに対応するように設定することを推奨します。
次に、1方向の非同期通信を組み合わせることで、クライアント/サーバ型の非同期通信を実現することができます。クライアントでのメッセージの送信と受信を別のアプリケーションで処理する形態のクライアント/サーバ型の非同期通信を図2.4 クライアント/サーバ型の非同期通信に示します。
図2.4 クライアント/サーバ型の非同期通信
クライアントAからのメッセージヘッダには、返信キュー名(キューb)を設定できるので、サーバCは、要求された処理を実行した後、対応するクライアントBのメッセージキュー(キューb) に対して、処理結果のメッセージを返信することができます。ここでも、メッセージを受信するアプリケーション(サーバCとクライアントB)に対応してメッセージキュー(キューcとキューb)を作成しています。