(57)【要約】【課題】  Ｐｕｒｅ型Ｐ２Ｐ通信での目的情報の入手をより簡便な手順でスピーディに効率良く行うことを可能とする。【解決手段】  レプリケーション実行の際、履歴情報生成部６ａが、ファイル名と実行先サーバントのＩＰアドレスとを対応付けた履歴情報を生成し、周知処理部６ｂが、当該履歴情報を予め定められた手順で特定される他のサーバントに送信し、逆に他サーバントからの履歴情報を受信すると、履歴情報記憶処理部６ｃが、当該履歴情報をメモリ５に記憶し、ファイルの検索要求パケットを送信する際、履歴情報参照部６ｄが、メモリ５に記憶した履歴情報を参照し、検索要求対象のファイルが有れば、パケット生成・送信処理部６ｅが、対応付けられたＩＰアドレスのサーバントに対してダウンロード要求パケットを送信する。【選択図】        図１
2006221457.tif 000002
【特許請求の範囲】
【請求項１】
Ｐｕｒｅ型Ｐ２Ｐ通信におけるレプリケーション制御を行うサーバントであって、
レプリケーションを実行したファイルの識別情報とレプリケーション実行先のサーバントの識別情報とを対応付けた履歴情報を生成する第１の手段と、
該履歴情報を予め定められた手順で特定される他のサーバントに送信する第２の手段と、
他のサーバントから受信した上記履歴情報を記憶装置に記憶する第３の手段と、
任意のファイルの検索要求パケットを送信する際、記憶した履歴情報を参照する第４の手段と、
該第４の手段の参照結果で、検索対象のファイルに関する履歴情報が有れば当該ファイルに識別情報が対応付けられたサーバントに対して当該ファイルのダウンロード要求パケットを送信し、検索対象のファイルが無ければ隣接する各サーバントに対して当該ファイルの検索要求パケットを送信する第５の手段と
を有することを特徴とするサーバント。
【請求項２】
請求項１に記載のサーバントであって、
上記第２の手段は、予め定められたホップ数範囲内のサーバントを、上記履歴情報の送信先として特定する手段を有することを特徴とするサーバント。
【請求項３】
請求項１に記載のサーバントであって、
上記第２の手段は、予め定められたホップ数範囲内のサーバントで、かつ、ディグリーもしくはヒット数のいずれかが予め定められた閾値以上のサーバントを、上記履歴情報の送信先として特定する手段を有することを特徴とするサーバント。
【請求項４】
請求項１に記載のサーバントであって、
上記第２の手段は、ディグリーとヒット数の少なくともいずれか１つと、ホップ数とを用いて、上記履歴情報の送信先サーバントを特定する手段を有することを特徴とするサーバント。
【請求項５】
請求項１から請求項４のいずれかに記載のサーバントであって、
生成した上記履歴情報を予め定められた時間間隔Ｔで、上記特定されたサーバントに送信する手段と、
他のサーバントから上記履歴情報を受信する度に、予め定められた直近Ｑ（＝ｎ×Ｔ：ｎは任意の正数）以前に受信した履歴情報を削除する手段と
を有することを特徴とするサーバント。
【請求項６】
請求項１から請求項５のいずれかに記載のサーバントであって、
上記履歴情報として、レプリケーションの実行時刻を含むことを特徴とするサーバント。
【請求項７】
請求項１から請求項６のいずれかに記載のサーバントであって、
上記第５の手段は、上記第４の手段の参照結果で上記履歴情報において検索対象のファイルに識別情報が対応付けられたサーバントが複数あれば、予め定められた手順で１つのサーバントを選択して、当該ファイルのダウンロード要求パケットを送信する
ことを特徴とするサーバント。
【請求項８】
請求項１から請求項７のいずれかに記載のサーバントであって、
他のサーバントから受信した検索要求パケットで要求されるファイルが上記履歴情報にあれば、当該ファイルに対応付けられたサーバントの識別情報を上記検索要求パケットの送信元サーバントに通知する手段と、
他のサーバントから通知された識別情報のサーバントに当該ファイルのダウンロード要求パケットを送信する手段と
を有することを特徴とするサーバント。
【請求項９】
コンピュータを、請求項１から請求項８のいずれかに記載のサーバントにおける各手段として機能させるためのプログラム。
【請求項１０】
Ｐｕｒｅ型Ｐ２Ｐ通信を行うサーバントにおけるレプリケーション制御方法であって、
ファイルのレプリケーションを実行したサーバントが、少なくとも当該ファイルの識別情報とレプリケーション実行先のサーバントの識別情報とを対応付けた履歴情報を生成し、該履歴情報を、予め定められた手順で特定される他のサーバントに送信する手順と、
上記履歴情報を受信したサーバントが、上記履歴情報を記憶装置に記憶し、任意のファイルの検索要求パケットを送信する際、記憶した履歴情報を参照し、検索対象のファイルに関する履歴情報が有れば当該ファイルに識別情報が対応付けられたサーバントに対して当該ファイルのダウンロード要求パケットを送信し、検索対象のファイルが無ければ隣接する各サーバントに対して当該ファイルの検索要求パケットを送信する手順と
からなることを特徴とするレプリケーション制御方法。
【請求項１１】
請求項１０に記載のレプリケーション制御方法であって、
上記履歴情報の送信先サーバントを特定する手順では、予め定められたホップ数範囲内のサーバントを送信先として特定することを特徴とするレプリケーション制御方法。
【請求項１２】
請求項１０に記載のレプリケーション制御方法であって、
上記履歴情報の送信先サーバントを特定する手順では、予め定められたホップ数範囲内のサーバントで、かつ、ディグリーもしくはヒット数のいずれかが予め定められた閾値以上のサーバントを送信先として特定することを特徴とするレプリケーション制御方法。
【請求項１３】
請求項１０に記載のレプリケーション制御方法であって、
上記履歴情報の送信先サーバントを特定する手順では、ディグリーとヒット数の少なくともいずれか１つと、ホップ数とを用いて送信先サーバントを特定することを特徴とするレプリケーション制御方法。
【請求項１４】
請求項１０から請求項１３のいずれかに記載のレプリケーション制御方法であって、
レプリケーション実行元のサーバントが、生成した上記履歴情報を予め定められた時間間隔Ｔで、上記特定されたサーバントに送信する手順と、
上記履歴情報を受信したサーバントが、該履歴情報を受信する度に、予め定められた直近Ｑ（＝ｎ×Ｔ：ｎは任意の正数）以前に受信した履歴情報を削除する手順と
を有することを特徴とするレプリケーション制御方法。
【請求項１５】
請求項１０から請求項１４のいずれかに記載のレプリケーション制御方法であって、
上記履歴情報として、レプリケーションの実行時刻を含むことを特徴とするレプリケーション制御方法。
【請求項１６】
請求項１０から請求項１５のいずれかに記載のレプリケーション制御方法であって、
上記履歴情報を受信したサーバントは、上記履歴情報において検索対象のファイルに識別情報が対応付けられたサーバントが複数あれば、予め定められた手順で１つのサーバントを選択して、当該ファイルのダウンロード要求パケットを送信する
ことを特徴とするレプリケーション制御方法。
【請求項１７】
請求項１０から請求項１６のいずれかに記載のレプリケーション制御方法であって、
上記履歴情報を受信したサーバントが、他のサーバントから受信した検索要求パケットで要求されるファイルが上記履歴情報にあれば、当該ファイルに対応付けられたサーバントの識別情報を上記検索要求パケットの送信元サーバントに通知する手順と、
該送信元サーバントが、通知された識別情報のサーバントに当該ファイルのダウンロード要求パケットを送信する手順と
を有することを特徴とするレプリケーション制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Internet Protocol）ネットワーク上で構築されるＰｕｒｅ型Ｐ２Ｐ（Peer-to-Peer）通信技術に係わり、特に、レプリケーションされたファイルの検索効率を向上させるのに好適な技術に関するものである。
【背景技術】
【０００２】
近年、ＩＰネットワークであるインターネット上では、Ｐ２Ｐ型通信によるコンテンツの検索・転送サービスの利用が増えている。Ｐ２Ｐ型通信においては、ネットワークで接続されたパーソナルコンピュータ等の各コンピュータ端末に、「Napster」、「Gnutella」等のファイル共有アプリケーションがインストールされ、各端末は、サーバとクライアントの両方の機能を有し、ピアもしくはサーバント（Servent）と呼ばれる。
【０００３】
Ｐ２Ｐ型通信には大別して、「Napster」に代表されるHybrid型と、「Gnutella」に代表されるＰｕｒｅ型の２種類の型がある。Hybrid型は、目的情報（ファイル）の所在を一括管理する専用サーバが存在するタイプであり、Ｐｕｒｅ型は、目的情報の所在を伝言ゲーム方式で、サーバント間で次々に問い合わせていくタイプである。
【０００４】
Hybrid型は、各サーバントからの検索要求パケットが、専用サーバに集中するため、そのサーバがボトルネックとなりやすい。
【０００５】
また、Ｐｕｒｅ型では、各サーバントは、パケットのＴＴＬ（Time to Live、パケットの生存時間）に設定された値のホップ数の範囲まで次々に目的情報（ファイル）の有無を隣接サーバントに対して問い合わせを行う。すなわち、各サーバント間では、それぞれの隣接サーバントヘ延ばしている「腕の数（ディグリー：degree）」の分だけ分岐してパケットによる問い合わせを実行する。
【０００６】
このようなＰｕｒｅ型Ｐ２Ｐ通信におけるファイルのダウンロード要求に関する通常の手順では、あるファイルを要求する任意のサーバントは、まず、（ｉ）「Queryパケット（検索文字列を含んだ検索要求パケットであり、予め指定された回数だけ送出される）」を、周囲のサーバント（「PINGパケット」と「PONG」パケットにより特定されるサーバント）に対して送出することにより検索する。（ii）「QueryHitパケット（Queryパケットに対して要求に合致したファイルを保持しているサーバントからの応答パケット）」が返ってくれば、すなわち、「ヒット」すれば、その情報から当該ファイルを保持しているサーバントを把握する。そして、（iii）その当該ファイルを保持しているサーバントに対してダウンロード要求（「PUSH」等）を出し、（iv）ダウンロードを実行する、という手順を経て目的のファイルを入手する。
【０００７】
従来のＰｕｒｅ型Ｐ２Ｐ通信では、ファイルのダウンロード要求が発生したサーバントは、そのファイルをどのサーバントが保持しているかを探索する上記手順を、その都度、最初から行う必要があった。そのため、「ヒット」率が低い場合、すなわち、近辺のサーバントに目的のファイルが無い場合には、パケット情報検索パケット（Queryパケット）が多数のサーバントから並列に発信されることとなり、網内のパケット数が爆発的に増加し、網内の広域に渡っての混雑が発生する。
【０００８】
このような問題に対象する従来技術としては、例えば、非特許文献１〜３に記載のレプリケーション技術がある。このレプリケーション技術では、ＩＰ網においてＰ２Ｐ型通信を行っている場合に、あるコンテンツ（ファイル）へのヒット率を向上させるために、当該コンテンツの複製（レプリカ）を他のサーバントに送っておくものであり、サーバントの負荷や回線の使用率上昇を抑えることができる。
【０００９】
すなわち、この技術によりレプリケーションが実行されると、元々はソースサーバントのみに保持されていたそのファイルが、いくつかの他のサーバントでも保持されることになる。そのため、そのファイルを要求する任意のサーバントからの平均的距離が短くなり、要求元サーバントから見つけやすくなり、ダウンロードするための時間も平均的には短くなる。
【００１０】
しかしながら、この場合にも、要求元のサーバントは、上述の（ｉ）〜（iv）の通常の手順を実行しなければ、目的のファイルを入手することはできない。
【００１１】
Ｐ２Ｐネットワークの中でレプリケーションが頻繁に行われるような状況になると、上記の通常手順をいちいち実行すること無く、より簡便な手順でスピーディに効率よく目的ファイルを入手できることが望まれる。
【００１２】
【非特許文献１】Q．LV，P．Cao，E．Cohen，K．Lｉ，and S．Shenker，“Search and replication in unstructured  peer-to-peer  networks、”proceedings  of  16th  ACM  International Conference on Supercomputing（ICS’０２），June ２００２．
【非特許文献２】後藤、阿多、村田：“Ｐ２Ｐネットワークにおけるサービス安定性向上のためのレプリケーション配置手法”信学技報ＮＳ２００２−１５２，Ｏｃｔ．２００２．
【非特許文献３】能上、内田：“Ｐｕｒｅ型Ｐ２Ｐにおけるファイル検索＆レプリケーションについて”信学総大２００４（２００４年３月発表）。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
解決しようとする問題点は、従来の技術では、Ｐｕｒｅ型Ｐ２Ｐ通信において、レプリケーションを実行した場合にも、ファイル（コンテンツ／データ）の要求元のサーバントが目的のファイルを入手するためには、「Queryパケット」を周囲のサーバントに送出する手順を含む、上述の（ｉ）〜（iv）の通常の手順を実行しなければならない点である。
【００１４】
本発明の目的は、これら従来技術の課題を解決し、Ｐ２Ｐネットワークでの目的ファイルの入手を、より簡便な手順でスピーディに効率良く行うことを可能とすることである。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明では、Ｐｕｒｅ型Ｐ２Ｐ通信において、各サーバントは、ファイル（コンテンツ）のレプリケーションの実行時に、当該レプリケーションをいつ実行したか、どのサーバントに対して実行したか、どのファイルに関して実行したか、といった情報からなる履歴情報を生成して、Ｐ２Ｐネットワーク上で有効と特定されるサーバントに対して通知する。通知を受けたサーバントは、通知された履歴情報を記憶装置に記憶し、ファイルの検索要求を行う際には、記憶した履歴情報を参照し、当該ファイルに関する履歴情報があれば、当該ファイルのレプリケーション実行先のサーバントを特定して、当該サーバントにファイルの検索要求パケットを送出する。また、他のサーバントからの検索要求パケットを受信した際にも、記憶した履歴情報を参照し、当該ファイルに関する履歴情報があれば、当該ファイルのレプリケーション実行先のサーバントの識別情報（ＩＰアドレス）を、検索要求パケット送信元のサーバントに通知することで、以降の検索要求パケットの配信を抑える。尚、履歴情報の送信先サーバントの特定は、ホップ数を用いて、あるいは、ホップ数と共に、ディグリー（隣接サーバントへ伸ばしている腕の数）およびヒット数の少なくともいずれか１つを用いて行う。例えば、予め定められたホップ数範囲内の全てのサーバント、あるいは、予め定められたホップ数範囲内のサーバントで、かつ、ディグリーもしくはヒット数のいずれかが予め定められた閾値以上のサーバントを送信先として特定する。
【発明の効果】
【００１６】
本発明によれば、Ｐ２Ｐ型通信を行うサーバントに対して、いつどこにどの種類のファイルに対してレプリケーションを行ったかといった情報を周知するので、周知されたサーバントにおいては、当該ファイルの検索要求時に通常手順をいちいち実行する必要がなくなり、また、当該ファイルの検索要求を受けた際にも以降の通常手順を実行する必要がなくなり、各サーバントは、より簡便な手順で、スピーディ（短時間に）に、効率よく、目的のファイルを発見し、入手することが可能となり、ネットワーク内の問い合わせパケット数を減らすことが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、図を用いて本発明を実施するための最良の実施形態例を説明する。図１は、本発明に係わるレプリケーション制御を行うサーバントの構成例を示すブロック図であり、図２は、図１におけるサーバントによる履歴情報の通知先の特定手順例を示す説明図、図３は、図１におけるサーバントによる履歴情報の通知先の他の特定手順例を示す説明図である。
【００１８】
図１において、１はＰｕｒｅ型Ｐ２Ｐ通信におけるレプリケーション制御機能を有するサーバントであって、２はキーボードやＣＲＴ等からなる入出力装置（コンソール）であり、外部からの情報（コマンド）を入力し、サーバント１の処理結果を画面表示するための機能を有し、１０はサーバント１と図示していない他のサーバント等とを接続するインターネット等のＩＰ網である。
【００１９】
サーバント１は、ＣＰＵ（Central Processing Unit）や主記憶装置（主メモリ）、表示装置、入力装置、外部記憶装置、周辺装置等を具備した一般的なＰＣ（パーソナルコンピュータ）等のコンピュータ構成からなり、周辺装置としての光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたファイル共有アプリケーション等のプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、各処理部の実行機能を構成しており、Ｐ２Ｐアプリケーションレイヤとしてはサーバントとして見える。
【００２０】
具体的には、サーバント１は、メモリ部３、情報管理・転送処理部４、レプリケーション実行部５、履歴情報管理処理部６、ＰＡＤ７、パケット送信部８、パケット受信部９の各処理機能部を具備している。
【００２１】
ＰＡＤ７は、パケット組み立て／分解機能を持ち、各種情報をＩＰパケットに変換したり、その逆にＩＰパケットから各種情報への分解を行ったりする。パケット送信部８は、ＩＰパケットをＩＰ網１０で接続された他のサーバントに送出する機能を持ち、パケット受信部９は、ＩＰ網１０内の他のサーバントからの到着パケットを受信する機能を持つ。
【００２２】
メモリ部３は、メモリ容量の管理や情報の記憶制御や削除制御等を行うメモリ制御部３ａと、各種レプリケーション情報やヒット情報、保持しているファイルに関する情報、各サーバントまでのＲＴＴ（Round Trip Time：往復遅延時間）情報、サーバントのＩＰアドレス、本発明に係わる履歴情報等を記憶（格納／蓄積）するメモリ３ｂからなる。
【００２３】
尚、ＲＴＴ情報は、次のようにして取得する。まず、パケット送信部８からＰｉｎｇパケットを飛ばし、パケット受信部９に戻ってきたＰｉｎｇパケットにより相手サーバントのＩＰアドレスを取得し、次に、そのアドレス宛にパケット送信部８から測定パケットを飛ばしてパケット受信部９に戻ってくるまでの、発着の時間差を測定することで相手サーバントまでのＲＴＴを測定する。
【００２４】
レプリケーション実行部５は、過去に実行したレプリケーションに関する各種情報を解析／判断する機能を持つと共に、ヒット率や問い合わせ回数などの情報を基にして、どのサーバントに対してその情報をいつレプリケーションするかを決定してそれを実行する機能を持つ。
【００２５】
本例では、レプリケーション実行部５は、上述した非特許文献３に記載の技術を用いて、レプリケーションするサーバントの決定を行うものとする。
【００２６】
すなわち、レプリケーション実行部５は、ある時刻において直近Ｔ時間における（すなわち現在から遡ってＴ時間分における）当該ファイルのヒット率がある閾値以上になれば（Step１）、全方路にある（途中経路も含めて）ｋホップ先の各サーバントｉに注目し（Step２）、そのサーバントｉに対して、ディグリー（degree、腕の数）が所定の値ｍ以上（Deg(i) ≧ｍ）ならば確率Ｐ（腕の数に比例した割合）でレプリケーションの対象に決定し（Step３）（但し、ｍは０以上の正数で、ｉは１≦i≦Ｎｊ、Ｎｊはｊ回目のｋホップ先のサーバントの総数）、サーバントｉのうちの割合Ｘにある方路Ｍｉ（Ｍｉ＝「「Ｘ*Deg(i)」」）（但し、Ｍｉ＝「「Ｘ*Deg(i)」」はＸ*Deg(i)を超えない最大の正数）をランダムに選択してｋホップ先のサーバントに注目する（Step４）。そして、Step３〜４をＮｊ回（ｉ＝１〜Ｎｊ）実行し（Step５）、Step３〜５をＬ回（ｊ＝１〜Ｌ）実行することで、当該ファイルのレプリケーション実行先サーバントを決定する。
【００２７】
尚、問い合わせ回数を基にしたレプリケーションの実行先の決定は次のようにして行う。ここでは「問い合わせ」とは、あるサーバントに着目した場合に、任意のサーバントから、様々なファイルの検索パケットが到着して通過するが、その際の「どの時点で、どのファイルを探していた」かという情報の問い合わせであり、従って、「問い合わせ回数」情報は、例えば、時刻Ｔから現時点までに、「ファイルＡに関するQueryパケットの到着数が５回」、「ファイルＢに関するQueryパケットの到着数が１回」といった内容である。そして、「問い合わせ回数」が「５回」以上のサーバントをレプリケーション実行先として決定する。
【００２８】
また、「ヒット数」や「問い合わせ回数」に基づき決定したサーバントに対して「いつ」レプリケーションを実行するかの制御は、負荷を分散させるために有効である。例えば、レプリケーションを５０個のサーバントに対して実行する場合には、第１から第２５のサーバント（第１のグループ）に対しては１０時００分に実行し、第２６から第５０のサーバント（第２のグループ）に対しては１０時１０分に実行することで、その実行時間をずらし、実行元のサーバントの負荷、周囲のネットワークの負荷等を分散させる。この際のグループ分けの例としては、ヒット数や問い合わせ回数の大きい順番とする等が掲げられる。
【００２９】
履歴情報管理処理部６は、本発明のレプリケーション制御を実行するものであり、履歴情報生成部６ａと、周知処理部６ｂ、履歴情報記憶処理部６ｃ、履歴情報参照部６ｄ、パケット生成・送信処理部６ｅ、および、履歴情報通知処理部６ｆからなる。
【００３０】
履歴情報生成部６ａは、レプリケーション実行部５で実行したレプリケーションの結果に基づき、当該ファイルの識別情報（ファイル名）とレプリケーション実行先のサーバントの識別情報（ＩＰアドレス）とを少なくとも対応付けた履歴情報を生成する。
【００３１】
本例では、履歴情報としてレプリケーションの実行時刻を含むものとし、具体的には、直近の時間Ｔ２内でのレプリケーション実行部５で実行したレプリケーションに関する以下の情報セットを生成する。
【００３２】
（Ｒ１（Ｓ１，Ｑ１，Ｔ１），Ｒ２（Ｓ２，Ｑ２，Ｒ２），…，Ｒｋ（Ｓｋ，Ｑｋ，Ｔｋ），…）、および、Ｓｋ＝｛Ａｋ１，Ａｋ２，…｝
【００３３】
ここで、「Ｒｋ」は、現時点から遡ってｋ番目に行ったレプリケーション情報であり、「Ｓｋ」は、ｋ番目にレプリケーションを行ったサーバントの集合、「Ｑｋ」はｋ番目のレプリケーションを行ったファイル名、「Ｔｋ」はｋ番目のレプリケーションを実行した時刻、「Ａｋｉ」は、ｋ番目にレプリケーションを行ったｉ番目のＩＰアドレスである。
【００３４】
周知処理部６ｂは、履歴情報生成部６ａで生成した履歴情報を予め定められた手順で特定される他のサーバントに、情報管理・転送処理部４、ＰＡＤ７、パケット送信部８、ＩＰ網１０を介して送信する。
【００３５】
履歴情報記憶処理部６ｃは、ＩＰ網１０、パケット受信部９、ＰＡＤ７、情報管理・転送処理部４を介して、他のサーバントから送信されてきた履歴情報をメモリ部３を介してメモリ３ｂに記憶する。
【００３６】
履歴情報参照部６ｄは、入出力装置２を介して入力されるユーザからの任意のファイルの検索要求に応じて、あるいは、ＩＰ網１０、パケット受信部９、ＰＡＤ７、情報管理・転送処理部４を介して入力される他のサーバントからの任意のファイルの検索要求に応じて、メモリ部３のメモリ３ｂに記憶されている履歴情報を参照する。
【００３７】
パケット生成・送信処理部６ｅは、入出力装置２を介して入力されるユーザからの任意のファイルの検索要求に対応する履歴情報参照部６ｄの参照結果で、メモリ３ｂに記憶されている履歴情報に、検索要求対象のファイル名（目的ファイル名）があれば、履歴情報において当該目的ファイル名に対応付けられた識別情報（ＩＰアドレス）を読み出し、当該ＩＰアドレスのサーバントに対して、当該目的ファイルのダウンロード要求パケット（ＰＵＳＨパケット）を生成し、情報管理・転送処理部４、ＰＡＤ７、パケット送信部８、ＩＰ網１０を介して送信し、また、履歴情報に検索要求対象のファイル名（目的ファイル名）が無ければ、通常の検索要求パケットを生成して隣接する各サーバントに、情報管理・転送処理部４、ＰＡＤ７、パケット送信部８、ＩＰ網１０を介して送信する。
【００３８】
履歴情報通知処理部６ｆは、他のサーバントからの任意のファイルの検索要求に対応する履歴情報参照部６ｄの参照結果で、メモリ３ｂに記憶されている履歴情報に、検索要求対象のファイル名（目的ファイル名）があれば、履歴情報において当該目的ファイル名に対応付けられた識別情報（ＩＰアドレス）を読み出し、当該ＩＰアドレスを、検索要求パケットの送信元のサーバントに、情報管理・転送処理部４、ＰＡＤ７、パケット送信部８、ＩＰ網１０を介して通知する。本例では、サーバント１が送出するパケットは、通常のＴＣＰ／ＩＰで用いられているルーティングプロトコル（例えば、ＯＳＰＦ：Open Shortest Path First）に則って送られるものであり、履歴情報通知処理部６ｆは、このルーティングプロトコルを利用する。
【００３９】
尚、履歴情報参照部６ｄが参照した履歴情報において、検索要求対象のファイル名（目的ファイル名）に、複数のサーバントが対応付けて登録されている場合には、履歴情報通知処理部６ｆおよびパケット生成・送信処理部６ｅは、予め定められた手順で１つのサーバントを選択する。例えばランダムに、もしくは登録順に選択して１つのサーバントに絞る処理を行う。
【００４０】
また、パケット生成・送信処理部６ｅでの「ダウンロード要求パケット（ＰＵＳＨパケット）」の送信においては、送信するＩＰパケット内に埋め込まれているＴＣＰフレームの中にさらに埋め込まれている例えば「Gnuttelaフレーム」の中の「Gnuttelaヘッダ」の中の「payload discritor」でビットを指定することで「ＰＵＳＨ」を選択し、当該ファイルの送出（ダウンロード）を依頼する。もし、依頼先のサーバントに当該ファイルのレプリカが残っておらず、タイムオーバーとなった場合には、再度、ランダムに他のサーバントを選択してダウンロードを依頼し、他のサーバントが無ければ、通常のQueryパケットでの検索要求を行う。
【００４１】
また、周知処理部６ｂは、履歴情報の送信先となるサーバントの特定を、ホップ数を用いて、あるいは、ホップ数と共に、ディグリー（腕の数）およびヒット数の少なくともいずれか１つを用いて行う。例えば、予め定められたホップ数範囲内の全てのサーバント、あるいは、予め定められたホップ数範囲内のサーバントで、かつ、ディグリーもしくはヒット数のいずれかが予め定められた数以上のサーバントを送信先として特定する。
【００４２】
例えば、履歴情報を周知する対象サーバントとして、レプリケーションを実行したサーバント１からＭホップ以内で、かつ、（１）現時点でのディグリー（隣接サーバントへ伸ばしている腕の数）がＤ以上で、（２）直近の時間Ｔ１内でのヒット数Ｈ（Ｔ１）がＨ１以上である、との条件を満たすものとし、より広範囲に周知する場合には、ホップ数Ｍの値を増加させ、また、より限定したサーバントに対して効率よく周知したい場合には、ディグリーやヒット数の閾値Ｄ、Ｈ１を増加させる。
【００４３】
ヒット数やディグリー等の情報の収集は、例えば（１）レプリケーション実行元のサーバントにおいて、定期的にＭホップ内のサーバント間で情報パケットを送出しあってヒット数やディグリーを伝え合う、または（２）レプリケーション実行元のサーバントにおいて、定期的にＭホップ内のサーバントにQueryパケットを送出し、それに対する返信パケット内の情報を読んで、ヒット数やディグリーを取得すること等で行うことができる。
【００４４】
本例では、Ｍホップ内の全ての全てのサーバントに履歴情報を通知して周知させ、各サーバントは、直近の時間Ｔ１内でのヒット数Ｈ（Ｔ１）が予め定められた閾値以上、あるいは、その時点でのディグリー（腕の数）が予め定められた閾値Ｄ以上との条件をクリアしていると判断した場合に、通知された履歴情報を記憶し、それ以外であれば、履歴情報を無視することで、履歴情報を周知させる。
【００４５】
図２においては、当該サーバント２１からのホップ数Ｍ＝３以内を条件に、さらに、ディグリーの閾値Ｄ＝３、ヒット数の閾値Ｈ１＝１０を条件とした場合において、履歴情報の周知先となる対象サーバント（図中、網掛けの丸印）の特定状況を示している。尚、本図２において、各対象サーバントの添えられている数字（１〜４，６，７，９〜１３，１５）はヒット数である。
【００４６】
また、図３においては、履歴情報の周知先としての対象サーバントを、レプリケーション実行元の当該サーバント３１からのホップ数Ｋ以上先のサーバントに特定するものである。この場合、履歴情報を送信するパケットのＴＴＬ（Time To Live）の値がＬであれば、Ｋ＋１ホップ以上でＬホップ以下の全てのサーバントが周知先の対象サーバントとなる。ここでは、ホップ数Ｋ＝３、ＴＴＬ＝７の例を示している。
【００４７】
また、周知処理部６ｂは、履歴情報生成部６ａで生成された履歴情報を、一定間隔で（例えば予め定められたＴ分毎に）、各対象サーバントに通知し、各対象サーバントでは、常に、直近Ｑ（＝ｎ×Ｔ：ｎは適当な正数）分の履歴情報だけを保持することとする。このようにすることにより、各対象サーバントでは、常に、直近Ｑ分の情報だけが保持され、サーバント１，２１，３１からの履歴情報が通知されるたびに、Ｑ分以前のＴ分ぶんの履歴情報は削除されることとなり、各対象サーバントにおける履歴情報を定期的にリフレッシュ（更新）することができる。
【００４８】
このように、本例によれば、レプリケーションを実行したサーバントにおいて、レプリケーション対象のファイルと実行先のサーバントを特定する、情報セット（Ｓ，Ｑ，Ｔ）からなる履歴情報を生成して、特定のサーバント群に送信し、各サーバントにおいては、受信した履歴情報を記憶しておき、自サーバントからあるファイルの検索要求を行う際には、履歴情報を参照し、当該ファイルが有れば、当該ファイルに対応付けられたＩＰアドレスのサーバントに対して、通常の検索要求パケット（Queryパケット）ではなく、ダウンロード要求パケット（PUSHパケット）を送出する。このことにより、検索要求パケット（Queryパケット）を含む通常の手順でのパケットの送信が不要となり、サーバントの負荷、および、ネットワーク負荷が軽減される。
【００４９】
特に、履歴情報を周知する先のサーバントの特定に、レプリケーション実行先のサーバントの特定に用いた手順と同様な手順を用いることにより、レプリケーション実行先サーバントの近くにあるサーバントが、周知先サーバントとなり、レプリケーションの利用効率が向上する。
【００５０】
また、履歴情報に、レプリケーション実行元のサーバントの識別情報は含まれないものとすると、この場合、レプリケーション実行元サーバントに対する、ファイルのダウンロード要求が、分散されることとなり、レプリケーション実行元サーバントの負荷を軽減することができる。
【００５１】
また、通常、各サーバントはお互いに隣り合うサーバントに関してのみ、各々保持しているファイルの情報を認識できるだけであるの対し、本例では、履歴情報（情報セット）を例えば少ないホップ数内の近くにある各サーバントに周知させることにより、履歴情報を通知されたサーバントにおいては、比較的に少ないホップ数範囲内で、すなわち近くで、検索目的のファイルを保持しているサーバントのＩＰアドレスを、その情報セット（Ｓ，Ｑ，Ｔ）から知ることができる。
【００５２】
また、本例では、ヒット数とディグリーのいずれかが予め定められた値より多いサーバントに履歴情報を周知させているが、これは、ヒット数やディグリーが多いサーバントは、いわゆる「活発なサーバント」であり、保持してるファイル数も多く、他のサーバントとの送受信が多いからである。すなわち、このような「活発なサーバント」は、ファイルを要求してダウンロードしたり、その逆に、要求されてファイルを送るというＰ２Ｐ通信動作を比較的頻繁に行っており、このような「活発なサーバント」に履歴情報を周知されることにより、当該周知情報が活用される機会が多くなる。
【００５３】
尚、ヒット数とは、各サーバントにおける、自サーバントに保持するファイルへの検索宇要求パケットの受信回数、より厳密には、各サーバントが、自サーバントが保持するファイルへの検索要求パケットを受信して、要求されているファイルと自サーバントが保持するファイルが一致したと確認した回数である。
【００５４】
次に、図４および図５を用いて、サーバント１による本発明に係わるレプリケーション制御方法に関する処理手順を説明する。
【００５５】
図４は、本発明に係わるレプリケーション制御方法の第１の実施例を示すフローチャート、図５は、本発明に係わるレプリケーション制御方法の第２の実施例を示すフローチャートである。
【００５６】
図４は、図１のサーバント１の履歴情報管理処理部６における履歴情報生成部６ａと周知処理部６ｂによる処理手順例を示すものであり、まず、予め設定された時間Ｔ毎に（ステップＳ４０１）、レプリケーション実行部５による新たなレプリケーションが実行された否かを判別し（ステップＳ４０２）、新たなレプリケーションが実行されれば、履歴情報生成部６ａにより履歴情報を生成し、生成した履歴情報を周知処理部６ｂにより、予め定められた手順で特定される各サーバントに対して送信する（ステップＳ４０３）。
【００５７】
図５は、図１のサーバント１の履歴情報管理処理部６における履歴情報記憶処理部６ｃと履歴情報参照部６ｄによる処理手順例を示すものであり、履歴情報周知用のパケットの到着を検出すると（ステップＳ５０１）、履歴情報記憶処理部６ｃにおいて、履歴情報における各パラメータ（ホップ数ＭとディグリーＤおよびヒット数Ｈ１の組、あるいは、ホップ数ＫとＴＴＬ値Ｌの組）を読み取り（ステップＳ５０２）、自サーバントが、当該パラメータで特定されるサーバントに該当するか否かを判別し（ステップＳ５０３）、該当すれば、受信した履歴情報をメモリ５に書き込み、履歴情報参照部６ｄにおいて目的ファイルの検索要求時に参照する（ステップＳ５０４）。
【００５８】
自サーバントが、当該パラメータで特定されるサーバントに該当しなければ、履歴情報周知用パケットにおけるＴＴＬの値がゼロ（０）か否かを判別し（ステップＳ５０５）、ゼロであれば、そのままステップＳ５０１の処理に戻り、ゼロでなければ、当該履歴情報周知用のパケットを次のサーバントに転送した後にステップＳ５０１の処理に戻る（ステップＳ５０６）。
【００５９】
以上、図１〜図５を用いて説明したように、本例では、レプリケーションが実行された際に、そのレプリケーションの実施場所、複製されたファイルの種別、時刻、等の情報をセット（Ｓ、Ｑ、Ｔ）で履歴情報として保持し、周辺のサーバントに対してそれを周知し、それにより各サーバントが探索しようとしているファイルの発見をより容易にする。尚、「Ｓ」はレプリケーションを行ったサーバントの集合｛Ａ１，Ａ２，…，Ａｉ，…｝であり、「Ｑ」はレプリケーションを行ったファイル名、「Ｔ」はレプリケーションを行った時刻であり、また、「Ａｉ」はレプリケーションを行ったｉ番目のサーバントのＩＰアドレスである。
【００６０】
より詳細には、直近の時間Ｔ２内での自身が実行したレプリケーションに関する情報セットとして、（Ｒ１（Ｓ１，Ｑ１，Ｔ１），Ｒ２（Ｓ２，Ｑ２，Ｔ２），…，Ｒｋ（Ｓｋ，Ｑｋ，Ｔｋ），…）、および、Ｓｋ＝｛Ａｋ１，Ａｋ２，…，Ａｋｉ，…｝を保持する。
【００６１】
ここで、Ｒｋは、現時点からさかのぼってｋ番目に行ったレプリケーション情報であり、Ｓｋは、現時点からさかのぼってｋ番目にレプリケーションを行ったサーバントの集合、Ｑｋは、現時点からさかのぼってｋ番目にレプリケーションを行ったファイル名、Ｔｋは、現時点からさかのぼってｋ番目にレプリケーションを行った時刻、Ａｋｉは現時点からさかのぼってｋ番目にレプリケーションを行ったｉ番目のサーバントのＩＰアドレスである。
【００６２】
そして、自サーバントでファイル検索を行う際には、この情報セットを参照し、もし目的とするファイルがこれらの情報の中にある場合には、しかるべきサーバントにダウンロード要求を送出する。尚、これらの情報に目的ファイルが含まれていない場合には通常の検索手順を実行する。
【００６３】
サーバント１で実行するＰｕｒｅ型Ｐ２Ｐ通信において、複数のファイルに関してレプリケーションが比較的頻繁に実行されているような状況においては、上述のように、「どのファイルに対して、どの時刻に、どのサーバントに対してレプリケーションを実行した」といった情報からなる履歴情報を、キーとなる、すなわちＰ２Ｐネットワーク上で重要と思われるサーバントに対して積極的に周知してやることが、このＰ２Ｐネットワーク上での情報伝達の効率性を高めるうえで重要であり、本例では、サーバント１において、このような処理を実行するために、履歴情報の通知を、どのサーバントに対して実行したらよいか、また、どのような内容の履歴情報を伝えたらよいか等の処理を実行する機能と、その履歴情報を保持するための機能を持たせている。
【００６４】
すなわち、サーバント１は、レプリケーション実行部５によりファイルのレプリケーションを実行した際には、履歴情報生成部６ａにより、少なくとも、当該ファイルの識別情報（ファイル名）とレプリケーション実行先のサーバントの識別情報（ＩＰアドレス）とを対応付けた履歴情報を生成し、周知処理部６ｂにより、当該履歴情報を、予め定められた手順で特定される他のサーバントに送信し、逆に他のサーバントからの履歴情報を受信すると、履歴情報記憶処理部６ｃにより、当該履歴情報をメモリ５に記憶する。
【００６５】
そして、例えば入出力装置２からの指示入力に応じて任意のファイルの検索要求パケットを送信する際には、履歴情報参照部６ｄにより、メモリ５に記憶した履歴情報を参照し、検索要求対象のファイルが有れば、当該ファイルに識別情報（ファイル名）が対応付けられたＩＰアドレスのサーバントに対して、当該ファイルのダウンロード要求パケットを送信し、検索要求対象のファイルが無ければ、通常の手順通り、隣接する各サーバントに対して、当該ファイルの検索要求パケットを転送する。
【００６６】
また、他のサーバントから転送されてきた検索要求パケットを受信した場合には、履歴情報参照部６ｄにより、メモリ５に記憶した履歴情報を参照し、検索要求対象のファイルが有れば、履歴情報通知処理部６ｆにより、履歴情報において当該目的ファイル名に対応付けられた識別情報（ＩＰアドレス）を読み出し、当該ＩＰアドレスを、検索要求パケットの送信元のサーバントに通知する。
【００６７】
尚、周知処理部６ｂにおいて、当該履歴情報の送信先のサーバントを特定する際には、ホップ数や、ディグリー、ヒット数等を用いて行う。例えば、予め定められたホップ数範囲内のサーバントを送信先として特定する。あるいは、予め定められたホップ数範囲内のサーバントで、かつ、ディグリーもしくはヒット数のいずれかが予め定められた数以上のサーバントを送信先として特定する。
【００６８】
このように、本例では、Ｐｕｒｅ型Ｐ２Ｐ型通信を行う際に、網内の各サーバントに対して、いつどこにどの種類のファイルに対してレプリケーションを行ったかという情報を周知することにより、ネットワーク内の問い合わせパケット数を減らしながら短時間で目的のファイルを発見することができる。
【００６９】
尚、本発明は、図１〜図５を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、履歴情報を、レプリケーション実行先サーバントの近くの（所定ホップ数範囲内の）サーバントに周知させる構成となっているが、これに限定されるものではなく、履歴情報を任意のサーバントに周知させることでも良い。この場合でも、履歴情報を保持したサーバントは、ダウンロードしたい目的ファイルに関する履歴情報が有れば、これを利用して、当該目的ファイルを保持しているサーバントを容易に特定でき、従来のように最初から検索要求パケットを用いて目的ファイルを探す手間が省ける。
【００７０】
また、本例では、履歴情報には、レプリケーション実行元のサーバントの識別情報は含まれていないものとして説明したが、履歴情報に、レプリケーション実行元のサーバントの識別情報を含ませることも可能である。この場合も、レプリケーション実行元サーバントにおけるダウンロード要求に対する負荷を、レプリケーション実行先サーバントに分散させることができる。
【００７１】
また、本例では、コンピュータ構成例として、キーボードや光ディスクの駆動装置を設けた構成としているが、これらの装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Flexible Disk）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【００７２】
【図１】本発明に係わるレプリケーション制御を行うサーバントの構成例を示すブロック図である。
【図２】図１におけるサーバントによる履歴情報の通知先の特定手順例を示す説明図である。
【図３】図１におけるサーバントによる履歴情報の通知先の他の特定手順例を示す説明図である。
【図４】本発明に係わるレプリケーション制御方法の第１の実施例を示すフローチャートである。
【図５】本発明に係わるレプリケーション制御方法の第２の実施例を示すフローチャートである。
【符号の説明】
【００７３】
１：サーバント、２：入出力装置（コンソール）、３：メモリ部、３ａ：メモリ制御部、３ｂ：メモリ、４：情報管理・転送処理部、５：レプリケーション実行部、６：履歴情報管理処理部、６ａ：履歴情報生成部、６ｂ：周知処理部、６ｃ：履歴情報記憶処理部、６ｄ：履歴情報参照部、６ｅ：パケット生成・送信処理部、６ｆ：履歴情報通知処理部、７：ＰＡＤ、８：パケット送信部、９：パケット受信部、１０：ＩＰ網（インターネット）。
【図１】
2006221457.tif 000003
【図２】
2006221457.tif 000004
【図３】
2006221457.tif 000005
【図４】
2006221457.tif 000006
【図５】
2006221457.tif 000007