2003年度 データベース論

RendezVous Peer (2)
P2P特論 (ソフトウェア特論)
第9回 / 2005-06-15
1
きょうの目標

RendezVous Peer の概要について理解す
る。
2
JXTAネットワークと
RendezVous Peer
3
Advertisements (告知)



Peer, Peer Group, Pipe などの資源につい
て記述したもの。メタデータ。
JXTAでの資源の発見 = Advertisement
の発見
Advertisement は XML で書かれる。
4
Advertisements (告知)
パイプ告知の例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jxta:PipeAdvertisement>
<jxta:PipeAdvertisement
xmlns:jxta="http://jxta.org">
<Id>
urn:jxta:uuid59616261646162614E504720503250330937A65BF6C641
0E923799B39ED9B20C04
</Id>
<Type>JxtaUnicast</Type>
<Name>tomoharuPipe</Name>
</jxta:PipeAdvertisement>
5
JXTAでの検索


基本的に Advertisement を探索する
必要な Advertisement をいかにして探す
か?
6
JXTA 1.0 での検索


PeerGroup 内のすべての Peer へのブ
ロードキャスト
「フラッディング (flooding)」


水浸しにする、という意味
トラフィックが大きくなる

ネットワークやPeerへの負荷が大きい
7
JXTA 2.0 での検索

SRDI を用いる


Shared Resource Distributed Index の採用
フラッディングは用いないので、基本的に
パフォーマンスが向上する
8
JXTAの3つのPeer

Edge Peer (エッジ・ピア)


Relay Peer (リレー・ピア)


平民。通信を行う。
ファイアウォールやNATをまたいで通信する。
RendezVous Peer (ランデブー・ピア)


Advertisement のインデックスを管理。
他のPeerからの問い合わせに対応する。
9
JXTAのネットワーク (1)
10
JXTAのネットワーク (2)


ひとつの
RendezVous Peer に
複数の Edge Peer が
ぶらさがっている。
RendezVous Peer 同
士が接続されている。
11
RendezVous Peer (1)





Edge Peer の機能をすべて持つ。
Advertisement のインデックスを管理。
Edge Peer からの要求に応じてインデック
スを検索。
検索要求をほかの RendezVous Peer に
転送する。
他のPeerからの問い合わせに対応する。
12
RendezVous Peer (2)

Edge Peer と RendezVous Peer は固定的
な役割ではない。



Edge Peer が RendezVous Peer になることが
ある。
また、RendezVous が Edge に。
ある Peer Group では RendezVous でも、
別の Peer Group では Edge の場合があ
る。
13
RendezVous Peer (3)

RendezVous Peer では、Advertisement
のハッシュ表(の一部)を管理する



キーは Advertisement のハッシュ値
値は Advertisement を持っている Peer の
ID
つまり、RendezVous Peer で Advertisement
自体を保持している訳ではない
14
ハッシュ表




「キー」と「値」がペアになって
いるデータ構造
「キー」を元に「ハッシュ値」を
作成する
キーの重複はない。
Java では、java.util.Map を
実装している
java.util.HashMap が該当す
る
15
Advertisement の公開と発見
16
(1) Pipe Advertisement の作成
17
(2) Pipe Advertisement の公開
18
(3) ハッシュ値の管理
19
(4) Pipe告知の問い合わせ
20
(5) 該当する告知を探索
21
(6) 該当する告知を発見
22
(7) EG1 に問い合わせ内容を
送信
23
(8) Pipe告知を直接送信
24
SRDI
25
SRDI とは



Shared Resouce Distributed Index
Advertisement のインデックスを分散管理
する方法
JXTA 2.0 から採用
26
ハッシュ表




「キー」と「値」がペアになっている
データ構造
「キー」を元に「ハッシュ値」を作成
する
キーの重複はない。
Java では、java.util.Map を実装し
ている java.util.HashMap が該当
する
27
RendezVous Peer での
Advertisement の管理

RendezVous Peer では、Advertisement
のハッシュ表の一部を管理する


キーは Advertisement のハッシュ値
値は Advertisement を持っている Peer の
ID
28
DHT

Distributed Hash Table = 分散ハッシュ
テーブル


ひとつのハッシュテーブルを分散して管理する
ことで、負荷の集中をさける
実装はさまざま

Chord, CAN, Pastry, Tapestry
29
SRDI




ハッシュテーブルを分散して管理する
分散されたハッシュテーブルをきっちりと管
理するのではなく、
ゆるやかに管理して、
必要があれば探しにいく
30