(57)【特許請求の範囲】
【請求項１】
ピアツーピアネットワークの１つのコンピューティングデバイスが、特定のデジタルコンテンツを求めるダウンロード要求を送信する、ピアツーピアネットワークの１つまたは複数の他のコンピューティングデバイスのコンピューティングデバイスを識別する(identifying)システムであって、
（ａ）現在前記特定のデジタルコンテンツを有する前記他のコンピューティングデバイスの１つまたは複数に関する情報にアクセスする手段と、
（ｂ）現在前記特定のデジタルコンテンツを取得中である前記他のコンピューティングデバイスの１つまたは複数に関する情報にアクセスする手段と、
（ｃ）前記特定のコンピューティングデバイスが、現在前記特定のデジタルコンテンツを有する前記他のコンピューティングデバイスの１つまたは複数のそれぞれから、前記特定のデジタルコンテンツをダウンロードするのにかかる時間の１つまたは複数の第１の推定値(estimates)を決定する手段であって、当該手段が、現在、前記特定のデジタルコンテンツを有する前記他のコンピューティングデバイスの１つまたは複数に関する前記情報に基づいて動作し、
１つまたは複数の第１の推定値の各々が、少なくとも部分的に、
現在前記特定のデジタルコンテンツを有する前記他のコンピューティングデバイスの１つが、ダウンロードをサポートするために利用可能となるために必要となる合計時間、及び、
現在特定のデジタルコンテンツを有する、前記他のコンピューティングデバイスの１つからダウンロードが開始した場合に、前記特定のコンピューティングデバイスが、前記特定のデジタルコンテンツのダウンロードを完了させるために必要となる合計時間、
の推定値の合計に基づくものと、
（ｄ）現在前記特定のデジタルコンテンツを前記取得中である前記他のコンピューティングデバイスの１つまたは複数に関する前記情報に基づいて、前記特定のコンピューティングデバイスが、現在前記特定のデジタルコンテンツを前記取得中である前記他のコンピューティングデバイスの１つまたは複数のそれぞれから、前記特定のデジタルコンテンツをダウンロードするのにかかる時間の１つまたは複数の第２の推定値を決定する手段と、
（ｅ）前記決定された第１および第２の推定値に基づいて、前記特定のデジタルコンテンツを求めるダウンロード要求の送信先とすべき、前記他のコンピューティングデバイスの１つまたは複数を識別する手段であって、前記他のコンピューティングデバイスの１つまたは複数を識別する手段が、現在、前記特定のデジタルコンテンツの獲得を行っている最中の、1つ又は複数の他のコンピューティングデバイスに関する情報に基づいて動作し
１つ又は複数の第２の推定値の各々が、少なくとも部分的に、
他のコンピューティングデバイスの１つが、特定のデジタルコンテンツの獲得を完了するために必要とされる時間の合計と、
他のコンピューティングデバイスの１つが、特定のデジタルコンテンツの獲得を完了した後に、特定のコンピューティングデバイスが、他のコンピューティングデバイスの１つからの、特定のデジタルコンテンツのダウンロードを完了するために必要とされる時間の合計と、
の推定の合計に基づくものと、
（ｆ）前記特定のデジタルコンテンツを求めるダウンロード要求を、前記特定のコンピューティングデバイスから前記識別された１つまたは複数の他のコンピューティングデバイスの少なくとも１つに送信することを実行または推奨する手段と
を含むシステム。
【請求項２】
前記識別する手段は、
時間における複数の異なるスナップショットのそれぞれに対して、前記他のコンピューティングデバイスのどの１つまたは複数が、前記特定のデジタルコンテンツをダウンロードするために利用可能となるかを決定する手段であって、前記スナップショットの少なくとも１つは現在の時点に対応し、前記スナップショットの少なくとも１つは将来の時点に対応する、手段と、
前記決定する手段の結果に基づいて、前記特定のデジタルコンテンツを求めるダウンロード要求の送信先とすべき、前記他のコンピューティングデバイスの前記１つまたは複数の少なくとも１つを識別する手段と
を含む、請求項１に記載のシステム。
【請求項３】
前記識別する手段は、
前記特定のデジタルコンテンツを求めるダウンロード要求の送信先とすべき前記他のコンピューティングデバイスの１つとして、それから前記特定のコンピューティングデバイスが、現時点に対して最も早い時点に前記特定のデジタルコンテンツの前記ダウンロードを完了すると推定される前記他のコンピューティングデバイスの１つを識別する手段、または
前記特定のデジタルコンテンツを求めるダウンロード要求の送信先とすべき前記他のコンピューティングデバイスの１つとして、それから前記特定のコンピューティングデバイスが、前記ダウンロードが開始した後に最も短い時間で前記特定のデジタルコンテンツをダウンロードすると推定される前記他のコンピューティングデバイスの１つを識別する手段
の１つを含む、請求項１に記載のシステム。
【請求項４】
前記識別する手段は、現在前記特定のデジタルコンテンツを前記取得中である前記他のコンピューティングデバイスの１つを識別する手段を含み、
前記実行または推奨する手段は、
現在前記特定のデジタルコンテンツを前記取得中である前記他のコンピューティングデバイスの前記識別された１つが、前記特定のデジタルコンテンツを取得し終えるまで待つ手段と、
前記他のコンピューティングデバイスの前記識別された１つが、前記特定のデジタルコンテンツを取得し終えた後に、前記特定のデジタルコンテンツを求めるダウンロード要求を、前記特定のコンピューティングデバイスから、前記他のコンピューティングデバイスの前記識別された１つへ送信する手段と
を含む、請求項１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明の一実施例は、例えば、ピアツーピア性能の改善に関する。
【背景技術】
【０００２】
[0001]ビデオゲームなどのデジタルコンテンツは、インターネットを通したデジタルコンテンツプロバイダーからの直接ダウンロードにしばしば利用可能であり、それによってユーザーが光学式記憶ディスクまたは何らかの他のデータ記憶装置を用いてユーザーのコンピューティングデバイスにこのようなデジタルコンテンツをインストールする必要性がなくなる。しかしこのようなデジタルコンテンツは大量のデータを含む場合があり、したがって全部をダウンロードするのにかなりの時間がかかる可能性がある。さらにデジタルコンテンツプロバイダーから、クライアントとも呼ぶことができるユーザーのコンピューティングデバイスにデジタルコンテンツを転送するために、かなりの量のデジタルコンテンツプロバイダーリソースおよびネットワークリソースが使用され得る。デジタルコンテンツが最初にリリースまたは更新されたときにしばしば起きる、同時に数多くのコンピューティングデバイスが同じデジタルコンテンツをダウンロードしようと試みるときに、このようなデジタルコンテンツを転送するために用いられる時間、デジタルコンテンツプロバイダーリソース、およびネットワークリソースの量はさらに悪化される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本願発明の一実施例は、例えば、ピアツーピア性能の改善に関する。
【課題を解決するための手段】
【０００４】
[0002]本明細書で開示される様々な実施形態は、ピアツーピアネットワークにおけるデジタルコンテンツの分配を改善するために用いることができる。いくつかのこのような実施形態では、現在特定のデジタルコンテンツを有するコンピューティングデバイスに関する情報、同様に現在特定のデジタルコンテンツを取得中であるコンピューティングデバイスに関する情報が収集される。このような情報に基づいて、ピアツーピアネットワークの将来のスナップショットを予測することができ、いくつかの場合にはコンピューティングデバイスは、直ちにダウンロードを行おうと試みるより、将来の時点まで待って、特定のデジタルコンテンツをダウンロードしようと試みる方がよい場合があることを判断するためにこのスナップショットを用いることができる。
【０００５】
[0003]いくつかの実施形態では、コンピューティングデバイスは、位置情報に基づいて異なるグループにマップされ、グループ間情報が収集され、コンピューティングデバイスがデジタルコンテンツを求めるダウンロード要求をそれに送信することが効率的で効果的となるであろう他のコンピューティングデバイスを識別するために用いられる。
【０００６】
[0004]いくつかの実施形態では、異なるデジタルコンテンツユニットに関連する欠乏度を示す情報が収集され、デジタルコンテンツユニットの分配はこのような情報に基づいて優先順位付けされる。
【０００７】
[0005]いくつかの実施形態では、コンピューティングデバイスは、コンピューティングデバイスのクラスターにグループ化され、同じクラスター内の異なるコンピューティングデバイスは、異なるデジタルコンテンツユニットを求めるダウンロード要求を、クラスターの外部のコンピューティングデバイスに送信するように命令または推奨され、それにより同じクラスター内の複数のコンピューティングデバイスは、異なるデジタルコンテンツユニットのすべてを共同で取得するようになる。その結果、同じクラスター内のコンピューティングデバイスは、デジタルコンテンツユニットを互いに共有することができる。
【０００８】
[0006]この「発明の概要」は、以下の「発明を実施するための形態」でさらに詳しく述べられる、選ばれた概念を簡略化した形で紹介するために示される。この「発明の概要」は、特許請求される主題の主要な特徴または本質的な特徴を特定することを意図するものではなく、特許請求される主題の範囲を限定するために用いられることを意図するものでもない。さらに特許請求される主題は、本開示のいずれかの部分において記載された、いずれかのまたはすべての欠点を解決する実装形態に限定されない。
【図面の簡単な説明】
【０００９】
【図１】[0007]本明細書で述べられる実施形態の少なくともいくつかが実施され得る、例示の使用環境を示す図である。
【図２】[0008]それらに対してピアツーピアネットワークの特定のコンピューティングデバイスが特定のデジタルコンテンツを求める１つまたは複数のダウンロード要求を送信することを実行または推奨すべき、ピアツーピアネットワークの１つまたは複数の他のコンピューティングデバイスを識別する方法の一実施形態を示すフロー図である。
【図３】[0009]図２のフロー図のステップが行われるときに生じ得る例示のテーブルである。
【図４】[0010]それらに対してピアツーピアネットワークのコンピューティングデバイスがデジタルコンテンツを求める１つまたは複数のダウンロード要求を送信することを実行または推奨すべき、ピアツーピアネットワークの１つまたは複数の他のコンピューティングデバイスを識別する方法の一実施形態を示すフロー図である。
【図５】[0011]図４のフロー図のステップを行うときにアクセスおよび使用され得る情報のタイプの一例を示す例示のテーブルである。
【図６】[0012]ピアツーピアネットワークの複数のコンピューティングデバイスの間の、複数の異なるデジタルコンテンツユニットの分配を改善する方法の一実施形態を示すフロー図である。
【図７】[0013]ピアツーピアネットワーク内、またはピアツーピアネットワークの一部であるコンピューティングデバイスのグループ内のデジタルコンテンツアイテムの相対的欠乏度を示す例示のヒストグラムである。
【図８】[0014]ピアツーピアネットワークのコンピューティングデバイスの間のデジタルコンテンツユニットの分配を改善する方法の一実施形態を示すフロー図である。
【図９】[0015]図８のフロー図を参照して述べられる実施形態の例示の使用を示すために用いられる高レベルブロック図である。
【図１０】[0016]例示のゲームおよびメディアシステムの等角図である。
【図１１】[0017]図１０のゲームおよびメディアシステムの構成要素の例示の機能ブロック図である。
【発明を実施するための形態】
【００１０】
[0018]ピアツーピア（Ｐ２Ｐ）ネットワークは、ビデオゲームなどのデジタルコンテンツを、複数のコンピューティングデバイスに分配するために用いられる、デジタルコンテンツプロバイダーリソース、ネットワークリソース、および時間の量を低減するために用いられ得る。
【００１１】
[0019]いくつかの実施形態では、特定のデジタルコンテンツの分配を改善するために、現在特定のデジタルコンテンツを有するコンピューティングデバイスに関する情報、同様に現在特定のデジタルコンテンツを取得中であるコンピューティングデバイスに関する情報が収集される。このような情報に基づいて、（特定のデジタルコンテンツを求める）ダウンロード要求の送信先とすべきコンピューティングデバイスが識別され、ダウンロード要求は、効率的で効果的なやり方で特定のデジタルコンテンツのピアツーピア転送を引き起こすように実行または推奨される。このような実施形態は、ピアツーピアネットワークの将来のスナップショットを予測し、いくつかの場合には、直ちにデジタルコンテンツのピアツーピア転送を開始しようと試みるのではなく、このような転送を開始するのに将来の時点まで待つ方がよいだろうと判断する。
【００１２】
[0020]いくつかの実施形態では、コンピューティングデバイスは、位置情報（例えばタイムゾーン、および／または地理的領域情報）に基づいて複数の異なるグループにマップされる。さらに例えばグループ間データ転送速度および／またはグループ間利用可能性を含む、グループ間情報が収集される。グループ間情報に基づいて、デジタルコンテンツを求めるダウンロード要求をそれに送信することが効率的で効果的となるであろうコンピューティングデバイスが識別され、このようなダウンロード要求が実行または推奨される。
【００１３】
[0021]いくつかの実施形態では、複数の異なるデジタルコンテンツユニットのそれぞれに関連する欠乏度を示す情報が収集され、デジタルコンテンツユニットの分配は、指定のレベルを超えた欠乏度を有するデジタルコンテンツユニットの欠乏度を低減するように優先順位付けされる。デジタルコンテンツユニットの分配は、指定のレベルを超えた欠乏度を有するデジタルコンテンツユニットの欠乏度を低減するために、優先順位付けの結果に基づいて実行される。このような実施形態は、ピアツーピアネットワークのコンピューティングデバイスの間のデジタルコンテンツユニットの分配を改善する効果を有し得る。
【００１４】
[0022]いくつかの実施形態では、コンピューティングデバイスは、クラスターのそれぞれが複数のコンピューティングデバイスを含むように、コンピューティングデバイスのクラスターにグループ化される。クラスターのそれぞれに対して、同じクラスター内の異なるコンピューティングデバイスは、同じクラスター内の複数のコンピューティングデバイスが異なるデジタルコンテンツユニットのすべてを共同で取得するように、クラスターの外部のコンピューティングデバイスに、異なるデジタルコンテンツユニットを求めるダウンロード要求を送信するように命令または推奨される。このような実施形態はまた、ピアツーピアネットワークのコンピューティングデバイスの間のデジタルコンテンツユニットの分配を改善する効果を有し得る。
【００１５】
[0023]上述の実施形態をより詳しく論じる前に、図１を参照して使用環境１００の例示的実施形態について述べる。例示の使用環境１００は、複数のコンピューティングデバイス１１２１、１１２２、１１２３、・・・１１２ｎを備え、これらはまとめてコンピューティングデバイス１１２と呼ぶことができ、および個々にコンピューティングデバイス１１２と呼ぶことができる。デジタルコンテンツを受信、処理、および表示するように構成された各コンピューティングデバイス１１２は、対応するユーザーに関連する。いくつかの場合には、２つ以上のコンピューティングデバイスが同じユーザーに関連し得る。例えばユーザーは、ビデオゲームコンソール、モバイルデバイス、コンピュータ（例えばラップトップ、デスクトップ、タブレット）、ウェアラブルデバイス（例えばヘッドマウントディスプレイ）などの２つ以上を有する場合があり、それらのコンピューティングデバイスのそれぞれでデジタルコンテンツを消費し得る。
【００１６】
[0024]各コンピューティングデバイスは、ネットワーク１２２（例えばコンピュータネットワーク、携帯電話ネットワーク、および／または任意の他の適切なタイプのネットワーク）を通じて、１つまたは複数のデジタルコンテンツストア１３２（例えばそこからデジタルコンテンツをダウンロードできる場所）と通信することができる。デジタルコンテンツストア１３２は、複数のデジタルコンテンツアイテム１３４１、１３４２、・・・１３４ｎを記憶するように示され、これらはまとめてデジタルコンテンツアイテム１３４と呼ぶことができ、および個別にデジタルコンテンツアイテム１３４と呼ぶことができる。デジタルコンテンツストアは、コンテンツ配信ネットワーク（ＣＤＮ）によってサポートされ得るが、それに限定されない。各コンピューティングデバイス１１２はまた、ピアコンピューティングデバイスからデジタルコンテンツを受信するように、ピアツーピア構成において１つまたは複数の他のコンピューティングデバイス１１２と通信することができる。常時、ピアツーピア通信に参加している、またはそのために利用可能なコンピューティングデバイス１１２は、スワームと呼ぶことができる。スワームは、コンピューティングデバイスは、ユーザーが自分のコンピューティングデバイスをオンおよびオフにするのに応答して、ならびに／またはユーザー（もしくはユーザーのコンピューティングデバイス）がピアツーピア通信能力を選択的にイネーブルおよびディスエーブルするのに応答して、スワームに加わるまたは退出することができるという点で動的である。特定の例の場合は、コンピューティングデバイスは、ユーザーエクスペリエンスを保存するためにネットワーク、ＣＰＵおよび／またはメモリリソースなどのリソースを使用できるように、そのピアツーピア能力のすべてまたは一部を一時的にディスエーブルすることができる。
【００１７】
[0025]各デジタルコンテンツアイテム１３４は、複数のコンテンツ部分を備え、その例はデジタルコンテンツアイテム１３４２に対するコンテンツ部分１３６１、・・・１３６ｎとして示される。デジタルコンテンツアイテム１３４は、ビデオゲーム、対話型ビデオ、およびソーシャルメディアなどの対話型コンテンツを含む任意の適切なタイプのデジタルコンテンツを表すことができるが、それらに限定されない。他の例は、映画、テレビ番組および他のビデオ、音楽、写真、ウェブサイトなどを含むが、それらに限定されない。同様に、コンテンツ部分は、メモリの特定の部分（例えばメモリロケーション、ディスクセクターなど）、またはひいては特定のファイル、それらの部分などの、任意の適切な形をとることができるが、それらに限定されない。
【００１８】
[0026]コンピューティングデバイス１１２がデジタルコンテンツのピアツーピア転送を行うことができる場合は、各コンピューティングデバイス１１２はまたピアノード（または単にピアもしくはノード）と呼ぶことができ、使用環境１００全体はまたピアツーピアコンテンツ分配ネットワーク（または単にピアツーピアネットワーク）と呼ぶことができる。ピアツーピアネットワークでは、通信ネットワーク内の複数のノードは、ピアツーピアファイル共有プロトコルへのアクセスを有し、そのプロトコルを用いて、分配されつつあるファイルなどの特定のデジタルコンテンツのコピーの取得を試みることができる。ネットワーク内のノードはそれぞれ、そのプロトコルを用いて他のノードへの１つまたは複数の現在の接続を有することができる。したがってノードは、すでにネットワーク内にあるノードへの接続を切断または形成するのに従って、ネットワークに加わるまたは退出することができる。接続は、コンテンツ分配のために常に積極的に用いられる必要はないが、接続は、特定のプロトコルを用いてそうするのに適している必要があり、これはネットワークエンコーディングを用いても用いなくてもよい。接続は一方向または二方向接続のいずれでもよい。所与のノードは、一時に、２つ以上のピアツーピアネットワークのメンバーとなることが可能である。
【００１９】
[0027]図１はまた、コーディネーターコンピューティングデバイス１４２を示し、これはまたコーディネーターノード、または単にコーディネーターと呼ぶことができる。コーディネーター１４２は、コンピューティングデバイスがピアツーピアネットワークに参加しているか、および共有すべきデジタルコンテンツを有するかなどの、様々なコンピューティングデバイス１１２についての、情報を収集し維持することができる。さらにコーディネーター１４２は、コンピューティングデバイス１１２が、必要なまたは所望のデジタルコンテンツを有する他のコンピューティングデバイス１１２を見つけるのを支援することができる。コーディネーター１４２は、例えばトラッカーとすることができるがそれに限定されない。図１には１つのコーディネーター１４２だけが示されるが、ピアツーピアコンテンツ分配ネットワーク１００は複数のコーディネーター１４２を含むことができる。
【００２０】
[0028]遅延シード処理を用いたＰ２Ｐ性能の改善
上述のようにいくつかの実施形態は、特定のデジタルコンテンツの分配を、現在特定のデジタルコンテンツを有するコンピューティングデバイスに関する情報を収集する、同様に現在特定のデジタルコンテンツを取得中であるコンピューティングデバイスに関する情報を収集することによって改善することに関する。このような情報に基づいて、（特定のデジタルコンテンツを求める）ダウンロード要求の送信先とすべきコンピューティングデバイスが識別され、ダウンロード要求は、効率的で効果的なやり方で特定のデジタルコンテンツのピアツーピア転送を引き起こすように実行または推奨される。これらの実施形態は、ピアツーピアネットワークの将来のスナップショットを予測し、いくつかの場合には、直ちにデジタルコンテンツのピアツーピア転送を実行しようと試みるのではなく、このような転送を実行するのに将来の時点まで待つ方がよいだろうと判断する。
【００２１】
[0029]これらの実施形態を説明するために、以下で論じられる図２の高レベルフロー図が用いられる。より具体的には次に図２を用いて、それに対してピアツーピアネットワークの特定のコンピューティングデバイス（例えば図１の１１２１）が特定のデジタルコンテンツを求める１つまたは複数のダウンロード要求を送信することを実行または推奨すべき、ピアツーピアネットワークの１つまたは複数の他のコンピューティングデバイスを識別する方法が述べられる。特定のデジタルコンテンツは、複数のデジタルコンテンツ部分（デジタルコンテンツユニットとも呼ばれる）を含むデジタルコンテンツアイテム全体、複数のデジタルコンテンツ部分を含むデジタルコンテンツアイテムの特定のデジタルコンテンツ部分、またはデジタルコンテンツアイテムのデジタルコンテンツ部分の特定のグループとすることができる。
【００２２】
[0030]一実施形態によれば、図２のステップは、コンピューティングデバイス（例えば図１の１１２１）が、特定のデジタルコンテンツ（例えば、特定のデジタルコンテンツ部分）の取得を必要とするまたは望むことを知らせることに応答して開始される。図２を参照するとステップ２０２で、現在特定のデジタルコンテンツを有する他のコンピューティングデバイスの１つまたは複数に関する情報がアクセスされる。ステップ２０４で、現在特定のデジタルコンテンツを取得中である他のコンピューティングデバイスの１つまたは複数に関する情報がアクセスされる。いくつかの実施形態では、現在特定のデジタルコンテンツを取得中であるコンピューティングデバイスは、特定のデジタルコンテンツを求めるダウンロード要求を少なくともすでに送信しているが、特定のデジタルコンテンツのダウンロードをすでに開始していてもいなくてもよい。他の実施形態では、現在特定のデジタルコンテンツを取得中であるコンピューティングデバイスは、特定のデジタルコンテンツのダウンロードをすでに開始している。
【００２３】
[0031]ステップ２０２および２０４でアクセスされる情報は、ダウンロード速度情報（データ転送速度情報と呼ぶこともできる）、コンピューティングデバイス利用可能性情報を含むことができるが、それらに限定されない。このような情報がアクセスされるためには、初めに情報が収集される必要がある。いくつかの実施形態ではこのような情報は、コーディネーター（例えば図１のコーディネーター１４２）によって収集され維持される。他の実施形態では、ピアツーピアネットワークの各コンピューティングデバイス１１２は、それ自体の使用のためにこのような情報を収集し維持することができる。さらに他の実施形態では特定のコンピューティングデバイスは、情報の一部を収集し維持することができ、また情報の一部にコーディネーターからアクセスすることができる。言い換えれば特定のコンピューティングデバイスは、それ自体の収集され維持された情報にアクセスする、および／またはコーディネーターによって収集され維持された情報にアクセスすることができる。より一般的には、図１を参照して述べられる方法は、特定のデジタルコンテンツを必要とするまたは望む特定のコンピューティングデバイスによって（コーディネーターからの支援なしに）、特定のコンピューティングデバイスおよび他のコンピューティングデバイスと通信するコーディネーターによって、または特定のコンピューティングデバイスとコーディネーターの組み合わせによって行うことができる。
【００２４】
[0032]以下の説明から理解されるように、ステップ２０２および２０４でアクセスされる情報は、特定のデジタルコンテンツを必要とするまたは望む特定のコンピューティングデバイス（例えば図１のコンピューティングデバイス１１２１）に対する１つまたは複数のシードを識別するために用いられる。ピアツーピアネットワークにおいてシードは、別のコンピューティングデバイスによって必要とされるまたは望まれる特定のデジタルコンテンツを有し、特定のデジタルコンテンツのコピーの供給元となるように利用可能でありかつその用意がある（例えばダウンロード要求に応答して）、コンピューティングデバイスである。この説明では、現在特定のデジタルコンテンツを有するが、後の時点までシードとして利用可能ではない（例えばそれらが現在オフラインである、または繁忙であるために）コンピューティングデバイスは、現在利用可能でないシードと呼ぶことができる。現在特定のデジタルデータコンテンツを有しないが、現在特定のデジタルコンテンツを取得中であるコンピューティングデバイスは、将来のシードと呼ぶことができる。現在利用可能でないシード、および将来のシードは、遅延シードの異なる例である。現在特定のデジタルコンテンツを有し、現在特定のデジタルコンテンツのコピーの供給元となることができるシードは、現在利用可能なシードと呼ぶことができる。ステップ２０２では、現在利用可能なシードおよび現在利用可能でないシードに関する情報にアクセスすることができる。ステップ２０４では、将来のシードに関する情報にアクセスすることができる。
【００２５】
[0033]ステップ２０６では、現在特定のデジタルコンテンツを有する他のコンピューティングデバイスに関する情報に基づいて、特定のコンピューティングデバイスが、現在特定のデジタルコンテンツを有する他のコンピューティングデバイスの１つまたは複数のそれぞれから、特定のデジタルコンテンツをダウンロードするのにかかる時間の第１の推定値が決定される。これは、現在特定のデジタルコンテンツを有する２０個の他のコンピューティングデバイスがある場合に、２０個の推定値を決定する必要があることを必ずしも意味しない。そうではなく、現在特定のデジタルコンテンツを有する２０個の他のコンピューティングデバイスのいくつか（例えば１０個）に対してだけ推定を決定できるということが可能である。
【００２６】
[0034]ステップ２０８では、現在特定のデジタルコンテンツを取得中である他のコンピューティングデバイスに関する情報に基づいて、特定のコンピューティングデバイスが、現在特定のデジタルコンテンツを取得中である他のコンピューティングデバイスの１つまたは複数のそれぞれから、特定のデジタルコンテンツをダウンロードするのにかかる時間の第２の推定値が決定される。ステップ２０６でそうであったように、ステップ２０８では現在特定のデジタルコンテンツを取得中である他のコンピューティングデバイスのありとあらゆるもの、または一部のみに対して推定を決定することができる。
【００２７】
[0035]いくつかの実施形態によれば、ステップ２０６で決定された各第１の推定値は、現在特定のデジタルコンテンツを有する他のコンピューティングデバイスの１つ（例えば１１２２）が、特定のデジタルコンテンツの供給元となるために利用可能となるまでにかかる時間の推定値と、特定のコンピューティングデバイス（例えば１１２１）が、他のコンピューティングデバイス（例えば１１２２）が特定のデジタルコンテンツの供給元となるために利用可能となった後に、特定のデジタルコンテンツのダウンロードを完了するのにかかる時間の推定値の合計である。例えば、コンピューティングデバイス１１２２は、コンピューティングデバイス１１２１が必要とするまたは望む特定のデジタルコンテンツを有するが、コンピューティングデバイス１１２２は今から７分間は、特定のデジタルコンテンツの供給元となることができない（例えばコンピューティングデバイス１１２２は次の７分間、他のコンピューティングデバイスをシード処理するのに繁忙になる、および／またはビデオをストリーミングするので）と仮定する。またコンピューティングデバイス１１２２が特定のデジタルコンテンツの供給元となるために利用可能となった後に、特定のコンピューティングデバイス１１２１がコンピューティングデバイス１１２２から特定のデジタルコンテンツのダウンロードを完了するのに４分かかると推定されると仮定する。この例の場合は、ステップ２０６で決定される第１の推定値は、１１分となる（すなわち７分足す４分は１１分）。代替実施形態では、各第１の推定値は、特定のコンピューティングデバイス（例えば１１２１）が、現在特定のデジタルコンテンツを有する他のコンピューティングデバイスの１つからのダウンロードが開始した後に、特定のデジタルコンテンツのダウンロードを完了するのにかかる時間の推定値である。上述の例の続きで、代替実施形態では第１の推定値は４分となる。
【００２８】
[0036]いくつかの実施形態によれば、ステップ２０８で決定される各第２の推定値は、他のコンピューティングデバイスの１つ（例えば１１２３）が特定のデジタルコンテンツを取得する過程を完了するのにかかる時間の推定値と、特定のコンピューティングデバイスが特定のデジタルコンテンツを取得する過程を完了した後に、他のコンピューティングデバイス（例えば１１２３）から特定のデジタルコンテンツのダウンロードを完了するのにかかる時間の合計とすることができる。例えば、コンピューティングデバイス１１２３が特定のデジタルコンテンツを取得する過程を完了するのに１０分かかると推定され、特定のコンピューティングデバイス１１２１が、他のコンピューティングデバイス１１２３が特定のデジタルコンテンツを取得する過程を完了した後にそれから特定のデジタルコンテンツのダウンロードを完了するのに５分かかると推定すると、ステップ２０８で決定される第２の推定値は１５分となる。代替実施形態では、各第２の推定値は、特定のコンピューティングデバイスが、他のコンピューティングデバイスの１つが特定のデジタルコンテンツを取得する過程を完了した後に、他のコンピューティングデバイスの１つから特定のデジタルコンテンツのダウンロードを完了するのにかかる時間の推定値である。上述の例の続きで、代替実施形態では第２の推定値は５分となる。
【００２９】
[0037]ステップ２１０で、第１および第２の推定値（ステップ２０６および２０８で決定された）に基づいて、特定のデジタルコンテンツを求めるダウンロード要求の送信先とすべき、他のコンピューティングデバイスの１つまたは複数が識別される。
【００３０】
[0038]いくつかの実施形態では、ステップ２１０で識別された他のコンピューティングデバイスの１つは、現時点に対して最も早い時点においてそれから特定のコンピューティングデバイスが、特定のデジタルコンテンツをダウンロードするように推定された他のコンピューティングデバイスである。追加の他のコンピューティングデバイスも、ステップ２１０で識別することができる。より一般的にはステップ２１０で、Ｎ個の他のコンピューティングデバイスを識別することができ、これは、それから特定のコンピューティングデバイスが、特定のデジタルコンテンツを第１、第２、・・・第Ｎの最も早い時点でダウンロードすると推定される、Ｎ個の他のコンピューティングデバイスに対応する。
【００３１】
[0039]他の実施形態では、ステップ２１０で識別される他のコンピューティングデバイスの１つは、それから特定のコンピューティングデバイスがダウンロードを開始した後に、特定のコンピューティングデバイスが最も短い時間で特定のデジタルコンテンツをダウンロードすると推定される、他のコンピューティングデバイスである。追加の他のコンピューティングデバイスも、ステップ２１０で識別することができる。より一般的にはステップ２１０で、Ｎ個の他のコンピューティングデバイスを識別することができ、これは、それから特定のコンピューティングデバイスがダウンロードを開始した後に、特定のコンピューティングデバイスが、特定のデジタルコンテンツを第１、第２、・・・第Ｎに最も短い時間でダウンロードするように推定される、Ｎ個の他のコンピューティングデバイスに対応する。
【００３２】
[0040]ステップ２１２では、特定のデジタルコンテンツを求めるダウンロード要求の送信が実行または推奨される。これは、このような特定のデジタルコンテンツを求めるダウンロード要求が、特定のコンピューティングデバイスから、識別された１つまたは複数の他のコンピューティングデバイスの少なくとも１つに送信されることを含むまたは結果として生じ得る。ステップ２１４では、特定のコンピューティングデバイスによる特定のデジタルコンテンツのダウンロードが実行される。特定のコンピューティングデバイスは、ダウンロード要求の送信、およびそれぞれステップ２１２および２１４に関連するダウンロードの実行を開始することができる。あるいはコーディネーターは、特定のデジタルコンテンツを求めるダウンロード要求を送信するように、特定のコンピューティングデバイスに命令または推奨を送信することができ、それぞれステップ２１２および２１４に関連するダウンロードを行うように、特定のコンピューティングデバイスに命令または推奨を送信することができる。
【００３３】
[0041]ピアツーピアネットワークでは、コンピューティングデバイスは、一時に、限られた数の他のコンピューティングデバイス（時には「ダウンローダー」と呼ばれる）のためのシードとしてのみ機能することができる。この限られた数は動的となる場合があり、コンピューティングデバイスが、ビデオをストリーミングするまたはビデオゲームをプレイするために用いられるなどの他の機能も行う場合は、コンピューティングデバイスはごくわずかの他のコンピューティングデバイスのためのシードとしてのみ機能でき、場合によっては他のコンピューティングデバイスのためのシードとしては機能できないことを意味する。典型的なピアツーピアネットワークの実装形態では、シードコンピューティングデバイスがすでに、可能な最大数のダウンローダーにサービスしており、シードコンピューティングデバイスはそれが受信するすべての新しいダウンロード要求を断ることになる。さらに、典型的なピアツーピアネットワークの実装形態では、ダウンロード要求を潜在的なシードに送信するコンピューティングデバイスは、ダウンロード要求が断られるまたは受け入れられる可能性があるかどうかの知識をもたない。上述の実施形態は、コンピューティングデバイスが、断られることになるダウンロード要求を送信する見込みを低減することによって、および比較的低速な現在利用可能なシードで満足するのではなく、比較的高速なシードを待つことを潜在的に選ぶことによって、ピアツーピアネットワークの性能を改善するために用いることができる。コンピューティングデバイスが待つことができる比較的高速なシードは、現在利用可能でないシードまたは将来のシードである場合があり、それらは共に、上述されたように遅延シードの例である。
【００３４】
[0042]特定のコンピューティングデバイスは、指定の時間内（例えば次の１０分間）に、特定のデジタルコンテンツを必要とするまたは望む場合がある。これは例えば、特定のコンピューティングデバイスのユーザーがゲームをプレイしており、特定のコンピューティングデバイスがデジタルコンテンツの未だ行っていないプレイレベルに１０分で達する見込みがあるという理由で、起こり得る。いくつかの実施形態では、第１または第２の推定値のいずれも（または少なくとも所定の最小数）が１０分未満でない場合は、特定のコンピューティングデバイスは、特定のデジタルコンテンツを求めるダウンロード要求を、コンテンツ配信ストア（例えば１３２）に直接送信することができる。より一般的には図２を参照して述べられる実施形態は、コンテンツ配信ストアから直接ダウンロードされるデジタルコンテンツの量を低減するために用いることができ、したがってコンテンツ配信ストアを受け持つ会社のコストを低減することができる。しかし、ピアコンピューティングデバイスからデジタルコンテンツをダウンロードすることが、ユーザーのエクスペリエンスに悪影響を及ぼす状況では、ユーザーのコンピューティングデバイスがデジタルコンテンツをデジタルコンテンツストアから直接ダウンロードする方が好ましくなり得る。したがって代替実施形態では、特定のコンピューティングデバイスがダウンロード要求を他の「ピア」コンピューティングデバイスの１つまたは複数に送信することを実行または推奨するのではなく、ダウンロード要求を直接デジタルコンテンツストアに送信するように推奨または命令が生じる場合がある。
【００３５】
[0043]図３は、ステップ２０２〜２０８を行うコンピューティングデバイスおよび／またはコーディネーターによって生じ得る、例示のテーブル３００を示す。テーブル３００の列３０２は、ピアツーピアネットワークの他のコンピューティングデバイスをリストしている。列３０４は、他のコンピューティングデバイスの個々のものが、必要とされるまたは望まれる特定のデジタルコンテンツを現在有するかどうかの表示を含む。列３０６は、他のコンピューティングデバイスの個々のものが、現在特定のデジタルコンテンツを取得中であるかどうかの表示を含む。列３０８は、列３０２にリストされた様々な他のコンピューティングデバイスから特定のデジタルコンテンツをダウンロードするのにかかるであろう時間の推定値を含む。
【００３６】
[0044]現在特定のデジタルコンテンツを有する他のコンピューティングデバイスに対しては、列３０８の各対応する推定値は、他のコンピューティングデバイスが、ダウンロードをサポートするために利用可能になるのにかかる時間の推定値と、特定のコンピューティングデバイスが、現在特定のデジタルコンテンツを有する他のコンピューティングデバイスの１つからダウンロードが開始した後に、特定のデジタルコンテンツのダウンロードを完了するのにかかる時間の推定値を合計することによって生成され得る。他のコンピューティングデバイスが、特定のデジタルコンテンツのダウンロードをサポートするために直ちに利用可能である場合は（すなわち特定のデジタルコンテンツの供給元となるために直ちに利用可能である）、推定値のその部分はゼロであり、合計は他のコンピューティングデバイスからのダウンロードが開始した後に、特定のコンピューティングデバイスが、特定のデジタルコンテンツのダウンロードを完了するのにかかる時間の推定値に等しくなる。
【００３７】
[0045]現在特定のデジタルコンテンツを取得中である他のコンピューティングデバイスに対しては、列３０８の各対応する推定値は、他のコンピューティングデバイスが特定のデジタルコンテンツを取得する過程を完了するのにかかる時間の推定値と、他のコンピューティングデバイスが特定のデジタルコンテンツを取得する過程を完了した後に、特定のコンピューティングデバイスが他のコンピューティングデバイスから特定のデジタルコンテンツのダウンロードを完了するのにかかる時間の推定値とを合計することによって生成され得る。
【００３８】
[0046]代替実施形態では、現在特定のデジタルコンテンツを有する他のコンピューティングデバイスに対しては、列３０８の各推定値は、単に、特定のコンピューティングデバイスが、現在特定のデジタルコンテンツを有する他のコンピューティングデバイスからのダウンロードが開始した後に、特定のデジタルコンテンツのダウンロードを完了するのにかかる時間の推定値とすることができる。同様に、現在特定のデジタルコンテンツを取得中である他のコンピューティングデバイスに対しては、列３０８の各推定値は、単に、他のコンピューティングデバイスが特定のデジタルコンテンツを取得する過程を完了した後に、特定のコンピューティングデバイスが他のコンピューティングデバイスから特定のデジタルコンテンツのダウンロードを完了するのにかかる時間の推定値とすることができる。推定値を生成するための他の変形も可能であり、一実施形態の範囲内である。
【００３９】
[0047]例示のテーブル３００は、最も高速な（すなわち最も短い）ダウンロード推定値は、現在特定のデジタルコンテンツを取得中である別のコンピューティングデバイスに対応し得ることを示す。これは例えば、他のコンピューティングデバイス１１２４は、特定のデジタルコンテンツの取得をほとんど完了しており、それが特定のデジタルコンテンツの取得を完了した後にはシードとして直ちに利用可能となるので、および（特定のデジタルコンテンツを必要とするまたは望む）特定のコンピューティングデバイスと、他のコンピューティングデバイス１１２４との間のデータ転送速度は非常に高速であるので、起こり得る。したがってコンピューティングデバイスは、直ちにダウンロードを行おうと試みるよりも、将来の時点（別のコンピューティングデバイスが特定のデジタルコンテンツをシード処理する準備が整うとき）まで待って、特定のデジタルコンテンツをダウンロードしようと試みる方がよいということになり得る。
【００４０】
[0048]予測シード選択によるスワーム効率の向上
いくつかの実施形態では、コンピューティングデバイスは、位置情報（例えばタイムゾーンおよび／または地理的領域情報）に基づいて複数の異なるグループにマップされる。さらにグループ間情報が収集され、グループ間情報はグループ間データ転送速度、および／またはグループ間利用可能性を含むことができる。グループ間情報に基づいて、デジタルコンテンツを求めるダウンロード要求をそれに送信することが効率的で効果的となるであろうコンピューティングデバイスが識別され、このようなダウンロード要求が実行または推奨される。
【００４１】
[0049]これらの実施形態を説明するために、以下で述べられる図４の高レベルフロー図が用いられる。より具体的には次に図４を用いて、ピアツーピアネットワークのコンピューティングデバイス（例えば図１の１１２１）がデジタルコンテンツを求める１つまたは複数のダウンロード要求をそれに送信する、ピアツーピアネットワークの１つまたは複数の他のコンピューティングデバイスを識別する方法について述べる。デジタルコンテンツは、複数のデジタルコンテンツ部分（デジタルコンテンツユニットとも呼ばれる）を含むデジタルコンテンツアイテム全体、複数のデジタルコンテンツ部分を含むデジタルコンテンツアイテムのデジタルコンテンツ部分、またはデジタルコンテンツアイテムのデジタルコンテンツ部分のグループとすることができる。図４を参照して述べられるステップは、コーディネーター（例えば図１の１４２）、またはピアコンピューティングデバイス（例えば図１の１１２１）、またはそれらの組み合わせによって行うことができる。
【００４２】
[0050]図４を参照するとステップ４０２で、複数のコンピューティングデバイスのそれぞれは、複数のコンピューティングデバイスのそれぞれに対応する位置情報に基づいて、複数の異なるグループの１つにマップ（すなわちグループ化）される。位置情報は、タイムゾーンおよび／または地理的領域とすることができるが、それらに限定されない。例えば、第１のタイムゾーン内、またはタイムゾーンの第１のグループ内のコンピューティングデバイスは、第１のグループにマップすることができ、第２のタイムゾーン内、またはタイムゾーンの第２のグループ内のコンピューティングデバイスは、第２のグループにマップすることができ、・・・および第Ｎのタイムゾーン内、またはタイムゾーンの第Ｎのグループ内のコンピューティングデバイスは、第Ｎのグループにマップすることができる。現在は世界で合計４０のタイムゾーンがある。各タイムゾーンは、異なるグループに対応することができ、またはタイムゾーンの総数より少ないグループが存在するように、複数のタイムゾーンを同じグループにマップすることができる。他の例の場合は、第１の地理的領域内のコンピューティングデバイスは第１のグループにマップすることができ、第２の地理的領域内のコンピューティングデバイスは第２のグループにマップすることができ、・・・および第Ｎの地理的領域内のコンピューティングデバイスは、第Ｎのグループにマップすることができる。異なる地理的領域は、異なる大陸、異なる国、国内の異なる領域（例えば州、県、領土、市など）に対応することができるが、それらに限定されない。
【００４３】
[0051]ステップ４０４でグループ間情報がアクセスされ、これは特定の実施形態によれば、少なくとも１つのグループ間データ転送速度情報およびグループ間利用可能性情報を含む。ステップ４０４がコーディネーター１４２によって行われる場合は、グループ間情報は、コーディネーター１４２によってローカルに記憶することができ、またはコーディネーター１４２によってリモートに記憶され、リモートにアクセスすることができる。ステップ４０４がコンピューティングデバイス１１２によって行われる場合は、グループ間情報はコンピューティングデバイス１１２によってローカルに記憶することができ、またはコンピューティングデバイス１１２によってリモートに記憶され、リモートにアクセスすることができる（例えばコンピューティングデバイス１１２は、コーディネーター１４２または何らかの他のデバイスによって記憶されたグループ間情報にアクセスすることができる）。グループ間データ転送速度情報は、履歴情報およびまたオプションとしてリアルタイム情報に基づくことができ、１対のグループの間でデータが転送される平均または中央値速度を指定することができるがそれに限定されない。同様にグループ間利用可能性情報は、履歴情報およびまたオプションとしてリアルタイム情報に基づくことができ、第２のグループ内のコンピューティングデバイスが、第１のグループ内のコンピューティングデバイスからのダウンロード要求を受け入れる見込みを指定することができるが、それに限定されない。
【００４４】
[0052]簡単にするために、１万個のコンピューティングデバイスのそれぞれが、タイムゾーン情報に基づいてグループ１、グループ２、およびグループ３と呼ばれる３つの異なるグループの１つにマップされると仮定する。グループ間情報はグループ１と２、グループ１と３、およびグループ２と３の間のデータ転送に関連する情報を含むことができる。グループ間情報は双方向性とすることができ、その場合はグループ１と２の間のグループ間データ転送速度情報およびグループ間利用可能性情報は、グループ２と１の間と同じである。あるいはグループ間情報は単方向性とすることができ、その場合はグループ１と２の間のグループ間データ転送速度情報およびグループ間利用可能性情報は、グループ２と１の間とは異なる。グループ間情報は、時刻には無関係とすることができ、または好ましくは異なる時刻、および場合によっては異なる曜日に対応する異なるグループ間情報が存在し得る。例えば異なる時刻範囲に対応する異なるグループ間情報が存在し得る（例えば、午前１２：００から午前３：５９、午前４：００から午前７：５９、午前８：００から午前１１：５９、午後１２：００から午後３：５９、午後４：００から午後７：５９、午後８：００から午後１１：５９）。他の変形も可能であり、一実施形態の範囲内である。
【００４５】
[0053]このような実施形態は、（履歴情報、およびまた場合によってはリアルタイム情報に基づいて）比較的近くにあるコンピューティングデバイスからデジタルコンテンツをダウンロードするより、比較的遠く離れたコンピューティングデバイスからデジタルコンテンツをダウンロードする方がしばしばより高速になるという予測をうまく利用している。これは通常は待ち時間はデジタルコンテンツが移動する距離に反比例するので、直感に反したものである。しかしこれらの実施形態は、待ち時間の増加を、データ転送速度および／または利用可能性の向上で相殺する。一例としてカリフォルニア、オレゴン、およびワシントン州はタイムゾーンＵＴＣ−８内にあり（ＵＴＣは協定世界時を表す）、英国の一部の諸国土はタイムゾーンＵＴＣ＋０内にあり、これはタイムゾーンＵＴＣ−８より８時間進んでいる。これはカリフォルニアで午後８：００であるとき（これはカリフォルニアのユーザーは彼等のコンピューティングデバイスを使用しており、ゲームまたはビデオのダウンロードを望んでいることが見込まれる）は、英国では午前４：００である（これは英国のユーザーは睡眠していることが見込まれる時間であり、彼等のコンピューティングデバイスはアイドルであり、シードとして利用可能であることが見込まれる）ことを意味する。
【００４６】
[0054]さらに図４を参照するとステップ４０６では、グループの１つの内のコンピューティングデバイスの１つに対して、ステップ４０４での情報アクセスに基づいて、デジタルコンテンツを求める１つまたは複数のダウンロード要求の送信先とすべき、他のグループの１つが識別される。上記の例に続いて、午後８：００にカリフォルニアにおいて、タイムゾーンＵＴＣ−８に対応する第１のグループにマップされたコンピューティングデバイスが、デジタルコンテンツをダウンロードするシードコンピューティングデバイスを見つけることを必要とするまたは望むことを知らせた場合は、アクセスされたグループ間情報が、午後８：００にカリフォルニアにおいて第１と第２のグループの間で高速なグループ間データ転送速度および／または高いグループ間利用可能性を示した場合は、タイムゾーンＵＴＣ＋０に対応する第２のグループを識別することができる。別の言い方をすれば、ステップ４０４でアクセスされたグループ間情報は、午後８：００にタイムゾーンＵＴＣ−８（これはタイムゾーンＵＴＣ＋０においては午前４：００である）において、タイムゾーンＵＴＣ−８に対応するグループと、タイムゾーンＵＴＣ＋０に対応するグループとの間に高速なグループ間データ転送速度および／または高いグループ間利用可能性が存在することを示すことができる。ステップ４０６で、この結果として、タイムゾーンＵＴＣ−８に対応するグループ内のコンピューティングデバイスのために、タイムゾーンＵＴＣ＋０に対応するグループが識別され得る。
【００４７】
[0055]ステップ４０８で、１つまたは複数のダウンロード要求の送信が、実行または推奨される。このようなダウンロード要求はデジタルコンテンツを求めるものであり、グループの１つの内のコンピューティングデバイスの１つから、他のグループの識別された１つの内の１つまたは複数のコンピューティングデバイスに送信されるものである。これは、このようなデジタルコンテンツを求めるダウンロード要求が、コンピューティングデバイスから、識別された他のグループにマップされた１つまたは複数のコンピューティングデバイスに送信されることを含み、または結果として生じ得る。ステップ４１０ではデジタルコンテンツのダウンロードが実行される。デジタルコンテンツをダウンロードすることを必要とするまたは望むコンピューティングデバイスは、それぞれステップ４０８および４１０に関連して、ダウンロード要求の送信、およびダウンロードの実行を開始することができる。あるいはコーディネーターは、それぞれステップ４０８および４１０に関連して、デジタルコンテンツを求めるダウンロード要求を送信するようにコンピューティングデバイスに命令または推奨を送信することができ、ダウンロードを実行するようにコンピューティングデバイスに命令を送信することができる。
【００４８】
[0056]上述の実施形態では、同じグループにマップされたコンピューティングデバイスはローカルピアと呼ぶことができ、異なるグループにマップされたコンピューティングデバイスは非ローカルピアと呼ぶことができる。非ローカルピアからデジタルコンテンツをダウンロードすることのもう１つの潜在的な利点は、時間的に進んでいる非ローカルピアは、新しくリリースされたデジタルコンテンツのための良好なシードとなる可能性が高いことである。例えば、新しいコンピュータゲームの世界的なリリースが現地時間の午後８：００に起きると仮定する。これは英国内のコンピューティングデバイスは、カリフォルニア内のコンピューティングデバイスより、８時間早くダウンロードできることを意味する。したがってカリフォルニアにおいて午後８：００であるときは、カリフォルニア内のコンピューティングデバイスは英国内の非ローカルピアからデジタルコンテンツをダウンロードする方が速くなる可能性が高くなり、なぜなら高速なグループ間転送速度および高いグループ間利用可能性のためだけでなく、英国内の非ローカルピアが（カリフォルニア内のローカルピアと比べて）、新しくリリースされたデジタルコンテンツをすでに有している可能性が高いからである。さらに、（例えばそれらのユーザーが眠っていることが見込まれるために）アイドルであることが見込まれるコンピューティングデバイスからのデジタルコンテンツのダウンロードを実行または推奨することにより、ダウンロードを完了するのにかかる時間の推定値をより正確にすることができ、なぜなら利用可能なアイドルのシードコンピューティングデバイスが、ダウンロードの途中でその接続を切断する可能性は、（利用可能な、アイドルでないシードコンピューティングデバイスと比べて）低いからである。
【００４９】
[0057]図５は、ステップ４０４でアクセスされ得る情報のタイプの一例である、テーブル５００を示す。テーブル５００の最も左の列に沿って、および最も上の行にわたって様々なタイムゾーンがリストされる。ピアツーピアネットワークの各コンピューティングデバイスは、タイムゾーンの１つ（またはタイムゾーンのグループの１つ）にマップすることができる。テーブル５００のセルには、グループ間データ転送速度情報およびグループ間利用可能性情報などのグループ間情報を配置することができるが、それらに限定されない。特定の例の場合は、５０２のラベルが付けられたセルは、ＵＴＣ−２タイムゾーンとＵＴＣ＋０タイムゾーンの間の、グループ間データ転送速度情報およびグループ間利用可能性情報を含むことができる。異なる時刻範囲および／または異なる曜日に対して、同様なテーブルを発生することができるが、それらに限定されない。ステップ４０６では、さらに詳しく上述されたように、グループの１つにマップされたコンピューティングデバイスが、デジタルコンテンツを求めるダウンロード要求の送信先とすべき他のグループを識別するために、このようなテーブルを用いることができる。
【００５０】
[0058]上述のように、常時、ピアツーピア通信に参加している、またはそのために利用可能なコンピューティングデバイス１１２は、スワームと呼ぶことができる。ピアツーピア通信に参加している、またはそのために利用可能なコンピューティングデバイスは、それらが異なるグループにマップされていても、同じスワームの一部となることができる。図４および５を参照して述べられる実施形態は、多くの場合に、別のグループにマップされたコンピューティングデバイスが、特定のコンピューティングデバイスのための最良のシードとなり得ることを予測することによって、スワーム効率を向上することができる。
【００５１】
[0059]領域レベルの欠乏度軽減
いくつかの実施形態では、複数の異なるデジタルコンテンツユニットのそれぞれに関連する欠乏度を示す情報が収集され、デジタルコンテンツユニットの分配は、指定のレベルを超えた欠乏度を有するデジタルコンテンツユニットの欠乏度を低減するやり方で優先順位付けされる。デジタルコンテンツユニットの分配は、指定のレベルを超えた欠乏度を有するデジタルコンテンツユニットの欠乏度を低減するために、優先順位付けの結果に基づいて実行される。このような実施形態は、ピアツーピアネットワークのコンピューティングデバイスの間のデジタルコンテンツユニットの分配を改善する効果をもち得る。以下で述べられる図６の高レベルフロー図を用いて、これらの実施形態について説明される。より具体的には次に図６を用いて、ピアツーピアネットワークの複数のコンピューティングデバイスの間の複数の異なるデジタルコンテンツユニットの分配を改善する方法について述べられる。図４を参照して述べられるステップは、コーディネーター（例えば図１の１４２）、またはコンピューティングデバイス（例えば図１の１１２１）、またはそれらの組み合わせによって行うことができる。各デジタルコンテンツユニットは、デジタルコンテンツアイテム全体に対応することができ、または複数のデジタルコンテンツ部分を含むデジタルコンテンツアイテムの１つまたは複数の部分に対応することができる。図６を参照するとステップ６０２で、複数の異なるデジタルコンテンツユニットのそれぞれに関連する欠乏度を示す情報がアクセスされる。ステップ６０２でアクセスされる情報は、複数の異なるデジタルコンテンツユニットのそれぞれに関連する現在の欠乏度、および／または予測される将来の欠乏度を示すことができる。欠乏度を示す情報は、ピアツーピアネットワーク全体またはピアツーピアネットワークの一部分内の、デジタルコンテンツの頻度（または希少度）を定量化する。簡単にするために、ピアツーピアネットワークの一部分は、１００個のピアコンピューティングデバイスのグループを含むと仮定する。また１００個のピアコンピューティングデバイスのうちの５０個は第１のデジタルコンテンツユニットのコピーを有するが、１００個のピアコンピューティングデバイスのうちの５個だけが第２のデジタルコンテンツユニットのコピーを有すると仮定する。欠乏度を示す情報は例えば、第１のデジタルコンテンツユニットは１００のうちの５０の欠乏度、またはより簡単に２の欠乏度レベル（すなわち１００／５０＝２）を有することを指定することができ、第２のデジタルコンテンツユニットは１００のうちの５の欠乏度、またはより簡単に２０の欠乏度レベル（すなわち１００／５＝２０）を有することを指定することができる。この例の続きで、第２のデジタルコンテンツユニットは、第１のデジタルコンテンツユニットより１０倍欠乏していることが理解され得る。欠乏度を表現する別の方法も可能であり、一実施形態の範囲内である。例えば欠乏度を示す情報は、特定のデジタルコンテンツを有するコンピューティングデバイスのパーセンテージ（または他の定量化するもの）を指定することができる。ステップ６０２で欠乏度を示す情報がアクセスされるためには、最初に情報が収集される必要がある。いくつかの実施形態では、このような情報はコーディネーター（例えば図１のコーディネーター１４２）によって収集され維持される。例えばコーディネーターは、ピアコンピューティングデバイスが、それらが所有し、他のピアコンピューティングデバイスと共有する用意があるデジタルコンテンツのリストをコーディネーターに提供するときに、このような情報を収集することができる。別の例の場合はコーディネーターは、ピアコンピューティングデバイスが何をダウンロードしたかの経過を追うことができ、このような情報に基づいて欠乏度を推測することができる。さらに別の例の場合は、コーディネーターは、コンピューティングデバイスが特定のデジタルコンテンツのためのシードを見つけるのがどれだけ困難であったかおよび／または時間がかかったかの経過を追うことができ、このような情報に基づいて欠乏度を推測することができる。他の実施形態では、ピアツーピアネットワークのコンピューティングデバイス１１２の少なくともいくつかは、それ自体の使用のためにこのような情報を収集し維持することができる。例えばピアコンピューティングデバイスは、ピアコンピューティングデバイスがダウンロードのために利用可能であるデジタルコンテンツのリストを（コーディネーターおよび／または他のコンピューティングデバイスから）取得するときに、このような情報を収集することができる。さらに他の実施形態ではコンピューティングデバイスは、情報の一部を収集し維持することができ、またコーディネーターから情報の一部にアクセスすることができる。言い換えればコンピューティングデバイスは、それ自体の収集され維持された情報にアクセスすることができ、および／またはコーディネーターによって収集され維持された情報にアクセスすることができる。また欠乏度アセッサーと呼ばれる別のデバイスが、上述の情報を収集し維持し、コンピューティングデバイスおよび／またはコーディネーターは、欠乏度アセッサーからこのような情報にアクセスすることが可能である。より一般的には、図６を参照して述べられる方法は、ピアコンピューティングデバイスによって、ピアコンピューティングデバイスと通信するコーディネーターによって、欠乏度アセッサーによって、またはコンピューティングデバイス、コーディネーター、および／または欠乏度アセッサーの組み合わせによって行うことができる。これらはごくわずかの例であり、すべてを包含するものではない。
【００５２】
[0060]ステップ６０４で、デジタルコンテンツユニットの分配は、指定のレベルを超えた欠乏度を有するデジタルコンテンツユニットの欠乏度を低減するやり方で、優先順位付けされる。一実施形態によれば、デジタルコンテンツユニットはそれらの欠乏度に従ってランク付けすることができ、Ｎの最も大きな欠乏度レベルを有するデジタルコンテンツユニットは、指定のレベルを超えたと見なされ、ただしＮは１以上の整数である。別の実施形態では、最も高い欠乏度レベルを有するＸパーセント（例えば１０％）のデジタルコンテンツユニットは、指定のレベルを超えたと見なされる。さらに他の実施形態では、平均欠乏度レベルを決定することができ、平均を超える（あるいは特定のパーセント、または特定の標準偏差だけ平均を超える）デジタルコンテンツユニットは、指定のレベルを超えたと見なすことができる。これらはごくわずかの例であり、すべてを包含するものではない。ステップ６０４における優先順位付けは、現在の欠乏度が指定のレベルを超えたデジタルコンテンツユニットの欠乏度を低減する、および／または予測される将来の欠乏度が指定のレベルを超えたデジタルコンテンツユニットの欠乏度を低減するやり方で、デジタルコンテンツユニットの分配を優先順位付けするものとすることができる。いくつかの実施形態では、ステップ６０４における優先順位付けは、複数のデジタルコンテンツユニットに対して実質的に一様な欠乏度を達成することが予測されるやり方で行われる。例えば最も高い優先度は、最も高い欠乏度のレベルを有するデジタルコンテンツユニットの欠乏度を低減する（およびしたがって充足度を増加する）ためとすることができ、２番目に最も高い優先度は、２番目に最も高い欠乏度のレベルを有するデジタルコンテンツユニットの欠乏度を低減するためとすることができる、などである。デジタルコンテンツユニットの分配を優先順位付けするときに、非限定的に特定のデジタルコンテンツユニットに対する需要などの、追加のタイプの情報を用いることができる。例えば２つのデジタルコンテンツユニットが同じ、または実質的に同じ欠乏度を有するが、一方の需要が他方より高い場合は、より高い需要を有するデジタルコンテンツユニットを分配するのにより高い優先度を生じ得る。現在の欠乏度は、ピアツーピアネットワークまたはその一部分内での欠乏度の現在のレベルを示すことができる。予測される将来の欠乏度は、欠乏度レベルの傾向を監視することによって決定することができる。例えば特定のデジタルコンテンツユニットの欠乏度のレベルが、履歴上、１日当たり１０パーセントの増加を有する場合は、このような情報に基づいて将来の欠乏度のレベルを予測することが可能である。予測される将来の欠乏度はまた、本明細書で述べられる実施形態により行われる、欠乏度を低減する努力を考慮に入れることができる。
【００５３】
[0061]ステップ６０６で、指定のレベルを超えた欠乏度を有するデジタルコンテンツユニットの欠乏度を低減するために、優先順位付けの結果に基づいて、デジタルコンテンツユニットの分配が実行または推奨される。コーディネーターが図６のステップを行う場合は、コーディネーターは、１つまたは複数のピアコンピューティングデバイスに、欠乏しているデジタルコンテンツをダウンロードするように命令する（または推奨する）ことによって、ステップ６０６を行うことができる。これはスワームの全体的な健康状態を改善するために生じることができ、したがって特定の欠乏しているデジタルコンテンツをダウンロードする特定のピアコンピューティングデバイスが、実際に特定の欠乏しているデジタルコンテンツを必要とするまたは望むかどうかに関わらず生じることができる。同様に、ピアコンピューティングデバイスが図６のステップを行う場合は、ピアコンピューティングデバイスは、ダウンロード要求を送信するピアコンピューティングデバイスが、特定の欠乏しているデジタルコンテンツを実際に必要とするまたは望むかどうかに関わらす、欠乏しているデジタルコンテンツを求めるダウンロード要求を、１つまたは複数の他のコンピューティングデバイスに送信することによってステップ６０６を行うことができる。
【００５４】
[0062]図６を参照して述べられたステップは、ピアツーピアネットワーク全体に対して行うことができる。あるいは、ピアツーピアネットワークのコンピューティングデバイスは、ピアツーピアネットワーク内の複数の異なるグループにグループ化することができ、図６を参照して述べられたステップは、グループベースでグループに行うことができる。より具体的にはステップ６０２で、ピアツーピアネットワーク内の複数のグループのそれぞれに対して、別々の欠乏度情報にアクセスすることができ、ステップ６０４で行われる優先順位付けは、異なるグループに対しては優先順位付けが異なるように、グループのそれぞれに対して行うことができる。コンピューティングデバイスは、様々な異なるやり方でグループ化することができる。例えば図４および５を参照して上述されたように、コンピューティングデバイスは、位置情報（例えば、タイムゾーンおよび／または地理的領域情報）に基づいて、異なるグループにマップすることができる。あるいは、コンピューティングデバイスは、それらのインターネットサービスプロバイダー（ＩＳＰ）に基づいてグループ化することができる。例えば、第１のＩＳＰによってサービスされるコンピューティングデバイスは第１のグループの一部とすることができ、第２のＩＳＰによってサービスされるコンピューティングデバイスは第２のグループの一部とすることができ、・・・第ＮのＩＳＰによってサービスされるコンピューティングデバイスは第Ｎのグループの一部とすることができる。さらに他の実施形態では、コンピューティングデバイスは、それらが接続されるルーター、またはそれらが接続されるルーターハブに基づいてグループ化することができる。これらはごくわずかの例であり、すべてを包含するものではない。
【００５５】
[0063]図７は、ピアツーピアネットワーク内、またはピアツーピアネットワークの一部であるコンピューティングデバイスのグループ内の、デジタルコンテンツアイテムの相対的欠乏度を示す例示のヒストグラムを示す。このようなヒストグラムは、ステップ６０２でアクセスされ得る情報のタイプの例示的な例である。図７において、デジタルコンテンツアイテム＃１０は最も高い欠乏度レベルを有し、デジタルコンテンツアイテム＃２は２番目に最も高い欠乏度レベルを有する。それにしたがってステップ６０４では、デジタルコンテンツアイテム＃１０の分配が最も高い優先度を有することができ、デジタルコンテンツアイテム＃２の分配は２番目に最も高い優先度を有することができる。上述のようにいくつかの実施形態では、ステップ６０４は複数のデジタルコンテンツユニットに対して実質的に一様な欠乏度を達成するように予測されるやり方で行われる。一様な欠乏度が達成された場合は、図７のヒストグラムに示されるデジタルコンテンツアイテムのすべてに対して、欠乏度レベルは同じになる。一例として、１００個の異なるデジタルコンテンツユニットがそれぞれ同じ（すなわち一様な）欠乏度レベルを有することを目標とすることができ、これは（１００個のコンピューティングデバイスのグループ内の）コンピューティングデバイスの２０パーセントが、デジタルコンテンツユニットのそれぞれを有することに対応する。この目標を達成する１つの方法は、各デジタルコンテンツユニットが１００のうちの２０の欠乏度を有するように、１００個のコンピューティングデバイスのそれぞれが、１００個のデジタルコンテンツユニットのうちの２０個の異なる組み合わせを取得することを実行または推奨することである。これは一例であり、限定するためのものではない。
【００５６】
[0064]欠乏度と充足度は、欠乏度が大きいほど充足度は低くなり、欠乏度が低いほど充足度は大きくなるという点で反比例である。したがって、充足度を示す情報はまた欠乏度を示す（例えば充足度が最も低いデジタルコンテンツアイテムは、最も高い欠乏度を有し、その逆も真である）ので、ステップ６０２で充足度を示す情報にアクセスすることも、一実施形態の範囲内である。さらに、ステップ６０４で、指定のレベルより低い充足度を有するデジタルコンテンツアイテムの充足度を増加させるやり方で、デジタルコンテンツユニットの分配を優先順位付けすることは、本発明の一実施形態の範囲内である。同様に、ステップ６０６で、指定のレベルより低い充足度を有するデジタルコンテンツアイテムの充足度を増加させるように、デジタルコンテンツアイテムの分配を実行または推奨することは、一実施形態の範囲内である。言い換えれば、充足度の測定値はまた欠乏度を示す。
【００５７】
[0065]ピアクラスタースループットを向上するための協調型要素捕捉
上述のようにいくつかの実施形態では、コンピューティングデバイスは、コンピューティングデバイスのクラスターにグループ化され、同じクラスター内の異なるコンピューティングデバイスは、同じクラスター内の複数のコンピューティングデバイスが異なるデジタルコンテンツユニットのすべてを共同で取得するように、クラスターの外部のコンピューティングデバイスに、異なるデジタルコンテンツユニットを求めるダウンロード要求を送信するように命令または推奨される。このような実施形態はまた、ピアツーピアネットワークのコンピューティングデバイスの間のデジタルコンテンツユニットの分配を改善する効果を有し得る。
【００５８】
[0066]以下で述べられる図８の高レベルフロー図を用いて、これらの実施形態について説明する。より具体的には次に図８を用いて、ピアツーピアネットワークのコンピューティングデバイスの間のデジタルコンテンツユニットの分配を改善する方法について述べられる。図８を参照して述べられるステップは、コーディネーター（例えば図１の１４２）、またはコンピューティングデバイス（例えば図１の１１２１）、またはそれらの組み合わせによって行うことができる。図８を参照するとステップ８０２で、コンピューティングデバイスは、クラスターのそれぞれが複数のコンピューティングデバイスを含むように、コンピューティングデバイスの複数のクラスターにグループ化される。上記で述べられたものと同様のやり方で、ステップ８０２で行われるグループ化は、コンピューティングデバイスにサービスするＩＳＰ、コンピューティングデバイスが位置する地理的領域、コンピューティングデバイスが位置するタイムゾーン、コンピューティングデバイスが接続されたルーターまたはルーターハブに基づくことができるが、それらに限定されない。あるいは、または追加として、ステップ８０２で行われるグループ化は、コンピューティングデバイスの間の現在および／または履歴上のデータ転送スループットに基づいて行うことができる。例えば高い現在および／または履歴上のデータ転送スループットを有するコンピューティングデバイスは、同じクラスター内に一緒にグループ化することができる。本明細書で用いられるクラスターという用語は、グループのために一緒に働くコンピューティングデバイスのグループであり、これは典型的にはグループの個々のコンピューティングデバイスのためにもなる。
【００５９】
[0067]ステップ８０４で、同じクラスター内の異なるコンピューティングデバイスは、同じクラスター内の複数のコンピューティングデバイスが異なるデジタルコンテンツユニットのすべてを共同で取得するように、クラスターの外部のコンピューティングデバイスに、異なるデジタルコンテンツユニットを求めるダウンロード要求を送信するように命令または推奨される。ダウンロード要求を送信するようにコンピューティングデバイスに命令することは、ダウンロード要求の送信を実行する一方法である。いくつかの実施形態では、クラスター内のコンピューティングデバイスがダウンロード要求を送信する、クラスターの外部のコンピューティングデバイスは、ピアツーピアネットワークをサポートするコンテンツ配信ネットワーク（ＣＤＮ）コンピューティングデバイス、またはより一般的にはピアツーピアネットワークをサポートするデジタルコンテンツストア（例えば図１の１３２）を管理するコンピューティングデバイスを含むことができる。一例として、図８を参照して述べられるステップがコーディネーター（例えば図１の１４２）によって行われる場合は、コーディネーターはステップ８０２に関連するグループ化を行うことができ、コーディネーターは、ステップ８０４で、クラスター内のコンピューティングデバイスに、異なるデジタルコンテンツユニットを求めるダウンロード要求を、クラスターの外部のコンピューティングデバイスに送信するように命令（または推奨）することができる。
【００６０】
[0068]簡単にするために、クラスター内に１００個のコンピューティングデバイスがあり、クラスター内のコンピューティングデバイスのそれぞれは、１００個の異なるデジタルコンテンツユニットの取得を必要とするまたは望むと仮定する。コンピューティングデバイスのそれぞれは、クラスターの外部のシードコンピューティングデバイスから、またはＣＤＮから直接、１００個のデジタルコンテンツユニットのそれぞれを取得しようと個々に試みることができる。しかしこれは非常に非効率的で、コスト高となる可能性がある。これと対照的にいくつかの実施形態によれば、クラスター内の１００個のコンピューティングデバイスのそれぞれは、１００個の異なるデジタルコンテンツユニットの異なる１つを取得することができ、これはクラスターに１００個のデジタルコンテンツユニットすべてを共同で取得させることになる。
【００６１】
[0069]ステップ８０６で、同じクラスターのコンピューティングデバイスがそれぞれ、異なるデジタルコンテンツユニットのすべてを取得するように、同じクラスター内のコンピューティングデバイスの間の異なるデジタルコンテンツユニットの分配が実行または推奨される。上記の例の続きで、クラスター内の１００個のコンピューティングデバイスはそれぞれ、それがダウンロードした１つのデジタルコンテンツユニットのためのシード（クラスター内の他のコンピューティングデバイスに対して）として働くことができる。クラスター内の個々のコンピューティングデバイスがクラスター内の他のコンピューティングデバイスから、より多くのデジタルコンテンツユニットを取得するので、それらはますます多くのデジタルコンテンツユニットのためのシードとして働くことができる。
【００６２】
[0070]ステップ８０４および８０６は、コンピューティングデバイスのクラスターのそれぞれに対して独立に行うことができる。言い換えれば、ステップ８０２で結果としてコンピューティングデバイスが２０個のクラスターにグループ化された場合は、ステップ８０４および８０６は２０個のクラスターのそれぞれに対して行うことができる。
【００６３】
[0071]次に図９を用いて、図８のフロー図を参照して今述べられた実施形態の一例を示す。簡単にするためにクラスターは、３つのコンピューティングデバイス１１２１、１１２２、および１１２３を含み、それぞれが同じ３つのデジタルコンテンツユニット１３４１、１３４２、および１３４３のダウンロードを必要とすると仮定する。３つのコンピューティングデバイス１１２のそれぞれは、３つのデジタルコンテンツアイテムのそれぞれを個々にダウンロードすることができる。あるいは本明細書で述べられる実施形態を用いて、コンピューティングデバイス１１２１はデジタルコンテンツアイテム１３１１をダウンロードすることができ、コンピューティングデバイス１１２２はデジタルコンテンツアイテム１３１２をダウンロードすることができ、コンピューティングデバイス１１２３はデジタルコンテンツアイテム１３１３をダウンロードすることができ、結果としてコンピューティングデバイスのクラスターはデジタルコンテンツアイテム１３１の３つすべてを共同で有することになる。３つのコンピューティングデバイス１１２は、ＣＤＮによってサポートされ得るまたはされ得ないデジタルコンテンツストア（例えば１３２）から、デジタルコンテンツアイテム１３１をダウンロードすることができる。またコンピューティングデバイス１１２がデジタルコンテンツアイテムまたは少なくともその一部分を、デジタルコンテンツストア１３２からとは対照的に、それらのクラスターの外部の他のピアコンピューティングデバイス１１２からダウンロードすることは、一実施形態の範囲内である。
【００６４】
[0072]次いでコンピューティングデバイス１１２１は、コンピューティングデバイス１１２２からデジタルコンテンツアイテム１３４２をダウンロードすることができ、コンピューティングデバイス１１２３からデジタルコンテンツアイテム１３４３をダウンロードすることができる。同様に次いで、コンピューティングデバイス１１２２は、コンピューティングデバイス１１２１および１１２３からそれぞれデジタルコンテンツアイテム１３４１および１３４３をダウンロードすることができ、次いでコンピューティングデバイス１１２３は、コンピューティングデバイス１１２１および１１２２からそれぞれデジタルコンテンツアイテム１３４１および１３４２をダウンロードすることができる。
【００６５】
[0073]本明細書で述べられる様々な実施形態は組み合わせることができる。例えば図６および８を参照して述べられる実施形態は、ステップ８０４および／またはステップ８０６でデジタルコンテンツユニットの分配が、デジタルコンテンツユニットの欠乏度に応じて優先順位付けされるように組み合わせることができ、それにより欠乏度のレベルがより高いデジタルコンテンツユニットは、クラスターによって（クラスターの外部のコンピューティングデバイスから）、より速やかに取得され、かつ／またはクラスター内のコンピューティングデバイスの間で分配される。別の例として、図４および８を参照して述べられる実施形態は、ステップ４０８で、ダウンロード要求の送信の実行または推奨は、グループ内のデジタルコンテンツユニットの欠乏度に応じて優先順位付けされるように組み合わせることができ、それにより欠乏度のレベルがより高いデジタルコンテンツユニットは、グループによって（別のグループ内のコンピューティングデバイスから）、より速やかに取得される。さらに別の例として図２および８の実施形態は、それに対して、所有するまたは取得中である他のコンピューティングデバイスに関する情報がステップ２０２および２０４でアクセスされる、特定のデジタルコンテンツが、欠乏度を示す情報に応じて（ステップ２０２および２０４の前に）識別され、それによって、指定のレベルを超えた欠乏度を有するデジタルコンテンツの欠乏度を低減するように、組み合わせることができる。別の例では図２および４の実施形態は、ステップ４０２〜４０６が最初にグループ間情報に基づいて、第１のグループにマップされた特定のコンピューティングデバイスのための良好なシードコンピューティングデバイスを含む可能性がある第２のグループを識別するように行われるように組み合わせることができ、次いでステップ２０２および２０４でアクセスされる情報は、ステップ４０６で識別された第２のグループにマップされた他のコンピューティングデバイスに対応することができる。上述の実施形態の他の組み合わせも実施形態の範囲内である。
【００６６】
[0074]例示のコンピューティングデバイス
上述のようにコンピューティングデバイス１１２の１つまたは複数は、ビデオゲームコンソールとすることができるが、それに限定されない。次に図１０を用いて、例示のビデオゲームおよびメディアコンソールについて述べられ、またはより一般的にはゲームおよびメディアコンソールを含む例示のゲームおよびメディアシステム１０００について述べられる。図１０の以下の考察は、それを用いて本明細書に示された概念が実施され得る適切なコンピューティングデバイスの簡潔な、一般的な説明をもたらすためのものである。図１０のシステムは例のみであることが理解される。他の例では、本明細書で述べられる実施形態は、クライアントコンピューティングデバイスに常駐しかつそれによって実行される、ブラウザーアプリケーションまたはソフトウェアアプリケーションを通じて、多様なクライアントコンピューティングデバイスを用いて実施され得る。図１０に示されるように、ゲームおよびメディアシステム１０００は、ゲームおよびメディアコンソール（本明細書の以下では「コンソール」）１００２を含む。一般にコンソール１００２は、１つのタイプのクライアントコンピューティングデバイスである。コンソール１００２は、コントローラー１００４１および１００４２によって表されるように、１つまたは複数の無線コントローラーに対応するように構成される。コンソール１００２は、内蔵型ハードディスクドライブ（図示せず）、および、光学式記憶ディスク１００８によって表されるような様々な形のポータブルストレージメディアをサポートするポータブルメディアドライブ１００６を備える。適切なポータブルストレージメディアの例は、ＤＶＤ、ＣＤ−ＲＯＭ、ゲームディスクなどを含む。コンソール１００２はまた、リムーバブルのフラッシュタイプメモリユニット１０４０を受け入れるための２つのメモリーユニットカードレセプタクル１０２５１および１０２５２を含む。コンソール１００２上のコマンドボタン１０３５は、無線周辺機器サポートをイネーブルおよびディスエーブルする。
【００６７】
[0075]図１０に示されるように、コンソール１００２はまた、１つまたは複数のデバイスと無線で通信するための光ポート１０３０、ならびに追加のコントローラーまたは他の周辺機器のための有線接続をサポートするためのＵＳＢ（ユニバーサルシリアルバス）ポート１０１０１および１０１０２を含む。いくつかの実装形態では、追加のポートの数および構成は変わり得る。また電源ボタン１０１２および取り出しボタン１０１４は、ゲームコンソール１００２の前面に配置される。電源ボタン１０１２は、ゲームコンソールに通電するように選択され、他の機能およびコントロールへのアクセスをもたらすこともでき、取り出しボタン１０１４は、記憶ディスク１００８の挿入および抜き出しを可能にするために、ポータブルメディアドライブ１００６のトレイを交互に開閉する。
【００６８】
[0076]コンソール１００２は、Ａ／Ｖインターフェイスケーブル１０２０を通じてテレビまたは他のディスプレイ（モニター１０５０など）に接続する。一実装形態ではコンソール１００２は、Ａ／Ｖケーブル１０２０（例えば、高精細度モニター１０５０または他のディスプレイ装置上の高精細度マルチメディアインターフェイス「ＨＤＭＩ（登録商標）」ポートに結合するために適したＡ／Ｖケーブル）を用いた、コンテンツ保護デジタル通信のために構成された専用Ａ／Ｖポート（図示せず）を備える。電源ケーブル１０２２はゲームコンソールに電力を供給する。コンソール１００２はさらに、インターネットなどのネットワークへのアクセスを容易にするためのケーブルまたはモデムコネクタ１０２４によって表されるような、ブロードバンド機能を有するように構成され得る。ブロードバンド機能はまた、ワイヤレスフィディリティー（Ｗｉ−Ｆｉ）ネットワークなどのブロードバンドネットワークを通して無線で提供され得る。
【００６９】
[0077]各コントローラー１００４は、有線または無線インターフェイスを通じてコンソール１００２に結合される。図示される実装形態では、コントローラー１００４はＵＳＢ準拠であり、無線またはＵＳＢポート１０１０を通じてコンソール１００２に結合される。コンソール１００２は、多種多様なユーザー操作機構の任意のものを備えることができる。図１０に示される例では、各コントローラー１００４は、２つのサムスティック１０３２１および１０３２２、Ｄパッド１０３４、ボタン１０３６、および２つのトリガー１０３８を備える。これらのコントローラーは単に代表的なものであり、他の知られているゲームコントローラで図１０に示されるものを置き換える、または追加することができる。
【００７０】
[0078]一実装形態では、追加のおよびポータブルのストレージをもたらすために、メモリーユニット（ＭＵ）１０４０をコントローラー１００４に挿入することもできる。ポータブルＭＵは、他のコンソール上でプレイするときに使用するために、ユーザーがゲームパラメータを保存することを可能にする。この実装形態では各コントローラーは、２つのＭＵ１０４０に対応するように構成されるが、２つより多いまたは少ないＭＵも使用され得る。
【００７１】
[0079]ゲームおよびメディアシステム１０００は一般に、メモリ媒体に記憶されたゲームをプレイする、ならびにゲームをダウンロードおよびプレイする、ならびに電子的およびハード媒体ソースの両方から予め記録された音楽およびビデオを再生するように構成される。種々のストレージの提供により、ハードディスクドライブから、光ディスク媒体（例えば１００８）から、オンラインソースから、またはＭＵ１０４０からタイトルを再生することができる。ゲームおよびメディアシステムが再生できるメディアのタイプの実例は以下を含む。
・ＣＤおよびＤＶＤディスクから、ハードディスクドライブから、またはオンラインソースから再生されるゲームタイトル
・ポータブルメディアドライブ１００６内のＣＤから、ハードディスクドライブ上のファイル（例えばウィンドウズ（登録商標）・メディア・オーディオ（ＷＭＡ）フォーマットでの音楽）から、またはオンラインストリーミングソースから再生されるデジタル音楽
・ポータブルメディアドライブ１００６内のＤＶＤディスクから、ハードディスクドライブ上のファイル（例えばアクティブストリーミングフォーマット）から、またはオンラインストリーミングソースから再生されるデジタルオーディオ／ビデオ
[0080]動作時にはコンソール１００２は、コントローラー１００４から入力を受信し、ディスプレイ１０５０に情報を表示するように構成される。例えばコンソール１００２は、ユーザーがコントローラー１００４を用いてゲームを選択すること、および以下で述べられるように状態解決可能性情報を表示することを可能にするために、ディスプレイ１０５０にユーザーインターフェイスを表示することができる。
【００７２】
[0081]図１１は、ゲームおよびメディアシステム１０００の機能ブロック図であり、ゲームおよびメディアシステム１０００の機能構成要素をより詳しく示す。コンソール１００２は、中央処理装置（ＣＰＵ）１１００、ならびに、フラッシュ読み取り専用メモリ（ＲＯＭ）１１０４、ランダムアクセスメモリ（ＲＡＭ）１１０６、ハードディスクドライブ１１０８、およびポータブルメディアドライブ１００６を含む様々なタイプのメモリにプロセッサがアクセスするのを容易にするメモリコントローラー１１０２を有する。一実装形態ではＣＰＵ１１００は、データを一時的に記憶し、したがってハードドライブ１１０８に対して行われるメモリアクセスサイクルの数を低減し、それによって処理速度およびスループットを改善するように、レベル１キャッシュ１１１０およびレベル２キャッシュ１１１２を含む。
【００７３】
[0082]ＣＰＵ１１００、メモリコントローラー１１０２、および様々なメモリデバイスは、１つまたは複数のバス（図示せず）を通じて相互接続される。この実装形態で用いられるバスの詳細は、本明細書で考察される関心のある主題の理解に対して特に関連性はない。しかしこのようなバスは、多様なバスアーキテクチャの任意のものを用いた、１つまたは複数のシリアルおよびパラレルバス、メモリバス、ペリフェラルバス、およびプロセッサまたはローカルバスを含み得ることが理解されるであろう。例としてこのようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ）ローカルバス、およびメザニンバスとしても知られるペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスを含み得る。
【００７４】
[0083]一実装形態ではＣＰＵ１１００、メモリコントローラー１１０２、ＲＯＭ１１０４、およびＲＡＭ１１０６は、共通モジュールに統合される。この実装形態ではＲＯＭ１１０４は、ＰＣＩバスおよびＲＯＭバス（いずれも図示せず）を通じてメモリコントローラー１１０２に接続されたフラッシュＲＯＭとして構成される。ＲＡＭ１１０６は、個別のバス（図示せず）を通じてメモリコントローラー１１０２によって独立に制御される、複数のダブルデータレート・シンクロナス・ダイナミックＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）モジュールとして構成される。ハードディスクドライブ１１０８およびポータブルメディアドライブ１００６は、ＰＣＩバスおよびＡＴアタッチメント（ＡＴＡ）バス１１１６を通じてメモリコントローラー１１０２に接続されているのが示される。しかし他の実装形態では代替として、異なるタイプの専用データバス構造が適用され得る。
【００７５】
[0084]３次元グラフィックス処理装置１１２０、およびビデオエンコーダー１１２２は、高速および高分解能（例えば高精細度）グラフィックス処理のためのビデオ処理パイプラインを形成する。データは、グラフィックス処理装置１１２０からデジタルビデオバス（図示せず）を通じてビデオエンコーダー１１２２に運ばれる。オーディオ処理装置１１２４、およびオーディオコーデック（コーダー／デコーダー）１１２６は、様々なデジタルオーディオフォーマットのマルチチャネルオーディオ処理のための、対応するオーディオ処理パイプラインを形成する。オーディオデータは、通信リンク（図示せず）を通じてオーディオ処理装置１１２４とオーディオコーデック１１２６の間で運ばれる。ビデオおよびオーディオ処理パイプラインは、テレビまたは他のディスプレイへの送信のために、データをＡ／Ｖ（オーディオ／ビデオ）ポート１１２８に出力する。図示の実装形態では、ビデオおよびオーディオ処理構成要素１１２０〜１１２８は、モジュール１１１４上に搭載される。
【００７６】
[0085]図１１は、ＵＳＢホストコントローラー１１３０およびネットワークインターフェイス１１３２を含む、モジュール１１１４を示す。ＵＳＢホストコントローラー１１３０は、バス（例えばＰＣＩバス）を通じて、ＣＰＵ１１００およびメモリコントローラー１１０２と通信することが示され、周辺機器コントローラー１００４１〜１００４４のためのホストとして働く。ネットワークインターフェイス１１３２は、ネットワーク（例えばインターネット、ホームネットワークなど）へのアクセスをもたらし、イーサネット（登録商標）カード、モデム、無線アクセスカード、ブルートゥースモジュール、ケーブルモデムなどを含む、多種多様な様々な有線または無線インターフェイス構成要素の任意のものとすることができる。
【００７７】
[0086]図１１に示される実装形態では、コンソール１００２は、４つのコントローラー１００４１〜１００４４をサポートするためのコントローラー・サポート・サブアセンブリ１１４０を含む。コントローラー・サポート・サブアセンブリ１１４０は、例えばメディアおよびゲームコントローラなどの外部制御デバイスとの有線および無線動作をサポートするための、任意のハードウェアおよびソフトウェア構成要素を含む。フロントパネルＩ／Ｏサブアセンブリ１１４２は、コンソール１００２の外面に露出された電源ボタン１０１２、取り出しボタン１０１４、およびいずれかのＬＥＤ（発光ダイオード）または他の表示器の、複数の機能をサポートする。サブアセンブリ１１４０および１１４２は、１つまたは複数のケーブルアセンブリ１１４４を通じて、モジュール１１１４と通信する。他の実装形態ではコンソール１００２は、追加のコントローラーサブアセンブリを含むことができる。図示の実装形態はまた、モジュール１１１４に通信され得る信号を送信および受信するように構成された、光Ｉ／Ｏインターフェイス１１３５を示す。
【００７８】
[0087]ＭＵ１０４０１および１０４０２は、それぞれＭＵポート「Ａ」１０３０１、および「Ｂ」１０３０２に接続可能であることが示される。追加のＭＵ（例えば、ＭＵ１０４０３〜１０４０６）は、コントローラー１００４１および１００４３に、すなわち各コントローラーに対して２つのＭＵが、接続可能であることが示される。コントローラー１００４２および１００４４はまた、ＭＵ（図示せず）を受け入れるように構成することができる。各ＭＵ１０４０は、ゲーム、ゲームパラメータ、および他のデータをそれに記憶することができる追加のストレージをもたらす。いくつかの実装形態では、他のデータは、デジタルゲームコンポーネント、実行可能ゲームアプリケーション、ゲームアプリケーションを拡張するための命令セット、およびメディアファイルの任意のものを含むことができる。コンソール１００２またはコントローラーに挿入されたときは、ＭＵ１０４０はメモリコントローラー１１０２によってアクセスされ得る。
【００７９】
[0088]システム電源モジュール１１５０は、ゲームシステム１０００の構成要素に電力を供給する。ファン１１５２はコンソール１００２内の回路を冷却する。
[0089]マシン命令を含むアプリケーション１１６０は、ハードディスクドライブ１１０８に記憶される。コンソール１００２がオンにされたときは、ＣＰＵ１１００上での実行のために、アプリケーション１１６０の様々な部分は、ＲＡＭ１１０６、ならびに／またはキャッシュ１１１０および１１１２にロードされ、アプリケーション１１６０は１つのこのような例である。様々なアプリケーションが、ＣＰＵ１１００上での実行のためにハードディスクドライブ１１０８に記憶され得る。
【００８０】
[0090]コンソール１００２はまた、コンソール１００２を１つまたは複数の他のコンピューティングデバイス（例えば他のコンソール）と通信可能に結合するように構成された、通信サブシステム１１７０を含むように示される。通信サブシステム１１７０は、１つまたは複数の通信プロトコルに準拠した有線および／または無線通信デバイスを含むことができる。非限定的な例として、通信サブシステム１１７０は、無線電話ネットワーク、または有線もしくは無線のローカルもしくはワイドエリアネットワークを通じて通信するように構成され得る。いくつかの実施形態では通信サブシステム１１７０は、コンソール１００２が、インターネットなどのネットワークを通じて、他のデバイスへおよび／またはそれから、メッセージを送信および／または受信することを可能にする。特定の実施形態では、通信サブシステム１１７０は、ダウンロード要求を送信するために、およびデジタルコンテンツをダウンロードおよびアップロードするために、コーディネーターおよび／または他のコンピューティングデバイスと通信するために用いることができる。より一般的には通信サブシステム１１７０は、コンソール１００２がピアツーピア通信に参加することを可能にする。
【００８１】
[0091]ゲームおよびメディアシステム１０００は、単にシステムをモニター１０５０（図１０）、テレビ、ビデオプロジェクター、または他のディスプレイ装置に接続することによって、スタンドアローンシステムとして動作され得る。このスタンドアローン方式では、ゲームおよびメディアシステム１０００は、１人または複数のプレイヤーがゲームをプレイする、または映画を見るもしくは音楽を聴くことによってデジタルメディアを楽しむことを可能にする。しかしネットワークインターフェイス１１３２、またはより一般的には通信サブシステム１１７０を通して利用可能になるブロードバンド接続性を統合することによって、ゲームおよびメディアシステム１０００はさらに、図１に関連して上述されたように、ピアツーピアネットワークなどのより大きなネットワークゲームコミュニティへの参加者として動作され得る。
【００８２】
[0092]上述のゲームおよびメディアコンソール１００２は、図１および様々な他の図を参照して上記で論じられたコンピューティングデバイス１１２の一例に過ぎない。上記で説明されたように、本明細書で述べられた実施形態を用いることができる、様々な他のタイプのコンピューティングデバイスがある。
【００８３】
[0093]「モジュール」および「プログラム」という用語は、特定の機能を行うために実装されるコンピューティングデバイスまたはシステムの側面を述べるために用いられ得る。同じアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、ＡＰＩ、機能などから、異なるモジュールおよび／またはプログラムがインスタンス化され得ることが理解されるであろう。同様に同じモジュールおよび／またはプログラムは、異なるアプリケーション、サービス、コードブロック、オブジェクト、ルーチン、ＡＰＩ、機能などによってインスタンス化され得る。「モジュール」および「プログラム」という用語は、実行可能ファイル、データファイル、ライブラリ、ドライバー、スクリプト、データベースレコードなどの個体またはグループを包含し得る。
【００８４】
[0094]本明細書で用いられる「サービス」とは、複数のユーザーセッションにわたって実行可能なアプリケーションプログラムであることが理解されるであろう。サービスは、１つまたは複数のシステム構成要素、プログラム、および／または他のサービスで利用可能となり得る。いくつかの実装形態ではサービスは、１つまたは複数のサーバーコンピューティングデバイス上で稼働することができる。
【００８５】
[0095]本明細書で述べられる構成および／または手法は本質的に例示であり、数多くの変形形態が可能であるので、これらの特定の実施形態または例は、限定的な意味で考察されるべきではないことが理解されるであろう。本明細書で述べられる特定の手順または方法は、任意の数の処理戦略の１つまたは複数を表すことができる。したがって図示されたおよび／または述べられた様々な動作は、図示されたおよび／または述べられた順序で、他の順序で、並列に、または省略されて行われ得る。同様に上述のプロセスの順番は変更され得る。例えば本開示の主題はまた、本明細書において開示された様々な手順および方法、システムおよび構成、ならびに他の特徴、機能、動作、および／または特性、ならびにすべてのそれらの等価なものの、すべての組み合わせおよび部分的組み合わせを含む。
【００８６】
[0096]本発明のシステムの上記の詳細な説明は、例示及び説明の目的のために示されたものである。これは網羅的であること、または開示された正確な形に本発明のシステムを限定することを意図するものではない。上記の教示に照らして、多くの変更形態および変形形態が可能である。述べられた実施形態は、本発明のシステムの原理およびその実際の応用を最も良く説明し、それにより当業者が本発明のシステムを、様々な実施形態において、および企図される特定の用途に適するように様々な変更を施して、最も良く利用することを可能にするように選ばれた。本発明のシステムの範囲は、本明細書に添付された特許請求の範囲によって定義されるものである。
【図１】
0006348505.tif 000002
【図２】
0006348505.tif 000003
【図３】
0006348505.tif 000004
【図４】
0006348505.tif 000005
【図５】
0006348505.tif 000006
【図６】
0006348505.tif 000007
【図７】
0006348505.tif 000008
【図８】
0006348505.tif 000009
【図９】
0006348505.tif 000010
【図１０】
0006348505.tif 000011
【図１１】
0006348505.tif 000012