(57)【要約】      （修正有）【課題】コンテンツをユーザに良好に提供する。【解決手段】情報指向ネットワーク（ＩＣＮ）のコンテンツストアノードの組は、データをキャッシュし、要請されたデータに割り当てられたドメインに基づいて、このデータのインタレストを処理する。ＣＳノードは、キャッシュされるべきコンテンツオブジェクトを受信し、コンテンツオブジェクトと関連するドメインを決定することによってコンテンツオブジェクトを処理する。また、ドメインと関連する記憶リポジトリを選択し、コンテンツオブジェクトを記憶する。さらに、コンテンツのインタレストも受信し、インタレストの名称と関連する規則を探索することによってインタレストを処理する。規則は、プログラム動作を実施するための命令の組を含む。次いで、適合する規則をＣＳノードが見つけた場合、ＣＳノードは、プログラム動作を実施するために規則の命令を実行する。【選択図】なし【特許請求の範囲】
【請求項１】
コンピュータによって実行されるときに前記コンピュータに方法を実施させる指示を記憶する非一時的なコンピュータ読取可能な記憶媒体であって、前記方法が、
キャッシュされるべきコンテンツオブジェクトを受信するステップと、
前記コンテンツオブジェクトの１つ以上の属性を決定するステップと、
前記コンテンツオブジェクトのために、前記決定した属性の１つ以上と関連するドメインを選択するステップと、
前記ドメインと関連する記憶リポジトリを選択するステップと、
前記選択したリポジトリに前記コンテンツオブジェクトを記憶するステップと、
を含む、記憶媒体。
【請求項２】
コンピュータで実施される方法であって、
コンテンツ記憶デバイスによって、コンテンツのインタレストを受信するステップと、
前記インタレストの名称と関連する規則の探索動作を実施するステップであり、前記規則が、プログラム動作を実施するための命令の組を含む、ステップと、
取得した前記規則に応じて前記規則の命令を実行するステップと、
を含む方法。
【請求項３】
１つ以上のローカルリポジトリを検索して、前記インタレストを満足するコンテンツオブジェクトをローカルリポジトリが記憶しているかを判定するステップ
をさらに含む、請求項２に記載の方法。
【請求項４】
前記規則が前記コンテンツオブジェクトのキャッシュヒットと関連しており、
前記探索動作を実施するステップが、ローカルリポジトリが前記コンテンツオブジェクトを記憶しているという決定に応じて、前記規則を返送する、請求項３に記載の方法。
【請求項５】
前記規則が前記コンテンツオブジェクトのキャッシュミスと関連しており、
前記探索動作を実施するステップが、前記１つ以上のローカルリポジトリが前記コンテンツオブジェクトを記憶していないという決定に応じて、前記規則を返送する、請求項３に記載の方法。
【請求項６】
前記規則の命令を実行するステップが、
前記インタレストと関連する他のコンテンツオブジェクトの組を決定することと、
前記他のコンテンツオブジェクトを記憶するための目標リポジトリを選択することと、
情報指向ネットワーク上での前記他のコンテンツオブジェクトの取得に応じて、前記他のコンテンツオブジェクトを前記目標リポジトリに記憶することと、
を伴う、請求項１に記載の方法。
【請求項７】
前記規則の命令を実行するステップが、
前記インタレストと関連する他のコンテンツオブジェクトを記憶するリポジトリを選択することと、
前記リポジトリをオンライン状態にすることと、
を伴う、請求項１に記載の方法。
【請求項８】
前記規則の命令を実行するステップが、
前記インタレストの名称と関連するリアルタイム情報を収集することと、
前記リアルタイム情報を含む１つ以上のコンテンツオブジェクトを生成することと、
前記生成したコンテンツオブジェクトを目標リポジトリに記憶することと、
を伴う、請求項１に記載の方法。
【請求項９】
前記リアルタイム監視情報が、
コンテンツオブジェクトの過去の統計性能と、
コンテンツオブジェクトの瞬間の統計性能と、
コンテンツオブジェクトを要請するクライアントの属性と、
リポジトリのキャッシュヒット率と、
リポジトリのキャッシュミス率と、
のうちの１つ以上を含む、請求項８に記載の方法。
【請求項１０】
監視情報の種類を識別する名称のインタレストを受信するステップと、
前記要請された監視情報を含むコンテンツオブジェクトを返送するステップと、
をさらに含む、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、概してキャッシュサーバに関する。より具体的に、この開示は、情報指向ネットワーク（ＩＣＮ）上でコンテンツのキャッシュを能動的に管理する分散型コンテンツストアに関する。
【背景技術】
【０００２】
携帯型のインターネット可能な計算技術の進展によって、人々が家庭または路上を問わずにいつでもデジタルコンテンツを消費することが容易になっている。人々は、他者と意思疎通するため、彼らの日々の業務を補助する情報を検索するため、および／または、インターネット上で音楽または他のメディアコンテンツをストリーミングするために、彼らの個人計算デバイスを使用し得る。しかし、インターネットの知名度は、各種の地理的位置からの複数のユーザによる同時リクエストによってオンラインサービスを圧倒し得る。オンラインサービスがクライアントデバイスからのリクエストを速やかに取り扱えない場合、オンラインサービスのユーザは、彼らのユーザエクスペリエンスを妨げる遅延を経験し得る。このことがしばしば生じる場合、ユーザは、オンラインサービスを低品質であるとみなし得るとともに、そのような待機時間の影響を受けない競合するオンラインサービスへの乗り換えを決断し得る。
【０００３】
コンテンツをユーザに良好に提供するために、システム管理者またはサービスプロバイダは、オンラインコンテンツをホストするためにウェブサーバの組をしばしば配備するとともに、コンテンツをクライアントデバイスに提供するために各種の地理的位置に亘る複数のキャッシュサーバを活用し得る。多くのユーザがオンラインサービスにサインアップするにつれて、システム管理者は、クライアントデバイスに対する性能を向上するために追加のキャッシュサーバを配備し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、キャッシュサーバは、クライアントデバイスによって最も頻繁にまたは直前に要請されるデータのみをキャッシュするようにしばしば設計される。このことは、人気のあるデータのリクエスト応答時間を向上させ、大半のクライアントデバイスからのリクエストにウェブサービスを素早く応答させる。残念ながら、クライアントデバイスが不人気のデータのリクエストを発行するときに、この不人気のデータは、キャッシュサーバにキュッシュされていないことが起こり得、望ましくない長いリクエスト応答時間をもたらし得る。例えば、映画ストリーミングサービスは、人気のある映画を各種のキャッシュサーバに記憶し得、このことは、映画をクライアントデバイスに高品位フォーマットで提供することを映画ストリーミングサービスに許容する。しかし、最近人気のない映画の鑑賞をユーザが所望する場合、映画ストリーミングサービスは、不人気のコンテンツを取り扱うように構成されたサーバまたは完全なコンテンツカタログへの直接アクセスを有する低速のマシンから直接、この映画をサービスする必要があり得る。メディア記憶サーバからクライアントデバイスへのストリーミング性能は、近くのキャッシュサーバの性能に劣り得、このことは、コンテンツ再生中のバッファリング問題をもたらし得、またはメディアストリームの低解像度バージョンをストリーミングすることをメディア記憶サーバに要求し得る。
【課題を解決するための手段】
【０００５】
一実施形態は、データをキャッシュし得るとともに、要請されたデータに割り当てられたドメインに基づいて、このデータのインタレストを処理し得る、情報指向ネットワーク（ＩＣＮ）のコンテンツストアノードの組を提供する。動作中、コンテンツストアノードは、キャッシュされるべきコンテンツオブジェクトを受信し得る。コンテンツストアノードは、コンテンツオブジェクトと関連するドメインを決定するとともに、ドメインと関連する記憶リポジトリを選択することによって、コンテンツオブジェクトを処理し得る。コンテンツストアノードは、次いで、選択したリポジトリにコンテンツオブジェクトを記憶し得る。
【０００６】
一部の実施形態において、コンテンツストアノードは、複数のリポジトリのそれぞれのリポジトリが１つ以上のドメインと関連するように、複数のリポジトリを管理する。
【０００７】
一部の実施形態において、コンテンツストアノードは、リポジトリの管理属性、リポジトリの類型的属性、リポジトリの性能属性、リポジトリのオントロジー属性、および／またはリポジトリのセキュリティ属性に基づいて、それぞれのリポジトリをドメインに割り当て得る。
【０００８】
一部の実施形態において、記憶リポジトリは、メモリデバイス、ローカルの不揮発性記憶デバイス、ネットワーク記憶デバイス、分散型データストアまたはデータベースを含み得る。
【０００９】
一部の実施形態において、コンテンツオブジェクトのドメインを決定する際に、コンテンツストアノードは、コンテンツオブジェクトの１つ以上の属性を識別し得るとともに、識別した属性の１つ以上と関連するドメインを選択する。
【００１０】
一部の実施形態において、コンテンツオブジェクトの識別した属性は、所有者、データサイズ、コンテンツの名称、コンテンツオブジェクトの署名者、デジタル署名、コンテンツオブジェクトの寿命、および／またはコンテンツオブジェクトのアクセス頻度を含み得る。
【００１１】
一部の実施形態において、コンテンツストアノードは、コンテンツオブジェクトと関連するコンテンツ制作者を決定するためにコンテンツオブジェクトを分析し得る。また、コンテンツオブジェクトのドメインを決定する際に、コンテンツストアノードは、コンテンツオブジェクトのコンテンツ制作者と関連するドメインを決定し得る。
【００１２】
一部の実施形態において、コンテンツストアノードは、キャッシュしたコンテンツオブジェクトの名称を指定するインタレストを受信し得る。コンテンツストアノードは、コンテンツオブジェクトと関連するドメインの組を決定するとともに、インタレストがアクセス許可を有するドメインをドメインの組から決定することによって、インタレストを処理し得る。コンテンツストアノードは、次いで、決定したドメインに割り当てられたリポジトリからコンテンツオブジェクトを返送する（ｒｅｔｕｒｎ）。
【００１３】
一実施形態は、リポジトリに記憶されたコンテンツオブジェクトのインタレストによってトリガされる規則を実行することによって、キャッシュリポジトリを自動的に管理する、コンテンツストアノードの組を提供する。動作中、コンテンツストアノードは、コンテンツのインタレストを受信し得る。コンテンツストアノードは、プログラム動作を実施するための命令の組を規則が含むように、インタレストの名称と関連する規則の探索動作を実施することによって、インタレストを処理し得る。次いで、規則の取得に応じて、コンテンツストアは、所定の動作を実施するために規則の命令を実行し得る。
【００１４】
一部の実施形態において、コンテンツストアノードは、インタレストを満足するローカルリポジトリがコンテンツオブジェクトを記憶しているかを判定するために、１つ以上のローカルリポジトリを検索し得る。
【００１５】
一部の実施形態において、ローカルリポジトリがコンテンツオブジェクトを記憶している場合、コンテンツストアノードは、コンテンツオブジェクトのキャッシュヒットと関連する規則を取得するために探索動作を実施し得る。
【００１６】
一部の実施形態において、１つ以上のローカルリポジトリがコンテンツオブジェクトを記憶していない場合、コンテンツストアノードは、コンテンツオブジェクトのキャッシュミスと関連する規則を取得するために探索動作を実施し得る。
【００１７】
一部の実施形態において、規則の命令は、インタレストと関連する他のコンテンツオブジェクトの組を決定するとともに、他のコンテンツオブジェクトを記憶するための目標リポジトリを選択するように、コンテンツストアノードを構成する。また、規則の命令は、情報指向ネットワーク上で他のコンテンツオブジェクトを取得するように構成するとともに、他のコンテンツオブジェクトを目標リポジトリに記憶する。
【００１８】
一部の実施形態において、規則の命令は、インタレストと関連する他のコンテンツオブジェクトを記憶するリポジトリを選択するとともに、リポジトリをオンライン状態にするように、コンテンツストアノードを構成する。
【００１９】
一部の実施形態において、規則の命令は、インタレストの名称と関連するリアルタイム情報を収集するように、リアルタイム情報を含む１つ以上のコンテンツオブジェクトを生成するように、および生成したコンテンツオブジェクトを目標リポジトリに記憶するように、コンテンツストアノードを構成する。
【００２０】
これらの実施形態の一部の変形において、リアルタイム監視情報は、１つ以上のコンテンツオブジェクトの過去の統計性能、コンテンツオブジェクトの瞬間の統計性能、コンテンツオブジェクトを要請するクライアントの属性、リポジトリのキャッシュヒット率、および／またはリポジトリのキャッシュミス率を含む。
【００２１】
一部の実施形態において、コンテンツストアノードは、名称が監視情報の種類を識別するインタレストを受信し得るとともに、要請された監視情報を含むコンテンツオブジェクトを返送する。
【００２２】
一部の実施形態において、リアルタイム監視情報を含むコンテンツオブジェクトをコンテンツストアノードが生成するときに、コンテンツストアノードは、生成したコンテンツオブジェクトと関連する監視情報の種類を受信すべき目標ネットワークデバイスを識別するとともに、生成したコンテンツオブジェクトを目標ネットワークデバイスに送信する。
【図面の簡単な説明】
【００２３】
【図１】図１は、実施形態による、発行者（ｐｕｂｌｉｓｈｅｒ）と関連するドメインに基づいて発行者の各種のＣＳノードでデータのキャッシュを容易にする例示的な計算環境を図示している。
【図２】図２は、実施形態による、コンテンツストアでコンテンツオブジェクトを処理するための方法を図示するフローチャートを表している。
【図３】図３は、実施形態による、コンテンツオブジェクトと関連するドメインに基づいてコンテンツオブジェクトのインタレストを処理するための方法を図示するフローチャートを表している。
【図４】図４は、実施形態による、コンテンツオブジェクトと関連する規則を選択および実行するための方法を図示するフローチャートを表している。
【図５】図５は、実施形態による、コンテンツオブジェクトのキャッシュヒットまたはキャッシュミスに基づいて規則を選択するための方法を図示するフローチャートを表している。
【図６】図６は、実施形態による、発行者と関連するドメインに基づいて発行者の各種のＣＳノードでデータのキャッシュを容易にする例示的な装置を図示している。
【図７】図７は、実施形態による、発行者と関連するドメインに基づいて発行者の各種のＣＳノードでデータのキャッシュを容易にする例示的なコンピュータシステムを図示している。
【発明を実施するための形態】
【００２４】
図において、同様の参照番号は、同一の図面要素を参照している。
【００２５】
以下の説明は、任意の当業者が実施形態を作成および使用することを可能にするように提示されるとともに、特定の用途およびその要件の文脈において提供される。開示する実施形態に対する各種の修正は、当業者にとって容易に分かるであろうし、本明細書に規定される一般的な原理は、本開示の主旨および範囲から逸脱しない他の実施形態および用途に適用され得る。よって、本発明は、示している実施形態に限定されないが、本明細書に開示する原理および特徴と一致する最も広い範囲に調和すべきである。
【００２６】
本発明の実施形態は、コンテンツオブジェクトを自動的に検索する、または、これらのコンテンツオブジェクトのインタレストを受信し得るＣＳノードにコンテンツオブジェクトを移動する、コンテンツストア（ＣＳ）ノードの組を提供することによって、各種のキャッシュサーバに亘って記憶されたデータを最適化する課題を解決する。例えば、ＣＳノードは、殆どアクセスされないデータストリームの第１のセグメントをキャッシュし得るとともに、第１のセグメントのインタレストを受信した後にデータストリームの後のセグメントをプリフェッチする。
【００２７】
コンテンツ指向ネットワーク（ＣＣＮ）は、コンテンツを記憶しているエンドポイントに拘らず、名称によってコンテンツを利用可能にするように設計される。よって、ＣＳノードは、コンテンツをキャッシュするとともに、このコンテンツをＣＣＮのセグメントに利用可能にするために、ＣＣＮに亘って配備され得る。クライアントデバイスは、コンテンツに命名するインタレストを発信することによって、コンテンツを取得し得る。コンテンツを記憶しているＣＳノードにインタレストが到達する場合、このＣＳノードは、インタレストの受信またはコンテンツの返送をコンテンツの制作者に要求せずに、コンテンツを返送し得る。
【００２８】
しかし、典型的なＣＳノードは、クライアントデバイスによって最も頻繁にまたは直近に要請されたデータのみをキャッシュする。これらのＣＳノードは、典型的に、最近アクセスされていないコンテンツオブジェクトを上書きして新しいデータを記憶する。ＣＳノードがテラビットルータ等の高帯域幅経路に沿う場合、このＣＳノードは、人気のあるコンテンツが有意な期間（例えば一日）キャッシュされ得ることを確実にするために、実質的に大きいリポジトリを維持する必要がある。典型的なＣＳノードのリポジトリが十分に大きくない場合、ＣＳノードは、新しいコンテンツオブジェクトのための領域を作るために、人気のあるデータさえも上書きする必要があり得る。
【００２９】
一部の実施形態において、ＣＳノードは、各コンテンツオブジェクトをドメインに割り当て得、このことは、カスタムな方法で様々な種類のコンテンツオブジェクトを取り扱うことをＣＳノードに許容する。また、ＣＳノードは、１つ以上のドメインを記憶リポジトリに割り当て得る。このことは、リポジトリにアクセスし得るクライアントを構成するとともに、それらの送出と関連する性能属性を構成するため等、属性のための送出属性を構成することをサービスプロバイダに許容する。ＣＳノードは、他の関連するコンテンツオブジェクトをプリフェッチするため、またはＣＳノードの組に亘って負荷分散を実施するため等、コンテンツオブジェクトに関する所定のアクションを実施するために、コンテンツオブジェクトまたはドメインと関連する規則も使用し得る。
【００３０】
一部の実施形態において、ＣＳノードは、情報指向ネットワーク（ＩＣＮ）内で動作する。ＩＣＮにおいて、各コンテンツは、個々に命名されるとともに、各データは、同一のデータの他のバージョンまたは他のソースからのデータ等の任意の他のデータからデータを区別する一意の名称に結び付けられる。この一意の名称は、一意の名称を示すリクエストまたはインタレストを発信することによって、データを要請することをネットワークデバイスに許容するとともに、データの記憶位置、ネットワーク位置、用途および輸送手段から独立したデータを取得し得る。ネームドデータネットワーク（ＮＤＮ）またはコンテンツ指向ネットワーク（ＣＣＮ）は、ＩＣＮアーキテクチャの例であり、以下の用語は、ＮＤＮまたはＣＣＮアーキテクチャの要素を記述する。
【００３１】
コンテンツオブジェクト：一意の名称に結び付けられる単一の命名されたデータ。コンテンツオブジェクトは、「持続性」であり、このことは、コンテンツオブジェクトが計算デバイス内または異なる計算デバイスに亘って移動し得るが変化しないことを意味する。コンテンツオブジェクトの任意の構成要素が変化する場合、変化を施すエンティティは、更新されたコンテンツを含むとともに、新しいコンテンツオブジェクトを新しい一意の名称に結び付ける、新しいコンテンツオブジェクトを作成する。
【００３２】
一意の名称：ＩＣＮにおける名称は、典型的に、位置に依存せずにコンテンツオブジェクトを一意的に識別する。データ転送デバイスは、コンテンツオブジェクトのネットワークアドレスまたは物理的位置に拘らずに、コンテンツオブジェクトを生成または記憶するネットワークノードに向けてパケットを転送するために、名称または名称プレフィクスを使用し得る。一部の実施形態において、名称は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）であり得る。ＨＳＶＬＩは、各種の方法で階層化され得る幾つかの階層構成要素に区分され得る。例えば、個々の名称構成要素、ｐａｒｃ、ｈｏｍｅ、ｎｄｎおよびｔｅｓｔ．ｔｘｔは、名称「／ｐａｒｃ／ｈｏｍｅ／ｎｄｎ／ｔｅｓｔ．ｔｘｔ」を形成するように、左ほど上位プレフィクスとなる態様で構造化され得る。よって、名称「／ｐａｒｃ／ｈｏｍｅ／ｎｄｎ」は、「／ｐａｒｃ／ｈｏｍｅ／ｎｄｎ／ｔｅｓｔ．ｔｘｔ」の「親」または「プレフィクス」であり得る。追加の構成要素は、共同文書等のコンテンツアイテムの異なるバージョンの間を区別するために使用され得る。
【００３３】
一部の実施形態において、名称は、コンテンツオブジェクトのデータ（例えばチェックサム値）および／またはコンテンツオブジェクトの名称の要素から派生するハッシュ値等の非階層的な識別子を含み得る。ハッシュに基づく名称の説明は、米国特許出願第１３／８４７，８１４号（表題「ＯＲＤＥＲＥＤ−ＥＬＥＭＥＮＴ  ＮＡＭＩＮＧ  ＦＯＲ  ＮＡＭＥ−ＢＡＳＥＤ  ＰＡＣＫＥＴ  ＦＯＲＷＡＲＤＩＮＧ」）に記述されている。名称は、フラットラベルでもあり得る。以下では、「名称」は、階層型の名称または名称プレフィクス、フラットな名称、固定長名称、任意長名称またはラベル（例えば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）等、ネームドデータネットワークにおけるデータの任意の名称を参照するために使用される。
【００３４】
インタレスト：データのリクエストを示すとともに、データの名称（または名称プレフィクス）を含む、パケット。データ消費者は、ＣＣＮ／ＮＤＮルータが記憶デバイス（例えばキャッシュサーバ）、または、リクエストまたはインタレストを満足するために要請されたデータを提供し得るデータ制作者に向けて伝播し得る、情報指向ネットワークに亘るリクエストまたはインタレストを発信し得る。
【００３５】
一部の実施形態において、ＩＣＮシステムは、コンテンツ指向ネットワーク（ＣＣＮ）アーキテクチャを含み得る。しかし、本明細書に開示している方法は、他のＩＣＮアーキテクチャにも同様に適用可能である。ＣＣＮアーキテクチャの説明は、米国特許出願第１２／３３８，１７５号（Ｖａｎ  Ｌ．ＪａｃｏｂｓｏｎおよびＤｉａｎａ  Ｋ．Ｓｍｅｔｔｅｒｓによる表題「ＣＯＮＴＲＯＬＬＩＮＧ  ＴＨＥ  ＳＰＲＥＡＤ  ＯＦ  ＩＮＴＥＲＥＳＴＳ  ＡＮＤ  ＣＯＮＴＥＮＴ  ＩＮ  Ａ  ＣＯＮＴＥＮＴ  ＣＥＮＴＲＩＣ  ＮＥＴＷＯＲＫ」、２００８年１２月１８日出願）に記述されている。
【００３６】
図１は、実施形態による、発行者と関連するドメインに基づいて発行者の各種のＣＳノードでデータのキャッシュを容易にする例示的な計算環境１００を図示している。計算環境１００は、複数のエッジノード１０４およびルーティングノード１０６を含む、ネームドデータネットワーク１０２（または情報指向ネットワーク）を含み得る。例えば、ネットワーク１０２は、インターネットサービスプロバイダ（ＩＳＰ）によって管理され得るとともに、複数のクライアントデバイスへのネットワークアクセスを提供するエッジノード１０４．１を含み得る。ネットワーク１０２は、複数のオンラインサービスへのネットワークアクセスを提供する、および／または複数のオンラインサービスによってアクセス可能なバックホールネットワークとインタフェースする、エッジノード１０４．２も含み得る。エッジノード１０４は、１つ以上のリポジトリを有するコンテンツストアを含むことによって、ＣＳノードをそれぞれ実現し得る。
【００３７】
計算環境１００は、ネットワーク１０２に亘ってインタレストパケットを発信し得る他のネットワークデバイスも含み得る。例えば、オンラインサービスプロバイダは、ネットワーク１０２を介してアクセス可能であるコンテンツ制作者１０８にオンラインサービスを配備し得る。コンテンツ制作者１０８は、ネットワーク１０２のエッジノード１０４．２とインタフェースするサーバコンピュータまたはコンピュータクラスタを含み得るとともに、１人以上のユーザのためのデータを記憶するリポジトリを含み得る。クライアントデバイス１１２がコンテンツ制作者１０８によってホストされるコンテンツオブジェクトのインタレストを発信する場合、デバイス１１２は、エッジノード１０４．１のコンテンツストアがコンテンツオブジェクトをキャッシュしている場合に、エッジノード１０４．１からコンテンツオブジェクトを受信し得る。そうでなければ、ＮＤＮ１０２のルーティングノードは、コンテンツ制作者１０８に向けてインタレストを転送し得る。エッジノード１０４．２がコンテンツオブジェクトをキャッシュしている場合、エッジノード１０４．２は、インタレストを満足するようにコンテンツオブジェクトを返送し得る。そうでなければ、エッジノード１０４．２は、コンテンツ制作者１０８に向けてインタレストを転送する。コンテンツ制作者１０８が返送経路に沿ってクライアントデバイス１１２にコンテンツオブジェクトを返送すると、エッジノード１０４．１および１０４．２のコンテンツストアは、後のインタレストを満足するためにコンテンツオブジェクトをキャッシュし得る。
【００３８】
一部の実施形態において、ＣＳノードのグループは、キャッシュに基づくグローバル負荷分散を実現し得る。例えば、ＩＣＮにおいて、クライアントは、データのインタレストを発信し得、ＩＣＮルータは、インタレストを満足するコンテンツオブジェクトを返送し得るノードに向けてインタレストを転送し得る。ルータがインタレストの処理方法を知らない場合、ルータは、インタレストを満足し得るノードに最終的に到達するように既定のルートを使用してインタレストを転送し得る。コンテンツオブジェクトがクライアントに返送されると、返送経路に沿う１つ以上のＣＳノードは、コンテンツオブジェクトをキャッシュし得るとともに、コンテンツオブジェクトの後のインタレストを満足するように、キャッシュしたコンテンツオブジェクトを使用し得る。このことは、コンテンツが要請される場所の近くの各種の地理的位置でキャッシュされることをコンテンツに当然に許容する。
【００３９】
また、一部の実施形態において、ＣＳノードは、それが使用する異なる種類の記憶領域を、カスタマー特有の予約を実施する等のために異なるドメインに分離し得、その場合、ドメインが各カスタマーに割り当てられるとともに、１つ以上の記憶リポジトリがドメインに割り当てられ得る。ＣＳノードは、カスタマーまたはクライアントが受け得るサービスのクラスも、ドメインとそれらの関連に基づいて決定し得る。この種類のサービス品質管理は、典型的なドメインネームシステム（ＤＮＳ）サーバがドメインメンバシップに拘らずＨＴＴＰリクエストを所定のキャッシュサーバに転送するに過ぎないことを考えれば、典型的なキャッシュサーバの使用によっては不可能である。
【００４０】
例えば、一部の実施形態において、ＣＳノードは、映像ストリーミングサービスを実現するカスタマーのためのデータをホストし得る。このストリーミングサービスは、有料購読者用の高性能リポジトリを確立し得るとともに、他のクライアント用の低品質リポジトリを確立し得る。クライアントは、ネームドデータネットワークに沿う任意のネットワークノードが、要請されたストリームセグメントを含むコンテンツオブジェクトを返送することによってインタレストに応答し得るように、映像ストリームのセグメントの一連のインタレストを発信することによって、映像ストリーミングサービスによってホストされるデータにアクセスし得る。多くのケースにおいて、ストリーミングサービスは、高性能リポジトリおよび低性能リポジトリに映像ストリームをキャッシュし得る。
【００４１】
インタレストが高性能リポジトリと関連するドメインへのアクセス許可を有する場合、ＣＳノードは、高性能リポジトリによってホストされるデータを使用してインタレストを処理する。そうでなければ、ＣＳノードは、低性能リポジトリを使用する。低性能リポジトリは、無料クライアントからの要請によって負荷過大になり得るとともに、低い映像ビットレートを使用して、要請された映像セグメントを返送する必要があり得る。他方で、高性能リポジトリは、リポジトリの高性能特徴に起因して、および有料クライアントからの低い負荷に起因して、映像セグメントを高品位フォーマットで返送可能であり得る。
【００４２】
一部の実施形態において、複数のＣＳノードは、グループとして動作し得るとともに、必要に応じてＣＳノードの間でコンテンツオブジェクトを複製または移動するように互いに相互動作する。１つのＣＳノードのリポジトリがフルに成ると、ＣＳノードは、これらのＣＳノードからのキャッシュデータを消費しているクライアントによるストリーミング経験に影響を及ぼさずに、キャッシュしたコンテンツオブジェクトをこのリポジトリから他のリポジトリ（例えば、同一のドメインに割り当てられたリポジトリ）へ自動的に複製し得る。２つのＣＳノードが一方のＣＳノードから他方のＣＳノードへデータを移動させるときにはいつでも、これらのＣＳノードは、ＣＳノードの間で複製または移動されたコンテンツを反映するようにルーティング情報を更新し得る。
【００４３】
サービスプロバイダの管理者は、キャッシュしたコンテンツオブジェクトを過負荷にされたＣＳノード（例えば、リクエストによって過負荷にされたノード）から、利用可能な帯域幅を有する他のＣＳノードへオフロードすることによって、ＣＳノードに亘る負荷を分散させ得る。例えば、サービスプロバイダは、ＣＳノードの記憶領域をリースし得、管理者は、それらの使用を最大化するように、これらのリースされたリポジトリのキャッシュデータを周期的に調整し得る。このことは、他のコンテンツを他の未使用のＣＳノードにオフロードすることによって、特別なストリーミングイベント（例えば、人気のあるライブスポーツイベント）のインタレストを適切に取り扱うことをＣＳノードのサービスプロバイダのリポジトリに許容し得る。
【００４４】
図２は、実施形態による、コンテンツストアでコンテンツオブジェクトを処理するための方法２００を図示するフローチャートを表している。動作中、ＣＳノードは、コンテンツオブジェクトを受信し得るとともに（動作２０２）、コンテンツオブジェクトと関連するドメインを決定する（動作２０４）。ＣＳノードは、ドメインを使用して、ドメインと関連するリポジトリを選択する（動作２０６）。
【００４５】
ＣＳノードは、次いで、選択したリポジトリにコンテンツオブジェクトがキャッシュされているかを判定する（動作２０８）。コンテンツオブジェクトがリポジトリにキャッシュされていない場合、ＣＳノードは、選択したリポジトリにコンテンツオブジェクトを記憶する（動作２１０）。一部の実施形態において、ＣＳノードは、ネームドデータネットワークのルータまたはフォワーダを含み得る。よって、ＣＳノードは、ペンディングインタレストと関連するインタフェースを決定するために、ペンディングインタレストテーブル（ＰＩＴ）における探索動作を実施し得る（動作２１２）。適合するＰＩＴエントリが存在する場合、ＣＳノードは、ＰＩＴエントリにおいて指定されたインタフェースを介してコンテンツオブジェクトを転送し得る（動作２１４）。
【００４６】
一部の実施形態において、ＣＳノードは、コンテンツオブジェクトと関連する属性を分析するとともに、これらの属性の１つ以上と関連するドメインを選択することによって、ドメインを決定し得る。これらのコンテンツオブジェクトの属性は、所有者、データサイズ、コンテンツの名称、コンテンツオブジェクトの署名者、デジタル署名、コンテンツオブジェクトの寿命、および／またはコンテンツオブジェクトのアクセス頻度を含み得る。例えば、一部の発行者は、記憶領域による特定の性能レベルをＣＳノードが保証するように、ＣＳノードからこの記憶領域をリースし得る。性能は、例えば、インタレスト処理の遅延、データ帯域幅、または、ＣＳノードのリポジトリの任意の他のネットワークもしくは処理性能の属性を含み得る。よって、ＣＳノードは、発行者毎に１つのドメインを含み得るとともに、コンテンツオブジェクトから発行者情報を取得することによってドメインを決定する。ＣＳノードが発行者のドメインを決定すると、ＣＳノードは、発行者によってリースされているリポジトリを使用して、コンテンツオブジェクトを記憶し得る。
【００４７】
図３は、実施形態による、コンテンツオブジェクトと関連するドメインに基づいてコンテンツオブジェクトのインタレストを処理するための方法３００を図示するフローチャートを表している。動作中、ＣＳノードは、インタレストを受信し得るとともに（動作３０２）、キャッシュしたコンテンツオブジェクトがインタレストを満足するかを判定する（動作３０４）。インタレストを満足するコンテンツオブジェクトをＣＳノードが記憶していない場合、ＣＳノードは、インタレストを処理し得る（例えば、転送情報ベースにおける探索動作を実施することによって）他のネットワークデバイスに向けたインタフェースを識別し、このインタフェースに沿ってインタレストを転送する等の対処措置を実施し得る。
【００４８】
他方で、インタレストを満足するコンテンツオブジェクトのキャッシュした複製をＣＳノードが記憶している場合、ＣＳノードは、コンテンツオブジェクトと関連する１つ以上のドメインに基づいて、インタレストがアクセス許可を有するドメインを使用して、コンテンツオブジェクトの取扱い方法を決定し得る。例えば、ＣＳノードは、コンテンツオブジェクトと関連するドメインの組を決定し得るとともに（動作３０６）、インタレスト（またはインタレストを発行したクライアント）がこれらのドメインの１つ以上にアクセスするために有効な許可または特権を有するかを判定する（動作３０８）。
【００４９】
インタレスト（またはクライアント）が有効な許可を有する場合、ＣＳノードは、インタレストがアクセス許可を有するドメインを選択し得るとともに（動作３１０）、ドメインに割り当てられたリポジトリを選択する（動作３１２）。ＣＳノードがインタレストの処理のために使用するリポジトリを選択すると、ＣＳノードは、選択したリポジトリからコンテンツオブジェクトを取得および返送することによって、インタレストを満足するように進める（動作３１４）。
【００５０】
例えば、発行者は、高速ビットレートでデータをストリーミングし得る高性能リポジトリをリースし得るとともに、このリポジトリを使用して有料購読者にデータ（例えば高品位映像ストリーム）をストリーミングする。ＣＳノードは、購読者専用ドメインを発行者に関連付け得るとともに、高性能リポジトリを購読者専用ドメインに割り当て得る。他の消費者には、同一または同様のデータにアクセスすることが未だ許容され得るが、それらのリクエストは、一般大衆によってアクセス可能である既定のリポジトリを使用して取り扱われるであろう。このことを実現するために、ＣＳノードは、非購読者からのインタレストを取り扱うために既定のドメイン（およびこのドメインに割り当てられた任意の既定のリポジトリ）を使用し得、または一般消費者ドメインを発行者に割り当て得る。この一般消費者ドメインは、一般大衆によって共有されるべき低性能リポジトリの組を有し得る。
【００５１】
よって、有料購読者は、発行者と関連する購読者専用ドメインへのアクセスが許容されるインタレストを発行し得、他の消費者は、発行者と関連する一般消費者ドメインまたはローカルのＣＳノードと関連する既定のドメインへのアクセスを許容されるのみである。このことは、例えば高性能リポジトリから高品位バージョンの映像ストリームを受信することを有料購読者に許容し、既定のリポジトリからの低解像度フォーマットの同一データへのアクセスを他の消費者に許容する。
【００５２】
図４は、実施形態による、コンテンツオブジェクトと関連する規則を選択および実行するための方法４００を図示するフローチャートを表している。動作中、ＣＳノードは、インタレストを受信し得るとともに（動作４０２）、インタレストを満足するコンテンツオブジェクトについて１つ以上のリポジトリを検索する（動作４０４）。ＣＳノードは、コンテンツオブジェクトと関連する規則の探索も実施する（動作４０６）。規則は、規則をトリガすべきコンテンツオブジェクトの名称を含み得るとともに、規則がトリガされるとＣＳノードが実行すべき命令の組を含む。適合する規則が見つかる場合（動作４０８）、ＣＳノードは、所定の動作を実施するために規則の命令を実行し得る（動作４１０）。
【００５３】
一部の実施形態において、ＣＳノードは、ＣＳノードがローカルリポジトリにコンテンツオブジェクトを記憶しているかの判定に基づいて、規則の探索動作を実施し得る。図５は、実施形態による、コンテンツオブジェクトのキャッシュヒットまたはキャッシュミスに基づいて規則を選択するための方法５００を図示するフローチャートを表している。動作中、ＣＳノードは、インタレストを満足するコンテンツオブジェクトがローカルにキャッシュされているかを判定することによって、インタレストを処理し得る（動作５０２）。そうであれば、ＣＳノードは、キャッシュヒットと関連する規則を選択し得る（動作５０４）。そうでなければ、ＣＳノードは、キャッシュミスと関連する規則を選択し得る（動作５０６）。
【００５４】
一部の実施形態において、ＣＳノードがキャッシュヒットを検出する場合、ＣＳノードは、キャッシュしたコンテンツオブジェクトにクライアントがアクセスするときに実施されるべき１つ以上の規則を取得および実行し得る。一部の規則は、他の関連するコンテンツオブジェクトを利用可能にするようにＣＳノードを構成するための命令を含み得る。このことは、規則の命令がデータストリームの後のブロックを利用可能にするようにＣＳノードに準備させ得るように、データストリームの第１のブロックによってトリガされる規則を作成することをストリーミングサービスに許容し得る。例えば、規則の命令は、関連するコンテンツオブジェクトを記憶するリポジトリを選択するとともに、このリポジトリをオンライン状態にすることによって、他の関連するコンテンツオブジェクトをアクセス可能にするようにＣＳノードを構成し得る。
【００５５】
他の例として、ＣＳノードは、データストリームの後続のブロックを所定の目標リポジトリにプリフェッチし得る。このことは、インメモリリポジトリ等、限られた量の高性能記憶部をリースするとともに、必要に応じて高性能リポジトリへコンテンツをプリフェッチすることをストリーミングサービスに許容する。ストリーミングサービスは、殆どアクセスされないデータストリーム（例えば、人気のない映画）のために高性能キャッシュの対価を払う必要がないが、残りのストリームを高性能リポジトリにプリフェッチすることによって高性能ストリーミング経験を提供し得る。コンテンツのプリフェッチは、データのインタレストを見越して１つのＣＳノードから他のＣＳノードへデータを移動する規則を実行することによって、分散されたＣＳノードの組に、それらがホストするコンテンツを能動的に管理することも許容する。
【００５６】
コンテンツのプリフェッチを実現するために、ＣＳノードは、プリフェッチされるべき他のコンテンツオブジェクトの組（例えば、キャッシュヒットしたコンテンツオブジェクトと関連する他のコンテンツオブジェクト）を決定するとともに、他のコンテンツオブジェクトを記憶するための目標リポジトリを選択するように、規則の命令を実行し得る。次いで、ＣＳノードは、情報指向ネットワーク上で（またはローカルの低性能リポジトリから）、他のコンテンツオブジェクトを取得し得るとともに、他のコンテンツオブジェクトを目標リポジトリに記憶する。
【００５７】
一部の実施形態において、一部の規則は、アラートを作動させ得、またはキャッシュミスを経験したインタレストもしくはキャッシュヒットによって返送されたコンテンツオブジェクトに関して他の動作を実施し得る。例えば、キャッシュヒットまたはキャッシュミスの規則は、インタレストと関連するリアルタイム情報を収集するようにＣＳノードを構成し得る。ＣＳノードは、リアルタイム情報を含む１つ以上のコンテンツオブジェクトを生成するとともに、生成したコンテンツオブジェクトを目標リポジトリに記憶する。このリアルタイム監視情報は、コンテンツオブジェクトの、もしくはコンテンツオブジェクトが記憶されるリポジトリの、過去および／または瞬間の統計性能を反映する使用特性を含み得る。
【００５８】
一部の実施形態において、監視情報の使用特性は、リポジトリにキャッシュされているが所定の期間使用されなかったコンテンツを識別し得る。使用または要請されないコンテンツオブジェクトをＣＳノードがキャッシュしている場合、ＣＳノードは、未使用のコンテンツオブジェクトを識別するために使用特性を分析し得るとともに、これらの未使用のコンテンツオブジェクトをリポジトリから除去して、他のコンテンツオブジェクトのための空きを作る。サービスプロバイダは、使用されている記憶リポジトリの量およびこの記憶リポジトリが記憶しているデータ（またはデータの種類）を決定するために使用特性を分析し得る。サービスプロバイダがＣＳノードからリポジトリをリースしている場合、サービスプロバイダは、例えば、ＣＳノードが未使用データをリポジトリに記憶しないことを確実にするために、リポジトリに記憶されるべきデータ（またはデータの種類）を構成し得る。
【００５９】
ＣＳノードは、プッシュシナリオまたはプルシナリオのいずれかで他のデバイスに対して監視情報を利用可能にし得る。例えば、監視情報を含むコンテンツオブジェクトをコンテンツストアノードが生成するときに、コンテンツストアノードは、生成したコンテンツオブジェクトと関連する監視情報の種類を受信すべき目標ネットワークデバイスを識別するとともに、生成したコンテンツオブジェクトを目標ネットワークデバイスに送信する。他の例として、ＣＳノードは、名称が監視情報の種類を識別するインタレストを受信し得るとともに、要請された監視情報を含むコンテンツオブジェクトを返送するようにインタレストを処理する。
【００６０】
図６は、実施形態による、発行者と関連するドメインに基づいて発行者の各種のＣＳノードでデータのキャッシュを容易にする例示的な装置６００を図示している。装置６００は、有線または無線の通信チャネルを介して互いに通信し得る複数のモジュールを備え得る。装置６００は、１つ以上の集積回路を使用して実現され得るとともに、図６に示すモジュールよりも少ないまたは多いモジュールを含み得る。さらに、装置６００は、コンピュータシステムに統合され得、または他のコンピュータシステムおよび／またはデバイスと通信可能である別個のデバイスとして実現され得る。具体的に、装置６００は、通信モジュール６０２、ドメイン選択モジュール６０４、リポジトリ選択モジュール６０６、記憶モジュール６０８、規則選択モジュール６１０および規則処理モジュール６１２を備え得る。
【００６１】
一部の実施形態において、通信モジュール６０２は、ＩＣＮ上でインタレストまたはコンテンツオブジェクトを受信または返送し得る。ドメイン選択モジュール６０４は、キャッシュされるべきコンテンツオブジェクトと関連するドメインを決定し得、リポジトリ選択モジュール６０６は、ドメインと関連する記憶リポジトリを選択し得る。記憶モジュール６０８は、選択されたリポジトリにコンテンツオブジェクトを記憶し得る。規則選択モジュール６１０は、関連する規則を選択するために、インタレストの名称と関連する規則の探索動作を実施し得、規則処理モジュール６１２は、規則の命令を実行し得る。
【００６２】
図７は、実施形態による、発行者と関連するドメインに基づいて発行者の各種のＣＳノードでデータのキャッシュを容易にする例示的なコンピュータシステム７０２を図示している。コンピュータシステム７０２は、プロセッサ７０４、メモリ７０６および記憶デバイス７０８を含む。メモリ７０６は、管理されたメモリとして機能する揮発性メモリ（例えばＲＡＭ）を含み得るとともに、１つ以上のメモリプールを記憶するために使用され得る。さらに、コンピュータシステム７０２は、ディスプレイデバイス７１０、キーボード７１２およびポインティングデバイス７１４に接続され得る。記憶デバイス７０８は、オペレーティングシステム７１６、コンテンツストア（ＣＳ）システム（図中パケット転送システムと記載）７１８およびデータ７３２を記憶し得る。
【００６３】
ＣＳシステム７１８は、コンピュータシステム７０２によって実行されると、この開示に記述している方法および／またはプロセスをコンピュータシステム７０２に実施させる、指示を含み得る。具体的に、ＣＳシステム７１８は、ＩＣＮ（通信モジュール７２０）上でインタレストまたはコンテンツオブジェクトを受信または返送するための指示を含み得る。さらに、ＣＳシステム７１８は、キャッシュされるべきコンテンツオブジェクトと関連するドメインを決定するための指示を含み得るとともに（ドメイン選択モジュール７２２）、ドメインと関連する記憶リポジトリを選択するための指示も含み得る（リポジトリ選択モジュール７２４）。ＣＳシステム７１８は、選択したリポジトリにコンテンツオブジェクトを記憶するための指示も含み得る（記憶モジュール７２６）。
【００６４】
ＣＳシステム７１８は、関連する規則を選択するために、インタレストの名称と関連する規則の探索動作を実施するための指示も含み得る（規則選択モジュール７２８）。ＣＳシステム７１８は、規則の命令を実行するための指示も含み得る（規則処理モジュール７３０）。
【００６５】
データ７３２は、この開示に記述している方法および／またはプロセスによって、入力として要求され、または出力として生成される、任意のデータを含み得る。具体的に、データ７３２は、１つ以上のドメインのために、少なくともキャッシュしたコンテンツオブジェクトを記憶し得る。
【００６６】
この詳細な説明に記述しているデータ構造およびコードは、コンピュータシステムによる使用のためのコードおよび／またはデータを記憶し得る任意のデバイスまたは媒体であり得るコンピュータ読取可能な記憶媒体に典型的に記憶される。コンピュータ読取可能な記憶媒体は、非限定的に、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスクまたはデジタルビデオディスク）等の磁気記憶デバイスおよび光記憶デバイス、または、現在知られているか将来開発されるコンピュータ読取可能な媒体を記憶可能な他の媒体を含む。
【００６７】
詳細な説明のセクションに記述している方法およびプロセスは、上述したようなコンピュータ読取可能な記憶媒体に記憶され得るコードおよび／またはデータとして具現化され得る。コンピュータ読取可能な記憶媒体に記憶されたコードおよび／またはデータをコンピュータシステムが読取および実行するときに、コンピュータシステムは、データ構造およびコードとして具現化されるとともにコンピュータ読取可能な記憶媒体内に記憶された方法およびプロセスを実施する。
【００６８】
さらに、上述した方法およびプロセスは、ハードウェアモジュールに含まれ得る。例えば、ハードウェアモジュールは、非限定的に、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および、現在知られているか将来開発される他のプログラム可能な論理デバイスを含み得る。ハードウェアモジュールが作動されるときに、ハードウェアモジュールは、ハードウェアモジュール内に含まれる方法およびプロセスを実施する。
【図１】
2015212935.tif 000002
【図２】
2015212935.tif 000003
【図３】
2015212935.tif 000004
【図４】
2015212935.tif 000005
【図５】
2015212935.tif 000006
【図６】
2015212935.tif 000007
【図７】
2015212935.tif 000008