(57)【特許請求の範囲】
【請求項１】
ネットワークを介して互いに接続可能な複数のノード装置により形成されたオーバーレイネットワークを有し、夫々の前記ノード装置が共通に使用する共用情報を、前記オーバーレイネットワークを介して送受信する情報共有システムにおける前記ノード装置であって、
前記共用情報と、前記共用情報のバージョンを示すバージョン情報とを記憶する記憶手段と、
前記共用情報と、前記共用情報のバージョンを示すバージョン情報と、前記オーバーレイネットワークで送受信される前記共用情報のバージョンを示すバージョン情報を含むデータの転送先を規定するルーティングテーブルとを記憶し、前記ルーティングテーブルに従って送信先を定める他の前記ノード装置から、前記バージョン情報を含む前記データを受信するデータ受信手段と、を備え、
前記データには、前記データの送信元の前記ノード装置が記憶する前記共用情報の前記バージョン情報が含まれ、前記データが１以上の前記ノード装置を中継されていく際に、前記データを中継する前記ノード装置が記憶する前記共用情報の前記バージョン情報が前記データに付加されることで前記データには複数の他の前記ノード装置に記憶されている前記共用情報の前記バージョン情報が含まれるものであって、
前記ノード装置は、さらに、
前記受信された１つの前記データに含まれる複数の前記バージョン情報と、前記記憶手段が記憶する前記共用情報の前記バージョン情報とを比較し、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置に記憶されている前記共用情報のバージョンより古いかを少なくとも判別するバージョン判別手段と、
前記バージョン判別手段により、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置のうち所定数以上の前記ノード装置に記憶されている前記共用情報のバージョンより古いと判別された場合には、前記記憶手段が記憶する前記共用情報のバージョンよりも新しいバージョンの前記共用情報を記憶する他の前記ノード装置から前記共用情報を取得し、前記記憶手段が記憶する前記共用情報を更新する共用情報更新手段と、
を備えることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記バージョン判別手段により、前記記憶手段が記憶する前記共用情報のバージョンが古いと判別された場合には、複数の前記ノード装置のうちから特別に選定された特定ノード装置に対して前記共用情報の最新バージョンを照会する照会手段を更に備え、
前記共用情報更新手段は、前記記憶手段が記憶する前記共用情報のバージョンが前記最新バージョンより古い場合に、前記最新バージョンを示す共用情報を記憶する他の前記ノード装置から前記共用情報を取得し、前記記憶手段が記憶する前記共用情報を更新することを特徴とするノード装置。
【請求項３】
ネットワークを介して互いに接続可能な複数のノード装置により形成されたオーバーレイネットワークを有し、夫々の前記ノード装置が共通に使用する共用情報を、前記オーバーレイネットワークを介して送受信する情報共有システムにおける前記ノード装置に含まれるコンピュータを、
前記共用情報と、前記共用情報のバージョンを示すバージョン情報とを記憶する記憶手段、
前記共用情報と、前記共用情報のバージョンを示すバージョン情報と、前記オーバーレイネットワークで送受信される前記共用情報のバージョンを示すバージョン情報を含むデータの転送先を規定するルーティングテーブルとを記憶し、前記ルーティングテーブルに従って送信先を定める他の前記ノード装置から、前記バージョン情報を含む前記データを受信するデータ受信手段、を備え、
前記データには、前記データの送信元の前記ノード装置が記憶する前記共用情報の前記バージョン情報が含まれ、前記データが１以上の前記ノード装置を中継されていく際に、前記データを中継する前記ノード装置が記憶する前記共用情報の前記バージョン情報が前記データに付加されることで前記データには複数の他の前記ノード装置に記憶されている前記共用情報の前記バージョン情報が含まれるものであって、
さらに、
前記受信された１つの前記データに含まれる複数の前記バージョン情報と、前記記憶手段が記憶する前記共用情報の前記バージョン情報とを比較し、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置に記憶されている前記共用情報のバージョンより古いかを少なくとも判別するバージョン判別手段、及び
前記バージョン判別手段により、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置のうち所定数以上の前記ノード装置に記憶されている前記共用情報のバージョンより古いと判別された場合には、前記記憶手段が記憶する前記共用情報のバージョンよりも新しいバージョンの前記共用情報を記憶する他の前記ノード装置から前記共用情報を取得し、前記記憶手段が記憶する前記共用情報を更新する共用情報更新手段として機能させることを特徴とする共用情報更新処理プログラム。
【請求項４】
ネットワークを介して互いに接続可能な複数のノード装置により形成されたオーバーレイネットワークを有し、夫々の前記ノード装置が共通に使用する共用情報を、前記オーバーレイネットワークを介して送受信する情報共有システムにおける共用情報更新方法であって、
前記共用情報と、前記共用情報のバージョンを示すバージョン情報とを記憶する記憶手段を備える前記ノード装置が、前記共用情報と、前記共用情報のバージョンを示すバージョン情報と、前記オーバーレイネットワークで送受信される前記共用情報のバージョンを示すバージョン情報を含むデータの転送先を規定するルーティングテーブルとを記憶し、前記ルーティングテーブルに従って送信先を定める他の前記ノード装置から、前記バージョン情報を含む前記データを受信する工程と、を備え、
前記データには、前記データの送信元の前記ノード装置が記憶する前記共用情報の前記バージョン情報が含まれ、前記データが１以上の前記ノード装置を中継されていく際に、前記データを中継する前記ノード装置が記憶する前記共用情報の前記バージョン情報が前記データに付加されることで前記データには複数の他の前記ノード装置に記憶されている前記共用情報の前記バージョン情報が含まれるものであって、
さらに、
前記記憶手段を備える前記ノード装置が、前記受信された１つの前記データに含まれる複数の前記バージョン情報と、前記記憶手段が記憶する前記共用情報の前記バージョン情報とを比較し、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置に記憶されている前記共用情報のバージョンより古いかを少なくとも判別する工程と、
前記記憶手段を備える前記ノード装置が、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置のうち所定数以上の前記ノード装置に記憶されている前記共用情報のバージョンより古いと判別した場合には、前記記憶手段が記憶する前記共用情報のバージョンよりも新しいバージョンの前記共用情報を記憶する他の前記ノード装置から前記共用情報を取得し、前記記憶手段が記憶する前記共用情報を更新する工程と、
を含むことを特徴とする共用情報更新方法。
【請求項５】
ネットワークを介して互いに接続可能な複数のノード装置により形成されたオーバーレイネットワークを有し、夫々の前記ノード装置が共通に使用する共用情報を、前記オーバーレイネットワークを介して送受信する情報共有システムであって、
前記ノード装置は、
前記共用情報と、前記共用情報のバージョンを示すバージョン情報とを記憶する記憶手段と、
前記共用情報と、前記共用情報のバージョンを示すバージョン情報と、前記オーバーレイネットワークで送受信される前記共用情報のバージョンを示すバージョン情報を含むデータの転送先を規定するルーティングテーブルとを記憶し、前記ルーティングテーブルに従って送信先を定める他の前記ノード装置から、前記バージョン情報を含む前記データを受信するデータ受信手段と、を備え、
前記データには、前記データの送信元の前記ノード装置が記憶する前記共用情報の前記バージョン情報が含まれ、前記データが１以上の前記ノード装置を中継されていく際に、前記データを中継する前記ノード装置が記憶する前記共用情報の前記バージョン情報が前記データに付加されることで前記データには複数の他の前記ノード装置に記憶されている前記共用情報の前記バージョン情報が含まれるものであって、
前記ノード装置は、さらに、
前記受信された１つの前記データに含まれる複数の前記バージョン情報と、前記記憶手段が記憶する前記共用情報の前記バージョン情報とを比較し、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置に記憶されている前記共用情報のバージョンより古いかを少なくとも判別するバージョン判別手段と、
前記バージョン判別手段により、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置のうち所定数以上の前記ノード装置に記憶されている前記共用情報のバージョンより古いと判別された場合には、前記記憶手段が記憶する前記共用情報のバージョンよりも新しいバージョンの前記共用情報を記憶する他の前記ノード装置から前記共用情報を取得し、前記記憶手段が記憶する前記共用情報を更新する共用情報更新手段と、
を備えることを特徴とする情報共有システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の情報共有システム等に関し、特に、各ノード装置に記憶されている共用情報を更新するための技術分野に関する。
【背景技術】
【０００２】
この種のピアツーピア型の情報共有システムにおいては、非特許文献１に開示されるように、例えば、分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用してオーバーレイネットワークが構築されており、各ノード装置が、当該オーバーレイネットワークに参加している全てのノード装置へのリンク情報（例えば、ＩＰアドレス及びポート番号）を認識しているわけではなく、参加の際などに得られる一部のノード装置へのリンク情報だけを保持しており、かかるリンク情報に基づき、データの問い合わせ等を行うようになっている。
【非特許文献１】「分散ハッシュテーブルの軽量な負荷分散手法の検討」  社団法人  電子情報通信学会  信学技報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、このようなピアツーピア型の情報共有システムにおいて各ノード装置に記憶されているファームウェア、アプリケーションソフトウェアや各種設定ファイル等の共通に使用される共用情報を更新（バージョンアップやアップデート）するに当たって、例えば所定のサーバから、更新を促す専用のメッセージを各ノード装置に対して配信して更新があった旨を各ノード装置に伝えることで、各ノード装置が、当該共用情報を管理している管理サーバから最新の共用情報をダウンロードすることが信頼性を確保できる方法といえる。
【０００４】
しかしながら、上記更新を促す専用のメッセージの送信時に何らかの理由（例えば、ユーザによる電源ＯＦＦやログアウト、停電、故障、ネットワーク不調等の理由）で、ノード装置がオーバーレイネットワークに参加していなかった（つまり、脱退（離脱））場合、当該ノード装置は、改めて更新を促す専用のメッセージが配信されるまで共用情報の更新の必要性に気づかないという問題がある。
【０００５】
また、各ノード装置が、上記管理サーバに接続して共用情報のダウンロードを行うため、管理サーバに対してアクセス集中により過大な負担を与えるという問題がある。
【０００６】
本発明は、以上の問題等に鑑みてなされたものであり、サーバ等の特定の装置に過大な負荷を与えることなく、速やかにかつ確実に、各ノード装置における共用情報を更新することが可能なノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに接続可能な複数のノード装置により形成されたオーバーレイネットワークを有し、夫々の前記ノード装置が共通に使用する共用情報を、前記オーバーレイネットワークを介して送受信する情報共有システムにおける前記ノード装置であって、前記共用情報と、前記共用情報のバージョンを示すバージョン情報とを記憶する記憶手段と、前記共用情報と、前記共用情報のバージョンを示すバージョン情報と、前記オーバーレイネットワークで送受信される前記共用情報のバージョンを示すバージョン情報を含むデータの転送先を規定するルーティングテーブルとを記憶し、前記ルーティングテーブルに従って送信先を定める他の前記ノード装置から、前記バージョン情報を含む前記データを受信するデータ受信手段と、を備え、前記データには、前記データの送信元の前記ノード装置が記憶する前記共用情報の前記バージョン情報が含まれ、前記データが１以上の前記ノード装置を中継されていく際に、前記データを中継する前記ノード装置が記憶する前記共用情報の前記バージョン情報が前記データに付加されることで前記データには複数の他の前記ノード装置に記憶されている前記共用情報の前記バージョン情報が含まれるものであって、前記ノード装置は、さらに、前記受信された１つの前記データに含まれる複数の前記バージョン情報と、前記記憶手段が記憶する前記共用情報の前記バージョン情報とを比較し、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置に記憶されている前記共用情報のバージョンより古いかを少なくとも判別するバージョン判別手段と、前記バージョン判別手段により、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置のうち所定数以上の前記ノード装置に記憶されている前記共用情報のバージョンより古いと判別された場合には、前記記憶手段が記憶する前記共用情報のバージョンよりも新しいバージョンの前記共用情報を記憶する他の前記ノード装置から前記共用情報を取得し、前記記憶手段が記憶する前記共用情報を更新する共用情報更新手段と、を備えることを特徴とする。
【０００８】
この発明によれば、夫々のノード装置が接続相手のノード装置に対して所定のデータを送信する場合には、当該データ中に自己が記憶する共用情報のバージョンを示すバージョン情報を記述して送信するものであり、当該送信されてきたバージョン情報が記述されたデータを受信し、そのデータに記述されたバージョン情報と、自己が記憶する共用情報のバージョン情報とを比較し、自己が記憶する共用情報のバージョンが、他のノード装置に記憶されている共用情報のバージョンより古いか否かを少なくとも判別し、自己が記憶する共用情報のバージョンが古いと判別された場合には、前記自己が記憶する共用情報のバージョンよりも新しいバージョンの共用情報を記憶する前記他のノード装置から当該共用情報を取得し、自己が記憶する共用情報を更新するようにしたので、ピアツーピア型の情報共有システムであっても、サーバ等の特定の装置に過大な負荷を与えることなく、より速やかにかつ確実に、各ノード装置における共用情報を更新することができる。
【００１７】
また、請求項２に記載の発明は、請求項１に記載のノード装置において、前記バージョン判別手段により、自己が記憶する共用情報のバージョンが古いと判別された場合には、前記複数のノード装置のうちから特別に選定された特定ノード装置に対して前記共用情報の最新バージョンを照会する照会手段を更に備え、前記共用情報更新手段は、自己が記憶する共用情報のバージョンが最新バージョンより古い場合に、前記最新のバージョンの共用情報を記憶する前記他のノード装置から当該共用情報を取得し、自己が記憶する共用情報を更新することを特徴とする。
【００１８】
この発明によれば、自己が記憶する共用情報のバージョンが古いと判別された場合には、前記複数のノード装置のうちから特別に選定された特定ノード装置に対して前記共用情報の最新バージョンを照会するようにしたので、サーバ等の特定の装置に過大な負荷を与えることなく、より速やかにかつ確実に、各ノード装置における共用情報を更新することができると共に、容易に、クラッキング等の防止ができ信頼性を確保することができる。
【００２３】
また、請求項３に記載の共用情報更新処理プログラムは、ネットワークを介して互いに接続可能な複数のノード装置により形成されたオーバーレイネットワークを有し、夫々の前記ノード装置が共通に使用する共用情報を、前記オーバーレイネットワークを介して送受信する情報共有システムにおける前記ノード装置に含まれるコンピュータを、前記共用情報と、前記共用情報のバージョンを示すバージョン情報とを記憶する記憶手段、前記共用情報と、前記共用情報のバージョンを示すバージョン情報と、前記オーバーレイネットワークで送受信される前記共用情報のバージョンを示すバージョン情報を含むデータの転送先を規定するルーティングテーブルとを記憶し、前記ルーティングテーブルに従って送信先を定める他の前記ノード装置から、前記バージョン情報を含む前記データを受信するデータ受信手段、を備え、前記データには、前記データの送信元の前記ノード装置が記憶する前記共用情報の前記バージョン情報が含まれ、前記データが１以上の前記ノード装置を中継されていく際に、前記データを中継する前記ノード装置が記憶する前記共用情報の前記バージョン情報が前記データに付加されることで前記データには複数の他の前記ノード装置に記憶されている前記共用情報の前記バージョン情報が含まれるものであって、さらに、前記受信された１つの前記データに含まれる複数の前記バージョン情報と、前記記憶手段が記憶する前記共用情報の前記バージョン情報とを比較し、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置に記憶されている前記共用情報のバージョンより古いかを少なくとも判別するバージョン判別手段、及び前記バージョン判別手段により、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置のうち所定数以上の前記ノード装置に記憶されている前記共用情報のバージョンより古いと判別された場合には、前記記憶手段が記憶する前記共用情報のバージョンよりも新しいバージョンの前記共用情報を記憶する他の前記ノード装置から前記共用情報を取得し、前記記憶手段が記憶する前記共用情報を更新する共用情報更新手段として機能させることを特徴とする。
【００２４】
また、請求項４に記載の発明は、ネットワークを介して互いに接続可能な複数のノード装置により形成されたオーバーレイネットワークを有し、夫々の前記ノード装置が共通に使用する共用情報を、前記オーバーレイネットワークを介して送受信する情報共有システムにおける共用情報更新方法であって、前記共用情報と、前記共用情報のバージョンを示すバージョン情報とを記憶する記憶手段を備える前記ノード装置が、前記共用情報と、前記共用情報のバージョンを示すバージョン情報と、前記オーバーレイネットワークで送受信される前記共用情報のバージョンを示すバージョン情報を含むデータの転送先を規定するルーティングテーブルとを記憶し、前記ルーティングテーブルに従って送信先を定める他の前記ノード装置から、前記バージョン情報を含む前記データを受信する工程と、を備え、前記データには、前記データの送信元の前記ノード装置が記憶する前記共用情報の前記バージョン情報が含まれ、前記データが１以上の前記ノード装置を中継されていく際に、前記データを中継する前記ノード装置が記憶する前記共用情報の前記バージョン情報が前記データに付加されることで前記データには複数の他の前記ノード装置に記憶されている前記共用情報の前記バージョン情報が含まれるものであって、さらに、前記記憶手段を備える前記ノード装置が、前記受信された１つの前記データに含まれる複数の前記バージョン情報と、前記記憶手段が記憶する前記共用情報の前記バージョン情報とを比較し、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置に記憶されている前記共用情報のバージョンより古いかを少なくとも判別する工程と、前記記憶手段を備える前記ノード装置が、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置のうち所定数以上の前記ノード装置に記憶されている前記共用情報のバージョンより古いと判別した場合には、前記記憶手段が記憶する前記共用情報のバージョンよりも新しいバージョンの前記共用情報を記憶する他の前記ノード装置から前記共用情報を取得し、前記記憶手段が記憶する前記共用情報を更新する工程と、を含むことを特徴とする。
【００２５】
また、請求項５に記載の発明は、ネットワークを介して互いに接続可能な複数のノード装置により形成されたオーバーレイネットワークを有し、夫々の前記ノード装置が共通に使用する共用情報を、前記オーバーレイネットワークを介して送受信する情報共有システムであって、前記ノード装置は、前記共用情報と、前記共用情報のバージョンを示すバージョン情報とを記憶する記憶手段と、前記共用情報と、前記共用情報のバージョンを示すバージョン情報と、前記オーバーレイネットワークで送受信される前記共用情報のバージョンを示すバージョン情報を含むデータの転送先を規定するルーティングテーブルとを記憶し、前記ルーティングテーブルに従って送信先を定める他の前記ノード装置から、前記バージョン情報を含む前記データを受信するデータ受信手段と、を備え、前記データには、前記データの送信元の前記ノード装置が記憶する前記共用情報の前記バージョン情報が含まれ、前記データが１以上の前記ノード装置を中継されていく際に、前記データを中継する前記ノード装置が記憶する前記共用情報の前記バージョン情報が前記データに付加されることで前記データには複数の他の前記ノード装置に記憶されている前記共用情報の前記バージョン情報が含まれるものであって、前記ノード装置は、さらに、前記受信された１つの前記データに含まれる複数の前記バージョン情報と、前記記憶手段が記憶する前記共用情報の前記バージョン情報とを比較し、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置に記憶されている前記共用情報のバージョンより古いかを少なくとも判別するバージョン判別手段と、前記バージョン判別手段により、前記記憶手段が記憶する前記共用情報のバージョンが、複数の他の前記ノード装置のうち所定数以上の前記ノード装置に記憶されている前記共用情報のバージョンより古いと判別された場合には、前記記憶手段が記憶する前記共用情報のバージョンよりも新しいバージョンの前記共用情報を記憶する他の前記ノード装置から前記共用情報を取得し、前記記憶手段が記憶する前記共用情報を更新する共用情報更新手段と、を備えることを特徴とする。
【発明の効果】
【００２６】
本発明によれば、夫々のノード装置が接続相手のノード装置に対して所定のデータを送信する場合には、当該データ中に自己が記憶する共用情報のバージョンを示すバージョン情報を記述して送信するものであり、当該送信されてきたバージョン情報が記述されたデータを受信し、そのデータに記述されたバージョン情報と、自己が記憶する共用情報のバージョン情報とを比較し、自己が記憶する共用情報のバージョンが、他のノード装置に記憶されている共用情報のバージョンより古いか否かを少なくとも判別し、自己が記憶する共用情報のバージョンが古いと判別された場合には、前記自己が記憶する共用情報のバージョンよりも新しいバージョンの共用情報を記憶する前記他のノード装置から当該共用情報を取得し、自己が記憶する共用情報を更新するようにしたので、ピアツーピア型の情報共有システムであっても、サーバ等の特定の装置に過大な負荷を与えることなく、より速やかにかつ確実に、各ノード装置における共用情報を更新することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００２８】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、情報共有システムの一例としてのコンテンツ配信システムの概要構成等について説明する。
【００２９】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００３０】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ,４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ,５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界の通信ネットワーク）８が構築されている。なお、図１の例におけるネットワーク（通信ネットワーク）８には、データ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００３１】
コンテンツ配信システムＳは、このようなネットワーク８を介して相互に接続された複数のノード装置ｎ１，ｎ２・・・ｎ２１を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている（なお、実際には、これ以上のノード装置が存在することになる）。また、各ノード装置ｎ１〜ｎ２１には、固有の製造番号及びＩＰ（Internet Protocol）アドレス（グローバルＩＰアドレス）が割り当てられている。なお、製造番号及びＩＰアドレスは、複数のノード装置間で重複しないものである。
【００３２】
そして、このコンテンツ配信システムＳにおいては、特定のアルゴリズム、例えば、ＤＨＴを利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバーレイネットワーク９が構築されることになる。つまり、このオーバーレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワーク（論理的なネットワーク）を意味する。
【００３３】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提としており、このオーバーレイネットワーク９（図１の上部枠１００内）に配置されたノード装置ｎ１〜ｎ１５を、オーバーレイネットワーク９に参加しているノード装置（以下、このようなノード装置ｎ１〜ｎ１５を「参加ノードｎｎ」と総称する）という。言い換えれば、オーバーレイネットワーク９は、参加ノードｎｎの参加により形成されている。このようなオーバーレイネットワーク９への参加は、参加していないノード装置ｎ１６〜ｎ２１（以下、「未参加ノードｎｍ」と総称する）が、任意の参加ノードｎｎに対して参加要求を示す参加要求情報としての参加メッセージを送信することによって行われる。
【００３４】
また、各参加ノードｎｎは、固有の識別情報としてのノードＩＤを有しており、当該ノードＩＤは、例えば、ＩＰアドレスあるいは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化した値（例えば、ｂｉｔ長が１６０ｂｉｔ）であり、一つのＩＤ空間に偏りなく分散して配置されることになる。
【００３５】
このように共通のハッシュ関数により求められた（ハッシュ化された）ノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【００３６】
また、各参加ノードｎｎは、夫々、ＤＨＴを保持している。このＤＨＴは、オーバーレイネットワーク９上における各種メッセージの転送先を規定しており、具体的には、ノードＩＤ空間内で適度に離れた参加ノードｎｎのノードＩＤとそのＩＰアドレス及びポート番号等の組が複数登録されたルーティングテーブル（転送先テーブル）が含まれている。
【００３７】
図２は、参加ノードｎ１が保持するＤＨＴのルーティングテーブルの一例を示す図であり、図３は、ＤＨＴのノードＩＤ空間の一例を示す概念図である。
【００３８】
なお、図２及び図３の例においては、説明の便宜上、ノードＩＤのｂｉｔ長を２ｂｉｔ×３桁＝６ｂｉｔとし、各桁を４進数（０〜３の整数）で表している（実際には、もっと長いｂｉｔ長を用い、各桁も例えば４ｂｉｔに区切って０〜ｆの１６進数で表現する）。
【００３９】
図２の例において、ＤＨＴのルーティングテーブルは、レベル１〜レベル３のテーブルからなり（複数のレベルに区分されており）、各レベルのテーブルエントリーには、エリア毎に、ノードＩＤとこれに対応する参加ノードｎｎのＩＰアドレス及びポート番号が対応付けられて登録されている。各レベルのテーブルにおける各エリアは、ＤＨＴのノードＩＤ空間を分割することにより得られるエリアである。例えば、図３に示すように、レベル１では、ＤＨＴのノードＩＤ空間全体が４分割され、“０００”〜“０３３”のノードＩＤが存在するエリアを０ＸＸのエリア、“１００”〜“１３３” のノードＩＤが存在するエリアを１ＸＸのエリア、“２００”〜“２３３” のノードＩＤが存在するエリアを２ＸＸのエリア、“３００”〜“３３３” のノードＩＤが存在するエリアを３ＸＸのエリアとする。また、レベル２では、レベル１のエリア（つまり、０ＸＸ〜３ＸＸのエリア）が更に４分割、例えば１ＸＸのエリアが４分割され、“１００”〜“１０３” のノードＩＤが存在するエリアを１０Ｘのエリア、“１１０”〜“１１３” のノードＩＤが存在するエリアを１１Ｘのエリア、“１２０”〜“１２３” のノードＩＤが存在するエリアを１２Ｘのエリア、“１３０”〜“１３３” のノードＩＤが存在するエリアを１３Ｘのエリアとする。
【００４０】
そして、例えば、参加ノードｎ１のノードＩＤが“１２２”とすると、図２に示すように、かかる参加ノードｎ１のレベル１における１ＸＸのエリア（自己（つまり、自ノード装置）が存在するエリア）のテーブルには、自己のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録され、自己が存在しないエリア（つまり、０ＸＸのエリア、２ＸＸのエリア、及び３ＸＸのエリア）には、夫々、他の任意の参加ノードｎｎのノードＩＤ及びＩＰアドレス等が登録されている。
【００４１】
また、かかる参加ノードｎ１のレベル２における１２Ｘのエリア（自己が存在するエリア）のテーブルには、図２に示すように、自己のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録され、自己が存在しないエリア（つまり、１０Ｘのエリア、１１Ｘのエリア、及び１３Ｘのエリア）等には、夫々、他の任意の参加ノードｎｎのノードＩＤ及びＩＰアドレス等が登録されている。
【００４２】
更に、かかる参加ノードｎ１のレベル３には、図２に示すように、ノードＩＤが“１２０”〜“１２２”のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録されている。
【００４３】
なお、図２及び図３の例では、ノードＩＤのｂｉｔ長を３桁×２ｂｉｔとしたので、レベル１〜３の３レベル分のテーブルで網羅できるが、ノードＩＤのｂｉｔ長が増せば、その分のテーブルが必要となる（例えば、ノードＩＤのｂｉｔ長を１６桁×４ｂｉｔとした場合、１６レベル分のテーブルが必要となる）。
【００４４】
このように、本実施形態におけるＤＨＴのルーティングテーブルでは、レベルが上がるほど、エリアが狭まっていくようになっている。
【００４５】
このようなＤＨＴは、未参加ノードｎｍがオーバーレイネットワーク９に参加する際に与えられることになる。
【００４６】
図４は、未参加ノードがオーバーレイネットワーク９に参加する際のＤＨＴのノードＩＤ空間における参加要求メッセージの流れの一例を示す概念図である。
【００４７】
図４に示す例において、例えば、未参加ノードｎ１６は、例えば自己のＩＰアドレスを上記ハッシュ関数によりハッシュ化してノードＩＤ（例えば、“１２３”とする）、を生成し、当該ノードＩＤ、自己のＩＰアドレス及びポート番号が記述された参加要求メッセージを参加ノードｎ１５に送信すると、参加ノードｎ１５は、当該参加要求メッセージを受信し、自己のＤＨＴのレベル１のテーブルを参照して、参加要求メッセージに記述されたノードＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えば参加ノードｎ１３のＩＰアドレス及びポート番号を取得し、そのＩＰアドレス及びポート番号宛てに（参加ノードｎ１３宛てに）、上記参加要求メッセージを転送する。また、自己のＤＨＴのレベル１のテーブルに未参加ノードｎ１６のノードＩＤが登録可能であれば、ＩＰアドレス及びポート番号を対応付けて登録する。
【００４８】
これに対して、参加ノードｎ１３は、当該参加要求メッセージを受信し、自己のＤＨＴのレベル２のテーブルを参照して、当該参加要求メッセージに記述された未参加ノードｎ１６のノードＩＤと最も近いノードＩＤを有する参加ノードｎ１のＩＰアドレス及びポート番号を取得し、そのＩＰアドレス及びポート番号宛てに（参加ノードｎ１宛てに）、上記参加要求メッセージを転送する。また、自己のＤＨＴのレベル２のテーブルに未参加ノードｎ１６のノードＩＤが登録可能であれば、ＩＰアドレス及びポート番号を対応付けて登録する。
【００４９】
これに対して、参加ノードｎ１は、当該参加要求メッセージを受信し、自己のＤＨＴのレベル３のテーブルを参照して、当該参加要求メッセージに記述された未参加ノードｎ１６のノードＩＤと最も近いノードＩＤが自分であることを認識するので、もうメッセージ転送をしなくなる。また、自己のＤＨＴのレベル３のテーブルに未参加ノードｎ１６のノードＩＤ、ＩＰアドレス及びポート番号を対応付けて登録（例えば、図２の“未登録”の部分）する。
【００５０】
以上の流れの過程において、当該参加要求メッセージを受信した参加ノードｎ１５、参加ノードｎ１３、及び参加ノードｎ１は、未参加ノードｎ１６に対して、ＤＨＴのルーティングテーブルの一部を（参加ノードｎ１５はレベル１のテーブルを、参加ノードｎ１３はレベル２のテーブルを、参加ノードｎ１はレベル３のテーブルを）含む参加応答メッセージ（図示せず）を、夫々送信する。
【００５１】
これに対して、未参加ノードｎ１６は、送信されてきた各ＤＨＴのルーティングテーブルを含む参加応答メッセージを受信して、当該参加応答メッセージに含まれる各ルーティングテーブルに基づいて、自己が使用するべきＤＨＴのルーティングテーブルを生成する（例えば、参加ノードｎ１５のレベル１のテーブルを自己のレベル１のテーブルとし、参加ノードｎ１３のレベル２のテーブルを自己のレベル２のテーブルとし、参加ノードｎ１のレベル３のテーブルを自己のレベル３のテーブルとする）。
【００５２】
なお、各参加ノードｎｎが別々のレベルのテーブルを返すのではなく、どの参加ノードｎｎからも全レベルのテーブル（すなわちルーティングテーブル全体）を返すようにして、未参加ノードｎｍがそれぞれのテーブルからテーブルエントリーを適宜、取捨選択して自己の新たなテーブルを作り上げても良い。
【００５３】
こうして生成されたＤＨＴのルーティングテーブルを得た未参加ノードｎ１６は、参加ノードｎ１６としてオーバーレイネットワーク９に参加することになり、参加ノードｎ１６は、自己が保存するコンテンツデータを公告するため、そのコンテンツＩＤ（後述する）が記述されたパブリッシュメッセージをＤＨＴのルーティングテーブルにしたがって送信することになる。
【００５４】
なお、上記流れは、未参加ノードｎ１６が、新たにオーバーレイネットワーク９に参加する場合ばかりでなく、一度脱退（例えば、脱退メッセージを管理元の参加ノードｎ１に送信することによる）した後、再度参加する場合にも適用することができる。
【００５５】
また、コンテンツ配信システムＳにおいては、未参加ノードｎｍによるオーバーレイネットワーク９への参加、若しくは参加ノードｎｎによるオーバーレイネットワーク９からの脱退が頻繁に行われるため、定期的に（例えば数十分から数時間間隔で）ＤＨＴの更新が必要かどうかが確認される（例えば、生存確認メッセージ）と共に、その更新情報がＤＨＴのルーティングテーブルに従って他の参加ノードｎｎに伝達されるようになっている。これにより、ＤＨＴを最新の状態に保つことが可能となる。
【００５６】
ところで、オーバーレイネットワーク９においては、様々なコンテンツ（例えば、映画や音楽等）データが複数の参加ノードｎｎに分散して保存（格納）されている。例えば、参加ノードｎ１には、タイトルがＸＸＸの映画のコンテンツデータが保存されており、一方、参加ノードｎ２には、タイトルがＹＹＹの映画のコンテンツデータが保存されるというように、互いに異なるコンテンツデータが、複数の参加ノードｎｎに分散されて保存される。
【００５７】
また、あるコンテンツデータは、１つの参加ノードｎｎにだけ保存されているとは限らず、複数の参加ノードｎｎに同じコンテンツデータが保存されうる。これらのコンテンツデータには、夫々、コンテンツ名（タイトル）等が付与されている。
【００５８】
そして、このように分散保存されているコンテンツデータの所在を示す所在情報（例えば、コンテンツデータが保存されている参加ノードｎｎのＩＰアドレス等）もまた、複数の参加ノードｎｎに分散して保存されている。例えば、あるコンテンツデータのコンテンツ名（或いは、当該コンテンツデータの先頭数バイトでも良い）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化され（つまり、参加ノードｎｎのＩＰアドレスのハッシュ値と同一のＩＤ空間に配置）、そのハッシュ値（当該ハッシュ値がコンテンツＩＤとなる）と最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する参加ノードｎｎ（当該コンテンツＩＤの管理元となる）に、当該コンテンツデータの所在情報が保存されることになる。つまり、同一のコンテンツデータ（コンテンツＩＤが同一）が、夫々、複数の参加ノードｎｎに保存されている場合であっても、かかるコンテンツデータの所在を示す所在情報（複数の参加ノードｎｎのＩＰアドレス等）は、１つの参加ノードｎｎで管理することができる（このようにコンテンツデータの所在を管理する参加ノードを、以下、「ルートノード」という）。なお、本実施形態においては、１のルートノードでは、１のコンテンツＩＤに対応するコンテンツデータの所在情報が保存される（つまり、ルートノードと上記所在情報とは１対１の関係にある）が、これに限定されるものではない）。
【００５９】
各参加ノードｎｎは、上記ＤＨＴによって、所望するコンテンツデータを発見することができる。
【００６０】
図５は、参加ノードがコンテンツデータの所在を問い合わせる際のＤＨＴのノードＩＤ空間における各種メッセージの流れの一例を示す概念図である。
【００６１】
図５に示す例において、あるコンテンツデータを取得（ダウンロード）したいユーザが使用する例えば参加ノードｎ４は、当該コンテンツデータのコンテンツＩＤが記述されたコンテンツ所在問合せ（検索）メッセージを他の参加ノードｎｎに対して送出することにより、当該コンテンツＩＤが記述されたコンテンツ所在問合せ（検索）メッセージは、いくつかの参加ノードｎｎ（以下、「中継ノード」という）を経由されて（各中継ノードにおいて、上記ＤＨＴのルーティングテーブルが参照されてコンテンツＩＤが転送される）そのコンテンツデータの所在を示す所在情報を保存しているルートノードに辿り着き、当該ルートノードから当該所在情報を含むコンテンツ所在返答メッセージを取得（受信）することが可能となり、取得した所在情報に基づいて上記コンテンツデータを保存している例えば参加ノードｎｎ（以下、「コンテンツ保持ノード」という）に接続し、そこから当該コンテンツデータを取得（ダウンロード）することが可能になる。各中継ノードは、受信したコンテンツ所在問合せ（検索）メッセージに記述されたコンテンツＩＤと、自己のＤＨＴのルーティングテーブルに登録されているノードＩＤとを比較して、次に転送すべき参加ノードｎｎを特定（例えば、上記のように、コンテンツＩＤの上位数桁がより多く一致するノードＩＤに対応する参加ノードｎｎのＩＰアドレス等を特定）し、そこにコンテンツ所在問合せ（検索）メッセージを転送することになる。
【００６２】
なお、参加ノードｎ４は、コンテンツ所在問合せ（検索）メッセージがルートノードに辿り着くまでの間に当該ルートノードと同じ所在情報をキャッシュしている参加ノードｎｎからコンテンツ所在返答メッセージを取得（受信）するようにしてもよい。
【００６３】
このようにオーバーレイネットワーク９に参加している各参加ノードｎｎには、ファームウェア、上述したＤＨＴを利用したメッセージの送受信等の各種処理を実行するためのソフトウェア（実行モジュール等のプログラム）や各種設定ファイル等の共通に使用される共用情報が記憶されており、かかる共用情報は、適宜、例えばシステム運営者等により更新（バージョンアップやアップデート）され、当該システム運営者により選定された常にオーバーレイネットワーク９に参加している信頼性の高い参加ノードｎｎ（以下、「スーパーノード」（複数の参加ノードｎｎのうちから特別に選定された特定ノード装置の一例）という）に記憶される。
【００６４】
本実施形態においては、コンテンツ配信システムＳ全体で（つまり、オーバーレイネットワーク９に参加している全ての参加ノードｎｎで）バージョンを揃える必要のある共用情報を、オーバーレイネットワーク９に参加している全ての参加ノードｎｎに迅速かつ効率良く行き渡らせるために、各参加ノードｎｎが接続相手の参加ノードｎｎに対して上述した任意のメッセージを送信する場合には、自己が記憶する共用情報のバージョンを示すバージョン情報としてのバージョン番号を当該メッセージ中（例えば、ヘッダ部）に記述するようになっている。
【００６５】
ここで、バージョンとは、共用情報の新しさを意味するものであり、共用情報が更新される度にバージョン番号が上がっていく（つまり、バージョンアップ、アップデート）ものである。
【００６６】
バージョン番号が記述されたメッセージを受信した参加ノードｎｎは、記述されたバージョン番号と、自己（自ノード）が記憶する共用情報のバージョン番号とを比較し、自己が記憶する共用情報のバージョンが、他の参加ノードｎｎに記憶されている共用情報のバージョンより古い場合には、自己が記憶する共用情報のバージョンよりも新しいバージョンの共用情報を記憶している参加ノードｎｎ（例えば、スーパーノード）から当該共用情報を取得し、自己が記憶する共用情報を更新する。これにより、バージョンを揃えるための専用のメッセージを送信することなく、速やかにかつ確実に、さらに、空気感染的に各参加ノードｎｎの共有情報を更新していくことができる。
【００６７】
図６は、コンテンツ所在問合せメッセージの内容の一例を示す図である。
【００６８】
図６に示すコンテンツ所在問合せメッセージ５１は、メッセージヘッダ５２と、メッセージ本体５３から構成されている。メッセージヘッダ５２には、当該メッセージの送信元の情報５２ｂ、当該メッセージの転送元の情報５２ｃ乃至５２ｆ、転送回数５２ｇ、及びメッセージ種別５２ｈが記述されている。このメッセージヘッダ５２から、当該コンテンツ所在問合せメッセージ５１は、参加ノードｎｎを４回転送されていることがわかる。
【００６９】
また、図６に示すように、メッセージの送信元の情報５２ｂ及びメッセージの転送元の情報５２ｃ乃至５２ｆには、夫々のＩＰアドレス及びポート番号、ノードＩＤ、バージョン番号、及びネット環境評価値が記述されている。ネット環境評価値とは、ネットワーク接続環境を示すネット環境情報であり、ここでは、Ａ〜Ｅの５段階の評価で示されている。例えば、評価値Ａは有効帯域（データの転送速度）が２０Ｍｂｐｓ以上であり、評価値Ｂは有効帯域（データの転送速度）が１０Ｍｂｐｓ以上であり、評価値Ｃは有効帯域（データの転送速度）が５Ｍｂｐｓ以上であり、評価値Ｄは有効帯域（データの転送速度）が数Ｋｂｐｓ以上であり、評価値Ｅはダイヤル回線である。つまり、評価値ＥからＡにいくにしたがってネットワーク環境が良く（ダウンロード時間が速い）なっている。なお、本実施形態においては、ネット環境評価値の一例として、有効帯域（データの転送速度）を例にとったが、これに限定されるものではなく、例えば、定点位置からのＨＯＰ数、或いはＩＰアドレスのセグメント情報であってもよい。
【００７０】
また、メッセージ本体５３には、コンテンツ所在問合せメッセージ５１にて問合せ対象となるコンテンツデータのコンテンツＩＤ、及び返答要求数が記述されている。
【００７１】
次に、図７を参照して、参加ノードｎｎ及び未参加ノードｎｍの構成及び機能について説明する。
【００７２】
図７は、参加ノードｎｎ及び未参加ノードｎｍの概要構成例を示す図である。
【００７３】
参加ノードｎｎ及び未参加ノードｎｍは、夫々、図７に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、各種データ（例えば、コンテンツデータ、所在情報、ＤＨＴ）及びプログラム等の共用情報、当該共用情報のバージョン番号等を記憶保存（格納）するためのＨＤＤ等から構成された自ノードバージョン情報記憶手段、他ノードバージョン情報記憶手段、及び特定ノード記憶手段としての記憶部１２と、受信されたコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他の参加ノードｎｎ又は未参加ノードｎｍとの間の情報の通信制御を行うための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、及び通信部２０は、バス２２を介して相互に接続されている。
【００７４】
このような構成において、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラム（本発明の共用情報更新処理プログラムを含む）を読み出して実行することにより、全体を統括制御すると共に、本発明のデータ送信手段、データ転送手段、データ受信手段、バージョン判別手段、共用情報更新手段、照会手段、及び特定識別情報判断手段等として機能し、後述する各種処理を行うようになっている。
【００７５】
なお、上記共用情報更新処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【００７６】
[２．コンテンツ配信システムの動作]
次に、図８乃至図１０を参照して、共用情報の更新が行われるに当たってのコンテンツ配信システムＳの動作について説明する。
【００７７】
図８は、メッセージの送信元の参加ノードｎｎにおける制御部１１の処理を示すフローチャートであり、図９は、メッセージ受信した参加ノードｎｎにおける制御部１１の処理を示すフローチャートであり、図１０は、図９に示すステップＳ１５における共用情報更新処理の詳細を示すフローチャートである。
【００７８】
図８に示す処理は、例えば、ユーザによる入力部２１からのコンテンツ要求操作（例えば、コンテンツリストから所望のコンテンツのタイトルを指定）により開始され、ステップＳ１では、参加ノードｎｎの制御部１１は、自己のＤＨＴのルーティングテーブルを参照して、指定されたコンテンツデータのコンテンツＩＤと最も近い（例えば、コンテンツＩＤの上位数桁がより多く一致する）ノードＩＤに対応する参加ノードｎｎを、上記コンテンツ所在問合せメッセージの送信先として特定し、そのＩＰアドレス及びポート番号を取得する。
【００７９】
次いで、ステップＳ２では、制御部１１は、上記コンテンツ所在問合せメッセージのヘッダに、自己（自ノード）のＩＰアドレス及びポート番号、ノードＩＤ、共用情報のバージョン番号、及びネット環境評価値（例えば、記憶部１２に予め記憶しておく）を記述し、メッセージの本体にコンテンツＩＤ等を記述して、データ送信手段として、当該コンテンツ所在問合せメッセージを、上記取得したＩＰアドレス及びポート番号の参加ノードｎｎに対してネットワーク８等を介して送信し、当該処理を終了する。
【００８０】
ここで、当該ヘッダには、各種プログラム、設定ファイル等の複数種類の共用情報の夫々のバージョン番号を記述されるようにしてもよい。例えば、ファームウェアの場合のバージョン番号は、“ＦＷ−ＶＸ（バージョンを示す変数）”とし、アプリケーションソフトウェアの場合のバージョン番号は、“ＡＰ−ＶＸ（バージョンを示す変数）”とし、設定ファイルの場合のバージョン番号は、“ＳＴ−ＶＸ（バージョンを示す変数）”とし、バージョンアップやアップデートする毎に、種別ごとに独立に、ＶＸが、１，２，３・・・と増加するようにしておく（例えば、FW-1024→FW-1025→FW-1026、AP-501→AP-502→AP-503、ST-7→ST-8といったように）。
【００８１】
なお、何の共用情報のバージョン番号をヘッダ中に記述するかは、任意であり、複数の共用情報のバージョン番号を列記しても良い。どう記述するかはシステムで予め定義しておく。
【００８２】
次に、図９に示す処理は、参加ノードｎｎの制御部１１が、データ受信手段として、メッセージを他の参加ノードｎｎから受信した場合に開始され、ステップＳ１１では、受信されたメッセージに応じた処理が行われる。
【００８３】
例えば、当該メッセージがコンテンツ所在問合せメッセージである場合には、制御部１１は、自己のＤＨＴのルーティングテーブルを参照して、メッセージの転送先があるか否かを判別し、メッセージの転送先がない場合、例えば、当該メッセージの本体に記述されたコンテンツＩＤと最も近い（例えば、コンテンツＩＤの上位数桁がより多く一致する）ノードＩＤが自己である場合（つまり、自己が当該コンテンツデータのルートノードである場合）には、コンテンツ所在返答メッセージのヘッダに、自己のＩＰアドレス及びポート番号、ノードＩＤ、共用情報のバージョン番号、及びネット環境評価値を記述し、メッセージの本体にコンテンツデータの所在情報等を記述して、これを、コンテンツ所在問合せメッセージの送信元である参加ノードｎｎに対して送信する。
【００８４】
一方、メッセージの転送先がある場合、例えば、当該メッセージの本体に記述されたコンテンツＩＤと最も近い（例えば、コンテンツＩＤの上位数桁がより多く一致する）ノードＩＤが他の参加ノードｎｎである場合には、制御部１１は、当該他の参加ノードｎｎを、上記コンテンツ所在問合せメッセージの転送先として特定し、そのＩＰアドレス及びポート番号をＤＨＴのルーティングテーブルを取得する。次いで、制御部１１は、上記コンテンツ所在問合せメッセージのヘッダに、自己のＩＰアドレス及びポート番号、ノードＩＤ、共用情報のバージョン番号、及びネット環境評価値を記述し、データ転送手段として、当該コンテンツ所在問合せメッセージを、上記取得したＩＰアドレス及びポート番号の参加ノードｎｎに対してネットワーク８等を介して送信する。
【００８５】
なお、当該メッセージが参加要求メッセージであり、他の参加ノードｎｎに転送される場合にも、同様に、参加要求メッセージのヘッダに、自己のＩＰアドレス及びポート番号、ノードＩＤ、共用情報のバージョン番号、及びネット環境評価値等が記述されることになる。
【００８６】
次いで、ステップＳ１２では、制御部１１は、受信した上記メッセージのヘッダに記述された全てのバージョン番号（例えば、図６に示す、当該メッセージの送信元の情報５２ｂ、及びメッセージの転送元の情報５２ｃ乃至５２ｆ中に含まれる全てのバージョン番号）と、自己が記憶する共用情報のバージョン番号とを比較（例えば、共用情報の種類毎に、バージョンを示す変数ＶＸの数値の大小を比較し、数値が大きい方をバージョンが新しいと認識）する。
【００８７】
そして、制御部１１は、バージョン判別手段として、自己が記憶する共用情報のバージョンが、他の参加ノードｎｎに記憶されている共用情報のバージョンより古いか否かを判別し（ステップＳ１３）、自己が記憶する共用情報のバージョンが古い場合（ステップＳ１３：Ｙ）、つまり、自己が記憶する共用情報中に、古いバージョンの共用情報がある場合には、ステップＳ１４に移行する。なお、ヘッダに複数種類の共用情報の夫々のバージョン番号が記述されていた場合には、全ての共用情報毎に、上記バージョン番号の比較が行われ、１つでも古いバージョンの共用情報がある場合には、ステップＳ１４に移行することになる。
【００８８】
一方、自己が記憶する共用情報のバージョンが古くない場合（ステップＳ１３：Ｎ）、つまり、自己が記憶する共用情報中に、古いバージョンの共用情報がない場合には、当該処理を終了する。
【００８９】
次いで、ステップＳ１４では、受信されたメッセージのヘッダから、自己が記憶する共用情報のバージョンよりも新しいバージョンの共用情報を記憶する参加ノードｎｎの情報（例えば、ＩＰアドレス及びポート番号、ノードＩＤ、共用情報のバージョン番号、及びネット環境評価値）を抽出し、これを、当該メッセージを受信した時間と対応付けて更新リストに登録（記憶部１２に記憶）する。なお、更新リストには、過去所定時間（例えば、２４時間）以内に受信したメッセージから抽出された参加ノードｎｎの情報のみを登録するようにしても良い（例えば、このステップＳ１４にて２４時間より前の参加ノードｎｎの情報を更新リストから削除する）。
【００９０】
なお、ヘッダに複数種類の共用情報の夫々のバージョン番号が記述されていた場合には、夫々の共用情報毎に、そのバージョン番号（自己が記憶する共用情報のバージョン番号より新しいバージョン番号に限る）に対応する共用情報を記憶する参加ノードｎｎの情報が更新リストに登録される。
【００９１】
次いで、制御部１１は、共用情報更新処理を行う（ステップＳ１５）。
【００９２】
この共用情報更新処理においては、図１０に示すように、制御部１１は、先ず、スーパーノードリストを記憶部１２から読み込む（ステップＳ１５１）。かかるスーパーノードリストは、例えばオーバーレイネットワーク９に参加する際に他の任意の参加ノードｎｎから取得されるものであり、ここには、上述したスーパーノードのＩＰアドレス及びポート番号、ノードＩＤ、共用情報のバージョン番号、及びネット環境評価値等が記述されている。
【００９３】
次いで、制御部１１は、更新リストを参照して、所定時間（例えば、過去２４時間）内に、更新リストに登録された参加ノードｎｎの数が所定数（例えば、１５）以上であるか否かを判別（複数種類の共用情報がある場合、共用情報毎に判別）し、所定数以上でない場合には（ステップＳ１５２：Ｎ）、ステップＳ１５３に移行する。
【００９４】
ここで、「所定数」をある数以上にすることで、悪意のあるユーザによりシステムの破壊を目的としたウイルスのようなファイルを感染させられることを防ぎセキュリティを向上させることができる。一方、更新リストに登録された参加ノードｎｎの数が所定数以上である場合には（ステップＳ１５２：Ｙ）、共用情報更新手段としての制御部１１は、更新リストを参照し、ネット環境評価値に基づいて共用情報を取得すべき他の参加ノードｎｎ（ここでは、スーパーノード以外の参加ノードｎｎ）を決定（これにより、スーパーノードへのアクセス集中を防止できる）、例えば環境評価値の高い（より“Ａ”に近い）参加ノードｎｎを選定し（なお、有効帯域（データの転送速度）ばかりでなく、定点位置からのＨＯＰ数、ＩＰアドレスのセグメント情報の夫々、或いはその組合せによって共用情報を取得すべき装置そして最適な参加ノードｎｎが選定されてもよい）、当該選定した参加ノードｎｎのＩＰアドレス等を取得して当該参加ノードｎｎに接続し、最新のバージョンを取得（ダウンロード）し（ステップＳ１５９）、ステップＳ１５６に移行する。
【００９５】
ステップＳ１５３では、制御部１１は、上記更新リストに登録された参加ノードｎｎ中にスーパーノードが含まれているか否かを判別する。つまり、更新リストに登録された識別情報としてのノードＩＤ（受信されたメッセージに記述されたノードＩＤ）が、スーパーノードリストに登録（記憶）された特定識別情報としてのノードＩＤと一致するか否かが特定識別情報判断手段としての制御部１１により判断される。
【００９６】
なお、更新リストに複数種類の共用情報の夫々のバージョン番号が記述されていた場合には、夫々の共用情報毎に、スーパーノードが含まれているか否かが判別される。
【００９７】
そして、スーパーノードが含まれている場合には（ステップＳ１５３：Ｙ）、ステップＳ１５４に移行し、スーパーノードが含まれていない場合には（ステップＳ１５３：Ｎ）、当該処理を終了する。
【００９８】
ステップＳ１５４では、制御部１１は、スーパーノードが複数であるか否かを判別（複数種類の共用情報がある場合、共用情報毎に判別）し、スーパーノードが複数である場合には（ステップＳ１５４：Ｙ）、ステップＳ１５５に移行し、スーパーノードが複数でない場合には（ステップＳ１５４：Ｎ）、ステップＳ１５７に移行する。
【００９９】
ステップＳ１５５では、共用情報更新手段としての制御部１１は、更新リスト又はスーパーノードリストを参照し、ネット環境評価値に基づいて共用情報を取得すべき参加ノードｎｎを決定、例えば環境評価値の高い（より“Ａ”に近い）スーパーノードを選定し（なお、有効帯域（データの転送速度）ばかりでなく、定点位置からのＨＯＰ数、ＩＰアドレスのセグメント情報の夫々、或いはその組合せによって共用情報を取得すべき装置そして最適な参加ノードｎｎが選定されてもよい）、当該選定したスーパーノードのＩＰアドレス等を取得して当該スーパーノードに接続し、最新のバージョンを取得（ダウンロード）し、ステップＳ１５６に移行する。なお、ステップＳ１５５において、スーパーノードを選定するようにしたが、スーパーノード以外の通常の参加ノードｎｎを選定するようにしても良い。ただし、スーパーノードが選定される方が新しい共用情報が増え始めの段階で、偽の共用情報が出回ることを極力防ぐことができる。
【０１００】
ステップＳ１５７では、制御部１１は、上記スーパーノードリストから任意の他のスーパーノード（更新リストに登録されていないスーパーノード）を選定し、当該選定したスーパーノードのＩＰアドレス等を取得して当該スーパーノードに接続し、照会手段として、最新のバージョンを照会する。
【０１０１】
そして、制御部１１は、自己が記憶する共用情報を更新するか否かを判別し（ステップＳ１５８）、例えば、上記更新リストに登録されているスーパーノードに対応するバージョン番号と、ステップＳ１５７で照会された他のスーパーノードに対応するバージョン番号とを比較し、同一であるか否かを判別し、同一であれば更新すると判別し（ステップＳ１５８：Ｙ）、つまり、上記更新リストに登録されたスーパーノードが記憶している共用情報のバージョンと上記照会した最新のバージョンとが同一である場合には、ステップＳ１５５に移行して上記と同様の処理を行い、更新しない場合には（ステップＳ１５８：Ｎ）、当該処理を終了する。
【０１０２】
なお、更新リストに複数種類の共用情報の夫々のバージョン番号が記述されていた場合には、夫々の共用情報毎に、更新するか否かが判別される。
【０１０３】
そして、ステップＳ１５６では、制御部１１は、記憶している共用情報を、取得した共用情報により更新した後、更新リストをリセットし、当該処理を終了する。
【０１０４】
以上説明したように上記実施形態によれば、各参加ノードｎｎが接続相手の参加ノードｎｎに対して各種メッセージを送信する場合には、自己が記憶する共用情報のバージョンを示すバージョン情報としてのバージョン番号を当該メッセージ中（例えば、ヘッダ）に記述するようにし、バージョン番号が記述されたメッセージを受信した参加ノードｎｎは、記述されたバージョン番号と、自己（自ノード）が記憶する共用情報のバージョン番号とを比較し、自己が記憶する共用情報のバージョンが、他の参加ノードｎｎに記憶されている共用情報のバージョンより古い場合には、自己が記憶する共用情報のバージョンよりも新しいバージョンの共用情報を記憶している参加ノードｎｎ（例えば、スーパーノード）から当該共用情報を取得し、自己が記憶する共用情報を更新するようにしたので、サーバ等の特定の装置に過大な負荷を与えることなく、より速やかにかつ確実に、各参加ノードｎｎにおける共用情報を更新することができる。
【０１０５】
また、自己が記憶する共用情報のバージョンが、複数の他の参加ノードｎｎのうち所定数以上のノード装置が記憶する共用情報のバージョンより古いと判別された場合にはじめて、自己が記憶する共用情報を更新するようにしたので、容易に、クラッキング等の防止ができ信頼性を確保（セキュリティの向上）することができる。更に、参加ノードｎｎが直接的に通信セッションを張っている接続相手の参加ノードｎｎとそこから指定されたバージョン番号を全面的に信用して良いかを容易に確認でき、したがって、システムのクラッキングを防ぎ、情報流出等を防止することができる。
【０１０６】
更に、自己が記憶する共用情報のバージョンが古いと判別された場合には、複数の参加ノードｎｎのうちから特別に選定されたスーパーノードに対して共用情報の最新バージョンを照会するようにしたので、より一層、セキュリティの向上を期待できる。
【０１０７】
更にまた、上記図１０に示す処理により、新しい共有情報の増え始めの段階では、スーパーノードしか新しいバージョンの共用情報を持っていなく、たまたまスーパーノードとメッセージのやりとりをした参加ノードｎｎから順に新しい共用情報を取得していき，この段階の新しい共有情報の増え方はゆっくりであるが、新しいバージョンの共用情報を持つ参加ノードｎｎが一定数を超えた段階から、ネズミ算式に一気に新しいバージョンの共有情報が広まっていくという効果を得ることができる。
【０１０８】
なお、上記実施形態においては、ステップＳ１５４にてスーパーノードが複数か否かを判断していたが、所定数としても良い。例えば、所定数としては、１であっても良いし、３以上の数値であっても良い。
【０１０９】
また、上記実施形態において、ステップＳ１３にて自己が記憶する共用情報のバージョンが古いと判別された場合（ステップＳ１３：Ｙ）、ステップＳ１４にて新しいバージョンの共用情報を記憶する参加ノードｎｎの情報が更新リストに登録されるようにしたが、更新リストに登録されるのではなく、今受信したメッセージヘッダ中に、新しいバージョンの共用情報を記憶する参加ノードｎｎが所定数（１であっても良いし、２以上の数値であっても良い）以上であるか否かを制御部１１が判断し、所定数以上の場合には、共有情報を更新するようにしても良い。
【０１１０】
また、上記実施形態において、複数のスーパーノードが新しいバージョンの共有情報を当初から持つように構成したが、別の例として、当該システム運営者が任意の所定数の参加ノードｎｎを選んで、その参加ノードｎｎに対して新しい共有情報をＰＵＳＨする（強制的に送り付ける）ように構成してもよい（この場合は、スーパーノード及び図１０におけるスーパーノードに関する処理は不要となる）。
【０１１１】
また、上記実施形態においては、メッセージのヘッダに共用情報のバージョン番号を記述するようにしたが、これに限定されるものではなく、メッセージの本体中やフッダに記述するようにしてもよい。
【０１１２】
また、上記実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提として説明したが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【０１１３】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】参加ノードｎ１が保持するＤＨＴのルーティングテーブルの一例を示す図である。
【図３】ＤＨＴのノードＩＤ空間の一例を示す概念図である。
【図４】未参加ノードがオーバーレイネットワーク９に参加する際のＤＨＴのノードＩＤ空間における参加要求メッセージの流れの一例を示す概念図である。
【図５】参加ノードがコンテンツデータの所在を問い合わせる際のＤＨＴのノードＩＤ空間における各種メッセージの流れの一例を示す概念図である。
【図６】コンテンツ所在問合せメッセージの内容の一例を示す図である。
【図７】参加ノードｎｎ及び未参加ノードｎｍの概要構成例を示す図である。
【図８】メッセージの送信元の参加ノードｎｎにおける制御部１１の処理を示すフローチャートである。
【図９】メッセージ受信した参加ノードｎｎにおける制御部１１の処理を示すフローチャートである。
【図１０】図９に示すステップＳ１５における共用情報更新処理の詳細を示すフローチャートである。
【符号の説明】
【０１１４】
ｎｎ  ノード装置
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  コンテンツ配信システム
【図１】
0004747733.tif 000002
【図２】
0004747733.tif 000003
【図３】
0004747733.tif 000004
【図４】
0004747733.tif 000005
【図５】
0004747733.tif 000006
【図６】
0004747733.tif 000007
【図７】
0004747733.tif 000008
【図８】
0004747733.tif 000009
【図９】
0004747733.tif 000010
【図１０】
0004747733.tif 000011