特許第6234919号(P6234919)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ イカノス・コミュニケーションズ・インコーポレイテッドの特許一覧

特許6234919ネットワーク化環境においてキャッシュするための方法および装置
<>
  • 特許6234919-ネットワーク化環境においてキャッシュするための方法および装置 図000003
  • 特許6234919-ネットワーク化環境においてキャッシュするための方法および装置 図000004
  • 特許6234919-ネットワーク化環境においてキャッシュするための方法および装置 図000005
  • 特許6234919-ネットワーク化環境においてキャッシュするための方法および装置 図000006
  • 特許6234919-ネットワーク化環境においてキャッシュするための方法および装置 図000007
  • 特許6234919-ネットワーク化環境においてキャッシュするための方法および装置 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6234919
(24)【登録日】2017年11月2日
(45)【発行日】2017年11月22日
(54)【発明の名称】ネットワーク化環境においてキャッシュするための方法および装置
(51)【国際特許分類】
   G06F 13/00 20060101AFI20171113BHJP
   G06F 12/00 20060101ALI20171113BHJP
   H04N 21/433 20110101ALI20171113BHJP
【FI】
   G06F13/00 540B
   G06F12/00 546K
   H04N21/433
【請求項の数】16
【全頁数】18
(21)【出願番号】特願2014-508523(P2014-508523)
(86)(22)【出願日】2012年4月25日
(65)【公表番号】特表2014-519636(P2014-519636A)
(43)【公表日】2014年8月14日
(86)【国際出願番号】US2012035031
(87)【国際公開番号】WO2012149043
(87)【国際公開日】20121101
【審査請求日】2015年4月2日
(31)【優先権主張番号】61/478,592
(32)【優先日】2011年4月25日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506009350
【氏名又は名称】イカノス・コミュニケーションズ・インコーポレイテッド
【氏名又は名称原語表記】IKANOS COMMUNICATIONS,INC.
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100140176
【弁理士】
【氏名又は名称】砂川 克
(72)【発明者】
【氏名】ブラック、ジョナサン・ジェイ.
(72)【発明者】
【氏名】カルスカー、プラモド・ビー.
【審査官】 小林 義晴
(56)【参考文献】
【文献】 特開2004−127189(JP,A)
【文献】 特開2010−231576(JP,A)
【文献】 特表2011−511338(JP,A)
【文献】 特開2010−086046(JP,A)
【文献】 特開2000−155712(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
G06F 12/00
H04N 21/433
(57)【特許請求の範囲】
【請求項1】
ネットワーク中で実現される方法において、
前記ネットワーク内の複数の異なるロケーションにおける分散キャッシュ内のコンテンツのインデックスを維持することと、前記複数の異なるロケーションは、前記ネットワークにおいて1つ以上のデバイスを含み、
インターネットからコンテンツをダウンロードする要求を受信することと、
前記インターネットから前記要求されたコンテンツをダウンロードする前に、前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することと、前記決定することは、前記分散キャッシュ中に前記要求されたコンテンツが記憶されているか否かを決定することをさらに含み、
前記要求に応答して、前記ネットワーク内の前記キャッシュから、または、前記インターネットから、前記要求されたコンテンツを提供することと、ここにおいて、前記コンテンツを要求したデバイスに、前記インターネットから前記要求されたコンテンツがダウンロードされたとき、前記コンテンツを要求したデバイスによりブロードキャストされるメッセージにより、前記インデックスが更新される、
前記ネットワーク内の複数の異なるロケーションにおいてメディアをサーチするために、前記複数の異なるロケーションにおいて入手可能な情報により、前記インデックスを更新することと
前記ネットワーク内の1つのデバイスから、前記ネットワーク内の他の1つ以上のデバイスに、前記分散キャッシュのコンテンツを移動させることとを含み、
前記移動させることは、前記ネットワーク内のデバイスから、前記1つ以上のデバイスに、メッセージをブロードキャストすることを含み、前記1つ以上のデバイスが前記コンテンツに対して利用可能な十分な容量を有しているか否かに少なくとも部分的に基づいて、前記1つ以上のデバイスを決定する
方法。
【請求項2】
前記1つ以上のデバイスは、パーソナルコンピューティングデバイス、メディアデバイスおよびネットワークデバイスのうちの1つ以上を含む請求項1記載の方法。
【請求項3】
前記パーソナルコンピューティングデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータおよびスマートフォンのうちの1つ以上を含む請求項2記載の方法。
【請求項4】
前記1つ以上のデバイスのそれぞれにキャッシュコヒーレンシーアプリケーションのインスタンスを実行させることをさらに含む請求項1記載の方法。
【請求項5】
前記キャッシュコヒーレンシーアプリケーションのインスタンスを実行することは、前記分散キャッシュの共有インデックスを維持することを含む請求項4記載の方法。
【請求項6】
前記キャッシュコヒーレンシーアプリケーションのインスタンスを実行することは、前記分散キャッシュのインデックスに対するアクセスを有することを含む請求項4記載の方法。
【請求項7】
前記ネットワーク内のそれぞれの異なるロケーションに記憶される異なるタイプのコンテンツデータを識別することをさらに含む請求項1記載の方法。
【請求項8】
前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することは、前記ネットワーク内とともに1つ以上の追加ネットワークを含むローカルクラウド内の、複数の異なるロケーションにおける分散キャッシュ中に前記コンテンツが記憶されているか否かを決定することを含む請求項1記載の方法。
【請求項9】
前記インターネットからコンテンツをダウンロードする前に、前記ローカルクラウド内のメディアをサーチするために、前記複数の異なるロケーションにおいて入手可能な情報により、前記インデックスを更新することをさらに含む請求項8記載の方法。
【請求項10】
前記キャッシュ中に維持するコンテンツデータのタイプを決定するために、ユーザごとの好みを追跡することをさらに含む請求項1記載の方法。
【請求項11】
前記キャッシュ中に維持する異なるタイプのコンテンツデータを決定するために、ユーザごとの好みを追跡することをさらに含む請求項7記載の方法。
【請求項12】
前記ユーザごとの好みにしたがって、コンテンツを適切なデバイスに自動的にコピーすることをさらに含む請求項11記載の方法。
【請求項13】
前記ネットワークはインホームネットワークからなる請求項1記載の方法。
【請求項14】
移動させることは、前記ネットワーク内のデバイスが電源切断されるときに自動的に実行される請求項1記載の方法。
【請求項15】
前記1つ以上のデバイスはそれぞれ、前記要求されたコンテンツを記憶するデバイスと直接通信することによって、前記キャッシュから要求されたコンテンツを提供することができる請求項1記載の方法。
【請求項16】
前記ネットワーク内のデバイスが電源切断されるときに、前記インデックスを自動的に更新することをさらに含む請求項1記載の方法。
【発明の詳細な説明】
【関連出願に対する相互参照】
【0001】
本出願は、2011年4月25日に出願された米国仮出願第61/478,592号に対して優先権を主張し、その内容は、参照により全体がここに組み込まれている。
【発明の分野】
【0002】
本発明は、一般的に、ローカルエリアネットワークに関連し、さらに詳細には、ローカルネットワークまたはホームネットワークのような、ネットワーク化環境におけるキャッシュ技術に関連している。
【発明の背景】
【0003】
長年にわたって、ホームネットワークは、サイズおよび複雑さにおいて成長してきた。今日、典型的に、同じ家庭内に、同じタイプのコンテンツを再生/表示できる複数のデバイスが存在する(例えば、オンラインビデオをコンピュータ上で、iPhone(登録商標)上で、またはテレビ上で見ることができ、音楽をコンピュータ上で、iPhone上で、または専用のインターネットラジオボックス上で聴くことができる)。これらのデバイスのそれぞれは、よくホームWi−Fi(登録商標)ネットワークを通してインターネットからコンテンツをダウンロードして、再生することができる。コンテンツはインホームデバイス(例えば、DLNA(登録商標)メディアプレイヤまたはMP3レポジトリ)からも再生されることがある。
【0004】
一般的に、パーソナルコンピュータ、タブレット、スマートフォン(例えば、iPhone)等のようなデバイスが、コンテンツを再生または表示するとき、コンテンツが記憶媒体上にローカルに記憶されていないケースでは、コンテンツはインターネットからその特定のデバイス上にダウンロードされている。例えば、特定のビデオクリップをYouTube(登録商標)ウェブサイト上で4回見たい個人は、もし個人がそのビデオクリップを4つの異なるデバイス上で見たい場合、典型的に、ビデオをYouTubeウェブサイトから4回ダウンロード/ストリーミングしなければならない。
【0005】
エンドカスタマーの視点からすれば、ネットワークサービスに関係する帯域幅利用にサービスプロバイダが制限または上限を組み込んでいるため、カスタマーは消費される帯域幅の量に関してますます注意深くなっている。そのため、インターネットからコンテンツを再ダウンロードする必要性は、増加する問題となっている。さらに、サービスプロバイダの観点からすれば、(同じコンテンツが異なるインホームデバイスによってダウンロードされるときにあまねく発生する)余分なネットワークトラフィックにおける削減もまた望ましい。
【0006】
サービスプロバイダの視点からすれば、食べ放題サービスモデルから離れて、ダウンロードバイトごとのコストモデルに向けて移行する試みが存在する。さらに、余分なネットワークトラフィックを思いとどまらせる試みが存在する。サービスプロバイダの観点からすれば、どちらもデータダウンロードに毎月の上限を組み込むことによって遂行することができ、それにより、上限に到達したとき、消費者はダウンロードスピードの減少を経験するか、または、いかなる追加コンテンツもまったくダウンロードすることができない。そのようなケースにおいて、同じコンテンツ/ファイルを複数回ダウンロードすることは、ユーザの毎月の割り当てが不必要に消耗されることを意味する。さらに、同じコンテンツ/ファイルが再ダウンロードされるという事実は、同じコンテンツを複数回運ぶためにネットワーク帯域幅が消費されていることを意味し、それにより、ネットワーク負荷と輻輳が不必要に増加される。これは、サービスプロバイダが避けようとしていることである。
【0007】
したがって、データの余分なネットワークアクセスに関係するネットワーク帯域幅を減少させる技術に対する必要性がある。
【発明の概要】
【0008】
一般的に、ここに記述するキャッシュ技術を実現することによって、本発明にしたがった方法および装置はこれらの問題およびその他の問題を緩和する。そのため、ホームネットワーク中の1つのデバイスが特定のコンテンツ(例えば、ビデオ、歌)を所定のサイトからダウンロードして再生するとき、インターネットから同じコンテンツを再ダウンロードすることなく、同じコンテンツが別のデバイス上で再び再生されるために入手可能であるように、そのコンテンツはインホームネットワーク内にキャッシュされる。
【0009】
いくつかの実施形態では、集中キャッシュスキームまたは分散キャッシュスキームのいずれかが実現される。要求されたタイムリミット内に、インターネットからコンテンツをダウンロードするか、または、キャッシュから所望のコンテンツを読み取るかのいずれかをデバイスが決定できるように、デバイスはメモリ(オンチップ、またはオンボード、またはオンディスクのいずれか)を備えていてもよい。1つ以上のデバイスは、キャッシュ中のコンテンツに関係するコンテンツのテーブルを記憶する。発明にしたがった例示的な方法は、インターネットからマルチメディアコンテンツをダウンロードする要求を受け取ることを含む。あらゆる既存の(または、完全に新しい)メカニズムを使用して、あらゆるインホームデバイスによって、この要求が行われることがある。要求されたコンテンツをインターネットからダウンロードする前に、要求されたコンテンツがインホームネットワーク内のキャッシュ中で入手可能か否かに関して決定が行われる。要求に応答して、要求されたコンテンツはインホームネットワーク中のキャッシュから、または、インターネットから提供される。要求されたコンテンツがインホームネットワーク内で入手可能か否かを決定するために使用されるキャッシュアルゴリズムは、集中キャッシュスキームまたは分散キャッシュスキームのいずれかに基づいていてもよい。
【0010】
これらおよびその他の態様にしたがって、発明の実施形態にしたがった、インホームネットワーク中で実現される方法は、インターネットからコンテンツをダウンロードする要求を受け取ることと、要求されたコンテンツをインターネットからダウンロードする前に、要求されたコンテンツがインホームネットワーク内のキャッシュ中で入手可能か否かを決定することと、要求に応答して、インホームネットワーク中のキャッシュの1つから、または、インターネットから、要求されたコンテンツを提供することとを含む。
【0011】
本発明のこれらおよびその他の態様および特徴は、添付の図面とともに、発明の特定の実施形態についての以下の記述のレビューの際に当業者に明らかになるだろう。
【図面の簡単な説明】
【0012】
図1図1は、発明の実施形態にしたがった集中キャッシュ技術を実現する例示的なホームネットワークのブロックダイアグラムである。
図2図2は、発明の実施形態にしたがった例示的な集中キャッシュメソドロジーを図示しているフローチャートである。
図3図3は、発明の実施形態にしたがった分散キャッシュ技術を実現する例示的なホームネットワークのブロックダイアグラムである。
図4A図4Aは、発明の実施形態にしたがった例示的な分散キャッシュメソドロジーを図示しているフローチャートである。
図4B図4Bは、発明の実施形態にしたがった例示的な分散キャッシュメソドロジーを図示しているフローチャートである。
図5図5は、発明にしたがったキャッシュ技術を実現することが可能な、例示的なローカルクラウドを図示しているブロックダイアグラムである。
【好ましい実施形態の詳細な説明】
【0013】
ここで、当業者が発明を実施できるようにするために、発明の実例として提供されている図面を参照して、本発明を詳細に記述する。とりわけ、図面および以下の例は本発明の範囲を単一の実施形態に限定しようとするものではなく、記述された要素または図示された要素のいくつか、または、全部を交換することによって、その他の実施形態が可能である。そのうえ、本発明のある要素が既知のコンポーネントを使用して部分的にまたは全面的に実現できる場合、本発明の理解に対して必要なそのような既知のコンポーネントの一部分のみが記述されることになり、そのような既知のコンポーネントのうちその他の部分の詳細な記述は、発明をあいまいにしないために省略されることになる。ソフトウェア中で実現されるとして記述している実施形態は、ソフトウェア中に限定されるべきではなく、ハードウェア中、または、ソフトウェアとハードウェアの組み合わせにおいて実現される実施形態を含めることができ、当業者には明らかであろう通り、その他の方法がここで特定されない限り、逆もまた同じである。本明細書において、単数のコンポーネントを示している実施形態は限定していると考えられるべきではない。むしろ、発明は、複数の同じコンポーネントを含んでいる他の実施形態を含むように意図されている。そしてその他の方法でここで明示的に説明されない限り、逆もまた同じである。そのうえ、そのように明示的に説明されない限り、明細書中または特許請求の範囲中のいかなる用語に対しても、出願人はまれな意味または特別な意味が与えられることを意図していない。さらに、本発明は、実例としてここで参照されている既知のコンポーネントに対する、現在および将来的に既知の均等物を含む。
【0014】
本開示の状況において、「インホームネットワーク」は一般的に、家庭または小さなオフィスに関係するネットワーク化された環境を作り上げるあらゆるタイプの分散された、通信コンポーネント、コンピューティングコンポーネント、記憶コンポーネントを指す。インホームネットワーク内でコンテンツをキャッシュするためにさまざまな実施形態を記述するが、キャッシュされたコンテンツは、ファイル、マルチメディアコンテンツ、その他のタイプのデータを含む。たとえ発明がインホームネットワークの実現に対する特定の参照により記述されていても、発明の原理は、単一の家庭またはオフィス環境に限定されず、以下の記述により認識されるように、その他のタイプの環境に拡張することができる。
【0015】
発明にしたがったキャッシュする方法と装置の実施形態は、集中化と分散化の、少なくとも2つの一般的なインプリメンテーションを含む。集中化のインプリメンテーションにおいて、キャッシュはホームゲートウェイ(HGW)上または同様のデバイス上で実現される。また、要求されたコンテンツがキャッシュ中で入手可能か否かをHGWに示す、ルックアップテーブルまたはインデックスが、オンチップ/オンボードメモリ中に組み込まれていてもよい。分散化のインプリメンテーションにおいて、さまざまなインホームデバイス(ラップトップ、ルータ、中継器、iPad(登録商標)等)に渡って、本発明のキャッシュスキームは実現される。デバイスのうちのいくつか、または全部は、HGWにおけるキャッシュアプリケーションに関連するクライアントサーバスキームを使用して実現できる、または、完全に分散されたモデルを使用して実現できる、キャッシュコヒーレンシーアプリケーションのインスタンスを実行する。
【0016】
図1はネットワーク化環境100の実施形態であり、本発明にしたがった例示的な集中キャッシュ技術は、その中で実現してもよい。示されているように、1つ以上のデバイス104は、インホームネットワーク102中で接続されており、インホームネットワーク102は、ホームゲートウェイ108を介してインターネット106へのアクセスを提供している。インターネットを通して、YouTubeまたは他のウェブサイトのようなビデオ共有ポータル110からのコンテンツとともに、インターネット上のさまざまなサイトからのテキストおよびマルチメディアコンテンツを含む、他のさまざまなタイプのコンテンツを、ユーザはダウンロードすることができる。
【0017】
デバイス104は、(図1に示すような)ラップトップコンピュータ、デスクトップコンピュータおよびタブレットコンピュータ(例えば、iPad(登録商標)、Kindle(登録商標)等)のようなパーソナルコンピュータデバイス、スマートフォン(例えば、iPhoneおよびAndroid(登録商標)フォン)のようなネットワークレディフォンデバイスを含むことができる。また、デバイス104は、ネットワーク可能なテレビ、インターネットラジオシステム、ゲームデバイス(例えば、Wii(登録商標)、Xbox(登録商標)等)、DVR等のような、他のさまざまなタイプのメディアデバイスをさらに含むことができる。デバイス104は、ルータ、中継器、NASドライブ等のような他のホームネットワークデバイスをさらに含むことができる。デバイス104は、ワイヤード接続130(例えば、Ethernet(登録商標)、powerline等)またはワイヤレス接続132(例えば、WiFi、Bluetooth(登録商標)等)を介して、ホームネットワーク102に接続されていてもよい。
【0018】
ホームゲートウェイ108は、Net Gear(登録商標)、Linksys(登録商標)、D−Link(登録商標)、Cisco(登録商標)等のようなコマーシャルベンダーから入手可能なような、ワイヤードルータまたはワイヤレスルータ中に組み込むこと、または、その中で提供することができる。本例により教示された後に当業者が認識するであろう通り、そのようなルータデバイスは、典型的に、本発明のキャッシュ技術によって動作するように適合できる、従来のルーティング機能性を含む。
【0019】
本発明を実現することができるホームネットワークは、ケーブルネットワークまたは電話ネットワークのようなキャリアネットワークまたはプロバイダネットワークにさらに結合できる、DSL(登録商標)モデムのような(示されていない)インターネットアクセスデバイスをさらに典型的に含むことに着目すべきである。そのようなデバイスがルータ機能性を含むいくつかの実施形態においては、ゲートウェイ108はそのようなデバイス中に組み込むことができる。他の実施形態においては、ゲートウェイ108とインターネットアクセスデバイスとは別のデバイス中で実現される。例は、Apple(登録商標)のAirport Expressのようなサービスであり、これは、Ethernet(登録商標)インターフェースを生み出す適切なモデム(FiOS(登録商標)/DSL/他)を仮定している。
【0020】
示されているように、本発明のキャッシュの実施形態にしたがって、コンテンツをキャッシュするための、コンテンツサーチモジュール112、キャッシュアプリケーション114、メモリ記憶デバイス116をさらに具備しているという点において、ホームゲートウェイ108は従来のホームゲートウェイとは異なっている。実施形態において、記憶デバイス116はフラッシュメモリ/ダブルデータレート(DDR)メモリのようなオンボードメモリ中で実現される。追加実施形態または代替実施形態において、記憶デバイス116は、ゲートウェイ108デバイスに接続された、USB2.0/USB3.0/eSATA/のようなオフボード高速デバイス中、または、他のタイプの記憶ディスク中で実現される。モジュール112とキャッシュアプリケーション114は、例えば、ここで記述されているような機能性により補足された、従来の、または、プロプライエタリな、ルータデバイスソフトウェアおよび/またはファームウェアを使用して、実現できる。
【0021】
一般的に、コンテンツサーチモジュール112は、記憶デバイス116中のキャッシュのコンテンツをサーチして、デバイス104によって要求されているコンテンツが、インターネットからというよりもむしろ記憶デバイス116から供給できるか否かを決定する。モジュール112のさらに例示的なインプリメンテーションの詳細は、先述の機能に関する記述から収集できる。
【0022】
一般的に、キャッシュアプリケーション114は、少なくとも以下の態様を制御する。1)キャッシュに割り当てられるメモリの量、および、2)(最も過去に使用された(LRU)キャッシュアルゴリズムに基づこうと、最も最近に使用された(MRU)キャッシュアルゴリズムに基づこうと、または、他のキャッシュアルゴリズムに基づこうと)キャッシュのコンテンツ自体。キャッシュアプリケーション114は、デバイス116中で入手可能なコンテンツのインデックスを維持するように、さらに構成されている。アプリケーション114のさらに例示的なインプリメンテーションの詳細は、先述の機能に関する記述から収集できる。
【0023】
キャッシュアプリケーション114中で維持できる例示的なインデックスを以下に例示する。
【表1】
【0024】
以上に示されているように、1つの例示的なインプリメンテーションにおいて、キャッシュインデックスの各エントリーは、記述、ポインタ、2セットのメタデータ、という4つの異なる要素を含む。記述要素は、キャッシュされたコンテンツと、デバイス104から受信した新しいコンテンツに対する要求中の情報との間のマッチングを、キャッシュアプリケーションが実行できるように意図されている。この例において、記述は典型的にURL(例えば、www.youtube.com)の一部を含む。1セットのメタデータは、コンテンツに対する要求の中に出現することがある1つ以上のキーワード(例えば、「レディーガガ」)を含んでいてもよい。別のセットのメタデータは、要求の中に含めることのできる追加アイテムまたは追加タグ(例えば、解像度400×300)を含んでいてもよい。ポインタ要素は、記憶デバイス116中のアドレスを含む。この例において、ポインタは実際のメモリアドレスである。しかしながら、ディレクトリ構造におけるファイルIDおよびパスのような、多くのバリエーションが可能である。メタデータは、キャッシュされたコンテンツの文字による記述または他の記述を提供するのに役立つことがある、キャッシュされたコンテンツについての追加情報を含む。
【0025】
図2は、発明の実施形態にしたがった例示的な集中キャッシュメソドロジーを図示しているフローチャートである。
【0026】
ステップS202において、デバイス104がコンテンツを要求する。例えば、デバイス104がInternet Explorer(登録商標)のようなブラウザを実行しているコンピュータの場合、www.youtube.comにより供給されているページ上のコンテンツのリストのような、ウェブページ上のリンクをユーザがクリックすることにより、コンテンツに対する要求を開始することができる。クリックに応答して、HTTPプロトコルと、HTMLのようなコンテンツ中に埋め込まれたリンクからの情報とを使用して、ブラウザアプリケーションはIP要求を形成し、それをゲートウェイ108に送る。別の例として、IP要求は、キャッシュ中の新たなエントリーのルックアップ/学習を実行する役割を果たすエンティティによって「スヌープ」されてもよい。この機能性はゲートウェイ中/ルータ中で実行されてもよい。ステップS204において、要求は、従来のルーティング技術を使用してゲートウェイにより処理される。例えば、ゲートウェイ108はルーティングテーブル中の要求に関係するIPアドレスをルックアップし、要求がリモートネットワークロケーション上のコンテンツに関係するか否かを決定することができる。(ステップS204中で決定された)リモートソースから取得する必要があるコンテンツ(例えば、YouTubeのような公開ウェブサイトからのビデオ)に対するすべての要求に対して、ステップS206において、サーチモジュール112はキャッシュデバイス116をサーチして、要求されたコンテンツがデバイス116中に記憶されているか否かを決定する。
【0027】
要求されたコンテンツがキャッシュされていなかった場合、ステップS208において、要求をインターネットに転送することにより、従来の方法でコンテンツを取得する。ステップS210において、インターネットからデバイス104へダウンロードされるコンテンツが、ゲートウェイ108を介してデバイス104にストリーミングされるとき、そのコンテンツは、アプリケーション114によってデバイス116中のキャッシュにもコピーされる。それらが完了したとき、ステップS212において、アプリケーション114はキャッシュインデックスを更新して、新たに記憶されたコンテンツを反映させる。
【0028】
ステップS204において、要求されたコンテンツがローカルで入手可能だということが代わりに決定された場合、ステップS214において、コンテンツはゲートウェイ108によりキャッシュデバイス116からデバイス104にストリーミングされる。
【0029】
図3は、発明にしたがった例示的な分散キャッシュ技術が実現されてもよい、ネットワーク化環境300の実施形態である。
【0030】
図1中に示されている集中化のインプリメンテーションとは対照的に、分散化のインプリメンテーションにおいては、1つ以上のデバイス104は、キャッシュアプリケーション320を実行してローカルキャッシュ322を維持するように構成されている。
【0031】
デバイス104がWindows(登録商標)オペレーティングシステムを実行するラップトップコンピュータまたはデスクトップコンピュータであるような実施形態においては、キャッシュアプリケーション320はデバイスドライバアプリケーションまたはブラウザプラグインアプリケーションによって実現することができる。例えば、デバイス104がWiFiトランシーバを含む場合で、デバイス104が最初にゲートウェイ308とのワイヤレス接続を確立させようと試行するとき、ゲートウェイ308は、キャッシュアプリケーション320を含むデバイスドライバソフトウェアを自動的にダウンロードしてインストールするように、デバイス104にさせることができる。別の例として、キャッシュアプリケーションは(デバイスに付属している初期ソフトウェアの一部を)製造する間に、デバイス上に予めロードさせてもよい。さらに別の例として、(新たなプリンタのためにドライバを手動でダウンロードするのと同様に)手動で、または、(新たなプリンタがラップトップに接続されたときにドライバがダウンロードされるのと同様に)ネットワーク内の「キャッシュ技術」のための自動検出サポートに応答して、インターネットからそのプラットフォーム用にキャッシュアプリケーションを明示的にダウンロードしてもよい。当業者は、本例によって教示された後、おそらくは、デバイス104のタイプに依存して、アプリケーション320を実現するさまざまな代替方法を認識するだろう。
【0032】
一般的に、キャッシュ322のコンテンツを管理し、プロプライエタリな、または、他のプロトコルを介して他のキャッシュインスタンスと通信し、ローカルでおよび/または他のキャッシュインスタンスと共有してキャッシュインデックスを維持するような機能性を、キャッシュアプリケーション320は含む。キャッシュアプリケーション320のインプリメンテーションおよび他の詳細は、本発明にしたがった以下の例示的なメソドロジーによって教示された後、当業者に、さらにより明らかになるだろう。
【0033】
キャッシュ322は、デバイス104が管理するメモリ、または、管理できるメモリによって実現される。例えば、デバイス104がWindowsオペレーティングシステムおよびInternet Explorerソフトウェアを実行するパーソナルコンピュータ(例えば、ラップトップまたはデスクトップ)である場合、キャッシュ322はローカルドライブ上のブラウザ一時ディレクトリ中のファイルによって実現することができる。MP3プレイヤの例においては、(揮発性、このケースでは、デバイスがスイッチオンされるたびにキャッシュが構築される。または、不揮発性、このケースでは、キャッシュがいったん構築されて、その後、デバイスのブートに渡って再使用される)オンチップメモリ中に記憶されてもよい。当業者が認識するであろう通り、多数の代替物が可能である。
【0034】
図3中でさらに示されているように、ゲートウェイ308はサーチモジュール312、キャッシュアプリケーション314、およびキャッシュ316を含む。これらの要素は、図1中で図示されている集中化の実施形態における類似するコンポーネントと同様に実現できる。追加および変更は、以下の機能的記述から明らかになるだろう。以下でより詳細に記述する本実施形態の態様にしたがって、図3は、キャッシュ322とキャッシュ316が一緒になって、分散キャッシュインデックス304中に反映される分散キャッシュ302をどのように実現するのかをさらに図示する。
【0035】
図4Aおよび図4Bは、発明の実施形態にしたがった例示的な分散キャッシュメソドロジーを図示しているフローチャートである。
【0036】
図4A中で図示されている例示的なメソドロジーは、発明の実施形態にしたがった分散キャッシュのクライアントサーバモデルのインプリメンテーションを反映している。
【0037】
ステップS402において、デバイス104がコンテンツを要求するが、このことはステップS202に対して図2中で上述したのと同様の動作を含むことができる。ステップS404において、要求は従来のルーティング技術を使用してゲートウェイにより処理されるが、このことはステップS204に対して上述したのと同様の動作を含むことができる。リモートソースからの(ステップS404中で決定された)コンテンツ(例えば、YouTubeのような公開ウェブサイトからのビデオ)に対するすべての要求に対して、ステップS406において、サーチモジュール312は現在のキャッシュインデックス304をサーチして、要求されたコンテンツが分散キャッシュ302中に記憶されているか否かを決定する。
【0038】
要求されたコンテンツがキャッシュされていなかった場合、ステップS408において、要求をインターネットに転送することにより、従来の方法でコンテンツを取得する。ステップS410において、新たに要求されたコンテンツがインターネットからデバイス104にダウンロードされた後、新たに記憶されたコンテンツとともに、分散キャッシュ302の特定のデバイス104における、そのコンテンツのロケーションを反映させるように、アプリケーション314はキャッシュインデックス304を更新させる。
【0039】
ステップS406において、要求されたコンテンツが分散キャッシュ302中で入手可能だということが代わりに決定された場合、ステップS412において、要求されたコンテンツの分散キャッシュ302におけるロケーションをサーチモジュール312がさらに決定し、ステップS414において、アプリケーション314は、要求されたコンテンツが分散キャッシュ302からデバイス104にストリーミングされるようにする。例えば、要求されたコンテンツがゲートウェイのキャッシュデバイス316中に位置している場合、アプリケーション314は単にコンテンツを直接デバイス316から転送するだろう。しかしながら、要求されたコンテンツが別のデバイス104中に位置している場合、アプリケーション314はそのデバイス104中のキャッシュアプリケーション320と通信して、デバイス104のキャッシュ322からコンテンツを転送するようにそのデバイス104にさせるだろう。デバイス104中のそれぞれのキャッシュアプリケーション320間での通信により、コンテンツを直接移すことによって、または、キャッシュアプリケーション314による両方のアプリケーション320との別々の通信を介して、これを行うことができる。
【0040】
図4B中に図示されている例示的なメソドロジーは、発明の実施形態にしたがった分散キャッシュの完全分散化モデルのインプリメンテーションを反映している。
【0041】
ステップS452において、上述したステップS202およびS402中でのように、デバイス104がコンテンツを要求する。ステップS454において、ステップS204およびS404中で上述しているように、要求は従来のルーティング技術を使用してゲートウェイにより処理される。リモートソースからの(ステップS454中で決定された)コンテンツ(例えば、YouTubeのような公開ウェブサイトからのビデオ)に対するすべての要求に対して、ステップS456において、サーチモジュール312は現在のキャッシュインデックス304をサーチして、要求されたコンテンツが分散キャッシュ302中に記憶されているか否かを決定する。
【0042】
コンテンツがキャッシュされていなかった場合、ステップS458において、要求をインターネットに転送することにより、従来の方法でコンテンツを取得する。ステップS460において、新たに要求されたコンテンツがインターネットからデバイス104にダウンロードされた後、新たに記憶されたコンテンツとともに、分散キャッシュ302の特定のデバイス104におけるそのコンテンツのロケーションを反映させるように、要求しているデバイス104中のアプリケーション320は、共有キャッシュインデックス304を更新させる。例えば、アプリケーション320は、現在動作しているすべてのキャッシュインスタンスに気付くことができ、各インスタンスは分散インデックスのローカルコピーを記憶できる。コンテンツが記憶された後、特定のデバイス104中のアプリケーション320は、他のすべてのインスタンスにメッセージをブロードキャストすることができ、それに応答して、インスタンスはインデックスのローカルコピーを更新し、新たに記憶されたコンテンツを反映させることができる。
【0043】
ステップS456において、要求されたコンテンツが分散キャッシュ302中で入手可能だということが代わりに決定された場合、ステップS462において、サーチモジュール312は要求されたコンテンツの分散キャッシュ302におけるロケーションをさらに決定し、ステップS464において、アプリケーション314は、要求されたコンテンツが分散キャッシュ302からデバイス104にストリーミングできるということをアプリケーション320に知らせて、アプリケーション320にコンテンツのロケーションを提供する。要求しているデバイス104中のアプリケーション320は、その後、キャッシュ302中の適切なロケーションからコンテンツを得るために必要なステップをとる。例えば、要求されたコンテンツがゲートウェイのキャッシュデバイス316中に位置している場合、アプリケーション320はアプリケーション314と通信し、デバイス316からコンテンツを取得するだろう。しかしながら、要求されたコンテンツが別のデバイス104中に位置している場合、アプリケーション314はその別のデバイス104中のキャッシュアプリケーション320と通信して、その別のデバイス104のキャッシュ322からコンテンツを転送するように、その別のデバイス104にさせるだろう。
【0044】
さまざまな実施形態にしたがって、コンテンツがもはやアクセス可能ではないことがあるため、キャッシュされたコンテンツを記憶しているデバイス(例えば、PCまたはラップトップ)がシャットダウンされるたびに、共有インデックスを更新させてもよい。
【0045】
発明にしたがった分散キャッシュのいくつかの実施形態において、1つのデバイスから別のデバイスにキャッシュコンテンツを移動させることもまた、可能である。いくつかの実施形態では、「遠い」デバイスからよくアクセスされるコンテンツは、「近い」デバイスに(例えば、ゲートウェイ中のキャッシュに、または近くの中継器、ブリッジ、ルータ等の中のキャッシュに)移動させてもよい。「近い」デバイスは、例えば、(例えば、特定のデバイスに対するTCPヘッダ情報中のTTL値により決定される)ホップの数に、(例えば、デバイスの接続の信号強度、または、ワイヤード接続かワイヤレス接続か、により決定される)そのデバイスへの/からの帯域幅に、接続の待ち時間等に基づいて選択することができるだろう。
【0046】
クライアントサーバモデルにおいて、ここで記述した移動の機能性はキャッシュアプリケーション314中に組み込むことができ、キャッシュアプリケーション314は、キャッシュコンテンツを移動させて、デバイス間での移動を実行するのに必要なデバイスとの通信を管理することに対する、必要性または望ましさを周期的に決定することができる。完全分散化モデルにおいて、各キャッシュインスタンスは移動条件を監視して、各キャッシュインスタンス間での移動行為を調整することができる。これらの例によって教示された後、当業者は、さらにさまざまなインプリメンテーションの詳細を認識するだろう。
【0047】
これらおよび他の移動の実施形態において、1つのデバイスのキャッシュのコンテンツは、デバイスが電源切断されるときに集中キャッシュまたは他のキャッシュに移動させることができる。例えば、完全分散化モデルのインプリメンテーションにおいて、アプリケーション320は他のキャッシュインスタンスにメッセージをブロードキャストすることができ、他のキャッシュインスタンスは、自らが利用可能な十分な容量を有しているかを決定することができる。そうである場合、他のキャッシュインスタンスはデバイス間でコンテンツを移動させるセッションを開始することができる。
【0048】
別の例として、クライアントサーバモデルにおいて、以下でより詳細に記述するようなさまざまなアルゴリズムからの結果を使用して、アプリケーション314はデバイス104間での移動を選択的に実行することができる。特に、図3中に示されているように、分散化のインプリメンテーションの例示的な実施形態は、ゲートウェイ308中に含まれているクローリングアルゴリズム352を含む。クローリングアルゴリズム352はホームネットワーク102内のメディアをサーチするように構成することができる。例えば、アルゴリズムはインホームネットワーク102を通して「クローリング」して、他のロケーションにおいて入手可能な情報により、分散インデックスを更新する。いくつかの実施形態では、クローリングアルゴリズムはまた、選択されたコンテンツを分散キャッシュインスタンス間でコピー/移動させ、ここでコンテンツとともに移動の目的地は、アプリケーション314中のアルゴリズムにより選択される。
【0049】
例えば、これらおよび他の実施形態において、アプリケーション314はユーザごとの好みを追跡するように構成されていてもよい。その場合、特定のユーザが所定のシステムにログインするとき、アプリケーション314は、コンテンツが「近くで」入手可能であり、それにより経験の質(QoE)を高めるように、ユーザが「好む」コンテンツを適切なキャッシュに自動的にコピーするように構成されていてもよい。この技術は、キャッシュルックアップメカニズムとキャッシュ格納メカニズムとの両方に適用できるだろう。これらおよび他の実施形態においては、あるユーザが、あるサイトを訪れるということ/あるコンテンツをダウンロードするということ―はキャッシュされない、ということに着目すべきである。例えば、特定のユーザがそのブラウザ上で(例えば、Google Chrome(登録商標)において)「匿名モード」をイネーブルにしたとき、コンテンツをキャッシュする能力をオフにすることができる。ユーザごとの好みは、決してキャッシュされないタイプのコンテンツもまた含むことができる。決してキャッシュされないコンテンツの例としては、金融取引があるだろう。
【0050】
これらおよび他の、アプリケーション314の実施形態にしたがって、デバイス104中に含まれるユーザインターフェースアプリケーションを介して、プロファイル用に、修飾子またはペルソナを規定する機会をユーザは得ることができる。例えば、ユーザは彼が典型的に映画を(ホームオフィスであろうと)一人で見るか、または、家族および/あるいは友人と一緒に見るかを、特定することができる。そのうえ、アプリケーション314は、所望されたコンテンツが典型的にいつ要求されるかを決定することができ、インターネットからダウンロードするのにコンテンツが最も安価である日/週のうちの時間に、所望されたコンテンツをキャッシュおよび/または移動させることができる。例えば、「サバイバー」のエピソードを毎晩午後9時に典型的に見るユーザのために、そのエピソードは午前3時にダウンロードされる。
【0051】
図3中でさらに示されているように、各ユーザのブラウジング習慣を監視して、粒度データ解析を提供するように構成されている監視モジュール354を、ゲートウェイ308の例示的な実施形態は具備する。この特徴は、とりわけ、ユーザに対する特定の広告をターゲティングすることを可能にする。例えば、「サバイバー」のエピソードを毎晩午後9時に典型的に見るユーザのために、そのエピソードは午前3時にダウンロードされる。
【0052】
発明の原理は単一のホームネットワークを超えて拡張することができるということに着目すべきである。例えば、図5はローカルクラウドの実施形態の例を示しており、ここでローカルクラウドは、2つ以上の世帯におけるネットワークを含む。クラウドは、単一のIP接続を使用しているネットワークにより、ならびに、共通のゲートウェイを使用するいくつかの異なる、ワイヤードローカルネットワークおよび/またはワイヤレスローカルネットワークにより、形成することができる。別の例として、自己のIP接続をそれぞれ有し、ワイヤードまたはワイヤレス接続を介して互いに通信しあうゲートウェイにより、クラウドを実現することができる。これらの例が教示された後、当業者はさまざまな代替実施形態を認識するだろう。
【0053】
さまざまなクラウドの実施形態にしたがって、ローカルクラウドの構成は、記述されているキャッシュ技術を実行するために使用される。ローカルクラウドの構成により、単一の家庭内とともに1つ以上の「拡張」家庭(例えば、参加しているあらゆる隣人、複合家族)内のサービスとデバイスを、互いに結合させてもよい。例えば、4つの家庭のグループのためのメディアライブラリが「共有」され、これら4つの家庭からの誰に対しても利用可能になるだろう。しかしながら、各家庭は自己のインターネット接続を有し、同様に独立してサービス/アプリケーションにアクセスするということに、注意すべきである。さまざまな実施形態に対して、(a)情報が典型的に通過する「ハブ」として使用されることがある家庭内(または拡張家庭内)で、ストラテジックロケーション(どこ)を識別するために、および、(b)どの情報がそのロケーションに記憶されているかを識別するために、キャッシュアルゴリズムが使用される。アルゴリズムはまた、どのコンテンツ、および、どれだけ多くのコンテンツが集中ハブにキャッシュされるかを規定してもよい。これらのハブは、(ワイヤード/ワイヤレス)中継器のようなさまざまなデバイスとしてとともに、家庭内の他のデバイス(PC、タブレット、ゲームコンソール等)として実施してもよい。
【0054】
本発明での使用に適合させることができるゲートウェイデバイス108および308の、1つの限定しない例は、ともに審査中の出願第13/102,623号中で記述されており、その内容は全体がここに組み込まれている。当業者は、本発明の例示的な実施形態を実現するために、その開示と本開示をどのように組み合わせるかを理解できるだろう。
【0055】
本発明はその好ましい実施形態に関する参照とともに特に記述してきたが、本発明の精神および範囲から逸脱することなく、形式および詳細における変更や修正が行われてもよいことは、当業者には容易に明らかであるに違いない。添付された特許請求の範囲はそのような変更および修正を含むことが意図されている。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ネットワーク中で実現される方法において、
インターネットからコンテンツをダウンロードする要求を受信することと、
前記インターネットから前記要求されたコンテンツをダウンロードする前に、前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することと、
前記要求に応答して、前記ネットワーク中の前記キャッシュのうちの1つから、または、前記インターネットから、前記要求されたコンテンツを提供することとを含む方法。
[C2]
前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することは、前記コンテンツが前記ネットワーク内の単一のロケーションにおける集中キャッシュ中に記憶されているか否かを決定することを含むC1記載の方法。
[C3]
前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することは、前記コンテンツが前記ネットワーク内の複数の異なるロケーションにおける分散キャッシュ中に記憶されているか否かを決定することを含むC1記載の方法。
[C4]
前記複数の異なるロケーションは、前記ネットワーク中のさまざまなデバイスを含むC3記載の方法。
[C5]
前記デバイスは、パーソナルコンピューティングデバイス、メディアデバイスおよびネットワークデバイスのうちの1つ以上を含むC4記載の方法。
[C6]
前記パーソナルコンピューティングデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータおよびスマートフォンのうちの1つ以上を含むC5記載の方法。
[C7]
前記デバイスのそれぞれにキャッシュコヒーレンシーアプリケーションのインスタンスを実行させることをさらに含むC4記載の方法。
[C8]
前記キャッシュコヒーレンシーアプリケーションを実行することは、前記分散キャッシュの共有インデックスを維持することを含むC7記載の方法。
[C9]
前記キャッシュコヒーレンシーアプリケーションを実行することは、前記分散キャッシュのインデックスに対するアクセスを有することを含むC7記載の方法。
[C10]
前記デバイスのうちの1つから前記デバイスのうちの別のものに、前記分散キャッシュのコンテンツを移動させることをさらに含むC3記載の方法。
[C11]
前記ネットワーク内のストラテジックロケーションを識別して、前記分散キャッシュのコンテンツを移動させることをさらに含むC10記載の方法。
[C12]
前記ネットワーク内のそれぞれの異なるロケーションに記憶される異なるタイプの情報を識別することをさらに含むC10記載の方法。
[C13]
前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することは、前記ネットワーク内とともに1つ以上の追加ネットワークを含むローカルクラウド内の、複数の異なるロケーションにおける分散キャッシュ中に前記コンテンツが記憶されているか否かを決定することを含むC1記載の方法。
[C14]
前記インターネットからコンテンツをダウンロードする前に、前記ネットワーク内のメディアをサーチするために前記ネットワークをクローリングすることをさらに含むC3記載の方法。
[C15]
前記インターネットからコンテンツをダウンロードする前に、前記ローカルクラウド内のメディアをサーチするために前記ネットワークをクローリングすることをさらに含むC13記載の方法。
[C16]
前記キャッシュ中に維持するコンテンツのタイプを決定するために、ユーザごとの好みを追跡することをさらに含むC1記載の方法。
[C17]
前記キャッシュ中に維持する異なるタイプのコンテンツを決定するために、ユーザごとの好みを追跡することをさらに含むC12記載の方法。
[C18]
前記ユーザごとの好みにしたがって、コンテンツを適切なデバイスに自動的にコピーすることをさらに含むC17記載の方法。
[C19]
前記ユーザのブラウジング習慣を監視して、粒度データ解析を提供することをさらに含むC1記載の方法。
[C20]
前記ネットワークはインホームネットワークからなるC1記載の方法。
[C21]
ネットワーク内で実現される方法において、
インターネットからコンテンツをダウンロードする要求を受信することと、
前記要求されたコンテンツが前記ネットワーク内のキャッシュ中で入手可能か否かを決定することと、
前記要求されたコンテンツが前記キャッシュ内で入手可能ではない場合、前記コンテンツを前記キャッシュ中に保存することとを含む方法。
[C22]
前記キャッシュは前記ネットワーク中の複数の異なるデバイス上で実現される分散キャッシュを含み、前記方法は前記複数のデバイスのうちのいくつかにおいてキャッシュコヒーレンシーアプリケーションを実行することをさらに含むC21記載の方法。
[C23]
前記キャッシュコヒーレンシーアプリケーションを実行することは、前記分散キャッシュの共有インデックスを維持することを含むC22記載の方法。
[C24]
前記キャッシュコヒーレンシーアプリケーションを実行することは、前記分散キャッシュのインデックスに対するアクセスを有することを含むC22記載の方法。
[C25]
前記分散キャッシュのコンテンツを、前記デバイスのうちの1つから前記デバイスのうちの別のものに移動させることをさらに含むC22記載の方法。
[C26]
前記分散キャッシュのコンテンツを移動させる、前記ネットワーク内のストラテジックロケーションを識別することをさらに含むC25記載の方法。
[C27]
前記ネットワーク内のそれぞれの異なるロケーションにおいて記憶される異なるタイプの情報を識別することをさらに含むC25記載の方法。
[C28]
前記ネットワークはインホームネットワークからなるC21記載の方法。
[C29]
ネットワーク中で実現される方法において、
インターネットからコンテンツをダウンロードする要求を受信することと、
前記ネットワーク用のキャッシュ中に維持するコンテンツを決定するためにユーザごとの好みを追跡することと、
前記ユーザごとの好みに基づいて前記キャッシュ中にコンテンツを維持することとを含む方法。
[C30]
ユーザごとの好みは、あるサイトからのコンテンツがキャッシュされるべきか否かを特定することを含むC29記載の方法。
[C31]
ユーザごとの好みは、あるユーザによって要求されたコンテンツがキャッシュされるべきか否かを特定することを含むC29記載の方法。
[C32]
ユーザごとの好みは、あるタイプのコンテンツがキャッシュされるべきか否かを特定することを含むC29記載の方法。
[C33]
前記ネットワークはインホームネットワークからなるC29記載の方法。
図1
図2
図3
図4A
図4B
図5