(57)【特許請求の範囲】
【請求項１】
本ハッシュＩＤを保持し、ピア・ツー・ピア・ネットワークのプロトコルに従う処理を行う処理手段と、
仮ハッシュＩＤを保持する保持手段と、
保持手段が保持する仮ハッシュＩＤを隣接ノード装置に通知する通知手段と、
両隣接ノード装置からそれぞれ受信する両隣接ノード装置の仮ハッシュＩＤに基づき、保持手段が保持する仮ハッシュＩＤを更新する計算手段と、
本ハッシュＩＤを、保持手段が保持する仮ハッシュＩＤに基づき更新する更新手段と、
を備えているノード装置。
【請求項２】
計算手段は、両隣接ノード装置の仮ハッシュＩＤの和から、保持手段が保持する仮ハッシュＩＤの２倍の値を減じ、減じた値をｄ倍して保持手段が保持する仮ハッシュＩＤに加えた値を、更新後の仮ハッシュＩＤとし、ｄは０．５以下の正の数である、
請求項１に記載のノード装置。
【請求項３】
更新手段は、所定の周期において、保持手段が保持する仮ハッシュＩＤに基づく値と、本ハッシュＩＤの値とが異なるときには、本ハッシュＩＤを更新する、
請求項１又は２に記載のノード装置。
【請求項４】
更新手段は、本ハッシュＩＤと、保持手段が保持する仮ハッシュＩＤとの差が所定の閾値未満である場合には、本ハッシュＩＤを変更しない、
請求項３に記載のノード装置。
【請求項５】
本ハッシュＩＤの値が所定の条件を満たす場合、計算手段は、仮ハッシュＩＤの更新を行わない、
請求項１から４のいずれか１項に記載のノード装置。
【請求項６】
請求項１から５のいずれか１項に記載のノード装置としてコンピュータを機能させるプログラム。
【請求項７】
ピア・ツー・ピア・ネットワークに参加している各ノード装置の負荷分散方法であって、
各ノード装置が、
自ノード装置の本ハッシュＩＤを決定するステップと、
自ノード装置の仮ハッシュＩＤを決定するステップと、
自ノード装置の仮ハッシュＩＤを両隣接ノード装置に通知すると共に、両隣接ノード装置からそれぞれ受信する両隣接ノード装置の仮ハッシュＩＤに基づき、自ノード装置の仮ハッシュＩＤを更新するステップと、
自ノード装置の本ハッシュＩＤを、更新後の仮ハッシュＩＤの値に基づき更新するステップと、
を実行する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピア・ツー・ピア（Ｐ２Ｐ）ネットワークにおける負荷分散技術に関する。
【背景技術】
【０００２】
Ｐ２Ｐネットワークは、インターネットの仕組みの上に構築された仮想的なネットワークであり、オーバレイネットワークとも呼ばれている。この仮想的なネットワークでは、インターネットの制約に縛られない、自由なプロトコルを規定し運用することができる。Ｐ２Ｐネットワークの構築方式には、例えば、Ｃｈｏｒｄ（非特許文献１、参照。）、Ｐａｓｔｒｙ（非特許文献２、参照。）、Ｔａｐｅｓｔｒｙ（非特許文献３、参照。）等のハッシュ関数を用いた方式がある。これら、Ｐ２Ｐネットワークでは、ハッシュ関数によってノード装置のハッシュＩＤを求め、ファイル名のハッシュ値により、当該ファイルを保持するノード装置を決定している。
【０００３】
例えば、非特許文献１に記載のＣｈｏｒｄにおいて、Ｐ２Ｐネットワークに参加する各ノード装置は、ノード装置固有の値をＳＨＡ−１等のハッシュ関数により変換したｎビット長ハッシュ値（ｎは通常１６０）であるハッシュＩＤを有している。ここで、ノード装置ＡのハッシュＩＤをＨａ、ノード装置ＢのハッシュＩＤをＨｂとし、Ｈｂは、Ｈａより大きく、かつ、ＨｂとＨａの間の値をハッシュＩＤとするノード装置が存在しない場合、ノード装置Ａは、Ｈａ以上Ｈｂ未満のハッシュ値を持つコンテンツを保存することになる。なお、計算は２ｎを法として行い、コンテンツのハッシュ値とは、例えば、コンテンツの名前や識別子のｎビット長ハッシュ値である。以後、各ノード装置が保存すべきコンテンツのハッシュ値の範囲を守備範囲と呼ぶ。
【０００４】
例えば、図３に示す様に、ノード装置ａ〜ｊの１０個のノード装置がＰ２Ｐネットワークに参加しているものとする。なお、図３の点線の円には、０から２ｎ−１の値が時計回り方向に振られており、各ノード装置の位置は、それぞれのハッシュＩＤに対応する円上の位置となっている。図３に示すＰ２Ｐネットワークにおいては、ノード装置ｃとノード装置ｄとの間が、他のノード装置間の距離より大きく離れており、これは、ノード装置ｃの守備範囲が他のノード装置より大きいことを意味している。したがって、コンテンツの配信要求等、ノード装置ｃへのアクセスも他のノード装置より大きくなる可能性が高くなり、ノード装置ｃの負荷が他のノード層よりも大きくなるという問題がある。
【０００５】
なお、以下の説明において、Ｐ２Ｐネットワークに参加しているノード装置を、図３に示す様に、２ｎを法として、ハッシュＩＤの大きさ順にて並べた時に、隣に位置するノード装置を隣接ノード装置と呼ぶ。つまり、例えば、図３の構成において、ノード装置ａの隣接ノード装置は、ノード装置ｊ及びｂであり、ノード装置ｂの隣接ノード装置は、ノード装置ａ及びｃである。
【０００６】
上述した様に、Ｐ２Ｐネットワークにおいては、ハッシュＩＤの偏りに伴い、ノード装置の負荷に偏りが生じるため、Ｐ２Ｐネットワークに参加している各ノード装置の負荷分散を行う方法が提案されている（例えば、非特許文献４、５参照。）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Ｉｏｎ  Ｓｔｏｉｃａ,  ｅｔ  ａｌ．，  “Ｃｈｏｒｄ:  Ａ  ｓｃａｌａｂｌｅ  ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｌｏｏｋｕｐ  ｓｅｒｖｉｃｅ  ｆｏｒ  ｉｎｔｅｒｎｅｔ  ａｐｐｌｉｃａｔｉｏｎｓ，”  ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｒｅｖｉｅｗ  ３１  （４）:ｐｐ.１４９−１６０,  ２００１年
【非特許文献２】Ａｎｔｏｎｙ  Ｒｏｗｓｔｒｏｎ,  ｅｔ  ａｌ．，  “Ｐａｓｔｒｙ：  Ｓｃａｌａｂｌｅ，  ｄｅｃｅｎｔｒａｌｉｚｅｄ  ｏｂｊｅｃｔ  ｌｏｃａｔｉｏｎ  ａｎｄ  ｒｏｕｔｉｎｇ  ｆｏｒ  ｌａｒｇｅ−ｓｃａｌｅ  ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｓｙｓｔｅｍｓ，”  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ２２１８／２００１,  Ｓｐｒｉｎｇｅｒ  Ｂｅｒｌｉｎ，  ３２９
【非特許文献３】Ｂ．  Ｙ．  Ｚｈａｏ,  ｅｔ  ａｌ．，“Ｔａｐｅｓｔｒｙ：  Ａ  ｒｅｓｉｌｉｅｎｔ  ｇｌｏｂａｌｓｃａｌｅ  ｏｖｅｒｌａｙ  ｆｏｒ  ｓｅｒｖｉｃｅ  ｄｅｐｌｏｙｍｅｎｔ,”  ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｎ  Ｓｅｌｅｃｔｅｄ  Ａｒｅａｓ  ｉｎ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ,  Ｖｏｌ.２２,  ｎｏ.１,  ｐｐ．４１−５３,  ２００４年１月
【非特許文献４】Ａ.  Ｒａｏ,  ｅｔ  ａｌ，“Ｌｏａｄ  ｂａｌａｎｃｉｎｇ  ｉｎ  ｓｔｒｕｃｔｕｒｅｄ  ｐ２ｐ  ｓｙｓｔｅｍｓ,”  ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２ｎｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  Ｓｙｓｔｅｍｓ  （ＩＰＴＰＳ），２００３年
【非特許文献５】Ｍ.  Ｕｃｈｉｄａ,  ｅｔ  ａｌ．，“Ｄｙｎａｍｉｃ  Ｓｔｏｒａｇｅ  Ｌｏａｄ  Ｂａｌａｎｃｉｎｇ  ｗｉｔｈ  Ａｎａｌｏｇｙ  ｔｏ  Ｔｈｅｒｍａｌ  Ｄｉｆｆｕｓｉｏｎ  ｆｏｒ  Ｐ２Ｐ  Ｆｉｌｅ  Ｓｈａｒｉｎｇ,”  Ｗｏｒｋｓｈｏｐ  ｏｎ  ｉｎｔｅｒｄｉｓｃｉｐｌｉｎａｒｙ  ｓｙｓｔｅｍｓ  ａｐｐｒｏａｃｈ  ｉｎ  ｐｅｒｆｏｒｍａｎｃｅ  ｅｖａｌｕａｔｉｏｎ  ａｎｄ  ｄｅｓｉｇｎ  Ｏｆ  ｃｏｍｐｕｔｅｒ  ＆  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｓｙｓｔｅｍｓ（Ｉｎｔｅｒ-Ｐｅｒｆ），２００６年
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献４に記載の方法は、バーチャルサーバと呼ばれるものであり、１台のノード装置が複数のノード装置として振る舞うことにより、各ノード装置の守備範囲のばらつきを抑えるものである。また、非特許文献５に記載の方法は、ノード装置が保持するコンテンツ数と、隣接ノード装置が保持するコンテンツ数とを等しくする様に、コンテンツの移動を行うものである。
【０００９】
しかしながら、非特許文献４に記載の方法は、複数のノード装置として動作しているノード装置に負荷が集中するものであり、本質的な意味での負荷分散ではない。また、非特許文献５に記載の方法は、保存しているコンテンツ数に偏りが生じた場合に、事後的に補正するものであるが、新たなコンテンツが大量に導入されたり、既存のコンテンツが大量に削除されたりした場合には、再度、偏りが生じるという問題がある。
【００１０】
本発明は、Ｐ２Ｐネットワークに参加している各ノード装置のハッシュＩＤをできるだけ均等化し、よって、各ノード装置の負荷をなるべく同一にする負荷分散方法及び該方法で使用するノード装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明におけるノード装置によれば、
本ハッシュＩＤを保持し、ピア・ツー・ピア・ネットワークのプロトコルに従う処理を行う処理手段と、仮ハッシュＩＤを保持する保持手段と、保持手段が保持する仮ハッシュＩＤを隣接ノード装置に通知する通知手段と、両隣接ノード装置からそれぞれ受信する両隣接ノード装置の仮ハッシュＩＤに基づき、保持手段が保持する仮ハッシュＩＤを更新する計算手段と、本ハッシュＩＤを、保持手段が保持する仮ハッシュＩＤに基づき更新する更新手段とを備えていることを特徴とする。
【００１２】
本発明におけるノード装置の他の実施形態によれば、
計算手段は、両隣接ノード装置の仮ハッシュＩＤの和から、保持手段が保持する仮ハッシュＩＤの２倍の値を減じ、減じた値をｄ倍して保持手段が保持する仮ハッシュＩＤに加えた値を、更新後の仮ハッシュＩＤとし、ｄは０．５以下の正の数であることも好ましい。
【００１３】
また、本発明におけるノード装置の他の実施形態によれば、
更新手段は、所定の周期において、保持手段が保持する仮ハッシュＩＤに基づく値と、本ハッシュＩＤの値とが異なるときには、本ハッシュＩＤを更新することも好ましい。
【００１４】
また、本発明におけるノード装置の他の実施形態によれば、
更新手段は、本ハッシュＩＤと、保持手段が保持する仮ハッシュＩＤとの差が所定の閾値未満である場合には、本ハッシュＩＤを変更しないことも好ましい。
【００１５】
さらに、本発明におけるノード装置の他の実施形態によれば、
本ハッシュＩＤの値が所定の条件を満たす場合、計算手段は、仮ハッシュＩＤの更新を行わないことも好ましい。
【００１６】
本発明におけるプログラムによれば、
上記ノード装置としてコンピュータを機能させることを特徴とする。
【００１７】
本発明における負荷分散方法によれば、
ピア・ツー・ピア・ネットワークに参加している各ノード装置の負荷分散方法であって、各ノード装置が、自ノード装置の本ハッシュＩＤを決定するステップと、自ノード装置の仮ハッシュＩＤを決定するステップと、自ノード装置の仮ハッシュＩＤを両隣接ノード装置に通知すると共に、両隣接ノード装置からそれぞれ受信する両隣接ノード装置の仮ハッシュＩＤに基づき、自ノード装置の仮ハッシュＩＤを更新するステップと、自ノード装置の本ハッシュＩＤを、更新後の仮ハッシュＩＤの値に基づき更新するステップとを実行することを特徴とする。
【発明の効果】
【００１８】
仮ハッシュＩＤを設け、隣接ノード装置間で仮ハッシュＩＤを交換して、隣接ノード装置間における仮ハッシュＩＤの差が等しくなる様に更新して行くと共に、この仮ハッシュＩＤに基づく値を本ハッシュＩＤに反映させることで、各ノード装置が保存すべきコンテンツの数を均一化することができ、よって、各ノード装置の負荷を平準化することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明によるノード装置の構成図である。
【図２】本発明による方法のフロー図である。
【図３】保存するコンテンツ数の偏りを説明する図である。
【図４】ハッシュＩＤの変更を説明する図である。
【発明を実施するための形態】
【００２０】
本発明を実施するための形態について、以下では図面を用いて詳細に説明する。本発明において、各ノード装置は、本ハッシュＩＤと、仮ハッシュＩＤを管理する。なお、本ハッシュＩＤの初期値は、例えば、ノード装置のノード名等、ノード装置固有の値をＳＨＡ−１等のハッシュ関数により変換したｎビット長ハッシュ値（ＳＨＡ−１ではｎは１６０）である。また、仮ハッシュＩＤの初期値は、本ハッシュＩＤと同じ値とする。なお、以下に述べる本ハッシュＩＤに対する計算は２ｎを法として行う。また、仮ハッシュＩＤは、後述する様に実数値であるが、計算により得られた仮ハッシュＩＤの値がＴである場合、０以上２ｎ未満の値Ｋに変換する。ここで、Ｋは、ｍを整数として、Ｋ＝Ｔ−２ｎ×ｍを満たす数である。
【００２１】
各ノード装置は、本ハッシュＩＤに従いＰ２Ｐネットワークに参加して、当該Ｐ２Ｐネットワークのプロトコルに従い、当該Ｐ２Ｐネットワークに参加している他のノード装置と通信を行う。つまり、本ハッシュＩＤは、従来のハッシュＩＤに相当するものである。さらに、本発明において、各ノード装置は、隣接ノード装置に対して自ノード装置の仮ハッシュＩＤを周期的に通知すると共に、両隣接ノード装置から、両隣接ノード装置の仮ハッシュＩＤを受信した場合、両隣接ノード装置の仮ハッシュＩＤと自ノード装置の仮ハッシュＩＤに基づき、自ノード装置の仮ハッシュＩＤを更新する。
【００２２】
さらに、各ノード装置は、所定の周期毎に、本ハッシュＩＤを仮ハッシュＩＤの値に基づき更新する。また、更新に伴い、必要なコンテンツの移動等を行う。図１は、本発明によるノード装置の構成図である。
【００２３】
図１に示す様に、ノード装置は、本ハッシュＩＤ更新部１と、仮ハッシュＩＤ保持部２と、仮ハッシュＩＤ通知部３と、仮ハッシュＩＤ計算部４と、Ｐ２Ｐ処理部５と、コンテンツ保存部６と、送受信部７とを備えている。
【００２４】
コンテンツ保存部６は、守備範囲内のコンテンツを保存しており、Ｐ２Ｐ処理部５は、本ハッシュＩＤを保存しており、本ハッシュＩＤを使用して、参加しているＰ２Ｐネットワークのプロトコルに従う処理を行い、送受信部７は、ネットワークとの信号の送受信処理を行う。
【００２５】
仮ハッシュＩＤ保持部２は、仮ハッシュＩＤを保持しており、仮ハッシュＩＤ通知部３は、所定の周期Ａ＿Ｉｎｔｅｒｖａｌ毎に、仮ハッシュＩＤを、両隣接ノード装置に通知する。また、仮ハッシュＩＤ計算部４は、周期Ａ＿Ｉｎｔｅｒｖａｌ毎に各隣接ノード装置から受信する隣接ノード装置の仮ハッシュＩＤに基づき、自ノード装置の仮ハッシュＩＤを更新して、更新後の仮ハッシュＩＤの値を仮ハッシュＩＤ保持部２に書き込む。例えば、隣接ノード装置＃１の仮ハッシュＩＤがＴＩＤ１であり、隣接ノード装置＃２の仮ハッシュＩＤがＴＩＤ２であり、自ノード装置の仮ハッシュＩＤがＴＩＤ０である場合、仮ハッシュＩＤ計算部４は、更新後の仮ハッシュＩＤを、
更新後の仮ハッシュＩＤ＝ＴＩＤ０＋ｄ（ＴＩＤ１＋ＴＩＤ２−２ＴＩＤ０）
で求める。ここで、ｄは０．５以下の正の数であり、ｄの値が大きい程、収束、つまり、全ノード装置の隣接ノード装置との本ハッシュＩＤの差が均一となるまでの時間が早くなる。これに対してｄの値が小さい程、収束するまでの時間が長くなるが、Ｐ２Ｐネットワークへの新たなノード装置の参加及び離脱が頻繁に発生する場合には、本ハッシュＩＤの変更によるコンテンツの移動等のためのトラフィックを抑えることができ、Ｐ２Ｐネットワークが安定することになる。
【００２６】
本ハッシュＩＤ更新部１は、所定の周期Ｕ＿Ｉｎｔｅｒｖａｌ毎に、仮ハッシュＩＤ保持部２が保持している仮ハッシュＩＤに基づく値を、Ｐ２Ｐ処理部５に通知して、Ｐ２Ｐ処理部５が保持している本ハッシュＩＤを、仮ハッシュＩＤの値に変更させる。つまり、例えば、仮ハッシュＩＤが“１００”であり、本ハッシュＩＤが“１５０”であった場合、本ハッシュＩＤ更新部１は、本ハッシュＩＤの値を“１００”に更新させる。なお、仮ハッシュＩＤの値は、本ハッシュＩＤの様に０〜２ｎ−１の整数ではなく、０以上２ｎ未満の実数とする。つまり、仮ハッシュＩＤは、小数点以下の所定の桁までの値であり、仮ハッシュＩＤの計算において、仮ハッシュＩＤの値を整数に丸めることは行わない。ただし、本ハッシュＩＤは整数であるため、本ハッシュＩＤを更新する場合には、仮ハッシュＩＤの小数点以下を、切捨て、切上げ又は四捨五入等して整数に変換し、変換後の値で更新を行う。また、仮ハッシュＩＤにより、本ハッシュＩＤの値が変更されない場合、つまり、仮ハッシュＩＤを整数に変換した値と本ハッシュＩＤが同じ場合、本ハッシュＩＤ更新部１は、Ｐ２Ｐ処理部５に通知を行う必要はない。
【００２７】
また、本ハッシュＩＤの変更に伴い守備範囲も変更されるため、Ｐ２Ｐ処理部５は、本ハッシュＩＤの変更を行った場合、コンテンツ保存部６が保存しているコンテンツの移動を行う。具体的には、図４に示す様に、図３のノード装置ｃの本ハッシュＩＤが、符号１０の位置から符号１１の位置に動いた場合、そのハッシュ値が、符号１０の位置に対応する値以上であり、符号１１の位置に対応する値未満であるコンテンツは、ノード装置ｃの守備範囲外となり、ノード装置ｂの守備範囲内となるため、ノード装置ｃは、これらコンテンツをノード装置ｂに送信する。なお、ノード装置の本ハッシュＩＤをより小さい値に更新した場合には、守備範囲が広くなるため、本ハッシュＩＤの小さい側の隣接ノード装置からコンテンツを取得する。さらに、Ｐ２Ｐ処理部５は、参加しているＰ２Ｐネットワークのプロトコルに従い、本ハッシュＩＤを変更するために必要な処理、例えば、Ｃｈｏｒｄの場合においては、ｆｉｎｇｅｒ  ｔａｂｌｅ、ｓｕｃｃｅｓｓｏｒ、ｐｒｅｄｅｃｅｓｓｏｒの更新や、他のノード装置への通知を行う。
【００２８】
周期Ｕ＿Ｉｎｔｅｒｖａｌは、周期Ａ＿Ｉｎｔｅｒｖａｌより大きく、例えば、周期Ａ＿Ｉｎｔｅｒｖａｌの１００倍程度の値とする。周期Ｕ＿Ｉｎｔｅｒｖａｌが短すぎると、本ハッシュＩＤの変更が頻繁に行われ、それに伴うコンテンツ移動等が頻繁に発生することになるからである。一方、周期Ｕ＿Ｉｎｔｅｒｖａｌが長すぎると、各ノード装置の本ハッシュＩＤの間隔が均等化するまでの時間が長くなることになる。
【００２９】
なお、上述した実施形態においては、Ｐ２Ｐネットワークに参加している全ノード装置が周期Ｕ＿Ｉｎｔｅｒｖａｌ毎に本ハッシュＩＤの更新処理を行うものであったが、本ハッシュＩＤの更新を行わない基準ノード装置を１台だけ設ける構成とすることもできる。基準ノード装置は、例えば、本ハッシュＩＤの値により決定する。具体的には、０等の所定の値より大きく又は小さく、かつ、当該所定の値に一番近い値を本ハッシュＩＤとするノード装置を基準ノード装置とする。基準ノード装置は、仮ハッシュＩＤを周期的に隣接ノード装置に通知するが、隣接ノード装置の仮ハッシュＩＤにより、自ノード装置の仮ハッシュＩＤの更新は行わない。よって、本ハッシュＩＤも更新されない。
【００３０】
基準ノード装置は、本ハッシュＩＤの変更を行わないため、総てのノードが同じ動作により本ハッシュＩＤを更新する場合と比較して、収束までの時間が短くなる。
【００３１】
また、周期Ｕ＿Ｉｎｔｅｒｖａｌ毎に、本ハッシュＩＤの値を必ず更新するのではなく、本ハッシュＩＤと仮ハッシュＩＤの差が所定の閾値より大きい場合のみ更新する形態であっても良い。差が小さい場合には本ハッシュＩＤを更新しないものとすると、各ノード装置の本ハッシュＩＤの間隔を完全に均等化することはできなくなるが、取り得る本ハッシュＩＤの範囲、つまり、０〜２ｎ−１に比べて無視できる程度に小さい値の変更に伴う処理負荷を抑えることができる。
【００３２】
図２は、本発明による方法のフロー図である。まず、ｔ＝０に初期化し（Ｓ１）、両隣接ノード装置から仮ハッシュＩＤを受信した場合（Ｓ２）、自ノードの仮ハッシュＩＤを更新する（Ｓ３）。ｔが周期Ｕ＿Ｉｎｔｅｒｖａｌ以上であれば（Ｓ４）、本ハッシュＩＤを更新するか否かを判定して、必要な場合には本ハッシュＩＤを更新する（Ｓ５）。
【００３３】
なお、本発明においては、隣接ノード装置への仮ハッシュＩＤの通知を、Ｐ２Ｐネットワークに参加している全ノード装置が同期して行う必要はなく、本ハッシュＩＤの更新も、各ノード装置が他のノード装置とは非同期にて行うことができる。
【００３４】
以上、本発明においては、仮ハッシュＩＤを設け、隣接ノード装置間で仮ハッシュＩＤを交換して、隣接ノード装置間における仮ハッシュＩＤの差が等しくなる様に更新して行くと共に、この仮ハッシュＩＤに基づく値を本ハッシュＩＤに反映させることで、各ノード装置の守備範囲の均一化が図れ、よって、各ノード装置の負荷を平準化することができる。
【００３５】
なお、本発明によるノード装置は、コンピュータを図１の各部として機能させるプログラムにより実現することができる。このコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。さらに、本発明は、ハードウェア及びソフトウェアの組合せによっても実現可能である。
【符号の説明】
【００３６】
１  本ハッシュＩＤ更新部
２  仮ハッシュＩＤ保持部
３  仮ハッシュＩＤ通知部
４  仮ハッシュＩＤ計算部
５  Ｐ２Ｐ処理部
６  コンテンツ保存部
７  送受信部
１１、１２  ノードの本ハッシュＩＤに対応する位置
【図１】
0005403693.tif 000002
【図２】
0005403693.tif 000003
【図３】
0005403693.tif 000004
【図４】
0005403693.tif 000005