メッセージ キューとメッセージング テクノロジの背景
更新 : 2007 年 11 月
Microsoft Windows メッセージ キューを使用すると、アプリケーション開発者は、メッセージの送受信をとおしてアプリケーション プログラムとのやり取りをすばやく確実に行うことができます。このトピックでは、MessageQueue テクノロジに詳しくない方のために基本的な用語と概念について簡単に説明します。
メッセージングの主要概念
"メッセージ" とは、2 台のコンピュータ間で送信されるデータの単位です。メッセージには、1 つの文字列だけで構成される単純なものから、埋め込みオブジェクトを含む複雑なものまであります。
メッセージは、キューに送信されます。"メッセージ キュー" は、配送中のメッセージを保持するコンテナです。メッセージ キュー マネージャは、送信元から送信先へメッセージを中継する仲介者として機能します。キューの主な目的は、ルーティングを行って、メッセージの配信を保証することです。メッセージを送信したときに受信側が受信できない状態の場合は、正しく配信されるまでの間、キューにメッセージが保持されます。
メッセージ キューは Microsoft のメッセージング テクノロジであり、アプリケーションのメッセージング機能とメッセージ キュー機能を実現します。さらに、Microsoft Windows がインストールされているコンピュータ間ならば、どんな組み合わせのコンピュータでも (双方が同じネットワーク上にある場合でも、同時にオンラインになる場合でも)、メッセージング機能を実現できます。
メッセージ キュー ネットワークは、それぞれの間でメッセージを送受信できるコンピュータの集合体です。ネットワーク内の各コンピュータは、メッセージングを円滑に実行するために異なる役割を担います。あるコンピュータはメッセージをどのように送信するかを決定するルーティング情報を提供し、別のコンピュータはネットワーク全体に対する重要な情報を保持します。単にメッセージを送受信するだけのコンピュータもあります。
メッセージ キューのセットアップ時に、管理者は相互に通信を行うサーバーを決定し、特定のサーバーに特別な役割を割り当てます。このメッセージ キュー ネットワークを構成するコンピュータをサイトと呼び、各サイトはサイト リンクによって互いに接続されます。各サイトには、管理者によって決定されたコストが関連付けられています。コストは、メッセージのそのコンピュータでの通信速度を示します。
また、メッセージ キュー管理者は、ネットワーク内の 1 つ以上のコンピュータをルーティング サーバーとして動作するようにセットアップします。ルーティング サーバーは、さまざまなサイト リンクのコストを調べて、複数のサイト間でメッセージを配信する際に最も速くて効率のよい経路を判断することにより、メッセージの配信方法を決定します。
メッセージ キュー サイトの標準的な構成と各サイト間のやり取りを次の図に示します。
サイト間のメッセージ ルーティング
ヒント : |
---|
開発時にメッセージ ルーティングの詳細について考慮する必要はありません。メッセージ キュー ネットワークは、効率的にメッセージが配信されるように、管理者が後から調整できます。 |
キューの種類
キューには 2 つの主要なカテゴリがあります。ネットワークのユーザーが作成するキューと、システム キューです。ユーザー作成キューには、以下の種類があります。
パブリック キューは、メッセージ キュー ネットワーク全体にわたってレプリケートされ、ネットワークに接続されているすべてのサイトからアクセスが可能です。
プライベート キューは、ネットワーク全体にわたってパブリッシュされることはありません。その代わり、キューが含まれているローカル コンピュータ上でだけ使用できます。プライベート キューには、キューの完全パス名またはラベルを識別できるアプリケーションだけがアクセスできます。
管理キューには、特定のメッセージ キュー ネットワーク内で送信されたメッセージの受信確認を行うメッセージが含まれます。MessageQueue コンポーネントで使用する管理キューがある場合は、それを指定します。
応答キューには、送信先のアプリケーションがメッセージを受信したときに送信元のアプリケーションに返す応答メッセージが含まれます。MessageQueue コンポーネントで使用する応答キューがある場合は、それを指定します。
システム生成キューは、一般に次のカテゴリに分類されます。
ジャーナル キューは、送信したメッセージのコピーおよびキューから削除されたメッセージのコピーを格納します。各メッセージ キュー クライアントでは、単一のジャーナル キューに、そのコンピュータから送信されたメッセージのコピーが格納されます。サーバー上では、各キューに対して個別のジャーナル キューが作成されます。このジャーナルは、各キューから削除されたメッセージを追跡します。
配信不能キューは、配信できないメッセージや期限切れのメッセージのコピーを格納します。期限切れのメッセージまたは配信できないメッセージがトランザクション メッセージである場合は、トランザクション配信不能キューと呼ばれる特別な種類の配信不能キューに格納されます。期限切れのメッセージは、そのメッセージの期限が切れたコンピュータ上に格納されます。タイムアウト期限と期限切れのメッセージの詳細については、「既定のメッセージ プロパティ」を参照してください。
レポート キューは、メッセージが送信先に配信された経路を示すメッセージを格納します。また、テスト メッセージを格納することもできます。コンピュータ 1 台につき 1 つのレポート キューだけを使用できます。
プライベート システム キューは、システムがメッセージング処理に使用する管理メッセージや通知メッセージを格納するプライベート キューの集まりです。
アプリケーションで行うほとんどの操作では、主にパブリック キューおよびパブリック キュー内のメッセージを使用します。ただし、アプリケーションがジャーナル記録や受信確認などの特別な処理を必要とする場合には、日常的な操作の中で、この他のさまざまな種類のシステム キューを使用する可能性もあります。
同期通信と非同期通信
キューによる通信は、キューへのメッセージの送信とキューからのメッセージの受信が別プロセスで処理されるという点で、本質的に非同期です。さらに、受信操作を非同期で実行することができます。メッセージを受信する側は、特定のキューに対して BeginReceive メソッドを呼び出し、その後すぐに、応答を待たずに別のタスクに進むことができます。これは、同期通信として知られているものとは大きく異なります。
同期通信では、要求の送信者はほかのタスクを実行する前に、受信者からの応答を待つ必要があります。送信者が応答を待つ時間の長さは、受信者が要求を処理して応答を送信するのにかかる時間によって決まります。
メモ : |
---|
メッセージの同期または非同期の取得は、メッセージの送信とは別の問題です。メッセージは、常に非同期に送信されます。 |
メッセージ キューの非同期処理の詳細については、「非同期のメッセージ処理」を参照してください。
メッセージのセキュリティ
送受信するメッセージの内容を次の方法で保護できます。
認証を使用して、アプリケーションが受信するメッセージの発信元を確認します。
暗号化を使用して、承認されたユーザー以外はメッセージを読むことができないようにします。
アクセス制御を使用して、コンピュータ上の特定のキューに対してユーザーまたはコードがメッセージの送受信を行うことを制限できます。ユーザーは ACL ベースのセキュリティによって制限し、コードはコード アクセス セキュリティによって制限します。
監査を使用して、メッセージ キュー オブジェクトにアクセスを試みたユーザー、その際の操作の種類、およびそのアクセスの成否を記録できます。
詳細については、「メッセージ キューのセキュリティ」を参照してください。
メッセージ キューのインストール
コードまたはサーバー エクスプローラでメッセージ キューを操作するには、開発に使用するコンピュータにメッセージ キューがインストールされている必要があります。メッセージ キューをインストールする方法については、Windows 2000 または Windows NT のマニュアルを参照してください。インストール時には、新しいネットワークのハブとして機能する新しいプライマリ メッセージ キュー サーバー、既存のネットワークの独立したクライアント、既存のネットワークの依存型クライアントのどれを作成するかを指定する必要があります。ほとんどの場合、新しいネットワークを作成することはなく、企業またはワークグループの既存のメッセージ キュー ネットワークに加わります。
背景情報の参照先
このセクションの残りのトピックでは、メッセージ キュー コンポーネントをアプリケーションで使用するために必要な情報について説明しています。Visual Studio や .NET Framework 以外のメッセージング テクノロジに関する詳細な情報が必要な場合は、MSDN ライブラリおよび Microsoft の Web サイトに多くの情報源があります。
参照する内容 |
Windows 2000 Server のマニュアル内のトピック |
---|---|
メッセージ キュー ネットワークのセットアップ |
メッセージ キューのインストール |
メッセージ キューの全般的な概念 |
メッセージ キューをアンインストールする |
メッセージ キューのパフォーマンスの微調整 |
メッセージ キューを管理する |