(57)【要約】【課題】  コンピュータ・システムをキャッシュ汚染から保護するための新規なシステム及び方法を提供する。【解決手段】  コンピュータをキャッシュ汚染から保護することは、複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持するように構成された、キャッシュの各々がエンティティの中の別々の１つと関連付けられるキャッシュ−エンティティ・テーブルと、キャッシュ・マネージャとを含み、キャッシュ・マネージャは、エンティティのいずれかに関連付けられたデータを受け取り、受け取ったデータを、該エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかに格納し、かつ、エンティティのいずれかに関連付けられたデータ要求を受け取り、要求されたデータを、要求側エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかから取り出すように構成されており、キャッシュ−エンティティ・テーブル及びキャッシュ・マネージャのいずれも、コンピュータ・ハードウェア、及びコンピュータ可読媒体内に具体化されたコンピュータ・ソフトウェアのどちらかで実装される。【選択図】      図２
2013504798.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータをキャッシュ汚染から保護するためのシステムであって、
複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持するように構成された、前記キャッシュの各々が前記エンティティの別々の１つと関連付けられる、キャッシュ−エンティティ・テーブルと、
前記エンティティのいずれかに関連付けられたデータを受け取り、前記受け取ったデータを、前記エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかに格納し、かつ
前記エンティティのいずれかに関連付けられたデータ要求を受け取り、前記要求されたデータを、前記要求側エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかから取り出すように構成された、キャッシュ・マネージャと
を含み、前記キャッシュ−エンティティ・テーブル及び前記キャッシュ・マネージャのいずれも、コンピュータ・ハードウェア、及びコンピュータ可読媒体内に具体化されたコンピュータ・ソフトウェアのどちらかで実装される、システム。
【請求項２】
前記キャッシュ・マネージャに前記データのいずれかを提供するように構成されたデータ要求プロセッサをさらに含む、請求項１に記載のシステム。
【請求項３】
前記データ要求プロセッサは、前記エンティティのいずれかから前記データ要求を受け取り、前記要求されたデータが前記キャッシュのいずれかから入手できるかどうかを判断するために前記キャッシュ・マネージャに照会するように構成される、請求項２に記載のシステム。
【請求項４】
前記キャッシュ・マネージャは、少なくとも所定数の前記キャッシュ内に出現するいずれかのエントリを識別し、前記エントリを前記キャッシュからグローバル・キャッシュに移動させ、前記要求されたデータを前記グローバル・キャッシュから取り出すように構成される、請求項１に記載のシステム。
【請求項５】
コンピュータをキャッシュ汚染から保護するための方法であって、
複数のデータ・キャッシュと複数の前記エンティティとの間の複数の関連付けを保持し、前記キャッシュの各々が前記エンティティの中の別々の１つと関連付けられる、ステップと、
前記エンティティのいずれかに関連付けられたデータを受け取るステップと、
前記受け取ったデータを、前記エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかに格納するステップと、
前記エンティティのいずれかに関連付けられたデータ要求を受け取るステップと、
前記要求されたデータを、前記要求側エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかから取り出すステップと
を含む、方法。
【請求項６】
コンピュータをキャッシュ汚染から保護するための方法であって、
複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持し、前記キャッシュの各々が前記エンティティの中の別々の１つと関連付けられる、ステップと
前記エンティティのいずれかに関連付けられたデータを受け取るステップと、
前記受け取ったデータを、前記エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかに格納するステップと、
少なくとも所定数の前記キャッシュ内に出現するいずれかのエントリを識別するステップと、
前記エントリを、前記キャッシュからグローバル・キャッシュに移動させるステップと、
前記エンティティのいずれかに関連付けられたデータ要求を受け取るステップと、
前記要求されたデータが前記グローバル・キャッシュ内にある場合には、前記要求されたデータを前記グローバル・キャッシュから取り出すステップと、
前記要求されたデータが前記グローバル・キャッシュ内にない場合には、前記要求されたデータを、前記要求側エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかから取り出すステップと
を含む、方法。
【請求項７】
コンピュータをキャッシュ汚染から保護するためのコンピュータ・プログラム製品であって、
コンピュータ可読媒体と、
複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持し、前記キャッシュの各々が前記エンティティの中の別々の１つと関連付けられ、
前記エンティティのいずれかに関連付けられたデータを受け取り、
前記受け取ったデータを、前記エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかに格納し、
少なくとも所定数の前記キャッシュ内に出現するいずれかのエントリを識別し、
前記エントリを、前記キャッシュからグローバル・キャッシュに移動させ、
前記エンティティのいずれかに関連付けられたデータ要求を受け取り、
前記要求されたデータが前記グローバル・キャッシュ内にある場合には、前記要求されたデータを前記グローバル・キャッシュから取り出し、
前記要求されたデータが前記グローバル・キャッシュ内にない場合には、前記要求されたデータを、前記要求側エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかから取り出すように動作する
コンピュータ・プログラム命令と
を含み、前記プログラム命令が前記コンピュータ可読媒体上に格納される、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはコンピュータのセキュリティに関し、より具体的には、コンピュータをキャッシュ汚染から保護することに関する。
【背景技術】
【０００２】
多くのコンピュータ・システムは、その性能を向上させるために、迅速なアクセスを提供する一時記憶領域内に頻繁にアクセスされるデータの複製が格納されるキャッシング機構を用いており、これにより、この機構を用いなければデータをその元の場所から頻繁に取り出すことにかかるアクセス時間及び／又はコストを削減する。例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）プロキシとして機能するコンピュータは、ネットワーク・トラフィックを減らして待ち時間を改善するためにウェブ・ページをキャッシュし、ネットワーク・デバイスの名前をそれらの数値的なインターネット・プロトコル（ＩＰ）にマッピングするドメイン・ネーム・システム（ＤＮＳ）リゾルバとして機能するコンピュータは、同じ理由から、デバイス名−アドレス・マッピングをキャッシュする。
【０００３】
しかしながら、キャッシュを用いるコンピュータは、偽造エントリをキャッシュ内に導入しようと試みるキャッシュ汚染として知られる種類の攻撃に対して脆弱である。例えば、ＤＮＳキャッシュ汚染では、ネットワーク・デバイスとそのＩＰアドレスとの間のキャッシュされたマッピングが、攻撃者によって供給されたＩＰアドレスを表示するように改ざんされ、その場所は、コンピュータ・ワーム又はコンピュータ・ウィルスのような悪意のあるコンテンツを含むことが多い。その後にネットワーク・デバイスのアドレスを要求するクライアントは、クライアントを悪意のあるコンテンツに潜在的にさらす、間違ったアドレスを与えられる。残念ながら、コンピュータが多数のクライアントによって共有されるキャッシュを保持する場合、キャッシュ汚染のたった一つの事例が、多くの犠牲者を陥れる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、それらの実施形態において、コンピュータ・システムをキャッシュ汚染から保護するための新規なシステム及び方法を開示する。
【課題を解決するための手段】
【０００５】
本発明の１つの態様において、コンピュータをキャッシュ汚染から保護するためのシステムが提供され、該システムは、複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持するように構成された、キャッシュの各々がエンティティの中の別々の１つと関連付けられる、キャッシュ−エンティティ・テーブルと、エンティティのいずれかに関連付けられたデータを受け取り、受け取ったデータを、該エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかに格納し、かつ、エンティティのいずれかに関連付けられたデータ要求を受け取り、要求されたデータを、要求側エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかから取り出すように構成されたキャッシュ・マネージャと含み、キャッシュ−エンティティ・テーブル及びキャッシュ・マネージャのいずれも、コンピュータ・ハードウェア、及びコンピュータ可読媒体内に具体化されたコンピュータ・ソフトウェアのどちらかで実装される。
【０００６】
本発明の別の態様において、システムは、キャッシュ・マネージャにデータのいずれかを提供するように構成されたデータ要求プロセッサをさらに含む。
【０００７】
本発明の別の態様において、データ要求プロセッサは、エンティティのいずれかからデータ要求を受け取り、要求されたデータがキャッシュのいずれかから入手できるかどうかを判断するために、キャッシュ・マネージャに照会するように構成される。
【０００８】
本発明の別の態様において、キャッシュ・マネージャは、少なくとも所定数のキャッシュ内に出現するいずれかのエントリを識別し、そのエントリをキャッシュからグローバル・キャッシュに移動させ、要求されたデータをグローバル・キャッシュから取り出すように構成される。
【０００９】
本発明の別の態様において、コンピュータをキャッシュ汚染から保護するための方法が提供され、該方法は、複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持し、キャッシュの各々がエンティティの中の別々の１つと関連付けられる、ステップと、エンティティのいずれかに関連付けられたデータを受け取るステップと、受け取ったデータを、該エンティティと関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかに格納するステップと、エンティティのいずれかに関連付けられたデータ要求を受け取るステップと、要求されたデータを、要求側エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかから取り出すステップとを含む。
【００１０】
本発明の別の態様において、コンピュータをキャッシュ汚染から保護するための方法が提供され、該方法は、複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持し、キャッシュの各々がエンティティの中の別々の１つと関連付けられる、ステップと、エンティティのいずれかに関連付けられたデータを受け取るステップと、受け取ったデータを、該エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかに格納するステップと、少なくとも所定数のキャッシュ内に出現するいずれかのエントリを識別するステップと、該エントリをキャッシュからグローバル・キャッシュに移動させるステップと、エンティティのいずれかに関連付けられたデータ要求を受け取るステップと、要求されたデータがグローバル・キャッシュ内にある場合には、要求されたデータをグローバル・キャッシュから取り出すステップと、要求されたデータがグローバル・キャッシュ内にない場合には、要求されたデータを、要求側エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかから取り出すステップとを含む。
【００１１】
本発明の別の態様において、コンピュータをキャッシュ汚染から保護するためのコンピュータ・プログラム製品が提供され、コンピュータ・プログラム製品は、コンピュータ可読媒体と、複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持し、キャッシュの各々がエンティティの中の別々の１つと関連付けられ、エンティティのいずれかに関連付けられるデータを受け取り、受け取ったデータを、該エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかに格納し、少なくとも所定数のキャッシュ内に出現するいずれかのエントリを識別し、該エントリをキャッシュからグローバル・キャッシュに移動させ、エンティティのいずれかに関連付けられたデータ要求を受け取り、要求されたデータがグローバル・キャッシュ内にある場合には、要求されたデータをグローバル・キャッシュから取り出し、要求されたデータがグローバル・キャッシュ内にない場合には、要求されたデータを、要求側エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示すキャッシュのいずれかから取り出すように動作するコンピュータ・プログラム命令とを含み、プログラム命令は、コンピュータ可読媒体上に格納される。
【００１２】
本発明は、添付の図面と関連して記述される以下の詳細な説明から、より完全に理解され認識されるであろう。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に従って構築され動作する、キャッシュ汚染から保護するためのシステムの簡略化された概念図である。
【図２】本発明の実施形態に従って動作する図１のシステムの動作の例示的な方法の簡略化されたフローチャート図である。
【図３】本発明の実施形態に従って構築され動作する、キャッシュ汚染から保護するためのシステムの簡略化された概念図である。
【図４】本発明の実施形態に従って動作する図３のシステムの動作の例示的な方法の簡略化されたフローチャート図である。
【図５】本発明の実施形態に従って動作する図３のシステムの動作の例示的な方法の簡略化されたフローチャート図である。
【図６】本発明の実施形態に従って動作する図３のシステムの動作の例示的な方法の簡略化されたフローチャート図である。
【図７】本発明の実施形態に従って構築され動作する、コンピュータ・システムの例示的なハードウェア実装の簡略化されたブロック図である。
【発明を実施するための形態】
【００１４】
本発明は、ここで、１つ又は複数の実施形態との関連において説明されるが、この説明は、本発明を全体として例証することを意図するものであり、本発明を示される実施形態に限定するものとして解釈されるべきではない。本明細書において具体的に示されないが、それにもかかわらず本発明の範囲内である種々の修正は、当業者であれば想到し得ることが認識される。
【００１５】
当業者により認識されるように、本発明は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができ、これらはすべて、本明細書において、一般的に「回路」、「モジュール」又は「システム」と呼ばれることがある。さらに、本発明は、媒体内に具体化されたコンピュータ使用可能プログラム・コードを有する任意の有形の表現媒体内に具体化されたコンピュータ・プログラム製品の形態をとることができる。
【００１６】
１つ又は複数のコンピュータ使用可能媒体又はコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ使用可能媒体又はコンピュータ可読媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線又は半導体のシステム、装置、デバイス又は伝搬媒体とすることができるが、これらに限定されない。コンピュータ可読媒体のより具体的な例（非網羅的なリスト）は、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク型読み出し専用メモリ（ＣＤＲＯＭ）、光記憶装置、インターネット若しくはイントラネットをサポートするような伝送媒体、又は磁気記憶装置を含む。プログラムが印刷された紙又は別の適切な媒体でさえも、そのプログラムを例えば、その紙又は他の媒体の光学的走査によって電子的にキャプチャし、次に、必要に応じて、コンパイルし、解釈し、又はそれ以外の適切な方式で処理し、その後、コンピュータ・メモリ内に格納することができるので、コンピュータ使用可能媒体又はコンピュータ可読媒体は、プログラムが印刷された紙又は別の適切な媒体とすることさえできることに留意されたい。本明細書の文脈においては、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置若しくはデバイスによって、又はこれらと関連して用いるためのプログラムを収容し、格納し、伝達し、伝搬し又は輸送することができる任意の媒体とすることができる。コンピュータ使用可能媒体は、ベースバンド内又は搬送波の一部としてのどちらかで、具体化されたコンピュータ使用可能プログラム・コードを有する、伝搬されるデータ信号を含むことができる。コンピュータ使用可能プログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦ等を含むがこれらに限定されない、いずれかの適切な媒体を用いて伝送することができる。
【００１７】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語のいずれかの組み合わせで記述することができる。プログラム・コードは、全体がユーザのコンピュータ上で実行される場合もあり、独立したソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの（例えば、インターネット・サービス・プロバイダを用いるインターネットを通じた）接続がなされる場合もある。
【００１８】
本発明を、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して以下で説明する。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組合せは、コンピュータ・プログラム命令によって実装することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するための手段を作り出すようにすることができる。
【００１９】
これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能データ処理装置に特定の方式で機能するよう指示することができるコンピュータ可読媒体内に格納して、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令手段を含む製品を製造するようにさせることもできる。
【００２０】
コンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能データ処理装置上にロードして、コンピュータ又は他のプログラム可能装置上でコンピュータ実装プロセスを生成するための一連の動作ステップを実施させ、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するためのプロセスを提供するようにさせることもできる。
【００２１】
ここで、本発明の実施形態に従って構築され動作する、コンピュータをキャッシュ汚染から保護するためのシステムの簡略化された概念図である図１を参照する。図１のシステムにおいて、キャッシュ・マネージャ１００は、多数のキャッシュ１０２、１０４及び１０６を管理する。説明の目的で３つのキャッシュ１０２、１０４及び１０６のみが示されているが、キャッシュ・マネージャ１００は、任意の数のキャッシュを管理することができる。キャッシュ１０２、１０４及び１０６は、全てが同じ種類のデータを含むように構成され、例えば、キャッシュ１０２、１０４及び１０６の各々が、ＤＮＳアドレス・マッピング、ウェブ・ページ、又はキャッシュすることができるその他の公知の種類のデータを格納するように構成される。キャッシュ・マネージャ１００は、本明細書において別段の断りがない限り、従来のキャッシュ管理技術に従ってキャッシュ１０２、１０４及び１０６の各々を管理する。キャッシュ・マネージャ１００はさらに、データ記憶装置上のキャッシュ−エンティティ・テーブル１０８内にキャッシュ１０２、１０４及び１０６の各々とエンティティとの間の関連付けを保持するように構成され、ここで、エンティティは、コンピュータ・ユーザ、クライアント・コンピュータ、クライアント・ソフトウェア・アプリケーション、ネットワーク、又はその他のあらゆる識別可能なキャッシュ・データのコンジット、供給者若しくは受信者、又はこのようなコンジット、供給者若しくは受信者のあらゆるグループとすることができる。どの２つのキャッシュも、同じエンティティと関連付けられないことが好ましい。
【００２２】
データ要求プロセッサ１１０は、エンティティからのデータ要求を受け取り、要求されたデータをキャッシュから入手できるかどうかを判断するために、キャッシュ・マネージャ１００に照会する。キャッシュ・マネージャ１００は、要求側エンティティを識別し、キャッシュ１０２、１０４及び１０６のいずれかがそのエンティティと関連付けられているかどうかを判断し、要求されたデータを、エンティティと関連付けられているキャッシュから取り出すことができるかどうかを判断し、要求されたデータをキャッシュから取り出すとすぐ、データ要求プロセッサ１１０は、取り出されたデータをエンティティに提供する。要求されたデータがキャッシュから入手できない場合には、データ要求プロセッサ１１０は、従来技術に従って要求を処理する。例えば、データ要求がインターネット・ドメインに関連付けられたインターネット・プロトコル（ＩＰ）アドレスに関するものであり、そのアドレスがキャッシュから入手できない場合は、データ要求プロセッサ１１０は、ドメイン・ネーム・サービス（ＤＮＳ）アドレス検索を実行して、ドメインのＩＰアドレスを判断することが好ましい。データ要求プロセッサ１１０は、次に、図２を参照して後述されるように、アドレスをエンティティに提供し、同様に、キャッシングのためにキャッシュ・マネージャ１００に提供する。
【００２３】
キャッシュ１０２、１０４及び１０６並びにキャッシュ−エンティティ・テーブル１０８はいずれも、限定ではないが磁気的又は光学的データ記憶装置のような、１つ又は複数のデータ記憶装置上に格納されることが好ましい。
【００２４】
上記の図１、並びに下記の図２、図３、図４、図５、図６及び図７に示される要素はいずれも、従来技術に従って、いずれかの要素を、コンピュータ・ハードウェア内に実装し、及び／又はコンピュータ可読媒体内に具体化されるコンピュータ・ソフトウェア内に実装するなどして、コンピュータ１１２によって実行されるか、あるいはそれ以外の方法でコンピュータ１１２にとってアクセス可能なものとすることが好ましい。
【００２５】
ここでさらに、本発明の実施形態に従って動作する図１のシステムの動作の例示的な方法の簡略化されたフローチャート図である図２を参照する。図２の方法において、データ要求プロセッサ１１０は、エンティティから、コンピュータ（図示せず）上で稼働するウェブ・ブラウザ・アプリケーションからのＤＮＳアドレス検索要求の形態などで、データ要求を受け取る。データ要求プロセッサ１１０は、次に、データがキャッシュ内にあるかどうかを判断するために、キャッシュ・マネージャ１００に照会する。キャッシュ・マネージャ１００は、データ要求と共に受け取ったエンティティのＩＰアドレスを判断するなどして、エンティティの同一性を判断する。キャッシュ・マネージャ１００が、キャッシュ−エンティティ・テーブル１０８内においてエンティティと特定のキャッシュとの間の関連付けを見つける場合のように、エンティティが特定のキャッシュと関連付けられている場合には、次に、要求側エンティティに関連付けられたキャッシュ内において、要求されたデータを見つけ出すように試みる。データがキャッシュ内で見つかった場合、データ要求プロセッサ１１０は、データを要求側エンティティに提供する。エンティティが特定のキャッシュに関連付けられていない場合は、キャッシュ・マネージャ１００は、そのエンティティのためのキャッシュを作成し、キャッシュ−エンティティ・テーブル１０８内にそのエンティティと新たに作成されたキャッシュとの間の関連付けを作成することが好ましい。データ要求プロセッサ１１０は、次に、従来技術に従ってデータ要求を処理し、要求されたデータを要求側エンティティに提供し、かつ、要求されたデータをキャッシュ・マネージャ１００に提供し、キャッシュ・マネージャ１００は、そのエンティティに関連付けられたキャッシュ内にそのデータを格納する。
【００２６】
図１のシステム及び図２の方法から、エンティティ「Ａ」からの要求に関連付けられるデータは、エンティティ「Ａ」に特別に関連付けられたキャッシュ内に格納され、エンティティ「Ｂ」からの要求に関連付けられるデータは、エンティティ「Ｂ」に特別に関連付けられたキャッシュ内に格納され、各キャッシュは、別々のエンティティに関連付けられることが認識されるであろう。さらに、データへの要求がエンティティ「Ａ」から受け取られたときには、データは、エンティティ「Ａ」に関連付けられたキャッシュから取り出され、データへの要求がエンティティ「Ｂ」から受け取られたときには、データは、エンティティ「Ｂ」に関連付けられたキャッシュから取り出される。こうすることで、エンティティ「Ａ」によるデータ要求に関連して行われるキャッシュ汚染の試みは、たとえ成功したとしても、エンティティ「Ａ」に関連付けられたキャッシュのみに影響を与える一方、エンティティ「Ｂ」は影響を受けない。
【００２７】
ここで、本発明の実施形態に従って構築され動作する、キャッシュ汚染から保護するためのシステムの簡略化された概念図である図３を参照する。図３のシステムは、図１のシステムと実質的に同様であり、注目すべき例外は、キャッシュ・マネージャ１００が対応するエンティティのためのキャッシュ１０２、１０４及び１０６を管理することに加えて、キャッシュ・マネージャ１００は、グローバル・キャッシュ３００も管理することである。キャッシュ・マネージャ１００は、エンティティ関連キャッシュ１０２、１０４及び１０６のいずれかからグローバル・キャッシュ３００に、少なくとも所定数のエンティティ関連キャッシュ内に出現するいずれかのキャッシュ・エントリを移動させる。従って、例えば、キャッシュ１０２、１０４及び１０６の各々がＤＮＳアドレス・マッピングを格納するように構成され、それらのキャッシュのうちの所定数、例えばそれらのうちの少なくとも２つが、ｗｗｗ．ｅｌｈｊｔｙｐｚｗ．ｃｏｍに対する同じアドレス・マッピングを含む場合、キャッシュ・マネージャ１００は、そのアドレス・マッピングを、エントリがその中に見出されたエンティティ関連キャッシュからグローバル・キャッシュ３００に移動させることが好ましい。
【００２８】
ここでさらに、ひとまとめで、本発明の実施形態に従って動作する図３のシステムの動作の例示的な方法の簡略化されたフローチャート図である、図４、図５及び図６を参照する。図４、図５及び図６の方法は、図２の方法と実質的に同様であり、注目すべき例外は、データへの要求をエンティティから受け取ると、キャッシュ・マネージャ１００は、要求されたデータをエンティティ関連キャッシュ内で探す前にまず、グローバル・キャッシュ３００内でデータを見つけ出すように試みること、及び、少なくとも所定数のエンティティ関連キャッシュ内に格納されているエントリが、好ましくは、キャッシュ・マネージャ１００によってグローバル・キャッシュ３００に移動されることである。
【００２９】
ここで図７を参照すると、ブロック図５００は、本発明の１つ又は複数の構成要素／方法論（例えば、図１、図２、図３、図４、図５及び図６との関連で説明された構成要素／方法論）をそれに従って実装することができる、本発明の実施形態によるコンピュータ・システムの例示的なハードウェア実装を示す。
【００３０】
図示されるように、少なくとも１つのリソースへのアクセスを制御する技術は、コンピュータ・バス５１８又は代替的な接続配置を介して結合された、プロセッサ５１０と、メモリ５１２と、Ｉ／Ｏデバイス５１４と、ネットワーク・インタフェース５１６とによって実装することができる。本明細書で用いられる「プロセッサ」という用語は、例えば、ＣＰＵ（中央処理ユニット）及び／又は他の処理回路を含む処理デバイスのような、任意の処理デバイスを含むことを意図するものとして認識されるべきである。「プロセッサ」という用語は、１つよりも多くの処理デバイスを指す場合があること、及び、処理デバイスと関連付けられた種々の要素は、他の処理デバイスによって共有される場合があることも理解されるべきである。
【００３１】
本明細書で用いられる「メモリ」という用語は、例えば、ＲＡＭ、ＲＯＭ、固定メモリ・デバイス（例えば、ハード・ドライブ）、リムーバブル・メモリ・デバイス（例えば、ディスケット）、フラッシュ・メモリ等のような、プロセッサ又はＣＰＵに関連付けられたメモリを含むことが意図される。このようなメモリは、コンピュータ可読記憶媒体と見なすことができる。
【００３２】
さらに、本明細書で用いられる「入力／出力デバイス」又は「Ｉ／Ｏデバイス」という語句は、例えば、データを処理ユニットに入力するための１つ又は複数の入力デバイス（例えば、キーボード、マウス、スキャナ等）、及び／又は、処理ユニットに関連付けられた結果を提示するための１つ又は複数の出力デバイス（例えば、スピーカ、ディスプレイ、プリンタ等）を含むことが意図される。
【００３３】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能な命令を含むモジュール、セグメント又はコードの一部を表すことができる。幾つかの代替的な実施において、ブロック内に記された機能は、図面内に記された順序以外の順序で行われる場合があることにも留意されたい。例えば、連続して示された２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、ときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図内の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組合せは、指定された機能若しくは動作を行う専用ハードウェアベースのシステム又は専用ハードウェアとコンピュータ命令との組合せによって実装することができることにも留意されたい。
【００３４】
方法及び装置について、本明細書において、特定のコンピュータ・ハードウェア又はソフトウェアを参照して説明した場合もあり、又は参照しないで説明した場合もあるが、本明細書において説明された方法及び装置は、従来技術を用いたコンピュータ・ハードウェア又はソフトウェアにおいて容易に実装することができることが認識されよう。
【００３５】
本発明を、１つ又は複数の特定の実施形態を参照して説明してきたが、この説明は、本発明を全体として例証することを意図しており、本発明を示された実施形態に限定するものとして解釈されるべきではない。本明細書において具体的に示されないが、それにもかかわらず本発明の範囲内である種々の修正は、当業者であれば想到し得ることが認識される。
【符号の説明】
【００３６】
１１２：コンピュータ
５１８：コンピュータ・バス
【図１】
2013504798.tif 000003
【図２】
2013504798.tif 000004
【図３】
2013504798.tif 000005
【図４】
2013504798.tif 000006
【図５】
2013504798.tif 000007
【図６】
2013504798.tif 000008
【図７】
2013504798.tif 000009
【手続補正書】
【提出日】平成24年5月22日(2012.5.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータをキャッシュ汚染から保護するためのシステムであって、
複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持するように構成された、前記キャッシュの各々が前記エンティティの別々の１つと関連付けられる、キャッシュ−エンティティ・テーブルと、
前記エンティティのいずれかに関連付けられたデータを受け取り、前記受け取ったデータを、前記エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかに格納し、かつ
前記エンティティのいずれかに関連付けられたデータ要求を受け取り、前記要求されたデータを、前記要求側エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかから取り出すように構成された、キャッシュ・マネージャと
を含み、前記キャッシュ−エンティティ・テーブル及び前記キャッシュ・マネージャのいずれも、コンピュータ・ハードウェア、及びコンピュータ可読媒体内に具体化されたコンピュータ・ソフトウェアのどちらかで実装される、システム。
【請求項２】
前記キャッシュ・マネージャに前記データのいずれかを提供するように構成されたデータ要求プロセッサをさらに含む、請求項１に記載のシステム。
【請求項３】
前記データ要求プロセッサは、前記エンティティのいずれかから前記データ要求を受け取り、前記要求されたデータが前記キャッシュのいずれかから入手できるかどうかを判断するために前記キャッシュ・マネージャに照会するように構成される、請求項２に記載のシステム。
【請求項４】
前記キャッシュ・マネージャは、少なくとも所定数の前記キャッシュ内に出現するいずれかのエントリを識別し、前記エントリを前記キャッシュからグローバル・キャッシュに移動させ、前記要求されたデータを前記グローバル・キャッシュから取り出すように構成される、請求項１に記載のシステム。
【請求項５】
コンピュータをキャッシュ汚染から保護するための方法であって、
複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持し、前記キャッシュの各々が前記エンティティの中の別々の１つと関連付けられる、ステップと、
前記エンティティのいずれかに関連付けられたデータを受け取るステップと、
前記受け取ったデータを、前記エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかに格納するステップと、
前記エンティティのいずれかに関連付けられたデータ要求を受け取るステップと、
前記要求されたデータを、前記要求側エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかから取り出すステップと
を含む、方法。
【請求項６】
コンピュータをキャッシュ汚染から保護するための方法であって、
複数のデータ・キャッシュと複数のエンティティとの間の複数の関連付けを保持し、前記キャッシュの各々が前記エンティティの中の別々の１つと関連付けられる、ステップと
前記エンティティのいずれかに関連付けられたデータを受け取るステップと、
前記受け取ったデータを、前記エンティティに関連付けられることをキャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかに格納するステップと、
少なくとも所定数の前記キャッシュ内に出現するいずれかのエントリを識別するステップと、
前記エントリを、前記キャッシュからグローバル・キャッシュに移動させるステップと、
前記エンティティのいずれかに関連付けられたデータ要求を受け取るステップと、
前記要求されたデータが前記グローバル・キャッシュ内にある場合には、前記要求されたデータを前記グローバル・キャッシュから取り出すステップと、
前記要求されたデータが前記グローバル・キャッシュ内にない場合には、前記要求されたデータを、前記要求側エンティティに関連付けられることを前記キャッシュ−エンティティ・テーブルが示す前記キャッシュのいずれかから取り出すステップと
を含む、方法。
【請求項７】
請求項６記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【国際調査報告】
2013504798.tif 000010
2013504798.tif 000011