RendezVous Peer (4) ソフトウェア特論 (P2P特論) 第11回 / 2005-07-06 告知の管理と検索のシナリオ パイプ告 知の公開 告知のインデックスを どこに格納するか? (1) RendezVous Peer では、告知のイン デックス情報を管理 する 告知そのものを管 理するわけではない adv1 のインデック スを、R5で管理する とは限らない 告知のインデックスを どこに格納するか? (2) RPV 中の R1 〜 R6 のどれか でインデックス情報を管理する R5では、SRDI の関数を用いて、 どこで adv1 のインデックス情報 を管理するか計算する 計算の結果、R2 に決まったとす る H(adv1) = R2 インデックス情報の格納 (1) R5 は R2 にイン デックス情報を管理 してもらう。 R2だけでなく、両隣 の R1 と R3 にも管 理してもらう。 インデックス情報の 格納 (2) インデックス情報の格納 (3) こうすることによっ て、ネットワークの 構成が変化しても、 告知が発見されや すくなる R2 が脱退した場合 など インデックス情報の格納 (4) このようにして、すべての告知(のインデッ クス情報) は、RPV中のどこかの RendezVous Peer で管理される。 RPV 全体で、ひとつのハッシュ表を管理 する。 インデック ス情報の 格納 (5) 告知の 探索 R2の脱 退による 影響 (1) R2の脱退による影響 (2) adv1 のインデックス 情報は、R2のほかに もR1, R3 で管理 R2 がいなくなっても、 もとのR3 (現R2) に よって adv1 を探し出 せる RPVの 構成が 変化(1) RPVの構成が変化(2) H(adv1) = R2 のとき、 R2にインデックス情 報が見つからなかっ たら、”walk” が起こる。 up 方向と down 方向 がある。 最大ホップ数が決 まっている(はず)。 JXTA Shell と RendezVous Peer ここでの目標 JXTA Shell で RendezVous Peer を使っ てみる。 ひとつめのPeerで 現在の Peer Group を確認する JXTA>whoami -g <PeerGroup>NetPeerGroup</PeerGroup> <Description>default Net Peer Group</Description> <PeerGroupId>urn:jxta:jxta-NetGroup</PeerGroupId> JXTA> whoami -g コマンドで、所属している Peer Group の 情報を出力する。 JXTA では、デフォルトで NetPeerGroup という Peer Group に参加している rdvstatus コマンド (1) JXTA>rdvstatus rdvstatus コマンドは、 Rendezvous Status: ______________ 現在の PeerGroup Current configuration : EDGE の RendezVous Peer View : Peer に関する情報を "JXTA.ORG 120:9701/9700" A P t [32/20] (DOWN) 表示するコマンド Rendezvous Connections : この Peer は Edge JXTA.ORG 120:9701/9700 C : 70794 / -19206 Peer であることがわ Rendezvous Disconnections : かる [None] JXTA> rdvstatus コマンド (2) Edge Peer は、ひと つの RendezVous Peer に接続される “JXTA.ORG” という RendezVous Peer に接続されている JXTA>rdvstatus Rendezvous Status: ______________ Current configuration : EDGE Peer View : "JXTA.ORG 120:9701/9700" A P t [32/20] (DOWN) Rendezvous Connections : JXTA.ORG 120:9701/9700 C : 70794 / -19206 Rendezvous Disconnections : [None] JXTA> Peer Group の作成と参加 JXTA>tomoharu1GroupAdv = newpgrp -n tomoharu1Group JXTA>join -d tomoharu1GroupAdv tomoharu1GroupAdv を作成して、このPeer Group に参加する rdvstatus コマンドを再度実行 この Peer は Edge Peer である。 どの RendezVous Peer とも繋がってい ない いま作ったばかりの Peer Group だから JXTA>rdvstatus Rendezvous Status: __________________ Current configuration : EDGE Peer View : [None] Rendezvous Connections : [None] Rendezvous Disconnections : [None] 2つめのPeerで PeerGroup の発見と参加 JXTA>groups -r # groups - Discovery message sent. JXTA>groups group0: name = tomoharu1Group JXTA>join -d group0 ひとつめのPeerで作った tomoharu1Group を発見し、 参加する ここでも rdvstatus コマンドを実行 この Peer は Edge Peer である。 どの RendezVous Peer とも繋がってい ない まだ、RendezVous Peer が存在しないか ら JXTA>rdvstatus Rendezvous Status: __________________ Current configuration : EDGE Peer View : [None] Rendezvous Connections : [None] Rendezvous Disconnections : [None] ひとつめのPeerを RendezVous Peer にする JXTA>rdv -rdv rdvコマンドは、「RendezVous サービス」 を利用するためのコマンド -rdv オプションで、この Peer を現在の Peer Group での RendezVous Peer に する。 ひとつめのPeerで rdvstatus コマンドを実行 (1) この Peer は RendezVous である。 JXTA>rdvstatus Rendezvous Status: __________________ Current configuration : RENDEZVOUS Peer View : [None] Rendezvous Client Connections : tomoharu-peer2 C : 1193902 ひとつめのPeerで rdvstatus コマンドを実行 (2) この RendezVous には、クライア ントとして tomoharupeer2 が接続 されている。 JXTA>rdvstatus Rendezvous Status: __________________ Current configuration : RENDEZVOUS Peer View : [None] Rendezvous Client Connections : tomoharu-peer2 C : 1193902 2つめのPeerで rdvstatus コマンドを実行 この Peer の RendezVous Peer として、 tomoharupeer1 (ひとつ めのPeer) が 表示されてい る。 JXTA>rdvstatus Rendezvous Status: __________________ Current configuration : EDGE Peer View : "tomoharu-peer1" A P t [37/28] (UP) Rendezvous Connections : tomoharu-peer1 C : 1162820 / 862820 Rendezvous Disconnections : [None] 3つめのPeerで PeerGroup の発見と参加 JXTA>groups -r # groups - Discovery message sent. JXTA>groups group0: name = tomoharu1Group JXTA>join -d group0 ひとつめのPeerで作った tomoharu1Group を発見し、 参加する 3つめのPeerで rdv -rpv コマンドを実行してみる JXTA>rdv -rpv tomoharu-peer1 -rpv オプションは、この Peer から見た RendezVous Peer View (RPV) を一覧表 示するコマンド tomoharu-peer1 (ひとつめのPeer) が表 示された ひとつめのPeerで rdvstatus コマンドを実行 この RendezVous のクライアント には tomoharupeer2 と tomoharupeer3 がある。 JXTA>rdvstatus Rendezvous Status: __________________ Current configuration : RENDEZVOUS Peer View : [None] Rendezvous Client Connections : tomoharu-peer3 C : 1155672 tomoharu-peer2 C : 875509 3つめのPeerを RendezVous Peer にする 3つめの Peer も RendezVous Peer になった JXTA>rdv -rdv JXTA>rdvstatus Rendezvous Status: __________________ Current configuration : RENDEZVOUS Peer View : "tomoharu-peer1" A P t [6/2] (UP) Rendezvous Client Connections : [None] ひとつめのPeerで rdvstatus コマンドを実行 クライアントが ひとつだけに なった JXTA>rdvstatus Rendezvous Status: __________________ Current configuration : RENDEZVOUS Peer View : "tomoharu-peer3" A P t [81/17] (DOWN) Rendezvous Client Connections : tomoharu-peer2 C : 712844 rdvstatus -v コマンド (1) Peer ID を含めた詳細な情報が表示され る。 rdvstatus -v コマンド (2) JXTA>rdvstatus -v Rendezvous Status: __________________ Current configuration : RENDEZVOUS Peer View : urn:jxta:uuid59616261646162614A787461503250333F68C9CC8C8A4F1F85259D1 9FEC0ED3A03 "tomoharu-peer3" A P t [12404/5] (DOWN) Rendezvous Client Connections : urn:jxta:uuid59616261646162614A787461503250338E7494D66D464E5A9126BE0 722DA820303 tomoharu-peer2 C : 768571 2つめのPeerで rdv -rpv コマンドを実行してみる JXTA>rdv -rpv tomoharu-peer3 tomoharu-peer1 RendezVous Peer が2つになった
© Copyright 2024 ExpyDoc