(57)【要約】ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるための方法、システム及び構成が開示されている。方法はピアツーピアネットワークのリクエストノードからコンテンツノードにおけるコンテンツに対するリクエストを受け取るステップを含む。次に、オーバーレイネットワークのヘッドノードとしてコンテンツノードを識別するために、オーバーレイネットワークを参照する。方法は次にリクエストノードに対するコンテンツのトランスコードを行うキャパビリティを有すヘッドノードの最下位の子ノードを識別する。リクエストノードへ示すためのコンテンツのトランスコードを行うために、最下位の子ノードが割り当てられ、かつ、その子に対するコンテンツのトランスコードを行うために、オーバーレイネットワークの親が割り当てられる。最下位の子ノードは最下位の子ノードのフォーマットでその親からトランスコードが行われたコンテンツを受け取り、また、オーバーレイネットワークはピアツーピアネットワークとは独立している。本方法によれば、オーバーレイネットワークのノードはキャパビリティに応じて配置され、またヘッドノードはオーバーレイネットワークの最も高いキャパビリティを有する。
2006526850.tif 000002
【特許請求の範囲】
【請求項１】
ピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法であって、
ピアツーピアネットワークのリクエストノードからのコンテンツに対するリクエストをコンテンツノードにおいて受け取るステップを有し、前記コンテンツノードは、前記コンテンツを処理して前記リクエストノードへ与えるためのキャパビリティを有するものであり、
前記コンテンツノードの子ノードが前記コンテンツを処理するキャパビリティを有しているかどうかを判断するためにオーバーレイネットワークを参照するステップを有し、前記コンテンツノードは前記オーバーレイネットワークのヘッドノードであり、
前記子ノードが前記リクエストノードに対する前記コンテンツを処理するキャパビリティを有している場合に、前記子ノードに前記リクエストノードへ与られる前記コンテンツの処理を割り当てるステップを有し、かつ、前記子ノードは前記ヘッドノードよりもコンテンツを処理するキャパビリティが低いものである、ピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項２】
前記コンテンツの処理には、前記コンテンツのトランスコードを行うことが含まれる、請求項１記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項３】
前記オーバーレイネットワークは、前記ヘッドノードを含み、また、前記ヘッドノードは１つもしくはそれ以上の子ノードを含み、かつ、前記子ノードの各々は、順に、ピアツーピアネットワークとは独立にマルチレベルの親子オーバーレイツリー構造を定義するために子ノードを有することが出来る、請求項２記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項４】
前記マルチレベル親子オーバーレイツリー構造はその１つもしくはそれ以上の子に対してトランスコーディングを行う、請求項３記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項５】
前記ヘッドノードは前記コンテンツを処理するための高キャパビリティノードである、請求項１記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項６】
前記ヘッドノードは１つもしくはそれ以上の下位の子ノードを有しており、かつ、各下位ノードは前記コンテンツを処理するためのキャパビリティが上位ノードよりも小さい、請求項５記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築方法。
【請求項７】
前記割り当てられた子ノードは、前記リクエストノードに対するトランスコーディングを効率的に処理することができるように、その他のノードに対して負荷が分散されている、請求項２記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項８】
ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法であって、
前記ピアツーピアネットワークのリクエストノードから、コンテンツのリクエストをコンテンツノードで受け取るステップを有し、
前記オーバーレイネットワークのヘッドノードとして前記コンテンツノードを識別するためにオーバーレイネットワークを参照するステップを有し、前記ヘッドノードは、前記コンテンツのトランスコードを行うキャパビリティを備えるものであり、
前記リクエストノードに対する前記コンテンツのトランスコードを行うキャパビリティを備えた前記ヘッドノードの最下位の子ノードを識別するステップを有し、
前記最下位の子ノードに前記リクエストノードに与える前記コンテンツのトランスコードを割り当てるステップを有し、前記オーバーレイネットワークの各親ノードには、その子ノードに対してのコンテンツのトランスコードが割り当てられかつ、前記最下位の子ノードはその親ノードから当該最下位の子ノードのフォーマットでトランスコードが行われたコンテンツを受け取り、前記オーバーレイネットワークは前記ピアツーピアネットワークとは独立しており、前記オーバーレイネットワークのノードはキャパビリティに応じて配置され、前記ヘッドノードは前記オーバーレイネットワークの最も高いキャパビリティを有する、ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項９】
前記オーバーレイネットワークは、マルチレベル親子オーバーレイツリー構造を定義する、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１０】
前記ヘッドノードは、前記コンテンツのトランスコードを行うための高キャパビリティノードである、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１１】
前記割り当てされた最下位の子ノードが前記リクエストノードに対して効率的にトランスコーディングを処理することができるように、前記その他のノードに対して負荷が分散される、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１２】
前記オーバーレイネットワークの各親ノードには所定数の子ノードが割り当てられ、前記親ノードは、負荷が分散されたトランスコーディングを前記所定数の子ノードへ提供できる、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１３】
前記オーバーレイネットワークはコンテンツのトランスコーディングを提供できる、利用可能な子ノードに応じて動的に調整される、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１４】
前記マルチレベル親子オーバーレイツリー構造はキャパビリティに応じて構成され、かつ前記マルチレベル親子オーバーレイツリー構造の前記最上位のノードは前記最下位の子ノードよりも高いキャパビリティを有する、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１５】
前記マルチレベル親子オーバーレイツリー構造は前記コンテンツに対するトランスコーディングを提供できる前記子ノードとその他の子ノードの負荷特性に応じてトランスコードを行うために選択される、請求項１４記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１６】
前記コンテンツは映像コンテンツ、音声コンテンツのいずれか、もしくは音声と映像コンテンツの両方でもよく、トランスコーディングにより１つの解像度フォーマットから別の解像フォーマットへコンテンツが変形される、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１８】
ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステムであって、
前記ピアツーピアネットワークのリクエストノードからのコンテンツリクエストをコンテンツノードにおいて受け取る手段を有し、
前記オーバーレイネットワークのヘッドノードとして前記コンテンツノードを識別するためにオーバーレイネットワークを参照する手段を有し、前記ヘッドノードは前記コンテンツのトランスコードを行うキャパビリティを有するものであり、
前記リクエストノードに対する前記コンテンツのトランスコードを行うキャパビリティを有する前記ヘッドノードの最下位の子ノードを識別する手段を有し、
前記最下位の子ノードに前記リクエストノードへ与える前記コンテンツのトランスコードを割り当てる手段を有し、
前記オーバーレイネットワークの各親ノードには、その子ノードに対してのコンテンツのトランスコードが割り当てられかつ、前記最下位の子ノードにはその親ノードから当該最下位の子ノードのフォーマットでトランスコードが行われたコンテンツを受け取り、前記オーバーレイネットワークは前記ピアツーピアネットワークとは独立しており、前記オーバーレイネットワークのノードはキャパビリティに応じて配置され、前記ヘッドノードは前記オーバーレイネットワークの最も高いキャパビリティを有する、ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項１９】
前記オーバーレイネットワークは、マルチレベル親子オーバーレイツリー構造を定義し、キャパビリティベースのトランスコーディングサービスを前記ピアツーピアネットワークのリクエストノードへ提供するように前記マルチレベル親子オーバーレイツリー構造のうちの複数の構造が存在することができ、前記複数の構造はマルチレベル親子オーバーレイツリー構造のフォレストを定義する、請求項１８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項２０】
前記ヘッドノードは前記コンテンツのトランスコードを行うための高キャパビリティノードである、請求項１８のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項２１】
前記割り当てられた最下位の子ノードは前記リクエストノードに対するトランスコーディングを効率的に処理することができるように、その他のノードに対して負荷が分散される、請求項１８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項２２】
前記オーバーレイネットワークの各親ノードには所定数の子ノードが割り当てられ、前記親ノードは前記所定数の子ノードに対して負荷が分散されたトランスコーディングを提供できる、請求項１８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項２３】
前記オーバーレイネットワークは、前記コンテンツのトランスコーディングを提供できる、利用可用な子ノードに応じて動的に調整される、請求項１８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項２４】
ピアツーピアネットワークに対するプログラム命令を含むコンピュータ可読媒体であって、前記コンピュータ可読媒体は、
前記ピアツーピアネットワークのリクエストノードからのコンテンツリクエストをコンテンツノードにおいて受け取るためのプログラム命令を有し、前記コンテンツノードは、前記リクエストノードへ示すための前記コンテンツを処理するキャパビリティを備えており、
オーバーレイネットワークのヘッドノードである前記コンテンツノードの子ノードが前記コンテンツを処理するキャパビリティを有しているかどうかを判断するために、オーバーレイネットワークを参照するためのプログラム命令を有し、
前記子ノードが前記リクエストノードに対する前記コンテンツを処理するキャパビリティを有している場合に、前記子ノードに前記リクエストノードへ与える前記コンテンツの処理を割り当てるためのプログラム命令を有し、前記子ノードは前記ヘッドノードよりもコンテンツを処理するキャパビリティが低いものである、ピアツーピアネットワークに対するプログラム命令を含むコンピュータ可読媒体。
【請求項２５】
前記コンテンツの処理には前記コンテンツのトランスコーディングが含まれる、請求項２４記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項２６】
前記オーバーレイネットワークは前記ヘッドノードを含み、かつ前記ヘッドノードは１つもしくはそれ以上の子ノードを含み、かつ、前記子ノードの各々は順に、前記ピアツーピアネットワークとは独立してマルチレベル親子オーバーレイツリー構造を定義するように子ノードを有することができる、請求項２５記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項２７】
前記マルチレベル親子オーバーレイツリー構造はその１つもしくはそれ以上の子に対するトランスコーディングを提供する、請求項２６記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項２８】
前記ヘッドノードは前記コンテンツを処理するための高キャパビリティノードである、請求項２４記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項２９】
前記ヘッドノードは１つもしくはそれ以上の下位の子ノードを有し、かつ、各下位ノードの前記コンテンツを処理するためのキャパビリティは、上位ノードよりも小さい、請求項２８記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項３０】
前記割り当てられた子ノードは、前記リクエストノードに対するトランスコーディングを効率的に処理することができるように、その他のノードに対して負荷が分散されている、請求項２５記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項３１】
オーバーレイコンテンツ分散型ツリー構造であって、
第１フォーマットから第２フォーマットへコンテンツのトランスコードを行うことができるヘッドノードと、
前記ヘッドノードの子ノードと、を有し、前記子ノードは前記ヘッドノードから前記第２フォーマットのコンテンツを受け取ることができ、かつ、前記子ノードは前記第２フォーマットから第３フォーマットへと前記受信したコンテンツのトランスコードを行うことができ、前記ヘッドノード及び前記子ノードはキャパビリティに応じて配置され、前記ヘッドノードは前記子ノードよりも高いキャパビリティを有しており、前記ヘッドノードと前記子ノードはマルチレベル親子オーバーレイツリー構造を定義する、オーバーレイコンテンツ分散型ツリー構造。
【請求項３２】
前記マルチレベル親子オーバーレイツリー構造はピアツーピアネットワークの利用可能なノードへの、トランスコーディングデューティの割り当てをサポートする、請求項３１記載のオーバーレイコンテンツ分散型ツリー構造。
【請求項３３】
前記マルチレベル親子オーバーレイツリー構造は前記ピアツーピアネットワークとは独立している、請求項３２記載の分散型ツリー構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はピアツーピアネットワークに関し、より具体的には、ピアツーピアネットワーク上でコンテンツを効果的に分散させるよう管理する技術に関する。
【背景技術】
【０００２】
分散型コンピューティング環境は相互に通信するように相互接続された多数のコンピューティングシステムによって定義され、各コンピューティングシステムはクライアントとサーバのどちらの機能も果たすことができる。ピアツーピア（Ｐ２Ｐ）ネットワークは分散型コンピューティング環境を表し、Ｐ２Ｐネットワーク内の各コンピューティングシステムはネットワーク内の全てのその他のコンピューティングシステムのピアとして定義される。本文では、Ｐ２Ｐネットワーク内の各ピアのコンピューティングシステムはノードと呼ばれる。さらに、Ｐ２Ｐネットワーク内の各ノードは実質的に等価の機能性を有するソフトウェアを実行するように構成されている。従って、各ノードはＰ２Ｐネットワークを通じて、データのプロバイダとユーザのどちらとしても機能することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
Ｐ２Ｐネットワーク全体の一般的なアクティビティとしては、Ｐ２Ｐネットワークのある一定のリクエストノードへコンテンツを分散することが挙げられる。しかし、このコンテンツ分散はプロセッサ集中的なものであり、またコンテンツを受け取るために、リクエストノードに対して遅延を生じさせる。例えば、ノードのリクエストが映像コンテンツである場合は、そのコンテンツが提供され、リクエストノードが使用できるフォーマットへトランスコード（コード変換）が行われることが必要である。リクエストノードに対してコンテンツのトランスコードを行うように割り当てられたノードは、Ｐ２Ｐネットワーク上で利用可能な全てのノードから選択される。
【０００４】
従来技術では、リクエストノードに対してコンテンツのトランスコードを行うために、ある一定のノードを割り当てる技術は多数あるが、これらのアルゴリズムは一般に非常に恣意的であり、リクエストノードに対してノードのトランスコードを行うキャパビリティについては考慮していない。この一方的な割り当てのために、リクエストノードは効率的な方法でコンテンツを取得することができず、また、Ｐ２Ｐネットワークの他のノードであれば一層効率的に処理できたはずのタスクによって、ノードのトランスコーディングが過負荷になってしまうということも起こりえる。
【０００５】
前述の事項に鑑み、リクエストノードをサービスするように割り当てられるノード及びリクエストノードをより包括的に分析することが求められている。
【課題を解決するための手段】
【０００６】
概して本発明は、ピアツーピアネットワークで使用されるコンテンツ分散型オーバーレイネットワークに対して、方法、システム及び構成を提供する。このコンテンツ分散型オーバーレイネットワークは、リクエストするエンドユーザの各々の能力に適した効率的な方法で、エンドユーザ近くに高需要のコンテンツを分散するために使用される。本発明は、コンピュータ可読媒体上で、処理、装置、システム、デバイス又は方法などの様々な方法で実装できることが分かる。本発明の幾つかの実施形態を以下に説明する。
【０００７】
一実施形態では、ピアツーピアネットワークに対してコンテンツ分散型オーバーレイネットワークを構築するための方法が開示されている。方法は、ピアツーピアネットワークのリクエストノードからコンテンツノードにおけるコンテンツに対するリクエストを受け取るステップを含む。このコンテンツノードはリクエストノードに示すためのコンテンツを処理するキャパビリティを有する。この方法は更に、コンテンツノードの子ノードがコンテンツを処理するキャパビリティを有するか判断するために、オーバーレイネットワークを参照するステップを含み、コンテンツノードはオーバーレイネットワークのヘッドノードである。方法では、子ノードがリクエストノードに対して、コンテンツを処理するキャパビリティを有している場合は、子ノードはリクエストノードへ示すためのコンテンツを処理するように割り当てられる。また、子ノードの、コンテンツを処理するためのキャパビリティは、ヘッドノードよりも低い。
【０００８】
ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法が開示されている。方法は、ピアツーピアネットワークのリクエストノードからコンテンツノードにおけるコンテンツに対するリクエストを受け取るステップを含む。次に、オーバーレイネットワークのヘッドノードとして、コンテンツノードを識別するためにオーバーレイネットワークを参照する。ヘッドノードはコンテンツのトランスコードを行うためのキャパビリティを備えている。次いで方法は、リクエストノードに対するコンテンツのトランスコードを行うキャパビリティを備えたヘッドノードの最下位の子ノードを識別する。この最下位の子ノードはリクエストノードへ示すためのコンテンツのトランスコードを行うように割り当てられ、また、オーバーレイネットワークの各親にはその子に対するコンテンツのトランスコードが割り当てられる。最下位の子ノードは、トランスコードが行われたコンテンツを、最下位の子ノードのフォーマットでその親から受け取る。また、オーバーレイネットワークはピアツーピアネットワークと無関係である。本方法によれば、オーバーレイネットワークのノードはキャパビリティに応じて配置され、また、ヘッドノードはオーバーレイネットワークにおいて最も高いキャパビリティを有する。
【０００９】
ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるためのシステムが開示されている。システムはピアツーピアネットワークのリクエストノードからコンテンツノードにおいてコンテンツに対するリクエストを受け取る手段を含む。オーバーレイネットワークのヘッドノードとしてコンテンツノードを識別するために、オーバーレイネットワークを参照する手段が提供されており、また、ヘッドノードはコンテンツのトランスコードを行うキャパビリティを備えている。リクエストノードに対するコンテンツのトランスコードを行うキャパビリティを備えたヘッドノードの、最下位の子ノードを識別する手段が提供されており、また、最下位の子ノードにリクエストノードに与えるコンテンツのトランスコードを割り当てる手段が提供されている。オーバーレイネットワークにおいて、各親が割り当てられており、その子に対するコンテンツのトランスコードを行い、また、最下位の子ノードはトランスコードが行われたコンテンツをその親から、最下位の子ノードのフォーマットで受け取る。オーバーレイネットワークはピアツーピアネットワークと無関係であり、オーバーレイネットワークのノードはキャパビリティに応じて配置される。ヘッドノードはオーバーレイネットワークにおいて最も高いキャパビリティを有する。
【００１０】
オーバーレイコンテンツ分散型ツリー構造が開示されている。このツリー構造は第１フォーマットから第２フォーマットへ、及びヘッドノードの子ノードへコンテンツのトランスコードを行うことができるヘッドノードを備えている。子ノードはヘッドノードから第２フォーマットでコンテンツを受け取ることができ、また、子ノードは第２フォーマットから第３フォーマットへ、受信したコンテンツのトランスコードを行うことができる。ヘッドノードと子ノードはキャパビリティに応じて配置され、かつ、ヘッドノードは子ノードよりも高いキャパビリティを有する。ヘッドノード及び子ノードはマルチレベル親子オーバーレイツリー構造を定義する。
【００１１】
本発明のその他の形態は、本発明の一般的な原理によって例示されている添付の図面とともに以下の詳細な説明を読めば明らかであろう。
本発明の実施形態は、添付の図面と併せて、以下の説明を参照すれば最も良く理解することができる。
【発明を実施するための最良の形態】
【００１２】
以下の実施形態では、キャパビリティに応じてピアツーピアネットワークのある一定ノードを配置するために使用される、オーバーレイコンテンツ分散型ネットワークを定義する。ピアツーピアネットワークでは、コンテンツを保持しているノードからある一定のピアがコンテンツをリクエストする。このコンテンツが例えば映像データである場合は、コンテンツを保持しているノードはこの映像データをリクエストノードのフォーマットにトランスコードを行う必要がある。コンテンツがリクエストノードへ分散するのをサポートするために、オーバーレイネットワークが定義される。オーバーレイネットワークはコンテンツを保持するヘッドノード、及び１つもしくはそれ以上の子ノードレベルで構成される。子ノードはコンテンツ上にトランスコーディングサービスも提供可能なノードである。
【００１３】
オーバーレイネットワークでは、ノードの各々はキャパビリティに応じて階層配置される。キャパビリティが高いノードは上位に、キャパビリティが小さいノードは下位に配置される。ヘッドノードは最高にキャパビリティが高いノードである。従って、リクエストノードが所望するフォーマットへトランスコードを行うことができる最下位の子ノードによって、リクエストノードへトランスコーディングが提供される。１つのフォーマットから別のフォーマットへの、映像コンテンツのトランスコーディングが詳細に説明されているが、ピアツーピアネットワークとともに用いられるオーバーレイネットワークを使用して、どの処理オペレーションも分散されることを理解されたい。しかし、本発明がある程度の、もしくは全てのこれらの具体的な詳細が無くても実装されることは当業者には明らかであろう。その他の例では、本発明を無用に不明瞭にしないように、周知の処理オペレーションは詳細に説明されていない。
【００１４】
ピアツーピアネットワークは、ネットワークのノードを定義するピアで構成された、分散型コンピューティングシステムである。いくつかの一般的な実施形態では、ピアは、いずれのコンピューティングデバイス、例えば、デスクトップクラスコンピュータ、サーバクラスコンピュータ、携帯機器、携帯端末、携帯電話、ＰＤＡ、ゲーム機、ゲーム機器、などを含み得る。しかし、別の実施形態では、ピアはコンピューティングデバイスがＰ２Ｐネットワークに接続されている間は、別のコンピューティングデバイスとの通信を確立できるコンピューティングデバイスである。
【００１５】
クライアント／サーバ環境などの集中コンピューティングシステムとは違って、Ｐ２Ｐネットワークの全てのピアは、Ｐ２Ｐネットワークの全てのその他のピアと直接インタラクトできる。一例のＰ２Ｐネットワークは完全に接続されたＰ２Ｐネットワークである。図１は多数のピアによって定義されるピアツーピアネットワーク１００を例示している。簡明化のために、ピアＰ１からＰ１０の間にはいくつかの一般的な接続が描かれているが、より多くの、もしくはより少ない接続が常に存在し得る。従って、ピアツーピアネットワーク１００にはより多くの、もしくはより少ないピアが適宜接続されている。ピアツーピアネットワークには一般的であるが、各ピアは相互接続されるが、各ピアのキャパビリティは様々である。例えば、ピアのキャパビリティとしては、ピアの処理能力、ピアのネットワーク接続（例えば、高帯域幅接続、もしくは低帯域幅接続）、ピアのその他の処理タスク、ピアオーナーが設定するリソース制約、ピアの安定性、などが挙げられる。ピアのキャパビリティを測定するために使用される多数の測定基準が存在することが分かる。
【００１６】
説明のために、ピアＰ８は低キャパビリティを有すピアとして、ピアＰ７は高キャパビリティを有すピアとして識別される。ピアＰ８がコンテンツ１０２の効率的共有を希望する場合、ピアＰ８はピアＰ７などの高キャパビリティピアを探す。そのため、ピアツーピアネットワーク１００のその他のピアへ最終的に分散を行うように、ピアＰ８はピアＰ７へコンテンツを提供する。
【００１７】
図１Ｂ−１から１Ｂ−４はピアＰ８からピアＰ７へコンテンツを移動するために用いられる手順の一例を示す。図１Ｂ−１では、ピアＰ８は高キャパビリティノードに対してリクエストをパブリッシュする。一般に、ピアツーピアネットワーク１００の一部である１つ以上の高キャパビリティノードが存在する。以下に説明しているように、識別された高キャパビリティノードに対してオーバーレイネットワークツリーが定義され、また、識別された高キャパビリティノードと各子ノードとが関連付けられる。従って、各高キャパビリティノードに対して複数のオーバーレイネットワークツリーを構成することができる。別の実施形態では、複数のオーバーレイネットワークツリーを構成しないが、その代わりに、高キャパビリティノードの各々は互いの親及び子ノードとなる。説明を簡単にするために、以下の例では、単一の高キャパビリティピアＰ７、及びその高キャパビリティピアＰ７に対してのオーバーレイネットワークツリーが参照される。
【００１８】
図１Ｂ−１を振り返ると、ピアＰ８がパブリッシュしたリクエストに対して、ピアＰ７は自身が高キャパビリティピアであると識別した。図１Ｂ−２では、ピアＰ７は、Ｐ８のコンテンツをピアＰ７の分散リストへ追加可能であるか否かに関する情報、即ちアベラビリティ情報とともに応答する。ピアＰ７がアベイラビリティを有する、つまり使用可能である場合、ピアＰ７はピアＰ８からコンテンツを取得する。ピアＰ８がコンテンツをピアＰ７へストリーム送信することによって、もしくはピアＰ７がコンテンツをピアＰ８から単にダウンロードすることで、Ｐ７へコンテンツを与えることができる。ピアＰ７は、図１Ｂ−４に示されるコンテンツを得た後に、コンテンツが利用可能であるとパブリッシュし、コンテンツに対するリクエストをサービスできる状態であることを通知する。コンテンツが映像コンテンツである場合、ピアＰ７はピアＰ７のネイティブフォーマットから別のピアのネイティブフォーマットへとコンテンツをトランスコード実施可能なノードとなるであろう。
【００１９】
図２Ａは本発明の一実施形態によるオーバーレイコンテンツ分散型ネットワークのブロック図を例示している。ピアツーピアネットワークの特定の個々のノードはオーバーレイコンテンツ分散型ネットワークのノードを定義するが、このオーバーレイコンテンツ分散型ネットワークは図１のピアツーピアネットワークとは独立している。オーバーレイコンテンツ分散型ネットワークは親トランスコーディングノード１５２、及び少なくとも１つの、子トランスコーディングノード１５４を備えている。親トランスコーディングノード１５２は、その子トランスコーディングノードよりも高いキャパビリティを有するノードである。親トランスコーディングノード１５２は、各ノード１５２及び１５４が定義するツリー構造のヘッドノードである。一般に、親トランスコーディングノード１５２は第１フォーマットから第２フォーマットへコンテンツのトランスコードを行うことができる。好ましくは、第２フォーマットは子トランスノード１５４のネイティブフォーマットである。例えば、コンテンツは映像コンテンツであり、トランスコーディングによって、子トランスコーディングノード１５４が、子トランスコーディングノード１５４のネイティブフォーマットである映像フォーマットでコンテンツを受け取ることが出来る。そのため、子トランスコーディングノード１５４はトランスコードが行われたコンテンツを親トランスコーディングノード１５２から受け取ることができる。また、子トランスコーディングノード自身はリクエストリーフノードのネイティブフォーマットである第３フォーマットにコンテンツのトランスコードを行うことができる。本文中で使用されているように、リーフノードとはコンテンツもしくはサービスをトランスコーディングノードのうちの１つから、もしくは通過ノードから受け取るノードである。通過ノードとはコンテンツのトランスコードは行わないが、トランスコードが行われたコンテンツを受け取り、そのコンテンツを別のノードへ送ることができるノードである。この基本的定義に従って、親トランスコーディングノード１５２と子トランスコードノード１５４はマルチレベルの親子オーバーレイツリー構造を定義する。
【００２０】
図２Ｂは、オーバーレイコンテンツ分散型ネットワークを例示しており、親トランスコーディングノード１５２は多数の子トランスコーディングノード１５４を備えている。特定の親トランスコーディングノード１５２へ割り当てられる子トランスコーディングノード１５４の数は、親トランスコーディングノード１５２の帯域幅キャパビリティに対応する。例えば、親トランスコーディングノード１５２によってトランスコードが行われているコンテンツは、コンテンツの受け取りを希望する多数の子トランスコーディングノード１５４のためにトランスコードが行われる必要がある。子トランスコーディングノード１５４の数が多数に及ぶと、親トランスコーディングノード１５２は子トランスコーディングノード１５４の各々へトランスコーディングサービス、及び結果としてもたらされるコンテンツをタイムリーに提供することができない。従って、親トランスコーディングノード１５２のキャパビリティによって、子トランスコーディングノード１５４セットはその数に制限が設けられる。オーバーレイコンテンツ分散型ネットワークに対して、２レベルの親子関係だけが示されているが、特定のピアツーピアネットワークの一部であるノードのキャパビリティに応じて、多数の親子関係レベルが可能であることは理解されよう。
【００２１】
図２Ｃは論理的にピアツーピアネットワーク１００の上を覆うコンテンツ分散型オーバーレイネットワーク２００のブロック図を例示している。このピアツーピアネットワーク１００はコンテンツ分散型オーバーレイネットワーク２００とは独立に機能する。しかし、コンテンツ分散型オーバーレイネットワーク２００は、下部のピアツーピアネットワーク１００のピアによって定義される。コンテンツ分散型オーバーレイネットワーク２００を定義するノードの各々は、特定のノードのキャパビリティ及びアベイラビリティに基づくピアツーピアネットワークから選択される。いくつかの実施形態では、必須ではないが、各ノードの地理的位置によって特定のノードがコンテンツ分散型オーバーレイネットワークへ追加されるかどうかが定義される。
【００２２】
図２Ａ及び２Ｂの例では、親トランスコーディングノード１５２は子トランスコーディングノード１５４よりも高いキャパビリティを有する。ツリー構造が大きくなれば、上位レベルが下位レベルよりも高いキャパビリティを有するように、子トランスコーディングノードレベルの構成が定義される。各レベルでは、同一キャパビリティを有するノードが１つ以上存在する。特定の子ノードが過負荷とならないように、特定の子ノードのワークロードに応じて、それほどビジーでない子ノードを選択するようにトランスコーディングが送られる。
【００２３】
図３Ａは一般的なコンテンツ分散型オーバーレイネットワーク２００を例示している。コンテンツ分散型オーバーレイネットワーク２００では、トランスコーディングノード２０４及び２０６上に論理的にヘッドトランスコーディングノード２０２を定義する。これらのトランスコーディングノード２０４及び２０６のキャパビリティはヘッドノード２０２よりも低い。同様に、トランスコーディングノード２０８のキャパビリティはトランスコーディングノード２０４よりも低い。トランスコーディングノード２０８はリーフノード２１２ａ及び２１２ｂをサービスして示されており、各リーフノードはＰＤＡ（Personal Digital Assistance）として識別される。トランスコーディングノード２０６は携帯電話スイッチとして機能するノード２１０をサービスして示されている。ノード２１０はサブリーフノード２１４ａ、２１４ｂ、及び２１４ｃをサービスする。リーフノード２１４ａから２１４ｃはノード２１０のサービスを使用する携帯電話により定義される。
【００２４】
従って、コンテンツ分散型オーバーレイネットワーク２００は、トランスコーディングサービスをリクエストノードへ提供する特定ノードのキャパビリティに基づき定義される。リクエストノードはピアツーピアネットワークの一部である。このリクエストノードは、リクエストノードが希望するコンテンツの分散ができることを通知するヘッドノードからサービス及び／又はコンテンツをリクエストする。リクエストノードがヘッドトランスコーディングノード２０２からリクエストをすると、ヘッドトランスコーディングノード２０２は、トランスコードが行われたコンテンツをリクエストノードへ送る処理ができるコンテンツ分散型オーバーレイネットワーク２００に、下位の子ノードが存在するかどうかを確認する。一例では、トランスコーディングノード２０４はトランスコーディングサービスをリクエストノードへ提供でき、これはリーフノード２１２ａとして見ることができる。
【００２５】
しかし、その次に、トランスコーディングノード２０４は、トランスコーディングノード２０４の子ノードがリクエストノードへトランスコーディングサービスを提供できるかどうかを判断する。この例では、トランスコーディングノード２０８はトランスコーディングノード２０４の子ノードである。トランスコーディングノード２０８の親であるトランスコーディングノード２０４は、トランスコーディングノード２０８へトランスコーディングサービスを提供する。次に、トランスコーディングノード２０８は、ヘッドトランスコーディングノード２０２から最初にコンテンツをリクエストしたリーフノードに対して、トランスコーディングサービスを提供する。その結果、トランスコーディングノード２０８はリーフノード２１２ａが理解できるフォーマットへのトランスコードが行われたコンテンツを提供できる。説明したプロセスでは、ヘッドトランスコーディングノードの帯域幅は、一般的なトランスコーディング帯域幅である、１６００×１２００×６４(100FP5 vide)となっている。その他のノードに対する一般的な下位のトランスコーディング帯域幅は図面に例示されている。従って、ヘッドトランスコーディングノードは、リクエストノード２１２ａへトランスコーディングサービスを直接的に提供することができるが、しかしながら、トランスコードを行う責任、即ちトランスコードレスポンシビリティは、コンテンツ分散型オーバーレイネットワーク２００のヘッドトランスコーディングノード２０２から最下位のキャパビリティを有する子ノードへと伝達されていくことになる。
しかし、一実施形態では、コンテンツ分散型オーバーレイネットワーク２００の最下位の子ノードは、帯域幅、アベイラビリティ、及びキャパビリティの点から、リクエストノードへトランスコーディングサービスを提供可能とすることができる。キャパビリティのある子ノードが存在しない場合は、ヘッドトランスコーディングノードはリクエストノードへ直接的にトランスコーディングを提供できる。
【００２６】
例えば、ノード２１０もヘッドトランスコーディングノード２０２から携帯電話のスイッチング機能を要求するリクエストノードである。携帯電話スイッチ２１０が求めるキャパビリティは、トランスコーディングノード２０４及び２０８のいずれのキャパビリティよりもさらに高い。従って、ヘッドトランスコーディングノード２０２は、子ノード２０６を通じてトランスコーディングサービスのみを送ることになる。その結果、子ノード２０６は親ヘッドトランスコーディングノード２０２からトランスコーディングサービスを受け取り、トランスコーディングノード２０６は順にその子ノード２１０へトランスコードを行う。従って、コンテンツ分散型オーバーレイネットワークは、ヘッドトランスコーディングノードの下部に存在する複数のトランスコーディングノードによって定義される。個々のノードの子ノードのキャパビリティは、親ノードよりも低い。
【００２７】
従って、各トランスコーディングノードはそのキャパビリティに基づき、コンテンツ分散型オーバーレイネットワークに構成され、ツリーの低位ノードのキャパビリティは最も低く、最上位ヘッドノードのキャパビリティは最も高い。従って、リクエストノードのキャパビリティ及び要件に応じて、トランスコーディングサービスをリクエストノードへ直接的に提供するようにトランスコーディングノードが割り当てられる。
【００２８】
図３Ｂはコンテンツ分散型オーバーレイネットワーク２００を図で例示しており、リクエストピアＰ１０はリクエストノードである。図４ではピアＰ１０はコンテンツ２４２へリクエストを提供するものとして例示されている。ピアＰ１０はピアツーピアネットワークの一部であり、かつ図３Ｂにおいてはリクエストノードである。ピアＰ７はピアツーピアネットワークにおいては高キャパビリティピアであり、また、コンテンツ分散型オーバーレイネットワーク２００のヘッドトランスコーディングノード２０２としても定義される。一実施形態では、リクエストノードピアＰ１０がリクエストするキャパビリティ要件に応じて、トランスコーディングノード２０２が直接的にリクエストノードをサービスする必要があるかどうか、もしくは、コンテンツ分散型オーバーレイネットワークの下位ノードにトランスコーディングを行うべきかどうか、を判断するために、ヘッドトランスコーディングノード２０２で受け取られるリクエストが分析される。
【００２９】
本例では、リーフノード２１２ａは、ピアツーピアネットワーク１００のピアＰ１０により定義される。リクエストノードピアＰ１０のキャパビリティは、ヘッドトランスコーディングノード２０２のキャパビリティよりもずっと低い。本例では、ヘッドトランスコーディングノード２０２はトランスコーディングノード２０４が理解するフォーマットへコンテンツをトランスコードする。トランスコーディングノード２０４は図４に示されるようにピアＰ６によって定義される。リクエストノードがトランスコーディングノード２０４よりも低いキャパビリティを有しているかどうかについて、また、トランスコーディングノード２０４の下位の子ノードへとトランスコーディングができるかについて、トランスコーディングノード２０４が再度判断を行う。本例では、トランスコーディングノード２０４（図４ではピアＰ６と定義される）は、トランスコーディングノード２０８（図４ではピアＰ５と定義される）にダイレクトトランスコーディングを行う。
【００３０】
トランスコーディングノード２０８がトランスコーディングノード２０４（ピアＰ６）からトランスコードが行われたコンテンツを受信すると、リクエストノードピアＰ１０に対するトランスコーディングが可能となるように、下位ノードへトランスコーディングサービスを直接的に送る必要があるかどうか、トランスコーディングノード２０８によって再度判断される。本例では、トランスコーディングノード２０８によって定義されるピアＰ５は、リクエストノードピアＰ１０に対するコンテンツのトランスコードを行うことができる最下位の子ノードである。従って、トランスコーディングノード２０８（本例ではピアＰ５により定義される）は、リクエストノードピアＰ１０（リーフノード２１２ａ）がリクエストするフォーマットにコンテンツのトランスコードを行う。
【００３１】
図４に示すように、分散のためにピアＰ８によってピア７に与えられたコンテンツは次にリクエストノードピアＰ１０へ送られる。しかし、高キャパビリティピアＰ７はピアＰ１０に対するトランスコーディングサービスを直接提供を行うわけではない。代わりに、ピアＰ１０へ提供されたトランスコーディングサービスは、リクエストノードがリクエストするレベルへトランスコーディングサービスを提供できるコンテンツ分散型ネットワークの最下位の子ノードによって提供されている。その結果、トランスコーディングサービスが、コンテンツ分散型オーバーレイネットワークの、図４のコンテンツ分散ネットワークパス２４０によって定義された多数のノード間に分散された。
【００３２】
なお、ここでは、“delegation：送る”はノードがコンテンツを単に送ることを意味するのではなく、“delegation：送る”は、ノードがコンテンツのトランスコードを行い、次に、トランスコードが行われたコンテンツを下位の子ノードに対して送ることを意味し、ここでは、トランスコーディングが再度、低キャパビリティで行われる。その結果、例では、高キャパビリティピアＰ７は単にピアＰ６が理解する下位キャパビリティフォーマットへコンテンツのトランスコードを行い、また、ピアＰ６はピアＰ５が理解する低キャパビリティレベルへコンテンツのトランスコードを行い、ピアＰ５はピアＰ１０がリクエストする低キャパビリティレベルへ情報のトランスコードを行う。しかし、ピアＰ５よりもキャパビリティは高いが、ピアＰ６よりは低いキャパビリティをピアＰ１０が有していたとすれば、ピアＰ１０はトランスコードが行われたコンテンツをピアＰ６から直接受け取っていたであろう。従って、ピアツーピアネットワーク全体にわたるコンテンツの分散は、ピアツーピアネットワーク１００によって定義される接続と独立した、コンテンツ分散型オーバーレイネットワークによって定義されるキャパビリティ階層によって管理される。
【００３３】
図５はピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを利用するシステムにより実施される方法オペレーションのフローチャートを例示している。この方法はまずオペレーション３０２から開始する。３０２では、リクエストノードからのコンテンツリクエストがピアツーピアネットワークのコンテンツ保持ノードにおいて受け取られる。コンテンツ保持ノードはコンテンツの分散が可能なノードと仮定される。コンテンツの分散が可能なノードは図１のノードＰ７などの、高キャパビリティノードであることが求められる。リクエストノードは、コンテンツ保持ノードからコンテンツの取得を希望するピアツーピアネットワークの一部であるどのノードであってもよい。
【００３４】
次に方法は３０４へと移り、ここではリクエストを受け取ると、リクエストノードでリクエストされたコンテンツを処理できる子ノードを識別するために、オーバーレイ分散型ネットワークが参照される。上述のように、コンテンツ保持ノードの子ノードがリクエストノードに対するコンテンツを処理できる場合、コンテンツ保持ノードはオーバーレイ分散型ネットワークの子ノードへ追加の処理を送る。上述しているように、オーバーレイ分散型ネットワークツリー構造はピアツーピアネットワークとは独立しており、また、オーバーレイ分散型ツリーは、少なくともコンテンツに対するリクエストの処理が可能な親ノード、及び親ノードほどのキャパビリティは有していないが、リクエストノードからのコンテンツに対してリクエストの処理が可能な子ノードによって定義される。本方法で使用されているように、処理には例えば映像コンテンツのトランスコーディングを含む。
【００３５】
次に方法はオペレーション３０６へと移る。３０６では、リクエストノードのコンテンツを処理できると識別された子ノードには、リクエストノードに対するデータ処理を行う仕事（デューティ）が割り当てられる。上述のように、子ノードはリクエストノードに対するコンテンツの処理が可能なノードであるが、オーバーレイ分散型ネットワークツリーにより定義される階層によれば、子ノードは親ノードほどの高いキャパビリティを備えていない。従って、割り当てされた子ノードはリクエストノードによってリクエストされる処理を行い、また、リクエストノードは、少なくともリクエストノードのキャパビリティを満たすことができるキャパビリティレベルを有したコンテンツを提供できる子ノードからコンテンツを受け取る。
【００３６】
大まかに言えば、ツリーの各親はコンテンツを処理し、そのコンテンツをその子へ与えるように構成されており、その子に対するコンテンツを順に処理する。
【００３７】
図６はピアツーピアネットワークとともにオーバーレイ分散型ネットワークを用いた更に詳しい処理例のフローチャート３５０を例示している。オペレーション３５２では、リクエストノードからのリクエストはピアツーピアネットワークのコンテンツ保持ノードにおけるコンテンツに対して受け取られる。上述のように、コンテンツ保持ノードは多数のピアへコンテンツを分散できるノードであること、かつ、高キャパビリティノードであることが求められる。図１に示す例では、高キャパビリティノードはノードピアＰ７である。従って、ピアＰ７はオーバーレイ分散型ネットワークのヘッドを定義し、また、リクエストノードがリクエストするコンテンツの処理もできるその他のピアは、オーバーレイ分散型ネットワークのヘッドノードの子ノードを定義する。
【００３８】
動作３５４では、リクエストノードに対するコンテンツのトランスコードを行うことができるコンテンツ保持ノードの子ノードを識別するために、オーバーレイ分散型ネットワークが参照される。先に述べているように、コンテンツ保持ノードの子ノードは、リクエストノードに対するコンテンツのトランスコードを行うデューティを子ノードへ割り当てるように、リクエストノードへコンテンツのトランスコードを行うことが少なくともできることが求められる。リクエストノードに対するコンテンツのトランスコードを子ノードが行うことができる場合は、方法は３５６へと移り、ここでは、識別された子ノードはリクエストノードに対するコンテンツのトランスコードを行うように割り当てられる。識別された子ノードはオーバーレイ分散型ネットワークの親子ツリー構造のどの特定レベルであってよい。
【００３９】
識別されたノードは、下層にいくほどそのノードのキャパビリティは低い。しかし、識別されたノードは、リクエストノードに対するコンテンツのトランスコードを行うキャパビリティを備えている必要がある。リクエストノードが高キャパビリティノードである場合は、子ノードはリクエストノードに対してトランスコーディングサービスを提供することができず、その結果、コンテンツ保持ノード（ヘッドノード）はリクエストノードへ直接的にコンテンツのトランスコードを実行する必要がある。次に方法はオペレーション３５８へと移り、ここではコンテンツ保持ノードでコンテンツのトランスコーティング処理を開始する。
【００４０】
下位の各子レベルでは、最下位に割り当てられた子ノードがコンテンツを取得し、リクエストノードに対するコンテンツのトランスコードを行うまで、各ノードはコンテンツの、より下位のトランスコーディングも完了する。そのため、オーバーレイ分散型ネットワークの各親は、リクエストノードに対するコンテンツのトランスコードが直接的に行われるまで、その子ノードに対するコンテンツのトランスコードを行う。
【００４１】
大まかに言えば、ノードのツリーはオーバーレイネットワークを定義するように構成され、ツリーの各ノードは、キャパビリティに基づき配置される。ツリーの最上位のノードは最高のキャパビリティを備えている。また、ツリーの各親ノードは各子ノードへ与えられるコンテンツのトランスコーディングを提供する。各ノードは、子を有す場合は、子ノードへ送られる前にコンテンツのトランスコーディングを提供する。ある状況では、ノードは通過ノードであり、その特定のノードにおいてトランスコーディングは発生しない。従って、ピアツーピアネットワークでは、トランスコーディングをリクエストピアと近いキャパビリティを有する低キャパビリティの子ピアへ移動させることができる。例えば、携帯電話などの低キャパビリティデバイスが映像コンテンツをリクエストする場合、低キャパビリティの子ノードはリクエスト中の携帯電話へトランスコードが行われたコンテンツを提供する。上位ノードもトランスコーディングを実施しているが、これは、中間の子ノードに対してだけトランスコーディングが実施されているに過ぎない。従って、エンドユーザの近くにコンテンツを分散することができる。
【００４２】
本発明は各エンドユーザのキャパビリティに適した効率的な方法でエンドユーザへ高需要（例えば、映像、音声、音声／映像、及びその他のデータストリーム）コンテンツをストリームするために特に便利である。従って、オーバーレイネットワークは、分散されたピアの自己構成型オーバーレイネットワークとして、トランスコーディングノードのキャパビリティ検知(capability-aware)分散フォレストである。更なる一実施形態では、音声及び映像ストリームは単一オーバーレイの同じパスに沿って送信される。これにより、音声は１０分の１の大きさで送信でき、演算処理がそれほど複雑ではないことが分かる。従って、どちらのストリームに対しても１つのオーバーレイを再使用することが保証され、オーバーレイのメンテナンスを大幅に減らすことができる。
【００４３】
別の実施形態では、音声及び映像ストリームは完全に別々のオーバーレイに沿って送信される。これにより、音声のオーバーヘッドは、我々が望むようにそれほど重要ではないことが分かり、従ってオーバーレイを別々に管理してその処理（送信及びトランスコーディング）を最適化すればよい。
【００４４】
更に別の実施形態では、音声と映像が一般に同じパスを取るハイブリッドモデルは、階層の別レベルで自身のパスを見つけることもできる。これによりオーバーレイメンテナンス共有のいくつかの利点を得ることができ、また、音声ストリームは低帯域幅の音響をよりよく処理できるが、最低質の映像であってもサポートすることができない中間ツリーノードを見つけることができる。このことはまた、１つの音声（又は映像）トランスコーディングノードがＮ個の様々な出力フォーマットへのトランスコーディングを処理できることを示すことに留意されたい。
【００４５】
本発明の実施形態は更に一般化される。最新のメディアプレゼンテーションでは、音声、映像、３Ｄ、３Ｄアニメーション、静止画像、などをエンコードできる多くの別々のストリーム（“エレメンタリーストリーム”と呼ばれる）が存在する。これらの全てにトランスコーディングが行われ得る。従って、ツリーの各ノードを構成するために用いる単一の適応メトリック(fitness metric)をＮ個の適応メトリックとする必要がある。次に、ツリーを包括的に、及び局所的に最適化するために、最も処理に時間がかかるメトリック（映像など）へ重み付けが与えられ、継続して構成が行われ、残りのＮ個のメトリックを通じて、最適化処理が順番に行われる。上記に定義したハイブリッドモードでは、やや複雑ではあるが、様々なエレメンタリーストリームの各々に対する、冗長オーバーレイメンテナンスオーバーヘッドと、最適なパスの検知と、の間に最良のバランスが実現される。そのようなものとして、定義された実施形態は一例にすぎず、ピアツーピアネットワーク上で交換されているデータのタイプに応じて、所望の結果に到達するように変更もしくは組み合わせられることができる。
【００４６】
本発明の実施形態は、様々なコンピュータシステム構造で実行することができ、それらには携帯端末、マイクロプロセッサシステム、マイクロプロセッサベースの、もしくはプログラム可能な消費家電、ミニコンピュータ、メインフレームコンピュータなど、を含む。本発明はまた、ワイアベースもしくはワイアレスネットワークを通じて接続された遠隔処理デバイスによってタスクが実施される分散型コンピューティング環境で実行することもできる。
【００４７】
上述の実施形態を念頭において、本発明はコンピュータシステムに記録されるデータを含む、様々なコンピュータ実装オペレーションで使用できることを理解されたい。これらのオペレーションは、物理的品質の物理的操作を必要とするものである。絶対的ではないが通常は、これらの品質は格納、転送、結合、比較、もしくは操作が可能な電気もしくは磁気信号形式である。
【００４８】
本発明の一部を形成する、本明細書に説明したいずれのオペレーションは有益なマシンオペレーションである。本発明はまた、これらのオペレーションを実施するためのデバイスもしくは装置にも関する。本装置は所要の目的のために特別に構成されている。あるいは、本装置はコンピュータに記録されたコンピュータプログラムによって選択的に起動する、もしくは構成される多目的コンピュータであり得る。特に、様々な多目的マシンが本文中の教示に従い書かれたコンピュータプログラムとともに使用され得る。もしくは、所望のオペレーションを実施するために、より具体的な装置を構成すればさらに便利である。
【００４９】
本発明はコンピュータ可読媒体にコンピュータ可読コードとして組み込まれることもできる。このコンピュータ可読媒体は、コンピュータシステムによって後で読み出しされ得る、データの記録が可能ないずれのデータストレージデバイスである。コンピュータ可読媒体の例としては、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、ＲＯＭ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、及びその他の光学及び非光学データストレージデバイス、が挙げられる。コンピュータ可読媒体はまた、コンピュータ可読コードが分散形式で格納されて実行されるように、ネットワーク結合されたコンピュータシステム上に分散されている。
【００５０】
前述の発明は本発明を明確に理解するためにいくつかの詳細が説明されているが、添付の請求の範囲内で一定の変更及び修正が可能なことは明らかであろう。従って、本実施形態は例示的なものであって制限的なものではないと考えられ、また本発明は本文中に与えられている詳細に制限されずに、添付の請求項と等価の範囲内で修正され得る。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態による、ある一定のピアが様々なキャパビリティを有す一般的なピアツーピアネットワークの説明図。
【図１Ｂ】本発明の一実施形態による、分散のために高キャパビリティノードへコンテンツを通信するための一般的手順を例示した説明図。
【図２】本発明の一実施形態による、ピアツーピアネットワークと関連するオーバーレイネットワーク構造の例を例示した説明図。
【図３Ａ】本発明の一実施形態による、キャパビリティにより構成されたノードを有するオーバーレイネットワークツリー構造を例示した説明図。
【図３Ｂ】本発明の一実施形態による、キャパビリティにより構成されたノードを有するオーバーレイネットワークツリー構造を例示した説明図。
【図４】本発明の一実施形態による、ピアツーピアネットワークと関連するコンテンツ分散型オーバーレイネットワークの図解説明図。
【図５】本発明のキャパビリティ的例において実施される方法オペレーションの一般的フローチャート。
【図６】本発明のキャパビリティ的例において実施される方法オペレーションの一般的フローチャート。
【図１】
2006526850.tif 000003
【図１Ｂ】
2006526850.tif 000004
【図２】
2006526850.tif 000005
【図３Ａ】
2006526850.tif 000006
【図３Ｂ】
2006526850.tif 000007
【図４】
2006526850.tif 000008
【図５】
2006526850.tif 000009
【図６】
2006526850.tif 000010
【手続補正書】
【提出日】平成18年2月2日(2006.2.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法であって、
ピアツーピアネットワークのリクエストノードからのコンテンツに対するリクエストをコンテンツノードにおいて受け取るステップを有し、前記コンテンツノードは、前記コンテンツを処理して前記リクエストノードへ与えるためのキャパビリティを有するものであり、
前記コンテンツノードの子ノードが前記コンテンツを処理するキャパビリティを有しているかどうかを判断するためにオーバーレイネットワークを参照するステップを有し、前記コンテンツノードは前記オーバーレイネットワークのヘッドノードであり、
前記子ノードが前記リクエストノードに対する前記コンテンツを処理するキャパビリティを有している場合に、前記子ノードに前記リクエストノードへ与られる前記コンテンツの処理を割り当てるステップを有し、かつ、前記子ノードは前記ヘッドノードよりもコンテンツを処理するキャパビリティが低いものである、ピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項２】
前記コンテンツの処理には、前記コンテンツのトランスコードを行うことが含まれる、請求項１記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項３】
前記オーバーレイネットワークは、前記ヘッドノードを含み、また、前記ヘッドノードは１つもしくはそれ以上の子ノードを含み、かつ、前記子ノードの各々は、順に、ピアツーピアネットワークとは独立にマルチレベルの親子オーバーレイツリー構造を定義するために子ノードを有することが出来る、請求項２記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項４】
前記マルチレベル親子オーバーレイツリー構造はその１つもしくはそれ以上の子に対してトランスコーディングを行う、請求項３記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項５】
前記ヘッドノードは前記コンテンツを処理するための高キャパビリティノードである、請求項１記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項６】
前記ヘッドノードは１つもしくはそれ以上の下位の子ノードを有しており、かつ、各下位ノードは前記コンテンツを処理するためのキャパビリティが上位ノードよりも小さい、請求項５記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築方法。
【請求項７】
前記割り当てられた子ノードは、前記リクエストノードに対するトランスコーディングを効率的に処理することができるように、その他のノードに対して負荷が分散されている、請求項２記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築する方法。
【請求項８】
ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法であって、
前記ピアツーピアネットワークのリクエストノードから、コンテンツのリクエストをコンテンツノードで受け取るステップを有し、
前記オーバーレイネットワークのヘッドノードとして前記コンテンツノードを識別するためにオーバーレイネットワークを参照するステップを有し、前記ヘッドノードは、前記コンテンツのトランスコードを行うキャパビリティを備えるものであり、
前記リクエストノードに対する前記コンテンツのトランスコードを行うキャパビリティを備えた前記ヘッドノードの最下位の子ノードを識別するステップを有し、
前記最下位の子ノードに前記リクエストノードに与える前記コンテンツのトランスコードを割り当てるステップを有し、前記オーバーレイネットワークの各親ノードには、その子ノードに対してのコンテンツのトランスコードが割り当てられかつ、前記最下位の子ノードはその親ノードから当該最下位の子ノードのフォーマットでトランスコードが行われたコンテンツを受け取り、前記オーバーレイネットワークは前記ピアツーピアネットワークとは独立しており、前記オーバーレイネットワークのノードはキャパビリティに応じて配置され、前記ヘッドノードは前記オーバーレイネットワークの最も高いキャパビリティを有する、ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項９】
前記オーバーレイネットワークは、マルチレベル親子オーバーレイツリー構造を定義する、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１０】
前記ヘッドノードは、前記コンテンツのトランスコードを行うための高キャパビリティノードである、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１１】
前記割り当てされた最下位の子ノードが前記リクエストノードに対して効率的にトランスコーディングを処理することができるように、前記その他のノードに対して負荷が分散される、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１２】
前記オーバーレイネットワークの各親ノードには所定数の子ノードが割り当てられ、前記親ノードは、負荷が分散されたトランスコーディングを前記所定数の子ノードへ提供できる、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１３】
前記オーバーレイネットワークはコンテンツのトランスコーディングを提供できる、利用可能な子ノードに応じて動的に調整される、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１４】
前記マルチレベル親子オーバーレイツリー構造はキャパビリティに応じて構成され、かつ前記マルチレベル親子オーバーレイツリー構造の前記最上位のノードは前記最下位の子ノードよりも高いキャパビリティを有する、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１５】
前記マルチレベル親子オーバーレイツリー構造は前記コンテンツに対するトランスコーディングを提供できる前記子ノードとその他の子ノードの負荷特性に応じてトランスコードを行うために選択される、請求項１４記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１６】
前記コンテンツは映像コンテンツ、音声コンテンツのいずれか、もしくは音声と映像コンテンツの両方でもよく、トランスコーディングにより１つの解像度フォーマットから別の解像フォーマットへコンテンツが変形される、請求項８記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させる方法。
【請求項１７】
ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステムであって、
前記ピアツーピアネットワークのリクエストノードからのコンテンツリクエストをコンテンツノードにおいて受け取る手段を有し、
前記オーバーレイネットワークのヘッドノードとして前記コンテンツノードを識別するためにオーバーレイネットワークを参照する手段を有し、前記ヘッドノードは前記コンテンツのトランスコードを行うキャパビリティを有するものであり、
前記リクエストノードに対する前記コンテンツのトランスコードを行うキャパビリティを有する前記ヘッドノードの最下位の子ノードを識別する手段を有し、
前記最下位の子ノードに前記リクエストノードへ与える前記コンテンツのトランスコードを割り当てる手段を有し、
前記オーバーレイネットワークの各親ノードには、その子ノードに対してのコンテンツのトランスコードが割り当てられかつ、前記最下位の子ノードにはその親ノードから当該最下位の子ノードのフォーマットでトランスコードが行われたコンテンツを受け取り、前記オーバーレイネットワークは前記ピアツーピアネットワークとは独立しており、前記オーバーレイネットワークのノードはキャパビリティに応じて配置され、前記ヘッドノードは前記オーバーレイネットワークの最も高いキャパビリティを有する、ピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項１８】
前記オーバーレイネットワークは、マルチレベル親子オーバーレイツリー構造を定義し、キャパビリティベースのトランスコーディングサービスを前記ピアツーピアネットワークのリクエストノードへ提供するように前記マルチレベル親子オーバーレイツリー構造のうちの複数の構造が存在することができ、前記複数の構造はマルチレベル親子オーバーレイツリー構造のフォレストを定義する、請求項１７記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項１９】
前記ヘッドノードは前記コンテンツのトランスコードを行うための高キャパビリティノードである、請求項１７のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項２０】
前記割り当てられた最下位の子ノードは前記リクエストノードに対するトランスコーディングを効率的に処理することができるように、その他のノードに対して負荷が分散される、請求項１７記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項２１】
前記オーバーレイネットワークの各親ノードには所定数の子ノードが割り当てられ、前記親ノードは前記所定数の子ノードに対して負荷が分散されたトランスコーディングを提供できる、請求項１７記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項２２】
前記オーバーレイネットワークは、前記コンテンツのトランスコーディングを提供できる、利用可用な子ノードに応じて動的に調整される、請求項１７記載のピアツーピアネットワークとともにコンテンツ分散型オーバーレイネットワークを動作させるシステム。
【請求項２３】
ピアツーピアネットワークに対するプログラム命令を含むコンピュータ可読媒体であって、前記コンピュータ可読媒体は、
前記ピアツーピアネットワークのリクエストノードからのコンテンツリクエストをコンテンツノードにおいて受け取るためのプログラム命令を有し、前記コンテンツノードは、前記リクエストノードへ示すための前記コンテンツを処理するキャパビリティを備えており、
オーバーレイネットワークのヘッドノードである前記コンテンツノードの子ノードが前記コンテンツを処理するキャパビリティを有しているかどうかを判断するために、オーバーレイネットワークを参照するためのプログラム命令を有し、
前記子ノードが前記リクエストノードに対する前記コンテンツを処理するキャパビリティを有している場合に、前記子ノードに前記リクエストノードへ与える前記コンテンツの処理を割り当てるためのプログラム命令を有し、前記子ノードは前記ヘッドノードよりもコンテンツを処理するキャパビリティが低いものである、ピアツーピアネットワークに対するプログラム命令を含むコンピュータ可読媒体。
【請求項２４】
前記コンテンツの処理には前記コンテンツのトランスコーディングが含まれる、請求項２３記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項２５】
前記オーバーレイネットワークは前記ヘッドノードを含み、かつ前記ヘッドノードは１つもしくはそれ以上の子ノードを含み、かつ、前記子ノードの各々は順に、前記ピアツーピアネットワークとは独立してマルチレベル親子オーバーレイツリー構造を定義するように子ノードを有することができる、請求項２４記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項２６】
前記マルチレベル親子オーバーレイツリー構造はその１つもしくはそれ以上の子に対するトランスコーディングを提供する、請求項２５記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項２７】
前記ヘッドノードは前記コンテンツを処理するための高キャパビリティノードである、請求項２３記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項２８】
前記ヘッドノードは１つもしくはそれ以上の下位の子ノードを有し、かつ、各下位ノードの前記コンテンツを処理するためのキャパビリティは、上位ノードよりも小さい、請求項２７記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項２９】
前記割り当てられた子ノードは、前記リクエストノードに対するトランスコーディングを効率的に処理することができるように、その他のノードに対して負荷が分散されている、請求項２４記載のピアツーピアネットワークに対するコンテンツ分散型オーバーレイネットワークを構築するためのプログラム命令を含むコンピュータ可読媒体。
【請求項３０】
オーバーレイコンテンツ分散型ツリー構造であって、
第１フォーマットから第２フォーマットへコンテンツのトランスコードを行うことができるヘッドノードと、
前記ヘッドノードの子ノードと、を有し、前記子ノードは前記ヘッドノードから前記第２フォーマットのコンテンツを受け取ることができ、かつ、前記子ノードは前記第２フォーマットから第３フォーマットへと前記受信したコンテンツのトランスコードを行うことができ、前記ヘッドノード及び前記子ノードはキャパビリティに応じて配置され、前記ヘッドノードは前記子ノードよりも高いキャパビリティを有しており、前記ヘッドノードと前記子ノードはマルチレベル親子オーバーレイツリー構造を定義する、オーバーレイコンテンツ分散型ツリー構造。
【請求項３１】
前記マルチレベル親子オーバーレイツリー構造はピアツーピアネットワークの利用可能なノードへの、トランスコーディングデューティの割り当てをサポートする、請求項３０記載のオーバーレイコンテンツ分散型ツリー構造。
【請求項３２】
前記マルチレベル親子オーバーレイツリー構造は前記ピアツーピアネットワークとは独立している、請求項３１記載の分散型ツリー構造。
【国際調査報告】
2006526850.tif 000011
2006526850.tif 000012
2006526850.tif 000013