Message Queue メッセージングは、HTTP/HTTPS 接続で実行できます。HTTP/HTTPS 接続は、通常ファイアウォールの通過が許可されるため、ファイアウォールによってブローカからクライアントアプリケーションを分離できます。
図 C–1 に、HTTP/HTTPS サポートの提供に関連する主なコンポーネントを示します。
クライアント側では、HTTP または HTTPS トランスポートドライバが、Message Queue メッセージを HTTP 要求にカプセル化し、これらの要求が正しい手順で Web サーバーまたはアプリケーションサーバーに送信されるようにします。
クライアントは、必要に応じて、HTTP プロキシサーバーを使用してブローカと通信できます。プロキシのアドレスは、クライアントの起動時に、コマンド行オプションを使用して指定します。詳細は、「HTTP プロキシを使用する」を参照してください。
HTTP または HTTPS トンネルサーブレット (どちらも Message Queue にバンドルされている) が、Web サーバーまたはアプリケーションサーバーに読み込まれます。サーブレットは、ペイロードメッセージをクライアント HTTP 要求から取り出してから、ブローカに転送します。また HTTP/HTTPS トンネルサーブレットは、クライアントが作成した HTTP 要求に応じて、ブローカのメッセージをクライアントに返送します。1 つの HTTP/HTTPS トンネルサーブレットで複数のブローカにアクセスできます。
ブローカ側では、httpjms または httpsjms 接続サービスが、対応するトンネルサーブレットから送られてくるメッセージを開いて逆多重化します。
Web サーバーまたはアプリケーションサーバーに障害が生じ再起動された場合は、すべての接続が復元されるため、クライアントへの影響はありません。ブローカに障害が生じ再起動された場合は、例外がスローされ、クライアントはそれぞれの接続を再確立する必要があります。発生するのはまれですが、Web サーバーまたはアプリケーションサーバーとブローカの両方に障害が生じ、ブローカが再起動しなかった場合、Web サーバーまたはアプリケーションサーバーはクライアント接続を復元し、引き続きブローカ接続を待機しますが、クライアントには通知しません。この状況を避けるために、常に、ブローカを再起動してください。
図 C–1 からわかるとおり、HTTP と HTTPS サポートのアーキテクチャーは非常によく似ています。主な相違点は、HTTPS (httpsjms 接続サービス) の場合、トンネルサーブレットにクライアントアプリケーションとブローカの両方への安全な接続があることです。
ブローカへの安全な接続は、SSL に対応したトンネルサーブレット、つまり Message Queue の HTTPS トンネルサーブレットを通して提供されます。このトンネルサーブレットが、接続の要求時にブローカに自己署名付き証明書を渡します。ブローカは証明書を使用して、HTTPS トンネルサーブレットへの暗号化された接続を設定します。この接続が確立されると、クライアントアプリケーションと Web サーバーまたはアプリケーションサーバーは、クライアントアプリケーションとトンネルサーブレット間の安全な接続のネゴシエーションを行うことができます。