(57)【要約】【課題】  Ｐ２Ｐ（ピア・ツー・ピア）データ共有ネットワーク上で、あるデータを分割し複数ノードで分割したデータを保存することにより特定ノードへのトラフィック集中を防ぐデータ共有システムを提供する【解決手段】  Ｐ２Ｐ（ピア・ツー・ピア）ネットワーク上に存在する複数のノードのうち少なくとも１つのノードは、データを分割して分割データを作成する。前記複数のノードの各々は、前記Ｐ２Ｐネットワークのトラフィック状況に応じて前記分割データを他ノードに転送し、自ノードが保持する前記分割データに関する情報をデータ情報に登録する。  前記複数のノードの各々は、他ノードから前記分割データの転送要求を受信した場合、前記データ情報を検索し、前記転送要求のあった分割データが存在していれば、前記他ノードに前記分割データを転送する。前記分割データを転送されたノードは、前記転送された分割データを結合し、前記データを再生する。【選択図】        図２
2006227763.tif 000002
【特許請求の範囲】
【請求項１】
Ｐ２Ｐ（ピア・ツー・ピア）ネットワーク上に存在する複数のノードを具備し、
前記複数のノードのうち少なくとも１つのノードは、データを分割して分割データを作成し、
前記複数のノードの各々は、前記Ｐ２Ｐネットワークのトラフィック状況に応じて前記分割データを他ノードに転送し、自ノードが保持する前記分割データに関する情報をデータ情報に登録する
データ共有システム。
【請求項２】
請求項１に記載のデータ共有システムにおいて、
前記複数のノードの各々は、他ノードから前記分割データの転送要求を受信した場合、前記データ情報を検索し、前記転送要求のあった分割データが存在していれば、前記他ノードに前記分割データを転送する
データ共有システム。
【請求項３】
請求項１又は２に記載のデータ共有システムにおいて、
前記複数のノードの各々は、前記転送された分割データを結合し、前記データを再生する
データ共有システム。
【請求項４】
請求項１乃至３のいずれか一項に記載のデータ共有システムにおいて、
前記複数のノードの各々は、自ノードに存在する前記分割データを調査し、前記データ情報に登録されている情報と比較し、前記分割データが存在しているにもかかわらず前記データ情報に情報が登録されていない場合、前記分割データに関する情報をデータ情報に登録する
データ共有システム。
【請求項５】
請求項１乃至４のいずれか一項に記載のデータ共有システムにおいて、
前記複数のノードの各々は、自ノードに存在する前記分割データを調査し、前記データ情報に登録されている情報と比較し、前記分割データが存在していないにもかかわらず前記データ情報に情報が登録されている場合、前記分割データに関する情報をデータ情報から削除する
データ共有システム。
【請求項６】
請求項１乃至５のいずれか一項に記載のデータ共有システムにおいて、
前記複数のノードの各々は、他ノードから送信された検索用キーワードを受信した場合、自ノードが保持する前記データ情報に前記検索用キーワードと一致する前記分割データの情報が存在するか調べ、前記分割データの情報が存在する場合、前記他ノードに対して前記分割データの情報を含めた返答メッセージを送信する
データ共有システム。
【請求項７】
請求項１乃至６のいずれか一項に記載のデータ共有システムにおいて、
前記複数のノードの各々は、他ノードから送信された検索用キーワードを受信した場合、自ノードが保持する前記データ情報に前記検索用キーワードと一致する前記分割データの情報が存在するか調べ、前記分割データの情報が存在しない場合、前記他ノードに対して前記検索用キーワードと一致する前記分割データの情報がない旨の返答メッセージを送信する
データ共有システム。
【請求項８】
請求項６又は７に記載のデータ共有システムにおいて、
前記返答メッセージを受信したノードは、前記分割データの情報が存在する場合、前記データ情報に前記分割データの情報を登録し、前記分割データの情報が存在しない場合、前記データ情報に前記分割データの情報を削除する
データ共有システム。
【請求項９】
請求項１乃至８のいずれか一項に記載のデータ共有システムにおいて、
前記複数のノードの各々は、他ノードから送信された転送要求を受信した場合、前記データ情報を検索し、自ノードに前記転送要求のあった分割データが存在するか確認し、前記転送要求のあった分割データが存在する場合、前記他ノードに転送準備完了メッセージを送信する
データ共有システム。
【請求項１０】
請求項１乃至９のいずれか一項に記載のデータ共有システムにおいて、
前記複数のノードの各々は、他ノードから送信された転送要求を受信した場合、前記データ情報を検索し、自ノードに前記転送要求のあった分割データが存在するか確認し、前記転送要求のあった分割データが存在しない場合、前記他ノードに前記転送要求のあった分割データがない旨のメッセージを送信する
データ共有システム。
【請求項１１】
請求項１乃至１０のいずれか一項に記載のデータ共有システムにおいて、
前記複数のノードの各々は、近接ノードに対して容量確認要求を送信し、前記容量確認要求に対する返信があり、且つ分割データの容量より空き容量が大きい他ノードがある場合、検索要求を送信する
データ共有システム。
【請求項１２】
請求項１１に記載のデータ共有システムにおいて、
前記複数のノードの各々は、前記検索要求に対し、前記検索要求と一致する分割データがない旨のメッセージを受信した場合、拡散要求を送信する
データ共有システム。
【請求項１３】
請求項１２に記載のデータ共有システムにおいて、
前記複数のノードの各々は、前記拡散要求に対し、前記拡散要求を受け付けられる旨のメッセージを受信した場合、前記拡散要求を受け付けるノードに前記分割データを転送する
データ共有システム。
【請求項１４】
請求項１３に記載のデータ共有システムにおいて、
前記複数のノードの各々は、規定回数以上の拡散処理を行っている場合、前記分割データを削除し、前記データ情報から前記削除した分割データの情報を削除する
データ共有システム。
【請求項１５】
請求項１乃至１４のいずれか一項に記載のデータ共有システムにおいて、
前記分割データの転送が中断された場合、送信側ノードは受信側ノードに接続を試みる
データ共有システム。
【請求項１６】
請求項１５に記載のデータ共有システムにおいて、
前記接続が成功した場合、送信側ノードは前記転送の続きから前記分割データの転送を行う
データ共有システム。
【請求項１７】
請求項１乃至１６のいずれか一項に記載のデータ共有システムにおいて、
前記複数のノードの各々は、他ノードから送信された容量確認要求を受信した場合、自ノードに設定されている公開容量設定情報と前記分割データが占有している使用済容量情報とを取得し、前記公開容量設定情報から使用済容量情報を除いた結果を前記他ノードに送信する
データ共有システム。
【請求項１８】
Ｐ２Ｐ（ピア・ツー・ピア）ネットワーク上に存在する複数のノードのうち少なくとも１つのノードが、データを分割して分割データを作成するステップと、
前記複数のノードの各々が、前記Ｐ２Ｐネットワークのトラフィック状況に応じて前記分割データを他ノードに転送し、自ノードが保持する前記分割データに関する情報をデータ情報に登録するステップと
を具備する
データ共有方法。
【請求項１９】
請求項１８に記載のデータ共有方法において、
前記複数のノードの各々が、他ノードから前記分割データの転送要求を受信した場合、前記データ情報を検索し、前記転送要求のあった分割データが存在していれば、前記他ノードに前記分割データを転送するステップと
を具備する
データ共有方法。
【請求項２０】
請求項１８又は１９に記載のデータ共有方法において、
前記複数のノードの各々が、前記転送された分割データを結合し、前記データを再生するステップを具備する
データ共有方法。
【請求項２１】
請求項１８乃至２０のいずれか一項に記載のデータ共有方法において、
前記複数のノードの各々が、自ノードに存在する前記分割データを調査し、前記データ情報に登録されている情報と比較し、前記分割データが存在しているにもかかわらず前記データ情報に情報が登録されていない場合、前記分割データに関する情報をデータ情報に登録するステップを具備する
データ共有方法。
【請求項２２】
請求項１８乃至２１のいずれか一項に記載のデータ共有方法において、
前記複数のノードの各々が、自ノードに存在する前記分割データを調査し、前記データ情報に登録されている情報と比較し、前記分割データが存在していないにもかかわらず前記データ情報に情報が登録されている場合、前記分割データに関する情報をデータ情報から削除するステップを具備する
データ共有方法。
【請求項２３】
請求項１８乃至２２のいずれか一項に記載のデータ共有方法において、
前記複数のノードの各々が、他ノードから送信された検索用キーワードを受信した場合、自ノードが保持する前記データ情報に前記検索用キーワードと一致する前記分割データの情報が存在するか調べ、前記分割データの情報が存在する場合、前記他ノードに対して前記分割データの情報を含めた返答メッセージを送信するステップを具備する
データ共有方法。
【請求項２４】
請求項１８乃至２３のいずれか一項に記載のデータ共有方法において、
前記複数のノードの各々が、他ノードから送信された検索用キーワードを受信した場合、自ノードが保持する前記データ情報に前記検索用キーワードと一致する前記分割データの情報が存在するか調べ、前記分割データの情報が存在しない場合、前記他ノードに対して前記検索用キーワードと一致する前記分割データの情報がない旨の返答メッセージを送信するステップを具備する
データ共有方法。
【請求項２５】
請求項２３又は２４に記載のデータ共有方法において、
前記返答メッセージを受信したノードが、前記分割データの情報が存在する場合、前記データ情報に前記分割データの情報を登録し、前記分割データの情報が存在しない場合、前記データ情報に前記分割データの情報を削除するステップを具備する
データ共有方法。
【請求項２６】
請求項１８乃至２５のいずれか一項に記載のデータ共有方法において、
前記複数のノードの各々が、他ノードから送信された転送要求を受信した場合、前記データ情報を検索し、自ノードに前記転送要求のあった分割データが存在するか確認し、前記転送要求のあった分割データが存在する場合、前記他ノードに転送準備完了メッセージを送信するステップを具備する
データ共有方法。
【請求項２７】
請求項１８乃至２６のいずれか一項に記載のデータ共有方法において、
前記複数のノードの各々が、他ノードから送信された転送要求を受信した場合、前記データ情報を検索し、自ノードに前記転送要求のあった分割データが存在するか確認し、前記転送要求のあった分割データが存在しない場合、前記他ノードに前記転送要求のあった分割データがない旨のメッセージを送信するステップを具備する
データ共有方法。
【請求項２８】
請求項１８乃至２７のいずれか一項に記載のデータ共有方法において、
前記複数のノードの各々が、近接ノードに対して容量確認要求を送信し、前記容量確認要求に対する返信があり、且つ分割データの容量より空き容量が大きい他ノードがある場合、検索要求を送信するステップを具備する
データ共有方法。
【請求項２９】
請求項２８に記載のデータ共有方法において、
前記複数のノードの各々が、前記検索要求に対し、前記検索要求と一致する分割データがない旨のメッセージを受信した場合、拡散要求を送信するステップを具備する
データ共有方法。
【請求項３０】
請求項２９に記載のデータ共有方法において、
前記複数のノードの各々が、前記拡散要求に対し、前記拡散要求を受け付けられる旨のメッセージを受信した場合、前記拡散要求を受け付けるノードに前記分割データを転送するステップを具備する
データ共有方法。
【請求項３１】
請求項３０に記載のデータ共有方法において、
前記複数のノードの各々が、規定回数以上の拡散処理を行っている場合、前記分割データを削除し、前記データ情報から前記削除した分割データの情報を削除するステップを具備する
データ共有方法。
【請求項３２】
請求項１８乃至３１のいずれか一項に記載のデータ共有方法において、
前記分割データの転送が中断された場合、送信側ノードが、受信側ノードに接続を試みるステップを具備する
データ共有方法。
【請求項３３】
請求項３２に記載のデータ共有方法において、
前記接続が成功した場合、送信側ノードが、前記転送の続きから前記分割データの転送を行うステップを具備する
データ共有方法。
【請求項３４】
請求項１８乃至３３のいずれか一項に記載のデータ共有方法において、
前記複数のノードの各々が、他ノードから送信された容量確認要求を受信した場合、自ノードに設定されている公開容量設定情報と前記分割データが占有している使用済容量情報とを取得し、前記公開容量設定情報から使用済容量情報を除いた結果を前記他ノードに送信するステップを具備する
データ共有方法。
【請求項３５】
請求項１８乃至３４のいずれか一項に記載のデータ共有方法を、計算機に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｐ２Ｐ（ピア・ツー・ピア）データ共有ネットワーク上でデータの分割による特定ノードに対するトラフィック集中を抑制するデータ共有システム、データ共有方法及びプログラムに関する。
【背景技術】
【０００２】
図１に示す通り、従来のＰ２Ｐ（ピア・ツー・ピア）データ共有ネットワークではデータは各ノードごとに保存され、別ノードからの転送要求に対してデータを転送する。このためデータを全て転送しなくてはならない。なお、図１に示す一般的なＰ２Ｐデータ共有ネットワークに関しては公知技術となっている。
【０００３】
図１では、ノード１データ共有システム６を含むＰ２Ｐデータ共有ネットワークにおいて、データＡ，Ｂが共有される場合について例示している。ここで、ノード１は、ノード２，３，５と通信網がつながっている。ノード２は、ノード１，４，５，６と通信網がつながっている。ノード３は、ノード１，６と通信網がつながっている。ノード４は、ノード２，５，６と通信網がつながっている。ノード５は、ノード１，２，４と通信網がつながっている。ノード６は、ノード２，３，４と通信網がつながっている。
例えば、図１のように、ノード１がデータＡを有し、ノード３がデータＢを有し、ノード４がデータＡを有し、ノード５がデータＢを有する場合、ノード１からノード５へデータＡを転送し、ノード４からノード５，６へデータＡを転送する。
この時、データＡ，Ｂが小さなデータであれば問題ないが、大きなデータであればネットワークに様々な影響が発生する。
【０００４】
Ｐ２Ｐデータ共有ネットワークでは、巨大なデータがノードに保存され別ノードから転送要求がある場合、転送に時間がかかる。更に周辺のノードから同一データに対する転送要求が重なる場合、各ノードへの転送時間は長くなる。また、時間が経てばより遠方のノードにデータの存在が知れるため複数接続の確率は高くなる。つまりＰ２Ｐデータ共有ネットワークにある程度データが行き渡らないとトラフィック集中が生じる問題があった。
【０００５】
Ｐ２Ｐデータ共有ネットワークにおけるトラフィック制御については、管理用のサーバを設置することなくトラフィックの集中を抑制するトラフィック制御方法が従来技術として知られている（特許文献１参照）。
このトラフィック制御方法では、ネットワーク上の各端末（ノード）が、他の端末からのファイル検索要求に対する自端末の検索結果のヒット状況を監視し、前期ヒット状況に応じて各端末が自律分散的にトラフィックを制御する。
【０００６】
特許文献１が示すように従来のＰ２Ｐデータ共有ネットワークではデータの検索、転送元ノードを制御することによりトラフィックの集中を防いでいる。
【０００７】
【特許文献１】特開２００４−０６４２８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、Ｐ２Ｐ（ピア・ツー・ピア）データ共有ネットワーク上で、あるデータを分割し複数ノードで分割したデータを保存することにより特定ノードへのトラフィック集中を防ぐデータ共有システム、データ共有方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００９】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。但し、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
本発明のデータ共有システムは、Ｐ２Ｐ（ピア・ツー・ピア）ネットワーク上に存在する複数のノード（１，２，３，４，５，６）を具備する。
前記複数のノード（１，２，３，４，５，６）のうち少なくとも１つのノードは、データを分割して分割データを作成する。前記複数のノード（１，２，３，４，５，６）の各々は、前記Ｐ２Ｐネットワークのトラフィック状況に応じて前記分割データを他ノードに転送し、自ノードが保持する前記分割データに関する情報をデータ情報に登録する。
【００１１】
前記複数のノード（１，２，３，４，５，６）の各々は、他ノードから前記分割データの転送要求を受信した場合、前記データ情報を検索し、前記転送要求のあった分割データが存在していれば、前記他ノードに前記分割データを転送する。
【００１２】
前記複数のノード（１，２，３，４，５，６）の各々は、前記転送された分割データを結合し、前記データを再生する。
【００１３】
前記複数のノード（１，２，３，４，５，６）の各々は、自ノードに存在する前記分割データを調査し、前記データ情報に登録されている情報と比較し、前記分割データが存在しているにもかかわらず前記データ情報に情報が登録されていない場合、前記分割データに関する情報をデータ情報に登録する。
【００１４】
前記複数のノード（１，２，３，４，５，６）の各々は、自ノードに存在する前記分割データを調査し、前記データ情報に登録されている情報と比較し、前記分割データが存在していないにもかかわらず前記データ情報に情報が登録されている場合、前記分割データに関する情報をデータ情報から削除する。
【００１５】
前記複数のノード（１，２，３，４，５，６）の各々は、他ノードから送信された検索用キーワードを受信した場合、自ノードが保持する前記データ情報に前記検索用キーワードと一致する前記分割データの情報が存在するか調べ、前記分割データの情報が存在する場合、前記他ノードに対して前記分割データの情報を含めた返答メッセージを送信する。
【００１６】
前記複数のノード（１，２，３，４，５，６）の各々は、他ノードから送信された検索用キーワードを受信した場合、自ノードが保持する前記データ情報に前記検索用キーワードと一致する前記分割データの情報が存在するか調べ、前記分割データの情報が存在しない場合、前記他ノードに対して前記検索用キーワードと一致する前記分割データの情報がない旨の返答メッセージを送信する。
【００１７】
前記返答メッセージを受信したノードは、前記分割データの情報が存在する場合、前記データ情報に前記分割データの情報を登録し、前記分割データの情報が存在しない場合、前記データ情報に前記分割データの情報を削除する。
【００１８】
前記複数のノード（１，２，３，４，５，６）の各々は、他ノードから送信された転送要求を受信した場合、前記データ情報を検索し、自ノードに前記転送要求のあった分割データが存在するか確認し、前記転送要求のあった分割データが存在する場合、前記他ノードに転送準備完了メッセージを送信する。
【００１９】
前記複数のノード（１，２，３，４，５，６）の各々は、他ノードから送信された転送要求を受信した場合、前記データ情報を検索し、自ノードに前記転送要求のあった分割データが存在するか確認し、前記転送要求のあった分割データが存在しない場合、前記他ノードに前記転送要求のあった分割データがない旨のメッセージを送信する。
【００２０】
前記複数のノード（１，２，３，４，５，６）の各々は、近接ノードに対して容量確認要求を送信し、前記容量確認要求に対する返信があり、且つ分割データの容量より空き容量が大きい他ノードがある場合、検索要求を送信する。
【００２１】
前記複数のノード（１，２，３，４，５，６）の各々は、前記検索要求に対し、前記検索要求と一致する分割データがない旨のメッセージを受信した場合、拡散要求を送信する。
【００２２】
前記複数のノード（１，２，３，４，５，６）の各々は、前記拡散要求に対し、前記拡散要求を受け付けられる旨のメッセージを受信した場合、前記拡散要求を受け付けるノードに前記分割データを転送する。
【００２３】
前記複数のノード（１，２，３，４，５，６）の各々は、規定回数以上の拡散処理を行っている場合、前記分割データを削除し、前記データ情報から前記削除した分割データの情報を削除する。
【００２４】
前記分割データの転送が中断された場合、送信側ノードは受信側ノードに接続を試みる。
【００２５】
前記接続が成功した場合、送信側ノードは前記転送の続きから前記分割データの転送を行う。
【００２６】
前記複数のノード（１，２，３，４，５，６）の各々は、他ノードから送信された容量確認要求を受信した場合、自ノードに設定されている公開容量設定情報と前記分割データが占有している使用済容量情報とを取得し、前記公開容量設定情報から使用済容量情報を除いた結果を前記他ノードに送信する。
【発明の効果】
【００２７】
Ｐ２Ｐ（ピア・ツー・ピア）データ共有ネットワークにおける特定のノードに対するトラフィックの集中を防ぐことが可能である。
【発明を実施するための最良の形態】
【００２８】
以下に本発明の第１実施形態について添付図面を参照して説明する。
本発明のＰ２Ｐ（ピア・ツー・ピア）データ共有システムは、Ｐ２Ｐデータ共有ネットワーク上に存在する複数のノードを備える。前記の各ノードは、インターネットを始めとする通信網を介して、データの送受信が可能な端末及び中継機といった情報通信機器である。ノードの例としては、コンピュータ、ルータ、ディジタル家電、ゲーム機、オーディオ機器、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）がある。なお、通信網は有線、無線を問わない。
【００２９】
図２は本発明の実施例によるＰ２Ｐデータ共有システムの一例を示す図である。
本発明のＰ２Ｐデータ共有システムでは、特定ノードから転送されるデータ量を削減するトラフィック分散を実現するために予めデータを分割し、トラフィックが少ない時に分割したデータを別ノードに転送しておく。
図２を参照し、ノード１データ共有システム６を含むＰ２Ｐデータ共有ネットワークにおいて、分割データＡ１，Ａ２，Ｂ１，Ｂ２が共有される場合を例に説明する。分割データＡ１，Ａ２はデータＡを分割したものであり、分割データＢ１，Ｂ２はデータＢを分割したものである。ここでは、ノード１は、ノード２，３，５と通信網がつながっている。ノード２は、ノード１，４，５，６と通信網がつながっている。ノード３は、ノード１，６と通信網がつながっている。ノード４は、ノード２，５，６と通信網がつながっている。ノード５は、ノード１，２，４と通信網がつながっている。ノード６は、ノード２，３，４と通信網がつながっている。
ノード１が分割データＡ１，Ｂ１を有し、ノード３が分割データＡ２，Ｂ１を有し、ノード４が分割データＡ１，Ａ２，Ｂ２を有し、ノード５が分割データＢ１を有する場合、トラフィックが少ない時に、ノード１からノード２へ分割データＡ１を転送し、ノード４からノード２へ分割データＡ２を転送する。同様に、ノード１からノード５へ分割データＡ１を転送し、ノード４からノード５へ分割データＡ２を転送する。ノード４からノード６へ分割データＡ１を転送し、ノード３からノード６へ分割データＡ２を転送する。
このように、図２のＰ２Ｐデータ共有システムでは、図１に示される既存のＰ２Ｐデータ共有システムと比較して、データ転送元が分散され、特定ノードから転送されるデータ量が削減されていることが分かる。
なお、図２のＰ２Ｐデータ共有システムでは、例としてノード１，２，３，４，５，６を示しているが、実際には、ノードの数は前記の例に限定されるものではない。
【００３０】
以下に本発明の実施例の動作について添付図面を参照して説明する。
図３に、データ分割の動作について示す。
ここでは、ノードは公開するデータをシステムのノードに拡散させるためにデータを分割し分割データを作成する。分割データに関する情報をデータ情報に登録する。例えば、図３に示すように、データＡを有するノードαが、データＡを分割して分割データＡ１，Ａ２を作成し、分割データＡ１，Ａ２に関する情報をデータ情報に登録する。この時、データ情報は、登録された情報を格納するデータテーブルでも良い。
あるデータを分割して作成される分割データは、分割するノード、分割する時間などの環境に依存せず分割前のデータのみによって分割後のデータが決定される。これにより別ノードに存在する同一のデータを各ノードが別々に分割し、各ノードから別々にダウンロードした分割データを結合した場合でも、分割前のデータが再生されることを保証する。
【００３１】
図４に、データ再生の動作について示す。
例えば、データＡを分割して分割データＡ１，Ａ２を作成し、データＢを分割して分割データＢ１，Ｂ２を作成したとする。この時、図４に示すように、相互に接続されているノードα，β，γにおいて、ノードαが分割データＡ１，Ａ２，Ｂ１を有し、ノードβが分割データＡ２，Ｂ１を有する場合、ノードαはノードγに分割データＡ１を転送し、ノードβはノードγに分割データＡ２を転送し、ノードγは分割データＡ１，Ａ２からデータＡを再生する。
【００３２】
なお、ノードα，β，γの各々は、図２に示したノード１，２，３，４，５，６のいずれか１つを示す。
【００３３】
図５に、データ情報の登録の動作について示す。
ノードは、自ノードに存在する分割データを調査してデータ情報に登録されている情報と比較する。分割データが存在しているにも係らずデータ情報に情報が登録されていない場合、データ情報に分割データ情報を登録し、分割データが存在していないにも係らずデータ情報に情報が登録されている場合、データ情報から登録情報を削除する。
例えば、図５に示すように、分割データＡ１，Ａ２，Ｂ１，Ｂ２，Ｂ３が存在しており、データ情報に分割データＡ２，Ｂ１，Ｂ２，Ｃ３の情報が登録されている場合、自ノードに存在する分割データを調査してデータ情報に登録されている情報と比較し、分割データＡ１，Ｂ３の情報をデータ情報に追加し、自ノードに存在しない分割データＣ３の情報をデータ情報から削除する。
【００３４】
図６に、検索要求に対する処理の動作について示す。
ノードは、他ノードから送信された検索用キーワードを受け取った場合、自ノードが保持するデータ情報に検索キーワードと一致した情報が存在するかを調べる。存在した場合、検索用キーワードを送信してきたノードに対して存在する分割データ情報を含めた返答メッセージを送信する。検索用キーワードと一致する分割データがデータ情報にない場合、キーワードに一致した情報がない旨の返答メッセージを送信する。
例えば、図６に示すように、ノードαに対してノードβから検索要求メッセージが送信された場合、ノードαはノードβに検索文字列要求メッセージを送信する。ノードβは検索文字列要求メッセージを受信すると、ノードαに検索用キーワードを示す検索文字列を送信する。ノードαは検索文字列を受信すると、自ノードが保持するデータ情報に検索キーワードと一致した情報が存在するかを検索し、ノードβに検索返答メッセージを送信する。
【００３５】
図７に、データ情報要求処理の動作について示す。
ノードは、接続した他ノードに対してデータ情報要求メッセージを送信し、返信されたデータ情報を基に自ノードのデータ情報に分割データ情報の登録、削除を行う。返信が帰ってこない場合、又はその他エラーの場合、データ情報に相手ノードに存在する分割データ情報を削除する。
例えば、図７に示すように、ノードαに対してノードβからデータ情報要求メッセージが送信された場合、ノードαは要求されたデータ情報を示す返答メッセージをノードβに送信する。この時、ノードαのデータ情報からノードβに要求された分割データ情報のみを抽出して送信するようにしても良い。ノードβはノードαから送信されたデータ情報に基づいて自ノードのデータ情報に分割データ情報の登録、削除を行う。
【００３６】
図８、図９に、転送要求に対する処理の動作について示す。
ノードは、他ノードから送信された転送要求を受け取った場合、データ情報を検索し自ノードに分割データが存在するかを確かめる。転送要求があった分割データが存在した場合、転送準備完了メッセージを送信する。転送準備完了メッセージに対して受信準備完了メッセージが送信されてきた場合、転送要求と一致する分割データを送信する。分割データの送信終了後転送完了メッセージが送信されてきた場合、切断する。転送要求があった分割データが存在しない場合、転送要求を送信してきたノードに対して要求と一致する分割データがない旨の返答メッセージを送信する。
例えば、図８に示すように、ノードαに対してノードβから転送要求メッセージが送信された時、ノードαはデータ情報を検索し、自ノードに転送要求があった分割データが存在する場合、ノードβに転送準備完了メッセージを送信する。ノードβは、転送準備完了メッセージを受信すると、ノードαに分割データの受信準備完了メッセージを送信する。ノードαは受信準備完了メッセージを受信すると、ノードβに転送要求と一致する分割データを送信する。ノードβは、受信した分割データを保存し、受信した分割データに関する分割データ情報を自ノードのデータ情報に登録する。
また、図９に示すように、ノードαに対してノードβから転送要求メッセージが送信された時、ノードαはデータ情報を検索し、自ノードに転送要求があった分割データが存在しない場合、ノードβに転送要求と一致する分割データがない旨の返答メッセージを送信する。
【００３７】
図１０に、拡散処理の動作について示す。
データ情報を検索し、自ノードが保持する分割データで拡散回数が規定の拡散回数を越えていない分割データが存在する、又は最後に拡散処理を成功してから一定時間経ち、データ情報に自ノード以外に分割データが存在しない場合、以下の処理を行う。
近接ノードに対して容量確認要求を送信する。容量確認要求に対する返信があり、且つ分割データの容量より公開空き容量が大きい他ノードがある場合、検索要求を送信する。拡散を行いたい分割データをキーワードとして検索要求に対する返信が要求と一致する分割データがない旨のメッセージの場合、拡散要求を送信する。拡散要求に対して拡散要求を受け付けられる旨のメッセージが送信された場合、分割データを他ノードに送信する。送信が成功した場合、データ情報中の対応する情報を更新する。規定回数以上の拡散処理を行っている場合、分割データを削除し、データ情報から削除した分割データの情報を削除する。
【００３８】
例えば、図１０に示すように、ノードαが、自ノードのデータ情報をチェックし、データ情報において自ノード以外に分割データが存在しない場合、ノードβに対して容量確認要求を送信する。ノードβは、容量確認要求に対して容量情報をノードαに返信する。ノードαは、分割データの容量よりノードβの公開空き容量が大きい場合、ノードβに検索要求を送信する。ノードβは、検索要求に対して検索返信メッセージをノードαに返信する。検索返信メッセージが、拡散を行いたい分割データをキーワードとして検索要求に対する返信が要求と一致する分割データがない旨のメッセージの場合、ノードαは、拡散要求を送信する。ノードβから拡散要求に対して拡散要求を受け付けられる旨のメッセージが送信された場合、ノードαは、分割データをノードβに送信する。送信が成功した場合、ノードβは分割データを保存し、自ノードのデータ情報に登録する。その後、ノードβは、拡散完了メッセージをノードαに送信する。ノードαは、拡散完了メッセージを受信すると、自ノードのデータ情報中の対応する情報を更新する。規定回数以上の拡散処理を行っている場合、分割データを削除し、データ情報から削除した分割データの情報を削除する。
【００３９】
また、拡散要求に対する処理として、他ノードから送信された容量確認要求を受け取った場合、送信される分割データ専用に保存領域を確保する。保存領域の確保に失敗した場合、拡散要求を受け付けられない旨のメッセージを拡散要求を送信してきたノードに対して送信する。
保存領域確保に成功した場合、拡散要求を受け付けられる旨のメッセージを拡散要求を送信してきたノードに対して送信し、その後分割データを受信し、保存する。更にデータ情報に保存した分割データに関する情報を追加する。保存が終了した場合、拡散要求に対する処理が終了した旨をメッセージとして拡散要求を送信してきたノードに対して送信する。保存に失敗した場合、拡散要求に対する処理が失敗した旨をメッセージとして拡散要求を送信してきたノードに対して送信する。分割データ受信に失敗した場合、切断前に送信された分割データを破棄する。この時、切断前に送信された分割データを破棄せずにレジューム処理を行うようにすることもできる。
【００４０】
図１１に、レジューム及び送信側処理の動作について示す。
分割データ送信中に切断された場合、送信側ノードは受信側ノードに接続を試みる。規定回数接続に失敗した場合、レジュームの試行を終了し、送信失敗とする。接続が成功した場合、分割データのレジューム情報を付与した転送要求を送信する。転送要求に対し対応分割データが存在しない旨のメッセージが送信されてきた場合、送信失敗とする。対応分割データが存在する旨のメッセージが送信されてきた場合、分割データの続きから転送を行う。
【００４１】
図１２に、受信側処理の動作について示す。
例えば、図１２に示すように、ノードβからノードαに分割データを転送中、通信網の接続が切断された場合、ノードβからノードαにレジューム要求を送信する。ノードαはレジューム要求に対し、分割データの受信準備ができたことを示すメッセージをノードβに送信する。ノードβは前記のメッセージを受信すると、切断前に転送していた分割データの続きから転送を行う。
【００４２】
なお、分割データ送信中に切断された場合、受信側ノードは送信側ノードからの接続を待つ。規定時間送信側ノードからの接続が行われない場合、途中まで受信した転送失敗とする。送信側ノードから接続があった場合、分割データのレジューム情報を付与した転送要求から対応する転送途中の分割データを検索する。対応する転送途中の分割データが存在しない場合、対応分割データがない旨を返信し転送失敗とする。対応分割データが存在する場合、対応分割データがある旨を返信し、分割データの続きを受信する。転送失敗とした場合、分割データを破棄し、占有領域を開放する。
【００４３】
図１３に、容量確認に対する処理の動作について示す。
他ノードから送信された容量確認要求を受け取った場合、自ノードに設定されている公開容量設定情報と分割データが占有している使用済容量情報を取得する。公開容量設定情報から使用済容量情報を除いた値を容量確認要求を送信してきたノードに対して送信する。
例えば、図１３に示すように、ノードβからノードαに容量確認メッセージを送信する。ノードαは容量確認メッセージを受信すると、自ノードのデータ情報に記録されている公開容量設定情報、使用済容量情報、及び未使用容量情報を取得し、これらの容量情報に関する容量情報メッセージをノードβに送信する。なお、公開容量設定情報から使用済容量情報を除いた値を未使用容量情報としても良い。
【００４４】
各ノードは、保存処理として、配布された分割データを自ノードの記憶装置に書き込む。但し、記憶装置は必ずしもノードが備えている必要は無く、ノードに接続された外付周辺機器でも良い。
【００４５】
また、各ノードは、前記の各動作を実行するためのプログラムを備えていても良い。この時、各ノードは、プログラムを記憶装置に格納し、処理装置で実行する。例えば、ノードがコンピュータである場合、記憶装置はメモリであり、処理装置はＣＰＵである。
【００４６】
以上のように、本発明のＰ２Ｐ（ピア・ツー・ピア）データ共有ネットワークは、データを分割して保存することにより特定ノードへのアクセス集中を抑制することを特徴としている。
【図面の簡単な説明】
【００４７】
【図１】図１は、従来のＰ２Ｐ（ピア・ツー・ピア）データ共有ネットワークを示す図である。
【図２】図２は、本発明のＰ２Ｐデータ共有システムの一例を示す図である。
【図３】図３は、データ分割の動作について示す図である。
【図４】図４は、データ再生の動作について示す図である。
【図５】図５は、データ情報の登録の動作について示す図である。
【図６】図６は、検索要求に対する処理の動作について示す図である。
【図７】図７は、データ情報要求処理の動作について示す図である。
【図８】図８は、分割データがある場合の転送要求に対する処理の動作について示す図である。
【図９】図９は、分割データがない場合の転送要求に対する処理の動作について示す図である。
【図１０】図１０は、拡散処理及び拡散要求に対する処理の動作について示す図である。
【図１１】図１１は、レジューム及び送信側処理の動作について示す図である。
【図１２】図１２は、受信側処理の動作について示す図である。
【図１３】図１３は、容量確認に対する処理の動作について示す図である。
【符号の説明】
【００４８】
１…  ノード
２…  ノード
３…  ノード
４…  ノード
５…  ノード
６…  ノード
【図１】
2006227763.tif 000003
【図２】
2006227763.tif 000004
【図３】
2006227763.tif 000005
【図４】
2006227763.tif 000006
【図５】
2006227763.tif 000007
【図６】
2006227763.tif 000008
【図７】
2006227763.tif 000009
【図８】
2006227763.tif 000010
【図９】
2006227763.tif 000011
【図１０】
2006227763.tif 000012
【図１１】
2006227763.tif 000013
【図１２】
2006227763.tif 000014
【図１３】
2006227763.tif 000015