2003年度 データベース論

JXTA総まとめ
P2P特論
最終回 / 2005-07-13
1
JXTAの基本コンセプト
2
JXTAとオーバレイ・ネットワーク



D・E・Fは、物理ネット
ワークを超えて、(仮想
的に)P2Pネットワークに
参加している。
この仮想的なネットワー
クを「オーバレイ・ネット
ワーク」と言う。
JXTAを利用して、オーバ
レイ・ネットワークを構築
できる。
3
Peer

Peer = ネットワーク
上のデバイス

PC, Work station,
PDA, 携帯電話など
4
Peer Group

Peer は Peer Group
に参加できる


ひとつの Peer は複数
の Peer Group に参
加できる
Peer Group が P2Pの
サービスに相当する

例えばファイル共有や
メッセンジャーなど
5
Pipe



Peer 間でのメッセージ
の送受信に使用する。
input pipe (入力パイ
プ) と output pipe (出
力パイプ) がある。
Unix のパイプ (“|”) と
考え方は同じ。
6
ID



JXTAで使われる資源には、IDが振られる。
資源 = Peer, Peer Group, Pipe など
Peer の ID の例:
urn:jxta:uuid59616261646162614A78746150325033
88D9B1D1048B4CE99A7CB17A2CB3E5F
703
7
Advertisements (告知)



Peer, Peer Group, Pipe などの資源につい
て記述したもの。メタデータ。
JXTAでの資源の発見 = Advertisement
の発見
Advertisement は XML で書かれる。
8
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>mypipe</Name>
</jxta:PipeAdvertisement>
9
パイプ告知を
用いた通信
10
Peerの種類 (1)

Edge Peer (エッジ・ピア)


RendezVous Peer (ランデブー・ピア)



平民。通信を行う。
Advertisement のインデックスを管理。
他のPeerからの問い合わせに対応する。
Relay Peer (リレー・ピア)

ファイアウォールやNATをまたいで通信する。
11
Peerの種類 (2)

Edge Peer と RendezVous Peer は固定的
な役割ではない。



Edge Peer が RendezVous Peer に。
また、RendezVous が Edge に。
ある Peer Group では RendezVous でも、
別の Peer Group では Edge の場合があ
る。
12
JXTAでの検索と
RendezVous Peer
13
JXTAでの検索


基本的に Advertisement を探索する
必要な Advertisement をいかにして探す
か?
14
JXTA 1.0 での検索


PeerGroup 内のすべての Peer へのブ
ロードキャスト
「フラッディング (flooding)」


水浸しにする、という意味
トラフィックが大きくなる

ネットワークやPeerへの負荷が大きい
15
JXTA 2.0 での検索

SRDI を用いる


Shared Resource Distributed Index の採用
フラッディングは用いないので、基本的に
パフォーマンスが向上する
16
JXTAのネットワーク


ひとつの
RendezVous Peer に
複数の Edge Peer が
ぶらさがっている。
RendezVous Peer 同
士が接続されている。
17
RendezVous Peer (1)





Edge Peer の機能をすべて持つ。
Advertisement のインデックスを管理。
Edge Peer からの要求に応じてインデック
スを検索。
検索要求をほかの RendezVous Peer に
転送する。
他のPeerからの問い合わせに対応する。
18
RendezVous Peer (2)

Edge Peer と RendezVous Peer は固定的
な役割ではない。



Edge Peer が RendezVous Peer になることが
ある。
また、RendezVous が Edge に。
ある Peer Group では RendezVous でも、
別の Peer Group では Edge の場合があ
る。
19
RendezVous Peer (3)

RendezVous Peer では、Advertisement
のハッシュ表(の一部)を管理する



キーは Advertisement のハッシュ値
値は Advertisement を持っている Peer の
ID
つまり、RendezVous Peer で Advertisement
自体を保持している訳ではない
20
SRDI
21
SRDI とは



Shared Resouce Distributed Index
Advertisement のインデックスを分散管理
する方法
JXTA 2.0 から採用
22
ハッシュ表




「キー」と「値」がペアになっている
データ構造
「キー」を元に「ハッシュ値」を作成
する
キーの重複はない。
Java では、java.util.Map を実装し
ている java.util.HashMap が該当
する
23
RendezVous Peer での
Advertisement の管理

RendezVous Peer では、Advertisement
のハッシュ表の一部を管理する


キーは Advertisement のハッシュ値
値は Advertisement を持っている Peer の
ID
24
DHT

Distributed Hash Table = 分散ハッシュ
テーブル


ひとつのハッシュテーブルを分散して管理する
ことで、負荷の集中をさける
実装はさまざま

Chord, CAN, Pastry, Tapestry
25
SRDI




ハッシュテーブルを分散して管理する
分散されたハッシュテーブルをきっちりと管
理するのではなく、
ゆるやかに管理して、
必要があれば探しにいく
26
JXTAでのadvertisement検索の
シナリオ
27
RPV (1)




RendezVous Peer View
ある RendezVous Peer
から見える RendezVous
Peer 群。
Peer の ID でソートされ
ている。
Peer ID は、物理ネット
ワーク上の位置とは無関
係
28
パイプ告
知の公開
29
告知のインデックスを
どこに格納するか? (1)

RendezVous Peer
では、告知のイン
デックス情報を管理
する


告知そのものを管
理するわけではない
adv1 のインデック
スを、R5で管理する
とは限らない
30
告知のインデックスを
どこに格納するか? (2)



RPV 中の R1 〜 R6 のどれかで
インデックス情報を管理する
R5では、SRDI の関数を用いて、
どこで adv1 のインデックス情報
を管理するか計算する
計算の結果、R2 に決まったとす
る

H(adv1) = R2
31
インデックス情報の格納 (1)


R5 は R2 にイン
デックス情報を管理
してもらう。
R2だけでなく、両隣
の R1 と R3 にも管
理してもらう。
32
インデック
ス情報の
格納 (2)
33
インデックス情報の格納 (3)

こうすることによっ
て、ネットワークの
構成が変化しても、
告知が発見されや
すくなる

R2 が脱退した場合
など
34
インデックス情報の格納 (4)


このようにして、すべての告知(のインデッ
クス情報) は、RPV中のどこかの
RendezVous Peer で管理される。
RPV 全体で、ひとつのハッシュ表を管理す
る。
35
インデック
ス情報の
格納 (5)
36
告知の
探索
37
R2の脱
退による
影響 (1)
38
R2の脱退による影響 (2)


adv1 のインデックス
情報は、R2のほかに
もR1, R3 で管理
R2 がいなくなっても、
もとのR3 (現R2) に
よって adv1 を探し出
せる
39
RPVの
構成が
変化(1)
40
RPVの構成が変化(2)



H(adv1) = R2 のとき、
R2にインデックス情報
が見つからなかった
ら、”walk” が起こる。
up 方向と down 方向
がある。
最大ホップ数が決
まっている(はず)。
41
RPV (2)


すべての
RendezVous Peer が、
同じ RPV を持ってい
なくてもよい。
図では R1のRPV と
R4 の RPV が同じで
はない。
42
RPV (3)


R1とR4が同じRPVを
持つことを目指す
でも、あまり頑張りす
ぎない。
43