(57)【要約】  一般的に、ここに記述するキャッシュ技術を実現することによって、本発明にしたがった方法および装置はこれらの問題およびその他の問題を緩和する。そのため、ホームネットワーク中の１つのデバイスが特定のコンテンツ（例えば、ビデオ、歌）を所定のサイトからダウンロードして再生するとき、インターネットから同じコンテンツを再ダウンロードすることなく、同じコンテンツが別のデバイス上で再び再生されるために入手可能であるように、そのコンテンツはネットワーク内にキャッシュされる。【選択図】図１
2014519636.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク中で実現される方法において、
インターネットからコンテンツをダウンロードする要求を受信することと、
前記インターネットから前記要求されたコンテンツをダウンロードする前に、前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することと、
前記要求に応答して、前記ネットワーク中の前記キャッシュのうちの１つから、または、前記インターネットから、前記要求されたコンテンツを提供することとを含む方法。
【請求項２】
前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することは、前記コンテンツが前記ネットワーク内の単一のロケーションにおける集中キャッシュ中に記憶されているか否かを決定することを含む請求項１記載の方法。
【請求項３】
前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することは、前記コンテンツが前記ネットワーク内の複数の異なるロケーションにおける分散キャッシュ中に記憶されているか否かを決定することを含む請求項１記載の方法。
【請求項４】
前記複数の異なるロケーションは、前記ネットワーク中のさまざまなデバイスを含む請求項３記載の方法。
【請求項５】
前記デバイスは、パーソナルコンピューティングデバイス、メディアデバイスおよびネットワークデバイスのうちの１つ以上を含む請求項４記載の方法。
【請求項６】
前記パーソナルコンピューティングデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータおよびスマートフォンのうちの１つ以上を含む請求項５記載の方法。
【請求項７】
前記デバイスのそれぞれにキャッシュコヒーレンシーアプリケーションのインスタンスを実行させることをさらに含む請求項４記載の方法。
【請求項８】
前記キャッシュコヒーレンシーアプリケーションを実行することは、前記分散キャッシュの共有インデックスを維持することを含む請求項７記載の方法。
【請求項９】
前記キャッシュコヒーレンシーアプリケーションを実行することは、前記分散キャッシュのインデックスに対するアクセスを有することを含む請求項７記載の方法。
【請求項１０】
前記デバイスのうちの１つから前記デバイスのうちの別のものに、前記分散キャッシュのコンテンツを移動させることをさらに含む請求項３記載の方法。
【請求項１１】
前記ネットワーク内のストラテジックロケーションを識別して、前記分散キャッシュのコンテンツを移動させることをさらに含む請求項１０記載の方法。
【請求項１２】
前記ネットワーク内のそれぞれの異なるロケーションに記憶される異なるタイプの情報を識別することをさらに含む請求項１０記載の方法。
【請求項１３】
前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することは、前記ネットワーク内とともに１つ以上の追加ネットワークを含むローカルクラウド内の、複数の異なるロケーションにおける分散キャッシュ中に前記コンテンツが記憶されているか否かを決定することを含む請求項１記載の方法。
【請求項１４】
前記インターネットからコンテンツをダウンロードする前に、前記ネットワーク内のメディアをサーチするために前記ネットワークをクローリングすることをさらに含む請求項３記載の方法。
【請求項１５】
前記インターネットからコンテンツをダウンロードする前に、前記ローカルクラウド内のメディアをサーチするために前記ネットワークをクローリングすることをさらに含む請求項１３記載の方法。
【請求項１６】
前記キャッシュ中に維持するコンテンツのタイプを決定するために、ユーザごとの好みを追跡することをさらに含む請求項１記載の方法。
【請求項１７】
前記キャッシュ中に維持する異なるタイプのコンテンツを決定するために、ユーザごとの好みを追跡することをさらに含む請求項１２記載の方法。
【請求項１８】
前記ユーザごとの好みにしたがって、コンテンツを適切なデバイスに自動的にコピーすることをさらに含む請求項１７記載の方法。
【請求項１９】
前記ユーザのブラウジング習慣を監視して、粒度データ解析を提供することをさらに含む請求項１記載の方法。
【請求項２０】
前記ネットワークはインホームネットワークからなる請求項１記載の方法。
【請求項２１】
ネットワーク内で実現される方法において、
インターネットからコンテンツをダウンロードする要求を受信することと、
前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することと、
前記要求されたコンテンツが前記キャッシュ内で入手可能ではない場合、前記コンテンツを前記キャッシュ中に保存することとを含む方法。
【請求項２２】
前記キャッシュは前記ネットワーク中の複数の異なるデバイス上で実現される分散キャッシュを含み、前記方法は前記複数のデバイスのうちのいくつかにおいてキャッシュコヒーレンシーアプリケーションを実行することをさらに含む請求項２１記載の方法。
【請求項２３】
前記キャッシュコヒーレンシーアプリケーションを実行することは、前記分散キャッシュの共有インデックスを維持することを含む請求項２２記載の方法。
【請求項２４】
前記キャッシュコヒーレンシーアプリケーションを実行することは、前記分散キャッシュのインデックスに対するアクセスを有することを含む請求項２２記載の方法。
【請求項２５】
前記分散キャッシュのコンテンツを、前記デバイスのうちの１つから前記デバイスのうちの別のものに移動させることをさらに含む請求項２２記載の方法。
【請求項２６】
前記分散キャッシュのコンテンツを移動させる、前記ネットワーク内のストラテジックロケーションを識別することをさらに含む請求項２５記載の方法。
【請求項２７】
前記ネットワーク内のそれぞれの異なるロケーションにおいて記憶される異なるタイプの情報を識別することをさらに含む請求項２５記載の方法。
【請求項２８】
前記ネットワークはインホームネットワークからなる請求項２１記載の方法。
【請求項２９】
ネットワーク中で実現される方法において、
インターネットからコンテンツをダウンロードする要求を受信することと、
前記ネットワーク用のキャッシュ中に維持するコンテンツを決定するためにユーザごとの好みを追跡することと、
前記ユーザごとの好みに基づいて前記キャッシュ中にコンテンツを維持することとを含む方法。
【請求項３０】
ユーザごとの好みは、あるサイトからのコンテンツがキャッシュされるべきか否かを特定することを含む請求項２９記載の方法。
【請求項３１】
ユーザごとの好みは、あるユーザによって要求されたコンテンツがキャッシュされるべきか否かを特定することを含む請求項２９記載の方法。
【請求項３２】
ユーザごとの好みは、あるタイプのコンテンツがキャッシュされるべきか否かを特定することを含む請求項２９記載の方法。
【請求項３３】
前記ネットワークはインホームネットワークからなる請求項２９記載の方法。
【発明の詳細な説明】
【関連出願に対する相互参照】
【０００１】
本出願は、２０１１年４月２５日に出願された米国仮出願第６１／４７８，５９２号に対して優先権を主張し、その内容は、参照により全体がここに組み込まれている。
【発明の分野】
【０００２】
本発明は、一般的に、ローカルエリアネットワークに関連し、さらに詳細には、ローカルネットワークまたはホームネットワークのような、ネットワーク化環境におけるキャッシュ技術に関連している。
【発明の背景】
【０００３】
長年にわたって、ホームネットワークは、サイズおよび複雑さにおいて成長してきた。今日、典型的に、同じ家庭内に、同じタイプのコンテンツを再生／表示できる複数のデバイスが存在する（例えば、オンラインビデオをコンピュータ上で、ｉＰｈｏｎｅ（登録商標）上で、またはテレビ上で見ることができ、音楽をコンピュータ上で、ｉＰｈｏｎｅ上で、または専用のインターネットラジオボックス上で聴くことができる）。これらのデバイスのそれぞれは、よくホームＷｉ−Ｆｉ（登録商標）ネットワークを通してインターネットからコンテンツをダウンロードして、再生することができる。コンテンツはインホームデバイス（例えば、ＤＬＮＡ（登録商標）メディアプレイヤまたはＭＰ３レポジトリ）からも再生されることがある。
【０００４】
一般的に、パーソナルコンピュータ、タブレット、スマートフォン（例えば、ｉＰｈｏｎｅ）等のようなデバイスが、コンテンツを再生または表示するとき、コンテンツが記憶媒体上にローカルに記憶されていないケースでは、コンテンツはインターネットからその特定のデバイス上にダウンロードされている。例えば、特定のビデオクリップをＹｏｕＴｕｂｅ（登録商標）ウェブサイト上で４回見たい個人は、もし個人がそのビデオクリップを４つの異なるデバイス上で見たい場合、典型的に、ビデオをＹｏｕＴｕｂｅウェブサイトから４回ダウンロード／ストリーミングしなければならない。
【０００５】
エンドカスタマーの視点からすれば、ネットワークサービスに関係する帯域幅利用にサービスプロバイダが制限または上限を組み込んでいるため、カスタマーは消費される帯域幅の量に関してますます注意深くなっている。そのため、インターネットからコンテンツを再ダウンロードする必要性は、増加する問題となっている。さらに、サービスプロバイダの観点からすれば、（同じコンテンツが異なるインホームデバイスによってダウンロードされるときにあまねく発生する）余分なネットワークトラフィックにおける削減もまた望ましい。
【０００６】
サービスプロバイダの視点からすれば、食べ放題サービスモデルから離れて、ダウンロードバイトごとのコストモデルに向けて移行する試みが存在する。さらに、余分なネットワークトラフィックを思いとどまらせる試みが存在する。サービスプロバイダの観点からすれば、どちらもデータダウンロードに毎月の上限を組み込むことによって遂行することができ、それにより、上限に到達したとき、消費者はダウンロードスピードの減少を経験するか、または、いかなる追加コンテンツもまったくダウンロードすることができない。そのようなケースにおいて、同じコンテンツ／ファイルを複数回ダウンロードすることは、ユーザの毎月の割り当てが不必要に消耗されることを意味する。さらに、同じコンテンツ／ファイルが再ダウンロードされるという事実は、同じコンテンツを複数回運ぶためにネットワーク帯域幅が消費されていることを意味し、それにより、ネットワーク負荷と輻輳が不必要に増加される。これは、サービスプロバイダが避けようとしていることである。
【０００７】
したがって、データの余分なネットワークアクセスに関係するネットワーク帯域幅を減少させる技術に対する必要性がある。
【発明の概要】
【０００８】
一般的に、ここに記述するキャッシュ技術を実現することによって、本発明にしたがった方法および装置はこれらの問題およびその他の問題を緩和する。そのため、ホームネットワーク中の１つのデバイスが特定のコンテンツ（例えば、ビデオ、歌）を所定のサイトからダウンロードして再生するとき、インターネットから同じコンテンツを再ダウンロードすることなく、同じコンテンツが別のデバイス上で再び再生されるために入手可能であるように、そのコンテンツはインホームネットワーク内にキャッシュされる。
【０００９】
いくつかの実施形態では、集中キャッシュスキームまたは分散キャッシュスキームのいずれかが実現される。要求されたタイムリミット内に、インターネットからコンテンツをダウンロードするか、または、キャッシュから所望のコンテンツを読み取るかのいずれかをデバイスが決定できるように、デバイスはメモリ（オンチップ、またはオンボード、またはオンディスクのいずれか）を備えていてもよい。１つ以上のデバイスは、キャッシュ中のコンテンツに関係するコンテンツのテーブルを記憶する。発明にしたがった例示的な方法は、インターネットからマルチメディアコンテンツをダウンロードする要求を受け取ることを含む。あらゆる既存の（または、完全に新しい）メカニズムを使用して、あらゆるインホームデバイスによって、この要求が行われることがある。要求されたコンテンツをインターネットからダウンロードする前に、要求されたコンテンツがインホームネットワーク内のキャッシュ中で入手可能か否かに関して決定が行われる。要求に応答して、要求されたコンテンツはインホームネットワーク中のキャッシュから、または、インターネットから提供される。要求されたコンテンツがインホームネットワーク内で入手可能か否かを決定するために使用されるキャッシュアルゴリズムは、集中キャッシュスキームまたは分散キャッシュスキームのいずれかに基づいていてもよい。
【００１０】
これらおよびその他の態様にしたがって、発明の実施形態にしたがった、インホームネットワーク中で実現される方法は、インターネットからコンテンツをダウンロードする要求を受け取ることと、要求されたコンテンツをインターネットからダウンロードする前に、要求されたコンテンツがインホームネットワーク内のキャッシュ中で入手可能か否かを決定することと、要求に応答して、インホームネットワーク中のキャッシュの１つから、または、インターネットから、要求されたコンテンツを提供することとを含む。
【００１１】
本発明のこれらおよびその他の態様および特徴は、添付の図面とともに、発明の特定の実施形態についての以下の記述のレビューの際に当業者に明らかになるだろう。
【図面の簡単な説明】
【００１２】
【図１】図１は、発明の実施形態にしたがった集中キャッシュ技術を実現する例示的なホームネットワークのブロックダイアグラムである。
【図２】図２は、発明の実施形態にしたがった例示的な集中キャッシュメソドロジーを図示しているフローチャートである。
【図３】図３は、発明の実施形態にしたがった分散キャッシュ技術を実現する例示的なホームネットワークのブロックダイアグラムである。
【図４Ａ】図４Ａは、発明の実施形態にしたがった例示的な分散キャッシュメソドロジーを図示しているフローチャートである。
【図４Ｂ】図４Ｂは、発明の実施形態にしたがった例示的な分散キャッシュメソドロジーを図示しているフローチャートである。
【図５】図５は、発明にしたがったキャッシュ技術を実現することが可能な、例示的なローカルクラウドを図示しているブロックダイアグラムである。
【好ましい実施形態の詳細な説明】
【００１３】
ここで、当業者が発明を実施できるようにするために、発明の実例として提供されている図面を参照して、本発明を詳細に記述する。とりわけ、図面および以下の例は本発明の範囲を単一の実施形態に限定しようとするものではなく、記述された要素または図示された要素のいくつか、または、全部を交換することによって、その他の実施形態が可能である。そのうえ、本発明のある要素が既知のコンポーネントを使用して部分的にまたは全面的に実現できる場合、本発明の理解に対して必要なそのような既知のコンポーネントの一部分のみが記述されることになり、そのような既知のコンポーネントのうちその他の部分の詳細な記述は、発明をあいまいにしないために省略されることになる。ソフトウェア中で実現されるとして記述している実施形態は、ソフトウェア中に限定されるべきではなく、ハードウェア中、または、ソフトウェアとハードウェアの組み合わせにおいて実現される実施形態を含めることができ、当業者には明らかであろう通り、その他の方法がここで特定されない限り、逆もまた同じである。本明細書において、単数のコンポーネントを示している実施形態は限定していると考えられるべきではない。むしろ、発明は、複数の同じコンポーネントを含んでいる他の実施形態を含むように意図されている。そしてその他の方法でここで明示的に説明されない限り、逆もまた同じである。そのうえ、そのように明示的に説明されない限り、明細書中または特許請求の範囲中のいかなる用語に対しても、出願人はまれな意味または特別な意味が与えられることを意図していない。さらに、本発明は、実例としてここで参照されている既知のコンポーネントに対する、現在および将来的に既知の均等物を含む。
【００１４】
本開示の状況において、「インホームネットワーク」は一般的に、家庭または小さなオフィスに関係するネットワーク化された環境を作り上げるあらゆるタイプの分散された、通信コンポーネント、コンピューティングコンポーネント、記憶コンポーネントを指す。インホームネットワーク内でコンテンツをキャッシュするためにさまざまな実施形態を記述するが、キャッシュされたコンテンツは、ファイル、マルチメディアコンテンツ、その他のタイプのデータを含む。たとえ発明がインホームネットワークの実現に対する特定の参照により記述されていても、発明の原理は、単一の家庭またはオフィス環境に限定されず、以下の記述により認識されるように、その他のタイプの環境に拡張することができる。
【００１５】
発明にしたがったキャッシュする方法と装置の実施形態は、集中化と分散化の、少なくとも２つの一般的なインプリメンテーションを含む。集中化のインプリメンテーションにおいて、キャッシュはホームゲートウェイ（ＨＧＷ）上または同様のデバイス上で実現される。また、要求されたコンテンツがキャッシュ中で入手可能か否かをＨＧＷに示す、ルックアップテーブルまたはインデックスが、オンチップ／オンボードメモリ中に組み込まれていてもよい。分散化のインプリメンテーションにおいて、さまざまなインホームデバイス（ラップトップ、ルータ、中継器、ｉＰａｄ（登録商標）等）に渡って、本発明のキャッシュスキームは実現される。デバイスのうちのいくつか、または全部は、ＨＧＷにおけるキャッシュアプリケーションに関連するクライアントサーバスキームを使用して実現できる、または、完全に分散されたモデルを使用して実現できる、キャッシュコヒーレンシーアプリケーションのインスタンスを実行する。
【００１６】
図１はネットワーク化環境１００の実施形態であり、本発明にしたがった例示的な集中キャッシュ技術は、その中で実現してもよい。示されているように、１つ以上のデバイス１０４は、インホームネットワーク１０２中で接続されており、インホームネットワーク１０２は、ホームゲートウェイ１０８を介してインターネット１０６へのアクセスを提供している。インターネットを通して、ＹｏｕＴｕｂｅまたは他のウェブサイトのようなビデオ共有ポータル１１０からのコンテンツとともに、インターネット上のさまざまなサイトからのテキストおよびマルチメディアコンテンツを含む、他のさまざまなタイプのコンテンツを、ユーザはダウンロードすることができる。
【００１７】
デバイス１０４は、（図１に示すような）ラップトップコンピュータ、デスクトップコンピュータおよびタブレットコンピュータ（例えば、ｉＰａｄ（登録商標）、Ｋｉｎｄｌｅ（登録商標）等）のようなパーソナルコンピュータデバイス、スマートフォン（例えば、ｉＰｈｏｎｅおよびＡｎｄｒｏｉｄ（登録商標）フォン）のようなネットワークレディフォンデバイスを含むことができる。また、デバイス１０４は、ネットワーク可能なテレビ、インターネットラジオシステム、ゲームデバイス（例えば、Ｗｉｉ（登録商標）、Ｘｂｏｘ（登録商標）等）、ＤＶＲ等のような、他のさまざまなタイプのメディアデバイスをさらに含むことができる。デバイス１０４は、ルータ、中継器、ＮＡＳドライブ等のような他のホームネットワークデバイスをさらに含むことができる。デバイス１０４は、ワイヤード接続１３０（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ｐｏｗｅｒｌｉｎｅ等）またはワイヤレス接続１３２（例えば、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等）を介して、ホームネットワーク１０２に接続されていてもよい。
【００１８】
ホームゲートウェイ１０８は、Ｎｅｔ  Ｇｅａｒ（登録商標）、Ｌｉｎｋｓｙｓ（登録商標）、Ｄ−Ｌｉｎｋ（登録商標）、Ｃｉｓｃｏ（登録商標）等のようなコマーシャルベンダーから入手可能なような、ワイヤードルータまたはワイヤレスルータ中に組み込むこと、または、その中で提供することができる。本例により教示された後に当業者が認識するであろう通り、そのようなルータデバイスは、典型的に、本発明のキャッシュ技術によって動作するように適合できる、従来のルーティング機能性を含む。
【００１９】
本発明を実現することができるホームネットワークは、ケーブルネットワークまたは電話ネットワークのようなキャリアネットワークまたはプロバイダネットワークにさらに結合できる、ＤＳＬ（登録商標）モデムのような（示されていない）インターネットアクセスデバイスをさらに典型的に含むことに着目すべきである。そのようなデバイスがルータ機能性を含むいくつかの実施形態においては、ゲートウェイ１０８はそのようなデバイス中に組み込むことができる。他の実施形態においては、ゲートウェイ１０８とインターネットアクセスデバイスとは別のデバイス中で実現される。例は、Ａｐｐｌｅ（登録商標）のＡｉｒｐｏｒｔ  Ｅｘｐｒｅｓｓのようなサービスであり、これは、Ｅｔｈｅｒｎｅｔ（登録商標）インターフェースを生み出す適切なモデム（ＦｉＯＳ（登録商標）／ＤＳＬ／他）を仮定している。
【００２０】
示されているように、本発明のキャッシュの実施形態にしたがって、コンテンツをキャッシュするための、コンテンツサーチモジュール１１２、キャッシュアプリケーション１１４、メモリ記憶デバイス１１６をさらに具備しているという点において、ホームゲートウェイ１０８は従来のホームゲートウェイとは異なっている。実施形態において、記憶デバイス１１６はフラッシュメモリ／ダブルデータレート（ＤＤＲ）メモリのようなオンボードメモリ中で実現される。追加実施形態または代替実施形態において、記憶デバイス１１６は、ゲートウェイ１０８デバイスに接続された、ＵＳＢ２．０／ＵＳＢ３．０／ｅＳＡＴＡ／のようなオフボード高速デバイス中、または、他のタイプの記憶ディスク中で実現される。モジュール１１２とキャッシュアプリケーション１１４は、例えば、ここで記述されているような機能性により補足された、従来の、または、プロプライエタリな、ルータデバイスソフトウェアおよび／またはファームウェアを使用して、実現できる。
【００２１】
一般的に、コンテンツサーチモジュール１１２は、記憶デバイス１１６中のキャッシュのコンテンツをサーチして、デバイス１０４によって要求されているコンテンツが、インターネットからというよりもむしろ記憶デバイス１１６から供給できるか否かを決定する。モジュール１１２のさらに例示的なインプリメンテーションの詳細は、先述の機能に関する記述から収集できる。
【００２２】
一般的に、キャッシュアプリケーション１１４は、少なくとも以下の態様を制御する。１）キャッシュに割り当てられるメモリの量、および、２）（最も過去に使用された（ＬＲＵ）キャッシュアルゴリズムに基づこうと、最も最近に使用された（ＭＲＵ）キャッシュアルゴリズムに基づこうと、または、他のキャッシュアルゴリズムに基づこうと）キャッシュのコンテンツ自体。キャッシュアプリケーション１１４は、デバイス１１６中で入手可能なコンテンツのインデックスを維持するように、さらに構成されている。アプリケーション１１４のさらに例示的なインプリメンテーションの詳細は、先述の機能に関する記述から収集できる。
【００２３】
キャッシュアプリケーション１１４中で維持できる例示的なインデックスを以下に例示する。
【表１】
2014519636.tif 000003
【００２４】
以上に示されているように、１つの例示的なインプリメンテーションにおいて、キャッシュインデックスの各エントリーは、記述、ポインタ、２セットのメタデータ、という４つの異なる要素を含む。記述要素は、キャッシュされたコンテンツと、デバイス１０４から受信した新しいコンテンツに対する要求中の情報との間のマッチングを、キャッシュアプリケーションが実行できるように意図されている。この例において、記述は典型的にＵＲＬ（例えば、ｗｗｗ．ｙｏｕｔｕｂｅ．ｃｏｍ）の一部を含む。１セットのメタデータは、コンテンツに対する要求の中に出現することがある１つ以上のキーワード（例えば、「レディーガガ」）を含んでいてもよい。別のセットのメタデータは、要求の中に含めることのできる追加アイテムまたは追加タグ（例えば、解像度４００×３００）を含んでいてもよい。ポインタ要素は、記憶デバイス１１６中のアドレスを含む。この例において、ポインタは実際のメモリアドレスである。しかしながら、ディレクトリ構造におけるファイルＩＤおよびパスのような、多くのバリエーションが可能である。メタデータは、キャッシュされたコンテンツの文字による記述または他の記述を提供するのに役立つことがある、キャッシュされたコンテンツについての追加情報を含む。
【００２５】
図２は、発明の実施形態にしたがった例示的な集中キャッシュメソドロジーを図示しているフローチャートである。
【００２６】
ステップＳ２０２において、デバイス１０４がコンテンツを要求する。例えば、デバイス１０４がＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）のようなブラウザを実行しているコンピュータの場合、ｗｗｗ．ｙｏｕｔｕｂｅ．ｃｏｍにより供給されているページ上のコンテンツのリストのような、ウェブページ上のリンクをユーザがクリックすることにより、コンテンツに対する要求を開始することができる。クリックに応答して、ＨＴＴＰプロトコルと、ＨＴＭＬのようなコンテンツ中に埋め込まれたリンクからの情報とを使用して、ブラウザアプリケーションはＩＰ要求を形成し、それをゲートウェイ１０８に送る。別の例として、ＩＰ要求は、キャッシュ中の新たなエントリーのルックアップ／学習を実行する役割を果たすエンティティによって「スヌープ」されてもよい。この機能性はゲートウェイ中／ルータ中で実行されてもよい。ステップＳ２０４において、要求は、従来のルーティング技術を使用してゲートウェイにより処理される。例えば、ゲートウェイ１０８はルーティングテーブル中の要求に関係するＩＰアドレスをルックアップし、要求がリモートネットワークロケーション上のコンテンツに関係するか否かを決定することができる。（ステップＳ２０４中で決定された）リモートソースから取得する必要があるコンテンツ（例えば、ＹｏｕＴｕｂｅのような公開ウェブサイトからのビデオ）に対するすべての要求に対して、ステップＳ２０６において、サーチモジュール１１２はキャッシュデバイス１１６をサーチして、要求されたコンテンツがデバイス１１６中に記憶されているか否かを決定する。
【００２７】
要求されたコンテンツがキャッシュされていなかった場合、ステップＳ２０８において、要求をインターネットに転送することにより、従来の方法でコンテンツを取得する。ステップＳ２１０において、インターネットからデバイス１０４へダウンロードされるコンテンツが、ゲートウェイ１０８を介してデバイス１０４にストリーミングされるとき、そのコンテンツは、アプリケーション１１４によってデバイス１１６中のキャッシュにもコピーされる。それらが完了したとき、ステップＳ２１２において、アプリケーション１１４はキャッシュインデックスを更新して、新たに記憶されたコンテンツを反映させる。
【００２８】
ステップＳ２０４において、要求されたコンテンツがローカルで入手可能だということが代わりに決定された場合、ステップＳ２１４において、コンテンツはゲートウェイ１０８によりキャッシュデバイス１１６からデバイス１０４にストリーミングされる。
【００２９】
図３は、発明にしたがった例示的な分散キャッシュ技術が実現されてもよい、ネットワーク化環境３００の実施形態である。
【００３０】
図１中に示されている集中化のインプリメンテーションとは対照的に、分散化のインプリメンテーションにおいては、１つ以上のデバイス１０４は、キャッシュアプリケーション３２０を実行してローカルキャッシュ３２２を維持するように構成されている。
【００３１】
デバイス１０４がＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムを実行するラップトップコンピュータまたはデスクトップコンピュータであるような実施形態においては、キャッシュアプリケーション３２０はデバイスドライバアプリケーションまたはブラウザプラグインアプリケーションによって実現することができる。例えば、デバイス１０４がＷｉＦｉトランシーバを含む場合で、デバイス１０４が最初にゲートウェイ３０８とのワイヤレス接続を確立させようと試行するとき、ゲートウェイ３０８は、キャッシュアプリケーション３２０を含むデバイスドライバソフトウェアを自動的にダウンロードしてインストールするように、デバイス１０４にさせることができる。別の例として、キャッシュアプリケーションは（デバイスに付属している初期ソフトウェアの一部を）製造する間に、デバイス上に予めロードさせてもよい。さらに別の例として、（新たなプリンタのためにドライバを手動でダウンロードするのと同様に）手動で、または、（新たなプリンタがラップトップに接続されたときにドライバがダウンロードされるのと同様に）ネットワーク内の「キャッシュ技術」のための自動検出サポートに応答して、インターネットからそのプラットフォーム用にキャッシュアプリケーションを明示的にダウンロードしてもよい。当業者は、本例によって教示された後、おそらくは、デバイス１０４のタイプに依存して、アプリケーション３２０を実現するさまざまな代替方法を認識するだろう。
【００３２】
一般的に、キャッシュ３２２のコンテンツを管理し、プロプライエタリな、または、他のプロトコルを介して他のキャッシュインスタンスと通信し、ローカルでおよび／または他のキャッシュインスタンスと共有してキャッシュインデックスを維持するような機能性を、キャッシュアプリケーション３２０は含む。キャッシュアプリケーション３２０のインプリメンテーションおよび他の詳細は、本発明にしたがった以下の例示的なメソドロジーによって教示された後、当業者に、さらにより明らかになるだろう。
【００３３】
キャッシュ３２２は、デバイス１０４が管理するメモリ、または、管理できるメモリによって実現される。例えば、デバイス１０４がＷｉｎｄｏｗｓオペレーティングシステムおよびＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒソフトウェアを実行するパーソナルコンピュータ（例えば、ラップトップまたはデスクトップ）である場合、キャッシュ３２２はローカルドライブ上のブラウザ一時ディレクトリ中のファイルによって実現することができる。ＭＰ３プレイヤの例においては、（揮発性、このケースでは、デバイスがスイッチオンされるたびにキャッシュが構築される。または、不揮発性、このケースでは、キャッシュがいったん構築されて、その後、デバイスのブートに渡って再使用される）オンチップメモリ中に記憶されてもよい。当業者が認識するであろう通り、多数の代替物が可能である。
【００３４】
図３中でさらに示されているように、ゲートウェイ３０８はサーチモジュール３１２、キャッシュアプリケーション３１４、およびキャッシュ３１６を含む。これらの要素は、図１中で図示されている集中化の実施形態における類似するコンポーネントと同様に実現できる。追加および変更は、以下の機能的記述から明らかになるだろう。以下でより詳細に記述する本実施形態の態様にしたがって、図３は、キャッシュ３２２とキャッシュ３１６が一緒になって、分散キャッシュインデックス３０４中に反映される分散キャッシュ３０２をどのように実現するのかをさらに図示する。
【００３５】
図４Ａおよび図４Ｂは、発明の実施形態にしたがった例示的な分散キャッシュメソドロジーを図示しているフローチャートである。
【００３６】
図４Ａ中で図示されている例示的なメソドロジーは、発明の実施形態にしたがった分散キャッシュのクライアントサーバモデルのインプリメンテーションを反映している。
【００３７】
ステップＳ４０２において、デバイス１０４がコンテンツを要求するが、このことはステップＳ２０２に対して図２中で上述したのと同様の動作を含むことができる。ステップＳ４０４において、要求は従来のルーティング技術を使用してゲートウェイにより処理されるが、このことはステップＳ２０４に対して上述したのと同様の動作を含むことができる。リモートソースからの（ステップＳ４０４中で決定された）コンテンツ（例えば、ＹｏｕＴｕｂｅのような公開ウェブサイトからのビデオ）に対するすべての要求に対して、ステップＳ４０６において、サーチモジュール３１２は現在のキャッシュインデックス３０４をサーチして、要求されたコンテンツが分散キャッシュ３０２中に記憶されているか否かを決定する。
【００３８】
要求されたコンテンツがキャッシュされていなかった場合、ステップＳ４０８において、要求をインターネットに転送することにより、従来の方法でコンテンツを取得する。ステップＳ４１０において、新たに要求されたコンテンツがインターネットからデバイス１０４にダウンロードされた後、新たに記憶されたコンテンツとともに、分散キャッシュ３０２の特定のデバイス１０４における、そのコンテンツのロケーションを反映させるように、アプリケーション３１４はキャッシュインデックス３０４を更新させる。
【００３９】
ステップＳ４０６において、要求されたコンテンツが分散キャッシュ３０２中で入手可能だということが代わりに決定された場合、ステップＳ４１２において、要求されたコンテンツの分散キャッシュ３０２におけるロケーションをサーチモジュール３１２がさらに決定し、ステップＳ４１４において、アプリケーション３１４は、要求されたコンテンツが分散キャッシュ３０２からデバイス１０４にストリーミングされるようにする。例えば、要求されたコンテンツがゲートウェイのキャッシュデバイス３１６中に位置している場合、アプリケーション３１４は単にコンテンツを直接デバイス３１６から転送するだろう。しかしながら、要求されたコンテンツが別のデバイス１０４中に位置している場合、アプリケーション３１４はそのデバイス１０４中のキャッシュアプリケーション３２０と通信して、デバイス１０４のキャッシュ３２２からコンテンツを転送するようにそのデバイス１０４にさせるだろう。デバイス１０４中のそれぞれのキャッシュアプリケーション３２０間での通信により、コンテンツを直接移すことによって、または、キャッシュアプリケーション３１４による両方のアプリケーション３２０との別々の通信を介して、これを行うことができる。
【００４０】
図４Ｂ中に図示されている例示的なメソドロジーは、発明の実施形態にしたがった分散キャッシュの完全分散化モデルのインプリメンテーションを反映している。
【００４１】
ステップＳ４５２において、上述したステップＳ２０２およびＳ４０２中でのように、デバイス１０４がコンテンツを要求する。ステップＳ４５４において、ステップＳ２０４およびＳ４０４中で上述しているように、要求は従来のルーティング技術を使用してゲートウェイにより処理される。リモートソースからの（ステップＳ４５４中で決定された）コンテンツ（例えば、ＹｏｕＴｕｂｅのような公開ウェブサイトからのビデオ）に対するすべての要求に対して、ステップＳ４５６において、サーチモジュール３１２は現在のキャッシュインデックス３０４をサーチして、要求されたコンテンツが分散キャッシュ３０２中に記憶されているか否かを決定する。
【００４２】
コンテンツがキャッシュされていなかった場合、ステップＳ４５８において、要求をインターネットに転送することにより、従来の方法でコンテンツを取得する。ステップＳ４６０において、新たに要求されたコンテンツがインターネットからデバイス１０４にダウンロードされた後、新たに記憶されたコンテンツとともに、分散キャッシュ３０２の特定のデバイス１０４におけるそのコンテンツのロケーションを反映させるように、要求しているデバイス１０４中のアプリケーション３２０は、共有キャッシュインデックス３０４を更新させる。例えば、アプリケーション３２０は、現在動作しているすべてのキャッシュインスタンスに気付くことができ、各インスタンスは分散インデックスのローカルコピーを記憶できる。コンテンツが記憶された後、特定のデバイス１０４中のアプリケーション３２０は、他のすべてのインスタンスにメッセージをブロードキャストすることができ、それに応答して、インスタンスはインデックスのローカルコピーを更新し、新たに記憶されたコンテンツを反映させることができる。
【００４３】
ステップＳ４５６において、要求されたコンテンツが分散キャッシュ３０２中で入手可能だということが代わりに決定された場合、ステップＳ４６２において、サーチモジュール３１２は要求されたコンテンツの分散キャッシュ３０２におけるロケーションをさらに決定し、ステップＳ４６４において、アプリケーション３１４は、要求されたコンテンツが分散キャッシュ３０２からデバイス１０４にストリーミングできるということをアプリケーション３２０に知らせて、アプリケーション３２０にコンテンツのロケーションを提供する。要求しているデバイス１０４中のアプリケーション３２０は、その後、キャッシュ３０２中の適切なロケーションからコンテンツを得るために必要なステップをとる。例えば、要求されたコンテンツがゲートウェイのキャッシュデバイス３１６中に位置している場合、アプリケーション３２０はアプリケーション３１４と通信し、デバイス３１６からコンテンツを取得するだろう。しかしながら、要求されたコンテンツが別のデバイス１０４中に位置している場合、アプリケーション３１４はその別のデバイス１０４中のキャッシュアプリケーション３２０と通信して、その別のデバイス１０４のキャッシュ３２２からコンテンツを転送するように、その別のデバイス１０４にさせるだろう。
【００４４】
さまざまな実施形態にしたがって、コンテンツがもはやアクセス可能ではないことがあるため、キャッシュされたコンテンツを記憶しているデバイス（例えば、ＰＣまたはラップトップ）がシャットダウンされるたびに、共有インデックスを更新させてもよい。
【００４５】
発明にしたがった分散キャッシュのいくつかの実施形態において、１つのデバイスから別のデバイスにキャッシュコンテンツを移動させることもまた、可能である。いくつかの実施形態では、「遠い」デバイスからよくアクセスされるコンテンツは、「近い」デバイスに（例えば、ゲートウェイ中のキャッシュに、または近くの中継器、ブリッジ、ルータ等の中のキャッシュに）移動させてもよい。「近い」デバイスは、例えば、（例えば、特定のデバイスに対するＴＣＰヘッダ情報中のＴＴＬ値により決定される）ホップの数に、（例えば、デバイスの接続の信号強度、または、ワイヤード接続かワイヤレス接続か、により決定される）そのデバイスへの／からの帯域幅に、接続の待ち時間等に基づいて選択することができるだろう。
【００４６】
クライアントサーバモデルにおいて、ここで記述した移動の機能性はキャッシュアプリケーション３１４中に組み込むことができ、キャッシュアプリケーション３１４は、キャッシュコンテンツを移動させて、デバイス間での移動を実行するのに必要なデバイスとの通信を管理することに対する、必要性または望ましさを周期的に決定することができる。完全分散化モデルにおいて、各キャッシュインスタンスは移動条件を監視して、各キャッシュインスタンス間での移動行為を調整することができる。これらの例によって教示された後、当業者は、さらにさまざまなインプリメンテーションの詳細を認識するだろう。
【００４７】
これらおよび他の移動の実施形態において、１つのデバイスのキャッシュのコンテンツは、デバイスが電源切断されるときに集中キャッシュまたは他のキャッシュに移動させることができる。例えば、完全分散化モデルのインプリメンテーションにおいて、アプリケーション３２０は他のキャッシュインスタンスにメッセージをブロードキャストすることができ、他のキャッシュインスタンスは、自らが利用可能な十分な容量を有しているかを決定することができる。そうである場合、他のキャッシュインスタンスはデバイス間でコンテンツを移動させるセッションを開始することができる。
【００４８】
別の例として、クライアントサーバモデルにおいて、以下でより詳細に記述するようなさまざまなアルゴリズムからの結果を使用して、アプリケーション３１４はデバイス１０４間での移動を選択的に実行することができる。特に、図３中に示されているように、分散化のインプリメンテーションの例示的な実施形態は、ゲートウェイ３０８中に含まれているクローリングアルゴリズム３５２を含む。クローリングアルゴリズム３５２はホームネットワーク１０２内のメディアをサーチするように構成することができる。例えば、アルゴリズムはインホームネットワーク１０２を通して「クローリング」して、他のロケーションにおいて入手可能な情報により、分散インデックスを更新する。いくつかの実施形態では、クローリングアルゴリズムはまた、選択されたコンテンツを分散キャッシュインスタンス間でコピー／移動させ、ここでコンテンツとともに移動の目的地は、アプリケーション３１４中のアルゴリズムにより選択される。
【００４９】
例えば、これらおよび他の実施形態において、アプリケーション３１４はユーザごとの好みを追跡するように構成されていてもよい。その場合、特定のユーザが所定のシステムにログインするとき、アプリケーション３１４は、コンテンツが「近くで」入手可能であり、それにより経験の質（ＱｏＥ）を高めるように、ユーザが「好む」コンテンツを適切なキャッシュに自動的にコピーするように構成されていてもよい。この技術は、キャッシュルックアップメカニズムとキャッシュ格納メカニズムとの両方に適用できるだろう。これらおよび他の実施形態においては、あるユーザが、あるサイトを訪れるということ／あるコンテンツをダウンロードするということ―はキャッシュされない、ということに着目すべきである。例えば、特定のユーザがそのブラウザ上で（例えば、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ（登録商標）において）「匿名モード」をイネーブルにしたとき、コンテンツをキャッシュする能力をオフにすることができる。ユーザごとの好みは、決してキャッシュされないタイプのコンテンツもまた含むことができる。決してキャッシュされないコンテンツの例としては、金融取引があるだろう。
【００５０】
これらおよび他の、アプリケーション３１４の実施形態にしたがって、デバイス１０４中に含まれるユーザインターフェースアプリケーションを介して、プロファイル用に、修飾子またはペルソナを規定する機会をユーザは得ることができる。例えば、ユーザは彼が典型的に映画を（ホームオフィスであろうと）一人で見るか、または、家族および／あるいは友人と一緒に見るかを、特定することができる。そのうえ、アプリケーション３１４は、所望されたコンテンツが典型的にいつ要求されるかを決定することができ、インターネットからダウンロードするのにコンテンツが最も安価である日／週のうちの時間に、所望されたコンテンツをキャッシュおよび／または移動させることができる。例えば、「サバイバー」のエピソードを毎晩午後９時に典型的に見るユーザのために、そのエピソードは午前３時にダウンロードされる。
【００５１】
図３中でさらに示されているように、各ユーザのブラウジング習慣を監視して、粒度データ解析を提供するように構成されている監視モジュール３５４を、ゲートウェイ３０８の例示的な実施形態は具備する。この特徴は、とりわけ、ユーザに対する特定の広告をターゲティングすることを可能にする。例えば、「サバイバー」のエピソードを毎晩午後９時に典型的に見るユーザのために、そのエピソードは午前３時にダウンロードされる。
【００５２】
発明の原理は単一のホームネットワークを超えて拡張することができるということに着目すべきである。例えば、図５はローカルクラウドの実施形態の例を示しており、ここでローカルクラウドは、２つ以上の世帯におけるネットワークを含む。クラウドは、単一のＩＰ接続を使用しているネットワークにより、ならびに、共通のゲートウェイを使用するいくつかの異なる、ワイヤードローカルネットワークおよび／またはワイヤレスローカルネットワークにより、形成することができる。別の例として、自己のＩＰ接続をそれぞれ有し、ワイヤードまたはワイヤレス接続を介して互いに通信しあうゲートウェイにより、クラウドを実現することができる。これらの例が教示された後、当業者はさまざまな代替実施形態を認識するだろう。
【００５３】
さまざまなクラウドの実施形態にしたがって、ローカルクラウドの構成は、記述されているキャッシュ技術を実行するために使用される。ローカルクラウドの構成により、単一の家庭内とともに１つ以上の「拡張」家庭（例えば、参加しているあらゆる隣人、複合家族）内のサービスとデバイスを、互いに結合させてもよい。例えば、４つの家庭のグループのためのメディアライブラリが「共有」され、これら４つの家庭からの誰に対しても利用可能になるだろう。しかしながら、各家庭は自己のインターネット接続を有し、同様に独立してサービス／アプリケーションにアクセスするということに、注意すべきである。さまざまな実施形態に対して、（ａ）情報が典型的に通過する「ハブ」として使用されることがある家庭内（または拡張家庭内）で、ストラテジックロケーション（どこ）を識別するために、および、（ｂ）どの情報がそのロケーションに記憶されているかを識別するために、キャッシュアルゴリズムが使用される。アルゴリズムはまた、どのコンテンツ、および、どれだけ多くのコンテンツが集中ハブにキャッシュされるかを規定してもよい。これらのハブは、（ワイヤード／ワイヤレス）中継器のようなさまざまなデバイスとしてとともに、家庭内の他のデバイス（ＰＣ、タブレット、ゲームコンソール等）として実施してもよい。
【００５４】
本発明での使用に適合させることができるゲートウェイデバイス１０８および３０８の、１つの限定しない例は、ともに審査中の出願第１３／１０２，６２３号中で記述されており、その内容は全体がここに組み込まれている。当業者は、本発明の例示的な実施形態を実現するために、その開示と本開示をどのように組み合わせるかを理解できるだろう。
【００５５】
本発明はその好ましい実施形態に関する参照とともに特に記述してきたが、本発明の精神および範囲から逸脱することなく、形式および詳細における変更や修正が行われてもよいことは、当業者には容易に明らかであるに違いない。添付された特許請求の範囲はそのような変更および修正を含むことが意図されている。
【図１】
2014519636.tif 000004
【図２】
2014519636.tif 000005
【図３】
2014519636.tif 000006
【図４Ａ】
2014519636.tif 000007
【図４Ｂ】
2014519636.tif 000008
【図５】
2014519636.tif 000009
【国際調査報告】
2014519636.tif 000010
2014519636.tif 000011