(57)【要約】      （修正有）【課題】  コンテンツ配信の可否情報やコンテンツノード装置の生存状況等を効率良く管理・更新する。【解決手段】  情報配信システムにおいて、第１のノード装置は、第２のノード装置に対して、特定共用情報を記憶する情報記憶ノード装置を示すノード情報の送信を要求すべく固有の識別情報を送信する識別情報送信手段を有し、第２のノード装置は、識別情報とこれに対応する共用情報を記憶する情報記憶ノード装置を示すノード情報とを対応付けて記憶する手段と、複数のノード装置の何れかから特定共用情報の要求を受けた場合には、受信した識別情報に対応するノード情報を検索する手段と、検索の結果、記憶手段に識別情報に対応するノード情報がある場合には、情報記憶ノード装置に対して識別情報を転送する手段と、情報記憶ノード装置による特定共用情報の送信の可否を判定する手段と、送信が不可の場合には、記憶手段に記憶した情報の更新を行なう手段を有する。【選択図】  図１
2006197400.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、
前記複数のノード装置に含まれる第１のノード装置は、
前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信手段を有し、
前記第２のノード装置は、
前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示す前記ノード情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、
前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記識別情報を転送する識別情報転送手段と、
前記情報記憶ノード装置による前記特定共用情報の送信の可否を判定する判定手段と、
前記判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記記憶手段に記憶した情報の更新を行う更新手段と、
を有することを特徴とする情報配信システム。
【請求項２】
請求項１に記載の情報配信システムにおいて、
前記識別情報を転送する際に、時間の測定を開始する時間測定手段を有し、
前記判定手段は、所定の応答待機時間内に、前記情報記憶ノード装置から応答が無い場合、或いは、前記前記情報記憶ノード装置から前記特定共用情報の送信が不可である旨の不可情報を受信した場合には、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定することを特徴とする情報配信システム。
【請求項３】
請求項１又は請求項２に記載の情報配信システムにおいて、
前記第２のノード装置は、前記判定手段による判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段を有することを特徴とする情報配信システム。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載の情報配信システムにおいて、
前記第２のノード装置は、前記更新手段による情報の更新が行われると、前記複数のノード装置に含まれる他のノード装置であって、前記特定共用情報に対応する前記識別情報と、前記特定共用情報を記憶する前記情報記憶ノード装置を示すノード情報とを記憶する前記記憶手段を有する前記他のノード装置に対して、更新を指示する更新指示情報を送信する更新指示情報送信手段を有することを特徴とする情報配信システム。
【請求項５】
請求項４に記載の情報配信システムにおいて、
前記更新手段は、前記複数のノード装置の何れかのノード装置から前記更新指示情報を受信した場合には、当該更新指示情報に従って前記記憶手段に記憶した情報の更新を行うことを特徴とする情報配信システム。
【請求項６】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関するノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置において、
前記共用情報に対応する固有の識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示す前記ノード情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、
前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記識別情報を転送する識別情報転送手段と、
前記情報記憶ノード装置による前記特定共用情報の送信の可否を判定する判定手段と、
前記判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記記憶手段に記憶した情報の更新を行う更新手段と、
を有することを特徴とする第２のノード装置。
【請求項７】
請求項６に記載の第２のノード装置において、
前記識別情報を転送する際に、時間の測定を開始する時間測定手段を有し、
前記判定手段は、所定の応答待機時間内に、前記情報記憶ノード装置から応答が無い場合、或いは、前記前記情報記憶ノード装置から前記特定共用情報の送信が不可である旨の不可情報を受信した場合には、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定することを特徴とする第２のノード装置。
【請求項８】
請求項６又は請求項７に記載の第２のノード装置において、
前記判定手段による判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段を有することを特徴とする第２のノード装置。
【請求項９】
請求項６乃至請求項８のいずれか一項に記載の第２のノード装置において、
前記更新手段による情報の更新が行われると、前記複数のノード装置に含まれる他のノード装置であって、前記特定共用情報に対応する前記識別情報と、前記特定共用情報を記憶する前記情報記憶ノード装置を示すノード情報とを記憶する前記記憶手段を有する前記他のノード装置に対して、更新を指示する更新指示情報を送信する更新指示情報送信手段を有することを特徴とする第２のノード装置。
【請求項１０】
請求項９に記載の第２のノード装置において、
前記更新手段は、前記複数のノード装置の何れかのノード装置から前記更新指示情報を受信した場合には、当該更新指示情報に従って前記記憶手段に記憶した情報の更新を行うことを特徴とする第２のノード装置。
【請求項１１】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関するノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置に含まれるコンピュータを、
前記共用情報に対応する固有の識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示す前記ノード情報と、をそれぞれ対応付けて記憶する記憶手段、
前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、
前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記識別情報を転送する識別情報転送手段、
前記情報記憶ノード装置による前記特定共用情報の送信の可否を判定する判定手段及び、
前記判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記記憶手段に記憶した情報の更新を行う更新手段として機能させることを特徴とする情報更新プログラム。
【請求項１２】
請求項１１に記載の情報更新プログラムにおいて、
前記コンピュータを、前記識別情報を転送する際に、時間の測定を開始する時間測定手段として機能させ、かつ、前記判定手段を、所定の応答待機時間内に、前記情報記憶ノード装置から応答が無い場合、或いは、前記前記情報記憶ノード装置から前記特定共用情報の送信が不可である旨の不可情報を受信した場合には、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定するよう機能させることを特徴とする情報更新プログラム。
【請求項１３】
請求項１１又は請求項１２に記載の情報更新プログラムにおいて、
前記コンピュータを、前記判定手段による判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段として機能させることを特徴とする情報更新プログラム。
【請求項１４】
請求項１１乃至請求項１３のいずれか一項に記載の情報更新プログラムにおいて、
前記コンピュータを、前記更新手段による情報の更新が行われると、前記複数のノード装置に含まれる他のノード装置であって、前記特定共用情報に対応する前記識別情報と、前記特定共用情報を記憶する前記情報記憶ノード装置を示すノード情報とを記憶する前記記憶手段を有する前記他のノード装置に対して、更新を指示する更新指示情報を送信する更新指示情報送信手段として機能させることを特徴とする情報更新プログラム。
【請求項１５】
請求項１４に記載の情報更新プログラムにおいて、
前記更新手段を、前記複数のノード装置の何れかのノード装置から前記更新指示情報を受信した場合には、当該更新指示情報に従って前記記憶手段に記憶した情報の更新を行うよう機能させることを特徴とする情報更新プログラム。
【請求項１６】
請求項１１乃至請求項１５のいずれか一項に記載の情報更新プログラムがコンピュータ読み取り可能に記録されていることを特徴とする記録媒体。
【請求項１７】
ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報更新方法において、
前記複数のノード装置に含まれる第１のノード装置が、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信工程と、
前記第２のノード装置が、前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示す前記ノード情報と、をそれぞれ対応付けて記憶する記憶工程と、
前記第２のノード装置が、前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶工程にて記憶した情報から当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索工程と、
前記第２のノード装置が、前記検索の結果、前記記憶工程にて記憶した情報に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記識別情報を転送する識別情報転送工程と、
前記第２のノード装置が、前記情報記憶ノード装置による前記特定共用情報の送信の可否を判定する判定工程と、
前記第２のノード装置が、前記判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記記憶工程にて記憶した情報の更新を行う更新工程と、
を有することを特徴とする情報更新方法。
【請求項１８】
請求項１７に記載の情報更新方法において、
前記第２のノード装置が、前記識別情報を転送する際に、時間の測定を開始する時間測定工程を有し、
前記判定工程は、所定の応答待機時間内に、前記情報記憶ノード装置から応答が無い場合、或いは、前記前記情報記憶ノード装置から前記特定共用情報の送信が不可である旨の不可情報を受信した場合には、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定することを特徴とする情報更新方法。
【請求項１９】
請求項１７又は請求項１８に記載の情報更新方法において、
前記第２のノード装置が、前記判定工程による判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答工程を有することを特徴とする情報更新方法。
【請求項２０】
請求項１７乃至請求項１９のいずれか一項に記載の情報更新方法において、
前記第２のノード装置は、前記更新工程によって情報の更新が行われると、前記複数のノード装置に含まれる他のノード装置であって、前記特定共用情報に対応する前記識別情報と、前記特定共用情報を記憶する前記情報記憶ノード装置を示すノード情報とを記憶する前記記憶工程を有する前記他のノード装置に対して、更新を指示する更新指示情報を送信する更新指示情報送信工程を有することを特徴とする情報更新方法。
【請求項２１】
請求項２０に記載の情報更新方法において、
前記更新工程にて前記複数のノード装置の何れかのノード装置から前記更新指示情報を受信した場合には、当該更新指示情報に従って前記記憶工程にて記憶した情報の更新を行うことを特徴とする情報更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型のコンテンツ配信システムに関し、特に、１のノード装置から他のノード装置に配信されるべきコンテンツデータが複数のノード装置に分散して保存されたコンテンツ配信システム及び方法等の技術分野に関する。
【背景技術】
【０００２】
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータに関する情報（例えば、コンテンツデータの属性情報（コンテンツの名称等）や、コンテンツデータを保存しているノード装置のＩＰアドレス）が記述されたリストを有しており、当該リストに記述された情報に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなリストは、複数のノード装置において共通に使用されるべき共用情報であり、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、当該管理サーバから各ノード装置に対して上記リストが配信されることになる。
【０００３】
例えば、特許文献１には、この種の管理サーバとして、最上位に存在し、コンテンツ配信管理システム内の全てのコンテンツ情報を管理するインデックスサーバが開示されている。
【特許文献１】特開２００２−３１８７２０号公報
【０００４】
また、特許文献２に開示されているように、管理サーバを用いない方法として、Gnutella, Freenet, Winnyなどの、ピュアＰ２Ｐ型の配信システムも考案されているが、それらのシステムでは、コンテンツのタイトルやコンテンツに関する識別情報を指定してコンテンツを検索し、場所を特定し、それにアクセスするという仕組みになっている。このようなシステムでは端末同士が相互通信し、コンテンツの検索・転送を行う手法となっている。
【特許文献２】特開２００４−１８５２６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ピアツーピア型のコンテンツ配信システムにおいては、ノード装置の脱退（ノード装置の電源断や故障、或いはネットワークの部分的な切断等による）及び参加が行なわれる頻度が高く、しかも、コンテンツデータのノード装置への新たな保存又は消去が行なわれる頻度が高くなるため、上述したようなリストの更新を頻繁に行わなくてはならず、従って、当該リストを常に最新の状態に保つために、上述したような管理サーバは必要であると考えられる。
【０００６】
しかしながら、管理サーバが上記リストの管理を行うコンテンツ配信システムにおいては、ノード装置の数が増せば増すほど、例えば当該リストの更新時にサーバ負荷が増大すると共に、ネットワーク負荷が一箇所に集中し配信可能なリストも制限されてしまうという問題が生じ好ましくない。また、管理サーバがダウン（例えば、故障等により）すると、当該リストの更新ができなくなってしまうという問題もある。更に、管理サーバによるリスト管理のための管理コストもかかってしまうという問題もある。ここで、「ダウン」とは、装置の電源がオフになっていることを示す。
【０００７】
また、管理サーバを用いない方法であっても、コンテンツを保持しているコンテンツノード装置は常に稼動状態にあるわけではないため、当該装置がダウンしている場合などの状態を把握するため、定期的なメンテナンスを行なわなければならない。しかし、コンテンツが膨大になり、また、当該コンテンツ配信システムに参加する装置が膨大な数となると、メンテナンスのための大量の通信が各装置間で行われることとなり、システム全体に多大な負荷が生じてしまうという問題があった。従って、コンテンツ配信の可否情報やコンテンツノード装置の生存状況等を高効率で管理・更新する方法が望まれていた。ここで、「生存状況」とは、装置の電源がオンとされているか否か等の状況のことである。
【０００８】
本発明は、以上の問題等に鑑みてなされたものであり、コンテンツ配信の可否情報やコンテンツノード装置の生存状況等を効率良く管理・更新することを可能とした情報配信システム、情報更新プログラム、及び情報更新方法等を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、前記複数のノード装置に含まれる第１のノード装置は、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信手段を有し、前記第２のノード装置は、前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示す前記ノード情報と、をそれぞれ対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記識別情報を転送する識別情報転送手段と、前記情報記憶ノード装置による前記特定共用情報の送信の可否を判定する判定手段と、前記判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記記憶手段に記憶した情報の更新を行なう更新手段とを有することを特徴とする。
【００１０】
これによれば、第１のノード装置としてのリクエストノードからの、共用情報としてのコンテンツの送信要求がされた際に、配信の可否情報や情報記憶ノード装置としてのコンテンツノードの生存状況等に基づいて第２ノード装置としてのルートノードやキャッシュノードはインデックス情報を更新することができるため、アクセス頻度に応じた更新が可能となり、インデックス情報を効率良く管理・更新することが可能になる。
【００１１】
上記課題を解決するために、請求項２に記載の発明は、請求項１に記載の情報配信システムにおいて、前記識別情報を転送する際に、時間の測定を開始する時間測定手段を有し、前記判定手段は、所定の応答待機時間内に、前記情報記憶ノード装置から応答が無い場合、或いは、前記前記情報記憶ノード装置から前記特定共用情報の送信が不可である旨の不可情報を受信した場合には、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定することを特徴とする。
【００１２】
これによれば、情報記憶ノード装置としてのコンテンツノードが電源断とされているなどのコンテンツノードの生存状況にも迅速に応じたインデックス情報の管理・更新が可能になる。
【００１３】
上記課題を解決するために、請求項３に記載の発明は、請求項１又は請求項２に記載の情報配信システムにおいて、前記第２のノード装置は、前記判定手段による判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段を有することを特徴とする。
【００１４】
これによれば、リクエストノードは所望のコンテンツデータの配信可否について最新の情報を取得することが可能になる。
【００１５】
上記課題を解決するために、請求項４に記載の発明は、請求項１乃至請求項３のいずれか一項に記載の情報配信システムにおいて、前記第２のノード装置は、前記更新手段による情報の更新が行われると、前記複数のノード装置に含まれる他のノード装置であって、前記特定共用情報に対応する前記識別情報と、前記特定共用情報を記憶する前記情報記憶ノード装置を示すノード情報とを記憶する前記記憶手段を有する前記他のノード装置に対して、更新を指示する更新指示情報を送信する更新指示情報送信手段を有することを特徴とする。
【００１６】
これによれば、コンテンツデータの管理情報を迅速に共有することができる。
【００１７】
上記課題を解決するために、請求項５に記載の発明は、請求項４に記載の情報配信システムにおいて、前記更新手段は、前記複数のノード装置の何れかのノード装置から前記更新指示情報を受信した場合には、当該更新指示情報に従って前記記憶手段に記憶した情報の更新を行うことを特徴とする。
【００１８】
これによれば、他のノード装置からの更新指示情報に基づいて、自己のインデックス情報を管理・更新することが可能になるため、システム間でコンテンツデータの管理情報を迅速に共有することができる。
【００１９】
上記課題を解決するために、請求項６に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関するノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置において、前記共用情報に対応する固有の識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示す前記ノード情報と、をそれぞれ対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記識別情報を転送する識別情報転送手段と、前記情報記憶ノード装置による前記特定共用情報の送信の可否を判定する判定手段と、前記判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記記憶手段に記憶した情報の更新を行なう更新手段と、を有することを特徴とする。
【００２０】
上記課題を解決するために、請求項７に記載の発明は、請求項６に記載の第２のノード装置において、前記識別情報を転送する際に、時間の測定を開始する時間測定手段を有し、前記判定手段は、所定の応答待機時間内に、前記情報記憶ノード装置から応答が無い場合、或いは、前記前記情報記憶ノード装置から前記特定共用情報の送信が不可である旨の不可情報を受信した場合には、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定することを特徴とする。
【００２１】
上記課題を解決するために、請求項８に記載の発明は、請求項６又は請求項７に記載の第２のノード装置において、前記判定手段による判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段を有することを特徴とする。
【００２２】
上記課題を解決するために、請求項９に記載の発明は、請求項６乃至請求項８のいずれか一項に記載の第２のノード装置において、前記更新手段による情報の更新が行われると、前記複数のノード装置に含まれる他のノード装置であって、前記特定共用情報に対応する前記識別情報と、前記特定共用情報を記憶する前記情報記憶ノード装置を示すノード情報とを記憶する前記記憶手段を有する前記他のノード装置に対して、更新を指示する更新指示情報を送信する更新指示情報送信手段を有することを特徴とする。
【００２３】
上記課題を解決するために、請求項１０に記載の発明は、請求項９に記載の第２のノード装置において、前記更新手段は、前記複数のノード装置の何れかのノード装置から前記更新指示情報を受信した場合には、当該更新指示情報に従って前記記憶手段に記憶した情報の更新を行うことを特徴とする。
【００２４】
上記課題を解決するために、請求項１１に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第１のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する少なくとも１以上の情報記憶ノード装置に関するノード情報の送信の要求を受ける前記複数のノード装置に含まれる第２のノード装置に含まれるコンピュータを、前記共用情報に対応する固有の識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示す前記ノード情報と、をそれぞれ対応付けて記憶する記憶手段、前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索手段と、前記検索の結果、前記記憶手段に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記識別情報を転送する識別情報転送手段、前記情報記憶ノード装置による前記特定共用情報の送信の可否を判定する判定手段及び、前記判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記記憶手段に記憶した情報の更新を行なう更新手段として機能させることを特徴とする。
【００２５】
上記課題を解決するために、請求項１２に記載の発明は、請求項１１に記載の情報更新プログラムにおいて、前記コンピュータを、前記識別情報を転送する際に、時間の測定を開始する時間測定手段として機能させ、かつ、前記判定手段を、所定の応答待機時間内に、前記情報記憶ノード装置から応答が無い場合、或いは、前記前記情報記憶ノード装置から前記特定共用情報の送信が不可である旨の不可情報を受信した場合には、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定するよう機能させることを特徴とする。
【００２６】
上記課題を解決するために、請求項１３に記載の発明は、請求項１１又は請求項１２に記載の情報更新プログラムにおいて、前記コンピュータを、前記判定手段による判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答手段として機能させることを特徴とする。
【００２７】
上記課題を解決するために、請求項１４に記載の発明は、請求項１１乃至請求項１３のいずれか一項に記載の情報更新プログラムにおいて、前記コンピュータを、前記更新手段による情報の更新が行われると、前記複数のノード装置に含まれる他のノード装置であって、前記特定共用情報に対応する前記識別情報と、前記特定共用情報を記憶する前記情報記憶ノード装置を示すノード情報とを記憶する前記記憶手段を有する前記他のノード装置に対して、更新を指示する更新指示情報を送信する更新指示情報送信手段として機能させることを特徴とする。
【００２８】
上記課題を解決するために、請求項１５に記載の発明は、請求項１４に記載の情報更新プログラムにおいて、前記更新手段を、前記複数のノード装置の何れかのノード装置から前記更新指示情報を受信した場合には、当該更新指示情報に従って前記記憶手段に記憶した情報の更新を行うよう機能させることを特徴とする。
【００２９】
上記課題を解決するために、請求項１６に記載の発明は、請求項１１乃至請求項１５のいずれか一項に記載の情報更新プログラムがコンピュータ読み取り可能に記録されていることを特徴とする。
【００３０】
上記課題を解決するために、請求項１７に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報更新方法において、前記複数のノード装置に含まれる第１のノード装置が、前記複数のノード装置に含まれる第２のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報を送信する識別情報送信工程と、前記第２のノード装置が、前記識別情報と、当該識別情報に対応する共用情報を記憶する前記情報記憶ノード装置を示す前記ノード情報と、をそれぞれ対応付けて記憶する記憶工程と、前記第２のノード装置が、前記複数のノード装置の何れかのノード装置から前記識別情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶工程にて記憶した情報から当該受信した識別情報に対応する前記ノード情報を検索するノード情報検索工程と、前記第２のノード装置が、前記検索の結果、前記記憶工程にて記憶した情報に前記識別情報に対応するノード情報がある場合には、当該ノード情報によって示される前記情報記憶ノード装置に対して前記識別情報を転送する識別情報転送工程と、前記第２のノード装置が、前記情報記憶ノード装置による前記特定共用情報の送信の可否を判定する判定工程と、前記第２のノード装置が、前記判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記記憶工程にて記憶した情報の更新を行なう更新工程と、を有することを特徴とする。
【００３１】
上記課題を解決するために、請求項１８に記載の発明は、請求項１７に記載の情報更新方法において、前記第２のノード装置が、前記識別情報を転送する際に、時間の測定を開始する時間測定工程を有し、前記判定工程は、所定の応答待機時間内に、前記情報記憶ノード装置から応答が無い場合、或いは、前記前記情報記憶ノード装置から前記特定共用情報の送信が不可である旨の不可情報を受信した場合には、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定することを特徴とする。
【００３２】
上記課題を解決するために、請求項１９に記載の発明は、請求項１７又は請求項１８に記載の情報更新方法において、前記第２のノード装置が、前記判定工程による判定の結果、前記情報記憶ノード装置による前記特定共用情報の送信が不可と判定した場合には、前記第１のノード装置に対して前記特定共用情報が無いことを回答するエラー回答工程を有することを特徴とする。
【００３３】
上記課題を解決するために、請求項２０に記載の発明は、請求項１７乃至請求項１９のいずれか一項に記載の情報更新方法において、前記第２のノード装置は、前記更新工程によって情報の更新が行われると、前記複数のノード装置に含まれる他のノード装置であって、前記特定共用情報に対応する前記識別情報と、前記特定共用情報を記憶する前記情報記憶ノード装置を示すノード情報とを記憶する前記記憶工程を有する前記他のノード装置に対して、更新を指示する更新指示情報を送信する更新指示情報送信工程を有することを特徴とする。
【００３４】
上記課題を解決するために、請求項２１に記載の発明は、請求項２０に記載の情報更新方法において、前記更新工程にて前記複数のノード装置の何れかのノード装置から前記更新指示情報を受信した場合には、当該更新指示情報に従って前記記憶工程にて記憶した情報の更新を行うことを特徴とする。
【発明の効果】
【００３５】
本発明によれば、コンテンツ配信の可否情報やコンテンツノード装置の生存状況等を効率良く管理・更新することができる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００３７】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、情報配信システムとしてのコンテンツ配信システムの概要構成等について説明する。
【００３８】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００３９】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。
【００４０】
コンテンツ配信システムＳは、このようなネットワーク８を介して相互に接続された複数のノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、ノード装置を示す情報（ノード情報）としての固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。なお、製造番号及びＩＰアドレスは、複数のノード装置１間で重複しないものである。なお、以下の説明において、ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置１という場合がある。
【００４１】
［１−１．ＤＨＴの概要］
以下に、本実施形態に係る分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用したアルゴリズムについて説明する。
【００４２】
上述したコンテンツ配信システムＳにおいて、当該ノード装置１同士が、互いに情報をやり取りする際には、お互いのノード情報としてのＩＰアドレスを知っていなければならない。
【００４３】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク８に参加している各ノード装置１が互いにネットワーク８に参加している全てのノード装置１のＩＰアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置１のＩＰアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源がON或いはOFFとすると、各ノード装置１にて記憶している当該任意のノード装置のＩＰアドレスの更新が頻繁になり、運用上困難となる。
【００４４】
そこで、１台のノード装置１では、ネットワーク８に参加している全てのノード装置１のうち、必要最低限のノード装置１のＩＰアドレスだけを覚えて（記憶して）おいて、ＩＰアドレスを知らない（記憶していない）ノード装置１については、各ノード装置１間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
【００４５】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバレイネットワーク９が構築されることになる。つまり、このオーバレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００４６】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバレイネットワーク９を前提としており、このオーバレイネットワーク９上に配置されたノード装置１を、コンテンツ配信システムＳに参加（言い換えれば、オーバレイネットワーク９に参加）しているノード装置１という。なお、コンテンツ配信システムＳへの参加は、未だ参加していないノード装置が、既に参加している任意のノード装置１に対して参加要求を送ることによって行われる。
【００４７】
コンテンツ配信システムＳに参加している各ノード装置１のノードＩＤは、それぞれのノード装置毎にユニーク（固有）な番号を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、2＾128≒340×10＾36台のノード装置を運用できる。
【００４８】
より具体的には、各ノード装置１のノードＩＤは、それぞれのノード装置のＩＰアドレスあるいは製造番号等のノード装置毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた（ハッシュ化された）ノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。なお、本実施形態では、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値をノードＩＤとする。
【００４９】
また、コンテンツ配信システムＳに参加している複数のノード装置１には、１のノード装置１から他のノード装置1に配信される共用情報としてのコンテンツ（例えば、映画や音楽等）データが分散して保存（格納）されているが、当該コンテンツデータにも、それぞれのコンテンツデータ毎にユニーク（固有）な番号（以下、コンテンツＩＤという。）を付与する。
【００５０】
そして、当該コンテンツＩＤは、ノードＩＤと同様の長さ（例えば、１２８ｂｉｔ等）とし、例えば、コンテンツの名称（コンテンツタイトル）やコンテンツの概要情報（あらすじ）等のキーワードが、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化され（つまり、ノード装置１のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置）、そのハッシュ値と最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノード装置１が、当該コンテンツデータが保存するか、あるいは、コンテンツデータを保持するノード装置へのリンク情報（コンテンツ保持ノードのＩＰアドレス）を保持する。これにより、コンテンツデータを偏りなくコンテンツ配信システムＳ上に分散させることが可能となる。なお、異なるコンテンツデータであっても、同一のキーワード（例えば、コンテンツの名称）になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報（例えば、出演者名、監督名、原作者名、歌手名、作曲者名、又は作詞者名等）の組合せとすればよい。
【００５１】
このように、各ノード装置１及び各コンテンツデータに付与されたノードＩＤ及びコンテンツＩＤは、共通のハッシュ関数によって生成したため、図２に示す如く、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は３２ｂｉｔでノードＩＤ及びコンテンツＩＤを付与し、図示したものである。図中黒点はノードＩＤを、黒ひし形はコンテンツＩＤを示し、反時計回りでＩＤが増加するものとする。
【００５２】
次に、どのノード装置１に、どのコンテンツデータが保存されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツＩＤを有するコンテンツデータを管理するノード装置は、そのコンテンツＩＤに近いノードＩＤを有するノード装置１である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツＩＤを超えず、コンテンツＩＤとノードＩＤとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各ノード装置１に割り振る際に、一貫していればよい。同図に示す例では、この定義に基づいて、コンテンツＩＤａは、ノードＩＤａを有するノード装置に管理され、コンテンツＩＤｂは、ノードＩＤｂを有するノード装置に管理され、コンテンツＩＤｃは、ノードＩＤｃを有するノード装置１に管理される。
【００５３】
なお、ここで「管理」というのは、コンテンツデータを保存／保持していることを意味するのではなく、「コンテンツデータが何れのノード装置１に保存されているかを知っている」ことを言う。すなわち、図２において、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータが何れのノード装置１に保存されているかを知っており、ノードＩＤｂを有するノード装置１及びノードＩＤｃを有するノード装置１も同様にそれぞれコンテンツＩＤｂを有するコンテンツデータ及びコンテンツＩＤｃを有するコンテンツデータが何れのノード装置１に保存されているかを知っている、ということになる。このように、あるコンテンツデータが何れのノード装置１に保存されているかを知っているノード装置を、そのコンテンツデータのルートノードと言う。つまり、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータのルートノードであって、ノードＩＤｂを有するノード装置１は、コンテンツＩＤｂを有するコンテンツデータのルートノードであって、ノードＩＤｃを有するノード装置１は、コンテンツＩＤｃを有するコンテンツデータのルートノードである。
【００５４】
［１−２．ルーティングテーブルの作成］
ここで、図３を参照して、ＤＨＴで用いるルーティングテーブルの作成手法の一例について説明する。
【００５５】
図３は、ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【００５６】
まず、図３（Ａ）に示す如く、ＩＤ空間を幾つかのエリアに分割する。実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長１６Ｂｉｔの４進数で表すこととした。そして、ノード装置１ＮのノードＩＤを「10230210」とし、このノード装置１Ｎのルーティングテーブルを作る例について説明する。
【００５７】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とすると、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXXXXXX」「1XXXXXXX」、「2XXXXXXX」、「3XXXXXXX」（Ｘは０から３の自然数、以下同様。）で分けられる。ノード装置１Ｎは、当該ノード装置１Ｎ自身のノードＩＤが「10230210」であるため、図中左下「1ＸＸＸＸＸＸＸ」のエリアに存在することになる。そして、ノード装置１Ｎは、自分の存在するエリア（すなわち、「1XXXXXXX」のエリア）以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４（Ａ）がレベル１のテーブルの一例である。２列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００５８】
（レベル２のルーティング）
次に、図３（Ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「10XXXXXX」「11XXXXXX」、「12XXXXXX」、「13XXXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル２のテーブルに記憶する。図４（Ｂ）がレベル２のテーブルの一例である。１列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００５９】
（レベル３のルーティング）
さらに、図３（Ｃ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「100XXXXX」「101XXXXX」、「102XXXXX」、「103XXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４（Ｃ）がレベル３のテーブルの一例である。３列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無く、２列目、４列目はそのエリアにノード装置が存在しないため空白となる。
【００６０】
このようにして、レベル４以下レベル８まで同様にルーティングテーブル図４（Ｄ）に示す如く作成することにより、１６ｂｉｔのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００６１】
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置１が夫々作成して所有することになる。
【００６２】
［１−３．コンテンツデータの検索方法］
次に、図５を参照して、コンテンツデータの保存元であるノード装置１の検索方法の一例について説明する。
【００６３】
図５は、ＤＨＴによりコンテンツデータの保存元であるノード装置１が検索される様子の一例を示す図である。
【００６４】
ここでは、ノードＩＤ「12003030」のノード装置１−１（以下、「リクエストノード」と言う。）が、コンテンツＩＤ「31330012」を有するコンテンツデータを探す際の手順について説明する。
【００６５】
リクエストノードは、自己が保持しているルーティングテーブルのレベル１のテーブルを参照して、コンテンツＩＤ「31330012」と同じエリアのノードＩＤを持つノード装置に対してコンテンツ問い合わせ情報（以下、「コンテンツ問い合わせ情報」を「クエリ」と言う。）を送信する。つまり、コンテンツＩＤ「31330012」は「3XXXXXXX」のエリアであるため、当該「3XXXXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っている（すなわち、自己が保持しているルーティングテーブルにＩＰアドレスが記憶されている）ノード装置１−２に対してクエリを送信する。
【００６６】
図５に示す例に拠れば、ノードＩＤが「30100000」であるノード装置１−２のＩＰアドレスがリクエストノードのルーティングテーブルに記憶されていたので、リクエストノードは、ノードＩＤが「30100000」であるノード装置１−２に対してクエリを送信する。
【００６７】
次に、クエリを受信したノード装置１−２は、当該ノード装置１−２自身が保持しているルーティングテーブルのレベル２のテーブルを参照して、「31XXXXXX」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１−３（ノードＩＤ「31012001」）に対してクエリを転送する。
【００６８】
このように、コンテンツＩＤの桁を上から順に適合していく要領でクエリの転送が進み、最終的に当該コンテンツデータを管理するノード装置１−５、すなわちルートノードに辿り着くと、当該ルートノードは、クエリに含まれるコンテンツＩＤ「31330012」を、自身が管理しているインデックス情報の中から検索し、当該コンテンツデータを所有しているノード装置１のＩＰアドレス等をリクエストノードに返信するようになっている。
【００６９】
こうして、リクエストノード（ノード装置１−１）は、上記ルートノード（ノード装置１−５）から、コンテンツＩＤ「31330012」のコンテンツデータの所在、即ち、保存元のノード装置１のＩＰアドレスを受信を知ることになり、当該保存元のノード装置１から、そのコンテンツデータを取得（ダウンロード）することになる。
【００７０】
［１−４．コンテンツデータの登録方法］
このような構成のコンテンツ配信システムＳの中で、例えば、あるノード装置１が新しいコンテンツデータを、コンテンツ配信システムＳ上の他のノード装置に見えるように公開する際の手法について述べる。このノード装置１がコンテンツを保持する（記憶する）情報記憶ノード装置としてのコンテンツノードとなる。
【００７１】
当該コンテンツノードは、コンテンツのタイトル等からコンテンツＩＤを求め、当該コンテンツＩＤと同じノードＩＤを持つノード装置に向けて（このノード装置が実在するか否かはこの時点ではわからない。）公開メッセージを送信する。そして、この公開メッセージも、上記クエリと同様にルーティングテーブルに従って、次々と転送されていき、当該公開メッセージに含まれるコンテンツＩＤに最も近いノードＩＤを有するノード装置１まで転送されたところで、そのノード装置１はもはや送信先のノード装置が他にないと判断すると、当該ノード装置１自身がそのコンテンツのルートノードとなるべきだと判断し、当該コンテンツＩＤ、補助情報（タイトル、ジャンル等の属性情報や、監督名等の著作権情報等）及びコンテンツノードのＩＰアドレスをインデックス情報として記憶する。
【００７２】
更にまた、本実施形態では、ルートノードに至る経路の途中のノード装置でも、当該ルートノードが記憶しているインデックス情報をキャッシュとして保持しておくキャッシュノードを備える。これにより、ルートノードがクエリを受信するより前に、より早くキャッシュノード装置にクエリが転送された時点でキャッシュノードがコンテンツノードのＩＰアドレスを、コンテンツの所在を問い合わせたリクエストノードに返信することが可能になる。
【００７３】
［２．ノード装置の構成等］
次に、図６を参照して、ノード装置１の構成及び機能について説明する。尚、各ノード装置１は、それぞれが行なう処理によってコンテンツの所在を問い合わせる第１のノード装置としてのリクエストノード、当該リクエストノードや経路上の端末からクエリを受信する第２のノード装置としてのキャッシュノード、当該コンテンツを管理する第２のノード装置及び管理ノード装置としてのルートノード、リクエストノードによって問い合わせの対象とされている特定共用情報としてのコンテンツを保持する情報記憶ノード装置としてのコンテンツノードとして作用するが、その構成は同じである。
【００７４】
図６は、ノード装置１の概要構成例を示す図である。
【００７５】
各ノード装置１は、図６に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、上記コンテンツデータ、上記インデックス情報、上記ＤＨＴ及びプログラム等を記憶保存（格納）するためのＨＤＤ等から構成された記憶手段としての記憶部１２（上記コンテンツデータは、保存されていないノード装置１もある）と、受信されたコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノード装置１との間の情報の通信制御を行なうための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４及び通信部２０はバス２２を介して相互に接続されている。
【００７６】
そして、制御部１１におけるＣＰＵが記憶部１２等に記憶された各種プログラムを実行することにより、第１のノード装置としてのリクエストノード、第２のノード装置としてのキャッシュノード、第２のノード装置及び管理ノード装置としてのルートノード、情報記憶ノード装置としてのコンテンツノードとしてノード装置１全体を統括制御するようになっている。
【００７７】
そして、ノード装置１がリクエストノードとして機能する際には、当該制御部１１は、識別情報送信手段、として機能し、ノード装置１がキャッシュノード或いはルートノードとして機能する際には、当該制御部１１は、記憶手段、ノード情報検索手段、識別情報転送手段、判定手段、更新手段、エラー回答手段、更新指示情報送信手段として機能する。
【００７８】
［３．コンテンツ配信システムの動作］
次に、コンテンツ配信システムＳの動作について図７乃至図１１を用いて説明する。
【００７９】
［３−１．コンテンツ配信システム全体の動作］
まず、コンテンツ配信システム全体の動作について、一例を挙げて説明する。
【００８０】
図７は、リクエストノードがコンテンツ配信要求を行なう際のリクエストノード、キャッシュノード、コンテンツノードの間のクエリ等各種情報の授受をスパニングツリー状に表した説明図である（この図で、中間ノードとは、注目しているコンテンツに対して有効なインデックスキャッシュを持たないノードであり、キャッシュノードとは、それを持つノードである。）。
【００８１】
図８は、リクエストノードが所望のコンテンツデータを保持するコンテンツノードの所在を確認する際のリクエストノード、コンテンツノード、ルートノード、経路上に在る中間ノード、キャッシュノード間のシーケンスチャートであって、図８（Ａ）は、コンテンツノードにコンテンツが配信可能な状態で存在しているときのシーケンスチャートであり、図８（Ｂ）は、コンテンツノードにコンテンツが配信可能な状態で存在していないとき、或いは、コンテンツノード自身が何らかの原因によって稼動していないとき（電源をＯＦＦとしている場合等）のシーケンスチャートである。
【００８２】
本実施形態は、リクエストノードからコンテンツデータの所在の問い合わせ（クエリ）が送信されたことをきっかけとして、コンテンツノードの生存確認或いは、コンテンツノードにコンテンツが配信可能な状態で存在しているか否かの確認を行い、その結果コンテンツが配信できないような状態である場合には、キャッシュノード或いはルートノードは、自己が保持するインデックス情報のリストの更新を行なうようになっている。
【００８３】
初めに、コンテンツノードにコンテンツが有効に存在している場合に、キャッシュノードでコンテンツノードが発見された場合について図７及び図８（Ａ）を用いて説明する。
【００８４】
まず、リクエストノードが、クエリを中間ノードに送信すると、当該クエリを受信した中間ノードは、クエリに含まれるコンテンツＩＤを、自身が管理しているインデックス情報の中から検索し、無いと判断した後に、更にルートノードに近いノード装置に当該クエリを転送する。図７に示す例に拠れば、キャッシュノードにクエリを転送することになる。
【００８５】
続いて、これを受信したキャッシュノードでも上記同様に、クエリに含まれるコンテンツＩＤを、自身が管理しているインデックス情報の中から検索し、ここでは検索に成功するので、コンテンツノードに対して当該クエリを転送する。図９にキャッシュノードの記憶部１２に記憶されたインデックス情報の一例を示す。
【００８６】
そして、キャッシュノードは、当該コンテンツノードがコンテンツデータをリクエストノードに配信可能である旨の配信可能情報をコンテンツノードから受信した後に、リクエストノードに対してコンテンツノードのＩＰアドレスを送信する。図９に示す例によれば、クエリに含まれる識別情報としてのコンテンツＩＤが「30001012」である場合には、これに対応するコンテンツノードのノード情報としてのＩＰアドレス「121.43.154.65」が検索され、当該ＩＰアドレスをＩＰアドレス情報としてリクエストノードに返信される。
【００８７】
こうして、リクエストノードは、上記キャッシュノードからコンテンツノードのＩＰアドレス情報を受信することにより、所望のコンテンツデータの所在、即ち、保存元であるコンテンツノードの存在を知ることになり、当該コンテンツノードにアクセスしてそのコンテンツデータを取得（ダウンロード）することになる。
【００８８】
次に、図８（Ｂ）を用いてキャッシュノードでコンテンツノードが発見されたが、コンテンツノードにコンテンツが存在していないとき、或いは、コンテンツノード自身が何らかの原因によって稼動していない場合について説明する。
【００８９】
まず、上記同様にリクエストノードが、クエリを中間ノードに送信すると、当該クエリを受信した中間ノードは、クエリに含まれるコンテンツＩＤを、自身が管理しているインデックス情報の中から検索し無いと判断した後に、更にルートノードに近いノード装置に当該クエリを転送する。図７に示す例に拠れば、キャッシュノードにクエリを転送することになる。
【００９０】
続いて、これを受信したキャッシュノードも上記同様に、クエリに含まれるコンテンツＩＤを、自身が管理しているインデックス情報の中から検索し、ここでは検索に成功するので、コンテンツノードに対して当該クエリを転送する。
【００９１】
この時点で、キャッシュノードは、時間の測定を開始し、当該コンテンツノードからの応答が所定の応答待機時間内に無い場合（タイムアウト）、或いは当該コンテンツデータをリクエストノードに配信不可能である旨の配信不可情報をコンテンツノードから受信した場合には、キャッシュノードの記憶部１２に記憶されたインデックス情報を更新する。具体的には、クエリに含まれるコンテンツＩＤが「30001012」である場合には、当該コンテンツに係る情報（コンテンツノードのＩＰアドレス「121.43.154.65」やタイトル「〇！★」等の補助情報）をインデックス情報から削除する。
【００９２】
そして、キャッシュノードは、ルートノード方向に向けてコンテンツＩＤが「30001012」の情報を削除するように指示する情報を更新指示情報として送信する。こうして、ルートノードあるいはルートノードと該キャッシュノードの間にある別のキャッシュノード（図７では別のキャッシュノードは書かれていないが）は、受信した更新指示情報に基づいて、当該ルートノード自身の記憶部１２に記憶されたインデックス情報から、コンテンツＩＤ「30001012」のコンテンツに係る情報を削除して、インデックス情報を更新する。他方、キャッシュノードは、リクエストノードに対し、コンテンツノードがダウンしている旨のエラー回答を送信する。
【００９３】
［３−２．各ノードの動作］
次に、リクエストノードがコンテンツ配信要求を行なう際のそれぞれのノードで行なわれる処理について詳細に説明するが、上述したように、コンテンツ配信システムＳに含まれる全てのノード装置１は、リクエストノード、キャッシュノード、ルートノード、コンテンツノード、或いは経路上のノード等、その他のノード等、何れのノード装置にもなり得る。
【００９４】
例えば、ユーザがノード装置１に備えられた入力部２１を操作することによって、特定共用情報としての所望のコンテンツデータの所在の問い合わせが指示されると、当該ノード装置１が第1のノード装置としてのリクエストノードして機能する。また、当該リクエストノードからクエリを受信しコンテンツデータの所在の問い合わせがされたノード装置１は、自身の記憶部１２に記憶したインデックス情報に当該コンテンツの情報が在る場合にはキャッシュノード或いはルートノードとして機能し、また、自身が当該コンテンツを保持している場合にはコンテンツノードとして機能する。
【００９５】
以下に、それぞれのノードとして機能する際にノード装置１で行なわれる処理について図１０及び図１１を用いて詳細に説明する。
【００９６】
［３−２−1．リクエストノードの処理］
先ず、図１０を用いてリクエストノードの処理について説明する。図１０は、リクエストノードの制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【００９７】
ユーザが入力部２１を操作することにより、コンテンツのタイトル等を入力し、所望のコンテンツデータの所在の問い合わせが行われると、当該コンテンツのタイトル等をハッシュ化して当該コンテンツデータを示すコンテンツＩＤ（特定共用情報に対応する固有の識別情報）を生成すると共に、当該生成されたコンテンツＩＤを含むクエリを、記憶部１２に記憶したルーティングテーブルを参照して他のノード装置１に送信する（ステップＳ１）。当該他のノード装置１の選択手法は、上述した「１−３コンテンツデータの検索方法」にて詳細に説明した手法に拠る。
【００９８】
次に、ルートノード或いはキャッシュノードからコンテンツノードのＩＰアドレス情報を受信（ステップＳ２：ＩＰアドレス情報）すると、当該ＩＰアドレス情報の特定元であるコンテンツノードに対して配信要求を行い（ステップＳ４）処理を終了する。
【００９９】
他方、ステップＳ２において、ルートノード或いはキャッシュノードからエラー回答を受信（ステップＳ２：エラー回答）すると、「指定のコンテンツは見つかりませんでした」等のメッセージを表示部１６に表示させる等、所定のコンテンツノード発見不可処理を行い（ステップＳ４）処理を終了する。
【０１００】
［３−２−２．キャッシュノード及びルートノードの処理］
次に、図１１を用いてキャッシュノード及びルートノードの処理について説明する。図１１は、キャッシュノード或いはルートノードの制御部１１に記憶された情報更新プログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【０１０１】
そして、当該処理はリクエストノードや、他のノード装置からクエリが送信されたことにより開始される。
【０１０２】
まず、制御部１１は、ノード情報検索手段として機能し、受信したクエリに含まれるコンテンツＩＤに基づいて、自己の記憶部１２に記憶したインデックス情報を参照して、当該コンテンツＩＤに対応するコンテンツノードの情報（ノード情報）を検索する（ステップＳ１０）。
【０１０３】
次に、コンテンツＩＤに対応するコンテンツノードの情報が発見されたか否かを判定（ステップＳ１１）し、発見されなかった場合（ステップＳ１１：Ｎｏ）には、自身がルートノードであるか否かを判定（ステップＳ１２）し、自身がルートノードでない場合（ステップＳ１２：Ｙｅｓ）には、クエリを上流のノード装置へ転送（ステップＳ１３）して処理を終了する。
【０１０４】
一方、ステップＳ１２の判定において、自身がルートノードである場合（ステップＳ１２：Ｎｏ）には、エラー回答をリクエストノードに送信（ステップＳ１４）する。そして、制御部１１は更新指示情報送信手段として機能し、クエリに含まれるコンテンツＩＤで示されるコンテンツの情報（コンテンツノードＩＰアドレスや、各種補助情報等のインデックス情報を削除する旨の更新指示情報をコンテンツ配信システムＳ内にある全てのキャッシュノードに対して送信（ステップＳ１５）して処理を終了する。
【０１０５】
また、ステップＳ１１の処理において、コンテンツＩＤに対応するコンテンツノードの情報が発見された場合（ステップＳ１１：Ｙｅｓ）には、制御部１１は識別情報転送手段として機能し、当該コンテンツノードにクエリを転送する（ステップＳ１６）。
【０１０６】
続いて、制御部１１は時間測定手段として機能し、装置内に具備する内蔵時計等を使用して、時間測定を開始する（ステップＳ１７）。
【０１０７】
その後、コンテンツノードから何らかの情報が受信されると（ステップＳ１８）、当該受信した情報が配信可能情報である場合には（ステップＳ１８：配信可能情報）、コンテンツノードのＩＰアドレスを示すＩＰアドレス情報をリクエストノードに送信（ステップＳ１９）して処理を終了する。
【０１０８】
一方、ステップＳ１８にて受信した情報が配信不可情報である場合には（ステップＳ１８：配信不可情報）、ステップＳ２１に移行し、ステップＳ１８にて配信の可否に関する情報を受信していない場合（ステップＳ１８：受信なし）、には、ステップＳ２０に移行する。
【０１０９】
そして、ステップＳ２０において、所定の応答待機時間（例えば、１０秒など）が経過したか否かを判定し、経過している場合（ステップＳ２０：Ｙｅｓ）にはステップＳ２１に移行し、経過していない場合（ステップＳ２０：Ｙｅｓ）には、ステップＳ１８に移行して、情報の受信を待機する。
【０１１０】
すなわち、ステップＳ１８及びステップＳ２０にて、制御部１１は判定手段として機能することとなる。
【０１１１】
続いて、ステップＳ１８にて配信不可情報を受信した場合や、応答待機時間を経過してもコンテンツノードからなんらの応答も無い場合（タイムアウト、ステップＳ２０：Ｙｅｓ）には、制御部１１は更新手段として機能し、記憶部１２に記憶したインデックス情報を更新する（ステップＳ２１）。より具体的には、クエリに含まれるコンテンツＩＤで示されるコンテンツの情報（コンテンツノードＩＰアドレスや、各種補助情報等）を削除する。
【０１１２】
次に、制御部１１はエラー回答手段として機能し、エラー回答をリクエストノードに送信（ステップＳ２２）する。
【０１１３】
そして、次に自身がルートノードであるか否かを判定（ステップＳ２３）し、ルートノードでない場合（ステップＳ２３：Ｎｏ）には、更新指示情報送信手段として機能し、インデックス情報を更新するよう指示する旨の更新指示情報を上流のノード装置へ送信（ステップＳ２４）して（すなわち、ルートノード方向に送信）、処理を終了する。他方、ルートノードである場合（ステップＳ２３：Ｙｅｓ）には、更新指示情報送信手段として機能し、上記更新指示情報をコンテンツ配信システムＳ内にある全てのキャッシュノードに対して送信（ステップＳ２５）して処理を終了する。
【０１１４】
実際には、コンテンツノードの生存状況については、必ず下流のキャッシュノードが先に確認するため、下位のキャッシュノードが持っているインデックス情報に関して、ルートノードが先に無効を知る（コンテンツノードの生存状況を確認する）ケースはあまり無いと考えられる。しかし、例えばルートノード自身が別のタイミングでコンテンツノードの所在を問い合わせるリクエストノードとなった場合には、ルートノードが最初にコンテンツノードの生存状況を知ることも考えられる。このような場合にはルートノードがキャッシュノードに更新指示を行うことになる。なお、ルートノードが下流のキャッシュノードのＩＰアドレスを知るためには、コンテンツデータの登録時（「１−４.コンテンツデータの登録方法」を参照。）に、公開メッセージがコンテンツホルダからキャッシュノードを中継してルートノードに転送される過程で、各キャッシュノードがメッセージの送信元のＩＰアドレスを記憶（図７に示すスパニングツリーの逆方向リンクを記憶）しておくことで、実現できる。
【０１１５】
また、コンテンツノードが再び復旧したときには、上述した「１−４.コンテンツデータの登録方法」に従ってコンテンツノードが公開メッセージをルートノードに向けて送信することにより、キャッシュノード及びルートノードの記憶部１２に記憶したインデックス情報が更新される（コンテンツの情報が登録される）ことになる。
【０１１６】
以上説明したように、本実施形態によれば、リクエストノードからコンテンツデータの所在の問い合わせがされた際に、キャッシュノードやルートノードは自己が保持するインデックス情報の更新を行なうことができるため、コンテンツデータの所在の問い合わせ（リクエスト）が多いコンテンツデータであるほど当該コンテンツデータの管理元であるルートノードやキャッシュノードは当該コンテンツデータに関して常に最新の情報を保持することが可能になる。また、コンテンツデータの所在の問い合わせ（リクエスト）が少ないコンテンツデータについては、当該コンテンツデータの管理元であるルートノードやキャッシュノードは当該コンテンツデータに関する生存情報の頻繁な管理・更新を行う必要がなくなるため、インデックス情報の更新コストを削減することができるなど、コンテンツのアクセス頻度に応じた管理・更新が可能になる。
【０１１７】
また、コンテンツ配信システムＳ中に任意のコンテンツを有するコンテンツノードが複数存在している場合にも適用できる。
【０１１８】
さらに、コンテンツデータを管理するルートノードやキャッシュノードのいずれかが、コンテンツデータを保持するコンテンツノードのダウンやコンテンツデータの配信不可を認識すると、自己のインデックス情報を更新するだけでなく、他のルートノードやキャッシュノードに対して更新を指示する更新指示情報を送信するよう構成したので、コンテンツデータの管理情報を迅速に共有することができる。
【図面の簡単な説明】
【０１１９】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ＩＤ空間の説明図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】（Ａ）レベル１のテーブルの一例である。（Ｂ）レベル２のテーブルの一例である。（Ｃ）レベル３のテーブルの一例である。（Ｄ）完成したルーティングテーブルの一例である。
【図５】ＤＨＴによりコンテンツデータの保存元であるノード装置１が検索される様子の一例を示す図である。
【図６】ノード装置１の概要構成例を示す図である。
【図７】リクエストノード、コンテンツノード、ルートノード、キャッシュノードの間のクエリ等各種情報の授受をスパニングツリー状に表した説明図
【図８】（Ａ）コンテンツノードにコンテンツが配信可能な状態で存在しているときのシーケンスチャートである。（Ｂ）コンテンツノードにコンテンツが配信可能な状態で存在していないとき、或いは、コンテンツノード自身が何らかの原因によって稼動していないときのシーケンスチャートである。
【図９】キャッシュノードの記憶部１２に記憶されたインデックス情報の一例である。
【図１０】リクエストノードの制御部１１における処理を示すフローチャートである。
【図１１】キャッシュノード或いはルートノードの制御部１１における情報更新処理を示すフローチャートである。
【符号の説明】
【０１２０】
１  ノード装置
８  ネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  コンテンツ配信システム
【図１】
2006197400.tif 000003
【図２】
2006197400.tif 000004
【図３】
2006197400.tif 000005
【図４】
2006197400.tif 000006
【図５】
2006197400.tif 000007
【図６】
2006197400.tif 000008
【図７】
2006197400.tif 000009
【図８】
2006197400.tif 000010
【図９】
2006197400.tif 000011
【図１０】
2006197400.tif 000012
【図１１】
2006197400.tif 000013