JP2004260279A - Peer group configuration method, attribute information updating method, partition detection method, peer, and program for executing the method - Google Patents
Peer group configuration method, attribute information updating method, partition detection method, peer, and program for executing the method Download PDFInfo
- Publication number
- JP2004260279A JP2004260279A JP2003045864A JP2003045864A JP2004260279A JP 2004260279 A JP2004260279 A JP 2004260279A JP 2003045864 A JP2003045864 A JP 2003045864A JP 2003045864 A JP2003045864 A JP 2003045864A JP 2004260279 A JP2004260279 A JP 2004260279A
- Authority
- JP
- Japan
- Prior art keywords
- peer
- attribute information
- peer group
- group
- attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ピア・ツー・ピア(P2P:Peer−to−Peer)ネットワークに関し、特に、P2Pネットワークにおける、ピアグループの構成方法、ピアグループ属性情報の更新方、およびそれらを利用したピアグループの分断検出・解消方法、ならびにこれらの方法にしたがって動作するピアに関する。
【0002】
【従来の技術】
ネットワーク管理を集中的に行うサーバ−クライアントモデル型のネットワーク構成に代わるものとして、ネットワーク参加者(ピア)が対等な立場でネットワークに接続するピア・ツー・ピア型(以下、P2Pと略記する)の大規模ネットワークが注目を集めるようになってきた。
【0003】
P2Pは、サーバへの依存性がないかあるいは依存性が低いため、サービスを受けるユーザ数、ピア数が増えてネットワークが大規模になっても、サーバの設備量やサーバの利用可能なリソース(資源)がボトルネックとなることがなく、ネットワークのスケーラビリティが非常に高いことを特徴とする技術である。また、P2Pでは、ネットワークが集中管理されておらず、自律分散的に振舞うピア同士のゆるやかな結合によりネットワークが構成されるため、その自律的発展が可能といった特長も持つ。これらP2Pの代表的な例として、ファイル交換目的に限定したGnutellaや、汎用のプラットフォームとしてのJXTA、SIONet等がある。
【0004】
一般に、P2Pネットワークでは、次のような目的から、ピアグループと呼ばれるピアの集合体を組織させる、あるいは、ピアグループが自己組織化されることが多い。
【0005】
(1) 特定のメンバに情報流通範囲を限定することで、セキュア性を確保するため;
(2) 特定の関心事を元に構成・自己組織化を可能とするため、また、分類を可能とするため;
(3) ネットワークを、情報流通範囲を制限されたピアグループの集合体として組織することで、ネットワーク全体としてのスケーラビリティを向上するため;
(4) 監視などの保守運用単位や責任単位の明確化として、また、ビジネス面からの要請によって;
このようにピアグループは、P2P、特に大規模なP2Pネットワークにおいては必須の概念である。そしてピアグループにおいては、運用形態により必要な種別は異なるが、ピアグループ単位で、ルーティング方式、障害処理方式、認証方式、暗号化方式、オントロジー、メタデータ体系等の一貫性が求められる。
【0006】
ピアグループ属性の、ピアグループメンバである全ピアにわたっての一貫性を保つためには、ピアグループ属性をサーバで管理する方法、または、ピアグループ作成者など特定のピアが集中的に管理する方法が容易である。しかしながら、これらの方法では、P2Pの持つメリットが損なわれるという問題点がある。
【0007】
まず、サーバで管理した場合、ネットワークが大規模になりピアグループが大規模になった場合には、サーバに負荷が集中し、P2Pの持つメリットが損なわれてしまう。
【0008】
また、ピアグループ作成者が管理した場合、ピアグループ作成者は、ネットワークから離脱することができなくなってしまい、ピアが持つべき自律性を損なってしまう。あるいは、ピアグループ作成者がネットワークを離脱する場合にはピアグループ内のいずれかのメンバピアにピアグループ属性の管理権限を委譲してしまうといった方法もあるが、委譲先のピアの選定ロジックが必要であり、また、そのロジックがあったとしても、ピアグループ属性の管理権限を委譲する前に、異常終了などの予期せぬ理由により管理ピアがネットワークを離脱してしまうと、ピアグループ属性の管理ピアが不在となってしまうなどの問題がある。
【0009】
そのため、ピアグループ属性を集中的に管理せず、分散的に管理することが求められる。
【0010】
また、P2Pネットワークでは、一般に集中管理部が存在しないため、それだけP2Pネットワークの制御・管理が困難であって、例えばP2Pネットワークの分断が起きやすいという問題点がある。
【0011】
図1および図2は、ピア間をつないでいたリンクの分断やピアの離脱・消滅によりピアグループが複数のサブグループに分断される様子を示している。図1において、ピアグループ10では、複数のピア1が、ピア1の間を接続するリンク2によって相互に接続している。ここで、図示×印が付されたリンク2が分断すると、ピアグループ10は、2つのサブグループ10A、10Bに分断されてしまう。
【0012】
分断の発生は、障害復旧処理メカニズムの工夫により回避できる場合もあるが、図2に示すように、ファイアウォール21やサブネット22などこれらの障害復旧メカニズムの動作の障害となるものの存在や、連続して複数のピア1が消滅する可能性があることなどから、その完全な回避は難しい。
【0013】
なお、本件発明に対する先行技術文献の存在を本件特許出願時には知り得ていない。従来の技術内容を記載した特許文献を探し当てることができなかった。検索した技術範囲などは、以下の通りである。
検索対象:平成5年以降本件出願前日までの日本国出願公開公報及び平成6年以降の日本国特許公報
検索方法:論理式(P2P+ピアグループ+ピアツー)の検索式での全文検索
【0014】
【発明が解決しようとする課題】
P2Pでは、ピアグループの分断がありうるものとして、発生した分断を検知し、それらを解消する方法が必要となる。また上記で述べたように、ピアグループ属性の管理を分散的に行う場合、分断の発生により、ネットワークの部分部分により、ピアグループ属性が不一致となるという状態が生じる可能性があり、それらの不一致を検出・解消する方法も必要である。
【0015】
本発明の目的は、ピアグループメンバの全ピアにわたっての一貫性を保ちつつ、ピアグループ属性の更新も考慮して、ピアグループ属性の管理を行うことができる方法であって、P2Pのメリットである、ボトルネックがなくスケーラビリティが高い点と自律分散的なピアの集合体としてネットワークが構成されるためその自律的発展が可能であるという点とを損なうことのない方法を提供することにある。
【0016】
また本発明の別の目的は、P2Pネットワークで起こりやすいネットワーク分断を検出し解消し、また、分断によって発生しうるピアグループ属性の不一致を検出・解消する方法であって、P2Pのメリットである、ボトルネックがなくスケーラビリティが高い点と自律分散的なピアの集合体としてネットワークが構成されるためその自律的発展が可能であるという点を損なうことのない方法を提供することにある。
【0017】
本発明のさらに別の目的は、上述した方法を実行するピアを提供することにある。
【0018】
【課題を解決するための手段】
本発明のピアグループの構成方法は、P2Pネットワークにおいて、ピアの集合体であって集合体としての属性情報を有するピアグループの構成方法であって、ピアグループのメンバであるすべてのピアがそのピアグループの属性情報を各ピア内部に保持し、各ピアがその属性情報に従って自律的に動作し、ピアが新規にピアグループに参加する場合には、そのピアは、参加を希望するピアグループの属性情報を取得して自ピア内部に保持し、そののち、新規に参加したピアは、取得した属性情報にしたがって動作する。このピアグループの構成方法によれば、特定のピアにおいてピアグループ属性を集中管理することなく、分散的にピアグループ属性を管理することを可能とする。
【0019】
本発明のピアグループの属性情報更新方法は、P2Pネットワークにおいて、ピアの集合体であって集合体としての属性情報を有するピアグループであり、ピアグループのメンバである全てのピアが属性情報を各ピア内部に保持してその属性情報に従って自律的に動作するピアグループにおける、そのピアグループの属性情報を更新するピアグループの属性情報更新方法であって、属性情報を変更するピアが、P2Pネットワークにおいて直接接続するピアにピアグループ属性情報変更通知を送信し、ピアグループ属性情報変更通知を受信したピアは、そのピアが保有する属性情報と、受信したピアグループ属性情報変更通知内のピアグループ属性変更情報を照合し、照合の結果、差分がある場合には、そのピアが保有する属性情報を、ピアグループ属性変更情報の内容にしたがって書き換え、P2Pネットワークにおいて直接接続するピアのうち、受信したピアグループ属性情報変更通知の送信元であるピア以外のピアに対し、ピアグループ属性情報変更通知を転送する。このピアグループの属性情報更新方法によれば、特定のピアにおいてピアグループ属性を集中管理することなく、分散的にピアグループ属性を管理しつつ、ピアグループ属性の更新を可能とする。
【0020】
さらにこのピアグループの属性情報更新方法においては、P2Pネットワークにおいてピア同士が相互に新たに直接接続する場合に、新たな直接接続に係るピアが、相互に保有する前記属性情報を交換し、交換の結果、他ピアが、自ピアが保有しない種別の属性情報を保有している場合、自ピアが保有する属性情報にその保有しない種別の属性情報を追加し、交換の結果、他ピアが、自ピアが保有する種別の属性情報を保有しているが属性値が異なる場合、属性情報とともに付与された整合解決情報を参照して、自ピアにてどちらの属性値を採用すべきか判定し、他ピアの属性値を採用する場合、自ピアが保有する属性情報をその他ピアの属性値に変更し、自ピアが保有する属性情報を変更した場合には、P2Pネットワークで直接接続するピアのうち、新たな直接接続の対象となったピアを除くピアに、ピアグループ属性情報変更通知を送信するようにしてもよい。このように構成することによって、特定のピアにおいてピアグループ属性を集中管理することなく、分散的に、ピアグループ属性の更新や管理を行い、さらに、ネットワーク分断により発生し得る、ピアグループ属性情報の、ピアグループ内での不一致を検出・解消することを可能とする。
【0021】
本発明の第1のピアグループの分断検出・解消方法は、P2Pネットワークにおいて、ピアの集合体であって集合体としての属性情報を有するピアグループであり、ピアグループのメンバである全てのピアが属性情報を各ピア内部に保持してその属性情報に従って自律的に動作するピアグループにおける、そのピアグループの分断を検出し解消するピアグループの分断検出・解消方法であって、ピアグループ内に、分断を検出するためのピアである検出用ピアを設け、検出用ピアは、分断チェックを目的とした特定のピアグループ属性の変更を第1の周期で行い、ピアグループ内の各ピアは、特定のピアグループ属性の変更を監視し、第1の周期を超える所定の時間にわたって変更を検出しない場合にピアグループ分断と認識し、ピアグループ分断を認識した場合に、一定の確率で検出用ピアに接続することで、分断により生じた属性情報のピアグループ内での不一致を解消の方向に向かわせる。
【0022】
本発明の第2のピアグループの分断検出・解消方法は、P2Pネットワークにおいて、ピアの集合体であって集合体としての属性情報を有するピアグループであり、ピアグループのメンバである全てのピアが属性情報を各ピア内部に保持してその属性情報に従って自律的に動作するピアグループにおける、そのピアグループの分断を検出し解消するピアグループの分断検出・解消方法であって、ピアグループ内に、分断を検出するためのピアである検出用ピアを設け、ピアグループ内の各ピアは、第1の周期ごとに一定の確率で、検出用ピアに接続することでピアグループの属性情報の照合を行い、もし、不一致がある場合には確実に分断が起きていると認識し、分断を認識した場合に、自ピアおよび検出用ピアが保有する属性情報を更新して、分断により生じた属性情報のピアグループ内での不一致を解消の方向に向かわせる。
【0023】
第1及び第2のピアグループの分断検出・解消方法において、検出用ピアは、ピアグループ内で他のピアからいつでも接続可能に設けられた常設ピアであってもよいし、トークンを保有するトークン保有ピアであってもよい。トーク保有ピアを用いる場合、そのトークン保有ピアは、少なくともピアグループから離脱する際(さらには、場合に応じて任意の契機に)に、トークンをピアグループ内の他のピアに譲渡するとともに、P2Pネットワーク内で直接接続するピアに対しトークン保有ピアの変更を通知する。
【0024】
これらのピアグループの分断検出・解消方法によれば、特定のピアに非常に大きな負荷をかけることなく、属性情報のピアグループ内での不一致を解消の方向に向かわせ、また必要に応じてピアグループの分断を解消に向かわせることができる。
【0025】
本発明のピアは、P2Pネットワークにおいて用いられるピアであって、P2Pネットワークではピアの集合体であって集合体としての属性情報を有するピアグループが構成され、P2Pネットワークを経由して他ピアとの通信を行い、ネットワーク制御を行うP2P通信処理部と、ピアグループの属性情報を格納する記憶領域と、ピアグループのメンバピアアドレス情報を取得するピアグループ情報発見部と、を有し、参加を希望するピアグループの属性情報を取得して記憶領域内に格納し、そののち、取得した属性情報にしたがって動作する。
【0026】
本発明のピアにおいては、他ピアに対してピアグループ属性情報の照合を行い、記憶領域内の属性情報の更新処理を行うピアグループ属性情報照合・更新処理部をさらに設け、ピアグループ属性情報変更通知を受信した際に、記憶領域内の属性情報と、受信したピアグループ属性情報変更通知内のピアグループ属性変更情報を照合し、照合の結果、差分がある場合には、記憶領域内の属性情報をピアグループ属性変更情報の内容にしたがって書き換え、P2Pネットワークにおいて直接接続するピアのうち、受信したピアグループ属性情報変更通知の送信元であるピア以外のピアに対し、ピアグループ属性情報変更通知を転送するようにしてもよい。また、このピアにおいて、第1の周期を計時するタイマ機能を有するチェック用属性定期更新部をさらに設け、第1の周期で、分断チェックを目的とした特定のピアグループ属性の変更を行うようにしてもよく、あるいは、
検出用ピアに対する照合間隔を規定するタイマ機能を備え、照合間隔の経過に伴って所定の確率で検出用ピアに接続するためのピアグループ属性情報定期照合部をさらに設け、検出用ピアとの属性情報の照合結果に基づいてピアグループの分断を判断するようにしてもよい。チェック用属性定期更新部を設ける場合には、第1の周期より長い所定の時間のタイマ機能を有するチェック用属性変更監視部をさらに設け、所定の時間にわたって特定のピアグループ属性の変更を検出しない場合に、ピアグループの分断があったと判断するようにしてもよい。
【0027】
なお、本発明においてP2Pネットワークとは、典型的には、自律分散的に動作するピアが複数あって、各々のピアが他のいくつかのピアとネットワークを介して互いに接続し、各々のピアがそれらの接続を通じて受信した情報を他のピアに伝播することで互いに直接接続していないピア同士の情報流通を可能とし、それらピア全体で情報流通の場を形成するようにしたもののことである。P2Pネットワークにおけるピアは、一般的には、コンピュータおよびその上で動作するソフトウェアにより実現される。
【0028】
【発明の実施の形態】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。
【0029】
《第1の実施形態》
まず、本発明に基づくピアグループの構成方法を説明する。図3は、ピアの機能構造を示すブロック図である。
【0030】
ピア1には、P2P通信処理部31と、ピアグループ情報発見部32と、記憶領域であるピアグループ属性保持エリア33とが設けられている。
【0031】
P2P通信処理部31は、P2Pネットワークを経由して他のピアと情報をやり取りしたり、他のピアとのP2Pネットワーク上の接続・切断・参加・離脱などのP2Pネットワーク制御を行う機能部である。ピアグループ情報発見部32は、新規ピアグループを発見したり、新規にピアグループに参加するために、ピアグループのメンバピアアドレス情報を取得する機能部である。
【0032】
ピアグループ属性保持エリア33は、ピアを構成するコンピュータのメモリ上、ディスク上、あるいはその他の記憶媒体上において、ピアグループの属性情報を保持するエリア(記憶領域)である。このピアグループ属性保持エリア33では、ピアグループの属性名とその属性値のペアや、ピアグループ属性名のエントリ(属性値がなく、エントリの有無に意味があるもの)がテーブルで管理されている。
【0033】
このピアグループ属性保持エリア33は、対象のピアグループ属性種別により、固定ピアグループ属性情報保持エリアと、可変ピアグループ属性情報保持エリアとに分類することができる。固定ピアグループ属性情報保持エリアは、ピアグループIDなど、ピアグループが生成された時点で内容が確定し、以降の変更が不可能なピアグループ属性に対応するものである。一方、可変ピアグループ属性保持エリアは、ピアグループ内で使われるメタメタデータなど、以降に追加・修正が行えるピアグループ属性に対応するものである。
【0034】
図4に、ピアグループ属性情報の一例を示す。これらの例からわかるように、ピアグループ属性情報は、ピアグループの全メンバ間で一貫して一致していることが強く求められる。
【0035】
図5は、すでにピアグループ10が生成されていていくつかのメンバピアが存在し、そこに新規のピア1が参加する状況を示している。ピアグループ10のメンバピアには、それぞれ、ピアグループIDとして“1315”が割り当てられている。
【0036】
図5に示す場合を例に挙げて、新規ピアの参加の手順を説明する。ここでは、2通りのシーケンスを説明する。第1の例のシーケンスは、新規参加ピアが、参加したいピアグループの属性をあらかじめ取得してから既存のメンバピアに接続するというものであり、第2の例のシーケンスは、新規参加ピアが、既存のメンバピアに接続することでピアグループ属性を取得するというものである。
【0037】
図6は、第1の例でのシーケンスを示すものであり、図7は、第1の例のシーケンスにおける各機能部間の信号のパラメータを示すものである。
【0038】
図6および図7に示すように、第1の例のシーケンスでは、新規参加ピアにおいて、ユーザまたはエージェントまたはその他の手段により、例えば、ピアグループ概要の説明文に所定の文字列を含むピアグループを検索したい、と指定される。ピアグループの情報を取得するには、ディレクトリサービスから取得する、ブロードキャストによって知り得たピアから取得する、自ピアのキャッシュしているピアグループ情報から取得する、などのさまざまな方法がある。新規参加ピアのピアグループ情報発見部32は、ピアグループ検索(ここでは、ピアグループ属性データベースを検索する)を行い、この検索の結果として、所定の条件を満たすピアグループ情報を返される。このピアグループ情報には、ピアグループIDを含むピアグループ属性情報と、ピアグループへの参加の窓口になりうる、いくつかのメンバピアアドレスが含まれる。
【0039】
新規参加ピアにおいて、ユーザまたはエージェントまたはその他の手段により、参加対象のピアグループが選択されると、その新規参加ピアのピアグループ属性情報保持エリア33に、その参加対象のピアグループ属性情報がコピーされる。その後、新規参加ピアのP2P通信処理部31から、その参加対象のピアグループの任意のメンバピアに対して、ピアグループ参加依頼がなされる。このときパラメータとして、新規参加ピアが得たピアグループ属性情報が渡される。ピアグループ参加依頼を受けたピアは、新規参加ピアから渡されたピアグループ属性情報と、自らの保有するピアグループ属性情報とが一致するか判定し、一致する場合には、参加OKのピア参加依頼応答を返す。その後、新規参加ピアは、自身が保有するピアグループ属性情報にしたがって振舞う。もし、一致しない場合には、参加NGのピア参加依頼応答が返され、新規参加ピアは、ピアグループ属性情報保持エリア33をリセットする。
【0040】
図8は、第2の例でのシーケンスを示すものであり、図9は、第2の例のシーケンスにおける各機能部間の信号のパラメータを示すものである。
【0041】
図8および図9に示すように、第2の例のシーケンスでは、まず、第1の例と同様にピアグループの検索がなされる。この第2の例において、ピアグループ検索の結果として返されるべき情報は、ピアグループID(またはピアグループ名称)と、そのピアグループへの参加の窓口になりうる、いくつかのメンバピアアドレスのみでよい。
【0042】
次に新規参加ピアにおいて、ユーザまたはエージェントまたはその他の手段により、参加対象のピアグループが選択されると、その新規参加ピアのP2P通信処理部31は、参加対象のピアグループの任意のメンバピアに対して、ピアグループ参加依頼を行う。ピアグループ参加依頼を受けたピアは、自らの保有するピアグループ属性情報とともに、参加OKのピア参加依頼応答を返却する。その後、新規参加ピアは、自身が保有するピアグループ属性情報にしたがって振舞う。
【0043】
《第2の実施形態》
次に、本発明に基づくピアグループ属性情報の更新方法について説明する。ここでは、ピアグループは上述の第1の実施形態で説明した構成方法によって構成されている。
【0044】
図10および図11は、ピアグループ属性の変更と、その変更がP2Pネットワーク上に接続する他のピアに伝えられ(ピアグループ属性の更新)、それらが繰り返されて、ピアグループ内全体に伝播する様子を示している。
【0045】
図10は、P2PネットワークとしてSIONet(特開2001−249873、特願2001−394980)を用いた場合の例を示している。SIONetでは、情報は意味情報をヘッダに持ったイベントの形で流通し、イベントタイプとは意味情報の型を規定するもので、すなわち、メタメタデータである。
【0046】
図10の一番右側のピア(変更元ピア)が、もともとは、ピアグループ公開属性がtrue(公開)であったのを、false(非公開)に変更している。また、従来から定義されているレストラン情報イベントタイプに加えて、住宅情報イベントタイプの定義を新たに追加している。図10に示す例では、ピアグループの属性情報として、さらに、ピアグループ属性の最終変更時刻が変更されている。これは、ピアグループの分断とその再接続があったときなどにピア間で相互に保持している属性情報に食い違いが生じたときにそれらの整合を図るための整合性解決情報として、時刻を用いているからである。これらのピアグループ属性変更情報は、図11に示すように、P2Pネットワークを経由して、隣接のピア1、そのまた隣接のピア1へと次々と伝えられ、ピアグループ10の全体に伝播していく。
【0047】
ピアグループ属性の変更があったときは、その変更は上述のようにしてピアグループ内を伝播し、各ピアでのピアグループ属性の更新が行われるが、ここでP2Pネットワークの場合、ピアとピアの接続(新規参加あるいは分断されたピアグループの再接続など)が起こりうることにより、各ピアに保持されている属性情報における不一致が発生することがある。以下、この属性情報の不一致を検出し、解消する手順について説明する。
【0048】
図12および図13は、ピアグループ中のピアが接続した場合に、ピアグループ分断による属性情報の不一致を検出し、解消する手順を説明している。また図14は、ピアグループ属性情報の不一致の検出と解消のアルゴリズムの一例を示している。図14に示すように、ピアグループ属性情報の不一致の検出と解消は、例えば、ピアとピアの接続時に互いのピアが保持する属性情報を交換し合い、相手方のピアが自ピアにはない種別の属性情報を持っている場合には、自ピアの保持する属性情報にそれを追加し、相手方のピアが、自ピアに存在する種別の属性であるが属性値が異なる属性情報を保持している場合には、その属性情報に一緒に付与されている整合性解決情報(ここでは属性変更時刻)を参照し、より新しい属性情報を採用することによって、実行される。
【0049】
図12に示す例では、図示される3つのピアとも、ピアグループの分断前に、レストラン情報イベントタイプ、住宅情報イベントタイプが定義されており、分断後に、図示右側2つのピアでは、レシピ情報イベントタイプが追加されており、最も左側のピアでは、音楽情報イベントタイプが追加されている。また、分断後に、右側2つのピアでは、ピアグループ公開属性がfalseになっており、最も左側のピアでは、ピアグループ公開属性がtrueになっている。
【0050】
ここで、図示最も左側のピアが、図示中央のピアと接続した場合、接続を契機として属性情報の交換が行われ、その結果、図示最も左側のピアにレシピ情報イベントタイプが追加され、図示中央のピアに音楽情報イベントタイプが追加される。音楽情報イベントタイプの追加は、ピアグループ属性変更イベントとして図示最も右側のピアにも伝播し、図示最も右側のピアに音楽情報イベントタイプが追加される。
【0051】
また、ピアグループ公開属性については、整合性解決情報を利用して整合を行う。これにはいろいろなやり方があるが、以下では、属性の最終変更時刻を整合性解決情報として利用し、整合性解決ポリシーとして、最終更新時刻が新しい情報を採用する場合の例を示す。
【0052】
図示中央のピアグループ公開属性の変更は2003.3.31であり、図示最も左側のピアのピアグループ公開属性の変更は2003.1.31であるので、整合性解決ポリシーから、ピアグループ公開属性の正しい値は、図示中央のピアのピアグループ公開属性となる。
【0053】
こうして、接続元・接続先双方において、ピアグループ属性情報の照合・不一致解消が行われ、それぞれのピアでの変更が、P2Pネットワークを通じて、それぞれのピアの以前からの接続先ピアにピアグループ属性情報変更通知として流され、その結果、ピアグループ全体に整合がはかられる。
【0054】
図15は、上述したようなピアグループ属性情報の変更・更新とその伝播を行うことができるピアの機能構造を示すものである。図3に示したものと同様に、ピア1はP2P通信処理部31とピアグループ情報発見部32とピアグループ属性情報保持エリア33とを備えている。さらにピア1には、ピアグループ属性情報の照合や更新処理を行う、ピアグループ属性情報照合・更新処理部34が設けられている。
【0055】
この場合、ピアグループ属性情報としては、図3に示したものに加え、各属性ごとの最終変更時刻(属性値がないものについては、エントリ追加等の時刻)と、全属性を通しての最終変更時刻が含まれている。
【0056】
次に、ピアグループ属性の変更元のピアでの具体的処理を説明する。図16は、ピアグループ属性の変更元のピアでの処理を示すシーケンス図であり、図17は、このシーケンスでの各機能部間の信号のパラメータを示す図である。
【0057】
図16に示すように変更元のピアにおいて、ユーザまたはエージェントまたはその他の手段により、ピアグループ属性情報の更新の契機および更新内容が与えられると、ピアグループ属性情報照合・更新処理部34は、ピアグループ属性情報保持エリア33の属性情報を更新するとともに、P2P通信処理部31に対して、ピアグループ属性情報変更通知を要求する。これをうけてP2P通信処理部31は、その変更元ピアが接続しているすべてのピアに対して、ピアグループ属性変更通知を送出する。
【0058】
次に、ピアグループ属性情報変更通知を受信したピアにおける処理を説明する。図18は、ピアグループ属性情報変更通知を受信したときの処理を示すシーケンス図であり、図19は、このシーケンスにおける各機能部間の信号のパラメータを示す図である。
【0059】
自ピアに接続しているあるピアからピアグループ属性情報変更通知を受けると、自ピアのP2P通信処理部31はピアグループ属性情報照合・更新処理部34にピアグループ属性情報変更要求を送り、ピアグループ属性情報照合・更新処理部34は、自ピアのピアグループ属性情報保持エリア33に保持されたピアグループ属性情報を取得し、変更の必要性があるかどうか照合を行う。もし、変更の必要性ありと判断された場合、ピアグループ属性情報保持エリア33のピアグループ属性情報を変更(更新)するとともに、P2P通信処理部31を介し、P2Pネットワークにおいて直接接続しているピアのうち、この処理の契機となったピアグループ属性変更通知を受けたピア以外のすべてのピアに、ピアグループ属性情報変更通知を送出する。なお、同じ内容のピアグループ属性情報変更通知を複数回受け取ることもあるが、その場合には、2回目以降のピアグループ属性情報変更通知は、このシーケンスにおいては無視される。
【0060】
次に、ピアグループの分断区間あるいは未接続区間が接続された場合の処理について説明する。この処理では、上述したピアグループ属性情報の不一致の検出とその解消とが行われる。図20は、この処理を示すシーケンス図であり、図21は、このシーケンスにおける各機能部間の信号のパラメータを示す図である。
【0061】
接続元のピアのP2P通信処理部31は、接続先のピアに対してピア接続依頼を送るとともに、ピアグループ属性情報保持エリア33からピアグループ属性情報を取得し、取得したピアグループ属性情報も接続先のピアに送る。同様に、接続先のピアのP2P通信処理部31も接続元のピアに対し、当該接続先ピアのピアグループ属性情報を送る。このようにして接続元ピアと接続先ピアとの間でピアグループ属性情報を交換した後、接続元、接続先の両方のピアにおいて、それぞれ、ピアグループ属性情報照合・更新処理部34が、相手方のピアから受け取ったピアグループ属性情報と自ピアが保有するピアグループ属性情報とを照合する。そして、上述した図14に示したものなどのアルゴリズムにより、各々のピアにおいて、ピアグループ属性情報の整合が行われ、各々のピアでの整合結果にもとづいて、ピアグループ属性情報の更新が(必要に応じて)行われる。ピアグループ属性情報更新は、これらのピアが、この新規接続以前に接続しているすべてのピアに送出される。
【0062】
《第3の実施形態》
次に、本発明に基づき、P2Pネットワークにおいて、ピアグループの分断を検出し、その分断を解消する方法を説明する。ピアグループは、上述の第1の実施形態で説明した構成方法によって構成されており、また、ピアグループ属性情報は、上述の第2の実施形態の更新方法によって更新されている。ここでは、ピアグループ内に、他のピアからいつでも接続可能な常設ピアを設置し、この常設ピアがチェック用属性情報を定期的に更新することによって、ピアグループの分断を検出する方法を説明する。図22は、この方法により各ピアが分断を自己認識する様子を示している。
【0063】
常設ピア3は、周期Tでチェック用属性情報を更新し、その都度、常設ピア3からは、ピアグループ属性情報変更通知が送出される。このため、常設ピアと分断していないネットワーク内であれば、各ピア1は、輻輳などによって多少の遅れはあるかもしれないが、チェック用属性に関するピアグループ属性情報更新をほぼ周期Tで受信するはずである。しかしながら、常設ピアと分断している部分では、チェック用属性更新は受信されない。したがって、周期Tを大きく超えた時間が経過しても属性情報更新が流れてこない場合は、各々のピアは、そのピアが分断していると、自律的に認識する。
【0064】
次に、このようにして自ピアの分断が検出した場合に、各ピアがどのようにして分断を解消するかを説明する。図23は、分断を検出したピアが常設ピアに接続し、分断を解消する様子を示している。
【0065】
分断を検出したピア1のすべてが常設ピア3に接続するものとすると、ネットワーク規模が大きい場合には常設ピア3への負荷集中は相当なものになり、現実的な解ではならなくなるとともに、P2Pの、ボトルネックがなくスケーラビリティが高い、というメリットを損なうことにもなる。
【0066】
一般にP2Pネットワークは、高いスケーラビリティを有する代わりに、あまり確実性を前提としていないことが多い。例えばGnutellaでは、全世界のすべてのピアを網羅した検索は不可能であるし、求めるコンテンツの保有ピアを発見し、コンテンツをダウンロードしようとしても、すでにそのピアはネットワークから離脱していたなどの事態は、有り得ることである。また、JXTAでも、ピアの無断でのネットワークへの出現やネットワークからの消滅、メッセージの破棄や改変、遅延は、許容され予測できないものとしている。
【0067】
このことから本実施形態では、ピアのすべてに対して確実にアクションを起こすのではなく、一定の確率で選択されたピアに対してのみアクションを起こすことで、一定の確からしさで、ピアグループが分断していない、あるいは、分断によるピアグループ属性の不一致が発生していないと判定する手法をとる。すなわち、分断を検出したピアのすべてが常設ピアに接続するのではなく、一定の確率p(例えば、p=0.01など)で選択されたピアのみが常設ピア3に接続し、分断によるピアの属性情報の不一致を解消するようなアプローチをとっている。
【0068】
分断により生じた不一致を解消するのみであれば、常設ピアに対して接続したピアは、その後、その常設ピア3との接続を切断してもよい。もし、ネットワーク分断自体を解消するのであれば、常設ピア3に接続したピアは、常設ピアとの接続を維持したままにする。
【0069】
この操作によって、常設ピア3に接続したピアの周辺にあるピアについては、ピアグループ属性情報変更通知により、分断していないあるいは属性情報の不一致がないことが保証されるが、ピアグループの全体にわたって分断がないあるいは属性情報の不一致がないとは言い切れない。しかしながら、この操作を繰り返すことで、ピアグループの分断、あるいは分断により生じたピアグループ属性の不一致は、着実に解消する方向に向かう。
【0070】
常設ピアに接続するピアの一定確率での選択は、各ピアに埋め込まれた、ランダムに一定確率で自己選択するロジックにもとづき、各ピアにて自律的に行われる。このときの自己選択ロジックには、タイムスタンプとピアIDの組み合わせを使うなどの方法が考えられる。
【0071】
自己選出を行ったピアが接続すべき常設ピア3のネットワーク上でのアドレスは、例えば、ピアグループ属性情報の一つとして各ピアに保持させておくことができる。また、常設ピアのチェック用属性変更周期Tや各ピアにおけるチェック用属性変更監視タイマの値(チェック用属性情報がどれだけの時間通知されなかったら分断と判断するかの値)についても、例えば、ピアグループ属性情報の一つとして保持ことができる。ピアを選出する確率pについても、例えば、ピアグループ属性情報の一つとして保持することができる。
【0072】
ピアを選出する確率pについてその適正な値は、ネットワーク全体の規模に関係して変わると考えられる。集中管理用のサーバが存在しないP2Pネットワークにおいては、ネットワーク全体の規模を把握することは難しいが、常設ピアにおける接続頻度からは、
【0073】
【数1】
【0074】
という関係がある、常設ピアは、接続頻度fの大きさに応じて、適正な選出確率pや周期Tの値を再定義し、変更することも可能である。
【0075】
もし、P2Pネットワークにおいて、特定のパケットを流すことでそのパケットの届く範囲(すなわち、分断を超えない範囲)のピア数をカウントできる手段が用意されているなら、そのカウント値を、適切な選出確率pや周期Tの値の再定義に利用することもできる。
【0076】
図24は、このようにピアの分断を検出し、その分断を解消する機能を有するピアの機能構造を示すブロック図である。
【0077】
図24に示すピア1は、図15に示したピアと同様に、P2P通信処理部31、ピアグループ情報発見部32、ピアグループ属性情報保持エリア33およびピアグループ属性情報照合・更新処理部34を備えており、さらに、チェック用属性定期更新部35及びチェック用属性変更監視部36を備えている。ここでチェック用属性定期更新部35は常設ピアのために必要な機能部であり、チェック用属性変更監視部36は常設ピア以外のピアのために必要な機能部である。
【0078】
また、ピアグループ属性情報保持エリア33においては、図15に示したものに比べ、チェック用属性定期更新部35によってその値がインクリメントされるチェック用の属性「checkConsistency」と、チェック周期、常設ピアのアドレス、選出確率の3つのピアグループ属性が追加されている。
【0079】
以下、このようにチェック周期、常設ピアのアドレス、選出確率の3つのピアグループ属性がピアグループ属性情報エリア33に保持されているものとして、このピア1での処理を説明する。また、以下の説明において、P2Pネットワーク中のピアのうち、常設ピア以外のピアを「通常ピア」という言い方で呼ぶことがある。
【0080】
図25は、常設ピアによるチェック用属性更新処理を示すシーケンス図であり、図26は、このシーケンスにおける各機能部間の信号のパラメータを示す図である。
【0081】
常設ピアにおいて、チェック用属性定期更新部35には、チェック周期Tを計時するためのタイマ機能が備えられており、タイマが満了すなわちチェック周期Tが到来すると、チェック用属性定期更新部35は、チェック用属性更新をピアグループ属性情報照合・更新処理部34に通知し、ピアグループ属性情報照合・更新処理部34は、ピアグループ属性情報保持エリア33の属性情報を更新するとともに、P2P通信処理部31を介して、この常設ピアが接続しているすべてのピアに対し、ピアグループ属性情報変更通知を行う。
【0082】
図27は、そのようなチェック用属性のピアグループ属性情報変更通知を受けた通常ピアでの処理を示すシーケンス図であり、図28は、このシーケンスにおける各機能部間の信号のパラメータを示す図である。
【0083】
通常ピアでは、図18に示す処理と同様に、接続しているピアからピアグループ属性情報変更通知を受けると、P2P通信処理部31はピアグループ属性情報照合・更新処理部34にピアグループ属性情報変更要求を送り、ピアグループ属性情報照合・更新処理部34は、自ピアのピアグループ属性情報保持エリア33に保持されたピアグループ属性情報を取得し、変更の必要性があるかどうか照合を行う。ここで、ピアグループ属性情報照合・更新処理部34は、変更対象がチェック用属性かどうかを判別し、もしそうであれば、チェック用属性変更監視部36の監視タイマをリセットする。そして、ピアグループ属性情報保持エリア33のピアグループ属性情報を変更(更新)するとともに、P2P通信処理部31を介し、P2Pネットワークにおいて直接接続しているピアのうち、この処理の契機となったピアグループ属性変更通知を受けたピア以外のすべてのピアに、ピアグループ属性情報変更通知を送出する。
【0084】
図29は、通常ピアが分断を検出する場合の処理を示すシーケンス図であり、図30は、このシーケンスにおける各機能部間の信号のパラメータを示す図である。
【0085】
チェック用属性変更監視部36の監視タイマが満了したピアは、すべて自ピアが分断していると認識する。そして分断が認識された場合、チェック用属性変更監視部36は、ピアグループ属性情報保持エリア33からピア選出確率などの属性情報を取得し、取得したピア選出確率を用い、現在時刻やピアアドレスと乱数を利用するなどの形で、自ピアが選出されるべきピアかどうかの判定(自己選出判定)を行う。自ピアが選出された場合に限り、チェック用属性変更監視部36は、ピアグループ属性情報保持エリア33から常設ピアのアドレスを取得し、P2P通信処理部31によって常設ピアに接続依頼を行う。なお、ピア接続依頼以降のシーケンスは、図20に示した、分断区間の再接続を契機とした、ピアグループの属性の照合と変更通知の場合と同じである。なお、ピア選出確率や常設ピアのアドレスは可変であるため、ここに示した例では、その都度、それらを取得するようにしている。
【0086】
《第4の実施形態》
次に、P2Pネットワークにおいてピアグループの分断を検出し、その分断を解消する第2の方法を説明する。上述の第3の実施形態では、ピアグループ内に常設ピアを設置し、この常設ピアがチェック用属性情報を定期的に更新することとしているが、この第4の実施形態では、常設ピアがチェック用の属性更新を行わない場合を説明する。ここでは、常設ピアによるチェック用の属性更新を行なわない代わりに、ピアグループ内で各ピアにより自然に発生するチェック用属性情報の更新により、各ピアが分断を自己認識し、分断を解消、または分断により生じたピアグループ属性情報の不一致を解消する。図31は、ここでの処理の概念を示す図である。なお、この実施形態においても、ピアグループは、上述の第1の実施形態で説明した構成方法によって構成されており、また、ピアグループ属性情報は、上述の第2の実施形態の更新方法によって更新されている。
【0087】
分断していないネットワークにおいては、どこかのピアが属性情報を変更した場合、各ピアにおいて属性情報が更新され、ネットワーク内の各ピアの属性情報最終更新時刻は一致する。しかし、分断がある場合には、一部のピアには属性情報の変更が通知されないので、それらのピアの属性情報最終更新時刻は旧来のままであり、属性情報最終更新時刻の不一致が発生する。
【0088】
ここで、ネットワーク内のピアのうち、一定の自己確率で選択されたピアが、一定周期で、常設ピアに対し、ピアグループ属性情報(属性バージョン)を報告する。そして、常設ピアのピアグループ属性情報と自ピアのピアグループ属性情報とを比較し、不一致があれば、確実に分断が生じていると認識する。一致した場合には、ある程度の確からしさで分断していないと判断できる。
【0089】
自己選択されたピアでは、不一致と認識した場合には、常設ピアと接続することにより、属性情報の不一致を解消できる。情報伝達の分断も防ぎたい場合には、常設ピアと接続したままとすればよい。そして、自己選択されたピアは、周辺のピアに属性情報の変更を通知する。
【0090】
第4の実施形態が第3の実施形態と異なる点は、ピアグループ属性情報が一致した場合には確実に分断が起きていない、と言い切れない点である。
【0091】
図32は、第4の実施形態におけるピアの機能構造を示している。図32に示すピア1は、図24に示したピアに比べ、チェック用属性定期更新部、チェック用属性変更監視部が設けられておらず、ピアグループ属性情報としてチェック用の属性「checkConsistency」がなく、その代わりにピアグループ属性情報定期照合部37が設けられている点で相違する。ピアグループ属性情報定期照合部37は、上述したような自己選択処理、常設ピアへの属性情報の通知などの処理を行うものである。
【0092】
図33は、この実施形態における通常ピアがピアグループ属性を定期的に常設ピアと照合する処理を示すシーケンス図であり、図35は、このシーケンスにおける各機能部間の信号のパラメータを示す図である。
【0093】
ピアグループ属性情報定期照合部37は、常設ピアに対する照合間隔を規定するタイマを備えており、タイマが満了となると、ピアグループ属性情報保持エリア33からピア選出確率などの属性情報を取得し、取得したピア選出確率を用い、現在時刻やピアアドレスと乱数を利用するなどの形で、自ピアが選出されるべきピアかどうかの判定(自己選出判定)を行う。自ピアが選出された場合に限り、ピアグループ属性情報定期照合部37は、ピアグループ属性情報保持エリア33から常設ピアのアドレスを取得し、P2P通信処理部31によって常設ピアに接続依頼を行う。その後、自己選出判定の結果によらず、ピアグループ属性情報定期照合部37は、ピアグループ属性情報保持エリア33からチェック周期を取得し、タイマをリスタートさせる。なお、ピア接続依頼以降のシーケンスは、図20に示した、分断区間の再接続を契機とした、ピアグループの属性の照合と変更通知の場合と同じである。
【0094】
第4の実施形態において、常設ピアがピア接続依頼を受信する処理シーケンスについては、図20に示したシーケンスと同じであり、通常ピアがピアグループ属性変更通知を受信するシーケンスについては、図18に示したシーケンスと同じである。
【0095】
《第5の実施形態》
次に、本発明の第5の実施形態として、常設ピアを設置することなく、ピアの分断を検出できる構成を説明する。この第5の実施形態では、固定した常設ピアを設置する代わりに、ピア間で移動可能なトークンを使用し、トークンを保有するピアが、上述の第3および第4の実施形態で説明した常設ピアとしての役割を担うようにしている。したがって、この場合のピアの分断の検出や、分断の解消、属性情報の不一致の解消のための処理などについては、第3および第4の実施形態での説明における「常設ピア」を「トークン保有ピア」に置き換えたものとなる。なお、この実施形態でも、ピアグループは、上述の第1の実施形態で説明した構成方法によって構成されており、また、ピアグループ属性情報は、上述の第2の実施形態の更新方法によって更新されている。
【0096】
トークン保有ピアが常設ピアと最も異なっている点は、トークン保有ピアがネットワークから離脱する際、あるいはファイアウォールの内側など他のピアからアクセスできない環境に移行する場合などに、その保有しているトークンを他のピアに渡さなければならないことである。また、トークン保有ピアは、一定期間の経過など、上記以外の任意の契機に、他のピアにトークンを渡すようにしてもよい。
【0097】
図35は、トークン保有ピアがトークンを他のピアに渡す処理を示すシーケンス図であり、図36は、このシーケンスにおける各機能部間の信号のパラメータを示す図である。
【0098】
保有しているトークンを他のピアに渡し、他のピアからトークンを受け取るために、各ピアには、トークン処理部が設けられている。トークンを他のピアに渡すべき事態となったとき、トークン保有ピアのトークン処理部は、トークンを渡すべきピアを選定して、そのピアのアドレスを取得する。トークンの譲渡先ピアのアドレスは、ディレクトリサービス、ブロードキャスト、ローカルキャッシュ、任意の隣接ピアなどを使用するなど、任意の手法で取得すればよい。ここで、トークン譲渡先のピアは、その時点で確実に存在しているピアである必要があるため、トークン保有ピアはそのP2P通信処理部31を介して譲渡先のピアの存在確認を行ってから、トークンを譲渡する。トークンを譲渡されたピアは、例えばタイマの起動など、トークン保有ピアとしての処理を開始するとともに、トークン保有ピアが変更したことを、P2Pネットワーク上で接続するピアを通じて通知する。なお、トークン保有ピア情報は、一例として、ピアグループ属性の一つとすることができる。
【0099】
以上本発明の好ましい実施の形態について説明したが、本発明におけるピアは、一般には、ネットワークに接続するコンピュータおよびその上で動作するソフトウェアによって実現される。すなわち、上述した各ピアの機能を実現するためのプログラムを、コンピュータに読込ませ、そのプログラムを実行させることによって、本発明によるピアが実現され、本発明の方法が実行される。これらのプログラムは、磁気テープやCD−ROMなどの記録媒体によって、あるいはネットワークを介して、コンピュータに読込まれるものである。
【0100】
【発明の効果】
以上説明したように本発明によれば、P2Pのメリットである、ボトルネックがなくスケーラビリティが高い点と、自律分散的なピアの集合体としてネットワークが構成されるためその自律的発展が可能であるという点を損なわずことなく、ピアグループの属性を、ピアグループメンバの全ピアに渡っての一貫性を保ちつつ、ピアグループ属性の更新も考慮した管理を行うことができ、また、P2Pネットワークで起こりやすいネットワーク分断を検出・解消、また、分断によって発生しうるピアグループ属性の不一致を検出・解消することができる、という効果がある。
【図面の簡単な説明】
【図1】ピアグループの分断の発生を説明する図である。
【図2】ファイアウォールやサブネットなどの要因によるピアグループの分断の発生を説明する図である。
【図3】ピアの機能構成を示すブロック図である。
【図4】ピアグループ属性の一例を示す図である。
【図5】ピアグループへのピアの新規参加を示す図である。
【図6】ピアグループへのピア新規参加シーケンスの第1の例を示すシーケンス図である。
【図7】図6に示す例における各機能部間の信号のパラメータを示す図である。
【図8】ピアグループへのピア新規参加シーケンスの第2の例を示すシーケンス図である。
【図9】図8に示す例における各機能部間の信号のパラメータを示す図である。
【図10】ピアグループ属性の変更と、それのピアグループ内へ伝播とを説明する図である。
【図11】ピアグループ属性の変更とそれがピアグループ内に伝播する様子を示す図である。
【図12】ピアとピアの接続があったときのピアグループ属性情報の不一致を解決する手順を概念的に示す図である。
【図13】ピアグループ属性情報の不一致の解消がピアグループ内に伝播する様子を示す図である。
【図14】ピアグループ属性情報の不一致の解消のためのアルゴリズムの一例を示す図である。
【図15】ピアグループ属性情報の変更・更新とその伝播を行うことができるピアの機能構成を示すブロック図である。
【図16】ピアグループ属性の変更元のピアでの処理を示すシーケンス図である。
【図17】図16に示すシーケンスにおける各機能部間の信号のパラメータを示す図である。
【図18】ピアグループ属性変更通知を受信したピアにおける処理を示すシーケンス図である。
【図19】図18に示すシーケンスにおける各機能部間の信号のパラメータを示す図である。
【図20】ピアグループ属性情報の不一致の検出と解消とを行う処理のシーケンス図である。
【図21】図20に示すシーケンスにおける各機能部間の信号のパラメータを示す図である。
【図22】常設ピアを設けるとともにチェック用属性を設定することによってピアの分断を検出する方法の概要を示す図である。
【図23】自ピアの分断を検出した場合における、分断の解消の手順の概要を示す図である。
【図24】ピアの分断を検出し、その分断を解消する機能を有するピアの機能構造を示すブロック図である。
【図25】常設ピアにおけるチェック用属性更新処理を示すシーケンス図である。
【図26】図25に示すシーケンスにおける各機能部間の信号のパラメータを示す図である。
【図27】通常ピアにおけるピアグループ属性変更通知を受信したときの処理を示すシーケンス図である。
【図28】図27に示すシーケンスにおける各機能部間の信号のパラメータを示す図である。
【図29】通常ピアが分断を検出する場合の処理を示すシーケンス図である。
【図30】図29に示すシーケンスにおける各機能部間の信号のパラメータを示す図である。
【図31】常設ピアからのチェック用属性を用いることなく、各ピアが分断を自己認識して、分断の解消と属性の不一致の解消とを行う処理の概念を示す図である。
【図32】常設ピアからのチェック用属性を用いることなく分断を自己認識できるピアの機能構成を示すブロック図である。
【図33】通常ピアにおける常設ピアへのピアグループ属性定期照合処理を示すシーケンス図である。
【図34】図33に示すシーケンスにおける各機能部間の信号のパラメータを示す図である。
【図35】トークンを用いることによってピアの分断を検出する場合におけるトークンを他ピアに譲渡する処理を示すシーケンス図である。
【図36】図35に示すシーケンスにおける各機能部間の信号のパラメータを示す図である。
【符号の説明】
1 ピア
2 リンク
3 常設ピア
10 ピアグループ
21 サブネット
22 ファイアウォール
31 P2P通信処理部
32 ピアグループ情報発見部
33 ピアグループ属性保持エリア
34 ピアグループ属性情報照合・更新処理部
35 チェック用属性定期更新部
36 チェック用属性変更監視部
37 ピアグループ属性情報定期照合部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a peer-to-peer (P2P) network, and more particularly to a peer group configuration method, a method of updating peer group attribute information in a P2P network, and division of a peer group using them. It relates to detection and resolution methods and peers operating according to these methods.
[0002]
[Prior art]
As an alternative to a server-client model network configuration that centralizes network management, a peer-to-peer type (hereinafter abbreviated as P2P) in which network participants (peers) connect to the network on an equal footing. Large networks are gaining attention.
[0003]
P2P has no or low dependency on servers, so even if the number of users receiving services and the number of peers increase and the network becomes large-scale, the amount of server equipment and the resources available to the servers ( Resource) does not become a bottleneck and the scalability of the network is very high. Further, in P2P, the network is not centrally managed, and the network is configured by loosely coupling peers that behave autonomously in a decentralized manner, so that the P2P has a feature that it can be autonomously developed. Representative examples of these P2Ps include Gnutella limited to the purpose of exchanging files, and JXTA and IONet as general-purpose platforms.
[0004]
Generally, in a P2P network, a group of peers called a peer group is organized for the following purposes, or the peer group is often self-organized.
[0005]
(1) To secure security by limiting the information distribution range to specific members;
(2) To enable composition and self-organization based on specific interests, and to enable classification;
(3) To improve the scalability of the entire network by organizing the network as a collection of peer groups whose information distribution range is restricted;
(4) To clarify the unit of maintenance operation such as monitoring and the unit of responsibility, and upon business request;
As described above, the peer group is an essential concept in P2P, particularly in a large-scale P2P network. In the peer group, the required type differs depending on the operation mode, but consistency in the routing method, the failure processing method, the authentication method, the encryption method, the ontology, the metadata system, etc. is required for each peer group.
[0006]
In order to maintain the consistency of the peer group attributes among all peers that are members of the peer group, it is necessary to manage the peer group attributes on the server or to centrally manage specific peers such as the peer group creator. Easy. However, these methods have a problem that the merits of P2P are lost.
[0007]
First, when managed by a server, when the network becomes large and the peer group becomes large, the load is concentrated on the server and the merit of P2P is lost.
[0008]
In addition, when managed by the peer group creator, the peer group creator cannot leave the network, thereby impairing the autonomy that the peer should have. Alternatively, when the creator of the peer group leaves the network, there is a method of delegating the management authority of the peer group attribute to any member peer in the peer group, but logic for selecting the peer to be delegated is necessary. Even if there is logic, if the management peer leaves the network due to an unexpected reason such as abnormal termination before delegating the management authority of the peer group attribute, the management peer of the peer group attribute However, there is a problem that the user is absent.
[0009]
Therefore, it is required to manage the peer group attributes in a decentralized manner instead of centrally.
[0010]
Further, in the P2P network, since there is generally no central management unit, it is difficult to control and manage the P2P network, and for example, there is a problem that the P2P network is likely to be divided.
[0011]
FIG. 1 and FIG. 2 show a situation where a peer group is divided into a plurality of subgroups due to a disconnection of a link connecting peers or a detachment / disappearance of a peer. In FIG. 1, in a
[0012]
In some cases, the occurrence of division can be avoided by devising a failure recovery processing mechanism. However, as shown in FIG. 2, the existence of obstacles such as the firewall 21 and the
[0013]
The existence of the prior art document for the present invention was not known at the time of filing the patent application. Patent documents that describe the contents of conventional techniques could not be found. The technical scopes searched are as follows.
Search target: Japanese Patent Application Publication from 1993 to the day before this application and Japanese Patent Publication from 1994
Search method: Full-text search using a logical expression (P2P + peer group + peer two)
[0014]
[Problems to be solved by the invention]
In P2P, it is assumed that there is a possibility that the peer group is divided, and a method of detecting the generated division and eliminating the division is required. Also, as described above, when managing peer group attributes in a decentralized manner, a situation in which peer group attributes may be inconsistent due to a part of the network due to the occurrence of division may occur. There is also a need for a method of detecting and eliminating.
[0015]
An object of the present invention is a method capable of managing peer group attributes in consideration of updating of peer group attributes while maintaining consistency among all peers of peer group members, which is an advantage of P2P. It is an object of the present invention to provide a method that does not impair the point that scalability is high without a bottleneck and that a network is configured as an aggregate of autonomous decentralized peers and that autonomous development is possible.
[0016]
Another object of the present invention is a method of detecting and eliminating a network disconnection that is likely to occur in a P2P network, and a method of detecting and eliminating an inconsistency of peer group attributes that may occur due to the disconnection, which is an advantage of P2P. An object of the present invention is to provide a method that does not impair the point that scalability is high without a bottleneck and that a network is configured as an aggregate of autonomously distributed peers and that the autonomous development is possible.
[0017]
It is yet another object of the present invention to provide a peer that performs the method described above.
[0018]
[Means for Solving the Problems]
A peer group configuration method according to the present invention is a method for configuring a peer group having a set of peers and having attribute information as a set in a P2P network, wherein all peers that are members of the peer group are the peers. When the attribute information of the group is held inside each peer, and each peer operates autonomously according to the attribute information, and the peer newly joins the peer group, the peer is required to register the attribute of the peer group to join. The information is acquired and held inside its own peer, and thereafter, the newly joined peer operates according to the acquired attribute information. According to this peer group configuration method, it is possible to manage peer group attributes in a distributed manner without centrally managing peer group attributes in a specific peer.
[0019]
The method for updating attribute information of a peer group according to the present invention is a peer group having a set of peers and having attribute information as a set in a P2P network. A peer group attribute information updating method for updating attribute information of a peer group in a peer group that is held inside a peer and operates autonomously according to the attribute information, wherein a peer that changes the attribute information is used in a P2P network. The peer that sends the peer group attribute information change notification to the directly connected peer, and receives the peer group attribute information change notification, sends the peer group attribute information and the peer group attribute change in the received peer group attribute information change notification. The information is collated, and if there is a difference as a result of the collation, the attribute information held by the peer is Rewriting in accordance with the contents of the loop attribute change information, among the peers to connect directly in the P2P network, to the received peer group attribute information change notification peers than peer that is the source of the transfers the peer group attribute information change notification. According to the peer group attribute information updating method, the peer group attributes can be updated while managing the peer group attributes in a distributed manner without centrally managing the peer group attributes in a specific peer.
[0020]
Further, in the method for updating attribute information of a peer group, when peers newly directly connect with each other in a P2P network, the peers relating to the new direct connection exchange the attribute information held by each other and exchange the information. As a result, if the other peer has attribute information of a type not owned by the own peer, the attribute information of the type not owned is added to the attribute information held by the own peer. If the attribute information of the type held by the peer is held but the attribute value is different, refer to the matching resolution information given together with the attribute information, determine which attribute value should be adopted by the peer, and When the attribute value of the peer is adopted, the attribute information held by the own peer is changed to the attribute value of the other peer, and when the attribute information held by the own peer is changed, a direct connection is made in the P2P network. Of A, peer excluding peer as a target of a new direct connection, may be transmitted peer group attribute information change notification. With such a configuration, the peer group attributes are updated and managed in a distributed manner without centrally managing the peer group attributes in a specific peer. , It is possible to detect and eliminate inconsistencies within a peer group.
[0021]
The first method for detecting and eliminating the division of a peer group according to the present invention is a peer group in a P2P network that is a group of peers and has attribute information as a group, and all peers that are members of the peer group are In a peer group that holds attribute information inside each peer and operates autonomously in accordance with the attribute information, a method of detecting and eliminating the division of the peer group, which is a method of detecting and eliminating the division of the peer group. A detection peer, which is a peer for detecting division, is provided, and the detection peer changes a specific peer group attribute for the purpose of division check in a first cycle, and each peer in the peer group is identified. The change of the peer group attribute is monitored, and if no change is detected for a predetermined period of time exceeding the first period, it is recognized that the peer group is disconnected, and the peer group is identified. When recognizing the division, by connecting to the detection peers with a certain probability, it directs the mismatch in the peer group of attribute information generated by the division in the direction of eliminating.
[0022]
The second method for detecting and eliminating a peer group division in the present invention is a peer group in a P2P network that is a group of peers and has attribute information as a group, and all peers that are members of the peer group are In a peer group that holds attribute information inside each peer and operates autonomously in accordance with the attribute information, a method of detecting and eliminating the division of the peer group, which is a method of detecting and eliminating the division of the peer group. A detection peer, which is a peer for detecting division, is provided, and each peer in the peer group connects to the detection peer with a certain probability every first cycle to check the attribute information of the peer group. If there is a discrepancy, it is assured that the fragmentation has occurred, and if the fragmentation is recognized, the attribute information held by its own peer and the detecting peer is updated. , It directs the direction of the mismatches in the peer group of attribute information generated by the division.
[0023]
In the first and second methods for detecting / eliminating the division of a peer group, the detection peer may be a permanent peer provided so as to be connectable to another peer at any time within the peer group, or a token having a token. It may be a holding peer. In the case of using a talk holding peer, the token holding peer transfers the token to another peer in the peer group at least at the time of leaving the peer group (and at any occasion as occasion demands), and performs P2P Notify peers that are directly connected in the network of the change of the token holding peer.
[0024]
According to these methods for detecting and resolving the division of a peer group, the inconsistency of the attribute information in the peer group is reduced in the direction of the resolving without placing a very large load on a specific peer. The division of the group can be resolved.
[0025]
The peer of the present invention is a peer used in a P2P network. In the P2P network, a peer group is formed which is an aggregate of peers and has attribute information as an aggregate, and communicates with other peers via the P2P network. It has a P2P communication processing unit for performing communication and network control, a storage area for storing peer group attribute information, and a peer group information discovery unit for acquiring member peer address information of the peer group, and wishes to participate. The attribute information of the peer group to be acquired is acquired and stored in the storage area, and thereafter, the operation is performed according to the acquired attribute information.
[0026]
The peer according to the present invention further includes a peer group attribute information matching / updating unit for checking the peer group attribute information with another peer and updating the attribute information in the storage area, and changing the peer group attribute information. Upon receiving the notification, the attribute information in the storage area is compared with the peer group attribute change information in the received peer group attribute information change notification, and if there is a difference as a result of the comparison, the attribute in the storage area is compared. The information is rewritten according to the contents of the peer group attribute change information, and among peers directly connected in the P2P network, a peer group attribute information change notification is sent to peers other than the peer that is the source of the received peer group attribute information change notification. You may make it transfer. In this peer, a check attribute periodic update unit having a timer function for measuring a first cycle is further provided, and a specific peer group attribute for the purpose of a division check is changed in the first cycle. Or
A timer function for defining a matching interval with respect to the detecting peer is provided, and a peer group attribute information periodic matching unit for connecting to the detecting peer with a predetermined probability as the matching interval elapses is further provided. You may make it determine the division | segmentation of a peer group based on the collation result of information. When the check attribute periodic update unit is provided, a check attribute change monitoring unit having a timer function for a predetermined time longer than the first cycle is further provided, and a change in a specific peer group attribute is not detected for a predetermined time. In this case, it may be determined that the peer group has been divided.
[0027]
Note that, in the present invention, a P2P network typically includes a plurality of peers operating in an autonomous decentralized manner, each peer being connected to some other peers via the network, and each peer being connected to each other. The information received through these connections is propagated to other peers, thereby enabling information distribution between peers that are not directly connected to each other, and forming a place for information distribution among the peers as a whole. Peers in a P2P network are generally realized by computers and software running on them.
[0028]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, a preferred embodiment of the present invention will be described with reference to the drawings.
[0029]
<< 1st Embodiment >>
First, a method of configuring a peer group according to the present invention will be described. FIG. 3 is a block diagram showing a functional structure of the peer.
[0030]
The
[0031]
The P2P
[0032]
The peer group
[0033]
The peer group
[0034]
FIG. 4 shows an example of the peer group attribute information. As can be seen from these examples, it is strongly required that the peer group attribute information is consistently consistent among all members of the peer group.
[0035]
FIG. 5 shows a situation in which a
[0036]
The procedure for joining a new peer will be described using the case shown in FIG. 5 as an example. Here, two types of sequences will be described. The sequence of the first example is that the newly joining peer acquires in advance the attributes of the peer group to join and then connects to the existing member peer. The sequence of the second example is that the newly joining peer By connecting to a member peer, the peer group attribute is acquired.
[0037]
FIG. 6 shows a sequence in the first example, and FIG. 7 shows signal parameters between the functional units in the sequence of the first example.
[0038]
As shown in FIG. 6 and FIG. 7, in the sequence of the first example, a peer group including a predetermined character string in the description of the outline of the peer group by a user or an agent or other means at the newly joining peer. I want to search. There are various methods for obtaining information on a peer group, such as obtaining from a directory service, obtaining from a peer obtained by broadcasting, obtaining from peer group information cached by the own peer, and the like. The peer group
[0039]
When a peer group to be joined is selected by a user, an agent or other means at the newly joining peer, the joining target peer group attribute information is copied to the peer group attribute
[0040]
FIG. 8 shows a sequence in the second example, and FIG. 9 shows signal parameters between the respective functional units in the sequence of the second example.
[0041]
As shown in FIGS. 8 and 9, in the sequence of the second example, first, a search for a peer group is performed as in the first example. In this second example, the information to be returned as a result of the peer group search is only the peer group ID (or peer group name) and some of the member peer addresses that may be the contact points for participation in the peer group. Good.
[0042]
Next, when a peer group to be joined is selected by a user, an agent, or other means at the newly joining peer, the P2P
[0043]
<< 2nd Embodiment >>
Next, a method of updating peer group attribute information according to the present invention will be described. Here, the peer group is configured by the configuration method described in the first embodiment.
[0044]
FIGS. 10 and 11 show that a change in peer group attributes and the changes are communicated to other peers connecting on the P2P network (peer group attribute updates), which are repeated and propagated throughout the peer group. It shows the situation.
[0045]
FIG. 10 shows an example in which IONet (JP-A-2001-249873, Japanese Patent Application No. 2001-394980) is used as a P2P network. In IONet, information is distributed in the form of an event having semantic information in a header, and the event type defines the type of semantic information, that is, metadata.
[0046]
Originally, the rightmost peer (change source peer) in FIG. 10 has changed the peer group public attribute from true (public) to false (private). Further, in addition to the conventionally defined restaurant information event type, a definition of the house information event type is newly added. In the example illustrated in FIG. 10, the peer group attribute last change time is further changed as the peer group attribute information. This is because time is used as consistency resolution information for achieving consistency when peer attribute information held between peers is inconsistent, such as when a peer group is divided and reconnected. Because it is used. These pieces of peer group attribute change information are successively transmitted to the
[0047]
When there is a change in the peer group attribute, the change propagates through the peer group as described above, and the peer group attribute is updated at each peer. In the case of a P2P network, the peer and the peer are updated. (Such as new participation or reconnection of a disconnected peer group) may cause a mismatch in the attribute information held by each peer. Hereinafter, a procedure for detecting and eliminating the mismatch of the attribute information will be described.
[0048]
FIG. 12 and FIG. 13 describe a procedure for detecting and eliminating inconsistency in attribute information due to peer group division when peers in a peer group are connected. FIG. 14 shows an example of an algorithm for detecting and eliminating inconsistency in peer group attribute information. As shown in FIG. 14, the detection and resolution of the mismatch of the peer group attribute information is performed, for example, by exchanging the attribute information held by the peers when the peers are connected, and the peer of the other party is not in its own peer. If it has the attribute information of the own peer, it is added to the attribute information held by its own peer, and the other peer holds the attribute information of the type that exists in its own peer but has a different attribute value. If there is, the process is executed by referring to the consistency solution information (attribute change time in this case) attached to the attribute information and adopting newer attribute information.
[0049]
In the example illustrated in FIG. 12, the restaurant information event type and the house information event type are defined before the peer group is divided for each of the three peers illustrated. The type is added, and the music information event type is added at the leftmost peer. Further, after the division, the peer group disclosure attribute is false for the two peers on the right, and the peer group disclosure attribute is true for the leftmost peer.
[0050]
Here, when the leftmost peer in the figure connects to the middle peer in the figure, attribute information is exchanged upon connection, and as a result, the recipe information event type is added to the leftmost peer in the figure, The music information event type is added to the peer. The addition of the music information event type is also propagated to the rightmost peer in the figure as a peer group attribute change event, and the music information event type is added to the rightmost peer in the figure.
[0051]
In addition, for the peer group public attribute, matching is performed using the matching solution information. There are various ways to do this. In the following, an example is shown in which the last change time of an attribute is used as consistency solution information and the last update time uses new information as a consistency solution policy.
[0052]
The change of the peer group public attribute in the center of the figure is 2003.3.31 and the change of the peer group public attribute of the leftmost peer in the figure is 2003.1.31. Is the peer group disclosure attribute of the central peer in the figure.
[0053]
In this way, the peer group attribute information is collated and the conflict is resolved at both the connection source and the connection destination, and the change at each peer is transmitted to the previous connection destination peer of each peer via the P2P network. This is sent as a change notification, and as a result, the entire peer group is matched.
[0054]
FIG. 15 shows a functional structure of a peer capable of changing and updating the peer group attribute information and transmitting the same as described above. 3, the
[0055]
In this case, as the peer group attribute information, in addition to the information shown in FIG. 3, the last change time for each attribute (for those having no attribute value, the time of entry addition, etc.) and the last change time through all attributes It is included.
[0056]
Next, a specific process at the peer that has changed the peer group attribute will be described. FIG. 16 is a sequence diagram showing the processing at the peer that has changed the peer group attribute, and FIG. 17 is a diagram showing the signal parameters between the functional units in this sequence.
[0057]
As shown in FIG. 16, at the change source peer, when a trigger or an update content of the peer group attribute information is given by a user, an agent or other means, the peer group attribute information collation /
[0058]
Next, the processing at the peer that has received the peer group attribute information change notification will be described. FIG. 18 is a sequence diagram illustrating a process when a peer group attribute information change notification is received, and FIG. 19 is a diagram illustrating signal parameters between respective functional units in this sequence.
[0059]
When a peer group attribute information change notification is received from a peer connected to the own peer, the P2P
[0060]
Next, a process in a case where a divided section or an unconnected section of a peer group is connected will be described. In this process, the above-described inconsistency in the peer group attribute information is detected and eliminated. FIG. 20 is a sequence diagram showing this processing, and FIG. 21 is a diagram showing signal parameters between the respective functional units in this sequence.
[0061]
The P2P
[0062]
<< 3rd Embodiment >>
Next, a description will be given of a method of detecting a division of a peer group and eliminating the division in a P2P network according to the present invention. The peer group is configured by the configuration method described in the first embodiment, and the peer group attribute information is updated by the update method in the second embodiment. Here, a method will be described in which a permanent peer that can be connected at any time from another peer is installed in a peer group, and this permanent peer periodically updates the check attribute information, thereby detecting the division of the peer group. . FIG. 22 shows how each peer recognizes the division by this method.
[0063]
The
[0064]
Next, a description will be given of how each peer resolves the division when the division of the own peer is detected in this way. FIG. 23 illustrates a situation in which a peer that has detected a break connects to a permanent peer and breaks the break.
[0065]
Assuming that all of the
[0066]
In general, P2P networks often have low scalability but do not assume much reliability. For example, with Gnutella, it is impossible to search all peers in the whole world, and if you find a peer that has the desired content and try to download the content, the peer has already left the network. Is possible. Also in JXTA, the appearance and disappearance of peers from the network without permission, the discarding, modification, and delay of messages are allowed and cannot be predicted.
[0067]
For this reason, in the present embodiment, an action is taken not only for all the peers, but only for the selected peer with a certain probability, so that the peer group has a certain certainty. A method is used in which it is determined that no division has occurred or that the peer group attributes do not match due to the division. That is, not all of the peers that have detected the disconnection connect to the permanent peer, but only the peers selected with a certain probability p (for example, p = 0.01) connect to the
[0068]
If only the inconsistency caused by the division is resolved, the peer connected to the permanent peer may disconnect the connection with the
[0069]
By this operation, as for the peers around the peer connected to the
[0070]
The selection of a peer to be connected to the permanent peer at a certain probability is performed autonomously by each peer based on a logic embedded in each peer and randomly selected at a certain probability. For the self-selection logic at this time, a method such as using a combination of a time stamp and a peer ID can be considered.
[0071]
The address on the network of the
[0072]
It is believed that the proper value for the probability p of choosing a peer will vary in relation to the size of the entire network. In a P2P network in which there is no server for centralized management, it is difficult to grasp the size of the entire network.
[0073]
(Equation 1)
[0074]
The permanent peer having such a relationship can redefine and change the values of the appropriate selection probability p and the cycle T in accordance with the magnitude of the connection frequency f.
[0075]
If, in a P2P network, means is provided that can count the number of peers in a range where the packet reaches by passing a specific packet (that is, a range that does not exceed the division), the count value is set to an appropriate selection probability. It can also be used for redefining the value of p or the period T.
[0076]
FIG. 24 is a block diagram showing a functional structure of a peer having a function of detecting the division of a peer and eliminating the division.
[0077]
The
[0078]
Further, in the peer group attribute
[0079]
Hereinafter, the processing in the
[0080]
FIG. 25 is a sequence diagram showing a process for updating the attribute for checking by the permanent peer, and FIG. 26 is a diagram showing the parameters of signals between the respective functional units in this sequence.
[0081]
In the permanent peer, the check attribute
[0082]
FIG. 27 is a sequence diagram showing processing in a normal peer that has received such a peer group attribute information change notification of a check attribute, and FIG. 28 is a diagram showing signal parameters between functional units in this sequence. It is.
[0083]
In the normal peer, when the peer group attribute information change notification is received from the connected peer similarly to the processing shown in FIG. 18, the P2P
[0084]
FIG. 29 is a sequence diagram showing a process when the normal peer detects the division, and FIG. 30 is a diagram showing signal parameters between the respective functional units in this sequence.
[0085]
All peers whose monitoring timer of the check attribute
[0086]
<< 4th Embodiment >>
Next, a description will be given of a second method for detecting the division of the peer group in the P2P network and eliminating the division. In the above-described third embodiment, a permanent peer is installed in a peer group, and this permanent peer periodically updates the check attribute information. In the fourth embodiment, however, the permanent peer checks The case in which the attribute for the application is not updated will be described. In this case, instead of not updating the attribute for checking by the permanent peer, each peer recognizes the division by itself and updates the attribute information for check that occurs naturally by each peer in the peer group, or resolves the division, or The inconsistency of peer group attribute information caused by the division is eliminated. FIG. 31 is a diagram showing the concept of the processing here. Also in this embodiment, the peer group is configured by the configuration method described in the first embodiment, and the peer group attribute information is updated by the update method in the second embodiment. Have been.
[0087]
In a non-partitioned network, if any peer changes the attribute information, the attribute information is updated at each peer, and the attribute information last update time of each peer in the network matches. However, when there is a division, some peers are not notified of the change of the attribute information, so the attribute information last update time of those peers is the same as before, and the attribute information last update time does not match. .
[0088]
Here, among the peers in the network, a peer selected with a certain self-probability reports peer group attribute information (attribute version) to the permanent peer at a fixed cycle. Then, the peer group attribute information of the permanent peer is compared with the peer group attribute information of its own peer, and if there is a mismatch, it is recognized that the division has occurred without fail. If they match, it can be determined that the fragmentation has not occurred with some certainty.
[0089]
If the self-selected peer recognizes the mismatch, it can resolve the mismatch in the attribute information by connecting to the permanent peer. When it is desired to prevent the information transmission from being disconnected, the connection with the permanent peer may be maintained. Then, the self-selected peer notifies neighboring peers of the change in the attribute information.
[0090]
The fourth embodiment is different from the third embodiment in that it cannot be said that if the peer group attribute information matches, the division does not occur reliably.
[0091]
FIG. 32 shows a functional structure of a peer in the fourth embodiment. The
[0092]
FIG. 33 is a sequence diagram showing a process in which the normal peer periodically checks the peer group attribute with the permanent peer in this embodiment, and FIG. 35 is a diagram showing signal parameters between the respective functional units in this sequence. is there.
[0093]
The peer group attribute information
[0094]
In the fourth embodiment, the processing sequence in which the permanent peer receives the peer connection request is the same as the sequence shown in FIG. 20, and the sequence in which the normal peer receives the peer group attribute change notification is shown in FIG. It is the same as the sequence shown.
[0095]
<< 5th Embodiment >>
Next, as a fifth embodiment of the present invention, a configuration capable of detecting a disconnection of a peer without installing a permanent peer will be described. In the fifth embodiment, instead of installing a fixed permanent peer, a token that can be moved between peers is used, and the peer holding the token uses the permanent token described in the third and fourth embodiments. I try to take a role as a peer. Therefore, in this case, regarding the processing of detecting the division of the peer, eliminating the division, and eliminating the mismatch of the attribute information, the “permanent peer” in the description of the third and fourth embodiments is changed to “token possession”. "Peer". Also in this embodiment, the peer group is configured by the configuration method described in the first embodiment, and the peer group attribute information is updated by the update method in the second embodiment. ing.
[0096]
The most different point of the token holding peer from the permanent peer is that when the token holding peer leaves the network or shifts to an environment where other peers cannot access such as inside a firewall, the token holding peer is stored. It has to be passed to other peers. Further, the token holding peer may pass the token to another peer at an arbitrary timing other than the above, such as after a certain period of time.
[0097]
FIG. 35 is a sequence diagram showing a process in which a token-holding peer passes a token to another peer, and FIG. 36 is a diagram showing signal parameters between functional units in this sequence.
[0098]
Each of the peers is provided with a token processing unit in order to pass the held token to another peer and receive the token from the other peer. When it becomes necessary to pass the token to another peer, the token processing unit of the token holding peer selects the peer to which the token is to be passed and acquires the address of the peer. The address of the token transfer destination peer may be obtained by an arbitrary method such as using a directory service, a broadcast, a local cache, or an arbitrary adjacent peer. Here, since the token transfer destination peer needs to be a peer that exists surely at that time, the token holding peer checks the existence of the transfer destination peer through the P2P
[0099]
Although the preferred embodiment of the present invention has been described above, a peer in the present invention is generally realized by a computer connected to a network and software running on the computer. That is, a program for realizing the functions of the above-described peers is read into a computer, and the program is executed, whereby the peer according to the present invention is realized and the method of the present invention is executed. These programs are read into a computer by a recording medium such as a magnetic tape or a CD-ROM, or via a network.
[0100]
【The invention's effect】
As described above, according to the present invention, the advantage of P2P is that there is no bottleneck and high scalability and that the network is configured as an aggregate of autonomously distributed peers, so that autonomous development is possible. Without losing the point, it is possible to manage peer group attributes in consideration of updating of peer group attributes while maintaining consistency among all peers of the peer group members, and in a P2P network. There is an effect that it is possible to detect and eliminate the likely network disconnection, and to detect and eliminate the inconsistency in the peer group attribute that may occur due to the disconnection.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining the occurrence of division of a peer group.
FIG. 2 is a diagram illustrating the occurrence of peer group segmentation due to factors such as firewalls and subnets.
FIG. 3 is a block diagram illustrating a functional configuration of a peer.
FIG. 4 is a diagram illustrating an example of a peer group attribute.
FIG. 5 is a diagram illustrating a new participation of a peer in a peer group.
FIG. 6 is a sequence diagram illustrating a first example of a sequence for newly joining a peer to a peer group.
FIG. 7 is a diagram showing signal parameters between respective functional units in the example shown in FIG. 6;
FIG. 8 is a sequence diagram illustrating a second example of a sequence for newly joining a peer to a peer group.
9 is a diagram illustrating parameters of signals between respective functional units in the example illustrated in FIG. 8;
FIG. 10 is a diagram illustrating a change of a peer group attribute and its propagation into a peer group.
FIG. 11 is a diagram illustrating a change of a peer group attribute and a state in which the change is propagated in the peer group.
FIG. 12 is a diagram conceptually illustrating a procedure for resolving inconsistency in peer group attribute information when there is a connection between peers.
FIG. 13 is a diagram illustrating a state in which the elimination of inconsistency in peer group attribute information is propagated within the peer group.
FIG. 14 is a diagram illustrating an example of an algorithm for resolving inconsistency in peer group attribute information.
FIG. 15 is a block diagram showing a functional configuration of a peer capable of changing / updating peer group attribute information and transmitting the information.
FIG. 16 is a sequence diagram illustrating a process performed by a peer that has changed a peer group attribute.
17 is a diagram showing signal parameters between the respective functional units in the sequence shown in FIG. 16;
FIG. 18 is a sequence diagram illustrating processing in a peer that has received a peer group attribute change notification.
FIG. 19 is a diagram showing parameters of signals between the respective functional units in the sequence shown in FIG. 18;
FIG. 20 is a sequence diagram of processing for detecting and eliminating mismatching of peer group attribute information.
21 is a diagram illustrating signal parameters between the functional units in the sequence illustrated in FIG. 20;
FIG. 22 is a diagram showing an outline of a method for detecting a disconnection of a peer by providing a permanent peer and setting a check attribute.
FIG. 23 is a diagram illustrating an outline of a procedure for canceling the division when the division of the own peer is detected.
FIG. 24 is a block diagram showing a functional structure of a peer having a function of detecting a division of a peer and eliminating the division.
FIG. 25 is a sequence diagram showing a check attribute update process in a permanent peer.
26 is a diagram illustrating parameters of signals between the respective functional units in the sequence illustrated in FIG. 25.
FIG. 27 is a sequence diagram showing processing when a normal peer receives a peer group attribute change notification.
FIG. 28 is a diagram illustrating parameters of signals between respective functional units in the sequence illustrated in FIG. 27;
FIG. 29 is a sequence diagram illustrating processing when a normal peer detects division.
30 is a diagram showing parameters of signals between respective functional units in the sequence shown in FIG. 29.
FIG. 31 is a diagram showing the concept of a process in which each peer recognizes the division without using a check attribute from a permanent peer, and eliminates the division and eliminates a mismatch between attributes.
FIG. 32 is a block diagram showing a functional configuration of a peer capable of self-recognizing division without using a check attribute from a permanent peer.
FIG. 33 is a sequence diagram showing a peer group attribute periodic collation process performed by a normal peer to a permanent peer.
FIG. 34 is a diagram showing parameters of signals between respective functional units in the sequence shown in FIG. 33.
FIG. 35 is a sequence diagram showing a process of transferring a token to another peer in the case of detecting a disconnection of a peer by using the token.
36 is a diagram illustrating signal parameters between respective functional units in the sequence illustrated in FIG. 35.
[Explanation of symbols]
1 peer
2 links
3 permanent peers
10 peer groups
21 subnet
22 Firewall
31 P2P communication processing unit
32 Peer Group Information Discovery Department
33 Peer group attribute holding area
34 Peer group attribute information collation / update processing unit
35 Check attribute regular update section
36 Check attribute change monitoring unit
37 Peer Group Attribute Information Periodic Matching Unit
Claims (19)
前記ピアグループのメンバであるすべてのピアが当該ピアグループの属性情報を各ピア内部に保持し、前記各ピアがその属性情報に従って自律的に動作し、
ピアが新規に前記ピアグループに参加する場合には、当該ピアは、参加を希望するピアグループの属性情報を取得して自ピア内部に保持し、
そののち、前記新規に参加したピアは、前記取得した属性情報にしたがって動作する、ピアグループの構成方法。In a P2P network, a method of configuring a peer group, which is an aggregate of peers and has attribute information as the aggregate,
All peers that are members of the peer group hold attribute information of the peer group inside each peer, and each peer operates autonomously according to the attribute information,
When a peer newly joins the peer group, the peer acquires attribute information of the peer group that the user desires to join and holds the attribute information inside its own peer,
Thereafter, the newly joined peer operates according to the acquired attribute information.
属性情報を変更するピアが、前記P2Pネットワークにおいて直接接続するピアにピアグループ属性情報変更通知を送信し、
前記ピアグループ属性情報変更通知を受信したピアは、当該ピアが保有する属性情報と、受信したピアグループ属性情報変更通知内のピアグループ属性変更情報を照合し、照合の結果、差分がある場合には、当該ピアが保有する属性情報を、前記ピアグループ属性変更情報の内容にしたがって書き換え、前記P2Pネットワークにおいて直接接続するピアのうち、前記受信したピアグループ属性情報変更通知の送信元であるピア以外のピアに対し、前記ピアグループ属性情報変更通知を転送する、
ピアグループの属性情報更新方法。In a P2P network, a peer group that is an aggregate of peers and has attribute information as an aggregate. All peers that are members of the peer group hold the attribute information inside each peer and follow the attribute information. In the peer group operating autonomously, a method of updating attribute information of the peer group to update the attribute information of the peer group,
A peer that changes attribute information sends a peer group attribute information change notification to peers directly connected in the P2P network;
The peer that receives the peer group attribute information change notification compares the attribute information held by the peer with the peer group attribute change information in the received peer group attribute information change notification, and as a result of the comparison, when there is a difference, Rewrites the attribute information held by the peer in accordance with the contents of the peer group attribute change information, and among peers directly connected in the P2P network, other than the peer that is the source of the received peer group attribute information change notification Forwarding the peer group attribute information change notification to the peers of
How to update peer group attribute information.
前記新たな直接接続に係るピアが、相互に保有する前記属性情報を交換し、
前記交換の結果、他ピアが、自ピアが保有しない種別の属性情報を保有している場合、自ピアが保有する属性情報に当該保有しない種別の属性情報を追加し、前記交換の結果、他ピアが、自ピアが保有する種別の属性情報を保有しているが属性値が異なる場合、属性情報とともに付与された整合解決情報を参照して、自ピアにてどちらの属性値を採用すべきか判定し、他ピアの属性値を採用する場合、自ピアが保有する属性情報を当該他ピアの属性値に変更し、
自ピアが保有する属性情報を変更した場合には、前記P2Pネットワークで直接接続するピアのうち、前記新たな直接接続の対象となったピアを除くピアに、ピアグループ属性情報変更通知を送信する、
請求項3に記載のピアグループの属性情報更新方法。When peers newly newly connect to each other in the P2P network,
Peers related to the new direct connection exchange the attribute information held by each other,
As a result of the exchange, if the other peer has attribute information of a type not owned by the own peer, the attribute information of the type not owned is added to the attribute information held by the own peer, and as a result of the exchange, If the peer has attribute information of the type owned by its own peer but the attribute values are different, which attribute value should be adopted by its own peer by referring to the matching resolution information given together with the attribute information When determining and adopting the attribute value of the other peer, change the attribute information held by the own peer to the attribute value of the other peer,
When the attribute information held by the own peer is changed, a peer group attribute information change notification is transmitted to the peers directly connected in the P2P network except for the peer to which the new direct connection is made. ,
The method for updating peer group attribute information according to claim 3.
前記ピアグループ内に、分断を検出するためのピアである検出用ピアを設け、前記検出用ピアは、分断チェックを目的とした特定のピアグループ属性の変更を第1の周期で行い、
前記ピアグループ内の各ピアは、前記特定のピアグループ属性の変更を監視し、前記第1の周期を超える所定の時間にわたって前記変更を検出しない場合にピアグループ分断と認識し、ピアグループ分断を認識した場合に、一定の確率で前記検出用ピアに接続することで、分断により生じた属性情報のピアグループ内での不一致を解消の方向に向かわせる、
ピアグループの分断検出・解消方法。In a P2P network, a peer group that is an aggregate of peers and has attribute information as an aggregate. All peers that are members of the peer group hold the attribute information inside each peer and follow the attribute information. In the peer group that operates autonomously, a method for detecting and eliminating the division of the peer group that detects and eliminates the division of the peer group,
In the peer group, a detection peer is provided which is a peer for detecting division, and the detection peer performs a change of a specific peer group attribute for the purpose of division check in a first cycle,
Each peer in the peer group monitors a change in the particular peer group attribute, and if the change is not detected for a predetermined time period exceeding the first period, recognizes that the change is a peer group disconnection, and determines the peer group disconnection. In the case of recognition, by connecting to the detection peer with a certain probability, the inconsistency in the peer group of the attribute information caused by the division is directed to the direction of resolution,
How to detect and resolve peer group fragmentation.
前記ピアグループ内に、分断を検出するためのピアである検出用ピアを設け、前記ピアグループ内の各ピアは、第1の周期ごとに一定の確率で、前記検出用ピアに接続することでピアグループの属性情報の照合を行い、もし、不一致がある場合には確実に分断が起きていると認識し、分断を認識した場合に、自ピアおよび前記検出用ピアが保有する属性情報を更新して、分断により生じた属性情報のピアグループ内での不一致を解消の方向に向かわせる、
ピアグループの分断検出・解消方法。In a P2P network, a peer group that is an aggregate of peers and has attribute information as an aggregate. All peers that are members of the peer group hold the attribute information inside each peer and follow the attribute information. In the peer group that operates autonomously, a method for detecting and eliminating the division of the peer group that detects and eliminates the division of the peer group,
In the peer group, a detection peer that is a peer for detecting a disconnection is provided, and each peer in the peer group connects to the detection peer with a certain probability every first cycle. The attribute information of the peer group is collated, and if there is a mismatch, it is recognized that the fragmentation has occurred.If the fragmentation is recognized, the attribute information held by the own peer and the detection peer is updated. Then, the inconsistency of the attribute information caused by the division within the peer group is directed to the direction of resolution,
How to detect and resolve peer group fragmentation.
前記P2Pネットワークではピアの集合体であって集合体としての属性情報を有するピアグループが構成され、
前記P2Pネットワークを経由して他ピアとの通信を行い、ネットワーク制御を行うP2P通信処理部と、
ピアグループの属性情報を格納する記憶領域と、
ピアグループのメンバピアアドレス情報を取得するピアグループ情報発見部と、を有し、
参加を希望するピアグループの属性情報を取得して前記記憶領域内に格納し、そののち、前記取得した属性情報にしたがって動作するピア。A peer used in a P2P network,
In the P2P network, a peer group is formed, which is an aggregate of peers and has attribute information as the aggregate.
A P2P communication processing unit that communicates with another peer via the P2P network and performs network control;
A storage area for storing peer group attribute information;
A peer group information discovery unit that acquires member peer address information of the peer group,
A peer that acquires attribute information of a peer group that desires to participate, stores the attribute information in the storage area, and then operates according to the acquired attribute information.
ピアグループ属性情報変更通知を受信した際に、前記記憶領域内の属性情報と、受信したピアグループ属性情報変更通知内のピアグループ属性変更情報を照合し、照合の結果、差分がある場合には、前記記憶領域内の属性情報を前記ピアグループ属性変更情報の内容にしたがって書き換え、前記P2Pネットワークにおいて直接接続するピアのうち、前記受信したピアグループ属性情報変更通知の送信元であるピア以外のピアに対し、前記ピアグループ属性情報変更通知を転送する、請求項11に記載のピア。A peer group attribute information matching / updating unit that performs peer group attribute information matching with another peer and updates attribute information in the storage area;
When the peer group attribute information change notification is received, the attribute information in the storage area is compared with the peer group attribute change information in the received peer group attribute information change notification. Rewriting attribute information in the storage area in accordance with the content of the peer group attribute change information, and among peers directly connected in the P2P network, peers other than the peer that is the source of the received peer group attribute information change notification The peer according to claim 11, wherein the peer group attribute information change notification is transferred to the peer.
ピアグループの属性情報を各ピアを保持して、その属性情報に従って自律的に動作する機能と、
新規にピアグループに参加する場合に、参加を希望するピアグループの属性情報を取得して保持する機能と、
前記取得した属性情報にしたがって動作する機能と、
を実現させるプログラム。A computer connected to a P2P network
A function that holds the attribute information of the peer group for each peer and operates autonomously according to the attribute information;
When newly joining a peer group, a function of acquiring and holding attribute information of a peer group desired to join,
A function that operates according to the acquired attribute information;
The program that realizes.
ピアグループの属性情報を保持する機能と、
ピアグループ属性情報変更通知を受信した際に、自己が保有する属性情報と、受信したピアグループ属性情報変更通知内のピアグループ属性変更情報とを照合する機能と、
照合の結果、差分がある場合には、自己が保有する属性情報を、前記ピアグループ属性変更情報の内容にしたがって書き換え、前記P2Pネットワークにおいて直接接続するピアのうち、前記受信したピアグループ属性情報変更通知の送信元であるピア以外のピアに対し、前記ピアグループ属性情報変更通知を転送する機能と、
を実現させるプログラム。A computer connected to a P2P network
A function to hold the attribute information of the peer group,
When receiving the peer group attribute information change notification, a function of comparing the attribute information held by itself with the peer group attribute change information in the received peer group attribute information change notification,
If there is a difference as a result of the comparison, the attribute information held by itself is rewritten according to the contents of the peer group attribute change information, and the peer group attribute information received among the directly connected peers in the P2P network is changed. A function of transferring the peer group attribute information change notification to a peer other than the peer that is the source of the notification,
The program that realizes.
ピアグループの属性情報を保持する機能と、
新規の直接接続があった場合に、相手方の属性情報を交換する機能と、
前記交換の結果、前記相手方が、自己が保有しない種別の属性情報を保有している場合、自己の保有する属性情報に当該保有しない種別の属性情報を追加する機能と、
前記交換の結果、前記相手方が、自己が保有する種別の属性情報を保有しているが属性値が異なる場合、属性情報とともに付与された整合解決情報を参照して、自己にてどちらの属性値を採用すべきか判定し、前記相手方の属性値を採用する場合、自己の属性情報を当該相手方の属性値に変更する機能と、
自己の保有する属性情報を変更した場合には、前記P2Pネットワークで直接接続するピアのうち、前記相手方を除くピアに、ピアグループ属性情報変更通知を送信する機能と、
を実現させるプログラム。A computer connected to a P2P network
A function to hold the attribute information of the peer group,
A function to exchange the attribute information of the other party when there is a new direct connection,
As a result of the exchange, when the other party has attribute information of a type that the other party does not own, a function of adding the attribute information of the type that the other party does not own to the attribute information that the other party owns,
As a result of the exchange, if the other party has the attribute information of the type owned by itself, but the attribute value is different, refer to the matching solution information attached together with the attribute information, and determine which attribute value by itself. It is determined whether or not to adopt, when adopting the attribute value of the other party, a function of changing its own attribute information to the attribute value of the other party,
A function of transmitting a peer group attribute information change notification to the peers directly connected to the P2P network except for the other party when the attribute information held by the own device is changed,
The program that realizes.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003045864A JP2004260279A (en) | 2003-02-24 | 2003-02-24 | Peer group configuration method, attribute information updating method, partition detection method, peer, and program for executing the method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003045864A JP2004260279A (en) | 2003-02-24 | 2003-02-24 | Peer group configuration method, attribute information updating method, partition detection method, peer, and program for executing the method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004260279A true JP2004260279A (en) | 2004-09-16 |
Family
ID=33112569
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003045864A Pending JP2004260279A (en) | 2003-02-24 | 2003-02-24 | Peer group configuration method, attribute information updating method, partition detection method, peer, and program for executing the method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004260279A (en) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006074789A (en) * | 2004-09-01 | 2006-03-16 | Thomson Licensing | Method and elements for managing peer group elements |
| JP2007310460A (en) * | 2006-05-16 | 2007-11-29 | Konica Minolta Holdings Inc | Information processor, information providing method, and computer program |
| JP2008306371A (en) * | 2007-06-06 | 2008-12-18 | Nippon Telegr & Teleph Corp <Ntt> | Network management system, network diagnostic device, and network diagnostic program |
| JP2009512062A (en) * | 2005-10-13 | 2009-03-19 | マイクロソフト コーポレーション | Extensible metadata |
| JP2009217463A (en) * | 2008-03-10 | 2009-09-24 | Fujitsu Ltd | Information processor, information processing program, and method |
| JP2010504585A (en) * | 2006-09-21 | 2010-02-12 | サムスン エレクトロニクス カンパニー リミテッド | Apparatus and method for providing domain information |
| JP2012050020A (en) * | 2010-08-30 | 2012-03-08 | Brother Ind Ltd | Communication system, information processing device, information processing program, and location information registration method |
| JP2013514591A (en) * | 2009-12-17 | 2013-04-25 | アルカテル−ルーセント | Method and apparatus for decomposing a peer-to-peer network and using the decomposed peer-to-peer network |
| JP2023045424A (en) * | 2021-09-22 | 2023-04-03 | 株式会社日立製作所 | DISTRIBUTED TRANSACTION SYSTEM AND DISTRIBUTED TRANSACTION PROCESSING METHOD IN DISTRIBUTED TRANSACTION SYSTEM |
-
2003
- 2003-02-24 JP JP2003045864A patent/JP2004260279A/en active Pending
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006074789A (en) * | 2004-09-01 | 2006-03-16 | Thomson Licensing | Method and elements for managing peer group elements |
| JP2009512062A (en) * | 2005-10-13 | 2009-03-19 | マイクロソフト コーポレーション | Extensible metadata |
| JP2007310460A (en) * | 2006-05-16 | 2007-11-29 | Konica Minolta Holdings Inc | Information processor, information providing method, and computer program |
| JP2010504585A (en) * | 2006-09-21 | 2010-02-12 | サムスン エレクトロニクス カンパニー リミテッド | Apparatus and method for providing domain information |
| US8526445B2 (en) | 2006-09-21 | 2013-09-03 | Samsung Electronics Co., Ltd. | Apparatus and method for providing domain information |
| JP2008306371A (en) * | 2007-06-06 | 2008-12-18 | Nippon Telegr & Teleph Corp <Ntt> | Network management system, network diagnostic device, and network diagnostic program |
| JP2009217463A (en) * | 2008-03-10 | 2009-09-24 | Fujitsu Ltd | Information processor, information processing program, and method |
| JP2013514591A (en) * | 2009-12-17 | 2013-04-25 | アルカテル−ルーセント | Method and apparatus for decomposing a peer-to-peer network and using the decomposed peer-to-peer network |
| JP2012050020A (en) * | 2010-08-30 | 2012-03-08 | Brother Ind Ltd | Communication system, information processing device, information processing program, and location information registration method |
| JP2023045424A (en) * | 2021-09-22 | 2023-04-03 | 株式会社日立製作所 | DISTRIBUTED TRANSACTION SYSTEM AND DISTRIBUTED TRANSACTION PROCESSING METHOD IN DISTRIBUTED TRANSACTION SYSTEM |
| JP7284791B2 (en) | 2021-09-22 | 2023-05-31 | 株式会社日立製作所 | DISTRIBUTED TRANSACTION SYSTEM AND DISTRIBUTED TRANSACTION PROCESSING METHOD IN DISTRIBUTED TRANSACTION SYSTEM |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7493363B2 (en) | Peer-to-peer group management and method for maintaining peer-to-peer graphs | |
| KR101183050B1 (en) | Distributed Hashing Mechanism for self-organizing networks | |
| US7430747B2 (en) | Peer-to peer graphing interfaces and methods | |
| US7596625B2 (en) | Peer-to-peer grouping interfaces and methods | |
| US8819237B2 (en) | Method for monitoring and providing information over a peer to peer network | |
| US7336623B2 (en) | Peer-to-peer cloud-split detection and repair methods | |
| JP2009543188A (en) | Inter-region communication within a rendezvous federation | |
| JP2009543447A (en) | Inter-region communication within a rendezvous federation | |
| CN110754070A (en) | Fast propagation of recent transactions over blockchain networks | |
| JP2004260279A (en) | Peer group configuration method, attribute information updating method, partition detection method, peer, and program for executing the method | |
| WO2005119477A2 (en) | Object schemas and packet chain protocols for managing digital content routing and distribution in peer-to-peer dynamic connection structures | |
| El-Ansary et al. | An overview of structured overlay networks | |
| Banks et al. | Davis social links: integrating social networks with internet routing | |
| Awerbuch et al. | Robust distributed name service | |
| Jelasity et al. | Towards secure epidemics: Detection and removal of malicious peers in epidemic-style protocols | |
| Yoon | AccountNet: Accountable Data Propagation Using Verifiable Peer Shuffling | |
| Tetarave et al. | S-Gossip: Security enhanced gossip protocol for unstructured P2P networks | |
| Richa et al. | Overlay networks for peer-to-peer networks | |
| Bejan et al. | Self-optimizing DHTs using request profiling | |
| Karaata et al. | An optimal inherently stabilizing routing algorithm for star P2P overlay networks | |
| Takabatake et al. | A p2p file sharing technique by indexed-priority metric | |
| Lin et al. | A P2P framework for developing bioinformatics applications in dynamic cloud environments | |
| Ktari et al. | Exploiting power-law node degree distribution in chord overlays | |
| Havryluk et al. | Peer-to-Peer Semantic Search Engine | |
| Tan et al. | A three-layer routing protocol of structured peer-to-peer overlay networks |