(57)【特許請求の範囲】
【請求項１】
ピアツーピア方式によりネットワークを構築する通信装置であって、
前記ネットワーク上における、当該通信装置である自ノードの周辺のネットワーク状況を確認する周辺ネットワーク状況確認手段と、
前記確認されたネットワーク状況と、前記自ノードの隣接ノードの数と、に基づいて、前記自ノードがハブノードであるか否かを判定する判定手段と、
前記判定手段により、前記自ノードがハブノードであると判定されたことを条件に、前記自ノードの一以上の隣接ノードの少なくとも一の隣接ノードに対して、前記自ノードの負荷の少なくとも一部を負担するように依頼可能な負担依頼手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記自ノードに対して送信されるデータを解析し、前記ネットワーク内で流通しているデータである流通データの状況を確認する流通データ状況確認手段を更に備え、
前記負担依頼手段は、前記確認された流通データの状況に応じて、前記少なくとも一の隣接ノードに対する依頼内容を決定する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
ピアツーピア方式によりネットワークを構築する通信装置における通信方法であって、
前記ネットワーク上における、前記通信装置である自ノードの周辺のネットワーク状況を確認する周辺ネットワーク状況確認工程と、
前記確認されたネットワーク状況と、前記自ノードの隣接ノードの数と、に基づいて、前記自ノードがハブノードであるか否かを判定する判定工程と、
前記判定工程において、前記自ノードがハブノードであると判定されたことを条件に、前記自ノードの一以上の隣接ノードの少なくとも一の隣接ノードに対して、前記自ノードの負荷の少なくとも一部を負担するように依頼可能な負担依頼工程と、
を備えることを特徴とする通信方法。
【請求項４】
コンピュータを、
ピアツーピア方式によりネットワークを構築する通信装置であって、
前記ネットワーク上における、当該通信装置である自ノードの周辺のネットワーク状況を確認する周辺ネットワーク状況確認手段と、
前記確認されたネットワーク状況と、前記自ノードの隣接ノードの数と、に基づいて、前記自ノードがハブノードであるか否かを判定する判定手段と、
前記判定手段により、前記自ノードがハブノードであると判定されたことを条件に、前記自ノードの一以上の隣接ノードの少なくとも一の隣接ノードに対して、前記自ノードの負荷の少なくとも一部を負担するように依頼可能な負担依頼手段と、
を備える通信装置
として機能させることを特徴とするコンピュータプログラム。
【請求項５】
請求項４に記載のコンピュータプログラムが記録されたことを特徴とする情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ：Ｐ２Ｐ）方式によりデータの送受信を行う通信装置及び方法、並びにコンピュータプログラムの技術分野に関する。
【背景技術】
【０００２】
この種の通信装置で用いられる従来のピアツーピア方式として、例えば、分散ハッシュテーブル（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈｉｎｇ  Ｔａｂｌｅ：ＤＨＴ）にスモールワールド性を持たせた方式が提案されている（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｇ．Ｓ．Ｍａｎｋｕ，  Ｍ．Ｂａｗａ，  ａｎｄ  Ｐ．Ｒａｇｈａｖａｎ，  “Ｓｙｍｐｈｏｎｙ：  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈｉｎｇ  ｉｎ  ａ  Ｓｍａｌｌ  Ｗｏｒｌｄ，”  ｉｎ  ＵＳＩＴＳ  ２００３  （４ｔｈ  ＵＳＥＮＩＸ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｉｎｔｅｒｎｅｔ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  ａｎｄ  Ｓｙｓｔｅｍｓ），  ｐ１２７−１４０，  Ｍａｒｃｈ  ２００３．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ソーシャルグラフを元にしたピアツーピア方式のネットワークでは、該ネットワークのスケールフリー性に起因して、隣接ノード数の比較的多いノード（所謂、ハブノード）に、比較的データが集中しやすい。すると、ネットワークを構成するノード間において処理負荷の偏りが生じる可能性があるという技術的問題点がある。上述の背景技術では、処理負荷の偏りを解消することは極めて困難であるという技術的問題点がある。【０００５】
本発明は、例えば上記問題点に鑑みてなされたものであり、ピアツーピア方式のネットワークにおける処理負荷の偏りの発生を抑制することができる通信装置及び方法、並びにコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
本発明の通信装置は、上記課題を解決するために、ピアツーピア方式によりネットワークを構築する通信装置であって、前記ネットワーク上における、当該通信装置である自ノードの周辺のネットワーク状況を確認する周辺ネットワーク状況確認手段と、前記確認されたネットワーク状況と、前記自ノードの隣接ノードの数と、に基づいて、前記自ノードがハブノードであるか否かを判定する判定手段と、を備える。【０００７】
本発明の通信装置よれば、当該通信装置は、ピアツーピア方式によりネットワークを構築する。本発明に係る「ネットワーク」とは、典型的には、既存のネットワークを基盤として、該既存のネットワーク上に構築された仮想的なネットワーク（所謂、オーバーレイネットワーク）を意味する。【０００８】
例えばメモリ、プロセッサ等を備えてなる周辺ネットワーク状況確認手段は、ネットワーク上における、当該通信装置である自ノードの周辺のネットワーク状況を確認する。具体的には例えば、周辺ネットワーク状況確認手段は、ネットワーク上において、自ノードから、例えば３ホップ以内に存在するノードの数を検出し、該検出されたノードの数から、該ネットワークに参加している全ノード数を推定し、該推定された全ノード数を、周辺のネットワーク状況とする。或いは例えば、周辺ネットワーク状況確認手段は、ネットワーク上において、自ノードから、例えば３ホップ以内に存在する複数のノード各々に係るノード次数を検出し、該検出されたノード次数の分布を、周辺のネットワーク状況とする。【０００９】
尚、周辺ネットワーク状況確認手段は、例えば、ソーシャルグラフのスモールワールド性から３ホップで７％、３ホップ以内のノードの数をＮとして、全ノード数＝Ｎ÷７／１００という演算式により全ノード数を推定する。【００１０】
例えばメモリ、プロセッサ等を備えてなる判定手段は、確認されたネットワーク状況と、自ノードの隣接ノードの数と、に基づいて、該自ノードがハブノードであるか否かを判定する。具体的には例えば、判定手段は、自ノードの隣接ノードの数が、ネットワークに参加している全ノード数の、例えば１％以上の値であることを条件に、自ノードをハブノードと判定する。或いは例えば、判定手段は、自ノードのノード次数（即ち、自ノードの隣接ノードの数）が、ネットワークに係るノード次数の分布の、例えば上位５％以内にはいっていることを条件に、自ノードをハブノードであると判定する。【００１１】
このように、本発明の通信装置では、判定手段により、自ノードがハブノードであるか否かが判定される。このため、当該通信装置を、例えば、自ノードがハブノードであると判定された場合に、当該通信装置が保持するデータを積極的に他のノードに移動するように構成すれば、或いは、自ノードにデータを保存しないように構成すれば、当該通信装置が保持するデータ量が低減されるので、ノード間における処理負荷の偏りを抑制することができる。或いは、当該通信装置を、例えば、自ノードがハブノードであると判定された場合に、自ノードの隣接ノードの数を低減するように構成すれば、当該通信装置の処理負荷が軽減され、もって、ノード間における処理負荷の偏りを抑制することができる。【００１２】
本発明の通信装置の一態様では、前記判定手段により、前記自ノードがハブノードであると判定されたことを条件に、前記自ノードの一以上の隣接ノードの少なくとも一の隣接ノードに対して、前記自ノードの負荷の少なくとも一部を負担するように依頼可能な負担依頼手段を、更に備える。【００１３】
この態様によれば、例えばメモリ、プロセッサ等を備えてなる負担依頼手段は、判定手段により、自ノードがハブノードであると判定されたことを条件に、該自ノードの一以上の隣接ノードの少なくとも一の隣接ノードに対して、該自ノードの負荷の少なくとも一部を負担するように依頼可能である。【００１４】
ここで、「自ノードの負荷」は、例えば、データ（典型的には、コンテンツデータ）の保持容量、隣接ノードに対するデータの転送量、隣接ノードからのリクエスト数、等を意味する。「自ノードの負荷の少なくとも一部を負担する」とは、例えば、（ｉ）自ノードが保持するデータの一部を、該自ノードに変わって保持する、（ｉｉ）自ノードの隣接ノードの一部を、該自ノードに変わって隣接ノードとして、少なくとも一時的に、設定する、等を意味する。【００１５】
このため、比較的容易にして、ピアツーピア方式のネットワークにおける処理負荷の偏りの発生を抑制することができる。【００１６】
この態様では、前記自ノードに対して送信されるデータを解析し、前記ネットワーク内で流通しているデータである流通データの状況を確認する流通データ状況確認手段を更に備え、前記負担依頼手段は、前記確認された流通データの状況に応じて、前記少なくとも一の隣接ノードに対する依頼内容を決定してよい。【００１７】
このように構成すれば、自ノードの負荷を、適切に分散させることができ、実用上非常に有利である。具体的には例えば、比較的人気のあるデータの保持を、多数の隣接ノードに対して依頼する、或いは、一の種類のデータを比較的頻繁に転送してくる隣接ノードに対して、該一のデータの保持を依頼する、ことにより自ノードの負荷を適切に分散させることができる。【００１８】
「自ノードに対して送信されるデータを解析」とは、例えば、送信されるデータの種別（例えば、画像、文書、楽曲等、或いは、ジャンル等）の解析、検索キーワードの解析、トラフィック量の時間的な変移の解析、等を意味する。【００１９】
本発明の通信方法は、上記課題を解決するために、ピアツーピア方式によりネットワークを構築する通信装置における通信方法であって、前記ネットワーク上における、前記通信装置である自ノードの周辺のネットワーク状況を確認する周辺ネットワーク状況確認工程と、前記確認されたネットワーク状況と、前記自ノードの隣接ノードの数と、に基づいて、前記自ノードがハブノードであるか否かを判定する判定工程と、を備える。【００２０】
本発明の通信方法によれば、上述した本発明の通信装置と同様に、ピアツーピア方式のネットワークにおける処理負荷の偏りの発生を抑制することができる。【００２１】
尚、本発明の通信方法においても、上述した本発明の通信装置における各種態様と同様の各種態様を採ることが可能である。【００２２】
本発明のコンピュータプログラムは、上記課題を解決するために、コンピュータを、ピアツーピア方式によりネットワークを構築する通信装置であって、前記ネットワーク上における、当該通信装置である自ノードの周辺のネットワーク状況を確認する周辺ネットワーク状況確認手段と、前記確認されたネットワーク状況と、前記自ノードの隣接ノードの数と、に基づいて、前記自ノードがハブノードであるか否かを判定する判定手段と、を備える通信装置として機能させる。【００２３】
本発明のコンピュータプログラムによれば、上述した本発明の通信装置と同様に、ピアツーピア方式のネットワークにおける処理負荷の偏りの発生を抑制することができる。【００２４】
尚、本発明のコンピュータプログラムにおいても、上述した本発明の通信装置における各種態様と同様の各種態様を採ることが可能である。【００２５】
本発明の情報記録媒体は、上記課題を解決するために、上述した本発明のコンピュータプログラム（但し、その各種態様を含む）が記録されている。【００２６】
本発明の情報記録媒体によれば、上述した本発明のコンピュータプログラムと同様に、ピアツーピア方式のネットワークにおける処理負荷の偏りの発生を抑制することができる。【００２７】
本発明の作用及び他の利得は次に説明する実施するための形態から明らかにされる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係るデータ通信装置の概略を示す概略図である。
【図２】本発明の実施形態に係るデータ通信装置の構成を示すブロック図である。
【図３】本発明の実施形態に係る第１の隣接ノード設定処理を示すフローチャートである。
【図４】本発明の実施形態に係る第２の隣接ノード設定処理を示すフローチャートである。
【図５】本発明の実施形態に係る負担分散処理を示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下、本発明の通信装置に係る実施形態について、図面に基づいて説明する。
【００３０】
（データ通信装置の構成）
先ず、本実施形態に係るデータ通信装置の構成について、図１及び図２を参照して説明する。図１は、第１実施形態に係るデータ通信装置の概略を示す概略図であり、図２は、第１実施形態に係るデータ通信装置の構成を示すブロック図である。尚、図１及び図２には、本実施形態に直接関係する部材のみを示し、その他の部材については図示を省略している。
【００３１】
図１に示すように、本実施形態に係るデータ通信装置１０は、例えばＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等であるネットワーク３０を介して、他のデータ通信装置２１及びノード管理サーバ２２と接続されている。ノード管理サーバ２２には、ピアツーピア方式によるネットワークを構成するノードに係る情報が格納されている。尚、データ通信装置２１の構成は、データ通信装置１０の構成と同様であるので、その詳細については説明を割愛する。また、ノード管理サーバ２２は、データ通信装置としての機能も併せ持つことができ、ノードとなり得る。
【００３２】
データ通信装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ユーザメモリ１２、コンテンツメモリ１３、ノードメモリ１４及びネットワークＩＦ（Ｉｎｔｅｒｆａｃｅ）１５を備えて構成されている。該ＣＰＵ１１、ユーザメモリ１２、コンテンツメモリ１３、ノードメモリ１４及びネットワークＩＦ１５は、バス１６を介して相互に接続されている。
【００３３】
ユーザメモリ１２には、例えばデータ通信装置１０のユーザ（以降、適宜“自ユーザ”と称する）と関わりのあるユーザ（例えば、友人・知人、会社の同僚、学校の同級生、等）に係る情報であるユーザ情報（以降、適宜、“ソーシャルユーザ情報”と称する）が格納されている。
【００３４】
ソーシャルユーザ情報には、例えば、一のユーザを他のユーザから識別するための識別情報としてのユーザＩＤ、該一のユーザが利用しているノードのリスト、該一のユーザのプロフィール、等が含まれている。尚、ソーシャルユーザ情報は、例えば、自ユーザにより入力されてもよいし、ネットワーク３０を介して、ノード管理サーバ２２若しくはデータ通信装置２１から取得されてもよい。
【００３５】
コンテンツメモリ１３には、例えば画像データ、テキストデータ、楽曲データ、動画データ等のコンテンツに係る情報であるコンテンツ情報が格納されている。コンテンツ情報には、例えば、一のコンテンツを他のコンテンツから識別するための識別情報としてのコンテンツＩＤ、該一のコンテンツのデータ容量を示す容量情報、該一のコンテンツに係る説明、該一のコンテンツの実体データ、等が含まれている。
【００３６】
ノードメモリ１４には、隣接ノードが設定されていれば、データ通信装置１０の隣接ノードに係る情報であるノード情報が格納されている。尚、ノードメモリ１４には、データ通信装置１０の隣接ノードに係るノード情報だけでなく、該隣接ノードの隣接ノードに係るノード情報も格納されてよい。このように構成すれば、データ通信装置１０が、当該データ通信装置１０近傍のクラスタ関係を比較的容易に認識することができる。
【００３７】
ノード情報には、例えばノードＩＤ、ＩＰアドレス、ポート番号、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）、メーカー名、機種情報、等が含まれてもよい。
【００３８】
次に、データ通信装置１０の詳細な構成について、図２を参照して説明する。
【００３９】
図２において、ＣＰＵ１１は、ソーシャル管理部１１１、コンテンツ管理部１１２、隣接ノード管理部１１３、ソーシャルユーザ取得部１１４、コンテンツ入出力部１１５、コンテンツ検索・流通依頼入力部１１６、ユーザ検索依頼入力部１１７及び自ユーザ情報取得部１１８を備えて構成されている。
【００４０】
ソーシャルユーザ取得部１１４は、他のユーザに係るユーザＩＤ、及び該他のユーザに係るソーシャル関係（即ち、自ユーザとの関係性）を示す情報を取得する。ここで、ソーシャル関係としては、例えば、友人・知人、自ユーザが興味を持っている人物、自ユーザが参加するネットワーク上のコミュニティの参加者、自ユーザが所有するコンテンツやデバイスに類似するコンテンツやデバイスを所有する人物、自ユーザの居住地若しくは現在地近傍に存在する人物、等が挙げられる。
【００４１】
自ユーザ情報取得部１１８は、自ユーザに係るユーザ情報（以降、適宜、“自ユーザ情報”と称する）を取得する。ここで、自ユーザ情報には、自ユーザに係るユーザＩＤ、自ユーザのプロフィール、自ユーザが、データ通信装置１０以外に使用しているノードに係る情報、等が含まれる。
【００４２】
ソーシャル管理部１１１は、ユーザメモリ１２に格納されているユーザ情報（即ち、自ユーザ情報、及びソーシャルユーザ情報）を管理すると共に、ソーシャルユーザ取得部１１４により取得されたユーザＩＤ及びソーシャル関係を示す情報に基づいてソーシャルユーザ情報を取得し、ユーザメモリ１２に格納する。
【００４３】
ソーシャル管理部１１１は、更に、少なくともソーシャルユーザ情報に基づいて、データ通信装置１０の隣接ノードを設定する。具体的には例えば、ソーシャル管理部１１１は、自ユーザ情報とソーシャルユーザ情報との間の類似度を算出し、該算出された類似度が比較的高いソーシャルユーザ情報に対応するノードを、データ通信装置１０の隣接ノードとして設定する。
【００４４】
隣接ノード管理部１１３は、ソーシャル管理部１１１により設定され、ノードメモリ１４に格納された隣接ノードに係るノード情報を管理する。
【００４５】
コンテンツ入出力部１１５は、具体的には例えば、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）デコーダ及びビデオ端子、ＤＡ（Ｄｉｇｉｔａｌ  ｔｏ  Ａｎａｌｏｇ）コンバータ及びスピーカ出力、動画データ、楽曲データ、テキストデータ等を所定のファイル形式で出力可能な出力部、ビデオ入力端子、オーディオ入力端子、所定のファイル形式を入力可能な入力部、等により構成すればよい。
【００４６】
尚、ソーシャルユーザ取得部１１４、コンテンツ入出力部１１５、コンテンツ検索・流通依頼入力部１１６、ユーザ検索依頼入力部１１７、及び自ユーザ情報取得部１１８の各々は、バス１６（図１参照）を介して、例えばユーザインターフェース（図示せず）等にも接続されている。
【００４７】
ネットワークＩＦ１５は、ノード情報送受信部１５１、データ検索・取得部１５２、データ流通部１５３、一時リンク依頼部１５４及び周辺ノード次数確認部１５５を備えて構成されている。
【００４８】
ノード情報送受信部１５１は、ユーザメモリ１２に格納されているソーシャルユーザ情報に含まれるノードＩＤ（即ち、一のユーザが利用しているノードのリストを構成するノードＩＤ）に基づいて、該ノードＩＤに対応するノードに係るアドレスやポート番号を含むノード情報を取得する。尚、ノード情報は、例えば、ネットワーク３０を介して、ノード管理サーバ２２若しくはデータ通信装置２１から取得すればよい。
【００４９】
データ検索・取得部１５２は、他のユーザ（即ち、一のデータ通信装置２１を使用するユーザ）に係るユーザ情報等を、データ通信装置１０が取得するために、該データ通信装置１０の隣接ノードに対して、該他のユーザに係る検索リクエストを送信すると共に、検索リクエストに対する回答としての該他のユーザに係るユーザ情報を取得する。データ検索・取得部１５２は、更に、他のノードから要求されたユーザに係るユーザ情報等を、他のノードに対して送信する。
【００５０】
データ流通部１５３は、自ユーザ情報等を、データ通信装置１０の隣接ノードに対して送信すると共に、他のユーザに係るユーザ情報等を、データ通信装置１０の隣接ノードから受信する。
【００５１】
一時リンク依頼部１５４は、例えば、一の隣接ノードに対して、該一の隣接ノードとは異なる他の隣接ノードとの間に、一時的なリンクを設定するように依頼可能である。
【００５２】
周辺ノード次数確認部１５５は、ピアツーピア方式のネットワーク上において、自ノード（即ち、当該データ通信装置１０）の周辺に位置するノードの数、及び／又は、自ノードの周辺に位置する複数のノード各々に係るノード次数を確認する。周辺ノード次数確認部１５５は、更に、確認されたノード数及びノード次数の少なくとも一方に基づいて、自ノードがハブノードであるか否かを判定する。
【００５３】
（隣接ノード設定処理）
以上のように構成されたデータ通信装置１０における隣接ノード設定処理について、図３及び図４のフローチャートを参照して説明する。
【００５４】
（ノードメモリにノード情報が格納されていない場合）
図３において、先ず、ソーシャルユーザ取得部１１４は、自ユーザと関わりのあるユーザに係るユーザＩＤを取得する（ステップＳ１０１）。次に、ソーシャル管理部１１１は、取得されたユーザＩＤに基づいて、ノード管理サーバ２２から、該ユーザＩＤに対応するソーシャルユーザ情報を取得する（ステップＳ１０２）。
【００５５】
次に、ソーシャル管理部１１１は、取得されたソーシャルユーザ情報を、ユーザメモリ１２に格納する（ステップＳ１０３）。続いて、ソーシャル管理部１１１は、格納されたソーシャルユーザ情報に係るユーザが使用しているノードを隣接ノードに決定する（ステップＳ１０４）。次に、ノード管理部１１３は、ソーシャル管理部１１１により決定された隣接ノードに係るノード情報をノードメモリ１４に格納する（ステップＳ１０５）。
【００５６】
（ノードメモリにノード情報が格納されている場合）
図４において、上述したステップＳ１０１の処理の後、ソーシャル管理部１１１は、ソーシャル管理部１１４により取得されたユーザＩＤに基づいて、ノードメモリ１４に格納されている一又は複数のノード情報に夫々対応する隣接ノードのうち少なくとも一の隣接ノードに対して、該取得されたユーザＩＤに対応するソーシャルユーザ情報の取得を依頼する。該依頼の結果として、ソーシャル管理部１１１は、隣接ノードからソーシャルユーザ情報を取得する（ステップＳ２０１）。その後、ソーシャル管理部１１１は、上述したステップＳ１０３以降の処理を実行する。
【００５７】
尚、設定可能な隣接ノードの数に上限値が設けられている場合、ソーシャル管理部１１１は、例えば自ユーザ情報とソーシャルユーザ情報との間の類似度を算出し、該算出された類似度に応じて隣接ノードを設定すればよい。
【００５８】
上述の如く隣接ノードを設定することにより、自ユーザと関わりのあるユーザが使用するノードが、当該データ通信装置１０の隣接ノードとして設定される。このため、自ユーザと全く関わりのないユーザが使用するノードが、当該データ通信装置１０の隣接ノードとして設定される場合と比較して、無駄なトラフィックの発生を抑制することができる。従って、比較的高速なデータ通信を行うことができる。更に、スモールワールド性、スケールフリー性、及びクラスタ性を有するピアツーピア方式のネットワークを比較的容易に構築することができる。
【００５９】
（負荷分散処理）
次に、本実施形態に係る負荷分散処理について、図５のフローチャートを参照して説明する。
【００６０】
図５において、先ず、周辺ノード次数確認部１５５は、ピアツーピア方式のネットワーク上において、自ノードの周辺（例えば３ホップ以内等）に位置するノードの数、及び／又は、自ノードの周辺に位置する複数のノード各々に係るノード次数を確認する（ステップＳ３０１）。
【００６１】
尚、ノード数の確認、及びノード次数の確認には、公知の各種態様を適用可能であるので、その詳細については、説明の煩雑化を避けるために割愛する。また、周辺ノード次数確認部１５５により確認された、自ノードの周辺に位置する複数のノード各々に係るノード次数は、ソーシャル管理部１１１（図２参照）等によりノードメモリ１４に格納される。
【００６２】
周辺ノード次数確認部１５５は、自ノードの周辺に位置するノード数を確認した場合、該確認されたノード数に基づいて、当該データ通信装置１０が参加しているピアツーピア方式のネットワークに参加している全ノードの数を推定する。
【００６３】
次に、周辺ノード次数確認部１５５は、推定された全ノードの数、及び／又は、確認されたノード次数に基づいて、自ノードがハブノードであるか否かを判定する（ステップＳ３０２）。
【００６４】
具体的には例えば、周辺ノード次数確認部１５５は、自ノードのノード次数（即ち、自ノードに設定されている隣接ノードの数＋１（自ノード））と、推定された全ノードの数とを比較し、自ノードのノード次数が、推定された全ノードの数の１％以上であることを条件に、自ノードがハブノードであると判定する。
【００６５】
或いは、周辺ノード次数確認部１５５は、確認されたノード次数の分布における自ノードのノード次数が、該ノード次数の分布の上位５％に入っていることを条件に、自ノードがハブノードであると判定する。
【００６６】
或いは、周辺ノード次数確認部１５５は、推定された全ノードの数の１％となるノード次数と、確認されたノード次数の分布の上位５％となるノード次数とを比較し、推定された全ノードの数の１％となるノード次数の方が大きくなる場合には、周辺ノード次数確認部１５５は、推定された全ノードの数の１％以上であることを条件に、自ノードがハブノードであると判定し、確認されたノード次数の分布の上位５％となるノード次数の方が大きくなる場合には、周辺ノード次数確認部１５５は、ノード次数の分布の上位５％に入っていることを条件に、自ノードがハブノードであると判定してもよい。
【００６７】
自ノードがハブノードではないと判定された場合（ステップＳ３０２：Ｎｏ）、一旦処理が終了される。他方、自ノードがハブノードであると判定された場合（ステップＳ３０３：Ｙｅｓ）、周辺ノード次数確認部１５５は、当該データ通信装置１０に対して、送信されるデータを常に又は逐次解析し、ピアツーピア方式のネットワーク内に流通しているデータの状況を確認する（ステップＳ３０３）。
【００６８】
具体的には例えば、周辺ノード次数確認部１５５は、送信されるデータの種別、検索キーワード、トラフィック量の時間的な変移、等を解析して、流通しているデータの状況を確認する。
【００６９】
次に、一時リンク依頼部１５４は、確認された流通しているデータの状況に応じて、自ノードの処理負担が軽減されるように、隣接ノードに対して、所定の負担処理の依頼を示す信号を送信する（ステップＳ３０４）。
【００７０】
ここで、「所定の負担処理」とは、例えば、自ノードが保持するコンテンツデータのうち、検索キーワードとして比較的頻繁に現れる語句に対応する一又は複数のコンテンツデータの少なくとも一部の保持、或いは、自ノードの一の隣接ノードと、該一の隣接ノードとは異なる他の隣接ノードとの間の一時的なリンクの設定、等を意味する。
【００７１】
次に、一時リンク依頼部１５４は、隣接ノードから送信された依頼受諾を示す信号が受信されたか否かを判定する（ステップＳ３０５）。依頼受諾を示す信号が受信されなかったと判定された場合（ステップＳ３０５：Ｎｏ）、一旦処理が終了される。
【００７２】
他方、依頼受諾を示す信号が受信されたと判定された場合（ステップＳ３０５：Ｙｅｓ）、負担分散処理が実行される（ステップＳ３０６）。具体的には例えば、依頼受諾を示す信号を送信した隣接ノードに対して、自ノードが保持するコンテンツデータの少なくとも一部が送信される。或いは、依頼受諾を示す信号を送信した隣接ノードに対して、一時的にリンクを設定すべきノードに係る情報を示す信号が送信される。
【００７３】
上述した負担分散処理が実行される結果、ピアツーピア方式のネットワークにおける処理負荷の偏りの発生を抑制することができる。また、例えば、検索キーワードとして比較的頻繁に現れる語句に対応するコンテンツデータを保持するノードの数が増加し、ネットワークにおける検索性を向上させることができる。加えて、トラフィック量に応じて適切にリンクが設定され、ネットワークの通信効率及び安定性を向上させることができる。
【００７４】
更に、ハブノードである自ノードがピアツーピア方式のネットワークから離脱する場合に、自ノードの離脱に起因して該ネットワークにおよぼす影響を抑制することができ、実用上非常に有利である。
【００７５】
尚、本実施形態に係る「周辺ノード次数確認部１５５」は、本発明に係る「周辺ネットワーク状況確認手段」、「判定手段」及び「流通データ状況確認手段」の一例であり、本実施形態に係る「一時リンク依頼部１５４」は、本発明に係る「負担依頼手段」の一例である。
【００７６】
本発明は、上述した実施形態に限られるものではなく、請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴う通信装置及び方法、並びにコンピュータプログラムもまた本発明の技術的範囲に含まれるものである。
【符号の説明】
【００７７】
１０、２１…データ通信装置、１１…ＣＰＵ、１２…ユーザメモリ、１３…コンテンツメモリ、１４…ノードメモリ、１５…ネットワークＩＦ、２２…ノード管理サーバ、３０…ネットワーク、１１１…ソーシャル管理部、１１２…コンテンツ管理部、１１３…隣接ノード管理部、１１４…ソーシャルユーザ取得部、１１５…コンテンツ入出力部、１１６…コンテンツ検索・流通依頼入力部、１１７…ユーザ検索依頼入力部、１１８…自ユーザ情報取得部、１５１…ノード情報送受信部、１５２…データ検索・取得部、１５３…データ流通部、１５４…一時リンク依頼部、１５５…周辺ノード次数確認部
【図１】
0005614866.tif 000002
【図２】
0005614866.tif 000003
【図３】
0005614866.tif 000004
【図４】
0005614866.tif 000005
【図５】
0005614866.tif 000006