(57)【要約】      （修正有）【課題】１つ以上のコンテンツホスティングサービスから、無名コンテンツオブジェクトを取得するクライアントを提供する。【解決手段】コンテンツレプリケーションシステムは、コンテンツセントリックネットワーク（ＣＣＮ）における複数レプリカサーバにわたって無名コンテンツオブジェクトをキャッシュする。ＣＣＮクライアントは、データコレクションのためのインタレストを配布し、マニフェストを含むコンテンツオブジェクトを受信する。マニフェストは、データコレクションの他のコンテンツオブジェクトのセットのためのコンテンツオブジェクトハッシュ（ＣＯＨ）値を含む。クライアントは、データコレクションをホスティングするコンテンツホスティングサービスのための名前プレフィックスを決定し、名前プレフィックスとＣＯＨ値を含む別のインタレストを生成し、ＣＣＮにわたり配布し、データコレクションの夫々のコンテンツオブジェクトを取得する。【選択図】なし【特許請求の範囲】
【請求項１】
コンピュータで実現される方法であって、
データコレクションのためのインタレストを配布することと、
前記データコレクションのためのマニフェストを含むコンテンツオブジェクトを受信することであって、前記マニフェストは、前記データコレクションの他のコンテンツオブジェクトのセットのためのコンテンツオブジェクトハッシュ（ＣＯＨ）値を含む、受信することと、
前記データコレクションの少なくとも一部をホスティングするコンテンツホスティングサービスのための名前プレフィックスを決定することと、
前記データコレクションのそれぞれのコンテンツオブジェクトのための第２のインタレストを生成することであって、前記第２のインタレストの名前は、前記コンテンツホスティングサービスのための前記名前プレフィックスを含み、また、前記それぞれのコンテンツオブジェクトのためのＣＯＨ値を含む、生成することと、
前記データコレクションの前記それぞれのコンテンツオブジェクトを取得するために前記第２のインタレストを配布することとを備える、方法。
【請求項２】
前記データコレクションの前記他のコンテンツオブジェクトは、名前を含まず、前記他のコンテンツオブジェクトのコンテンツオブジェクトハッシュ値に基づいてアクセスされる、請求項１に記載の方法。
【請求項３】
前記マニフェストは、前記データコレクションの少なくとも一部をホスティングする１つ以上のコンテンツホスティングサービスのための名前プレフィックスを指定するルートマニフェストを含む、請求項１に記載の方法。
【請求項４】
前記マニフェストは、非ルートマニフェストを含む、請求項１に記載の方法。
【請求項５】
前記データコレクションの前記他のコンテンツオブジェクトは、非ルートマニフェストのセットまたはデータコンテンツオブジェクトのセットを含む、請求項１に記載の方法。
【請求項６】
コンピュータによって実行された場合に前記コンピュータに方法を実行させる命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記方法は、
データコレクションのためのインタレストを配布することと、
前記データコレクションのためのマニフェストを含むコンテンツオブジェクトを受信することであって、前記マニフェストは、前記データコレクションの他のコンテンツオブジェクトのセットのためのコンテンツオブジェクトハッシュ（ＣＯＨ）値を含む、受信することと、
前記データコレクションの少なくとも一部をホスティングするコンテンツホスティングサービスのための名前プレフィックスを決定することと、
前記データコレクションのそれぞれのコンテンツオブジェクトのための第２のインタレストを生成することであって、前記第２のインタレストの名前は、前記コンテンツホスティングサービスのための前記名前プレフィックスを含み、また、前記それぞれのコンテンツオブジェクトのためのＣＯＨ値を含む、生成することと、
前記データコレクションの前記それぞれのコンテンツオブジェクトを取得するために前記第２のインタレストを配布することとを備える、非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項７】
前記データコレクションの前記他のコンテンツオブジェクトは、名前を含まず、前記他のコンテンツオブジェクトのコンテンツオブジェクトハッシュ値に基づいてアクセスされる、請求項６に記載の記憶媒体。
【請求項８】
前記マニフェストは、前記データコレクションの少なくとも一部をホスティングする１つ以上のコンテンツホスティングサービスのための名前プレフィックスを指定するルートマニフェストを含む、請求項６に記載の記憶媒体。
【請求項９】
前記マニフェストは、非ルートマニフェストを含む、請求項６に記載の記憶媒体。
【請求項１０】
コンピュータで実現される方法であって、
コンテンツホスティングサービスのサーバによってインタレストを受信することであって、前記インタレストの名前は、前記コンテンツホスティングサービスのための名前プレフィックスを含み、また、前記コンテンツホスティングサービスによってホスティングされるコンテンツオブジェクトのためのコンテンツオブジェクトハッシュ（ＣＯＨ）値を含む、受信することと、
コンテンツオブジェクトを取得することであって、前記コンテンツオブジェクトのハッシュは前記ＣＯＨ値と一致する、取得することと、
前記インタレストを満足するために、前記インタレストが受信されたフェースに沿って、前記コンテンツオブジェクトを返すこととを備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願の主題は、「ＡＧＧＲＥＧＡＴＥ  ＳＩＧＮＩＮＧ  ＯＦ  ＤＡＴＡ  ＩＮ  ＣＯＮＴＥＮＴ  ＣＥＮＴＲＩＣ  ＮＥＴＷＯＲＫＩＮＧ」と題し、出願番号第１４／２３１，５１５号および出願日２０１４年３月３１日（代理人整理番号ＰＡＲＣ−２０１４０１９０ＵＳ０１）を有する、本願と同一発明者により本願と同日付けで出願された、同時係属中の非仮出願における主題に関する。
【０００２】
本開示は一般的に、コンテンツセントリックネットワーク（ＣＣＮ）に関する。より具体的には、本開示は、さまざまなコンテンツホスティングサービスにわたって無名コンテンツオブジェクトをレプリケートすることに関する。
【背景技術】
【０００３】
インターネットおよび電子商取引の普及が、ネットワーク産業の革命的変化を激化させ続けている。現在、オンライン映画ストリーミングから毎日のニュース配信、小売販売、およびインスタントメッセージングにいたる膨大な数の情報交換が、オンラインで行われている。ますます増加するインターネットアプリケーションもまた、モバイルになりつつある。しかしながら、現在のインターネットは、主として場所ベースのアドレッシングスキームで動作する。最も広く普及しているプロトコルのインターネットプロトコル（ＩＰ）は、場所ベースのアドレスに基づいている。すなわち、コンテンツの消費者は、物理的な物体または場所に密接に関連づけられたアドレス（たとえば、ＩＰアドレス）に対しコンテンツを明示的に要求することによってコンテンツを受信することしかできない。特定の組織のためのＩＰアドレスによるＵＲＬを有する要求は、要求がその組織のサーバには行くが別の組織のサーバには行かないようにする。
【０００４】
最近、コンテンツセントリックネットワーキング（ＣＣＮ）アーキテクチャが、本業界で提案されている。ＣＣＮは、コンテンツのトランスポートに対する新たなアプローチをもたらす。ネットワークトラフィックをコンテンツがそれを介して移動するエンドツーエンド接続としてアプリケーションレベルで見るのではなく、コンテンツは、その一意の名前に基づいて要求されるかまたは返され、ネットワークは、提供者から消費者へのコンテンツのルーティングを担う。
【０００５】
コンテンツセントリックネットワークによると、インタレストメッセージは、コンテンツオブジェクトのための名前を含み、クライアントは、コンテンツオブジェクトをホスティングする任意のＣＣＮノードからコンテンツオブジェクトを取得するために、ＣＣＮにわたってインタレストを配布し得る。インタレストは、少なくともインタレストの名前のプレフィックスを告知するＣＣＮノードへと転送される。このＣＣＮノードがコンテンツオブジェクトを提供し得る場合、このノードは、インタレストを満足するためにコンテンツオブジェクトを（インタレストのリバースパスに沿って）返し得る。
【０００６】
発行者はしばしば、彼らのコンテンツをさまざまなホストサーバにわたってレプリケートすることを所望する。残念なことに、ＣＣＮにおいてそうすることは、ＣＣＮルータがこのコンテンツのためのインタレストをサードパーティサーバに対しどのように転送するかを知り得るよう、これらのホストサーバがコンテンツの名前または名前プレフィックスを告知することを必要とする。ホストサーバが多数の発行者のためのコンテンツオブジェクトを記憶する場合、ホストサーバの隣接ノードは、ホストサーバによって記憶されたコンテンツオブジェクトに関連づけられた各々の名前プレフィックスのためのエントリを含むように彼らの転送テーブルを更新することを必要とし得る。これは、ＣＣＮルータにわたり著しい負担をかける。さらに悪いことには、ＣＣＮルータが十分に大きな転送テーブルを実装していない場合、これらのＣＣＮルータがホストサーバから利用可能なすべてのコンテンツオブジェクトのためのインタレストをホストサーバに転送不可能であり得る可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００７】
一実施形態は、１つ以上のコンテンツホスティングサービスから無名コンテンツオブジェクトを取得し得るクライアントを提供する。動作中、クライアントは、データコレクションのためのインタレストを配布し得、データコレクションのためのマニフェストを含むコンテンツオブジェクトを受信する。マニフェストは、データコレクションの他のコンテンツオブジェクトのセットのためのコンテンツオブジェクトハッシュ（ＣＯＨ）値を含み得る。クライアントは続いて、データコレクションの少なくとも一部をホスティングするコンテンツホスティングサービスのための名前プレフィックスを決定し、データコレクションのそれぞれのコンテンツオブジェクトのための第２のインタレストを生成する。第２のインタレストの名前は、コンテンツホスティングサービスのための名前プレフィックスを含み、また、それぞれのコンテンツオブジェクトのためのＣＯＨ値を含む。クライアントは、データコレクションのそれぞれのコンテンツオブジェクトを取得するために、コンテンツセントリックネットワーク（ＣＣＮ）にわたり第２のインタレストを配布する。
【０００８】
ＣＣＮにおいて、各々のコンテンツは、個々に命名され、各々のデータは、そのデータを同一のデータの他のバージョンまたは他のソースからのデータといった任意の他のデータと区別する、一意の名前にバインドされる。この一意の名前は、一意の名前を示す要求またはインタレストを配布することによってデータを要求することをネットワークデバイスに可能にさせ、ネットワークデバイスは、データの記憶場所、ネットワークの場所、アプリケーション、および搬送手段と無関係にデータを取得することができる。以下の用語が、ＣＣＮアーキテクチャの要素を説明するために使用される。
【０００９】
コンテンツオブジェクト：一意の名前にバインドされた、命名された単一のデータ。コンテンツオブジェクトは、「永続的」であり、「永続的」とは、コンテンツオブジェクトがコンピューティングデバイス内を、または、異なるコンピューティングデバイスにわたって、あちらこちらに動き得るが、変化しないことを意味する。コンテンツオブジェクトのいずれかのコンポーネントが変化した場合、変化を生んだエンティティが、更新されたコンテンツを含む新たなコンテンツオブジェクトを作成し、新たなコンテンツオブジェクトを新たな一意の名前にバインドする。
【００１０】
一意の名前：ＣＣＮにおける名前は典型的に、場所と無関係であり、コンテンツオブジェクトを一意に識別する。データ転送デバイスは、名前または名前プレフィックスを使用して、コンテンツオブジェクトのためのネットワークアドレスまたは物理的な場所に関わらず、コンテンツオブジェクトを生成または記憶するネットワークノードにパケットを転送することができる。いくつかの実施形態において、名前は、階層的に構造化された可変長識別子（ＨＳＶＬＩ）であり得る。ＨＳＶＬＩは、さまざまな手法で構造化され得る、いくつかの階層的なコンポーネントに分割され得る。たとえば、個々の名前コンポーネントのｐａｒｃ、ｈｏｍｅ、ｃｃｎ、およびｔｅｓｔ．ｔｘｔは、より大きいプレフィックスが左にくるように構造化されて、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ」という名前を形成し得る。かくして、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ」という名前は、「／ｐａｒｃ／ｈｏｍｅ／ｃｃｎ／ｔｅｓｔ．ｔｘｔ．」の「親」または「プレフィックス」であり得る。追加のコンポーネントが、コラボレーティブドキュメントのようなコンテンツアイテムの異なるバージョンを区別するために使用され得る。
【００１１】
いくつかの実施形態において、名前は、コンテンツオブジェクトのデータ（たとえば、チェックサム値）からおよび／またはコンテンツオブジェクトの名前の要素から導出されたハッシュ値のような識別子を含み得る。ハッシュベースの名前の説明は、（２０１３年３月２０日に出願された、発明者Ｉｇｎａｃｉｏ  Ｓｏｌｉｓによる、「ＯＲＤＥＲＥＤ−ＥＬＥＭＥＮＴ  ＮＡＭＩＮＧ  ＦＯＲ  ＮＡＭＥ−ＢＡＳＥＤ  ＰＡＣＫＥＴ  ＦＯＲＷＡＲＤＩＮＧ」と題する）米国特許出願番号第１３／８４７，８１４号において説明されている。名前は、フラットなラベルであることもできる。以下、「名前」は、名前データネットワークにおけるデータのための任意の名前、たとえば、階層的な名前または名前プレフィックス、フラットな名前、固定長の名前、恣意的な長さの名前、またはラベル（たとえば、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ラベル）について言及するために使用される。
【００１２】
インタレスト：データのための要求を示し、データのための名前（または名前プレフィックス）を含む、パケット。データ消費者が、ＣＣＮにわたって要求またはインタレストを配布し得、ＣＣＮルータが要求またはインタレストを、記憶デバイス（たとえば、キャッシュサーバ）またはデータ製作者へと伝搬し得、データ製作者が、要求されたデータを提供して、要求またはインタレストを満足し得る。
【００１３】
ＣＣＮアーキテクチャの説明は、（２００８年１２月１８日に出願された、発明者Ｖａｎ  Ｌ．ＪａｃｏｂｓｏｎおよびＤｉａｎａ  Ｋ．Ｓｍｅｔｔｅｒｓによる、「ＣＯＮＴＲＯＬＬＩＮＧ  ＴＨＥ  ＳＰＲＥＡＤ  ＯＦ  ＩＮＴＥＲＥＳＴＳ  ＡＮＤ  ＣＯＮＴＥＮＴ  ＩＮ  Ａ  ＣＯＮＴＥＮＴ  ＣＥＮＴＲＩＣ  ＮＥＴＷＯＲＫ」と題する）米国特許出願番号第１２／３３８，１７５号において説明されている。
【００１４】
いくつかの実施形態において、データコレクションの他のコンテンツオブジェクトは、名前を含まず、それらのコンテンツオブジェクトハッシュ値に基づいてアクセスされる。
【００１５】
いくつかの実施形態において、マニフェストは、データコレクションの少なくとも一部をホスティングする１つ以上のコンテンツホスティングサービスのための名前プレフィックスを指定するルートマニフェストを含む。
【００１６】
これらの実施形態に対するいくつかの変形例において、ルートマニフェストは、ルートマニフェストのための署名を含む。
【００１７】
これらの実施形態に対するいくつかの変形例において、コンテンツホスティングサービスのための名前プレフィックスを決定する一方で、クライアントは、ルートマニフェストから名前プレフィックスを取得する。
【００１８】
いくつかの実施形態において、マニフェストは、非ルートマニフェストを含む。
【００１９】
これらの実施形態に対するいくつかの変形例において、非ルートマニフェストは、名前を含まない。
【００２０】
これらの実施形態に対するいくつかの変形例において、非ルートマニフェストは、非ルートマニフェストのための署名を含まない。
【００２１】
これらの実施形態に対するいくつかの変形例において、コンテンツホスティングサービスのための名前プレフィックスを取得する一方で、クライアントは、データコレクションに関連づけられたルートマニフェストから名前プレフィックスを取得する。
【００２２】
いくつかの実施形態において、データコレクションの他のコンテンツオブジェクトは、非ルートマニフェストのセットまたはデータコンテンツオブジェクトのセットを含む。
【００２３】
一実施形態は、無名コンテンツオブジェクトを記憶することができ、コンテンツオブジェクトハッシュ（ＣＯＨ）値を含むインタレストを処理して、そのＣＯＨ値と一致するハッシュ値を有する無名コンテンツオブジェクトを返すことができる、コンテンツホスティングサーバを提供する。動作中、サーバは、その名前が、コンテンツホスティングサービスのための名前プレフィックスを含み、また、コンテンツホスティングサービスによってホスティングされるコンテンツオブジェクトのためのＣＯＨ値を含む、インタレストを受信し得る。サーバは、そのＣＯＨ値と一致するハッシュを有するコンテンツオブジェクトを取得し、インタレストが受信されたフェースに沿ってコンテンツオブジェクトを返して、インタレストを満足する。
【００２４】
いくつかの実施形態において、コンテンツオブジェクトは、名前を含まない。
【００２５】
いくつかの実施形態において、コンテンツオブジェクトは、署名を含まない。
【００２６】
いくつかの実施形態において、コンテンツオブジェクトは、メタデータおよび／またはペイロードを含む。
【００２７】
いくつかの実施形態において、コンテンツオブジェクトは、データコレクションのためのマニフェストを含み、マニフェストは、データコレクションの他のコンテンツオブジェクトのセットのためのＣＯＨ値を含むようになっている。
【図面の簡単な説明】
【００２８】
【図１】図１は、実施形態に係る、複数のコンテンツホスティングサービスにわたる無名オブジェクトのレプリケートを容易にする例示的なネットワーク環境を示す図である。
【図２Ａ】図２Ａは、実施形態に係る、複数のコンテンツオブジェクトにパーティション分割されたコンテンツと、コンテンツオブジェクトのためのマニフェスト階層とを含む、例示的なデータコレクションを示す図である。
【図２Ｂ】図２Ｂは、実施形態に係る例示的なルートマニフェストを示す図である。
【図２Ｃ】図２Ｃは、実施形態に係る例示的な非ルートマニフェストを示す図である。
【図３】図３は、実施形態に係る、１つ以上のコンテンツホスティングサービスにわたって無名オブジェクトのデータコレクションを発行するための例示的な方法を示すフローチャートである。
【図４】図４は、実施形態に係る、コンテンツセントリックネットワークにわたって無名オブジェクトのデータコレクションを要求するための例示的な方法を示すフローチャートである。
【図５】図５は、実施形態に係る、無名オブジェクトを要求するインタレストメッセージを処理するための例示的な方法を示すフローチャートである。
【図６】図６は、実施形態に係る、複数のコンテンツホスティングサービスにわたる無名オブジェクトのレプリケートを容易にする例示的な装置を示す図である。
【図７】図７は、実施形態に係る、複数のコンテンツホスティングサービスにわたる無名オブジェクトのレプリケートを容易にする例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【００２９】
図面において、同一の参照番号は、同一の図面要素を示す。
【００３０】
以下の説明は、実施形態の製造および使用をいずれの当業者にも可能にさせるように提示され、特定の用途およびその要件の文脈で提供される。開示される実施形態に対するさまざまな変更が当業者に容易に理解され、本明細書において定義される一般的な原理は、本開示の精神および範囲から逸脱することなく、他の実施形態および応用例に適用され得る。かくして、本発明は、示される実施形態に限定されるものではなく、本明細書において開示される原理および特徴と一致する最も広い範囲が与えられるべきである。
【００３１】
本発明の実施形態は、共通の名前プレフィックスを告知しない複数のレプリカサーバにわたってコンテンツオブジェクトをキャッシングする問題を解決するコンテンツレプリケーションシステムを提供する。この問題を解決するために、コンテンツレプリケーションシステムは、発行者に無名コンテンツオブジェクトの作成を可能にさせ、無名コンテンツオブジェクトは、コンテンツオブジェクトハッシュ（ＣＯＨ）自己認証名によってアドレッシングされる。
【００３２】
これらの無名コンテンツオブジェクトは、それらが名前を含まないがゆえに暗示されたルーティングを有しないので、全く場所のないオブジェクトである。発行者は、たとえさまざまなレプリカサーバ（またはホスティングサービス）がそれら自身の名前プレフィックスのみを他のＣＣＮノードに告知する場合であっても、これらのレプリカサーバにわたってこれらの無名コンテンツオブジェクトをホスティングすることができる。発行者が、無名コンテンツオブジェクトのためのマニフェスト（または無名コンテンツオブジェクトのコレクションのためのマニフェストの階層）を作成し得、これらのコンテンツオブジェクトを要求するクライアントにマニフェスト（またはルートマニフェスト）を提供し得るので、クライアントは、インタレストを生成してレプリカサーバ（単数または複数）に無名コンテンツオブジェクトを直接要求することができる。マニフェスト（またはルートマニフェスト）は、無名コンテンツオブジェクトをホスティングするレプリカサーバのための名前プレフィックスを含み、無名コンテンツオブジェクトを一意に識別するために使用され得るコンテンツオブジェクトハッシュ（ＣＯＨ）値、または他の非ルートマニフェストを含む。
【００３３】
たとえば、発行者は、コンテンツオブジェクトのコレクションを、特定の地理的場所のためにこれらのコンテンツオブジェクトをキャッシングおよびサービスし得る任意のホスティングサービス（たとえば、レプリカサーバ）上に記憶することを所望し得る。これらのホスティングサービスは、地球全体にわたって分散させられたキャッシュサーバのクラスタを含み得、各々のクラスタは、ロードバランサに特定のクラスタまたは地理的領域への要求のリダイレクトを可能にさせるために、一意の名前プレフィックスを有し得る。しかしながら、コンテンツオブジェクトが、発行者の名前プレフィックスによる、それらの中に埋め込まれた名前（およびそれらの署名）を有するとしたら、これらのコンテンツオブジェクトは、発行者の名前プレフィックスを告知するノードまたはサービスによってホスティングされることしかできない。問題は、これらのサービスのいくつかは、発行者の大きなセットのためのコンテンツオブジェクトをホスティングし得、各々の発行者からの少数のコンテンツオブジェクトしか記憶していない場合がある、という点である。これらすべての発行者のための名前プレフィックスをこれらのサービスにマッピングすることは、隣接ルータに望ましくない負担をかけるであろう。多くのケースにおいて、ルータがこれらすべての名前プレフィックスのためのルーティングテーブルにおけるエントリを作成することは、利用可能であるよりも多くのルーティングテーブルエントリを必要とし得るので、そうすることは不可能であり得る。
【００３４】
１つのオプションは、各々のレプリカコンテンツオブジェクトがレプリカコンテンツオブジェクトをキャッシングしているホスティングサービスのプレフィックスを有する名前を有するよう、発行者がこれらのコンテンツオブジェクトの名前を変えることである。これは、特に、所望のホスティングサービス（たとえば、所与の地理的領域のためのレプリカサーバ）に、インタレストをリダイレクトすることを可能にする。しかしながら、そうすることは、新たな名前を有するレプリカコンテンツオブジェクトと元のコンテンツオブジェクトとが異なる名前と異なる署名を有するので、これら２つのコンテンツオブジェクトを全く異なるコンテンツオブジェクトにしてしまう。
【００３５】
別の可能なソリューションは「カプセル化」であり、「カプセル化」とは、（発行者の名前プレフィックスを含む名前を有する）発行者のコンテンツオブジェクトを、レプリカサーバの名前プレフィックスを含む名前を有するコンテンツオブジェクトの中にカプセル化することを含む。たとえば、「／ｍａｒｃ」という名前プレフィックスを有する発行者は、（「／ａｌｉｃｅ」という名前プレフィックスを有する）レプリカサーバに「／ｍａｒｃ／ｆｏｏ」というコンテンツオブジェクトをホスティングすることを可能にさせるために、「／ｍａｒｃ／ｆｏｏ」というコンテンツオブジェクトを「／ａｌｉｃｅ／ｆｏｏ」という名前を有するコンテンツオブジェクトの中にカプセル化し得る。ロードバランシングを実行するネットワークノード（たとえば、ルータまたはゲートウェイ）が、「／ａｌｉｃｅ／ｆｏｏ」のための新たなインタレストを生成し、配布することによって、「／ｍａｒｃ／ｆｏｏ」のためのインタレストを「／ａｌｉｃｅ」というレプリカサーバにリダイレクトし得る。また、レプリカサーバがコンテンツオブジェクトを返す際、このネットワークノードは、「／ａｌｉｃｅ／ｆｏｏ」というコンテンツオブジェクトから「／ｍａｒｃ／ｆｏｏ」というコンテンツオブジェクトをデカプセル化し得、デカプセル化されたコンテンツオブジェクトを返す。
【００３６】
しかしながら、「カプセル化」は、ネットワークノードが、新たなインタレストを生成することによってインタレストをリダイレクトする必要があり、インタレストのための状態情報がリダイレクトされ続けるようにする必要があるので、このネットワークノードでの追加の計算オーバーヘッドを結果として生じる。このネットワークノードはまた、どのコンテンツオブジェクトがカプセル化されたコンテンツオブジェクトを含むかを検出可能である必要があるであろうし、デカプセル化されたコンテンツオブジェクトをクライアントに返す前に、「／ａｌｉｃｅ／ｆｏｏ」というレプリカコンテンツオブジェクトから「／ｍａｒｃ／ｆｏｏ」というコンテンツオブジェクトをデカプセル化するために貴重な処理時間を費やす必要がある。さらに悪いことには、コンテンツオブジェクトの名前を変えることを可能にすることは、インタレストのリターンパスに悪意のあるコンテンツまたは望ましくないコンテンツを注入する「オフパス」攻撃を可能にし得る。
【００３７】
したがって、本発明の実施形態は、命名および署名されたルート「マニフェスト」（と無名および無署名の非ルートマニフェストのコレクション）を使用して、コレクションにおける無名コンテンツオブジェクトだけでなく、データコレクションが取得され得る名前プレフィックスを識別する。（「アグリゲート署名オブジェクト」とも呼ばれる）「マニフェスト」の説明は、（２０１４年３月３１日に出願され、発明者Ｅｒｓｉｎ  Ｕｚｕｎ、Ｍａｒｃ  Ｅ．Ｍｏｓｋｏ、Ｍｉｃｈａｅｌ  Ｆ．Ｐｌａｓｓ、およびＧｌｅｎｎ  Ｃ．Ｓｃｏｔｔによる、「ＡＧＧＲＥＧＡＴＥ  ＳＩＧＮＩＮＧ  ＯＦ  ＤＡＴＡ  ＩＮ  ＣＯＮＴＥＮＴ  ＣＥＮＴＲＩＣ  ＮＥＴＷＯＲＫＩＮＧ」と題する、代理人整理番号ＰＡＲＣ−２０１４０１９０ＵＳ０１の）米国特許出願番号第１４／２３１，５１５号において説明されている。
【００３８】
図１は、実施形態に係る、複数のコンテンツホスティングサービスにわたる無名オブジェクトのレプリケートを容易にする例示的なネットワーク環境１００を示す。コンピューティング環境１００は、コンテンツセントリックネットワーク１０２を含み得、コンテンツセントリックネットワーク１０２は、インタレストをそれらの名前または名前プレフィックスに基づいて転送し得る複数のエッジノード１０４およびルーティングノード１０６を含む。また、エッジノード１０４およびルーティングノード１０６は、（命名されたコンテンツオブジェクトの場合には）コンテンツオブジェクトの名前に基づいて、または、（無名コンテンツオブジェクトの場合には）コンテンツオブジェクトのハッシュに基づいて、コンテンツオブジェクトを返し、インタレストを満足し得る。
【００３９】
たとえば、ネットワーク１０２は、インターネットサービスプロバイダ（ＩＳＰ）によって管理され得、複数のクライアントデバイスにネットワークアクセスを提供するエッジノード１０４．１を含み得る。ネットワーク１０２はまた、さまざまなコンテンツ製作者のためのコンテンツオブジェクトをホスティングまたはキャッシングし得る複数のコンテンツホスティングサービスへの（たとえば、直接的なまたはバックホールネットワークを介した）ネットワークアクセスを提供するエッジノード１０４．２および１０４．３を含み得る。発行者１０８（たとえば、コンテンツ製作者）は、コンテンツホスティングサービス１１０（たとえば、コンテンツ配信ネットワークまたはレプリケーションサーバ）ならびにコンテンツホスティングサービス１２０に、無名コンテンツオブジェクトのコレクションを記憶し得る。あるいは、コンテンツホスティングサービス１１０および／または１２０は各々、ＩＳＰによって実行されるプロミスキャスキャッシングサービスに対応し得、各々のキャッシングサービスが、異なる名前プレフィックス（たとえば、特定の地理的場所に関連づけられた名前プレフィックス）を使用して無名コンテンツオブジェクトをホスティングするようになっている。
【００４０】
コンテンツホスティングサービス１１０および１２０は、コレクションに関連づけられた名前プレフィックスを告知する必要がない、ということに注意する。また、発行者１０８は、コンテンツホスティングサービス１１０および１２０にコレクションを提供する前に、コンテンツオブジェクトの名前プレフィックスを、コンテンツホスティングサービス１１０および／または１２０に関連づけられた名前プレフィックスと一致させるように変える必要がない。そうではなく、発行者１０８は、ルートマニフェストが、コレクションのためのコンテンツホスティングサービスのセット（たとえば、サービス１１０および１２０）のための名前プレフィックス、ならびに無名コンテンツオブジェクトのセットのための（たとえば、他のマニフェストのための、またはコレクションにおけるデータオブジェクトのための）コンテンツオブジェクトハッシュ（ＣＯＨ）値を含み得るように、マニフェストの階層を生成し得る。
【００４１】
デバイス１１４は、発行者１０８に関連づけられた名前プレフィックスおよびコレクションに関連づけられた名前サフィックスといった、コレクションの名前を含む、インタレストを生成し、配布することによって、コレクションを要求し得る。デバイス１１４がインタレストを配布すると、エッジノード１０４および／またはルーティングノード１０６が発行者１０８にインタレストを転送し得、その時点で、発行者１０８がデバイス１１４にルートマニフェストを返し得る。あるいは、ネットワーク１０２におけるＣＣＮノード（たとえば、エッジノード１０４．１）がルートマニフェストをキャッシングしている場合、発行者１０８にインタレストを転送する必要なく、このＣＣＮノードがデバイス１１４にルートマニフェストを返し得る。
【００４２】
デバイス１１４は、ルートマニフェストを使用して、コレクションの個々の無名コンテンツオブジェクトを要求するコンテンツホスティングサービス１１０を選択し得、ＣＯＨ自己認証名を使用して、コレクションにおける各々の無名コンテンツオブジェクトのための要求を生成する。たとえば、デバイス１１４は、選択されたコンテンツホスティングサービスへの名前プレフィックスを含み、それぞれの無名コンテンツオブジェクトのＣＯＨ自己認証名を含む、インタレストを生成し得る。エッジノード１０４および／またはルーティングノード１０６が、インタレストの名前における名前プレフィックスを使用して、適切なコンテンツホスティングサービスにインタレストを転送し得、コンテンツホスティングサービスが、ＣＯＨ自己認証名を使用して、デバイス１１４に返される必要がある無名コンテンツオブジェクトを選択し得る。
【００４３】
いくつかの実施形態では、発行者が、大きなデータオブジェクト（たとえば、ムービーストリーム）をデータセグメントの大きなコレクションへとパーティション分割し得、これらのセグメントの各々のための無名コンテンツオブジェクトを作成する。発行者はまた、コレクションのためのマニフェストの階層を作成し得、コレクションのためのマニフェストの階層はクライアントに、コレクションのルートマニフェストにおいて指名された任意のコンテンツホスティングサービスからコンテンツオブジェクトの任意のレプリカを取得することを可能にさせる。
【００４４】
いくつかの実施形態では、既存の（たとえば、元の）ルートマニフェストがコレクションにおける１つ以上の無名コンテンツオブジェクトをホスティングするコンテンツホスティングサービスのための名前プレフィックスを含まない場合、コンテンツホスティングサービスが、参照または包含によって既存のルートマニフェストを組み込む新たなルートマニフェストを作成し得る。コレクションにおける無名コンテンツオブジェクトがさらに、信用された既存のルートマニフェストのごとく、ＣＯＨ自己認証名と一致するハッシュ値を有するので、デバイス１１４（または任意の他の消費者）は、新たなルートマニフェスト（かくして、コンテンツホスティングサービスの名前プレフィックス）を使用して、コレクションを取得することができる。デバイス１１４がコレクションの真正性を検査する必要がある場合、デバイス１１４はさらに、（発行者によって署名された）元のルートマニフェストを使用して、受信されたコンテンツオブジェクトがすべて、元のルートマニフェストにおいて指定された、またはルートマニフェストにより直接的または間接的のいずれかで参照された非ルートマニフェストにおいて指定された、ＣＯＨ自己認証名と一致するハッシュ値を有することを保証し得る。
【００４５】
図２Ａは、実施形態に係る、複数の無名コンテンツオブジェクト２０４にパーティション分割されたデータを含み、無名コンテンツオブジェクトのためのマニフェスト階層を含む、例示的なデータコレクション２０２を示す。具体的には、発行者が、データをｎ個の無名コンテンツオブジェクト２０４にパーティション分割し得、マニフェスト階層２０６、２０８、２１０を作成し得る。マニフェスト階層は、１つ以上のレベルのルートマニフェストを含み得、より低いレベルのマニフェスト（たとえば、ルートマニフェスト）が次のレベルのマニフェスト（たとえば、マニフェスト２０８）を、そのＣＯＨ自己認証名を介して参照するようになっている。マニフェスト階層２０６、２０８、２１０は完全木を描いているが、実際には、マニフェスト階層は、間順走査順序を維持する任意の木構造を含み得る。たとえば、マニフェスト階層２０６、２０８、２１０における任意のマニフェストは、無名コンテンツオブジェクト２０４のための、他のマニフェストのための、またはコンテンツオブジェクト２０４と他のマニフェストの両方のための、ＣＯＨ自己認証名を含み得る。また、マニフェスト階層２０６、２０８、２１０における個々のマニフェストが各々、恣意的な数のＣＯＨ自己認証名を含み得るか、あるいは、発行者がすべてのマニフェストを、等しい数のＣＯＨ名を含むように生成し得る。
【００４６】
たとえば、発行者は、ｎ個のコンテンツオブジェクト２０４のためのｐ個のマニフェスト２０６のセットを作成し得る。発行者が各々のマニフェストを、最大ｍ個までの無名コンテンツオブジェクトのためのＣＯＨ自己認証名を含むように生成する場合、発行者は、ｎ個のすべてのコンテンツオブジェクト２０４のためのＣＯＨの値を共に含むｐ＝ｎ／ｍ個のマニフェストを生成する。
【００４７】
たとえば、基礎となるデータは、２ＧＢのビデオストリームを含み得る。発行者は、ビデオストリームをｎ＝２百万個の無名コンテンツオブジェクトにパーティション分割し得、４０個の無名コンテンツオブジェクト２０４のためのＣＯＨ値を各々が含むｐ＝１００，０００個の第１のレベルのマニフェスト２０６を生成し得る。発行者は、コレクションに非ルートマニフェスト２０６を追加し得、非ルートマニフェスト２０６のための別のレベルのマニフェストの生成に進む。発行者は、発行者がコレクションのためのルートマニフェストを生成するまで、マニフェストの追加の層を繰り返し作成し得る。すべてのマニフェストが等しい数のＣＯＨ値を含む場合、階層的なマニフェストの最終セットは、ｌｏｇｍｎ個のマニフェストレベルを含み得る。
【００４８】
いくつかの実施形態では、発行者は、コレクションをホスティングすることになるさまざまなコンテンツホスティングサービスに、（パーティション分割されたデータオブジェクトを含む）無名コンテンツオブジェクト２０４と非ルートマニフェストとを提供し得る。発行者は、ルートマニフェストをホスティングし得、および／または、コレクションの名前プレフィックスを告知している（またはするであろう）任意のＣＣＮノードにルートマニフェストを提供し得る。これはクライアントに、発行者、またはコレクションの名前プレフィックスに関連づけられた任意のＣＣＮノードから、ルートマニフェストを取得することを可能にさせ、クライアントは、ルートマニフェストを使用して、コンテンツホスティングサービスから非ルートマニフェストとコンテンツオブジェクト２０４とにアクセスする。
【００４９】
いくつかの実施形態では、クライアントは、まず発行者（またはルートマニフェスト２１０をキャッシングする任意の他のＣＣＮノード）からルートマニフェスト２１０を取得し、ルートマニフェスト２１０における名前プレフィックスとＣＯＨ自己認証名とを使用して次のレベルの非ルートマニフェスト２０８を取得することによって、コンテンツオブジェクト２０４を取得する。クライアントは続いて、ルートマニフェスト２１０における名前プレフィックスとマニフェスト２０８におけるＣＯＨ自己認証名とを使用して、次のレベルの非ルートマニフェストを取得する。クライアントは、クライアントが無名コンテンツオブジェクト２０４を取得するまで、マニフェストを（たとえば、幅優先順に）処理し続け得る。
【００５０】
図２Ｂは、実施形態に係る例示的なルートマニフェスト２２０を示す。具体的には、ルートマニフェスト２２０は、名前２２２、ペイロード２２４、および署名２２６を含み得る。名前２２２は、コレクションのための名前（または名前プレフィックス）を含む。コレクションが大きなデータオブジェクトをパーティション分割することによって生成された場合、名前２２２は、コレクションが生成されたデータオブジェクトのための名前を含む。また、署名２２６は、名前２２２に基づいて生成され、発行者のデジタル証明書を用いて署名された、暗号署名を含む。
【００５１】
ルートマニフェスト２２０のペイロード２２４は、コンテンツホスティングサービスにコレクションにおける無名コンテンツオブジェクトを要求するために使用され得るホストプレフィックス２２６のセットを含み得る。コンテンツホスティングサービスは、パーティション分割されたコンテンツオブジェクト、ならびに無名の非ルートマニフェストをホスティングし得る。ペイロード２２４はまた、コンテンツオブジェクトハッシュ（ＣＯＨ）値２２４のセットを含み得、コンテンツオブジェクトハッシュ（ＣＯＨ）値２２４のセットは、コンテンツホスティングサービスが無名コンテンツオブジェクトのハッシュ値と照合するために使用し得る。
【００５２】
図２Ｃは、実施形態に係る例示的な非ルートマニフェスト２３０を示す。具体的には、非ルートマニフェスト２３０は、コンテンツオブジェクトハッシュ（ＣＯＨ）値２３４のセットを含むペイロード２３２を含み得、コンテンツオブジェクトハッシュ（ＣＯＨ）値２３４のセットは、コンテンツホスティングサービスが無名コンテンツオブジェクトのハッシュ値と照合するために使用し得る。いくつかの実施形態において、非ルートマニフェスト２３０は、コンテンツホスティングサービスがコレクションの他のコンテンツオブジェクトと共に記憶し得る無名コンテンツオブジェクトである。したがって、任意の無名コンテンツオブジェクトと同様に、非ルートマニフェスト２３０は、名前または署名を含む必要はない。
【００５３】
図３は、実施形態に係る、１つ以上のコンテンツホスティングサービスにわたって無名オブジェクトのデータコレクションを発行するための例示的な方法３００を示すフローチャートを提示する。動作中、発行者が、データを無名コンテンツオブジェクトのデータコレクションにパーティション分割し得（動作３０２）、データコレクションのためのマニフェストの階層を生成する（動作３０４）。発行者が、データコレクションの少なくとも一部をホスティングすることになるコンテンツホスティングサービスのセットを決定し得（動作３０６）、コンテンツホスティングサービスの各々のための名前プレフィックスを含むようにルートマニフェストを生成する（動作３０８）。
【００５４】
発行者が続いて、ルートマニフェストにおいて参照された各々のコンテンツホスティングサービスにデータコレクション（またはその一部）を提供する（動作３１０）。これらのコンテンツホスティングサービスは、発行者またはサードパーティサービスによって動作させられるレプリカサーバであり得るか、または、それらは、データコレクションのホスティングを志願する任意のＣＣＮデバイスを含み得る。発行者は、データを構成する無名コンテンツオブジェクト、ならびにこれらの無名コンテンツオブジェクトのためのマニフェスト（たとえば、無名の非ルートマニフェストの階層）を、これらのホストに提供し得る。
【００５５】
いくつかの実施形態において、発行者がデータのためのインタレスト（たとえば、その名前または名前プレフィックスがデータと一致するインタレスト）を受信した場合（動作３１２）、発行者は、ルートマニフェストを返してインタレストを満足する（動作３１４）。たとえば、発行者は、インタレストが受信されたフェースを介してルートマニフェストを返し得、この時点で、ルートマニフェストがインタレストを配布したクライアントへと、横断されたインタレストのパスに沿って逆方向に転送される。クライアントは、ルートマニフェストを使用して、データコレクションを取得するコンテンツホスティングサービスを選択し得、インタレストを生成して、ルートマニフェスト（ならびにデータコレクションにおける任意の非ルートマニフェスト）において指定されたコンテンツホスティングサービスのための名前プレフィックスとコンテンツオブジェクトハッシュ値とを使用してデータコレクションを取得する。
【００５６】
図４は、実施形態に係る、コンテンツセントリックネットワークにわたって無名オブジェクトのデータコレクションを要求するための例示的な方法４００を示すフローチャートを提示する。動作中、クライアントが、その名前がデータコレクションのための名前プレフィックスを含むインタレストを配布し得る（動作４０２）。データコレクションは、単一の無名コンテンツオブジェクトを含み得るか、または、共通の名前プレフィックスに関連づけられた複数の無名コンテンツオブジェクトを含み得る。コンテンツセントリックネットワークの他のネットワークノードが、インタレストの名前を使用して、インタレストの名前または名前プレフィックスと一致する名前を告知する任意のターゲットノードにインタレストを転送する。このターゲットノードは、データコレクションの発行者、または、さまざまな発行者またはコンテンツ製作者からのコンテンツオブジェクトをキャッシングする任意のピアネットワークノード（たとえば、ルータ）を含み得る。
【００５７】
データコレクションが、複数の無名コンテンツオブジェクトと、名前および署名の両方を含むルートマニフェストとを含む、ということを想起する。したがって、インタレストがデータコレクションの名前プレフィックスに関連づけられたネットワークノード（たとえば、発行者またはピアノード）に到達した場合、このネットワークノードは、インタレストを満足するためにルートマニフェストを含むコンテンツオブジェクトを返し得る。このコンテンツオブジェクトは続いて、インタレストによって横断されたパスに沿って逆方向に転送され、この時点で、クライアントは、データコレクションのためのルートマニフェストを含むコンテンツオブジェクトを受信する（動作４０４）。
【００５８】
ルートマニフェストは、データオブジェクトまたは非ルートマニフェストといった１つ以上の無名コンテンツオブジェクトのためのコンテンツオブジェクトハッシュ値を含み、また、データコレクションの少なくとも一部をホスティングする１つ以上のコンテンツホスティングサービスのための名前プレフィックスを含む。クライアントが続いて、データコレクションのためのコンテンツホスティングサービスのための名前プレフィックスをルートマニフェストから取得し（動作４０６）、マニフェストからコンテンツオブジェクトハッシュ（ＣＯＨ）自己認証名を選択する（動作４０８）。クライアントが続いて、コンテンツホスティングサービスのための名前プレフィックスを含み、また、（たとえば、コンテンツホスティングサービスのための名前プレフィックスに付加された）ＣＯＨ値を含む、インタレストを生成し、配布することによって、そのハッシュが選択されたＣＯＨ値と一致する無名コンテンツオブジェクトを取得する（動作４１０）。
【００５９】
いくつかの実施形態では、現在の名前プレフィックスを告知しているコンテンツホスティングサービス（単数または複数）が、そのハッシュ値が選択されたＣＯＨ値と一致する無名コンテンツオブジェクトをキャッシングしていない場合がある可能性がある。この場合には、クライアントは、無名コンテンツオブジェクトをキャッシング中であり得る他のコンテンツホスティングサービスに到達するために異なる名前プレフィックスを使用する必要があり得る。たとえば、クライアントは、ルートマニフェストにおける最初の名前プレフィックスを使用してＣＯＨ値のためのインタレストを生成し得、クライアントがインタレストのためのコンテンツオブジェクトを取得できなかった場合にはいつでも、ルートマニフェストにおける他の名前プレフィックスの使用へと（それらがルートマニフェストにおいて出現する順に）進む。したがって、クライアントが動作４１０から（たとえば、所定のタイムアウト期間内に）インタレストを満足するコンテンツオブジェクトを受信しない場合（動作４１２）、クライアントは、データコレクションのためのルートマニフェストから別のコンテンツホスティングサービスのための名前プレフィックスを選択し得（動作４１４）、動作４１０に戻って、この新たな名前プレフィックスを使用してＣＯＨ値のための別のインタレストを生成し、配布し得る。
【００６０】
クライアントがＣＯＨ値に対応する無名コンテンツオブジェクトを受信する場合、クライアントは、マニフェストにおいて参照された他の無名コンテンツオブジェクトのためのインタレストの配布に進み得る。たとえば、クライアントは、マニフェストの中にさらなるＣＯＨ値が存在するかどうかを決定し得る（動作４１６）。そうである場合、クライアントは、マニフェストから別のＣＯＨ自己認証名を選択し得（動作４１８）、動作４１０に戻って、この別のＣＯＨ自己認証名のための別のインタレストを生成し、配布する。いくつかの実施形態において、クライアントは、ルートマニフェストにおける最初の名前プレフィックスを使用して、この別のＣＯＨ自己認証名のためのインタレストを生成し得る。あるいは、クライアントは、データコレクションにおける最後の無名コンテンツオブジェクトを要求するために使用された同一の名前プレフィックスを使用して、他のＣＯＨのためのインタレストを生成し得る。
【００６１】
データコレクションにおける無名コンテンツオブジェクトのいくつかは、非ルートマニフェストを含み得る、ということを想起する。これらの非ルートマニフェストは、データコレクションにおけるコンテンツオブジェクトのための追加のＣＯＨ自己認証名を含むが、他のコンテンツホスティングサービスのための追加の名前プレフィックスを含まない場合がある。したがって、クライアントは、動作４０８〜４１６を繰り返して、それが受信する（マニフェストの階層を形成し得る）各々の追加の非ルートマニフェストを、各々の追加の非ルートマニフェストからのＣＯＨ名とルートマニフェストからの名前プレフィックスとを使用して処理し得る。たとえば、クライアントが現在のマニフェストの中にさらなるＣＯＨ名が存在しないことを決定した場合（動作４１６）、クライアントは、処理すべき非ルートマニフェストが存在するかどうかの決定に進み得る（動作４２０）。そうである場合、クライアントは、動作４０８に戻って、この次の非ルートマニフェストを処理し得る。
【００６２】
いくつかの実施形態では、ＣＣＮノードが、インタレストの名前プレフィックスに関連づけられたコンテンツホスティングサービスにインタレストを転送することにより、無名コンテンツオブジェクトのためのインタレストを処理し得る。コンテンツホスティングサービスは、たとえば、１つ以上の発行者のためのデータコレクションをレプリケートするレプリカサーバ（またはサーバのコレクション）、または、１つ以上の無名コンテンツオブジェクトを記憶およびホスティングする任意のサードパーティサービス（たとえば、インターネットサービスプロバイダ（ＩＳＰ）によって実行されるプロミスキャスキャッシングサービス）を含み得る。サードパーティサービスは無名コンテンツオブジェクトを、発行者から直接受信し得るか、別のサードパーティサービスから受信し得るか、または、無名コンテンツオブジェクトを、それらがリターンパスに沿ってこれらの無名コンテンツオブジェクトを要求するクライアントデバイス（たとえば、ＣＣＮルーティングノードまたはゲートウェイ）へと伝送されているときにキャッシングし得る。
【００６３】
いくつかの実施形態では、発行者は、コレクションの１つ以上の無名コンテンツオブジェクトをサードパーティサービスに提供し、発行者は、サードパーティサービスのための名前プレフィックスを含むようにコンテンツオブジェクトのコレクションのためのルートマニフェストを生成し得る。このケースでは、サードパーティサービスはまた、コレクションの発行者から、コレクションのための名前プレフィックスを含むルートマニフェストを受信し得る。サードパーティサービスは、サードパーティサービスからコンテンツオブジェクトのコレクションを取得することを望み得るいずれかのエンティティ、または、ルートマニフェストにおいてリストされた他のいずれかのサーバに、このルートマニフェストを提供し得る。
【００６４】
しかしながら、サードパーティサービスは常に発行者からコレクションを受信し得るわけではない。いくつかの変形例において、サードパーティサービスは、コレクションのためのそれ自身のルートマニフェストを、ルートマニフェストがサードパーティサービスに関連づけられた名前プレフィックスを含むように作成し得る。サードパーティサービスは、参照または包含によって既存のルートマニフェスト（たとえば、元のルートマニフェスト）を組み込み得る。コレクションにおける無名コンテンツオブジェクトがさらに、信用された既存のルートマニフェストにおけるごとくＣＯＨ値と一致するハッシュ値を有するので、消費者は、サードパーティサービスの名前プレフィックスを使用して、コレクションを要求し得る。コレクションを受信した後、消費者は、元の（信用された）ルートマニフェストを使用してコレクションを検査し得る。したがって、サードパーティサービスは、たとえサードパーティサービスがコレクションのための公式の（信用された）ソースでなくても、および、たとえサードパーティサービスが元のルートマニフェストに含まれていなかったとしても、それ自身の名前プレフィックスを使用して無名コンテンツオブジェクトをホスティングし得る。
【００６５】
既存のルートマニフェストを参照によって組み込む場合、サードパーティサービスは、新たなルートマニフェストを、そのルートマニフェストのための名前プレフィックスだけでなく既存のルートマニフェストのためのコンテンツオブジェクトハッシュ（ＣＯＨ）自己認証名をも含むペイロードを有するように生成し得る。ルートマニフェストへの名前プレフィックスは、サードパーティサービス自身の名前プレフィックス（ローカルでホスティングされる場合）、発行者の名前プレフィックス、および／または既存のルートマニフェストをホスティングする任意の他のサードパーティサービスのための名前プレフィックスを含み得る、ということに注意する。一方、既存のルートマニフェストを包含によって組み込む場合、サードパーティサービスは、新たなルートマニフェストを、サードパーティサービスのための名前プレフィックスだけでなく（コレクションのための他の名前プレフィックスおよびＣＯＨ値を含む）既存のルートマニフェストをも含むペイロードを有するように生成し得る。
【００６６】
たとえば、クライアントは、元のルートマニフェストを使用して、コレクションをダウンロードし、コレクションの真正性を検査し得る。クライアント（またはそのユーザ）がコレクションを再発行（ホスティング）することを望む場合、クライアントは、クライアントによって署名された署名を用いてそれ自身のルートマニフェストを生成し、発行し得、他のクライアントがローカルクライアントによってサービスされる無名コンテンツオブジェクトの真正性を検査し得るように、元のマニフェストを組み込む。クライアントは、たとえば、電子メール、ウェブリンク、またはピアツーピアトラッカーを介し、この新たなルートマニフェストを他者と共有することができる。他のクライアントは、たとえローカルクライアントの名前プレフィックスが「公式の」または「信用された」ルートマニフェストにリストされていなくても、その新たなルートマニフェストを介してローカルクライアントからコレクション（またはその一部）をダウンロードすることができる。
【００６７】
コンテンツホスティングサービスのサーバは、インタレストの名前プレフィックスに関わらず、インタレストのコンテンツオブジェクトハッシュ（ＣＯＨ）自己認証名を、キャッシングされたコンテンツオブジェクトのハッシュと照合することによって、インタレストを処理し得る。図５は、実施形態に係る、無名オブジェクトを要求するインタレストメッセージを処理するための例示的な方法５００を示すフローチャートを提示する。動作中、コンテンツホスティングサービスのサーバは、その名前が、コンテンツホスティングサービスのための名前プレフィックスを含み、また、無名コンテンツオブジェクトのＣＯＨ値（自己認証名）を含む、インタレストを受信し得る（動作５０２）。サーバが続いて、インタレストの名前プレフィックスに関わらず、そのハッシュがインタレストにおけるＣＯＨ値と一致する無名コンテンツオブジェクトをローカルコンテンツストアから取得する（動作５０４）。サーバが続いて、インタレストを満足するために、一致する無名コンテンツオブジェクトを返し得る（動作５０６）。
【００６８】
いくつかの実施形態では、サーバは、サーバがインタレストを受信したフェースを介して無名コンテンツオブジェクトを返す。また、他のＣＣＮノードが、無名コンテンツオブジェクトのハッシュに基づき、インタレストによって横断されたパスに沿って逆方向に無名コンテンツオブジェクトを転送する。たとえば、ＣＣＮノードが無名コンテンツオブジェクトを受信すると、ＣＣＮノードは、ペンディングインタレストテーブル（ＰＩＴ）におけるルックアップを実行して、無名コンテンツオブジェクトのハッシュを、ペンディングインタレストにおける名前プレフィックスに関わらず、これらのペンディングインタレストにおけるＣＯＨ値と照合することにより、使用するフェースを決定して無名コンテンツオブジェクトを転送し得る。
【００６９】
図６は、実施形態に係る、複数のコンテンツホスティングサービスにわたる無名オブジェクトのレプリケートを容易にする例示的な装置６００を示す。装置６００は、有線または無線通信チャネルを介して互いに通信し得る複数のモジュールを備え得る。装置６００は、１つ以上の集積回路を使用して実現され得、図６に示されたモジュールより少ないまたは多いモジュールを含み得る。さらに、装置６００は、コンピュータシステムに統合され得るか、または、他のコンピュータシステムおよび／またはデバイスと通信することができる別個のデバイスとして実現され得る。具体的には、装置６００は、通信モジュール６０２、コレクション管理モジュール６０４、マニフェスト生成モジュール６０６、およびマニフェスト処理モジュール６０８を備え得る。
【００７０】
いくつかの実施形態において、通信モジュール６０２は、ＣＣＮインタレストおよびコンテンツオブジェクトを配布および／または受信し得る。コレクション管理モジュール６０４は、データのための無名コンテンツオブジェクトを生成し、これらの無名コンテンツオブジェクトをコレクションに挿入することによって、コレクションにデータを追加し得る。マニフェスト生成モジュール６０６は、無名コンテンツオブジェクトのためのマニフェスト（たとえば、マニフェストの階層）を生成し得、これらのマニフェストをコレクションに追加し得る。マニフェスト処理モジュール６０８は、データコレクションのためのマニフェストを処理して、コレクションにおける無名コンテンツオブジェクトをそれらのハッシュ値に基づいて要求するインタレストを生成し、配布し得る。
【００７１】
図７は、実施形態に係る、複数のコンテンツホスティングサービスにわたる無名オブジェクトのレプリケートを容易にする例示的なコンピュータシステム７０２を示す。コンピュータシステム７０２は、プロセッサ７０４、メモリ７０６、および記憶デバイス７０８を含む。メモリ７０６は、管理されたメモリとしての役割を果たす揮発性メモリ（たとえば、ＲＡＭ）を含み得、１つ以上のメモリプールを記憶するために使用され得る。さらに、コンピュータシステム７０２は、ディスプレイデバイス７１０、キーボード７１２、およびポインティングデバイス７１４に結合され得る。記憶デバイス７０８は、オペレーティングシステム７１６、コンテンツレプリケーションシステム７１８、およびデータ７２８を記憶し得る。
【００７２】
コンテンツレプリケーションシステム７１８は、コンピュータシステム７０２によって実行されるとコンピュータシステム７０２に本開示において説明された方法および／または処理を実行させ得る命令を含み得る。具体的には、コンテンツレプリケーションシステム７１８は、ＣＣＮインタレストおよびコンテンツオブジェクトを配布および／または受信するための命令を含み得る（通信モジュール７２０）。さらに、コンテンツレプリケーションシステム７１８は、データのための無名コンテンツオブジェクトを生成し、これらの無名コンテンツオブジェクトをコレクションに挿入することによって、コレクションにデータを追加するための命令を含み得る（コレクション管理モジュール７２２）。コンテンツレプリケーションシステム７１８はまた、無名コンテンツオブジェクトのためのマニフェスト（たとえば、マニフェストの階層）を生成し、これらのマニフェストをコレクションに追加するための命令を含み得る（マニフェスト生成モジュール７２４）。コンテンツレプリケーションシステム７１８はまた、データコレクションのためのマニフェストを処理して、コレクションにおける無名コンテンツオブジェクトをそれらのハッシュ値に基づいて要求するインタレストを生成し、配布するための命令を含み得る（マニフェスト処理モジュール７２６）。
【００７３】
データ７２８は、入力として必要とされるか、または本開示において説明された方法および／または処理により出力として生成された、任意のデータを含み得る。具体的には、データ７２８は少なくとも、無名コンテンツオブジェクトのコレクション、無名コンテンツオブジェクトのためのマニフェストの階層を記憶し得る。
【００７４】
この詳細な説明において説明されたデータ構造およびコードは典型的に、コンピュータシステムによる使用のためのコードおよび／またはデータを記憶し得る任意のデバイスまたは媒体であり得る、コンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、揮発性メモリ、不揮発性メモリ、磁気および光学記憶デバイス、たとえば、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスクまたはデジタルビデオディスク）、または、現在知られているかまたはこれから開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含むが、これに限定されない。
【００７５】
詳細な説明のセクションにおいて説明された方法および処理は、上述されたコンピュータ読み取り可能な記憶媒体に記憶され得るコードおよび／またはデータとして具体化され得る。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコードおよび／またはデータを読み取って実行する場合、コンピュータシステムは、データ構造およびコードとして具体化され、コンピュータ読み取り可能な記憶媒体内に記憶された、方法および処理を実行する。
【００７６】
さらに、上述された方法および処理は、ハードウェアモジュールに含まれ得る。たとえば、ハードウェアモジュールは、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および現在知られているかまたはこれから開発される他のプログラマブルロジックデバイスを含み得るが、これに限定されない。ハードウェアモジュールが起動される際、ハードウェアモジュールは、ハードウェアモジュールの中に含まれた方法および処理を実行する。
【図１】
2016024819.tif 000002
【図２Ａ】
2016024819.tif 000003
【図２Ｂ】
2016024819.tif 000004
【図２Ｃ】
2016024819.tif 000005
【図３】
2016024819.tif 000006
【図４】
2016024819.tif 000007
【図５】
2016024819.tif 000008
【図６】
2016024819.tif 000009
【図７】
2016024819.tif 000010