(57)【要約】 【課題】  管理サーバを設けなくても、最新の状態である共用情報をいつでも効率良く取得することを可能としたノード装置、共用情報更新方法、共用情報保存方法、共用情報更新処理プログラム、及び共用情報保存処理プログラム等を提供する。【解決手段】  本発明は、ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置であって、前記複数のノード装置において共通に使用されるべき第１共用情報を記憶する共用情報報記憶手段と、前記第１共用情報に基づいて、当該第１共用情報に対応する固有の識別情報を生成する識別情報生成手段と、前記生成された第１識別情報に基づいて、前記第１共用情報の管理元であるノード装置を特定するノード装置特定手段と、前記特定されたノード装置から前記第１共用情報に対応する更新情報を取得する更新情報取得手段と、前記取得された更新情報に基づいて、前記共用情報記憶手段に記憶されている第１共用情報を第２共用情報に更新する共用情報更新手段と、を備える。【選択図】  図９
2006099503.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置であって、
前記複数のノード装置において共通に使用されるべき第１共用情報を記憶する共用情報報記憶手段と、
前記第１共用情報に基づいて、当該第１共用情報に対応する固有の識別情報を生成する識別情報生成手段と、
前記生成された第１識別情報に基づいて、前記第１共用情報の管理元であるノード装置を特定するノード装置特定手段と、
前記特定されたノード装置から前記第１共用情報に対応する更新情報を取得する更新情報取得手段と、
前記取得された更新情報に基づいて、前記共用情報記憶手段に記憶されている第１共用情報を第２共用情報に更新する共用情報更新手段と、
を備えることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記共用情報更新手段は、前記取得された更新情報に基づいて、前記第１共用情報の管理元であるノード装置において前記第１共用情報が更新されているか否かを判別し、更新されている場合に、前記共用情報報記憶手段に記憶されている第１共用情報を第２共用情報に更新することを特徴とするノード装置。
【請求項３】
請求項２に記載のノード装置において、
前記第１共用情報が第２共用情報に更新された場合には、前記識別情報生成手段は、当該第２共用情報に基づいて、当該第２共用情報に対応する固有の第２識別情報を生成し、
前記ノード装置特定手段は、前記生成された第２識別情報に基づいて、前記第２共用情報の管理元であるノード装置を特定し、
前記更新情報取得手段は、前記特定されたノード装置から前記第２共用情報に対応する更新情報を取得し、
前記共用情報更新手段は、前記取得された更新情報に基づいて、前記第２共用情報の管理元であるノード装置において前記第２共用情報が更新されているか否かを判別し、更新されている場合に、前記共用情報記憶手段に記憶された第２共用情報を第３共用情報に更新することを特徴とするノード装置。
【請求項４】
請求項１乃至３の何れか一項に記載のノード装置において、
前記更新情報は、前記第１共用情報の管理元であるノード装置において更新された第２共用情報であることを特徴とするノード装置。
【請求項５】
請求項１乃至３の何れか一項に記載のノード装置において、
前記更新情報は、前記第１共用情報の管理元であるノード装置において更新された第１共用情報の更新部分に係る部分情報であることを特徴とするノード装置。
【請求項６】
ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置であって、
前記複数のノード装置において共通に使用されるべき共用情報を記憶する共用情報記憶手段と、
前記共用情報が更新された場合に、更新前の前記共用情報に基づいて、当該共用情報に対応する固有の識別情報を生成する識別情報生成手段と、
前記生成された識別情報に基づいて、前記共用情報の管理元であるノード装置を特定するノード装置特定手段と、
前記特定されたノード装置に対して更新前の前記共用情報に対応する更新情報を保存させる共用情報保存手段と、を備えることを特徴とするノード装置。
【請求項７】
請求項６に記載のノード装置において、
前記更新情報は、更新後の共用情報であることを特徴とするノード装置。
【請求項８】
請求項６に記載のノード装置において、
前記更新情報は、更新前の共用情報の更新部分に係る部分情報であることを特徴とするノード装置。
【請求項９】
請求項１乃至８の何れか一項に記載のノード装置において、
前記識別情報生成手段は、前記共用情報を所定のハッシュ関数にかけてハッシュ値である前記識別情報を生成することを特徴とするノード装置。
【請求項１０】
請求項１乃至９の何れか一項に記載のノード装置において、
前記ノード装置特定手段は、前記識別情報を、前記複数のノード装置のうち何れかのノード装置に送信し、前記複数のノード装置のうち何れかのノード装置から返信されてきた、前記管理元であるノード装置を示す情報に基づき当該ノード装置を特定することを特徴とするノード装置。
【請求項１１】
請求項１乃至１０の何れか一項に記載のノード装置において、
１の前記ノード装置から他のノード装置に配信されるべき配信情報が前記複数のノード装置に分散して保存されており、
前記共用情報は、前記分散して保存された配信情報に関する情報が記述されたリスト情報であることを特徴とするノード装置。
【請求項１２】
ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置における共用情報更新方法であって、
前記複数のノード装置において共通に使用されるべき第１共用情報に基づいて、当該第１共用情報に対応する固有の識別情報を生成する工程と、
前記生成された第１識別情報に基づいて、前記第１共用情報の管理元であるノード装置を特定する工程と、
前記特定されたノード装置から前記第１共用情報に対応する更新情報を取得する工程と、
前記取得された更新情報に基づいて、前記第１共用情報を第２共用情報に更新する工程と、
を備えることを特徴とする共用情報更新方法。
【請求項１３】
ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置における共用情報保存方法であって、
前記複数のノード装置において共通に使用されるべき共用情報が更新された場合に、更新前の前記共用情報に基づいて、当該共用情報に対応する固有の識別情報を生成する工程と、
前記生成された識別情報に基づいて、前記共用情報の管理元であるノード装置を特定する工程と、
前記特定されたノード装置に対して更新前の前記共用情報に対応する更新情報を保存させる工程と、
を備えることを特徴とする共用情報保存方法。
【請求項１４】
ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置に含まれるコンピュータを、
前記複数のノード装置において共通に使用されるべき第１共用情報を記憶する共用情報報記憶手段、
前記第１共用情報に基づいて、当該第１共用情報に対応する固有の識別情報を生成する識別情報生成手段、
前記生成された第１識別情報に基づいて、前記第１共用情報の管理元であるノード装置を特定するノード装置特定手段、
前記特定されたノード装置から前記第１共用情報に対応する更新情報を取得する更新情報取得手段、及び、
前記取得された更新情報に基づいて、前記共用情報記憶手段に記憶されている第１共用情報を第２共用情報に更新する共用情報更新手段として機能させることを特徴とする共用情報更新処理プログラム。
【請求項１５】
ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置に含まれるコンピュータを、
前記複数のノード装置において共通に使用されるべき共用情報を記憶する共用情報記憶手段、
前記共用情報が更新された場合に、更新前の前記共用情報に基づいて、当該共用情報に対応する固有の識別情報を生成する識別情報生成手段、
前記生成された識別情報に基づいて、前記共用情報の管理元であるノード装置を特定するノード装置特定手段、及び、
前記特定されたノード装置に対して更新前の前記共用情報に対応する更新情報を保存させる共用情報保存手段として機能させることを特徴とする共用情報保存処理プログラム。
【請求項１６】
請求項１４に記載の共用情報更新処理プログラムがコンピュータ読み取り可能に記録されていることを特徴とする記録媒体。
【請求項１７】
請求項１５に記載の共用情報保存処理プログラムがコンピュータ読み取り可能に記録されていることを特徴とする記録媒体。
【請求項１８】
ネットワークを介して互いに接続された複数のノード装置を備え、前記複数のノード装置には、当該複数のノード装置において共通に使用されるべき共用情報であって各更新段階にある互いに異なる複数の共用情報の夫々の管理元であるノード装置が含まれる情報配信システムにおける何れかの１の前記ノード装置であって、
何れかの前記更新段階にある共用情報を記憶する共用情報報記憶手段と、
前記共用情報報記憶手段に記憶されている共用情報の管理元であるノード装置を特定する特定処理を行うノード装置特定手段と、
前記特定されたノード装置から前記共用情報報記憶手段に記憶されている共用情報に対応する更新情報を取得する取得処理を行う更新情報取得手段と、
前記取得された更新情報に基づいて、前記共用情報記憶手段に記憶されている共用情報を更新する更新処理を行う共用情報更新手段と、
を備えることを特徴とするノード装置。
【請求項１９】
請求項１８に記載のノード装置において、
前記共用情報記憶手段に記憶されている共用情報が最新の状態になるまで、前記ノード装置特定手段による前記特定処理、前記更新情報取得手段による前記取得処理、及び前記共用情報更新手段による前記更新処理が繰り返し行われることを特徴とするノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型のコンテンツ配信システムに関し、特に、１のノード装置から他のノード装置に配信されるべきコンテンツデータが複数のノード装置に分散して保存されたコンテンツ配信システム及び方法等の技術分野に関する。
【背景技術】
【０００２】
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータに関する情報（例えば、コンテンツデータの属性情報（コンテンツの名称等）や、コンテンツデータを保存しているノード装置のＩＰアドレス）が記述されたリストを有しており、当該リストに記述された情報に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなリストは、複数のノード装置において共通に使用されるべき共用情報であり、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、当該管理サーバから各ノード装置に対して上記リストが配信されることになる。
【０００３】
例えば、特許文献１には、この種の管理サーバとして、最上位に存在し、コンテンツ配信管理システム内の全てのコンテンツ情報を管理するインデックスサーバが開示されている。
【特許文献１】特開２００２−３１８７２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ピアツーピア型のコンテンツ配信システムにおいては、ノード装置の脱退（ノード装置の電源断や故障、或いはネットワークの部分的な切断等による）及び参加が行なわれる頻度が高く、しかも、コンテンツデータのノード装置への新たな保存又は消去が行なわれる頻度が高くなるため、上述したようなリストの更新を頻繁に行わなくてはならず、従って、当該リストを常に最新の状態に保つために、上述したような管理サーバは必要であると考えられる。
【０００５】
しかしながら、管理サーバが上記リストの管理を行うコンテンツ配信システムにおいては、ノード装置の数が増せば増すほど、例えば当該リストの更新時にサーバ負荷が増大すると共に、ネットワーク負荷が一箇所に集中し配信可能なリストも制限されてしまうという問題が生じ好ましくない。また、管理サーバがダウン（例えば、故障等により）すると、当該リストの更新ができなくなってしまうという問題もある。更に、管理サーバによるリスト管理のための管理コストもかかってしまうという問題もある。
【０００６】
管理サーバを用いない方法として、Gnutella, Freenet, Winnyなどの、ピュアＰ２Ｐ型の配信システムも考案されているが、それらのシステムでは、コンテンツのタイトルやコンテンツに関するキーワードを指定してコンテンツを検索し、場所を特定し、それにアクセスするという仕組みになっている。この方法では、コンテンツのタイトルの全リストを取得する方法がないため、ユーザがタイトルリストを眺めてその中から所望のコンテンツを選んでアクセスする、という使い方ができなかった。タイトルリストやキーワードリストといった共有情報を効率よく管理・更新する方法が望まれていた。
【０００７】
本発明は、以上の問題等に鑑みてなされたものであり、上記のような管理サーバを設けなくても、最新の状態である共用情報をいつでも効率良く取得することを可能としたノード装置、共用情報更新方法、共用情報保存方法、共用情報更新処理プログラム、及び共用情報保存処理プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置であって、前記複数のノード装置において共通に使用されるべき第１共用情報を記憶する共用情報報記憶手段と、前記第１共用情報に基づいて、当該第１共用情報に対応する固有の識別情報を生成する識別情報生成手段と、前記生成された第１識別情報に基づいて、前記第１共用情報の管理元であるノード装置を特定するノード装置特定手段と、前記特定されたノード装置から前記第１共用情報に対応する更新情報を取得する更新情報取得手段と、前記取得された更新情報に基づいて、前記共用情報記憶手段に記憶されている第１共用情報を第２共用情報に更新する共用情報更新手段と、を備えることを特徴とする。
【０００９】
請求項１に記載の発明によれば、各ノード装置は、第１共用情報に対応する固有の識別情報に基づいて、第１共用情報の管理元を特定して、その管理元から第１共用情報に対応する更新情報を取得して、第１共用情報を第２共用情報に更新するように構成したので、管理サーバを設けなくても、自己が保持する共用情報を効率良く更新することができ、これにより、最新の状態である共用情報を効率良く取得することができる。従って、管理サーバによる管理コストを削減することができる。
【００１０】
請求項２に記載の発明は、請求項１に記載のノード装置において、前記共用情報更新手段は、前記取得された更新情報に基づいて、前記第１共用情報の管理元であるノード装置において前記第１共用情報が更新されているか否かを判別し、更新されている場合に、前記共用情報報記憶手段に記憶されている第１共用情報を第２共用情報に更新することを特徴とする。
【００１１】
請求項２に記載の発明によれば、各ノード装置において、第１共用情報が更新されているか否かが判り、更新されている場合には、自己が保持する共用情報を効率良く更新することができる。
【００１２】
請求項３に記載の発明は、請求項２に記載のノード装置において、前記第１共用情報が第２共用情報に更新された場合には、前記識別情報生成手段は、当該第２共用情報に基づいて、当該第２共用情報に対応する固有の第２識別情報を生成し、前記ノード装置特定手段は、前記生成された第２識別情報に基づいて、前記第２共用情報の管理元であるノード装置を特定し、前記更新情報取得手段は、前記特定されたノード装置から前記第２共用情報に対応する更新情報を取得し、前記共用情報更新手段は、前記取得された更新情報に基づいて、前記第２共用情報の管理元であるノード装置において前記第２共用情報が更新されているか否かを判別し、更新されている場合に、前記共用情報記憶手段に記憶された第２共用情報を第３共用情報に更新することを特徴とする。
【００１３】
請求項３に記載の発明によれば、第１共用情報に対応する更新情報を第１共用情報の管理元であるノード装置にて管理し、第２共用情報に対応する更新情報を第２共用情報の管理元であるノード装置にて管理するように構成して各更新段階の共用情報の管理元を分散させるように構成したので、各ノード装置が共用情報を更新する際に、ネットワーク負荷が一箇所に集中することを回避することができる。また、各ノード装置は、自己が保持している共用情報を次第に新しくなるように構成したので、自己が保持する共用情報をより効率良く更新することができ、これにより、最新の状態である共用情報を効率良く取得することができる。
【００１４】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載のノード装置において、前記更新情報は、前記第１共用情報の管理元であるノード装置において更新された第２共用情報であることを特徴とする。
【００１５】
請求項５に記載の発明は、請求項１乃至３の何れか一項に記載のノード装置において、前記更新情報は、前記第１共用情報の管理元であるノード装置において更新された第１共用情報の更新部分に係る部分情報であることを特徴とする。
【００１６】
請求項５に記載の発明によれば、更新情報は、第１共用情報の更新部分に係る部分情報であるので、データ量を少なくすることができ、従って、ネットワーク負荷を少なくすることができる。
【００１７】
請求項６に記載の発明は、ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置であって、前記複数のノード装置において共通に使用されるべき共用情報を記憶する共用情報記憶手段と、前記共用情報が更新された場合に、更新前の前記共用情報に基づいて、当該共用情報に対応する固有の識別情報を生成する識別情報生成手段と、前記生成された識別情報に基づいて、前記共用情報の管理元であるノード装置を特定するノード装置特定手段と、前記特定されたノード装置に対して更新前の前記共用情報に対応する更新情報を保存させる共用情報保存手段と、を備えることを特徴とする。
【００１８】
請求項６に記載の発明によれば、共用情報の管理元であるノード装置に更新前の共用情報に対応する更新情報を保存させることで、管理サーバを設けなくても、各ノード装置が、自己が保持する共用情報を効率良く更新することができ、これにより、最新の状態である共用情報を効率良く取得することができる。従って、管理サーバによる管理コストを削減することができる。
【００１９】
請求項７に記載の発明は、請求項６に記載のノード装置において、前記更新情報は、更新後の共用情報であることを特徴とする。
【００２０】
請求項８に記載の発明は、請求項６に記載のノード装置において、前記更新情報は、更新前の共用情報の更新部分に係る部分情報であることを特徴とする。
【００２１】
請求項９に記載の発明は、請求項１乃至８の何れか一項に記載のノード装置において、前記識別情報生成手段は、前記共用情報を所定のハッシュ関数にかけてハッシュ値である前記識別情報を生成することを特徴とする。
【００２２】
請求項１０に記載の発明は、請求項１乃至９の何れか一項に記載のノード装置において、前記ノード装置特定手段は、前記識別情報を、前記複数のノード装置のうち何れかのノード装置に送信し、前記複数のノード装置のうち何れかのノード装置から返信されてきた、前記管理元であるノード装置を示す情報に基づき当該ノード装置を特定することを特徴とする。
【００２３】
請求項１１に記載の発明は、請求項１乃至１０の何れか一項に記載のノード装置において、１の前記ノード装置から他のノード装置に配信されるべき配信情報が前記複数のノード装置に分散して保存されており、前記共用情報は、前記分散して保存された配信情報に関する情報が記述されたリスト情報であることを特徴とする。
【００２４】
請求項１２に記載の発明は、ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置における共用情報更新方法であって、前記複数のノード装置において共通に使用されるべき第１共用情報に基づいて、当該第１共用情報に対応する固有の識別情報を生成する工程と、前記生成された第１識別情報に基づいて、前記第１共用情報の管理元であるノード装置を特定する工程と、前記特定されたノード装置から前記第１共用情報に対応する更新情報を取得する工程と、前記取得された更新情報に基づいて、前記共用情報記憶手段に記憶されている第１共用情報を第２共用情報に更新する工程と、を備えることを特徴とする。
【００２５】
請求項１３に記載の発明は、ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置における共用情報保存方法であって、前記複数のノード装置において共通に使用されるべき共用情報が更新された場合に、更新前の前記共用情報に基づいて、当該共用情報に対応する固有の識別情報を生成する工程と、前記生成された識別情報に基づいて、前記共用情報の管理元であるノード装置を特定する工程と、前記特定されたノード装置に対して更新前の前記共用情報に対応する更新情報を保存させる工程と、を備えることを特徴とする。
【００２６】
請求項１４に記載の発明は、ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置に含まれるコンピュータを、前記複数のノード装置において共通に使用されるべき第１共用情報を記憶する共用情報報記憶手段、前記第１共用情報に基づいて、当該第１共用情報に対応する固有の識別情報を生成する識別情報生成手段、前記生成された第１識別情報に基づいて、前記第１共用情報の管理元であるノード装置を特定するノード装置特定手段、前記特定されたノード装置から前記第１共用情報に対応する更新情報を取得する更新情報取得手段、及び、前記取得された更新情報に基づいて、前記共用情報記憶手段に記憶されている第１共用情報を第２共用情報に更新する共用情報更新手段として機能させることを特徴とする。
【００２７】
請求項１５に記載の発明は、ネットワークを介して互いに接続された複数のノード装置を備えた情報配信システムにおける前記ノード装置に含まれるコンピュータを、前記複数のノード装置において共通に使用されるべき共用情報を記憶する共用情報記憶手段、前記共用情報が更新された場合に、更新前の前記共用情報に基づいて、当該共用情報に対応する固有の識別情報を生成する識別情報生成手段、前記生成された識別情報に基づいて、前記共用情報の管理元であるノード装置を特定するノード装置特定手段、及び、前記特定されたノード装置に対して更新前の前記共用情報に対応する更新情報を保存させる共用情報保存手段として機能させることを特徴とする。
【００２８】
請求項１６に記載の発明は、請求項１４に記載の共用情報更新処理プログラムがコンピュータ読み取り可能に記録されていることを特徴とする。
【００２９】
請求項１７に記載の発明は、請求項１５に記載の共用情報保存処理プログラムがコンピュータ読み取り可能に記録されていることを特徴とする。
【００３０】
請求項１８に記載の発明は、ネットワークを介して互いに接続された複数のノード装置を備え、前記複数のノード装置には、当該複数のノード装置において共通に使用されるべき共用情報であって各更新段階にある互いに異なる複数の共用情報の夫々の管理元であるノード装置が含まれる情報配信システムにおける何れかの１の前記ノード装置であって、何れかの前記更新段階にある共用情報を記憶する共用情報報記憶手段と、前記共用情報報記憶手段に記憶されている共用情報の管理元であるノード装置を特定する特定処理を行うノード装置特定手段と、前記特定されたノード装置から前記共用情報報記憶手段に記憶されている共用情報に対応する更新情報を取得する取得処理を行う更新情報取得手段と、前記取得された更新情報に基づいて、前記共用情報記憶手段に記憶されている共用情報を更新する更新処理を行う共用情報更新手段と、を備えることを特徴とする。
【００３１】
請求項１９に記載の発明は、請求項１８に記載のノード装置において、前記共用情報記憶手段に記憶されている共用情報が最新の状態になるまで、前記ノード装置特定手段による前記特定処理、前記更新情報取得手段による前記取得処理、及び前記共用情報更新手段による前記更新処理が繰り返し行われることを特徴とする。
【００３２】
請求項１９に記載の発明によれば、管理サーバを設けなくても、最新の状態である共用情報をいつでも効率良く取得することができる。
【発明の効果】
【００３３】
本発明によれば、各ノード装置は、第１共用情報に対応する固有の識別情報に基づいて、第１共用情報の管理元を特定して、その管理元から第１共用情報に対応する更新情報を取得して、第１共用情報を第２共用情報に更新するように構成したので、管理サーバを設けなくても、自己が保持する共用情報を効率良く更新することができ、これにより、最新の状態である共用情報を効率良く取得することができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００３５】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、情報配信システムとしてのコンテンツ配信システムの概要構成等について説明する。
【００３６】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００３７】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。
【００３８】
コンテンツ配信システムＳは、このようなネットワーク８を介して相互に接続された複数のノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、ノード装置を示す情報としての固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。なお、製造番号及びＩＰアドレスは、複数のノード装置１間で重複しないものである。なお、以下の説明において、ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置１という場合がある。
【００３９】
そして、このコンテンツ配信システムＳにおいては、特定のアルゴリズム、例えば、後述する分散ハッシュテーブル（以下、ＤＨＴ（Distribute Hash Table）という）を利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバーレイネットワーク９が構築されることになる。つまり、このオーバーレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００４０】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提としており、このオーバーレイネットワーク９上に配置されたノード装置１を、コンテンツ配信システムＳに参加（言い換えれば、オーバーレイネットワーク９に参加）しているノード装置１という。コンテンツ配信システムＳへの参加は、未だ参加していないノード装置が、既に参加している任意のノード装置１に対して参加要求を送ることによって行われる。
【００４１】
コンテンツ配信システムＳに参加している各ノード装置１のノードＩＤは、例えば、ＩＰアドレスあるいは製造番号を共通のハッシュ関数によりハッシュ化した値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた（ハッシュ化された）ノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。本実施形態では、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値をノードＩＤとする。
【００４２】
また、コンテンツ配信システムＳに参加している複数のノード装置１には、１のノード装置１から他のノード装置1に配信されるべき配信情報としてのコンテンツ（例えば、映画や音楽等）データが分散して保存（格納）されている。例えば、ノード装置１ａには、タイトルがＸＸＸの映画のコンテンツデータが保存されており、一方、ノード装置１ｂには、タイトルがＹＹＹの映画のコンテンツデータが保存されるというように、互いに異なるコンテンツデータが、複数のノード装置１に分散されて保存される（ただし、同じコンテンツデータが複数のノード装置１に分散されて保存される場合もある）。
【００４３】
どのノード装置１に、どのコンテンツデータが保存されるようにしてもよいが、例えば、コンテンツデータに関する情報の一例としてのキーワード（例えば、コンテンツの名称（コンテンツタイトル）やコンテンツの概要情報（あらすじ）等のキーワード）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化され（つまり、ノード装置１のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置）、そのハッシュ値と最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノード装置１に、当該コンテンツデータが保存される。これにより、コンテンツデータを偏りなくコンテンツ配信システムＳ上に分散させることが可能となる。なお、異なるコンテンツデータであっても、同一のキーワード（例えば、コンテンツの名称）になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報（例えば、出演者名、監督名、原作者名、歌手名、作曲者名、又は作詞者名等）の組合せとすればよい。
【００４４】
このように分散保存されているコンテンツデータの所在は、各ノード装置１が、ＤＨＴにより少しずつ分担して保持しており、これらのＤＨＴが用いられてコンテンツデータの所在、即ち、保存元であるノード装置１を検索（発見）できるようになっている。このＤＨＴには、例えば、他のノード装置への経路情報、すなわち、ノードＩＤ空間内で適度に離れた他のノード装置のノードＩＤ（ハッシュ値）とそのＩＰアドレスが、複数登録されている。
【００４５】
ここで、図２を参照して、コンテンツデータの保存元であるノード装置１の検索方法の一例について説明する。
【００４６】
図２は、ＤＨＴによりコンテンツデータの保存元であるノード装置１が検索される様子の一例を示す図である。
【００４７】
例えば、図２に示すように、ノード装置１ａが、後述するリスト情報としてのキーワードリストＬに記述されたキーワード「ＸＸＸ」のコンテンツデータＸを検索する場合、当該ノード装置１ａは、そのキーワード「ＸＸＸ」を上記ノードＩＤを得るときと共通のハッシュ関数にかけてそのハッシュ値（以下、当該ハッシュ値を「１２３」と仮定する）を求める（図２の（i））。なお、当該キーワードリストＬに、キーワード「ＸＸＸ」に対応付けられて、当該キーワード「ＸＸＸ」のハッシュ値が記述されているようにしてもよい。
【００４８】
次に、ノード装置１ａは、自己が保持しているＤＨＴ（言い換えれば、ネットワークの経路テーブル）５１を参照して、キーワードのハッシュ値「１２３」の最上位の桁の数値「１」に関連付けられたノード装置１ｂのＩＰアドレスを取得して（図２の（ii））、当該ノード装置１ｂに対してハッシュ値「１２３」及びノード装置１ａのＩＰアドレスを含む問い合わせ情報を送信し、問い合わせ（図２の（iii））を行う。
【００４９】
なお、ノード装置１ａが保持しているＤＨＴ５１において、キーワードのハッシュ値「１２３」にノード装置１ａのＩＰアドレスが対応付けられていれば、自己が当該コンテンツデータの保存元となる。
【００５０】
これに対し、ノード装置１ｂは、上記問い合わせ情報を受信し、自己が保持しているＤＨＴ５２を参照して、キーワードのハッシュ値「１２３」の最上位から２番目の桁の数値「２」に関連付けられたノード装置１ｆのＩＰアドレスを取得して（図２の（iv））、当該ノード装置１ｆに対してハッシュ値「１２３」及びノード装置１ａのＩＰアドレスを含む問い合わせ情報を送信し、問い合わせ（図２の（v））を行う。
【００５１】
これに対し、ノード装置１ｆは、上記問い合わせ情報を受信し、自己が保持しているＤＨＴ５３を参照して、キーワードのハッシュ値「１２３」の最上位から３番目の桁の数値「３」に関連付けられたノード装置１ｊのＩＰアドレスを、上記キーワード「ＸＸＸ」のコンテンツデータＸを保存しているノード装置１のＩＰアドレスとして取得し（図２の（vi））、これを、ノード装置１ａに対して返信する（図２の（vii））。
【００５２】
こうして、ノード装置１ａは、上記ノード装置１ｊのＩＰアドレスを受信することにより、キーワード「ＸＸＸ」のコンテンツデータＸの所在、即ち、保存元であるノード装置１ｊを検索することになり、当該ノード装置１ｊから、そのコンテンツデータＸを取得（ダウンロード）することになる。
【００５３】
ところで、上記キーワードリストＬには、コンテンツ配信システムＳ上に分散保存されている複数のコンテンツデータのキーワードが記述されており、これにより、各ノード装置１のユーザは、どのようなコンテンツデータが保存されているか、言い換えれば、視聴することができるかを把握することができる。
【００５４】
従って、上記キーワードリストＬは、全てのノード装置１において共通に使用されるべき共用情報であるともいうことができ、常に最新の状態であることが必要である。
【００５５】
本実施形態においては、更新前のキーワードリストＬを用いて当該キーワードリストＬの更新情報を検索することにより、キーワードリストＬを一括管理するサーバを設けることなく、各ノード装置１が、最新の状態であるキーワードリストＬをいつでも効率良く取得することを可能としている。これについての詳細は後述する。
【００５６】
［２．ノード装置の構成等］
次に、図３を参照して、ノード装置１の構成及び機能について説明する。
【００５７】
図３は、ノード装置１の概要構成例を示す図である。
【００５８】
各ノード装置１は、図３に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、上記コンテンツデータ、上記キーワードリストＬ、上記ＤＨＴ及びプログラム等を記憶保存（格納）するためのＨＤＤ等から構成された共用情報報記憶手段としての記憶部１２（上記コンテンツデータは、保存されていないノード装置１もある）と、受信されたコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、コンテンツデータに含まれるビデオデータ及びオーディオデータ等をエンコード（データ圧縮や暗号化等）するエンコーダ部１９と、ネットワーク８を通じて他のノード装置１との間の情報の通信制御を行うための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、エンコーダ部１９、及び通信部２０はバス２２を介して相互に接続されている。
【００５９】
そして、制御部１１におけるＣＰＵが記憶部１２等に記憶された各種プログラムを実行することにより、ノード装置１全体を統括制御するようになっており、また、入力部２１からの指示信号に応じて、キーワードリスト保存（登録）処理、及びキーワードリスト更新処理等を行うようになっている。これらのキーワードリスト保存（登録）処理、及びキーワードリスト更新処理及びについては後述する。
【００６０】
[３．コンテンツ配信システムの動作]
次に、コンテンツ配信システムＳの動作について説明する。
【００６１】
（キーワードリスト保存処理）
先ず、図４乃至図７等を参照して、キーワードリスト保存処理について説明する。
【００６２】
図４は、ノード装置１の制御部１１におけるキーワードリスト保存処理のメインルーチンを、図５及び図６は、当該キーワードリスト保存処理のサブルーチンを、夫々示すフローチャートである。また、図７は、キーワードリスト保存処理において行われるコンテンツデータの保存、及びキーワードリストの保存等の様子を示す概念図である。
【００６３】
なお、図４乃至図６に示す処理は、記憶部１２等に記憶された共用情報保存処理プログラムが制御部１１により実行されることにより行われる。
【００６４】
図４に示す処理では、コンテンツデータ登録用のノード装置１（例えば、図７に示すノード装置１ａとする）においてユーザにより取得された（例えば、着脱可能な情報記録媒体から読み込まれ）コンテンツデータＸの保存要求がなされると（例えば、ユーザが入力部２１を操作することによる）、制御部１１は、その新たに保存すべきコンテンツデータＸのキーワード（例えば、コンテンツの名称（コンテンツタイトル））を取得する（ステップＳ１）。なお、すべてのノード装置１は、初期値としてキーワードリストＬ１を記憶部１２に記憶しているものとする。
【００６５】
かかる取得処理においては、例えば、制御部１１が、当該コンテンツデータＸに付加されたデータから、キーワードを取得するようにしてもよいし、或いは、ユーザによる入力部２１の操作により入力されたキーワードを制御部１１が取得するようにしてもよい。
【００６６】
次いで、制御部１１は、当該コンテンツデータＸの保存元となるべきノード装置１の検索処理を行う（ステップＳ２）。
【００６７】
具体的には、制御部１１は、先ず、図５に示すように、取得したキーワードを上記ノードＩＤを得るときと共通のハッシュ関数にかけてハッシュ値を生成する（ステップＳ２１）。
【００６８】
次いで、制御部１１は、ＤＨＴを参照し（ステップＳ２２）、自己がコンテンツデータＸの保存元となるべきノード装置１であるか否かを判別し（ステップＳ２３）、自己が保存元のノード装置１でないと判別した場合（例えば、当該ＤＨＴにおいて、キーワードのハッシュ値に自己のＩＰアドレスが対応付けられていない場合）には（ステップＳ２３：Ｎ）、当該キーワードのハッシュ値及び自己のＩＰアドレスを含む問い合わせ情報を他のノード装置１へ送信する（ステップＳ２４）。そして、制御部１１は、これに応じて返信されてきた保存元となるべきノード装置１ｊのＩＰアドレスを受信した場合には（ステップＳ２５：Ｙ）、そのＩＰアドレスにより保存元となるべきノード装置１ｊを特定する（ステップＳ２６）。
【００６９】
なお、ステップＳ２４において、問い合わせ情報が他のノード装置１に送信されると、図２を用いて説明した検索方法と同じ流れ（図２の（iv）〜図２の（vii））で処理が行われ、最終的に、保存元となるべきノード装置１ｊのＩＰアドレスが返信されてくることになる。
【００７０】
一方、ステップＳ２３において、自己が保存元となるべきノード装置であると判別した場合（ステップＳ２３：Ｙ）、保存元となるべきノード装置として自己のノード装置１ａを特定する（ステップＳ２６）。
【００７１】
次に、図４に示す処理に戻り、制御部１１は、保存元となるべきノード装置１へのコンテンツデータＸの保存処理を行う（ステップＳ３）。より具体的には、上記ステップＳ２６で特定されたノード装置１が自己でない場合には、制御部１１は、ステップＳ２５にて受信したＩＰアドレスに基づき、図７の（i）に示すように、保存元となるべきノード装置１ｊに対して上記ステップＳ１で取得したコンテンツデータＸを、通信部２０及びネットワーク８を介して送信して保存させる。一方、制御部１１は、上記ステップＳ２６で特定されたノード装置１が自己である場合には、上記ステップＳ１で取得したコンテンツデータＸを、保存元となるべきノード装置１ａである自己の記憶部１２に記憶保存する。
【００７２】
次いで、制御部１１は、キーワードリストＬ１の管理元であるノード装置１の検索処理を行う（ステップＳ４）。
【００７３】
具体的には、制御部１１は、識別情報生成手段として、先ず、図６に示すように、更新前のキーワードリストＬ１（例えば、キーワードリストに記述された文字列）を上記ノードＩＤを得るときと共通のハッシュ関数にかけてハッシュ値（キーワードリストＬ１に対応する固有の識別情報の一例）を生成する（ステップＳ５１）。
【００７４】
次いで、制御部１１は、ノード装置特定手段として、上記生成されたハッシュ値に基づいて、キーワードリストＬ１の管理元であるノード装置１を特定する。例えば、制御部１１は、ＤＨＴを参照し（ステップＳ５２）、自己がキーワードリストＬ１の管理元であるノード装置１であるか否かを判別し（ステップＳ５３）、自己が管理元であるノード装置１でないと判別した場合（例えば、当該ＤＨＴにおいて、キーワードリストＬ１のハッシュ値に自己のＩＰアドレスが対応付けられていない場合）には（ステップＳ５３：Ｎ）、当該キーワードリストＬ１のハッシュ値及び自己のＩＰアドレスを含む問い合わせ情報を他のノード装置１へ送信する（ステップＳ５４）。そして、制御部１１は、これに応じて返信されてきたキーワードリストＬ１の管理元であるノード装置１ｘのＩＰアドレスを受信した場合には（ステップＳ５５：Ｙ）、そのＩＰアドレスにより管理元であるノード装置１ｘを特定する（ステップＳ５６）。
【００７５】
なお、ステップＳ５４においても、上記ステップＳ２４と同様、問い合わせ情報が他のノード装置１に送信されると、図２を用いて説明した検索方法と同じ流れ（図２の（iv）〜図２の（vii））で処理が行われ、最終的に、管理元であるノード装置１ｘのＩＰアドレスが返信されてくることになる。
【００７６】
一方、ステップＳ５３において、自己がキーワードリストＬ１の管理元であるノード装置１であると判別した場合（ステップＳ５３：Ｙ）、管理元であるノード装置１として自己のノード装置１ａを特定する（ステップＳ５６）。
【００７７】
次に、図４に示す処理に戻り、制御部１１は、他のノード装置１からの更新処理を禁止する更新処理禁止命令を、上記特定されたキーワードリストＬ１の管理元であるノード装置１へ通信部２０及びネットワーク８を介して送信する（ステップＳ５）。かかる更新処理禁止命令を受信した管理元であるノード装置１では、既に他のノード装置１からの更新処理を行っている場合（例えば、書き込み禁止フラグが立っている場合）には、上記ノード装置１ａに対し、既に他のノード装置１により書き込み中であるので当該ノード装置１ａの更新処理禁止命令を受けられない旨の情報を返信し、一方、他のノード装置１からの更新処理を行っていない場合（例えば、書き込み禁止フラグが立っていない場合）には、書き込み禁止フラグを立て、上記ノード装置１ａに対し、当該ノード装置１ａの更新処理禁止命令を受ける旨の情報を返信する。
【００７８】
これに対し、ノード装置１ａの制御部１１は、管理元であるノード装置１から返信されてきた上記情報（更新処理禁止命令を受ける旨、又は受けない旨の情報）を受信し、書き込み禁止できたか否かを判別し（ステップＳ６）、書き込み禁止できない（つまり、更新処理禁止命令を受けない旨の情報を受信した）場合には（ステップＳ６：Ｎ）、当該処理を終了する。一方、書き込み禁止できた（つまり、更新処理禁止命令を受ける旨の情報を受信した）場合には（ステップＳ６：Ｙ）、ステップＳ７へ移行する。
【００７９】
ステップＳ７では、制御部１１は、記憶部１２に記憶されているキーワードリストＬ１をキーワードリストＬ２に更新する更新処理を行う。より具体的には、制御部１１は、当該キーワードリストＬ１を記憶部１２から読み込み、図７の（ii）に示すように、上記取得したコンテンツデータＸのキーワード「ＸＸＸ」を、当該キーワードリストＬ１に追加記述して新たなキーワードリストＬ２を作成し、そのキーワードリストＬ２を記憶部１２に記憶する。
【００８０】
次に、制御部１１は、共用情報保存手段として、上記特定されたキーワードリストＬ１の管理元であるノード装置１に対して更新前のキーワードリストＬ１に対応する更新情報を保存させる保存処理を行う（ステップＳ８）。
【００８１】
より具体的には、上記ステップＳ５６で特定されたノード装置１が自己でない場合には、制御部１１は、ステップＳ５５にて受信したＩＰアドレスに基づき、図７の（iii）に示すように、管理元であるノード装置１ｘに対して上記ステップＳ１でキーワードリストＬ２に対応する更新情報を、通信部２０及びネットワーク８を介して送信して保存させ、当該処理を終了する。一方、制御部１１は、上記ステップＳ５６で特定されたノード装置１が自己である場合には、上記キーワードリストＬ２に対応する更新情報を、管理元であるノード装置１ａである自己の記憶部１２に保存する。
【００８２】
ここで、上記キーワードリストＬ２に対応する更新情報は、キーワードリストＬ２全部であってもよいし、更新前のキーワードリストＬ１の更新部分に係る部分情報（例えば、キーワードリストＬ１に対して追加記述されたキーワード）であっても良い。なお、上記キーワードリストＬ２に対応する更新情報が、キーワードリストＬ２全部である場合において、キーワードリストＬ１がキーワードリストＬ２に書き換えられる（上書きされる）ようにしてもよい。
【００８３】
なお、上記キーワードリスト保存処理が行われ、キーワードリストＬ１がキーワードリストＬ２に更新された後、コンテンツデータ登録用のノード装置１ａにおいて、再び、新たなコンテンツデータの保存要求がなされた場合も、上記と同様の処理が行われ、この場合、キーワードリストＬ２に新たなコンテンツデータのキーワードが追加記述されることにより、キーワードリストＬ３に更新され、キーワードリストＬ２の管理元であるノード装置１ｙに対してキーワードリストＬ３に対応する更新情報が保存されることになる。
【００８４】
こうして、キーワードリストは、古いバージョンのものから新しいバージョンのものに更新されていくことになるが、これに伴い、各更新段階の例えばキーワードリストＬ１、Ｌ２、Ｌ３夫々の管理元であるノード装置１ｘ、１ｙ、１ｚに更新情報が保存されていくことになる。なお、各更新段階の例えばキーワードリストＬ１、Ｌ２、Ｌ３のハッシュ値は、互いに異なる（キーワードリストに記述された文字列が異なるため）ため、これらの管理元であるノード装置１ｘ、１ｙ、１ｚも異なるものとなる。
【００８５】
各更新段階のキーワードリストの管理元を、どのノード装置１にするかは任意であるが、例えば、ノードＩＤとキーワードリストとのハッシュ値との関係から定めるようにすればより望ましい。具体的には、キーワードリストのハッシュ値と最も近い（例えば、上位桁がより多く一致する）ハッシュ値のノードＩＤを有するノード装置１を当該キーワードリストの管理元にするように構成する方法が挙げられる。
【００８６】
また、キーワードリストＬ１、Ｌ２、Ｌ３に関してハッシュ化される対象は、キーワードリストに記述された文字列に限定されるものではなく、キーワードリストＬ１、Ｌ２、Ｌ３を互いに区別可能な情報（例えば、夫々に付加されたリスト名（更新日時等を含めた名称にすれば望ましい））であれば如何なるものであってもよい。
【００８７】
以上のように、上記更新情報の保存処理が終了すると、ノード装置１ａの制御部１１は、管理元であるノード装置１ｘに対し通信部２０及びネットワーク８を介して更新処理禁止解除指令を送信し（ステップＳ９）、当該処理を終了する。これにより、管理元であるノード装置１ｘにおいては、書き込み禁止フラグをおろすことになる。
【００８８】
（キーワードリスト更新処理）
次に、図８及び図９等を参照して、キーワードリスト更新処理について説明する。
【００８９】
図８は、ノード装置１の制御部１１におけるキーワードリスト更新処理を示すフローチャートである。また、図９は、キーワードリスト更新処理において行われるキーワードリストの更新等の様子を示す概念図である。なお、図８に示す処理は、記憶部１２等に記憶された共用情報更新処理プログラムが制御部１１により実行されることにより行われる。なお、この共用情報更新処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい（上記共用情報保存処理プログラムも同様）。
【００９０】
また、以下の説明では、上記図４乃至図６の処理にて、キーワードリストＬ１、Ｌ２、及びＬ３の管理元が、夫々、ノード装置１ｘ、１ｙ、１ｚとなっている場合を想定する。
【００９１】
図８に示す処理では、ノード装置１（例えば、図９に示すノード装置１ｂとする）において、キーワードリストの更新要求がなされると（例えば、ユーザが入力部２１を操作することによる）、制御部１１は、記憶部１２に記憶している、例えば、キーワードリストＬ１を読み出し、当該キーワードリストＬ１の管理元であるノード装置１の検索処理を行う（ステップＳ１１）。このキーワードリストの管理元であるノード装置１の検索処理は、上述した図６に示す処理と同様の処理であるので、説明を省略する。
【００９２】
このステップＳ１１の検索処理を経て、例えば、キーワードリストＬ１の管理元であるノード装置１ｘが特定されると、制御部１１は、更新情報取得手段として、当該特定されたノード装置１ｘからキーワードリストＬ１に対応する更新情報を取得する取得処理を行う（ステップＳ１２）。
【００９３】
より具体的には、制御部１１は、図６に示す処理において受信したＩＰアドレスに基づき、図９の（i）に示すように、キーワードリストＬ１の管理元であるノード装置１ｘに対して、キーワードリストＬ１の更新情報を問い合わせ、図９の（i）に示すように、ノード装置１ｘからネットワーク８を介して送信されてきた更新情報を取得する。かかる更新情報には、キーワードリストＬ１の更新の有無と、更新がある場合にはその更新履歴及び更新前のキーワードリストＬ１の更新部分に係る部分（差分）情報（又は、更新後のキーワードリストＬ２全部）が含まれている。なお、更新情報を、更新後のキーワードリストＬ２全部とするよりも、更新部分に係る部分（差分）とした方が、データ量を減らすことができるので、ネットワーク負荷を軽減することができる。
【００９４】
次いで、制御部１１は、共用情報更新手段として、上記取得された更新情報に基づいて、キーワードリストＬ１の管理元であるノード装置１ｘにおいて当該キーワードリストＬ１が更新されているか否かを判別し（ステップＳ１３）、更新されている場合には（ステップＳ１３：Ｙ）、記憶部１２に記憶されているキーワードリストＬ１（第１共用情報の一例）をキーワードリストＬ１（第２共用情報の一例）に更新する更新処理を行う（ステップＳ１４）。より具体的には、更新情報に、更新前のキーワードリストＬ１の更新部分に係る部分情報（例えば、追加記述されるべきキーワード「ＸＸＸ」）が含まれている場合には、図９の（ii）に示すように、記憶部１２に記憶されているキーワードリストＬ１に当該キーワード「ＸＸＸ」を追加記述して新たなキーワードリストＬ２を作成し、記憶部１２に記憶されているキーワードリストＬ１をキーワードリストＬ２で上書保存する。一方、更新情報に、更新後のキーワードリストＬ２が含まれている場合には、記憶部１２に記憶されているキーワードリストＬ１をキーワードリストＬ２で上書保存する。
【００９５】
こうして、キーワードリストの更新処理が行われると、ステップＳ１１に戻り、今度は、更新後のキーワードリストＬ２が記憶部１２から読み出され、当該キーワードリストＬ２の管理元であるノード装置１の検索が行われ、例えば、キーワードリストＬ２の管理元であるノード装置１ｙが特定される。そして、図９の（iii）に示すように、当該特定されたノード装置１ｙからキーワードリストＬ２に対応する更新情報が取得され、キーワードリストＬ２の管理元であるノード装置１ｙにおいて当該キーワードリストＬ２が更新されているか否かが判別され、更新されている場合には、上記と同じように、記憶部１２に記憶されているキーワードリストＬ２（第２共用情報の一例）をキーワードリストＬ３（第３共用情報の一例）に更新（例えば、図９の（iv）に示すように、キーワード「ＹＹＹ」が追加記述）する更新処理が行われる。
【００９６】
このような更新処理は、上記ステップＳ１３において、キーワードリストが更新されていないと判別されるまで行なわれ、例えば、図９の（v）に示すように、キーワードリストＬ３の管理元であるノード装置１ｚからネットワーク８を介して送信されてきた更新情報にキーワードリストＬ３の更新無が示されている場合には、当該キーワードリストＬ３が最新の状態であるとしてキーワードリストを確定する（ステップＳ１５）。
【００９７】
このように最新の状態であるキーワードリストが確定されると、制御部１１は、当該キーワードリストを映像処理部１５を介して表示部１６に表示させる。このような表示状態で、ユーザは、表示されたキーワードリストに記述されているキーワードのうち、例えば所望のキーワード「ＹＹＹ」を、入力部２１を操作して選択すると、選択されたキーワード「ＹＹＹ」に対応するコンテンツデータＹの所在の検索が、図２を用いて説明したように行なわれ、その結果、当該コンテンツデータＹの保存元のノード装置１ｉのＩＰアドレスが取得され、図９の（vi）に示すように、当該ノード装置１ｉから、コンテンツデータＹが取得（ダウンロード）されることになる。こうして、取得されたコンテンツデータＹは、バッファメモリ１３に一旦蓄えられ、当該コンテンツデータＹに含まれるビデオデータ等は、デコーダ部１４及び映像処理部１５を介して表示部１６に出力、表示され、当該コンテンツデータＹに含まれるオーディオデータは、デコーダ部１４及び音声処理部１７を介してスピーカ１８に出力されることになる。
【００９８】
以上説明したように上記実施形態によれば、各更新段階の例えばキーワードリストＬ１、Ｌ２、Ｌ３夫々の管理元であるノード装置を分散させ、夫々のノード装置１に夫々のキーワードリストに対応する更新情報を保存させるようにしておき、各ノード装置１は、自己が保持しているキーワードリストに応じた管理元のノード装置にアクセスして更新情報を取得してキーワードリストを更新するので、管理サーバを設けなくても、自己が保持しているキーワードリストを効率良く更新することができ、キーワードリストの更新時にネットワーク負荷が一箇所に集中することを回避することができる。また、管理サーバを設ける必要がないので、管理サーバによる管理コストを削減することができる。
【００９９】
また、各ノード装置において、キーワードリストＬ１、キーワードリストＬ２、キーワードリストＬ３、というように古いものから最新の状態になるまで順次更新されていくので、管理サーバを設けなくても、最新の状態であるキーワードリストをいつでも効率良く取得することができる。
【０１００】
また、キーワードリストのハッシュ値及びＤＨＴを用いることで、各更新段階のキーワードリストの管理元である夫々のノード装置をより効率良く特定することができる。
【０１０１】
なお、上記実施形態においては、図７に示す処理にて、キーワードリストＬ１から、キーワードリストＬ２を経て、最新の状態であるキーワードリストＬ３が取得されるように構成したが、別の例として、例えば、キーワードリストＬ１を保持しているノード装置１が、最新の状態であるキーワードリストＬ３を直接取得できるように構成してもよい。例えば、キーワードリストＬ１を保持しているノード装置１は、コンテンツ配信システムＳに参加している何れかのノード装置１から最新の状態であるキーワードリストＬ３のリスト名を取得し、これをハッシュ化して他のノード装置１に送信し、返信されてきたキーワードリストＬ３の管理元であるノード装置１のＩＰアドレスに基づき、当該ノード装置１からキーワードリストＬ３の更新情報を取得するように構成される。より具体的には、キーワードリストの問い合わせ情報の中に、更新前キーワードリストＬ１の更新日を入れておく。この問い合わせ情報は、その管理元であるノード装置１にたどり着く間にその他のいくつかのノード装置１を経由することになるが、ここで、キーワードリストＬ１がかなり古いものであった場合、その間に経由した（通りかかった）ノード装置１が、キーワードリストＬ１よりも新しいキーワードリストを持っている可能性は高くなる。そして、経由したノード装置１がキーワードリストＬ１より新しいキーワードリストＬ３を持っていた場合には、ここで、問い合わせ情報の中にあるキーワードリストＬ１の情報（ハッシュ値、更新日等）をキーワードリストＬ３のもので書き換えて、改めて問い合わせを行えば、より早く最終的な管理元であるノード装置１にたどり着くことができる。但し、この場合、キーワードリストＬ１の管理元であるノード装置１とキーワードリストＬ２の管理元であるノード装置１への問い合わせを省略することになるので、キーワードリストＬ３の管理元であるノード装置１がもつ更新情報はキーワードリストＬ４そのもの、或いは部分情報（例えば、キーワードリストＬ１からキーワードリストＬ４に追加された部分（差分情報（Ｌ４−Ｌ１）））でなければならない。
【０１０２】
また、上記実施形態において、図２に、各ノード装置１におけるＤＨＴを用いた検索方法の一例を示したが、これに限定されるものではなく、別の例として、上記実施形態における図６に示す管理元であるノード装置の検索処理では、ステップＳ５３において、自己のノードＩＤが、キーワードリストのハッシュ値と最も近い（例えば、上位桁がより多く一致する）か否かが判別され、最も近い場合には、自己が管理元であるノード装置１となり、そうでない場合には、ＤＨＴに登録されているノードＩＤのうちで、キーワードリストのハッシュ値と最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノード装置１に対して、当該キーワードリストのハッシュ値及び自己のＩＰアドレスが送信される（ステップＳ５４）ことになる。そして、これを受けたノード装置１においても同様の処理（ステップＳ５１乃至Ｓ５４）が行われ、上記キーワードリストのハッシュ値と最も近いノードＩＤを有するノード装置１が検索されるまで、キーワードリストのハッシュ値及び自己のＩＰアドレスが他のノード装置１に送信（転送）され、最終的に、上記キーワードリストのハッシュ値と最も近いノードＩＤを有するノード装置１、即ち、管理元であるノード装置１からＩＰアドレスが送信されてくることになる。なお、このような処理は、図２に示すコンテンツデータの保存元であるノード装置１が検索される場合においても、同様に適用可能である。
【０１０３】
また、上記実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提とし、キーワード、或いはキーワードリストをハッシュ化して、かかるハッシュ値及びＤＨＴに基づいて、コンテンツデータの保存元であるノード装置、或いは、キーワードリストの管理元であるノード装置を特定（発見）するように構成したが、これの代わりに、例えば、キーワード、或いはキーワードリスト（或いは、これに付随する情報）を用いて所定の演算を行うアルゴリズムや関数（関数ｆｉｎｄ（例えば、キーワードリストに対応する数値に変換したもの）＝キーワードリストの管理元であるノード装置１のＩＰアドレス）により、コンテンツデータの保存元であるノード装置、或いは、キーワードリストの管理元であるノード装置を特定（発見）するように構成してもよい。
【０１０４】
また、上記実施形態においては、制御部１１が、所定のハッシュ関数によりキーワードリストのハッシュ値を生成するように構成したが、これに限定されるものではなく、キーワードリストに基づいて、当該キーワードリストに対応するキーワードリストＩＤ（他と識別可能な）を生成して、これに基づいて、キーワードリストの管理元であるノード装置１を特定するように構成してもよい。
【０１０５】
また、上記実施形態においては、複数のノード装置１において共通に使用されるべき共用情報としてキーワードリストを例にとって説明したが、これに限定されるものではなく、例えば複数のノード装置１において共通に使用されるべきソースプログラム等、複数のユーザが共通して持つ必要のある共用データに対して適用してもよい。この場合も、各更新段階（バージョン）の共用データの管理元であるノード装置１が複数存在することになり、図６に示す処理（キーワードリストが共用データに置き換える）により、各ノード装置１は、更新前の共用データから更新後の共用データの管理元であるノード装置１を検索（特定）可能となる。
【図面の簡単な説明】
【０１０６】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ＤＨＴによりコンテンツデータの保存元であるノード装置１が検索される様子の一例を示す図である。
【図３】ノード装置１の概要構成例を示す図である。
【図４】ノード装置１の制御部１１におけるキーワードリスト保存処理のメインルーチンを示すフローチャートである。
【図５】ノード装置１の制御部１１におけるキーワードリスト保存処理のサブルーチンを示すフローチャートである。
【図６】ノード装置１の制御部１１におけるキーワードリスト保存処理のサブルーチンを示すフローチャートである。
【図７】キーワードリスト保存処理において行われるコンテンツデータの保存、及びキーワードリストの保存等の様子を示す概念図である。
【図８】ノード装置１の制御部１１におけるキーワードリスト更新処理を示すフローチャートである。
【図９】キーワードリスト更新処理において行われるキーワードリストの更新等の様子を示す概念図である。
【符号の説明】
【０１０７】
１  ノード装置
８  ネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
１９  エンコーダ部
２０  通信部
２１  入力部
２２  バス
Ｓ  コンテンツ配信システム
【図１】
2006099503.tif 000003
【図２】
2006099503.tif 000004
【図３】
2006099503.tif 000005
【図４】
2006099503.tif 000006
【図５】
2006099503.tif 000007
【図６】
2006099503.tif 000008
【図７】
2006099503.tif 000009
【図８】
2006099503.tif 000010
【図９】
2006099503.tif 000011