(57)【要約】【課題】システムに参加しているときに使用していたリンク情報を、ハードディスク等に記憶させておくことにより、特定のノード装置の処理負担を課すことなく、システム参加時に最新のリンク情報を取得することができるノード装置等を提供することを課題とする。【解決手段】本発明は、複数のノード装置によって共用される複数の共用情報が、複数のノード装置により構成されるオーバーレイネットワークにより、分散されて保存されている情報通信システムに含まれる前記ノード装置において、前記参加通知の送信先の前記ノード装置から、当該送信先のノード装置が記憶している前記リンク情報を取得する前記リンク情報取得手段を有することを特徴とする。【選択図】図５
2011060309.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置を備え、当該複数のノード装置によって共用される複数の共用情報が、複数のノード装置により構成されるオーバーレイネットワークにより、分散されて保存されている情報通信システムに含まれる前記ノード装置において、
前記オーバーレイネットワークを介して前記ノード装置と通信をする際に使用するリンク情報であって、複数の特定のノード装置を示すノード情報を含む前記リンク情報を記憶する揮発性の第１記憶手段と、
前記第１記憶手段を備えるノード装置自身が前記情報通信システムに参加している際に、前記第１記憶手段に記憶された前記リンク情報を、所定のタイミングで不揮発性の第２記憶手段に記憶させる第１記憶制御手段と、
前記第１記憶手段を備えるノード装置自身が前記情報通信システムから脱退した後、再び前記情報通信システムに参加する際に、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報のいずれかを用いて、前記第１記憶手段に記憶すべき前記リンク情報を取得するリンク情報取得手段であって、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報を読み出すノード情報読み出し手段と、読み出された前記ノード情報に基づいて、当該ノード情報にかかる前記ノード装置に対して前記情報通信システムに参加する旨を知らせる参加通知を送信する参加通知手段と、前記参加通知の送信が成功したか否かを判断する参加通知送信可否判断手段と、を有し、前記参加通知送信可否判断手段により前記参加通知の送信が成功したと判断された場合には、前記参加通知の送信先の前記ノード装置から、当該送信先のノード装置が記憶している前記リンク情報を取得する前記リンク情報取得手段と、
前記リンク情報取得手段により取得されたリンク情報を、前記第１記憶手段に記憶させる第２記憶制御手段と、
を有することを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記第１記憶手段は、前記リンク情報として、前記オーバーレイネットワークを介して、前記情報通信システムに含まれる他の前記ノード装置との通信に使用する複数の前記ノード情報を含むテーブル情報を記憶し、
前記第１記憶制御手段は、前記第１記憶手段に記憶された前記テーブル情報を前記所定のタイミングで前記第２記憶手段に記憶させ、
前記ノード情報読み出し手段は、前記第２記憶手段に記憶された前記テーブル情報に含まれる前記ノード情報を読み出し、
前参加通知手段は、前記ノード情報読み出し手段により前記テーブル情報から読み出された前記ノード情報に基づいて、当該ノード情報にかかる前記ノード装置に対して前記参加通知を送信し、
前記リンク情報取得手段は、前記参加通知送信可否判断手段により前記参加通知の送信が成功したと判断された場合には、前記参加通知の送信先の前記ノード装置から、当該送信先のノード装置が記憶している前記テーブル情報を取得し、
前記第２記憶制御手段は、前記リンク情報取得手段により取得された前記テーブル情報を前記第１記憶手段に記憶させることを特徴とするノード装置。
【請求項３】
請求項１または請求項２に記載のノード装置において、
前記第１記憶手段は、前記複数の共用情報のうち、当該ノード装置自身が管理すべき前記共用情報を保存する前記ノード装置の所在を示す所在情報と、前記複数のノード装置で共用される前記複数の共用情報にかかる共用情報関連情報と、を記憶し、
前記第１記憶制御手段は、前記第１記憶手段に記憶された前記所在情報及び前記共用情報関連情報を、前記所定のタイミングで前記第２記憶手段に記憶させ、
前記第２記憶制御手段は、当該ノード装置自身が前記情報通信システムから脱退した後、再び前記情報通信システムに参加する際に、前記第２記憶手段に記憶された前記所在情報及び前記共用情報関連情報を再び前記第１記憶手段に記憶させることを特徴とするノード装置。
【請求項４】
請求項１乃至３のいずれか一項に記載のノード装置において、
前記所定のタイミングは、所定時間が経過する都度、或いは、前記情報通信システムに含まれる他の前記ノード装置との情報の授受に起因して、前記第１記憶手段に記憶された前記リンク情報、前記所在情報又は前記共用情報関連情報が更新される都度、或いは、ノード装置自身の電源がオフとされる際、の少なくとも何れかであることを特徴とするノード装置。
【請求項５】
請求項１乃至４のいずれか一項に記載のノード装置において、
前記情報通信システムは、オーバーレイネットワークによって前記各ノード装置が接続され、
前記リンク情報に含まれる前記ノード情報は、当該ノード情報にかかるノード装置を、前記オーバーレイネットワークの識別情報空間にて一意に識別するためのノードＩＤと、当該ノード装置の宛先情報と、を含むことを特徴とするノード装置。
【請求項６】
請求項１乃至５のいずれか一項に記載のノード装置において、
前記第１記憶手段は、前記ノード装置に具備されるＲＡＭであり、
前記第２記憶手段は、ハードディスク、又はフラッシュメモリ、又はＥＥＰＲＯＭ、又はバックアップ電源付き半導体メモリであることを特徴とするノード装置。
【請求項７】
ネットワークを介して互いに通信可能な複数のノード装置を備え、当該複数のノード装置によって共用される複数の共用情報が、複数のノード装置により構成されるオーバーレイネットワークにより、分散されて保存されている情報通信システムにおける前記ノード装置のコンピュータに、
前記オーバーレイネットワークを介して前記ノード装置と通信をする際に使用するリンク情報であって、複数の特定のノード装置を示すノード情報を含む前記リンク情報を揮発性の第１記憶手段に記憶するステップと、
前記第１記憶手段を備えるノード装置自身が前記情報通信システムに参加している際に、前記第１記憶手段に記憶された前記リンク情報を、所定のタイミングで不揮発性の第２記憶手段に記憶させる第１記憶制御ステップと、
前記第１記憶手段を備えるノード装置自身が前記情報通信システムから脱退した後、再び前記情報通信システムに参加する際に、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報のいずれかを用いて、前記第１記憶手段に記憶すべき前記リンク情報を取得するリンク情報取得ステップであって、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報を読み出すステップと、
読み出された前記ノード情報に基づいて、当該ノード情報にかかる前記ノード装置に対して前記情報通信システムに参加する旨を知らせる参加通知を送信する参加通知ステップと、
前記参加通知の送信が成功したか否かを判断する参加通知送信可否判断ステップと、
を有し、
前記参加通知送信可否判断ステップにより前記参加通知の送信が成功したと判断された場合には、前記参加通知の送信先の前記ノード装置から、当該送信先のノード装置が記憶している前記リンク情報を取得する前記リンク情報取得ステップと、
取得された前記リンク情報を、前記第１記憶手段に記憶させる第２記憶制御ステップと、
を実行させることを特徴とする記憶制御プログラム。
【請求項８】
ネットワークを介して互いに通信可能な複数のノード装置を備え、当該複数のノード装置によって共用される複数の共用情報が、複数のノード装置により構成されるオーバーレイネットワークにより、分散されて保存されている情報通信システムにおける情報記憶方法において、
前記オーバーレイネットワークを介して前記ノード装置と通信をする際に使用するリンク情報であって、複数の特定のノード装置を示すノード情報を含む前記リンク情報を揮発性の第１記憶手段に記憶する工程と、
前記第１記憶手段を備えるノード装置自身が前記情報通信システムに参加している際に、前記第１記憶手段に記憶された前記リンク情報を、所定のタイミングで不揮発性の第２記憶手段に記憶させる第１記憶制御工程と、
前記第１記憶手段を備えるノード装置自身が前記情報通信システムから脱退した後、再び前記情報通信システムに参加する際に、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報を用いて、前記第１記憶手段に記憶すべき前記リンク情報を取得するリンク情報取得工程であって、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報のいずれかを読み出す工程と、読み出された前記ノード情報に基づいて、当該ノード情報にかかる前記ノード装置に対して前記情報通信システムに参加する旨を知らせる参加通知を送信する工程と、前記参加通知の送信が成功したか否かを判断する参加通知送信可否判断工程と、を有し、前記参加通知送信可否判断工程により前記参加通知の送信が成功したと判断された場合には、前記参加通知の送信先の前記ノード装置から、当該送信先のノード装置が記憶している前記リンク情報を取得する前記リンク情報取得工程と、
取得された前記リンク情報を、前記第１記憶手段に記憶させる第２記憶制御工程と、
を有することを特徴とする情報記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備え、当該複数のノード装置によって共用される複数の共用情報が、複数のノード装置に分散されて保存されている情報通信システムに含まれるノード装置等の技術分野に関する。
【背景技術】
【０００２】
近年、ネットワークに属するノード装置間で、音楽や映画等の様々なコンテンツが相互に直接授受される情報通信システム、例えば、各コンテンツを複数のノード装置間で分散して複数のノード装置で共用させるＰ２Ｐ型の情報通信システムについての研究開発が盛んである。このＰ２Ｐ型のシステムは、従来のクライアント・サーバ型のモデルの欠点である、サーバへのアクセス集中や、高い管理コストを解決する手法として注目されている。
【０００３】
また、ピアツーピア型の情報通信システムにおいて、例えば、分散ハッシュテーブル（以下、ＤＨＴ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ）という）を利用して論理的に構築されたオーバーレイネットワークでは、各ノード装置が当該オーバーレイネットワークに参加している全てのノード装置へのリンク情報（例えば、宛先情報など）を認識しているわけではなく、オーバーレイネットワークに参加する際に最初にアクセスするコンタクトノード装置等から得られる一部のノード装置へのリンク情報だけをテーブル情報としてＲＡＭ（Ｒａｎｄｏｍ
Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に所持しており、データの問い合わせ等を行なう際には、ＣＰＵがＲＡＭに直接アクセスして、テーブル情報を参照するようになっている。特許文献１、２には、ＤＨＴに係る技術が開示されている。
【０００４】
また、システム内の各ノード装置にて複数のコンテンツを分散して保存するだけでなく、各コンテンツがどのノード装置に保持されているのかというコンテンツの所在に関する情報についても、キャッシュ情報として各ノード装置で分散して管理している。
【特許文献１】特開２００３−９９３３７号公報
【特許文献２】特開２００３−２１６５２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このような、オーバーレイネットワークに参加しているノード装置が、システムから脱退（電源をオフにする）すると、ＲＡＭに記憶していた他のノード装置との通信に使用していたリンク情報等が全て失われてしまう。
【０００６】
そして、再度オーバーレイネットワークに参加する際には、再度コンタクトノード装置からリンク情報を取得する必要がある。
【０００７】
しかし、地域的な停電等が復旧した直後には、多数のノード装置からコンタクトノード装置へのアクセスが集中するので、コンタクトノード装置に、過大な処理負担を課すこととなる。また、この処理負担は、システムに参加するノード装置が増えるほど深刻になり、コンタクトノード装置だけでなく、ネットワーク全体がダウンする恐れもある。
【０００８】
本発明は、以上の点に鑑みてなされたものであり、システムに参加しているときに使用していたリンク情報を、システムから脱退した後も消去されずに残るハードディスク等に記憶させておくことにより、システムへの再参加時に、ハードディスク等に記憶させておいたリンク情報に含まれるノード情報に基づいて、システム再参加時に利用するリンク情報を取得することにより、特定のノード装置の処理負担を課すことなく、システム参加時に最新のリンク情報を取得することができるノード装置、記憶制御プログラム、及び情報記憶方法を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備え、当該複数のノード装置によって共用される複数の共用情報が、複数のノード装置により構成されるオーバーレイネットワークにより、分散されて保存されている情報通信システムに含まれる前記ノード装置において、前記オーバーレイネットワークを介して前記ノード装置と通信をする際に使用するリンク情報であって、複数の特定のノード装置を示すノード情報を含む前記リンク情報を記憶する揮発性の第１記憶手段と、前記第１記憶手段を備えるノード装置自身が前記情報通信システムに参加している際に、前記第１記憶手段に記憶された前記リンク情報を、所定のタイミングで不揮発性の第２記憶手段に記憶させる第１記憶制御手段と、前記第１記憶手段を備えるノード装置自身が前記情報通信システムから脱退した後、再び前記情報通信システムに参加する際に、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報のいずれかを用いて、前記第１記憶手段に記憶すべき前記リンク情報を取得するリンク情報取得手段であって、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報を読み出すノード情報読み出し手段と、読み出された前記ノード情報に基づいて、当該ノード情報にかかる前記ノード装置に対して前記情報通信システムに参加する旨を知らせる参加通知を送信する参加通知手段と、前記参加通知の送信が成功したか否かを判断する参加通知送信可否判断手段と、を有し、前記参加通知送信可否判断手段により前記参加通知の送信が成功したと判断された場合には、前記参加通知の送信先の前記ノード装置から、当該送信先のノード装置が記憶している前記リンク情報を取得する前記リンク情報取得手段と、前記リンク情報取得手段により取得されたリンク情報を、前記第１記憶手段に記憶させる第２記憶制御手段と、を有することを特徴とするノード装置である。
【００１０】
上記課題を解決するために、請求項２に記載の発明は、請求項１に記載のノード装置において、前記第１記憶手段は、前記リンク情報として、前記オーバーレイネットワークを介して、前記情報通信システムに含まれる他の前記ノード装置との通信に使用する複数の前記ノード情報を含むテーブル情報を記憶し、前記第１記憶制御手段は、前記第１記憶手段に記憶された前記テーブル情報を前記所定のタイミングで前記第２記憶手段に記憶させ、前記ノード情報読み出し手段は、前記第２記憶手段に記憶された前記テーブル情報に含まれる前記ノード情報を読み出し、前参加通知手段は、前記ノード情報読み出し手段により前記テーブル情報から読み出された前記ノード情報に基づいて、当該ノード情報にかかる前記ノード装置に対して前記参加通知を送信し、前記リンク情報取得手段は、前記参加通知送信可否判断手段により前記参加通知の送信が成功したと判断された場合には、前記参加通知の送信先の前記ノード装置から、当該送信先のノード装置が記憶している前記テーブル情報を取得前記第２記憶制御手段は、前記リンク情報取得手段により取得された前記テーブル情報を前記第１記憶手段に記憶させることを特徴とするノード装置である。
【００１１】
上記課題を解決するため、請求項３に記載の発明は、請求項１または請求項２に記載のノード装置において、前記第１記憶手段は、前記複数の共用情報のうち、当該ノード装置自身が管理すべき前記共用情報を保存する前記ノード装置の所在を示す所在情報と、前記複数のノード装置で共用される前記複数の共用情報にかかる共用情報関連情報と、を記憶し、前記第１記憶制御手段は、前記第１記憶手段に記憶された前記所在情報及び前記共用情報関連情報を、前記所定のタイミングで前記第２記憶手段に記憶させ、前記第２記憶制御手段は、当該ノード装置自身が前記情報通信システムから脱退した後、再び前記情報通信システムに参加する際に、前記第２記憶手段に記憶された前記所在情報及び前記共用情報関連情報を再び前記第１記憶手段に記憶させることを特徴とするノード装置である。
【００１２】
これによれば、情報通信システムに参加している各ノード装置は、システムに参加中に、取得したキャッシュ情報とカタログ情報を、ＲＡＭ等の第１記憶手段から、第２記憶手段に記憶させておき、システムから脱退した後、再びシステムに参加する際には、当該第２記憶手段に記憶しておいたキャッシュ情報とカタログ情報を第１記憶手段に記憶して、利用することができるので、よりスムーズにシステムに参加することができる。
【００１３】
上記課題を解決するため、請求項４に記載の発明は、請求項１乃至３のいずれか一項に記載のノード装置において、前記所定のタイミングは、所定時間が経過する都度、或いは、前記情報通信システムに含まれる他の前記ノード装置との情報の授受に起因して、前記第１記憶手段に記憶された前記リンク情報、前記所在情報又は前記共用情報関連情報が更新される都度、或いは、ノード装置自身の電源がオフとされる際、の少なくとも何れかであることを特徴とするノード装置である。
【００１４】
これによれば、システムに参加しているときに、リンク情報等を確実に第２記憶手段に記憶することができる。
【００１５】
上記課題を解決するため、請求項５に記載の発明は、請求項１乃至４のいずれか一項に記載のノード装置において、前記情報通信システムは、オーバーレイネットワークによって前記各ノード装置が接続され、前記リンク情報に含まれる前記ノード情報は、当該ノード情報にかかるノード装置を、前記オーバーレイネットワークの識別情報空間にて一意に識別するためのノードＩＤと、当該ノード装置の宛先情報と、を含むことを特徴とするノード装置である。
【００１６】
これによれば、他のノード装置と通信に必須である当該他のノード装置のノードＩＤ及び宛先情報を含むノード情報を記憶するので、スムーズにピアツーピア型の情報通信システムに再参加することができる。
【００１７】
上記課題を解決するため、請求項６に記載の発明は、請求項１乃至５のいずれか一項に記載のノード装置において、前記第２記憶手段は、ハードディスク、又はフラッシュメモリ、又はＥＥＰＲＯＭ、又はバックアップ電源付き半導体メモリであることを特徴とするノード装置である。
【００１８】
これによれば、第２の記憶手段が、ハードディスク、又はフラッシュメモリ、又はＥＥＰＲＯＭ、又はバックアップ電源付き半導体メモリの何れであっても、システムに参加中に、他の各ノード装置と通信をする際に使用するリンク情報を、ＲＡＭ等の第１記憶手段から、第２記憶手段に記憶させておくことができ、再びシステムに参加する際に、当該第２記憶手段に記憶されたリンク情報に基づいて最新のリンク情報を取得することができる。
【００１９】
上記課題を解決するため、請求項７に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備え、当該複数のノード装置によって共用される複数の共用情報が、複数のノード装置により構成されるオーバーレイネットワークにより、分散されて保存されている情報通信システムにおける前記ノード装置のコンピュータに、前記オーバーレイネットワークを介して前記ノード装置と通信をする際に使用するリンク情報であって、複数の特定のノード装置を示すノード情報を含む前記リンク情報を揮発性の第１記憶手段に記憶するステップと、前記第１記憶手段を備えるノード装置自身が前記情報通信システムに参加している際に、前記第１記憶手段に記憶された前記リンク情報を、所定のタイミングで不揮発性の第２記憶手段に記憶させる第１記憶制御ステップと、前記第１記憶手段を備えるノード装置自身が前記情報通信システムから脱退した後、再び前記情報通信システムに参加する際に、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報のいずれかを用いて、前記第１記憶手段に記憶すべき前記リンク情報を取得するリンク情報取得ステップであって、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報を読み出すステップと、読み出された前記ノード情報に基づいて、当該ノード情報にかかる前記ノード装置に対して前記情報通信システムに参加する旨を知らせる参加通知を送信する参加通知ステップと、前記参加通知の送信が成功したか否かを判断する参加通知送信可否判断ステップと、を有し、前記参加通知送信可否判断ステップにより前記参加通知の送信が成功したと判断された場合には、前記参加通知の送信先の前記ノード装置から、当該送信先のノード装置が記憶している前記リンク情報を取得する前記リンク情報取得ステップと、取得された前記リンク情報を、前記第１記憶手段に記憶させる第２記憶制御ステップと、を実行させることを特徴とする記憶制御プログラムである。
【００２０】
上記課題を解決するため、請求項８に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備え、当該複数のノード装置によって共用される複数の共用情報が、複数のノード装置により構成されるオーバーレイネットワークにより、分散されて保存されている情報通信システムにおける情報記憶方法において、前記オーバーレイネットワークを介して前記ノード装置と通信をする際に使用するリンク情報であって、複数の特定のノード装置を示すノード情報を含む前記リンク情報を揮発性の第１記憶手段に記憶する工程と、前記第１記憶手段を備えるノード装置自身が前記情報通信システムに参加している際に、前記第１記憶手段に記憶された前記リンク情報を、所定のタイミングで不揮発性の第２記憶手段に記憶させる第１記憶制御工程と、前記第１記憶手段を備えるノード装置自身が前記情報通信システムから脱退した後、再び前記情報通信システムに参加する際に、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報を用いて、前記第１記憶手段に記憶すべき前記リンク情報を取得するリンク情報取得工程であって、前記第２記憶手段に記憶された前記リンク情報に含まれる前記ノード情報のいずれかを読み出す工程と、読み出された前記ノード情報に基づいて、当該ノード情報にかかる前記ノード装置に対して前記情報通信システムに参加する旨を知らせる参加通知を送信する工程と、前記参加通知の送信が成功したか否かを判断する参加通知送信可否判断工程と、を有し、前記参加通知送信可否判断工程により前記参加通知の送信が成功したと判断された場合には、前記参加通知の送信先の前記ノード装置から、当該送信先のノード装置が記憶している前記リンク情報を取得する前記リンク情報取得工程と、取得された前記リンク情報を、前記第１記憶手段に記憶させる第２記憶制御工程と、を有することを特徴とする情報記憶方法である。
【発明の効果】
【００２１】
本発明によれば、情報通信システムに参加している各ノード装置は、他の各ノード装置と通信をする際に使用するノード情報からなるテーブル情報等のリンク情報を、ＲＡＭ等の第１記憶手段から、第２記憶手段に記憶させておき、システムから脱退した後、再びシステムに参加する際には、当該第２記憶手段に記憶しておいたリンク情報に含まれるノード情報を用いて、システムに参加している他のノード装置から、第１記憶手段に記憶すべきリンク情報を取得するよう構成したので、特定のノード装置のみが過大な処理負担を受けることなく、システムに参加する際に、最新のリンク情報を取得することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ノード装置１の概要構成例を示すブロック図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】（Ａ）レベル１のテーブルの一例である。（Ｂ）レベル２のテーブルの一例である。（Ｃ）レベル３のテーブルの一例である。（Ｄ）完成したルーティングテーブルの一例である。
【図５】（Ａ）（Ｄ）ノード装置１がコンテンツ配信システムＳに参加する際の様子をＤＨＴのＩＤ空間にて示した図である。（Ｂ）（Ｃ）コンテンツ配信システムＳに参加中のノード装置１の様子をＤＨＴのＩＤ空間にて示した図である。
【図６】ＤＨＴのＩＤ空間におけるコンテンツＩＤとノードＩＤの一例を示す図である。
【図７】コンテンツが公開される際の様子と、コンテンツが検索される際の様子をＤＨＴのＩＤ空間にて示した図である。
【図８】ノード装置１におけるメイン処理の一例を示すフローチャートである。
【図９】ノード装置１における「テーブル情報の読込み処理」の一例を示すフローチャートである。
【図１０】（Ａ）ノード装置１における「キャッシュ情報の読込み処理」の一例を示すフローチャートである。（Ｂ）ノード装置１における「カタログ情報の読込み処理」の一例を示すフローチャートである。
【図１１】ノード装置１における「ＲＡＭに記憶されたテーブル情報、キャッシュ情報及びカタログ情報を、ハードディスク記憶部２２へ保存する処理」の一例を示すフローチャートである。
【図１２】ノード装置１における「ＲＡＭに記憶されたテーブル情報、キャッシュ情報及びカタログ情報を、ハードディスク記憶部２２へ保存する処理」の一例を示すフローチャートである。
【発明を実施するための最良の形態】
【００２３】
＜１．コンテンツ配信システムの構成等＞
始めに、図１を参照して、複数のノード装置で情報を共用する情報通信システムとしてのコンテンツ配信システムの概要構成等について説明する。
【００２４】
図１は、本実施形態に係るコンテンツ配信システムＳにおける各ノード装置の接続態様の一例を示す図である。
【００２５】
図１の下部枠５０１内に示すように、中継装置としてのＩＸ（Ｉｎｔｅｒｎｅｔ  ｅＸｃｈａｎｇｅ）３、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）４、ＤＳＬ（Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）回線事業者の装置５、ＦＴＴＨ（Ｆｉｂｅｒ  Ｔｏ  Ｔｈｅ  Ｈｏｍｅ）回線事業者の装置６、及び通信回線（例
えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。
【００２６】
そして、このようなネットワーク８を介して相互に接続された各ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス及びポート番号の宛先情報と、各ノード装置を特定し、一のノード装置を一意に識別するための固有の値としてのノードＩＤ（ＩＤｅｎｔｉｆｉｅｒ）と、がノード情報として割り当てられている。これらノードＩＤは複数のノード装置間で重複しないものである。なお、以下の説明において、ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置１という場合がある。
【００２７】
また、コンテンツ配信システムＳにおいて、当該ノード装置１が、他のノード装置１の持つ情報にアクセスする際には、その情報を持つノード装置１のＩＰアドレス等の宛先情報を知っていなければならない。
【００２８】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠５００内に示すような、オーバーレイネットワーク９が構築されることになる。つまり、このオーバーレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味し、本実施形態のコンテンツ配信システムＳは、当該オーバーレイネットワーク９に参加する複数のノード装置１により構成されることになる。
【００２９】
ノードＩＤは、各ノード装置を一意に識別することができるものであればよく、例えば、工場出荷時に予め割り振られる製造番号やマシン名等を共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値をＧＵＩＤ（Ｇｌｏｂａｌ  Ｕｎｉｑｕｅ  ＩＤｅｎｔｉｆｉｅｒ）として用い、これをノードＩＤとして各ノード装置１に用いることが可能である。
【００３０】
またノードＩＤは、コンテンツ配信システムＳにおけるノード装置の最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、２＾１２８≒３４０×１０＾３６台のノード装置を運用できる。実際には既知のハッシュ関数であるＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）（生成桁数１６０ｂｉｔ）やＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）（
生成桁数１２０Ｂｉｔ）を用いることが想定される。このように共通のハッシュ関数により求められたノードＩＤは、当該製造番号やマシン名が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【００３１】
＜１−２．ノード装置の構成及び機能＞
次に、ノード装置１の構成及び機能について説明する。図２は、ノード装置１の概要構成例を示すブロック図である。同図に示すように、実施形態に係るノード装置１は、演算機能を有するＣＰＵと、テーブル情報（リンク情報の一例）、キャッシュ情報（所在情報の一例）、カタログ情報（共用情報関連情報の一例）等を記憶する作業用ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（第１記憶手段の一例）と、各種データ及びプログラム（本発明の記憶制御プログラムを含む）を記憶するＲＯＭ等と、から構成されたコンピュータとしての制御部１１と、プログラム等を記憶保存（格納）するためのＨＤＤ等から構成された記憶部１２（コンテンツデータは、保存されていないノード装置１もある）と、受信したコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Ｄｉｇｉｔａｌ）／Ａ（Ａｎａｌｏｇ）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノード装置１との間の情報の通信制御を行なうための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力手段としての入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、コンテンツデータ、及びテーブル情報、キャッシュ情報、カタログ情報などを記憶する書き換え可能な不揮発性の記憶手段であるハードディスク記憶部２２（第２記憶手段の一例）を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、通信部２０、及びハードディスク記憶部２２はバス２３を介して相互に接続されている。
【００３２】
そして、制御部１１におけるＣＰＵが記憶部１２等に記録された各種プログラムを実行することにより、制御部１１が、実施形態に係るノード装置１としての全体動作を統括制御し、上記各構成部材と協動して、第１記憶手段、第２記憶手段、第１記憶制御手段、第２記憶制御手段、第３記憶制御手段、リンク情報取得手段、ノード情報読み出し手段、参加通知手段、参加通知送信可否判断手段、リンク情報受信手段、ノード情報有無判断手段、ノード情報選択手段、削除手段、共用情報記憶手段、公開通知手段、第１保存時間判断手段、第２保存時間判断手段、及び公開通知送信可否判断手段として機能する。
【００３３】
また、コンテンツ配信システムＳに初めて参加するノード装置が最初にアクセスするコンタクト用ノード装置１ＣＣは、本発明の参加管理ノード装置の一例であり、当該システムに参加しながら、システムに未参加のノード装置１から参加メッセージを受信すると、当該ノード装置１に自己が記憶するテーブル情報を送信する。
【００３４】
以下、本実施形態に係る分散ハッシュテーブル（以下、ＤＨＴ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ）という）を利用したアルゴリズム及びコンテンツ配信の具体的なしくみについて説明する中で、本発明の第１記憶手段の一例である制御部１１のＲＡＭ、及び第２記憶手段の一例であるハードディスク記憶部２２に記憶されるテーブル情報等について詳細に説明する。
【００３５】
＜１−３．ＤＨＴの概要＞
以下に、本実施形態に係る分散ハッシュテーブル（以下、ＤＨＴ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ）という）を利用したアルゴリズムについて説明する。
【００３６】
本実施形態は、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提としており、このオーバーレイネットワーク９（図１の上部枠５００内）に配置されたノード装置１が、オーバーレイネットワーク９に参加しているノード装置１、言い換えれば、コンテンツ配信システムＳに参加しているノード装置１である。
【００３７】
このようなコンテンツ配信システムＳへの参加は、参加していないノード装置１が、他のノード装置との通信に使用するためのテーブル情報（リンク情報の一例）であって、システムに参加しているノード装置（コンタクト用ノード装置１ＣＣを含む）が有する最新のテーブル情報を取得する必要があるが、本発明は、コンテンツ配信システムＳに参加しているときに、制御部１１のＲＡＭに記憶して使用していたテーブル情報を、ハードディスク記憶部２２に保存しておき、再度システムに参加する際には、当該ハードディスク記憶部２２に保存したテーブル情報に含まれるノード情報に基づいて、最新のテーブル情報を取得するよう構成する。具体的には、ハードディスク記憶部２２に保存したテーブル情報に含まれるノード情報にかかるノード装置１に対してシステムへの参加を要求して、テーブル情報をコピーさせてもらうよう構成することで、固定のコンタクト用ノード装置１ＣＣに処理負担を課すことなく、最新のテーブル情報を取得することができるものである。
【００３８】
次に、図３及び図４を参照して、テーブル情報の作成手法の一例について説明する。なお、当該テーブル情報は、複数のノード装置間を転送しつつ作成（更新）されるので、ルーティングテーブルとも呼ぶ。
【００３９】
図３は、ルーティングテーブル（テーブル情報）が作成される様子の一例を示す図であり、図４は、ルーティングテーブル（テーブル情報）の一例を示す図である。
【００４０】
まず、図４（Ａ）に示す如く、ＩＤ空間を幾つかのエリアに分割する。なお、このエリアはルーティングテーブルを作成するためにＩＤ空間を分割したものであって、実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長１６Ｂｉｔの４進数で表すこととした。そして、ノード装置１ＮのノードＩＤを「１０２３０２１０」とし、このノード装置１Ｎのルーティングテーブルを作る例について説明する。
【００４１】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とすると、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「０ＸＸＸＸＸＸＸ」「１ＸＸＸＸＸＸＸ」、「２ＸＸＸＸＸＸＸ」、「３ＸＸＸＸＸＸＸ」（Ｘは０から３の
自然数、以下同様。）で分けられる。あるノード装置（以下、ノード装置１Ｎと言う。）は、当該ノード装置１Ｎ自身のノードＩＤが「１０２３０２１０」であるため、図中左下「１ＸＸＸＸＸＸＸ」のエリアに存在することになる。そして、ノード装置１Ｎは、自分の存在するエリア（すなわち、「１ＸＸＸＸＸＸＸ」のエリア）以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレス等の宛先情報をレベル１のテーブルに記憶する。図４（Ａ）がレベル１のテーブルの一例である。２列目はノード装置１Ｎ自身を示しているため、ＩＰアドレス等の宛先情報を記憶する必要は無い。
【００４２】
（レベル２のルーティング）
次に、図３（Ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「１０ＸＸＸＸＸＸ」「１１ＸＸＸＸＸＸ」、「１２ＸＸＸＸＸＸ」、「１３ＸＸＸＸＸＸ」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレス等の宛先情報をレベル２のテーブルに記憶する。図４（Ｂ）がレベル２のテーブルの一例である。１列目はノード装置１Ｎ自身を示しているため、宛先情報を記憶する必要は無い。
【００４３】
（レベル３のルーティング）
さらに、図３（Ｃ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「１００ＸＸＸＸＸ」「１０１ＸＸＸＸＸ」、「１０２ＸＸＸＸＸ」、「１０３ＸＸＸＸＸ」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレス等の宛先情報をレベル１のテーブルに記憶する。図４（Ｃ）がレベル３のテーブルの一例である。３列目はノード装置１Ｎ自身を示しているため、ＩＰアドレス等の宛先情報を記憶する必要は無く、２列目、４列目はそのエリアにノード装置が存在しないため空白となる。
【００４４】
このようにして、レベル４以下レベル８まで同様にルーティングテーブルを図４（Ｄ）に示す如く作成することにより、１６ｂｉｔのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００４５】
このように、各ノード装置１は、他のノード装置１のＩＰアドレス等の宛先情報と、ノードＩＤ空間のエリア、すなわちＤＨＴの各レベル及び各列と、を対応付けて記憶している。つまり、各ノード装置１は、複数に分けられた各エリアに属する一のノードのＩＰアドレス等の宛先情報を、夫々のエリアに対応付けて一の段階（レベル）として規定し、さらに自己が属するエリアが複数のエリアに分けられ、当該分けられた各エリアに属する一のノード装置１のＩＰアドレス等の宛先情報を、夫々のエリアに対応付けて次の段階（レベル）として規定するルーティングテーブル（以下、テーブル情報と呼ぶ）を制御部１１のＲＡＭに記憶している。
【００４６】
実際に、コンテンツ配信システムＳに未参加のノード装置１が、コンテンツ配信システムＳに参加して、上述したようなテーブル情報を取得するには、まず、過去にシステムに参加したことがなく、初めてシステムに参加する際（新規参加）には、コンタクト用ノード装置１ＣＣに対して「参加メッセージ」（参加通知の一例）を送信して、コンタクト用ノード装置１ＣＣからテーブル情報を取得する（図５（Ａ）参照）。
【００４７】
そして、ノード装置１は、コンタクト用ノード装置１ＣＣから取得したテーブル情報を、システムに参加している間中制御部１１のＲＡＭに記憶して、コンテンツの検索や、コンテンツの公開の際に行なわれるメッセージ転送の際に、利用し、また、動的に最新の情報に書き換えていく（図５（Ｂ）参照）。具体的には、メッセージ転送やコンテンツ配信等の際に、他のノード装置１の存在を知ったタイミングで、その装置のノードＩＤがテーブルのどのマス目に適合するかを判断して、各テーブルの内容を追記（更新）していく。また、他のノード装置が脱退したことを知ったタイミングで、当該装置のノードＩＤをテーブルから削除する。
【００４８】
そして、ノード装置１は、コンテンツ配信システムＳに参加中に、当該テーブル情報を、制御部１１のＲＡＭからハードディスク記憶部２２に保存しておく（図５（Ｃ）参照）。そして、ノード装置１は、システムから脱退後、システムに再度参加する際には、コンタクト用ノード装置１ＣＣではなく、当該ハードディスク記憶部２２に保存したテーブル情報に記載されたノード情報の中から、「参加メッセージ」を送信するノード情報を選択する。具体的には、ハードディスク記憶部２２に保存したテーブル情報を、作業のため一旦制御部１１のＲＡＭに転記（記憶）し（図５（Ｄ）矢印参照）、当該テーブル情報の中からノード装置を選択し、選択されたノード情報のノードＩＤをキーとするルーティングに従って、選択されたノード装置１に対して「参加メッセージ」（自己のノード情報、選択されたノード情報のノードＩＤを含む）を送信し、テーブル情報を受信する（図５（Ｄ）参照）。受信したテーブル情報を、制御部１１のＲＡＭに記憶して、他のノード装置との情報転送に利用する。
【００４９】
このように、テーブル情報はメッセージやコンテンツの配信等の情報の授受によって、常に動的に書き換えられているので、現在システムに参加しているノード装置１からテーブル情報をもらうことで、システムから脱退したノード装置のノード情報が比較的少なく、システムに参加しているノード装置のノード情報が比較的多い、最新のテーブル情報を得ることができる。特に、システムへの再参加の場合には、コンタクト用ノード装置１ＣＣに処理負担を課すことがないので、より有用なシステムを提供できる。
【００５０】
また、現在システムに参加しているノード装置１を、過去にシステムに参加していたときに使用していたテーブル情報（ハードディスク記憶部２２に記憶されているテーブル情報）に基づいて選択する際、自己のノードＩＤに比較的遠いノードＩＤにかかるノード装置１を選択するよう構成すれば、自己のノード情報を含む「参加メッセージ」を、比較的多くのノード装置１間を転送させることができ、自己の存在を比較的多くのノード装置に知らせることができる。
【００５１】
＜１−４．コンテンツの保存と配信＞
次に、各ノード装置１で共用されるコンテンツの保存と、当該コンテンツの配信について説明する。コンテンツ配信システムＳに参加している複数のノード装置１には、１のノード装置１から他のノード装置１に配信される共用情報としてのコンテンツ（例えば、映画や音楽等）データが分散して保存（格納）されているが、当該コンテンツにも、それぞれのコンテンツ毎にユニーク（固有）なコンテンツＩＤが付与される。このコンテンツＩＤは、ノードＩＤと同様の長さ（例えば、１２８ｂｉｔ等）であって、コンテンツをコンテンツ配信システムＳに投入してノード装置１に登録を行なうサーバ１００によって決定され各コンテンツに付与される。
【００５２】
図６は３２ｂｉｔでノードＩＤ及びコンテンツＩＤを付与し、ＩＤ空間上に図示したものである。図中黒点はノードＩＤを、黒ひし形はコンテンツＩＤを示し、反時計回りでＩＤが増加するものとする。
【００５３】
図６に示すようなＩＤ空間において、どのノード装置１に、どのコンテンツが管理されるかは、コンテンツＩＤとノードＩＤとが「所定の関係」にあるか否かによって決定される。ここで、「所定の関係」とは、一定の規則の下に決定されるが、本実施形態においては、「あるコンテンツＩＤを有するコンテンツを管理するノード装置は、そのコンテンツＩＤに最も近接するノードＩＤを有するノード装置１である」という規則とする。つまり、コンテンツＩＤと最も近接する（例えば、上位桁がより多く一致する）ノードＩＤであって、コンテンツＩＤの値と同じかそれ以下の値となるノードＩＤを有するノード装置１が、当該コンテンツを保存するノード装置１の所在情報を管理することとする。
【００５４】
例えば、「所定の関係」は、当該コンテンツＩＤを超えず、コンテンツＩＤとノードＩＤとの差が一番少ないものと定義する。同図に示す例では、この定義に基づいて、コンテンツＩＤａは、ノードＩＤａを有するノード装置に管理され、コンテンツＩＤｂは、ノードＩＤｂを有するノード装置に管理される。この他、各コンテンツの管理を各ノード装置１に割り振る際に、一貫していればどのような定義であってもよい。
【００５５】
また、コンテンツＩＤｃ、ＩＤｄは、ノードＩＤｃを有するノード装置１に管理されるように、あるノード装置は複数の異なるコンテンツデータを管理することもある。なお、ここで「管理」というのは、コンテンツを保存／保持していることを意味するのではなく、「コンテンツのデータ（コンテンツデータ）が何れのノード装置１に保存されているかを知っている」、すなわち、コンテンツの所在情報として、コンテンツを保持するノード装置のＩＰアドレス等の宛先情報を記憶（キャッシュ）していること言う。
【００５６】
表１に、各ノード装置１が制御部１１のＲＡＭに記憶するキャッシュ情報の一例を示す。
【表１】
2011060309.tif 000003
【００５７】
ノード装置１は、コンテンツを保持するノード装置が、新しいコンテンツをコンテンツ配信システムＳ上に参加する他のノード装置に見えるように公開する際に送信する「公開メッセージ」（公開通知の一例）に含まれるＩＰアドレス等の宛先情報（コンテンツの所在情報）を受信して取得し、制御部１１のＲＡＭに記憶されているキャッシュ情報（表１）に書き込む。なお、本実施形態では、コンテンツＩＤと所定の関係を有するノードＩＤにかかるノード装置１のみならず、「公開メッセージ」が各ノード装置間を転送する際の経路上にあるノード装置１も、当該コンテンツの所在情報を制御部１１のＲＡＭにキャッシュ情報として記憶するよう構成する。
【００５８】
以下、コンテンツの公開と、ノード装置の制御部１１のＲＡＭにキャッシュ情報が記憶される工程について詳細に説明する。
【００５９】
＜１−５．コンテンツの公開とコンテンツの所在情報の記憶＞
図７は、ＤＨＴにより新しいコンテンツが公開される様子の一例を示す図である。
【００６０】
コンテンツを保持するノード装置は、コンテンツのタイトル等からコンテンツＩＤを求め、当該コンテンツＩＤと同じノードＩＤを持つノード装置に向けて（このノード装置が実在するか否かはこの時点ではわからない。）「公開メッセージ」を送信する。
【００６１】
ここでは、ノードＩＤ「１２００３０３０」のノード装置１ａが、自身が保持するコンテンツＩＤ「３１３３００１２」を有するコンテンツを公開する際の手順について説明する。
【００６２】
まず、ノード装置１ａは、自己が制御部１１のＲＡＭに記憶しているテーブル情報（図４（Ｄ）参照）のレベル１のテーブルを参照して、コンテンツＩＤ「３１３３００１２」と同じエリアのノードＩＤを持つノード装置に対して「公開メッセージ」を送信する。つまり、コンテンツＩＤ「３１３３００１２」は「３ＸＸＸＸＸＸＸ」のエリアであるため、当該「３ＸＸＸＸＸＸＸ」のエリアに属すノード装置１のうち、ＩＰアドレス等の宛先情報を知っている（すなわち、テーブル情報にＩＰアドレス等の宛先情報が記憶されている）ノード装置１ｂに対して「公開メッセージ」を送信する。
【００６３】
図７に示す例に拠れば、ノードＩＤが「３０１０００００」であるノード装置１ｂのＩＰアドレス等の宛先情報がノード装置１ａのテーブル情報に記憶されていたので、ノード装置１ａは、ノードＩＤが「３０１０００００」であるノード装置１ｂに対して「公開メッセージ」を送信する。
【００６４】
次に、「公開メッセージ」を受信したノード装置１ｂは、当該ノード装置１ｂ自身が制御部１１のＲＡＭに記憶しているテーブル情報のレベル２のテーブルを参照して、「３１ＸＸＸＸＸＸ」のエリアに属すノード装置１のうち、ＩＰアドレス等の宛先情報を知っているノード装置１ｃ（ノードＩＤ「３１０１２００１」）に対して「公開メッセージ」を転送する。
【００６５】
このように、コンテンツＩＤの桁を上から順に適合していく要領で「公開メッセージ」の転送が進み、最終的にノード装置１ｄに辿り着く。
【００６６】
そして、最終的に辿り着いた当該ノード装置１ｄは、「公開メッセージ」に含まれるコンテンツＩＤ、コンテンツを保持するノード装置１ａのＩＰアドレス「ＩＰアドレス１」をコンテンツの所在情報として、自己の制御部１１のＲＡＭに記憶しているキャッシュ情報に記憶する。また、本実施形態では、コンテンツを保持するノード装置１ａから、テーブル情報に従って、「公開メッセージ」を転送（中継）したノード装置１ｂ及び１ｃも、「公開メッセージ」に含まれるコンテンツＩＤ、コンテンツを保持するノード装置１ａのＩＰアドレス「ＩＰアドレス１」をコンテンツの所在情報として、自己の制御部１１のＲＡＭに記憶しているキャッシュ情報に記憶する。
【００６７】
そして、コンテンツの視聴を所望する際にも、コンテンツＩＤを含む当該コンテンツの所在を問い合わせる「検索メッセージ」が、当該「検索メッセージ」に含まれるコンテンツＩＤをキーとするルーティングに従って、各ノード装置間を転送し、当該コンテンツのキャッシュ情報をＲＡＭに記憶しているノード装置に辿り着くと、当該ノード装置からコンテンツの所在情報として、コンテンツを保持するノード装置のＩＰアドレスを受信して、これを受けたノード装置が、コンテンツを保持するノード装置にアクセスして配信を要求する。図７に示すの例の場合、ノード装置１ｅから送信された検索対象のコンテンツのコンテンツＩＤ「３１３３００１２」を含む「検索メッセージ」は、他のノード装置間を経由して当該コンテンツＩＤ「３１３３００１２」の所在情報を有するノード装置１ｃに辿りつき、ノード装置１ｅはノード装置１ｃからコンテンツＩＤ「３１３３００１２」にかかるコンテンツの所在情報として、ノード装置１ａの「ＩＰアドレス１」を取得する。そして、ノード装置１ｅはこのＩＰアドレス１に従って、ノード装置１ａに対してコンテンツの配信を要求し、ノード装置１ａからコンテンツの配信を受ける。
【００６８】
コンテンツの配信を希望するノード装置１ｅが、コンテンツの所在情報を有するノード装置１ｃから、コンテンツの所在情報を受信して情報の授受を行なうことにより、互いの存在を知ることとなり、ノード装置１ｅでは、制御部１１のＲＡＭに記憶されたテーブル情報に、ノード装置１ｃのノード情報（ＩＰアドレス等の宛先情報、ノードＩＤ）が追記され、ノード装置１ｃでも同様にして、制御部１１のＲＡＭに記憶されたテーブル情報にノード装置１ｅのノード情報が無ければ、当該ノード装置１ｅのノード情報が追記される。
【００６９】
また、コンテンツを保持するノード装置１ａと、コンテンツの配信を希望するノード装置１ｅとが、コンテンツの配信という情報の授受を行なうことにより、互いの存在を知ることとなり、ノード装置１ａでは、制御部１１のＲＡＭに記憶されたテーブル情報に、ノード装置１ｅのノード情報が無ければ、当該ノード装置１ｅのノード情報が追記され、ノード装置１ｅでも同様にして、制御部１１のＲＡＭに記憶されたテーブル情報にノード装置１ａのノード情報が無ければ、当該ノード装置１ａのノード情報が追記される。
【００７０】
本実施形態では、コンテンツの配信を所望し、検索する際に参照（閲覧）するカタログリストを構成するカタログ情報（共用情報関連情報の一例）であって、他のノード装置１と共に使用される（共用される）カタログ情報も制御部１１のＲＡＭに記憶させておくこととする。カタログ情報には、コンテンツの属性情報が、夫々のコンテンツＩＤに対応付けられて記述されている。この属性情報としては、例えば、コンテンツ名（コンテンツが映画の場合、映画タイトル、コンテンツが楽曲の場合、楽曲タイトル、コンテンツが放送番組の場合、番組タイトル）、ジャンル（コンテンツが映画の場合、アクション、ホラー、コメディ、ラブストーリー等、コンテンツが音楽の場合、ロック、ジャズ、ポップス、クラシック等、コンテンツが放送番組の場合、ドラマ、スポーツ、ニュース、映画、音楽、アニメ、バラエティ等）、アーティスト名（コンテンツが音楽の場合の歌手、グループ等）、出演者（コンテンツが映画や放送番組の場合のキャスト）、監督名（コンテンツが映画の場合）等が挙げられる。なお、本願出願人は他のノード装置１と共に使用される（共用される）カタログ情報に関して特許出願（特願２００６−１０９１５８、特願２００６−１０９１５９）をしているので、カタログ情報を複数のノード装置１間で共用する手法に関しては当該出願に詳細に記載されているので説明を省略する。
【００７１】
＜２．ノード装置の処理動作＞
続いて、各ノード装置１の具体的な処理動作について図を用いて説明する。
【００７２】
＜２−１．メイン処理＞
図８は、ノード装置１におけるメイン処理の一例を示すフローチャートであり、この処理は、制御部１１の制御に基づいて実行され、ノード装置１の電源がオンとされて、例えばユーザが入力部２１を操作してコンテンツ配信システムＳへの参加を指示したことにより開始する。
【００７３】
先ず、テーブル情報の読み込み処理（ステップＳ１）、キャッシュ情報の読み込み処理（ステップＳ２）、カタログ情報の読み込み処理（ステップＳ３）を行なう。各読み込み処理において、過去にコンテンツ配信システムＳに参加したことがあれば、ハードディスク記憶部２２からこれらの情報を取得して制御部１１のＲＡＭに読み込むことができる。ステップＳ１〜Ｓ３の処理については、後に詳述する。
【００７４】
次に、電源がオフとされたか否かを判定し（ステップＳ４）、オフとされない場合（ステップＳ４：Ｎｏ）には、「その他の処理」を行なう（ステップＳ５）。なお、「その他の処理」とは、他のノード装置１から送信されてきた「参加メッセージ」に応じて、自己のテーブル情報を送信する処理、他のノード装置１から送信されてきた「検索メッセージ」に応じて行なうコンテンツの検索処理（コンテンツを保持するノード装置の検索）、他のノード装置１から送信されてきたコンテンツの配信要求に応じて行なうコンテンツの配信処理、或いは各種メッセージの転送処理などの処理である。
【００７５】
そして、制御部１１は第１記憶制御手段として機能し、ＲＡＭに記憶されたテーブル情報、キャッシュ情報及びカタログ情報を、ハードディスク記憶部２２へ保存する処理を行なう（ステップＳ６）。そして、ステップＳ４に移行する。
【００７６】
このように、ステップＳ４において、電源がオフと判定されるまで、ステップＳ５及びＳ６の処理を繰り返し行なう。
【００７７】
ステップＳ１〜Ｓ３は、コンテンツ配信システムＳに参加する前に行なわれる処理であり、ステップＳ４〜Ｓ６はコンテンツ配信システムＳに参加している際に行なわれる処理である。
【００７８】
＜２−２．各情報の読込み処理＞
次に、上記ステップＳ１〜Ｓ３にて実行されるテーブル情報、キャッシュ情報及びカタログ情報の読込み処理について、図９及び図１０を用いて説明する。
【００７９】
２−２−１．テーブル情報の読込み処理
図９は、ステップＳ１にて実行される「テーブル情報の読込み処理」の一例を示すフローチャートである。
【００８０】
先ず、テーブル情報がハードディスク記憶部２２に保存（記憶）されているか否かを判定する（ステップＳ１１）。過去にコンテンツ配信システムＳに参加したことが無い場合や、ハードディスク記憶部２２に記憶していたテーブル情報が消去してしまった等、テーブル情報がハードディスク記憶部２２に保存されていない場合（ステップＳ１１：Ｎｏ）には、図６（Ａ）に示すように、コンタクト用ノード装置１ＣＣへ「参加メッセージ」を送信して、テーブル情報を取得（受信）し、当該テーブル情報をＲＡＭに記憶する（ステップＳ１２）。
【００８１】
一方、テーブル情報がハードディスク記憶部２２に保存されている場合（ステップＳ１１：Ｙｅｓ）には、制御部１１は、第３記憶制御手段として機能し、ハードディスク記憶部２２に保存されているテーブル情報を、作業のため一旦ＲＡＭに読み込み（転記）（ステップＳ１３）、更に、テーブル情報がハードディスク記憶部２２に記憶された時間を示す保存時刻も、ハードディスク記憶部２２から取得する（ステップＳ１４）。
【００８２】
そして、制御部１１は第２保存時間判断手段として機能し、保存時刻から、現在時刻までに経過した時間（経過時間）が、第２所定保存時間（例えば、２時間）内か否かを判定し（ステップＳ１５）、第２所定保存時間よりも長い場合（ステップＳ１５：Ｎｏ）には、ハードディスク記憶部２２に記憶したテーブル情報（にある各ノード情報）が、今回システムに参加する際にそのまま用いることができるほど最新の情報ではないので、ステップＳ１６以降の処理、すなわち現在システムに参加中のノード装置（コンタクト用ノード装置１ＣＣを含む）からテーブル情報をコピーさせてもらう処理に移行する。
【００８３】
次に、ステップＳ１６にて、制御部１１は、第１保存時間判断手段として機能し、保存時刻から、現在時刻までに経過した時間（経過時間）が、ステップＳ１５の判断対象となる第２所定保存時間よりも長い第１所定保存時間（例えば、１０日）内か否かを判定する（ステップＳ１６）。経過時間が、第１所定保存時間よりも長い場合（ステップＳ１６：Ｎｏ）には、コンタクト用ノード装置１ＣＣへ「参加メッセージ」を送信して、コンタクト用ノード装置１ＣＣからテーブル情報を取得（受信）し、当該テーブル情報をＲＡＭに記憶する（ステップＳ１２）。このように、経過時間が、第１所定保存時間よりも長い場合には、ハードディスク記憶部２２に記憶したテーブル情報は古い情報なので、このテーブル情報にあるノード装置に向けて参加メッセージを送信しても、失敗する可能性が高いと考えられる。従って、コンタクト用ノード装置１ＣＣからテーブル情報を取得するのである。
【００８４】
一方、ステップＳ１６において、経過時間が、第１所定保存時間内である場合（ステップＳ１６：Ｙｅｓ）には、当該テーブル情報に基づいて選択されたノード装置１からテーブル情報を取得するよう構成する。具体的には、先ず、制御部１１は、ノード情報有無判断手段として機能し、ＲＡＭのテーブル情報にノード情報があるか否かを判定する（ステップＳ１７）。ＲＡＭのテーブル情報にノード情報がある場合（ステップＳ１７：Ｙｅｓ）には、制御部１１はノード情報選択手段及び参加通知手段として機能し、ＲＡＭのテーブル情報からノード情報を選択して、当該ノード情報にかかるノード装置１に対して「参加メッセージ」を送信する（ステップＳ１８）。
【００８５】
そして、制御部１１は参加通知送信可否判断手段として機能し、「参加メッセージ」の送信が成功したか否かを判定する。具体的には、「参加メッセージ」の送信先のノード装置からテーブル情報を受信できたか否か判定する（ステップＳ１９）。「参加メッセージ」の送信先のノード装置とは、「参加メッセージ」に含まれる（ステップＳ１８で選択された）ノードＩＤをキーとするルーティングによって該メッセージが到達した先のノード装置である。
【００８６】
判定の結果、テーブル情報を受信できない場合には（ステップＳ１９：Ｎｏ）、制御部１１は削除手段として機能し、ステップＳ１８で選択したノード情報をテーブル情報から削除して（ステップＳ２０）、ステップＳ１７に戻る。ハードディスク記憶部２２に記憶していたテーブル情報は、当該処理を行なっているノード装置１が、前回コンテンツ配信システムＳに参加していたときに使用していたテーブル情報なので、前回の参加からの時間が相当程度経過している場合には、前回参加時にはシステムに参加していたノード装置も、時間の経過により、システムから脱退してしまっている。このように、「参加メッセージ」を最初に受信するノード装置１が既に脱退してしまっている場合や、当該「参加メッセージ」が複数のノード装置１を中継される際に通信エラーが発生した場合等には、テーブル情報を受信することができないのである。そして、ステップＳ１８で、再び、テーブル情報にあるノード情報を選択し、テーブル情報にノード情報が無いと判定される（ステップＳ１７：Ｎｏ）まで、又は、テーブル情報の受信が確認される（ステップＳ１９：Ｙｅｓ）まで、ステップＳ１７〜１９の処理が繰り返し行なわれる。
【００８７】
そして、制御部１１がリンク情報受信手段として機能し、テーブル情報の受信が確認される（ステップＳ１９：Ｙｅｓ）と、制御部１１が第２記憶制御手段として機能し、ステップＳ１３で作業のためにＲＡＭに転記（記憶）しておいたテーブル情報に変えて、受信したテーブル情報をＲＡＭに記憶させる（ステップＳ２１）。
【００８８】
ステップＳ１７の判定において、テーブル情報にノード情報が無いと判定された場合（ステップＳ１７：Ｎｏ）には、初めてコンテンツ配信システムＳに参加する際と同様に、ステップＳ１２に移行して、コンタクト用ノード装置１ＣＣに対して「参加メッセージ」を送信して、テーブル情報を受信し、当該テーブル情報をＲＡＭに記憶する。
【００８９】
続いて、システムに参加している他のノード装置１と共用されるべきコンテンツを、記憶部１２に記憶（所持）しているか否かを判定し（ステップＳ２２）、共用されるべきコンテンツを、記憶部１２に記憶していない場合（ステップＳ２２：Ｎｏ）には処理を終了し、記憶している場合（ステップＳ２２：Ｙｅｓ）には、制御部１１は、公開通知手段として機能し、所持している各コンテンツについて、ステップＳ１２又はＳ２１でＲＡＭに記憶したテーブル情報に基づいて、「公開メッセージ」を送信して（ステップＳ２３）処理を終了する。
【００９０】
また、ステップＳ１５にて、保存時刻から、現在時刻までに経過した時間（経過時間）が、第２所定保存時間内であると判定された場合（ステップＳ１５：Ｙｅｓ）には、ステップＳ２４〜２６の処理に移行する。つまり、ステップＳ１３でハードディスク記憶部２２から取得したテーブル情報が、新しい場合（システムから脱退した後、すぐに（例えば２時間以内に）システムに再参加したような場合）には、前回システムに参加していたときに使用していたテーブル情報（にある各ノード情報）が、未だ最新の情報である可能性が高いので、前回使用していたテーブル情報をそのまま使用する。
【００９１】
そして、システムに参加している他のノード装置１と共用されるべきコンテンツを、記憶部１２に記憶（所持）しているか否かを判定し（ステップＳ２４）、共用されるべきコンテンツを、記憶部１２に記憶していない場合（ステップＳ２４：Ｎｏ）には処理を終了し、記憶部１２に記憶している場合（ステップＳ２４：Ｙｅｓ）には、制御部１１は、公開通知手段として機能して、所持している各コンテンツについて、ステップＳ１３でＲＡＭに記憶したテーブル情報に基づいて、「公開メッセージ」を送信する（ステップＳ２５）。
【００９２】
次に、制御部１１は公開通知送信可否判断手段として機能し、「公開メッセージ」の送信が成功したか否かを判定する（ステップＳ２６）。具体的には、「公開メッセージ」の最初の送信先となるノード装置から、受信確認通知を受けた場合には、メッセージの送信が成功したと判断し、受信確認通知が最初の送信先のノード装置から所定待機時間以上待っても送信されてこない場合（タイムアウト）には、メッセージの送信に失敗したものと判断する。「公開メッセージ」の最初の送信先となるノード装置とは、図７に示す例の場合、ノード装置１ｂである。そして、「公開メッセージ」の送信が成功した場合（ステップＳ２６：Ｙｅｓ）には処理を終了し、「公開メッセージ」の送信が失敗した場合（ステップＳ２６：Ｎｏ）には、ステップＳ１３で記憶したテーブル情報をＲＡＭから削除して、ステップＳ１２に移行して、コンタクト用ノード装置１ＣＣから、テーブル情報を取得してＲＡＭに保存する。
【００９３】
このように、システムに再参加した後に、ハードディスク記憶部２２に記憶しておいたテーブル情報を使用する場合に、「公開メッセージ」の送信の可否で、テーブル情報が使用できるかできないかを判断し、公開メッセージの送信に失敗した場合には、ハードディスク記憶部２２に記憶しておいたテーブル情報の残りのノード情報にかかるノード装置１も、システムに参加していない可能性が高いと判断して、コンタクト用ノード装置１ＣＣから最新のテーブル情報を取得するよう構成する。
【００９４】
なお、ステップＳ１３において、ハードディスク記憶部２２に保存されているテーブル情報をＲＡＭに一旦読み込んでから、かかるテーブル情報の中からノード情報を選択する等の各種作業をしているが、ＲＡＭに読み込むことなく、当該テーブル情報をハードディスク記憶部２２に記憶させたまま、バス２３を介してＣＰＵがハードディスク記憶部２２に記憶されたテーブル情報にアクセスすることにより、制御部１１がノード情報読み出し手段として機能して、ハードディスク記憶部２２に記憶されたテーブル情報に含まれるノード情報を読み出して、当該ノード情報にかかるノード装置に「参加メッセージ」を送信するよう構成してもよい。
【００９５】
２−２−２．キャッシュ情報の読込み処理
次に、ステップＳ２におけるキャッシュ情報の読込み処理について図１０（Ａ）の「キャッシュ情報の読込み処理」の一例を示すフローチャートを用いて説明する。
【００９６】
先ず、キャッシュ情報がハードディスク記憶部２２に保存（記憶）されているか否かを判定する（ステップＳ３１）。過去にコンテンツ配信システムＳに参加したことが無い場合等、キャッシュ情報がハードディスク記憶部２２に保存されていない場合（ステップＳ３１：Ｎｏ）にはそのまま処理を終了する。
【００９７】
一方、キャッシュ情報がハードディスク記憶部２２に保存されている場合（ステップＳ３１：Ｙｅｓ）には、制御部１１は第２記憶制御手段として機能し、ハードディスク記憶部２２に保存されているキャッシュ情報をＲＡＭに読み込んで（ステップＳ３２）、処理を終了する。
【００９８】
２−２−３．カタログ情報の読込み処理
次に、ステップＳ３におけるカタログ情報の読込み処理について図１０（Ｂ）の「カタログ情報の読込み処理」の一例を示すフローチャートを用いて説明する。当該処理は、上述した「キャッシュ情報の読込み処理」と同様である。
【００９９】
先ず、カタログ情報がハードディスク記憶部２２に保存（記憶）されているか否かを判定する（ステップＳ４１）。過去にコンテンツ配信システムＳに参加したことが無い場合等、カタログ情報がハードディスク記憶部２２に保存されていない場合（ステップＳ４１：Ｎｏ）にはそのまま処理を終了する。
【０１００】
一方、カタログ情報がハードディスク記憶部２２に保存されている場合（ステップＳ４１：Ｙｅｓ）には、制御部１１は第２記憶制御手段として機能し、ハードディスク記憶部２２に保存されているカタログ情報をＲＡＭに読み込んで（ステップＳ４２）、処理を終了する。
【０１０１】
＜２−３．各情報の保存処理＞
次に、上記ステップＳ６にて実行されるテーブル情報、キャッシュ情報及びカタログ情報のハードディスク記憶部２２への保存処理について、図１１及び図１２を用いて説明する。
【０１０２】
コンテンツ配信システムＳに参加している間、制御部１１のＲＡＭに保存して使用されるテーブル情報、キャッシュ情報及びカタログ情報は、所定のタイミングでハードディスク記憶部２２へ保存（記憶）されるようになっている。
【０１０３】
ここでは、所定時間毎にハードディスク記憶部２２へ保存する方法と、他のノード装置との情報の授受に起因して、テーブル情報、キャッシュ情報及びカタログ情報が更新されたときに、ハードディスク記憶部２２へ保存する方法について説明する。
【０１０４】
２−３−１．所定時間毎に保存する方法
テーブル情報、キャッシュ情報及びカタログ情報を所定時間毎にハードディスク記憶部２２へ保存する方法について説明する。図１１は、ステップＳ６にて実行される「ＲＡＭに記憶されたテーブル情報、キャッシュ情報及びカタログ情報を、ハードディスク記憶部２２へ保存する処理」の一例を示すフローチャートである。
【０１０５】
先ず、前回ハードディスク記憶部２２へ保存処理を行なってから、所定時間が経過したか否かを判定する（ステップＳ６１）。所定時間が経過していない場合（ステップＳ６１：Ｎｏ）には、処理を終了し、所定時間が経過した場合（ステップＳ６１：Ｙｅｓ）には、制御部１１は第１記憶制御手段として機能し、ＲＡＭのテーブル情報と保存時刻をハードディスク記憶部２２に保存して（ステップＳ６２）、ステップＳ６３に移行する。このとき、ハードディスク記憶部２２に過去に記憶されたテーブル情報が記憶されている場合は、上書き保存する。
【０１０６】
次に、ステップＳ６３では、キャッシュ情報がＲＡＭに保存されているか否かを判定し（ステップＳ６３）、キャッシュ情報がＲＡＭに保存されている場合（ステップＳ６３：Ｙｅｓ）には、ＲＡＭに保存されているキャッシュ情報の容量が、ハードディスク記憶部２２のキャッシュ情報記憶領域の記憶容量よりも大きいか否かを判定する（ステップＳ６４）。
【０１０７】
そして、ＲＡＭに保存されているキャッシュ情報の容量が、ハードディスク記憶部２２のキャッシュ情報記憶領域の記憶容量以内であれば（ステップＳ６４：Ｎｏ）、ＲＡＭに保存されている全てのキャッシュ情報をハードディスク記憶部２２に保存して（ステップＳ６５）、ステップＳ６７に移行し、他方、ＲＡＭに保存されているキャッシュ情報の容量が、ハードディスク記憶部２２のキャッシュ情報記憶領域の記憶容量よりも大きい場合（ステップＳ６４：Ｙｅｓ）には、ＲＡＭに保存されているキャッシュ情報のうち、自己のノードＩＤと近いコンテンツＩＤを有するコンテンツの所在情報だけを、ハードディスク記憶部２２へ保存する（ステップＳ６６）。
【０１０８】
続いて、ステップＳ６７において、カタログ情報がＲＡＭに保存されているか否かを判定し（ステップＳ６７）、カタログ情報がＲＡＭに保存されていない場合（ステップＳ６７：Ｎｏ）には処理を終了し、保存されている場合（ステップＳ６７：Ｙｅｓ）には、当該カタログ情報をハードディスク記憶部２２に保存して（ステップＳ６８）処理を終了する。
【０１０９】
２−３−２．更新されたときに保存する方法
テーブル情報、キャッシュ情報及びカタログ情報を、これら各情報が更新されたときにハードディスク記憶部２２へ保存する方法について説明する。図１２は、ステップＳ６にて実行される「ＲＡＭに記憶されたテーブル情報、キャッシュ情報及びカタログ情報を、ハードディスク記憶部２２へ保存する処理」の一例を示すフローチャートである。
【０１１０】
先ず、ＲＡＭに記憶されたテーブル情報が更新（書換え）されたか否かを判定する（ステップＳ７１）。テーブル情報が更新された場合（ステップＳ７１：Ｙｅｓ）には、制御部１１は第１記憶制御手段として機能し、ＲＡＭのテーブル情報と保存時刻をハードディスク記憶部２２に保存する（ステップＳ７２）。ハードディスク記憶部２２に過去のテーブル情報がある場合は、上書き保存する。テーブル情報が更新されていない場合（ステップＳ７１：Ｎｏ）には、ステップＳ７３へ移行する。
【０１１１】
次に、ステップＳ７３では、キャッシュ情報が更新（書換え）されたか否かを判定し（ステップＳ７３）、キャッシュ情報が更新されていない場合（ステップＳ７３：Ｎｏ）には、ステップＳ７７へ移行し、キャッシュ情報が更新されている場合（ステップＳ７３：Ｙｅｓ）には、ＲＡＭに保存されているキャッシュ情報の容量が、ハードディスク記憶部２２のキャッシュ情報記憶領域の記憶容量よりも大きいか否かを判定する（ステップＳ７４）。
【０１１２】
そして、ＲＡＭに保存されているキャッシュ情報の容量が、ハードディスク記憶部２２のキャッシュ情報記憶領域の記憶容量以内であれば（ステップＳ７４：Ｎｏ）、ＲＡＭに保存されている全てのキャッシュ情報をハードディスク記憶部２２に保存して（ステップＳ７５）、ステップＳ７７に移行し、他方、ＲＡＭに保存されているキャッシュ情報の容量が、ハードディスク記憶部２２のキャッシュ情報記憶領域の記憶容量よりも大きい場合（ステップＳ７４：Ｙｅｓ）には、ＲＡＭに保存されているキャッシュ情報のうち、自己のノードＩＤと近いコンテンツＩＤを有するコンテンツの所在情報だけをキャッシュ情報としてハードディスク記憶部２２へ保存する（ステップＳ７６）。
【０１１３】
続いて、ステップＳ７７において、カタログ情報が更新（書換え）されたか否かを判定し（ステップＳ７７）、カタログ情報が更新されていない場合（ステップＳ７７：Ｎｏ）には処理を終了し、カタログ情報が更新されている場合（ステップＳ７７：Ｙｅｓ）には、当該カタログ情報をハードディスク記憶部２２に保存して（ステップＳ７８）処理を終了する。
【０１１４】
なお、ステップＳ６４及びＳ７４において、ＲＡＭに保存されているキャッシュ情報の容量が、ハードディスク記憶部２２のキャッシュ情報記憶領域の記憶容量よりも大きいか否かを判定しているが、ハードディスク記憶部２２のキャッシュ情報記憶領域に記憶できるコンテンツの所在情報の個数を決めておき、この個数よりも多い所在情報を有するキャッシュ情報の場合には、自己のノードＩＤと近いコンテンツＩＤを有するコンテンツの所在情報だけをキャッシュ情報としてハードディスク記憶部２２へ保存するよう構成してもよい。また、ＲＡＭからハードディスク記憶部２２へキャッシュ情報を保存する処理時間の上限を保存処理時間（例えば２〜３分以内など）として予め定めておき、ＲＡＭから自己のノードＩＤと近いコンテンツＩＤを有するコンテンツの所在情報から順に読み出し、予め定めた保存処理時間が経過したときに読み出しを終了するよう構成してもよい。
【０１１５】
更に、本実施形態では、ＲＡＭに記憶されている各情報を所定時間毎にハードディスク記憶部２２へ保存する方法と、上記各情報が更新されたときに、ハードディスク記憶部２２へ保存する方法について説明したが、この他、例えば、ステップＳ４にて電源オフが確認された際（ステップＳ４：Ｙｅｓ）に、上記各情報を、ハードディスク記憶部２２へ保存してから電源をオフとするよう構成してもよい。
【０１１６】
上述した実施形態によれば、コンテンツ配信システムＳに参加している際に、制御部１１のＲＡＭに記憶して利用していたテーブル情報を、次回、システムに参加する際に利用するために、システムから脱退した後（電源をオフとした後）でも、記憶された情報が消去されないハードディスク記憶部２２に記憶しておき、システムから脱退後、再びシステムに参加する際に、当該ハードディスク記憶部２２に記憶しておいたテーブル情報に基づいて、テーブル情報をコピーさせてもらうシステムに参加中のノード装置（参加メッセージを送信する先のノード装置）を選ぶよう構成したので、コンタクト用ノード装置１ＣＣに処理負担を課すことなく、システムに参加したときから最新のテーブル情報を取得することができる。
【０１１７】
また、現在システムに参加しているノード装置を、過去にシステムに参加していたときに使用していたテーブル情報（ハードディスク記憶部２２に記憶されているテーブル情報）に基づいて選択する際に、自己のノードＩＤに比較的遠いノードＩＤにかかるノード装置を選択するよう構成すれば、自己のノード情報を含む「参加メッセージ」が比較的多くのノード装置間を転送することによって、自己がシステムに参加したことを比較的多くのノード装置に知らせることができる。なお、自己のノードＩＤに比較的遠いノードＩＤは、テーブル情報（図４（Ｄ）参照）のレベル１が自己のノードＩＤに最も遠く、レベル８が自己のノードＩＤに最も近いので、レベル１に記述されているノードＩＤの中から選択するよう構成すればよい。
【０１１８】
なお、本発明の第１記憶手段は、作業用ＲＡＭに限らず、電源を切ると記憶内容が失われる揮発性メモリであればよい。また、第２記憶手段は、ハードディスク記憶部２２に限らず、システムから脱退した後（電源がオフとされた後）でも、システムに参加していたときに記憶された情報が消去されずに残る不揮発性の記憶手段であればよく、例えば、フラッシュメモリ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ
Ｍｅｍｏｒｙ）、フラッシュメモリ、バックアップ電源付き半導体メモリ等でもよい。更に、第２記憶手段は、ハードディスク記憶部２２のようなノード装置１の構成部材に限らず、ノード装置１と接続された外部メモリ等でもよい。
【０１１９】
また、上記実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提として説明したが、本発明はこれに限定されるものではなく、その他のコンピュータネットワークシステムに対しても適用可能である。
【符号の説明】
【０１２０】
１  ノード装置
１ＣＣ  コンタクト用ノード装置
３  ＩＸ
４  ＩＳＰ
５  ＤＳＬ回線事業者の装置
６  ＦＴＴＨ（Ｆｉｂｅｒ  Ｔｏ  Ｔｈｅ  Ｈｏｍｅ）回線事業者の装置
７  通信回線
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  ハードディスク記憶部
２３  バス
Ｓ  コンテンツ配信システム
【図１】
2011060309.tif 000004
【図２】
2011060309.tif 000005
【図３】
2011060309.tif 000006
【図４】
2011060309.tif 000007
【図５】
2011060309.tif 000008
【図６】
2011060309.tif 000009
【図７】
2011060309.tif 000010
【図８】
2011060309.tif 000011
【図９】
2011060309.tif 000012
【図１０】
2011060309.tif 000013
【図１１】
2011060309.tif 000014
【図１２】
2011060309.tif 000015