(57)【特許請求の範囲】
【請求項１】
コンピュータの情報処理により依頼メッセージを処理する方法であって、
動的データ保護モジュールで、依頼−回答メッセージング環境に関連する依頼待ち行列を用いて、前記依頼メッセージを処理する要求を検出するステップと、
前記依頼待ち行列の依頼待ち行列ポリシーを用いて、前記依頼メッセージに対する応答メッセージの、少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを識別するステップと、
前記応答メッセージの前記識別された少なくとも一つの正当な送信元モジュールおよび前記唯一の正当な受信先モジュールを用いて、前記応答メッセージを処理するための回答待ち行列ポリシーを動的に生成するステップと、
前記動的に生成された回答待ち行列ポリシーを回答待ち行列に関連付けるステップと、  前記応答メッセージを処理する要求を受け、前記動的に生成された回答待ち行列ポリシーおよび前記関連する回答待ち行列を用いて、前記応答メッセージを処理するステップと、
を含む方法。
【請求項２】
前記応答メッセージの処理の完了に応じて、前記動的に生成された回答待ち行列ポリシーを削除するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記動的に生成された回答待ち行列ポリシーを回答待ち行列に関連付けるステップが、
前記動的に生成された回答待ち行列ポリシーを用いて、前記応答メッセージを処理するための前記回答待ち行列を生成するステップ、または
前記動的に生成された回答待ち行列ポリシーを用いて、前記応答メッセージを処理するために利用可能な待ち行列のプールから前記回答待ち行列を割り当てるステップ、
のうちの一つを含む前記回答待ち行列に関連付ける、請求項１または請求項２に記載の方法。
【請求項４】
前記動的に生成された回答待ち行列ポリシーを用いるメッセージングが完了したとの判定に応じ、
前記回答待ち行列を削除するステップ、および
前記動的に生成された回答待ち行列ポリシーを用いて、前記応答メッセージを処理するために前記利用可能な回答待ち行列のプールから割り当てられた前記回答待ち行列を割り当て解除するステップ、
のうちの一つをさらに含む、請求項３に記載の方法。
【請求項５】
前記依頼メッセージが前記回答待ち行列に対する名前を含み、
前記依頼メッセージに関連する前記名前を使って前記回答待ち行列を命名するステップと、
前記回答待ち行列の名前を前記動的に生成された回答待ち行列ポリシーに関連付けるステップと、
をさらに含む、請求項１〜４のいずれかに記載の方法。
【請求項６】
前記応答メッセージの前記識別された少なくとも一つの正当な送信元モジュールおよび前記唯一の正当な受信先モジュールを用いて、前記応答メッセージを処理するための前記回答待ち行列ポリシーを動的に生成するステップは、
前記依頼待ち行列ポリシーの送信元データ・フィールドに関連付けられた依頼元モジュールおよび受信先データ・フィールドに関連付けられた少なくとも一つの応答元モジュールを識別するステップと、
前記識別された依頼元モジュールを、前記動的に生成された回答待ち行列ポリシーの受信先データ・フィールドに関連付けられた前記唯一の正当な受信先モジュールとして指定するステップと、
前記少なくとも一つの応答元モジュールを、前記動的に生成された回答待ち行列ポリシーの送信元データ・フィールドに関連付けられた前記少なくとも一つの正当な送信元モジュールとして指定するステップと、
を含む、請求項１〜５のいずれかに記載の方法。
【請求項７】
前記応答メッセージの前記識別された少なくとも一つの正当な送信元モジュールおよび前記唯一の正当な受信先モジュールを用いて、前記応答メッセージを処理するための前記回答待ち行列ポリシーを動的に生成するステップは、
前記依頼メッセージから依頼元の暗号化情報を抽出するステップと、
前記動的に生成された回答待ち行列ポリシーに前記依頼元の暗号化情報を加えるステップと、
を含む、請求項１〜６のいずれかに記載の方法。
【請求項８】
前記動的に生成された回答待ち行列ポリシーを用いて、前記応答メッセージに関連する応答元モジュールが前記少なくとも一つの正当な送信元モジュールの一つであることを検証するステップをさらに含み、
前記応答メッセージを処理する前記要求が、前記応答元モジュールからの「ＰＵＴ」メッセージ要求を含むと判定するのに応じ、前記応答メッセージを処理する前記要求を受けて、前記動的に生成された回答待ち行列ポリシーおよび前記関連する回答待ち行列を用い、前記応答メッセージを処理するステップは、
前記動的に生成された回答待ち行列ポリシーからの前記依頼元の暗号化情報を用い、前記応答メッセージを暗号化するステップと、
前記暗号化された前記応答メッセージを前記回答待ち行列に転送するステップと、
を含み、
前記応答メッセージを処理する前記要求が、前記依頼元モジュールからの「ＧＥＴ」メッセージ要求を含むと判定するのに応じ、前記応答メッセージを処理する前記要求を受けて、前記動的に生成された回答待ち行列ポリシーおよび前記関連する回答待ち行列を用い、前記応答メッセージを処理するステップは、
前記動的に生成された回答待ち行列ポリシー、および前記動的に生成された回答待ち行列ポリシーの外部にある関連設定のうちの一つから得られた前記依頼元の暗号化情報を用い、前記応答メッセージを解読するステップと、
前記解読された応答メッセージを前記依頼元モジュールに転送するステップと、
を含む、請求項７に記載の方法。
【請求項９】
通信モジュールとプロセッサを有する、依頼メッセージを処理するためのシステムであって、
依頼−回答メッセージング環境に関連する依頼待ち行列を用いる前記依頼メッセージを処理する要求を検出し、
前記依頼待ち行列の依頼待ち行列ポリシーを用い、前記依頼メッセージに対する応答メッセージの少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを識別し、
前記応答メッセージの前記識別された少なくとも一つの正当な送信元モジュールおよび前記唯一の正当な受信先モジュールを用い、前記応答メッセージを処理するための回答待ち行列ポリシーを動的に生成し、
前記動的に生成された回答待ち行列ポリシーを回答待ち行列に関連付け、
前記応答メッセージを処理する要求を受けて、前記動的に生成された回答待ち行列ポリシーおよび前記関連付けられた回答待ち行列を用い、前記応答メッセージを処理する、
システム。
【請求項１０】
前記応答メッセージの処理の完了に応じて、前記動的に生成された回答待ち行列ポリシーを削除する、請求項９に記載のシステム。
【請求項１１】
前記動的に生成された回答待ち行列ポリシーを前記回答待ち行列に関連付けることにおいて、
前記動的に生成された回答待ち行列ポリシーを用いて、前記応答メッセージを処理するための前記回答待ち行列を生成する、または
前記動的に生成された回答待ち行列ポリシーを用いて、前記応答メッセージを処理するために利用可能な回答待ち行列のプールから前記回答待ち行列を割り当てる、
のうちの一つを行う、請求項９または１０に記載のシステム。
【請求項１２】
前記動的に生成された回答待ち行列ポリシーを用いるメッセージングが完了したと判定するのに応じ、
前記回答待ち行列を削除する、
前記動的に生成された回答待ち行列ポリシーを用いて、前記応答メッセージを処理するために前記利用可能な回答待ち行列のプールから割り当てられた前記回答待ち行列を割り当て解除する、
のうちの一つを行う、請求項１１に記載のシステム。
【請求項１３】
前記依頼メッセージが前記回答待ち行列の名前を含み、
前記依頼メッセージに関連する前記名前を使って前記回答待ち行列を命名し、
前記回答待ち行列の名前を前記動的に生成された回答待ち行列ポリシーに関連付ける、請求項９〜１２のいずれかに記載のシステム。
【請求項１４】
前記応答メッセージの前記識別された少なくとも一つの正当な送信元モジュールおよび前記唯一の正当な受信先モジュールを用いて、前記応答メッセージを処理するための前記回答待ち行列ポリシーを動的に生成することにおいて、
前記依頼待ち行列ポリシーの送信元データ・フィールドに関連付けられた依頼元モジュール、および受信先データ・フィールドに関連付けられた少なくとも一つの応答元モジュールを識別し、
前記識別された依頼元モジュールを、前記動的に生成された回答待ち行列ポリシーの受信先データ・フィールドに関連付けられた前記唯一の正当な受信先モジュールとして指定し、
前記少なくとも一つの応答元モジュールを、前記動的に生成された回答待ち行列ポリシーの送信元データ・フィールドに関連付けられた前記少なくとも一つの正当な送信元モジュールとして指定する、
請求項９〜１３のいずれかに記載のシステム。
【請求項１５】
前記応答メッセージの前記識別された少なくとも一つの正当な送信元モジュールおよび前記唯一の正当な受信先モジュールを用いて、前記応答メッセージを処理するための前記回答待ち行列ポリシーを動的に生成することにおいて、
前記依頼メッセージから依頼元の暗号化情報を抽出し、
前記動的に生成された回答待ち行列ポリシーに前記依頼元の暗号化情報を加える、
請求項９〜１４に記載のシステム。
【請求項１６】
前記動的に生成された回答待ち行列ポリシーを用いて、前記応答メッセージに関連する応答元モジュールが前記少なくとも一つの正当な送信元モジュールの一つであることを検証し、
前記応答メッセージを処理する前記要求が、前記応答元モジュールからの「ＰＵＴ」メッセージ要求を含むと判定するのに応じ、前記応答メッセージを処理する前記要求を受けて、前記動的に生成された回答待ち行列ポリシーおよび前記関連する回答待ち行列を用い、前記応答メッセージを処理することにおいて、前記動的に生成された回答待ち行列ポリシーからの前記依頼元の暗号化情報を用い、前記応答メッセージを暗号化し、
前記暗号化された前記応答メッセージを前記回答待ち行列に転送し、
前記応答メッセージを処理する前記要求が、前記依頼元モジュールからの「ＧＥＴ」メッセージ要求を含むと判定するのに応じ、前記応答メッセージを処理する前記要求を受けて、前記動的に生成された回答待ち行列ポリシーおよび前記関連する回答待ち行列を用い、前記応答メッセージを処理し、
前記動的に生成された回答待ち行列ポリシー、および前記動的に生成された回答待ち行列ポリシーの外部にある関連設定のうちの一つから得られた前記依頼元の暗号化情報を用い、前記応答メッセージを解読し、
前記解読された応答メッセージを前記依頼元モジュールに転送する、
請求項１５に記載のシステム。
【請求項１７】
請求項１〜８の何れか１項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【請求項１８】
請求項１７記載のコンピュータ・プログラムをコンピュータ可読ストレージ媒体に記録した、コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は依頼−回答メッセージング環境に関する。さらに具体的には、本発明は、依頼−回答メッセージ待ち行列作成環境に関連する動的データ保護ポリシーに関する。
【背景技術】
【０００２】
メッセージ待ち行列作成技術では、アプリケーション・プログラムは、アプリケーション・プログラム・インタフェース（ＡＰＩ：ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）を用い、メッセージ待ち行列経由のメッセージの形で、データを保存し読み出すことができる。メッセージ待ち行列は、アプリケーション・プログラムが、メッセージ待ち行列を介するメッセージ受領に関し、非同期的にメッセージを回収できるように、メッセージのバッファリングを可能にする。メッセージ待ち行列は、それぞれのアプリケーション・プログラムがメッセージを回収する前にメッセージ待ち行列中に累積され得る、メッセージの予測数に従って大きさを決めることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本主題は、依頼−回答メッセージ待ち行列作成シナリオに関連する、データ保護パラダイムの拡張、および依頼待ち行列ポリシーの諸要素および依頼メッセージの内容に基づいて（動的に生成されるかまたはその他の）回答待ち行列に対するデータ保護ポリシーを動的に生成することによるデータ保護サービスの向上を提供する。本主題は、公開鍵の詳細が、依頼メッセージ内容から抽出され、特定の依頼メッセージに対する回答メッセージを生成するため使用されるのを可能にすることでデータ保護のパラダイムをさらに拡張し、これにより、メッセージ応答元デバイスが使用するため、依頼元が公開鍵または証明書データを予め設定しておく必要性を省くものである。
【課題を解決するための手段】
【０００４】
本主題の方法は、動的データ保護モジュールにおいて、依頼−回答メッセージング環境に関連する依頼待ち行列を用いて、依頼メッセージを処理する要求を検出するステップと、依頼待ち行列の依頼待ち行列ポリシーを用いて、依頼メッセージに対する応答メッセージの少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを識別するステップと、応答メッセージの識別された少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを用いて、応答メッセージを処理するための回答待ち行列ポリシーを動的に生成するステップと、動的に生成された回答待ち行列ポリシーを回答待ち行列に関連付けるステップと、応答メッセージを処理する要求を受けて、動的に生成された回答待ち行列ポリシーおよび関連付けられた回答待ち行列を用い、応答メッセージを処理するステップと、を含む。
【０００５】
本主題のシステムは、依頼−回答メッセージング環境に関連する依頼待ち行列を用いて、依頼メッセージを処理する要求を検出し、依頼待ち行列の依頼待ち行列ポリシーを用いて、依頼メッセージに対する応答メッセージの少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを識別し、応答メッセージの識別された少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを用いて、応答メッセージを処理するための回答待ち行列ポリシーを動的に生成し、動的に生成された回答待ち行列ポリシーを回答待ち行列に関連付け、応答メッセージを処理する要求を受けて、動的に生成された回答待ち行列ポリシーおよび関連付けられた回答待ち行列を用い、応答メッセージを処理するように、プログラムされた通信モジュールおよびプロセッサを含む。
【０００６】
本主題のコンピュータ・プログラム製品は、コンピュータ可読プログラム・コードを含むコンピュータ可読ストレージ媒体を含み、コンピュータ可読プログラム・コードは、コンピュータ上で実行されたとき、そのコンピュータに、依頼−回答メッセージング環境に関連する依頼待ち行列を用いて、依頼メッセージを処理する要求を検出させ、依頼待ち行列の依頼待ち行列ポリシーを用いて、依頼メッセージに対する応答メッセージの少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを識別させ、応答メッセージの識別された少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを用いて、応答メッセージを処理するための回答待ち行列ポリシーを動的に生成させ、動的に生成された回答待ち行列ポリシーを回答待ち行列に関連付けさせ、応答メッセージを処理する要求を受けて、動的に生成された回答待ち行列ポリシーおよび関連付けられた回答待ち行列を用い、応答メッセージを処理させる。
【０００７】
以下に、一つの例として、添付の図面に示された好適な実施形態を参照しながら、本発明を説明する。
【図面の簡単な説明】
【０００８】
【図１】本主題のある実施形態による、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーのためのシステムの実装の一例のブロック図である。
【図２】本主題のある実施形態による、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーを実施できるコア処理モジュールの実装の一例のブロック図である。
【図３】本主題のある実施形態による、依頼元および応答元双方の視点からの依頼待ち行列ポリシーに基づく動的回答待ち行列ポリシーの生成を表す、メッセージング相互作用の実装の一例の論理ブロック図である。
【図４】本主題のある実施形態による、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーに対するプロセスの実装の一例のフローチャートである。
【図５】本主題のある実施形態による、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーに対するプロセス中の初期処理の実装の一例のフローチャートである。
【図６】本主題のある実施形態による、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーに対するプロセス中のさらなる処理の実装の一例のフローチャートである。
【発明を実施するための形態】
【０００９】
以下に説明する諸事例は、当業者が本発明を実践できるよう必要な情報を表し、本発明を実践するための最良の形態を示す。当業者は、添付の図面に照らして以下の説明を読むことにより本発明の概念を理解し、これらの概念の、本明細書で具体的に取り扱っていない応用を認識することができよう。当然ながら、それらの概念および応用は、本開示および添付の特許請求の範囲内に含まれる。
【００１０】
本明細書で説明する主題は、依頼−回答メッセージ待ち行列作成環境内における動的データ保護ポリシーを提供する。動的データ保護モジュールは、依頼−回答メッセージング環境内の依頼待ち行列を介する依頼メッセージを処理する要求を検出する。依頼メッセージを処理する要求は、依頼元モジュールから受信した依頼メッセージに対する「ＰＵＴ」メッセージ要求、または、その要求を処理する意図のある応答元モジュールから受信した、依頼メッセージに対する「ＧＥＴ」メッセージ要求を含み得る。依頼メッセージに対する回答メッセージの少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールが、依頼待ち行列の依頼待ち行列ポリシーを用いて識別される。回答メッセージの識別された少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを用いて、回答メッセージを処理するための回答待ち行列ポリシーが動的に生成される。例えば、依頼待ち行列ポリシーの送信元および受信先データ・フィールドを交換して、動的に生成された回答待ち行列ポリシーのそれぞれの送信元および受信先データ・フィールドを生成することができる（例えば、依頼ポリシーの送信元フィールドが、動的に生成された回答ポリシーの受信先フィールドの唯一のエントリになり、依頼ポリシーの受信先フィールド・エントリ／エントリ群が、動的に生成された回答ポリシーの送信元フィールドに対するエントリ／エントリ群になる）。動的に生成された回答待ち行列ポリシーは、回答待ち行列に関連付けられ、回答メッセージを処理する要求を受けて、動的に生成された回答待ち行列ポリシーおよび関連する回答待ち行列を用いて回答メッセージが処理される。
【００１１】
しかして、回答待ち行列に対するデータ保護ポリシーは、依頼待ち行列の依頼待ち行列ポリシーおよび依頼待ち行列から回収された依頼メッセージの内容に基づいて動的に生成される。本説明の目的上、回答メッセージに暗号化が使用されることになる場合、依頼メッセージが依頼待ち行列に「ＰＵＴ」されるときに、その依頼メッセージの内容に依頼元モジュールの暗号化情報（例えば、暗号化鍵／証明書）が含められることになり、その依頼メッセージに関連する「ＧＥＴ」要求に応じて、少なくとも応答元側で、依頼元モジュールの暗号化情報が動的に生成された回答待ち行列に加えられることになる。但し、当然ながら、本主題の範囲から逸脱することなく、この依頼元モジュールの暗号化情報を依頼元側で動的に生成された回答待ち行列に加えることもできる。前述のように、本主題は、依頼待ち行列ポリシーが、依頼待ち行列にメッセージを「ＰＵＴ」できるユーザ・デバイス（例、送信元／依頼元）、および依頼待ち行列からメッセージを「ＧＥＴ」できるユーザ・デバイス（例、受信先／応答元）を識別するという事実を利用する。依頼待ち行列ポリシー情報が、特定の受信先に対するメッセージを暗号化することを可能にし、随意的に受信先が送信元の信ぴょう性を検証することを可能にするための情報を提供するので、依頼メッセージを回収次第、この依頼待ち行列ポリシー情報を用いて、リアルタイムで回答待ち行列および回答待ち行列ポリシーが動的に生成される。依頼待ち行列ポリシー中で識別される全受信先は、潜在的送信元として、動的に生成された回答待ち行列ポリシー中に登録される。依頼メッセージの送信元は、動的に生成された回答待ち行列ポリシーの中で唯一の受信先として識別される。しかして、当初の依頼元は、この時点で回答待ち行列に対する専用の動的に生成されたデータ保護ポリシーを有し、この回答待ち行列には、潜在的な応答元のいずれでもメッセージを置くことが可能で、かかる一切の回答メッセージは、当初の依頼メッセージを発行した特定のユーザ・デバイスのための保護がされる。回答メッセージの暗号化のために暗号化アルゴリズムが使われる場合、その暗号化アルゴリズム（例えば、暗号化情報または暗号化鍵）は、暗号化鍵／証明書を保管する別個のもしくは外部のまたはその両方のサービスから読み出すことができる。但し、回答メッセージが暗号化されているかどうかにかかわらず、回答待ち行列ポリシーの動的な生成は、応答元モジュールとの関連で、回答待ち行列ポリシーの高度なプロビジョニングを必要とせずに、回答メッセージのランタイム管理を可能にすることに留意すべきである。さらに、依頼元側の動的データ保護モジュールおよび応答元側の動的データ保護モジュールが同一のホスト上で実行されている場合、同じ動的回答待ち行列ポリシーを、メッセージング相互作用の依頼元側および応答元側の双方で使用できることに留意すべきである。但し、それぞれの動的データ保護モジュールが相異なるホスト上で動作している場合、２つの整合するポリシーがあり得、一方は、応答元側の動的データ保護モジュールが回答メッセージを回答待ち行列に「ＰＵＴ」するのに使われ、他方は、依頼元側の動的データ保護モジュールがその回答メッセージを回答待ち行列から「ＧＥＴ」するのに使われる。
【００１２】
本説明の目的上、「ポリシー」は、特定のメッセージ待ち行列を介して暗号化メッセージを交換可能な特定のユーザまたはユーザ群を識別する構成の形態（例えば、データ項目、ファイル、メタデータなど）と見なすことができる。また、ポリシーには、それぞれの特定のユーザまたはユーザ群に向けられたメッセージに使用するための関連暗号化アルゴリズムを定めることも可能である。後記でさらなる詳細を説明するが、「動的回答待ち行列ポリシー」は、依頼メッセージに応じて、その依頼メッセージ内の情報、およびその依頼メッセージが回収された依頼待ち行列に関連する依頼メッセージポリシーを用いて、動的回答待ち行列と一緒に生成することができる。さらに、本説明が、便宜上、語句「動的回答待ち行列」と「回答待ち行列」とを互換的に用いていることに留意すべきである。但し、当然のことながら、ある特定の依頼−回答メッセージング相互作用に用いられる回答待ち行列は、所与の実装に応じ、その特定の依頼−回答メッセージング相互作用の間にそれに使うため動的に生成するか、もしくは回答待ち行列を既存の待ち行列のプールから選択してその特定の依頼−回答メッセージング相互作用に割り当てることができる。しかして、「動的回答待ち行列」という用語は、所与の実装に応じ、動的に生成された回答待ち行列を言うことも、もしくは動的に割り当て／選定された回答待ち行列を言うこともある。
【００１３】
さらに、暗号化は、所与の実装に適した任意の方式またはアルゴリズムとすることができる。当然ながら、多くの方式の暗号化が利用可能で、所与の実装に適した任意の暗号化法を用いることが可能である。例えば、デジタル証明書と公開および秘密証明書鍵とを用いる公開鍵基盤（ＰＫＩ：Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）技法を使うことができる。さらに、暗号化アルゴリズムを依頼メッセージ中に指定し、特定の暗号化アルゴリズムによる応答メッセージの暗号化を要求することができる。本主題の範囲から逸脱することなく、トリプル・データ暗号化アルゴリズム（Ｔｒｉｐｌｅ  ＤＥＳ：Ｔｒｉｐｌｅ  ｄａｔａ  ｅｎｃｒｙｐｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）、ＡＥＳ１２８（１２８ビット）、ＡＥＳ１９２（１９２ビット）、ＡＥＳ２５６（２５６ビット）などの高度暗号化標準（ＡＥＳ：ａｄｖａｎｃｅｄ  ｅｎｃｒｙｐｔｉｏｎ  ｓｔａｎｄａｒｄ）のバリエーション、リベスト暗号（ＲＣ２、ＲＣ４、ＲＣ５、ＲＣ６）といった暗号化アルゴリズム、および他の暗号化方式を用いることが可能である。
【００１４】
すべてのあり得る依頼元の証明書を、応答元が利用可能なように予め設定しておく必要性を省くために、依頼メッセージは、そのメッセージ内容の中に依頼元の公開鍵または証明書を含む。応答元は、依頼メッセージから依頼元の公開鍵を抽出し、それを使って保護された回答を作成することができる。
【００１５】
前述のように、依頼メッセージの送信元は、動的に生成された回答待ち行列ポリシーの中で唯一の受信先として識別される。但し、特定の実装においては、依頼待ち行列ポリシーに複数の潜在的送信元をリストすることが可能なことに留意すべきである。かかる任意の実装内において、特定の依頼メッセージの送信元は、その特定の依頼メッセージの内容を調べる、もしくはその依頼メッセージの発行に関連するユーザ（例えば、ユーザ識別子（ＩＤ：ｉｄｅｎｔｉｆｉｅｒ））を調べる、またはその両方を行うことによって識別ができ、動的に生成／割り当てされた回答待ち行列に対するデータ保護ポリシーの動的生成が容易化されて、一切の回答メッセージが、当初の依頼メッセージを発行した特定のユーザ・デバイスのために保護可能になる。
【００１６】
なお、本主題は、多様なシステム内に柔軟に実装が可能で、しかして、プラットフォーム非依存と見なすことができる。例えば、本主題は、本主題の範囲から逸脱することなく、メインフレーム・システム内、分散システム内、クライアント−サーバ・システム内、またはスタンドアローン・システム内に実装することが可能である。
【００１７】
しかして、依頼待ち行列および回答待ち行列は、依頼−回答メッセージング環境内で相互作用する各デバイスに関連付けることができる。かかる任意の実装において、本回答待ち行列ポリシーの動的な生成は、意図する回答待ち行列が依頼メッセージの発行時には未知である状況下において、リアルタイムでの回答待ち行列ポリシーの生成を提供する（例えば、回答待ち行列は、依頼メッセージに応じ、同様に動的に生成されるか、もしくはランタイムの間に利用可能な待ち行列のプールなどから指定／割り当てられる）。さらに、本回答待ち行列ポリシーの動的な生成は、意図する回答待ち行列が依頼メッセージの発行時に既知である状況下においても、リアルタイムでの回答待ち行列ポリシーの生成を提供する。
【００１８】
前述し後記でさらなる詳細を述べるように、データ保護サービスは、依頼および回答待ち行列にメッセージを「ＰＵＴ」する、およびこれからから「ＧＥＴ」する要求をインターセプトしてデータ保護ポリシーを適用する。動的なポリシー生成に関しては、依頼待ち行列にメッセージを「ＰＵＴ」する要求の検出に応じ、および、依頼待ち行列からメッセージを回収（例えば「ＧＥＴ」）する要求の検出を受けて、回答待ち行列に対するポリシーを動的に生成することができる。依頼メッセージの正当な受信先は、所与の実装に応じ、その特定の依頼メッセージに関連する依頼待ち行列ポリシーを用い、依頼メッセージを処理する要求に関連するユーザを識別するか、またはその依頼メッセージの内容を調べることによって判定が可能である。
【００１９】
依頼待ち行列にメッセージを「ＰＵＴ」する（例えば依頼元側からの）要求を受けての、回答待ち行列に対する動的ポリシーの生成に関しては、データ保護サービス／モジュールは、アプリケーションが依頼待ち行列に依頼メッセージを置く要求を発行したときこれを検出し、その特定のメッセージおよび同じ回答待ち行列へのその後の回答メッセージに対する、動的なデータ保護回答待ち行列ポリシーを生成する。これを行うため、データ保護サービスは、依頼待ち行列上に依頼メッセージを「ＰＵＴ」する要求が発生したことを検出するよう増強される。データ保護サービスは、依頼メッセージに応じ発行されることになる回答メッセージに対し意図された回答待ち行列を識別する。データ保護サービスは、回答待ち行列の名前に基づき動的なデータ保護ポリシーを生成し、動的に生成された回答待ち行列ポリシーを当該回答待ち行列に関連付けし（なお、再言するが回答待ち行列も動的に生成可能である）、依頼待ち行列ポリシー中に識別された依頼メッセージの受信先は、動的回答待ち行列ポリシー中の正当な送信元となり、依頼待ち行列ポリシー中に識別された依頼メッセージの送信元は、動的回答待ち行列ポリシーにおいて唯一の受信先となり、依頼待ち行列ポリシー中の任意のアルゴリズム仕様は、データ保護（例えば、暗号化）目的のため動的回答待ち行列ポリシーにコピーすることができる。送信元の公開鍵または証明書は、依頼元側の動的データ保護サービスによって依頼メッセージ内に（例えば、内容もしくはペイロードまたはその両方の一部として）含めることができ、メッセージング相互作用の応答元側で、依頼メッセージから生成された動的回答待ち行列ポリシーの中に組み込むことができる。応答元側の動的データ保護モジュールは、メッセージング相互作用の応答元側で動的に生成された回答待ち行列ポリシー内に格納された公開鍵または証明書を用いて、特定の依頼元モジュールのために回答メッセージを暗号化することができる。さらに、前述したように、この公開鍵または証明書は、所与の実装に応じ、随意的に、依頼元モジュールの暗号化情報を保管する（依頼元側の動的データ保護モジュールがアクセス可能な）暗号化鍵サービスから読み出すことができ、あるいはメッセージング相互作用の依頼元側で、動的に生成された回答待ち行列ポリシーに暗号化情報を書き加えることもできる。しかして、本主題の範囲から逸脱することなく、メッセージング相互作用の依頼元側で動的に生成された回答待ち行列ポリシーに、公開鍵または証明書を書き加えることが可能である。このように、メッセージング相互作用の依頼元側のデータ保護サービスは、暗号化鍵サービスを介して、もしくはメッセージング相互作用の依頼元側の動的に生成された回答待ち行列ポリシー内に格納された暗号化情報を介して識別された暗号化鍵を用いて、依頼元モジュールのために応答メッセージを解読することができる。
【００２０】
依頼待ち行列からメッセージを「ＧＥＴ」する（例えば応答元側からの）要求を受けての、回答待ち行列に対する動的ポリシーの生成に関しては、データ保護サービス／モジュールは、アプリケーションが依頼待ち行列から依頼メッセージを回収する要求を発行したときこれを検出し、その特定のメッセージ、および同じ回答待ち行列を識別するその後の依頼メッセージに対する、動的なデータ保護回答待ち行列ポリシーを生成する。これを行うため、データ保護サービスは、依頼待ち行列から依頼メッセージを「ＧＥＴ」する要求が発生したことを検出するように増強される。データ保護サービスは、その依頼メッセージに応じ発行されることになる回答メッセージに対する意図された回答待ち行列を識別する。データ保護サービスは、回答待ち行列の名前に基づき動的なデータ保護ポリシーを生成し、動的に生成された回答待ち行列ポリシーを回答待ち行列に関連付け（なお、再言するが回答待ち行列も動的に生成可能である）、依頼待ち行列ポリシー中に識別された依頼メッセージの受信先は、動的回答待ち行列ポリシー中の正当な送信元となり、依頼待ち行列ポリシー中に識別された（または依頼メッセージの内容中に識別された）依頼メッセージの送信元は、動的回答待ち行列ポリシーにおいて唯一の受信先となる（なお、依頼メッセージ内容からユーザ詳細／情報を抽出することによって、依頼の回収側で送信元を判定することができる）。但し、応答元側において、依頼待ち行列ポリシーよりむしろ依頼メッセージ内で任意のアルゴリズム仕様が識別可能で、データ保護目的（例えば、暗号化）のため、このアルゴリズム仕様を動的回答待ち行列ポリシーにコピーすることが可能なことに留意すべきである。このように、依頼メッセージ中の送信元の公開鍵または証明書は、動的回答待ち行列ポリシーに組み込むことができ、依頼メッセージの受信に先立って応答元側で設定しておく必要はない。しかして、応答元側のデータ保護サービスは、特定の実装に応じ、回答メッセージを待ち行列マネージャに渡す前、あるいはメッセージを回答待ち行列上に置く前に、特定の依頼先に対する回答メッセージを暗号化することができる。
【００２１】
本主題は、依頼−回答メッセージ待ち行列作成シナリオに関連する、データ保護パラダイムの拡張、および依頼待ち行列ポリシーの諸要素および依頼メッセージの内容に基づいて（動的に生成されるかまたはその他の）回答待ち行列に対するデータ保護ポリシーを動的に生成することによるデータ保護サービスの向上を提供する。本主題は、公開鍵の詳細が、依頼メッセージ内容から抽出され、特定の依頼メッセージに対する回答メッセージを生成するため使用されるのを可能にすることでデータ保護のパラダイムをさらに拡張し、これにより、メッセージ応答元デバイスが使用するため、依頼元が公開鍵または証明書データを予め設定しておく必要性を省くものである。
【００２２】
なお、本事例では、実際の回答待ち行列の動的な生成を用いているが、本明細書で説明する動的回答待ち行列ポリシーの生成は、本主題の範囲を逸脱することなく、静的に生成された回答待ち行列と併せ用いることも可能である。
【００２３】
なお、本主題の構想は、データ保護に関連した、動的メッセージ待ち行列処理に関わるある種の限界の認識から得られたものである。例えば、動的待ち行列には、それらが生成されたときに、動的に生成された名前を付けることができる。データ保護ポリシーを結び付ける回答待ち行列の名前がないので、回答待ち行列の名前は前もっては分からず、メッセージ待ち行列に対して特定的にデータ保護ポリシーを事前設定することはできない。しかして、かかる動的に生成された回答待ち行列に対し、データ保護ポリシーを前もって用いておくことはできない。前述し後記でさらなる詳細を述べるように、本主題は、受信された依頼メッセージに応じ動的回答待ち行列ポリシーの生成を可能にすることによって、依頼−回答メッセージ待ち行列環境内におけるデータ保護を改良する。しかして、回答待ち行列に対するポリシーの動的生成を介して、改良された動的メッセージ待ち行列処理およびデータ保護を得ることができ、これには回答メッセージ待ち行列自体の動的な生成をさらに含めることができる。さらに、メッセージングの前に依頼元デバイスのデジタル証明書を設定する必要がなく、これにより、依頼−回答メッセージ待ち行列環境内における設定の複雑さが軽減される。
【００２４】
本明細書で説明する、依頼−回答メッセージ待ち行列作成環境内における動的データ保護ポリシーは、リアルタイムで実施でき、依頼−回答メッセージ待ち行列作成環境内においてデータ保護能力のある回答メッセージ待ち行列の迅速な生成を可能にする。本説明の目的上、リアルタイムは、説明された本主題のユーザが受容可能な情報処理のために妥当な応答時間を提供する、十分に短い持続時間の任意の時間枠を含むものとする。さらに、本用語「リアルタイム」は、一般に、説明された本主題のユーザが受容可能なオンデマンド情報処理のために妥当な応答時間を提供する、十分に短い持続時間の任意の時間枠（例えば、一秒内または数秒内）を意味する、通常「ほぼリアルタイム」と称するものも含むこととする。これらの用語は、正確に定義するのは困難であるが、当業者には良く理解していよう。
【００２５】
可能ないくつもの本主題の物理的実装があり、本明細書の事例は、特定のアーキテクチャ領域に関連する実装についての詳細を提供していることにさらに留意すべきである。しかしながら、本主題の実装のためのアーキテクチャの他の多くの可能なバリエーションがあり得、それらすべては本主題の範囲内と見なされる。
【００２６】
図１は、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーのためのシステム１００の実装の一例のブロック図である。コンピューティング・デバイス＿１（１０２）、コンピューティング・デバイス＿２（１０４）〜コンピューティング・デバイス＿Ｎ（１０６）は、ネットワーク１０８を介してサーバ＿１（１１０）〜サーバ＿Ｍ（１１２）と通信している。なお、図１の構成は、可能な実装の一例であり、前述のように、システム実装の多くのバリエーションがあり得る。また一方、本事例の明瞭化のため、システム１００内の一切のデバイスは、他の一切のデバイスに対しローカルにまたはリモートに動作可能なものとしてよい。さらに、ローカルに実行されているとき、それぞれのローカル・デバイスの間に介在するクロスネットワークはないものとする。
【００２７】
図２〜図６に関連して後記にさらなる詳細を説明するように、コンピューティング・デバイス＿１（１０２）〜コンピューティング・デバイス＿Ｎ（１０６）およびサーバ＿１（１１０）〜サーバ＿Ｍ（１１２）は、所与の実装に応じ、依頼−回答メッセージ待ち行列作成環境内における自動生成の動的データ保護ポリシーを提供することができる。しかして、複数のデバイスが、依頼−回答メッセージ待ち行列作成環境内における自動生成の動的データ保護ポリシーを協働して提供することもでき、あるいは単独のデバイスが、依頼−回答メッセージ待ち行列作成環境内における自動生成の動的データ保護ポリシーを提供することもできる。
【００２８】
依頼−回答メッセージ待ち行列作成環境内における自動生成の動的データ保護ポリシーは、依頼元デバイス／アプリケーションと応答元デバイス／アプリケーションとの間を結び付けるデータ保護サービス／モジュールによって促進される。また、待ち行列マネージャ・アプリケーションも、データ保護サービス／モジュールの指示に従って待ち行列管理の機能を処理することができる。本発明の説明の簡明化のため、本明細書では、このデータ保護サービス／モジュールをデータ保護モジュールと称することがある。当然ながら、所与の実装に応じ、本主題を実装するために、一つまたは複数のデータ保護モジュールを用いることが可能である。同様に、本明細書の簡明化のため、依頼元デバイス／モジュール／アプリケーションおよび応答元デバイス／モジュール／アプリケーションを依頼元モジュールおよび応答元モジュールと称することがある。但し、当然ながら、一つまたは複数の依頼元アプリケーションまたは応答元アプリケーションを、任意の特定のデバイスに関連付けることができる。さらに、後記でさらなる詳細を述べるように、依頼元モジュールまたは応答元モジュールは、完全にハードウェアに実装されるだけでなく、それぞれのアプリケーションは、一つまたは複数のプロセッサによって実行されるアプリケーションとすることも可能である。
【００２９】
依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーは、応答／回答待ち行列に対するポリシーの生成を容易化し、これら待ち行列は、依頼メッセージの開始または依頼メッセージの受信に応じて動的に生成または割り当てされる。依頼メッセージの開始に応じての動的回答待ち行列ポリシーの生成に関しては、依頼元アプリケーションに対するデータ保護モジュールによって、依頼元モジュールにより開始された依頼メッセージに対する「ＰＵＴ」要求をインターセプトすることが可能で、所与の実装に応じ、依頼メッセージの内容または依頼待ち行列ポリシー（あるいはそれらの組合せ）に基づいて、動的回答待ち行列ポリシーを生成することができる。反対に、依頼メッセージの受信に応じての動的回答待ち行列ポリシー生成に関しては、依頼メッセージに対する応答元モジュールからの「ＧＥＴ」要求は、応答元アプリケーションに対するデータ保護モジュールによってインターセプトすることができ、これも所与の実装に応じ、依頼メッセージの内容または依頼待ち行列ポリシー（あるいはそれらの組合せ）に基づいて、動的回答待ち行列ポリシーを生成することができる。
【００３０】
なお、コンピューティング・デバイス＿１（１０２）〜コンピューティング・デバイス＿Ｎ（１０６）もしくはサーバ＿１（１１０）〜サーバ＿Ｍ（１１２）またはこれらの両方は、航空機、列車、自動車、または他の移動車両など、それぞれのデバイスを異なる場所に移動するユーザの能力により、もしくはそれぞれのデバイスの携帯プラットフォームとの関連により、携帯コンピューティング・デバイスであり得る。また、前述し後記でさらなる詳細を述べるように、コンピューティング・デバイス＿１（１０２）〜コンピューティング・デバイス＿Ｎ（１０６）およびサーバ＿１（１１０）〜サーバ＿Ｍ（１１２）は、情報を処理する能力のある任意のコンピューティング・デバイスであり得ることに留意すべきである。例えば、それぞれのコンピューティング・デバイスのいずれにも、メインフレーム・コンピュータ、コンピューティング・デバイスの分散ネットワーク内の分散型コンピューティング・デバイス、パーソナル・コンピュータ（例、デスクトップ、ラップトップなど）またはハンドヘルド・デバイス（例、携帯電話、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、ｅメール・デバイス、音楽レコーディングもしくは再生デバイスなど）、あるいは、後記でさらなる詳細を述べるような、情報処理能力のある任意の他のデバイスを含めることができる。
【００３１】
ネットワーク１０８には、それぞれイントラネットまたはインターネットなどのプライベートもしくはパブリック・ネットワーク、直接モジュール間相互接続、ダイヤルアップ、無線、または個別のデバイスを相互接続する能力のある任意の他の相互接続メカニズムなど、使用目的に適した任意の形態の相互接続を含めることができる。
【００３２】
サーバ＿１（１１０）〜サーバ＿Ｍ（１１２）には、コンピューティング・デバイス＿１（１０２）〜コンピューティング・デバイス＿Ｎなどのデバイスが、ネットワーク１０８などのネットワークを介して使用するデータを供給する能力のある任意のデバイスを含めることができる。例えば、サーバ＿１（１１０）〜サーバ＿Ｍ（１１２）は、所与の実装に応じ、各々、ウェブ・サーバ、アプリケーション・サーバ、または他のデータ・サーバ・デバイスを表し得る。
【００３３】
図２は、依頼−回答メッセージ待ち行列作成環境内で自動生成の動的データ保護ポリシーを実施する能力のあるコア処理モジュール２００の実装の一例のブロック図である。コア処理モジュール２００は、所与の実装に応じ、コンピューティング・デバイス＿１（１０２）〜コンピューティング・デバイス＿Ｎ（１０６）もしくはサーバ＿１（１１０）〜サーバ＿Ｍ（１１２）またはその両方のどれにも関連付けることができる。さらに、コア処理モジュール２００は、後記でさらなる詳細を述べるように、各々の実装と関連して、動的に割り当てられもしくは生成されたまたはその両方による回答待ち行列に対する、動的回答待ち行列ポリシーの生成のための各種の補完的な処理を提供することができる。コア処理モジュール２００は、依頼−回答メッセージ待ち行列作成環境内で自動生成の動的データ保護ポリシーを実施する能力を有する。中央処理装置（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）２０２は、コア処理モジュール２００内で、コンピュータ命令の実行、計算、および他の機能を提供する。ディスプレイ２０４は、コア処理モジュール２００のユーザに視覚情報を提供し、入力デバイス２０６は、ユーザに入力機能を提供する。
【００３４】
ディスプレイ２０４には、ブラウン管（ＣＲＴ：ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ）、液晶ディスプレイ（ＬＣＤ：ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）、発光ダイオード（ＬＥＤ：ｌｉｇｈｔ  ｅｍｉｔｔｉｎｇ  ｄｉｏｄｅ）、電子インク・ディスプレイ、投写装置、タッチスクリーン、または他のディスプレイ・エレメントもしくはパネルなど、任意のディスプレイ・デバイスを含めることができる。入力デバイス２０６は、コンピュータ・キーボード、キーパッド、マウス、ペン、ジョイスティック、または、ユーザがディスプレイ２０４上の情報とやり取り、応答することのできる任意の他の入力デバイスを含み得る。
【００３５】
なお、ある実装については、ディスプレイ２０４および入力デバイス２０６が、コア処理モジュール２００に対して随意的なコンポーネントであり得ることを示すために、図２内ではこれらを点線表現を使って表している。すなわち、コア処理モジュール２００は、ユーザの直接的設定操作性またはフィードバックのない完全に自動化された内蔵デバイスとして動作させることができる。但し、コア処理モジュール２００は、それぞれ、ディスプレイ２０４および入力デバイス２０６を介して、ユーザへのフィードバックおよびユーザの設定操作性を提供することも可能である。
【００３６】
通信モジュール２０８は、コア処理モジュール２００が、コンピューティング・デバイス＿１（１０２）〜コンピューティング・デバイス＿Ｎ（１０６）、およびサーバ＿１（１１０）〜サーバ＿Ｍ（１１２）など、システム１００内の他のモジュールと通信し、本明細書に述べられた、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーを実施することを可能にする相互接続機能を提供する。通信モジュール２０８には、この相互接続機能を提供するために使用可能な、任意の電子的、プロトコル、およびプロトコル変換機能を含めることができる。通信モジュール２０８は、図示および説明の簡明化のためにコンポーネント・レベルのモジュールとして描かれているが、前述し後記でさらなる詳細を述べるように、通信モジュール２０８は、通信モジュール２０８の機能を実行するために使われる任意のハードウェア、プログラムされたプロセッサ（群）およびメモリを含み得ることに留意すべきである。例えば、通信モジュール２０８には、通信モジュール２０８に関わる通信および電子的制御アクティビティを実施するため、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、プロセッサ、アンテナもしくはディスクリート集積回路および部品またはこれらの組み合わせの形で、追加のコントローラ回路を含めることができる。加えて、通信モジュール２０８には、必要に応じ、インタラプトレベル、スタックレベル、およびアプリケーションレベルのモジュールを含めることも可能である。さらに、通信モジュール２０８には、通信モジュール２０８に関わる処理アクティビティを実施するための、ストレージ、実行、およびデータ処理に使われる任意のメモリ・コンポーネントを含めることができる。また、通信モジュール２０８は、本主題の範囲から逸脱することなく表された他の回路の一部を形成することも可能である。
【００３７】
メモリ２１０は、動的待ち行列ストレージ領域２１２、動的待ち行列マネジメント・ストレージ領域２１４、およびアプリケーション領域２１６を含む。前述し後記でさらなる詳細を述べるように、動的待ち行列領域２１２は、一つ以上の依頼待ち行列、および一つ以上の動的に割り当てられたまたは動的に生成された依頼待ち行列を含み得る。但し、メモリ２１０は、ストレージ・デバイスの一般的実装を表しており、例えば、ハード・ディスクまたは他のデバイスなど、本明細書で説明したデータを保存する能力のある任意の適切なデバイスの使用が可能なことに留意すべきである。動的待ち行列マネジメント・ストレージ領域２１４は、依頼メッセージに応じて生成された動的回答待ち行列ポリシーなどの情報、および所与の実装に応じ、他の情報を格納する。アプリケーション領域２１６は、一つ以上の依頼元アプリケーションもしくは一つ以上の応答元アプリケーションまたはその両方など、一つ以上のアプリケーションのための保存および実行スペースを表す。
【００３８】
当然ながら、メモリ２１０には、必要に応じて分散またはローカライズされた、使用目的に適した揮発性または不揮発性のメモリの任意の組み合わせを含めることができ、図示の簡明化のため本例中に示されていない他のメモリ・セグメントを含めることが可能である。例えば、メモリ２１０には、本主題の範囲から逸脱することなく、コード・ストレージ領域、オペレーティング・システム・ストレージ領域、コード実行領域、およびデータ領域を含めることができる。
【００３９】
待ち行列マネージャ・モジュール２１８は、前述し後記でさらなる詳細を述べるように、コア処理モジュール２００のために、動的待ち行列ストレージ領域２１２中に格納された待ち行列へのメッセージの載置および待ち行列からの回収など、待ち行列マネジメント処理を提供する。動的データ保護モジュール２２０も示されている。動的データ保護モジュール２２０は、コア処理モジュール２００の依頼−回答メッセージ待ち行列作成環境内における自動生成の動的データ保護ポリシーを実装する。動的データ保護モジュール２２０は、アプリケーション領域２１６内でローカルにまたは別のデバイスでリモートに実行されていてよい、一つ以上の依頼元アプリケーションからの、依頼メッセージなどのメッセージングをインターセプトする。動的データ保護モジュール２２０は、送信元デバイスに安全な仕方で応答メッセージを直接配信するために用いられる動的回答待ち行列ポリシーを生成する。動的データ保護モジュール２２０は、後記でもさらなる詳細を説明するように、特定の依頼メッセージ（群）の内容と、特定の送信元および対象となる受信先／応答元と、依頼待ち行列ポリシーとに基づいて、動的回答待ち行列ポリシーを生成する。
【００４０】
図２中で、待ち行列マネージャ／動的データ保護モジュール２２２が点線表現によって示されていることにさらに留意すべきである。待ち行列マネージャ／動的データ保護モジュール２２２は、待ち行列マネージャ・モジュール２１８および動的データ保護モジュール２２０の両方を含んで示され、所与の実装に応じ、待ち行列マネージャ・モジュール２１８と動的データ保護モジュール２２０とが単一のモジュール内に実装できることを示すために、点線表現によって表されている。
【００４１】
待ち行列マネージャ・モジュール２１８および動的データ保護モジュール２２０は（同様に、待ち行列マネージャ／動的データ保護モジュール２２２も）図示および説明の簡明化のためにコンポーネント・レベルのモジュールとして描かれているが、前述し後記でさらなる詳細を述べるように、それぞれのモジュールは、これらモジュールのそれぞれの機能を実行するために使われる任意のハードウェア、プログラムされたプロセッサ（群）およびメモリを含み得ることに留意すべきである。例えば、これらのモジュールには、それぞれのデバイスに関わる通信および電子的制御を実施するため、特定用途向け集積回路（ＡＳＩＣ）、プロセッサ、もしくはディスクリート集積回路および部品またはこれらの組み合わせの形で、追加のコントローラ回路を含めることができる。加えて、これらのモジュールには、必要に応じ、インタラプトレベル、スタックレベル、およびアプリケーションレベルのモジュールを含めることも可能である。さらに、これらのモジュールには、それぞれのモジュールに関わる処理アクティビティを実施するための、ストレージ、実行、およびデータ処理に使われる任意のメモリ・コンポーネントを含めることができる。
【００４２】
また、待ち行列マネージャ２１８および動的データ保護モジュール２２０は（同様に、待ち行列マネージャ／動的データ保護モジュール２２２も）、本主題の範囲から逸脱することなく表された他の回路の一部を形成することも可能である。さらに、これらのモジュールは、別の方法として、メモリ２１０内に保存されるアプリケーションとして実装することもできる。かかる実装において、これらのモジュールには、本明細書で説明する機能を実施するためＣＰＵ２０２に実行される命令を含めることができる。ＣＰＵ２０２は、これらの命令を実行し、コア処理モジュール２００のための、前述し後記でさらなる詳細を述べる処理機能を提供することができる。これらのモジュールは、本主題の範囲から逸脱することなく、割り込みサービスルーチン（ＩＳＲ：ｉｎｔｅｒｒｕｐｔ  ｓｅｒｖｉｃｅ  ｒｏｕｔｉｎｅ）の一部、オペレーティング・システムの一部、ブラウザ・アプリケーションの一部、または別個のアプリケーションの一部を形成することが可能である。
【００４３】
ＣＰＵ２０２、ディスプレイ２０４、入力デバイス２０６、通信モジュール２０８、メモリ２１０、待ち行列マネージャ・モジュール２１８、動的データ保護モジュール２２０、および待ち行列マネージャ／動的データ保護モジュール２２２は、相互接続２２４を介して相互接続される。相互接続２２４は、システム・バス、ネットワーク、またはそれぞれのコンポーネントにそれぞれの用途のため適切な相互接続を提供する能力のある任意の他の相互接続を含み得る。
【００４４】
コア処理モジュール２００は、述べられた特定のコンポーネントを備え保有するように表されているが、本主題の範囲を逸脱することなく、他のモジュールおよびコンポーネントをコア処理モジュール２００と関連付けることができる。さらに、図示の簡明化のために、コア処理モジュール２００が単一のデバイスとして表されているが、本主題の範囲を逸脱することなく、コア処理モジュール２００内のコンポーネントを並行して配置、または分散配置してネットワークを介し相互接続することも可能である。分散型配置については、ディスプレイ２０４および入力デバイス２０６は、販売地点のデバイス、キオスク、または他の場所に配置することができ、一方、ＣＰＵ２０２およびメモリ２１０はローカルまたはリモートのサーバに配置することができる。コア処理モジュール２００のコンポーネントに対し、多くの他の可能な配置があり得、それらのすべては本主題の範囲内にあると見なされる。このように、コア処理モジュール２００は、多くの形態を取り得、多くのプラットフォームに関連付けることができる。
【００４５】
図３は、依頼元および応答元双方の視点からの依頼待ち行列ポリシーに基づく動的回答待ち行列ポリシーの生成を表す、メッセージング相互作用３００の実装の一例の論理ブロック図である。論理ブロック図として、図２のコア処理モジュール２００の例示的アーキテクチャへの、図３のそれぞれのコンポーネントのマッピングの詳細については、前述したコア処理モジュール２００の詳細を再吟味することによって理解できよう。図３の図面内容の混雑を避けるため、これらの詳細は図３から省かれている。さらに、待ち行列マネージャ２１８などの別個の待ち行列マネージャ・モジュールも、図３の図面内容の混雑を避けるため省かれている。但し、当然ながら、メッセージの待ち行列への載置およびこれらからの回収を処理するための待ち行列マネージャ・モジュール機能およびこれらの待ち行列は、例えば、前述の動的待ち行列ストレージ領域２１２など、一つ以上の動的待ち行列ストレージ領域内に保存することができる。さらに、動的データ保護モジュール２２０などのデータ保護モジュールは、一つ以上の動的データ保護モジュールとして実装することが可能である。ポリシーは、依頼待ち行列ポリシーおよび動的に生成された回答待ち行列ポリシーを含め、例えば、動的待ち行列マネジメント・ストレージ領域２１４など、一つ以上の動的待ち行列マネジメント・ストレージ領域中に格納することができる。かかる任意のコンポーネントを一つより多く含む任意の実装に対し、これら複数のコンポーネントは、一つ以上のデバイス内に、しかして一つ以上のコア処理モジュール２００内に実装することが可能である。本明細書では、実装のかなりの数のバリエーションを考慮して、簡明化のため、いずれか特定のアーキテクチャへの図３のコンポーネントのマッピングの詳細は省略されており、これらは、所与の任意の実装に応じ、本明細書の説明に基づいて変えることができる。
【００４６】
図３を参照すると、動的回答待ち行列ポリシーによるメッセージング実装内の依頼−回答オペレーションにおいて、依頼元（ユーザ＿１）３０２が応答元（ユーザ＿Ａ）３０４と相互作用している。動的データ保護モジュール３０６は、依頼元（ユーザ＿１）３０２から送信されるメッセージングを暗号化し、依頼元（ユーザ＿１）３０２が受信するメッセージングを解読することによって、依頼元（ユーザ＿１）３０２に対してデータおよびメッセージの保護をする。さらに、動的データ保護モジュール３０６は、後記でさらなる詳細を説明するように、依頼元（ユーザ＿１）３０２に対する動的回答待ち行列ポリシーを生成する。
【００４７】
動的データ保護モジュール３０８は、応答元（ユーザ＿Ａ）３０４が受信するメッセージングを解読し、応答元（ユーザ＿Ａ）３０４から送信されるメッセージングを暗号化することによって、応答元（ユーザ＿Ａ）３０４に対してメッセージの保護をする。さらに、動的データ保護モジュール３０８は、後記でさらなる詳細を説明するように、応答元（ユーザ＿Ａ）３０４に対する動的回答待ち行列ポリシーを生成する。
【００４８】
メッセージング相互作用３００の論理フローは、依頼元（ユーザ＿１）３０２が、図３中の論理フロー・ポイント（１）（例、「（１）ＰＵＴ（依頼）」）で、依頼メッセージに対する「ＰＵＴ」を開始することで始まる。この依頼メッセージは、依頼待ち行列３１０に対する静的依頼待ち行列の名前を含む。依頼待ち行列３１０は、メッセージング相互作用の依頼元側に、関連依頼待ち行列ポリシー３１２を有する。依頼待ち行列ポリシー３１２は、依頼メッセージの送信元を、依頼元（ユーザ＿１）３０２を表す「ユーザ＿１」として識別し、潜在的応答元を、応答元（ユーザ＿Ａ）３０４を表す「ユーザ＿Ａ」としてリストし、図面内容の混雑の面から図３内に図示されていないデバイス／アプリケーションである「ユーザ＿Ｂ」をリストする。しかして、応答元（ユーザ＿Ａ）３０４は潜在的受信先であり、この例では、当該依頼メッセージの応答元である。なお、送信元の身元は、依頼元アプリケーションに関連する、オペレーティング・システムが割り当てたユーザ識別子（ＩＤ：ｉｄｅｎｔｉｆｉｅｒ）を検証することによって識別が可能である。しかして、この識別子は、依頼待ち行列ポリシー３１２内で利用可能で抽出できることもあり、それらをできないこともある。さらに、依頼待ち行列ポリシー３１２は、複数の正当な送信元に対応が可能である。かかる状況で、依頼元アプリケーションに関連付けられた関連ユーザＩＤを使って、正当な依頼元アプリケーションのどれが、その特定の依頼メッセージを発行したのかを判定することができる。
【００４９】
図３中の論理フロー・ポイント（１）（例、（１）ＰＵＴ（依頼））の依頼元（ユーザ＿１）３０２による依頼メッセージに対する「ＰＵＴ」要求を受けて、動的データ保護モジュール３０６は、依頼メッセージおよび依頼待ち行列ポリシー３１２を解析し、適切な生成対象の動的回答待ち行列ポリシーを決定する。動的データ保護モジュール３０６は、回答メッセージに対し生成または割り当てされることになる回答待ち行列に対し、「ＡＬＰＨＡ」の回答待ち行列の名前を割り当て、依頼元（ユーザ＿１）３０２の暗号化鍵を識別する。なお、この回答待ち行列の名前は依頼メッセージの中で提供される。しかして、依頼元アプリケーションは、待ち行列マネージャ（もしくは、動的データ保護モジュールと待ち行列マネージャ・モジュールとの組み合わせ）が、メッセージング相互作用に先立って回答待ち行列を生成するように要求することができる。依頼メッセージ生成の過程で、依頼元モジュールは、さきほどの名前を依頼メッセージに加えることができる。これに換えて、依頼元モジュールは、依頼メッセージ中に所定の回答待ち行列の名前を用いることも可能である。回答待ち行列を命名するための他のやり方もあり、これらのすべては本主題の範囲内にあると見なされる。
【００５０】
図３中の論理フロー・ポイント（２）で、動的データ保護モジュール３０６は依頼元側の動的回答待ち行列ポリシー３１４を生成する。依頼元側の動的回答待ち行列ポリシー３１４は、回答メッセージに対して生成または割り当てされることになる回答待ち行列に対し意図された回答待ち行列の名前「ＡＬＰＨＡ」と、応答メッセージの正当な送信元（例、ユーザ＿Ａおよびユーザ＿Ｂ）と、依頼元（ユーザ＿１）３０２を表す応答メッセージの受信先「ユーザ＿１」とを含む。
【００５１】
なお、動的データ保護モジュール３０６は、依頼待ち行列ポリシー３１２の「送信元」フィールドと「受信先」フィールドと（例、それぞれ、ユーザ＿１およびユーザ＿Ａ、ユーザ＿Ｂ）を交換し、依頼元側の動的回答待ち行列ポリシー３１４の「送信元」および「受信先」フィールド（例、それぞれ、ユーザ＿Ａ、ユーザ＿Ｂおよびユーザ＿１）を形成することができる。しかして、依頼元側の動的回答待ち行列ポリシー３１４の送信元および受信先フィールドを生成するために用いる情報は、既存の依頼待ち行列ポリシー３１２から得ることが可能である。
【００５２】
なお、回答待ち行列の名前「ＡＬＰＨＡ」は、依頼元（ユーザ＿１）３０２によって依頼メッセージに加えられている。動的データ保護モジュール３０６は、依頼待ち行列ポリシー３１２中で識別された受信先／応答元（例、ユーザ＿Ａおよびユーザ＿Ｂ）に対する暗号化鍵を読み出す。前述のように、暗号化鍵の読み出しは、暗号化鍵／証明書を保管している外部サービスに要求して行うことができる。但し、暗号化鍵が依頼待ち行列ポリシー３１２の一部である必要はないこと（だが、これらを随意的に含めることは可能）と、受信先の名前が依頼待ち行列ポリシー３１２の一部であり、これらの名前がリストされた任意の受信先に対する適切な鍵／証明書を得るために用いられることとに留意すべきである。依頼元アプリケーション／モジュールは、これらが依頼メッセージを「ＰＵＴ」するための使用に選択する依頼待ち行列の名前を「知っている」ように構成することができる。依頼元アプリケーション／モジュールは、それぞれの待ち行列マネージャに、特定の依頼待ち行列に依頼メッセージを「ＰＵＴ」するよう伝え、応答元アプリケーション／モジュールは、それぞれの待ち行列マネージャに、それぞれの回答待ち行列に応答メッセージを「ＰＵＴ」するよう告げる。待ち行列マネージャは、依頼メッセージを指定された依頼待ち行列に、回答メッセージを指定された回答待ち行列に置く。動的データ保護モジュール３０６（および３０８）がこれらの要求をインターセプトすることができるように、動的データ保護モジュール３０６（および３０８）は、それぞれ、各自の依頼元または応答元アプリケーションと待ち行列マネージャとの間に位置している。これにより、動的データ保護モジュール３０６（および３０８）がランタイムの間に「オン・ザ・フライ」で暗号化および解読を行うことが可能になる。依頼元アプリケーションは、待ち行列マネージャに、所与の実装に応じ、依頼待ち行列名を「作り出す」か、あるいは特定の名前を使うよう要求することができる。「作り出された」名前がアプローチに用いられる場合、待ち行列マネージャは、アプリケーションにそれが「作り出した」名前を告げる。依頼元アプリケーションは、それを受けて、その後回答メッセージを得る際にその名前を使用する。動的データ保護モジュール３０６は、それぞれの正当な応答元のそれぞれの受信先の暗号化鍵を用いて、各正当な応答元に対する依頼メッセージのペイロードを暗号化する。動的データ保護モジュール３０６は、依頼待ち行列３１０上への載置のため、依頼メッセージを待ち行列マネージャ（図３には示さず）に提出する。待ち行列マネージャは、図３中の論理フロー・ポイント（３）（例、（３）依頼（回答待ち行列の名前：「ＡＬＰＨＡ」および送信元暗号化鍵））で、修正された依頼メッセージを依頼待ち行列３１０上に置く。
【００５３】
しかして、依頼メッセージは、この時点で、応答メッセージに対し生成または割り当てされることになる意図する回答待ち行列の名前を含み、メッセージの特定の送信元の暗号化鍵を含む。こうして、意図された応答元群（例、ユーザ＿Ａおよびユーザ＿Ｂ）のいずれかによって生成された応答メッセージは、本例中では依頼元（ユーザ＿１）３０２である、特定の依頼しているデバイスのために暗号化することが可能になる。
【００５４】
前述のように、当然ながら、多くの暗号化方式が利用可能であり、所与の実装に応じ、任意の暗号化法を用いることができる。例えば、デジタル証明書と公開および秘密証明書鍵とを用いる公開鍵基盤（ＰＫＩ）技法を使用することができる。さらに、依頼メッセージ中で暗号化アルゴリズムを指定し、あるいは、このアルゴリズムを依頼待ち行列ポリシーの一部として形成し、随意的に、動的に生成された回答待ち行列ポリシーにコピーし、指定された暗号化アルゴリズムによる応答メッセージの暗号化を要求することが可能である。本主題の範囲から逸脱することなく、トリプル・データ暗号化アルゴリズム（Ｔｒｉｐｌｅ  ＤＥＳ）、ＡＥＳ１２８（１２８ビット）、ＡＥＳ１９２（１９２ビット）、ＡＥＳ２５６（２５６ビット）などの高度暗号化標準（ＡＥＳ）、リベスト暗号（ＲＣ２、ＲＣ４、ＲＣ５、ＲＣ６）といった暗号化アルゴリズム、および他の暗号化方式を用いることができる。
【００５５】
また、依頼待ち行列３１０は、メッセージング相互作用の応答元側にも関連する依頼待ち行列ポリシー３１６を有する。なお、依頼元と応答元とが同じホスト上で実行されている場合、依頼待ち行列ポリシー３１２と依頼待ち行列ポリシー３１６とを同一のポリシーにすることができる。依頼待ち行列ポリシー３１２と同様に、依頼待ち行列ポリシー３１６は、依頼メッセージの送信元を、依頼元（ユーザ＿１）３０２を表す「ユーザ＿１」として識別し、潜在的応答元を、応答元（ユーザ＿Ａ）３０４を表す「ユーザ＿Ａ」としてリストし、図面内容の混雑の面から図３内に図示されていないデバイス／アプリケーションである「ユーザ＿Ｂ」をリストする。しかして、依頼待ち行列ポリシー３１６も、応答元（ユーザ＿Ａ）３０４を潜在的受信先として、この例では、当該依頼メッセージの応答元として識別する。
【００５６】
図３中の論理フロー・ポイント（４）（例、「（４）ＧＥＴ（依頼）」）で、応答元（ユーザ＿Ａ）３０４による依頼メッセージの「ＧＥＴ」要求を受けて、動的データ保護モジュール３０８は、依頼メッセージおよび依頼待ち行列ポリシー３１６を解析し、適切な生成対象の動的回答待ち行列ポリシーを決定する。動的データ保護モジュール３０８は、回答メッセージのため生成または割り当てされることになる回答待ち行列に対し、依頼メッセージから回答待ち行列の名前（例、「ＡＬＰＨＡ」）を割り当て、依頼メッセージ中の依頼元（ユーザ＿１）３０２の暗号化鍵を識別する。動的データ保護モジュール３０８は、待ち行列マネージャ（図示せず）に対し名前「ＡＬＰＨＡ」を有する待ち行列の生成を命令し、図３中の論理フロー・ポイント（５）で、予定の回答メッセージに対して、回答待ち行列「ＡＬＰＨＡ」３１８が生成または割り当てされる。本説明の目的の上で、回答待ち行列「ＡＬＰＦＡ」３１８は、これを動的に生成するか、もしくは、予期される回答メッセージに関連して使用するため利用可能な待ち行列のプールから動的に割り当てることができるという点で、動的回答待ち行列と見なすことができる。
【００５７】
依頼元側の動的回答待ち行列ポリシー３１４を生成する依頼元側の処理と同様に、動的データ保護モジュール３０８は、図３中の論理フロー・ポイント（６）で、応答元側の動的回答待ち行列ポリシー３２０を生成する。なお、依頼元と応答元とが同一のホスト上で動作している場合、依頼元側の動的回答待ち行列ポリシー３１４と応答元側の動的回答待ち行列ポリシー３２０とを同一のポリシーとすることが可能である。かかる実装において、応答元側ポリシーを生成する代わりに、単一の動的回答待ち行列ポリシーを追加の送信元鍵情報を使って更新することができる。応答元側の動的回答待ち行列ポリシー３２０は、回答メッセージのために生成または割り当てされた回答待ち行列に対する回答待ち行列の名前「ＡＬＰＨＡ」と、応答メッセージの正当な送信元（例、ユーザ＿Ａおよびユーザ＿Ｂ）と、依頼元（ユーザ＿１）３０２を表す応答メッセージの受信先「ユーザ＿１」と、依頼メッセージ中に含まれていた依頼元（ユーザ＿１）３０２の暗号化鍵と、を含む。
【００５８】
なお、動的データ保護モジュール３０８は、依頼待ち行列ポリシー３１６の「送信元」フィールドと「受信先」フィールドと（例、それぞれ、ユーザ＿１およびユーザ＿Ａ、ユーザ＿Ｂ）を交換し、応答元側の動的回答待ち行列ポリシー３２０の「送信元」および「受信先」フィールド（例、それぞれ、ユーザ＿Ａ、ユーザ＿Ｂおよびユーザ＿１）を形成することができる。しかして、応答元側の動的回答待ち行列ポリシー３２０の送信元および受信先フィールドを生成するために用いる情報は、既存の依頼待ち行列ポリシー３１６から得ることが可能である。
【００５９】
動的データ保護モジュール３０８は、依頼待ち行列ポリシー３１６中の、応答元（ユーザ＿Ａ）３０４に対する解読鍵を識別し、応答元（ユーザ＿Ａ）３０４の識別された暗号化鍵を使ってこの特定の正当な応答元のために暗号化された依頼メッセージのペイロードを解読する。前述のように、解読鍵は、応答元モジュールのユーザＩＤを用いて、暗号化鍵を保管しているサービスから取得することができる。これに換えて、所与の実装に応じ、それぞれの依頼待ち行列ポリシー内に暗号化情報を格納しておくことも可能である。動的データ保護モジュール３０８は、解読されたメッセージを処理のため応答元（ユーザ＿Ａ）３０４に提供する。
【００６０】
依頼メッセージの処理の完了に応じ、応答元（ユーザ＿Ａ）３０４は、図３中の論理フロー・ポイント（７）（例、「（７）ＰＵＴ（回答）」）で、応答メッセージに対する「ＰＵＴ」要求を開始する。動的データ保護モジュール３０８は、応答元側の動的回答待ち行列ポリシー３２０を解析し、応答メッセージの意図された受信先（例、依頼元（ユーザ＿１）３０２）、意図された受信先の暗号化鍵、およびこの特定のメッセージング相互作用のため生成された回答待ち行列「ＡＬＰＦＡ」３１８を識別する。
【００６１】
また、動的データ保護モジュール３０８は、応答元（ユーザ＿Ａ）３０４が、依頼メッセージに対する正当な応答元であることを検証する。応答元（ユーザ＿Ａ）３０４が、依頼メッセージに対する正当な応答元であれば、動的データ保護モジュール３０８は、依頼元（ユーザ＿１）３０２に対する応答メッセージを暗号化し、図３中の論理フロー・ポイント（８）（例、（８）回答（送信元暗号化鍵を使って暗号化））で、暗号化されたメッセージを回答待ち行列「ＡＬＰＨＡ」３１８への載置のため、それを待ち行列マネージャ（図示せず）に提出する。
【００６２】
図３中の論理フロー・ポイント（９）（例、「（９）ＧＥＴ（回答）」）で、応答メッセージに対する依頼元（ユーザ＿１）３０２による「ＧＥＴ」要求を受けて、動的データ保護モジュール３０６は、依頼元側の動的回答待ち行列ポリシー３１４を解析し、当初の依頼メッセージに対するすべての正当な応答元を識別する。また、動的データ保護モジュール３０６は、当初の依頼元（例、依頼元（ユーザ＿１）３０２）の暗号化鍵も識別する。動的データ保護モジュール３０６は、依頼メッセージ自体の中の依頼元の暗号化情報にアクセスするか、もしくは依頼メッセージ自体とは別個に依頼元の暗号化情報にアクセスを行うことができる。動的データ保護モジュール３０６は、応答元が正当な応答元で、依頼元側の動的回答待ち行列ポリシー３１４中にリストされているかどうかを判定する。応答元が正当な応答元としてリストされていれば、動的データ保護モジュール３０６は、依頼元（ユーザ＿１）３０２に対する応答メッセージを、当初依頼元の暗号化鍵を使って解読し、その応答メッセージを依頼元（ユーザ＿１）３０２に提供する。
【００６３】
なお、依頼元側の動的回答待ち行列ポリシー３１４および応答元側の動的回答待ち行列ポリシー３２０は、メッセージング相互作用が完了次第、削除することができ、メモリは、他のアプリケーション／処理またはメッセージング用途への使用のために返却することができる。さらに、回答待ち行列「ＡＬＰＨＡ」３１８は、所与の実装に応じ、削除または利用可能な待ち行列のプールに返却することが可能である。
【００６４】
このように、動的データ保護モジュール３０６および動的データ保護モジュール３０８の各々は、依頼メッセージに応じて動的回答待ち行列ポリシーの生成を提供する。前述のように、回答待ち行列は、依頼メッセージに基づいて、回答メッセージを処理するために動的に生成するかあるいは利用可能な待ち行列のプールから割り当て／命名することができる。さらに、暗号化鍵は、依頼メッセージとともに転送することが可能で、特定の依頼を行うエンティティのために動的に回答メッセージを暗号化することができ、応答元は、あり得るすべての依頼元に対する暗号化鍵を備えておく必要はない。しかして、動的データ保護モジュール３０６および動的データ保護モジュール３０８の各々は、依頼−回答メッセージ待ち行列作成環境内における自動生成の動的データ保護ポリシーを提供する。
【００６５】
以降の図４〜図６は、本主題に関連する依頼−回答メッセージ待ち行列作成環境内で自動生成の動的データ保護ポリシーを実施するため、コア処理モジュール２００などのデバイスによって実行できる、例示的なプロセスを表す。本例示のプロセスに対する多くの他のバリエーションが可能であり、それらのすべては本主題の範囲内と見なされる。これらの例示的プロセスは、動的データ保護モジュール２２０などのモジュールによって実施するか、もしくはかかるデバイスに関連付けられたＣＰＵ２０２によって実行するか、またはこれらの両方によって行うことができる。なお、説明を分かり易くするため、以下に記載の例示プロセス中には、タイム・アウト手順および他のエラー制御手順は示されていない。但し、当然ながら、かかるすべての手順は本主題の範囲内にあると見なされる。
【００６６】
図４は、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーに対するプロセス４００の実装の一例のフローチャートである。判定ポイント４０２で、プロセス４００は、動的データ保護モジュールにおいて、依頼−回答メッセージング環境内の依頼待ち行列を介し、依頼メッセージを処理する要求を検出する。ブロック４０４で、プロセス４００は、依頼待ち行列の依頼待ち行列ポリシーを使って、依頼メッセージへの応答メッセージの少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを識別する。ブロック４０６で、プロセス４００は、応答メッセージの識別された少なくとも一つの正当な送信元モジュールおよび唯一の正当な受信先モジュールを用いて、応答メッセージを処理するための回答待ち行列ポリシーを動的に生成する。ブロック４０８で、プロセス４００は、この動的に生成された回答待ち行列ポリシーを回答待ち行列と関連付ける。ブロック４１０で、プロセス４００は、応答メッセージを処理する要求を受けて、動的に生成された回答待ち行列ポリシーおよび関連する回答待ち行列を用いて応答メッセージを処理する。
【００６７】
図５〜図６は、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーに対するプロセス５００の実装の一例のフローチャートを示す。図５は、プロセス５００内の初めの処理を示す。判定ポイント５０２で、プロセス５００は、依頼−回答メッセージング環境内の依頼待ち行列を介して依頼メッセージを処理せよとの要求が、検出されたかどうかの判定を行う。前述のように、依頼待ち行列を介して依頼メッセージを処理する要求は、依頼を生成した依頼元モジュールからの「ＰＵＴ」要求、または依頼に応答しようとする応答元モジュールからの「ＧＥＴ」要求を含み得る。しかして、図５〜図６に関連して説明する処理は、図３に関連して前述した動的データ保護モジュール３０６または動的データ保護モジュール３０８など、依頼元もしくは応答元のデータ保護モジュールに関連付けることができる。
【００６８】
依頼待ち行列を介して依頼メッセージを処理する要求が検出されたと判定するのに応じ、プロセス５００は、ブロック５０４で、その要求に関連する依頼待ち行列を識別する。なお、所与の実装に応じ、依頼メッセージに依頼待ち行列の名前を含めることもでき、あるいはデータ保護モジュールがその依頼をある依頼待ち行列に割り当てることも可能である。
【００６９】
ブロック５０６で、プロセス５００は、識別された依頼待ち行列に関連する依頼待ち行列ポリシーを識別する。ブロック５０８で、プロセス５００は、依頼待ち行列ポリシーの中で、回答メッセージの正当な送信元モジュールとして一つ以上の応答元を識別する。ブロック５１０で、プロセス５００は、依頼メッセージへの回答メッセージの唯一の正当な受信先モジュールとして、依頼メッセージの依頼元モジュールを識別し、この識別は依頼メッセージの解析もしくは依頼待ち行列ポリシーによって行うことができる。ブロック５１２で、プロセス５００は、応答メッセージの識別された少なくとも一つの正当な送信元モジュールおよび正当な唯一の受信先モジュールを用いて、回答メッセージを処理するための回答待ち行列ポリシーを動的に生成する。前述のように、データ保護モジュールは、依頼待ち行列ポリシーの受信先フィールドと送信元フィールドとを交換し、動的に生成される回答待ち行列ポリシーの対応する送信元および受信先フィールドを生成することができる。動的データ保護モジュールは、識別された依頼元モジュールを、動的に生成された回答待ち行列ポリシーの受信先データ・フィールド中の唯一の正当な受信先モジュールとして指定することができ、識別された応答元モジュール（群）を、動的に生成された回答待ち行列ポリシーの送信元データ・フィールド中の正当な送信元モジュール（群）として指定することができる。
【００７０】
ブロック５１４で、プロセス５００は、暗号化鍵など、依頼元モジュールの暗号化情報を識別する。なお、メッセージ・トランザクションの依頼元側でこの処理が行われる場合、その動的データ保護モジュールは、依頼メッセージ自体の中で依頼元の暗号化情報にアクセスできるか、もしくは依頼メッセージ自体とは別個に依頼元の暗号化情報にアクセスすることができる。
【００７１】
あるいは、メッセージ・トランザクションの応答元側で処理が行われる場合、依頼メッセージを解析することができ、依頼元モジュールの暗号化情報をそのメッセージのペイロードの中に含めておくことができる。ブロック５１６で、プロセス５００は、依頼元の暗号化情報を応答元側の動的回答待ち行列ポリシー３２０に加える。但し、本例には、依頼元の暗号化情報を、メッセージング相互作用の依頼元側の動的に生成された回答待ち行列ポリシーに書き加えることは含まれていないが、これは限定と見なすべきではない。というのは、上記に換えて、本主題の範囲から逸脱することなく、依頼元側の動的回答待ち行列ポリシー３１４を使って暗号化情報を保存することもできるからである。
【００７２】
ブロック５１８で、プロセス５００は、応答メッセージに対して意図された回答待ち行列の名前を識別する。前の説明と同様に、メッセージ・トランザクションの依頼元側で処理が行われる場合、その動的データ保護モジュールが回答待ち行列の名前を自律的に生成するかまたは選択することができ、あるいは、依頼メッセージ自体に回答待ち行列に対する名前を含めておくことができる。あるいは、メッセージ・トランザクションの応答元側でこの処理が行われる場合、依頼メッセージを解析することが可能で、意図される回答待ち行列に対する名前をそのメッセージ自体に含めておくことができる。ブロック５２０で、プロセス５００は、意図される回答待ち行列の名前を、動的に生成された回答待ち行列ポリシーに関連付ける。
【００７３】
判定ポイント５２２で、プロセス５００は、回答待ち行列を生成するかどうかの決定を行う。前述のように、回答待ち行列は、ランタイムの間に生成するか、あるいは利用可能な回答待ち行列のプールから選択することができ、動的に命名して回答メッセージとの関連付けを形成することができる。しかして、回答待ち行列を生成すると決定したのに応じ、ブロック５２４で、プロセス５００は回答待ち行列を生成する。なお、回答待ち行列の生成には、動的に生成された待ち行列ポリシーを用いて、回答メッセージを処理するための回答待ち行列を生成することを含めることができる。回答待ち行列を生成しないと決定したのに応じ、プロセス５００は、ブロック５２６で、意図された回答待ち行列の名前を、ある既存の待ち行列に関連付ける。なお、本例は、回答待ち行列が生成される実装について、実際上の問題としてさまざまなプロセス実装を説明することを意図しているが、依頼元は、依頼メッセージを「ＰＵＴ」した後すぐに回答待ち行列から応答を「ＧＥＴ」しようと試みることが多いので、応答メッセージの処理を促進するために、回答待ち行列を依頼元側に生成することも可能である。さらに、前述のように、ランタイムの効率を向上するため、依頼元モジュールは、待ち行列マネージャに対し、該モジュールが依頼メッセージをＰＵＴする前に回答待ち行列を生成することを要求し、依頼メッセージにデータ・フィールドとして回答待ち行列の名前を含めることができる。しかして、本例のプロセス５００中の回答待ち行列生成の設定は例示のためのものであり、処理のシーケンスに対する限定ではない。プロセス５００に関連して説明した処理に対し多くのバリエーションが可能であり、それらのすべては本主題の範囲内にあると見なされる。
【００７４】
判定ポイント５２８で、プロセス５００は、依頼メッセージを処理する要求が依頼元モジュールからの「ＰＵＴ」要求なのか、それとも応答元モジュールからの「ＧＥＴ」要求なのかの判定を行う。要求が「ＰＵＴ」要求であるとの判定に応じ、プロセス５００は、ブロック５３０で、依頼メッセージに回答待ち行列の名前と依頼元の暗号化情報（例、暗号化鍵）とを加える。ブロック５３２で、プロセス５００は、依頼メッセージを依頼待ち行列に転送する。前述のように、依頼待ち行列への依頼メッセージの転送は、依頼メッセージを待ち行列マネージャ・モジュールに転送することを含み得る。あるいは、待ち行列マネージャ・モジュールが動的データ保護モジュールと一体化している場合は、動的データ保護モジュールが依頼メッセージを依頼待ち行列に直接に置くことも可能である。
【００７５】
ブロック５３２で依頼メッセージを依頼待ち行列に転送するのに応じ、あるいは、判定ポイント５２８で、依頼メッセージを処理する要求が、依頼元モジュールからの「ＰＵＴ」要求でない（すなわち、要求は応答元モジュールからの「ＧＥＴ」要求である）との判定を行うのに応じ、プロセス５００は、図６に関連して示され、説明される処理に移行する。
【００７６】
図６は、依頼−回答メッセージ待ち行列作成環境内の自動生成の動的データ保護ポリシーに対する、プロセス５００に関連する追加の処理を示す。判定ポイント５３４で、プロセス５００は、応答メッセージを処理せよとの要求が検出されたかどうかの判定を行う。前述の依頼メッセージの場合と同様に、応答メッセージを処理する要求は、回答待ち行列への「ＰＵＴ」要求を生成した応答元モジュール、もしくは回答待ち行列からメッセージを回収する「ＧＥＴ」要求を生成した依頼元モジュールから受信し得る。
【００７７】
なお、動的データ保護モジュールは、複数の依頼／応答メッセージング相互作用を同時に管理することができる。応答メッセージを処理する要求に関わるそれぞれの回答待ち行列を識別する処理は、図面内の混雑を低減するために省略されている。但し、本主題の範囲から逸脱することなく、複数の依頼／応答メッセージング相互作用環境における実装に関連して、かかる処理を実施することができるのは言うまでもない。
【００７８】
判定ポイント５３４で、応答メッセージを処理する要求が検出されたと判定するのに応じ、プロセス５００は、ブロック５３６で、それぞれの応答メッセージに対する、動的に生成された回答待ち行列ポリシーを読み出す。ブロック５３８で、プロセス５００は、当初の依頼元モジュール（すなわち、受信先）に対する暗号化情報を読み出す。例えば、メッセージング相互作用の応答元側で、動的データ保護モジュール３０８は、動的に生成された回答待ち行列ポリシー３２０から暗号化情報（例、暗号化鍵）を抽出することができる。これに換えて、メッセージング相互作用の依頼元側で、動的データ保護モジュール３０６が、その構成の一部として、依頼元の暗号化情報にアクセス可能なようにすることもできる。
【００７９】
判定ポイント５４０で、プロセス５００は、応答元が、動的に生成された回答待ち行列ポリシーの正当な送信元データ・フィールド中に表された正当な応答元かどうかの判定を行う。しかして、プロセス５００がメッセージング相互作用の応答元側で行われるか依頼元側で行われるかに関係なく、プロセス５００は、動的に生成された回答待ち行列ポリシーを用いて、応答メッセージに関連する応答元モジュールが正当な応答元モジュールであることを検証する。
【００８０】
応答元モジュールが、動的に生成された回答待ち行列ポリシーによる正当な応答元モジュールでないと判定するのに応じ、プロセス５００は、ブロック５４２で、所与の実装に応じ、正当でない応答元モジュール、管理者、エラー・ロギング・システムへのエラー通知メッセージまたは別途によるなどして、エラー通知を生成する。判定ポイント５０２で、プロセス５００は、図５に関連させて前述した処理に戻り、前述の処理を反復する。
【００８１】
判定ポイント５４０の記述に戻って、応答元モジュールが、動的に生成された回答待ち行列ポリシーによる正当な応答元モジュールであると判定するのに応じ、プロセス５００は、判定ポイント５４４で、応答メッセージを処理する要求が、応答元モジュールからの「ＰＵＴ」要求なのか、または依頼元モジュールからの「ＧＥＴ」要求なのかの判定を行う。当該要求が、正当な応答元モジュールからの「ＰＵＴ」要求を含むと判定するのに応じ、プロセス５００は、ブロック５４６で、動的に生成された回答待ち行列ポリシーから得られた依頼元モジュールの暗号化情報（例、暗号化鍵）を使って、当初の依頼元モジュールに対する応答メッセージを暗号化する。
【００８２】
ブロック５４８で、プロセス５００は、暗号化応答メッセージを回答待ち行列に転送する。前述のように、回答待ち行列への応答メッセージの転送は、応答メッセージを待ち行列マネージャ・モジュールに転送することを含み得る。あるいは、待ち行列マネージャ・モジュールが動的データ保護モジュールと一体化している場合は、動的データ保護モジュールが応答メッセージを回答待ち行列に直接に置くことができる。
【００８３】
判定ポイント５４４の説明に戻って、当該要求が、当初の依頼元モジュールからの「ＧＥＴ」要求を含むと判定するのに応じ、プロセス５００は、ブロック５５０で、動的に生成された回答待ち行列ポリシーから、または動的に生成された回答待ち行列ポリシーの外部にある関連設定から得られた依頼元モジュールの暗号化情報（例、暗号化鍵）を使って、当初の依頼元モジュールに対する応答メッセージを解読する。ブロック５５２で、プロセス５００は、解読された応答メッセージを当初の依頼元モジュールに転送する。
【００８４】
ブロック５５２で、解読された応答メッセージを当初の依頼元モジュールに転送するのに応じ、または、ブロック５４８で応答メッセージを回答待ち行列に転送するのに応じ、プロセス５００は、ブロック５５４で、動的に生成された回答待ち行列ポリシーを削除する。しかして、動的に生成された回答待ち行列ポリシーは、それぞれの依頼メッセージに対する処理が完了すれば、メモリまたはストレージ・スペースを消費することはない。あるいは、動的に生成された回答待ち行列ポリシーを（例えば、その後のメッセージングに）さらに繰り返して使用する可能性があると判定された場合、動的に生成された回答待ち行列ポリシーは、現在の繰り返し処理の間は削除しないでおくことができ、あるいは、待ち行列のプールから割り当てられている場合には、現在の繰り返しの間は割り当て解除しないでおくことができ、一回以上のその後の繰り返し処理の過程で使用するために保存しておくことが可能である。なお、依頼元モジュールは、それがもはや回答待ち行列を必要としないことを、待ち行列マネージャに通知することができる。それぞれの動的データ保護モジュールは、この通知をインターセプトし、その時点で、クリーンアップ・オペレーションを実施し、動的に生成された回答待ち行列ポリシーを削除することが可能である。しかして、所与の実装に応じ、動的に生成された回答待ち行列ポリシーおよびそれぞれの回答待ち行列は複数の依頼および回答のために使用することができる。
【００８５】
判定ポイント５５６で、プロセス５００は、回答待ち行列を削除するかどうかの判定を行う。前述のように、回答待ち行列は、動的に生成される回答待ち行列ポリシーと一緒に動的に生成することができ、あるいは、利用可能な未割り当てのメッセージング待ち行列のプールまたは他のコレクションから、特定のメッセージング相互作用に割り当てることができる。しかして、回答待ち行列を削除する決定に応じて、プロセス５００は、ブロック５５８で、回答待ち行列を削除する。あるいは、回答待ち行列を削除しないとの決定に応じて、プロセス５００は、ブロック５６０で、回答待ち行列をそれぞれのメッセージング相互作用から割り当て解除し、割り当てた回答待ち行列の名前を回答待ち行列から除去し、しかしてそれぞれの待ち行列を利用可能な待ち行列のプールに返却する。あるいは、動的に生成された回答待ち行列がさらなる繰り返し処理（例、引き続きのメッセージング）に使用できると判定された場合には、動的に生成された回答待ち行列ポリシーを現在の繰り返し処理の間削除しないでおくことができ、または待ち行列のプールから割り当てられた場合にあっては、現在の繰り返しの間は割り当て解除せずにおくことができ、一回以上のその後の繰り返し処理の過程で使用するため保存しておくことも可能である。
【００８６】
ブロック５６０で、それぞれのメッセージング相互作用から回答待ち行列を割り当て解除し、割り当てた回答待ち行列の名前を回答待ち行列から除去するのに応じ、またはブロック５５８で回答待ち行列を削除するのに応じ、プロセス５００は、図５に関連させて前述した判定ポイント５０２の処理に戻り、前に説明した処理を繰り返す。
【００８７】
しかして、プロセス５００は、依頼元側の処理に対する依頼元モジュールからの、または応答元側の処理に対する応答元モジュールからの、依頼メッセージの処理要求を受けて、動的回答待ち行列ポリシーの動的な生成と回答待ち行列の生成もしくは割り当てとを提供する。動的に生成された回答待ち行列ポリシーを使って処理され、回答を行うモジュールの信ぴょう性が検証される。応答メッセージは、特定の依頼元モジュールのために、動的に生成された回答待ち行列ポリシーからの依頼元の暗号化情報を用いて暗号化され、依頼元側での処理のため回答待ち行列に転送される。応答メッセージは、特定の依頼元モジュールのために、動的に生成された回答待ち行列ポリシーからのまたは動的に生成された回答待ち行列ポリシーの外部にある関連設定からの依頼元の暗号化情報を用いて解読され、依頼元側での処理のため依頼元モジュールに転送される。再使用されない場合、動的に生成された回答待ち行列ポリシーは削除される。依頼メッセージ処理の完了に応じ、回答待ち行列は削除されるか、もしくは回答待ち行列を利用可能なメッセージ待ち行列のプールに返却することができる。あるいは、動的に生成された回答待ち行列ポリシーおよび回答待ち行列の両方は、依頼／回答サイクルのさらなる繰り返し処理が確認される場合には、削除せずにまたは割り当て解除せずにおくことができる。
【００８８】
図１〜図６に関連させて上記で説明したように、本例示的なシステムおよびプロセスは、依頼−回答メッセージ待ち行列作成環境内における自動生成の動的データ保護ポリシーを提供する。依頼−回答メッセージ待ち行列作成環境内における自動生成の動的データ保護ポリシーに関連する他の多くのバリエーションおよび追加的アクティビティが可能で、それらのすべては本主題の範囲内にあると見なされる。
【００８９】
当業者は、上記の教示を検討すれば、前述の例のあるものは、ＣＰＵ２０２などのプログラムされたプロセッサの使用に基づいていることを認識するであろう。しかしながら、本発明はかかる例示的な実施形態に限定されるものではない。というのは、特殊用途向けハードウェアもしくは専用プロセッサまたはその両方など、ハードウェア・コンポーネントの同等物を用いて、他の実施形態が実装できるであろうからである。同様に、汎用コンピュータ、マイクロプロセッサ・ベースのコンピュータ、マイクロコントローラ、光コンピュータ、アナログ・コンピュータ、専用プロセッサ、特定用途向け回路、もしくは専用ハードワイヤード・ロジックまたはこれらの組み合わせを用いて、別の同等な実施形態を構築することが可能である。
【００９０】
当業者ならよく理解できるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。従って、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態（ファームウエア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、ソフトウェア態様およびハードウェア態様を組み合わせた実施形態の形を取ることができ、これらは一般に本明細書ではすべて「回路」、「モジュール」、または「システム」と称することもある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが中に具現化されている一つ以上のコンピュータ可読媒体中に具現化されたコンピュータ・プログラム製品の形を取ることも可能である。
【００９１】
一つ以上のコンピュータ可読媒体の任意の組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のさらに具体的な例（非包括的リスト）には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙもしくはフラッシュ・メモリ）、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述の任意の適切な組み合わせが含まれよう。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスによってあるいはこれらに関連させて使用するためのプログラムを、包含または保存できる任意の有形媒体とすることができる。
【００９２】
コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現化されたコンピュータ可読プログラム・コードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組み合わせを含め、さまざまな形態の任意の形を取ることが可能である。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではないが、命令実行システム、装置、もしくはデバイスによってまたはこれらに関連させて使用するためのプログラムを通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。
【００９３】
コンピュータ可読媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、ＲＦなど、または前述の任意の適した組み合わせを含め、任意の適切な媒体を用
いて送信することができる。
【００９４】
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、“Ｃ”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。このプログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）または広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは（例えばインターネット・サービス・プロバイダを使いインターネットを介し）外部のコンピュータへの接続を行うこともできる。
【００９５】
本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本発明の態様を説明してきた。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することが可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／動作群を実装するための手段を生成するようにすることができる。
【００９６】
また、これらのコンピュータ・プログラム命令を、コンピュータまたは他のプログラム可能データ処理装置に対し特定の仕方で機能するよう命令することができるコンピュータ可読ストレージ媒体に保存し、そのコンピュータ可読ストレージ媒体に保存された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能／動作を実装する命令群を包含する製造品を生成するようにすることができる。
【００９７】
さらに、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、当該コンピュータ上、他のプログラム可能装置上、または他のデバイス上で一連のオペレーション・ステップを実行させて、コンピュータ実装されるプロセスを生成し、当該コンピュータ上または他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／動作群を実装するためのプロセスを提供するようにすることも可能である。
【００９８】
図面のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、規定の論理機能（群）を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図面に記載された順序を外れて行われ得ることに留意すべきである。例えば、連続して示された２つのブロックが、関与する機能によって実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する、特殊用途ハードウェア・ベースのシステム、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。
【００９９】
プログラム・コードを保存もしくは実行またはその両方を行うのに適したデータ処理システムには、システム・バスを介して直接的または間接的にメモリ・エレメントに連結された少なくとも一つのプロセッサが含まれよう。メモリ・エレメントには、プログラム・コードの実際の実行の過程で用いられるローカル・メモリ、大容量記憶装置、実行の過程で大容量記憶装置からコードを読み出さなければならない回数を低減するために少なくとも一部のプログラム・コードの一時的格納を提供するキャッシュ・メモリを含めることができる。
【０１００】
入力／出力もしくはＩ／Ｏデバイス（以下に限らないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む）は、直接にもしくは介在Ｉ／Ｏコントローラを介してシステムに連結することができる。
【０１０１】
また、ネットワーク・アダプタをシステムに連結して、データ処理システムが、介在するプライベートまたはパブリック・ネットワークを介して、他のデータ処理システムまたは遠隔のプリンタまたはストレージ・デバイスに連結することを可能にすることができる。モデム、ケーブル・モデム、およびイーサネット（Ｒ）カードは、現在利用可能なネットワーク・アダプタのごくわずかな例である。
【０１０２】
本明細書で使用する用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形「ある（“ａ”、“ａｎ”）」、および「該（“ｔｈｅ”）」は、文脈上明確に別途に示されていなければ、複数形も同じように含むことが意図されている。さらに、当然のことながら本明細書で用いられる「含む（“ｃｏｍｐｒｉｓｅ”）」もしくは「含んでいる（“ｃｏｍｐｒｉｓｉｎｇ”）」またはその両方は、述べられた機能、整数、ステップ、オペレーション、エレメント、もしくはコンポーネント、またはこれらの組み合わせの存在を特定するが、一つ以上の他の機能、整数、ステップ、オペレーション、エレメント、コンポーネント、もしくはこれらの群、または上記の組み合わせの存在を排除するものではない。
【０１０３】
添付の特許請求の範囲のミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクションの要素すべての、対応する構造、材料、動作および均等物は、具体的に請求された他の請求要素と組み合わせてその機能を実施するための、一切の構造、材料または動作を包含することが意図されている。本発明の記述は、例示および説明の目的で提示されたもので、網羅的であることも、または本発明を開示した形態に限定することも意図されていない。当業者には、本発明の範囲および趣旨から逸脱することのない多くの修改および変形が明白であろう。本実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな修改を加えたさまざまな実施形態に関して、本発明を理解できるように選択し説明されたものである。
【図１】
0005916852.tif 000002
【図２】
0005916852.tif 000003
【図３】
0005916852.tif 000004
【図４】
0005916852.tif 000005
【図５】
0005916852.tif 000006
【図６】
0005916852.tif 000007