kibayos-PIAX & SkipGraph-071207

52
2007/12/7 情報処理学会関西支部講演会 技術紹介: 技術紹介: P2Pエージェントプラットフォーム PIAX 構造化オーバレイ Skip Graph 吉田 吉田 , 大阪大学(招聘研究員) 大阪大学 大阪大学

Transcript of kibayos-PIAX & SkipGraph-071207

Page 1: kibayos-PIAX & SkipGraph-071207

2007/12/7 情報処理学会関西支部講演会

技術紹介:技術紹介: P2Pエージェントプラットフォーム PIAX と

構造化オーバレイ Skip Graph

吉田 幹 (株)ビービーアール吉田 幹 (株)ビ ビ ア ル,大阪大学(招聘研究員)

大阪大学大阪大学

Page 2: kibayos-PIAX & SkipGraph-071207

AgendaPIAX

設計コンセプト設計コンセプト

アーキテクチャ

APIAPI

Skip GraphSkip ListSkip ListSkip Graph関連研究関連研究

トピック

Multi-key Skip GraphMulti-key Skip Graphを使ったオーバレイの実装

2

Page 3: kibayos-PIAX & SkipGraph-071207

P2Pエ ジ ントプラ トフォ ム PIAXP2Pエージェントプラットフォーム PIAX

※PIAXの一部は、総務省委託研究「ユビキタスネットワーク認証・エージェ※PIAXの 部は、総務省委託研究 ビキタスネットワ ク認証 ジェント技術の研究開発」の一環として開発されたものです

Page 4: kibayos-PIAX & SkipGraph-071207

共通プラットフォームのニーズ

ユビキタスネットワーク

PCに加え 携帯電話 PDA 家電機器 自動車 センサPCに加え、携帯電話、PDA、家電機器、自動車、センサ、ロボット、ウェアラブルなど、多種多様のデバイスがネットワークに接続

3C(Computing, Connectivity, Contents) everywhere

課題課題

大量のオブジェクトから必要なものを瞬時に発見する

発見したオブジェクトを使って高度なサービスを構成する発見したオブジェクトを使って高度なサ ビスを構成する

ユ ザの位置や 情報間の関係に基づくオブジ クトのユ ザの位置や 情報間の関係に基づくオブジ クトのユーザの位置や、情報間の関係に基づくオブジェクトの発見と連携をスケーラブルに実現するための

共通プラットフォームが必要

ユーザの位置や、情報間の関係に基づくオブジェクトの発見と連携をスケーラブルに実現するための

共通プラットフォームが必要

4

共通プラットフォ ムが必要共通プラットフォ ムが必要

Page 5: kibayos-PIAX & SkipGraph-071207

ユビキタスサービスの実現イメージ

PIAXは共通プラットフォームとして機能

StreamingNavigation

ReputationSharing

Recommendation

ShoppingAssistantStreaming Recommendation

Various ubiquitous applications

Agents

ss sta t

P2P OverlayNetwork

PIAX

g

Flexible Computingby Mobile AgentsScalable Messaging

by P2P OverlayPeer

by P2P Overlay

ProfilesReputations

5

UsersDevicesContentsSensorsReputations

Page 6: kibayos-PIAX & SkipGraph-071207

近傍性、近接性と相互作用

<ユビキタスコンピューティングの処理の流れ>

1. ユーザ位置を同定ザ位置を同定

2. 近傍、近接オブジェクトの探索近傍に位置するオブジェクト⇒ 物理空間における近傍性

仮想空間上に蓄積された関連性のあるオブジェクト⇒ 意味空間における近接性⇒ 意味空間における近接性

3. 探索されたオブジェクト(複数のサービス主体と能動的オブジェクト)の相互連携によりサービスを実現ジ クト)の相互連携によりサ ビスを実現

「ユビキタスサービスは、ユーザ(群)とその近傍、近接

にあるオブジェクト間における相互作用により実現される」

「ユビキタスサービスは、ユーザ(群)とその近傍、近接

にあるオブジェクト間における相互作用により実現される」

6

Page 7: kibayos-PIAX & SkipGraph-071207

ユビキタスP2Pサービス

セマンティックWebとP2Pシステムの進化融合形セマンティックWebサービスから見れば、P2P拡張見 、 張

P2Pシステムから見れば、第4世代P2Pとして知識高度化

Web Services

Semantic Web Semantic WebServices

UbiquitousP2P Service

Hybrid P2P Pure P2PUnstructured

StructuredOverlay

1st generation 2nd generation 3rd generation

7

1st generation 2nd generation 3rd generation

Page 8: kibayos-PIAX & SkipGraph-071207

P2Pエージェントプラットフォーム PIAXユビキタスP2Pサービスの1つの実現形

P2P Interactive Agent eXtentions の略P2P Interactive Agent eXtentions の略(エージェントの相互作用を表現)

P2PエージェントP2Pネットワーク上に分散

Agents

P2Pネットワ ク上に分散する相互連携性と自律性を持ったオブジェクト

discovery power

サービス主体と能動的オブジェクトを含めたオブジェクトを表現

P2P Overlay Networkクトを表現

オーバレイの持つ強力な資源探索機能を活用することで、“what to find” をス

8

ケーラブルに実現

Page 9: kibayos-PIAX & SkipGraph-071207

Discovery Messagingオーバレイによって強化されたP2Pエージェントの持つ新しいメッセージング機構

“what to find” を実現するクエリ条件が “what” に相当

擬似言語で表現すると、(b)を実現することになる(a) send(destinationAddress, message);(b) d( C d )(b) send(queryCondition, message);

次のようなク リ条件なら 指定された地理的矩形に含まれ次のようなクエリ条件なら、指定された地理的矩形に含まれ、メソッド getTemperature を持つエージェントがメッセージング対象となるグ対象となる

in rectangle(135.0, 35.0, 1.0, 1.0) andhas getTemperature method

9

Page 10: kibayos-PIAX & SkipGraph-071207

PIAXのアーキテクチャ (1)

Ubiquitous Applications

- Context-aware Bayesian- RDF DB

Poe (Prolog Engine)

Agent library・・・

- Poe (Prolog Engine)・・・

ppor

t

LL-Net

P2P AgentsJSONP-RPC

Discovery Messaging

ecur

e Su DHT

ALMplug

Multi-Overlay

y g g

Auth

, Se ALMplug-

insRPC

Social-NetOverlay Transport

10

Physical Network

・・・

Page 11: kibayos-PIAX & SkipGraph-071207

PIAXのアーキテクチャ (2)RPC / Overlay Transport

Socket通信の隠蔽、NAT越えのサポート上位レイヤに対し ピアIDを使った高レベルの通信手段を提供上位レイヤに対し、ピアIDを使った高レベルの通信手段を提供

Multi-Overlay複数のオーバレイ機能を管理LL-Net, DHT, ALM, ソーシャルネット等

Discovery MessagingMulti-Overlayレイヤと連携し、discovery messagingを実現Multi Overlayレイヤと連携し、discovery messagingを実現上位レイヤに対し、オーバレイの実装を隠蔽

P2P AgentsP2Pエ ジ ントの稼働環境(API) P2P AJSONP-P2Pエージェントの稼働環境(API)を提供

JSONP-RPC

e Su

ppor

t P2P AgentsJSONPRPC

Discovery Messaging

外部システムとの通信手段を提供

Auth, Secure Supportピアおよびエージェントの認証等 ut

h, S

ecur

e Multi-Overlay

RPC

Overlay Transport

11

ピアおよび ジェントの認証等 A

Physical Network

Page 12: kibayos-PIAX & SkipGraph-071207

マルチオーバレイ

共通的なプラットフォームとして機能するためには、アプリケーションからの様々な探索要求に応える必要がある

複数のオーバレイネットワークを管理オーバレイネットワークのプラグイン化

クエリパターン オーバレイネットワーク

完全一致探索 DHT, (Skip Graph)

部分一致探索 DHT+α

範囲探索(1またはN次元) Skip Graph, LL-Net

連想探索(SNSなど) Unstructured連想探索(SNSなど) Unstructured

意味探索 DHT+α

12

※複合的なクエリパターンを処理する機構(インターリーブ)については今後の課題

Page 13: kibayos-PIAX & SkipGraph-071207

マルチオーバレイの機構

目的別にオーバレイを追加拡張するための機構

オーバレイを plug-in service として、ローディングと選択を行う

Discovery Messaging

selector

query condition ->overlay tableqc1 ov A

request with query condition

selectorqc2 ov B

qc3 ov Cregistration

Multi-Overlay

Overlay A Overlay B Overlay C New Overlay

plug-in:dynamic loading

usecall

use

Multi-keySkip Graph

dynamic loadingcall

call

13

RPC

Page 14: kibayos-PIAX & SkipGraph-071207

代表的なオーバレイ (1)LL-Net (Location-based Logical P2P Network)

地理的探索のためのオーバレイ特に、近傍オブジェクトの探索に効力を発揮

ピアの位置(緯度、経度)に基づいてオーバレイネットワークを構築・維持維持

対象世界(地球全体)を矩形のエリアに分割し、階層的に管理

モバイル端末の接続・切断・移動に応じて、オーバレイネットワークを動的に構成

エリア内リンク

14

エリア間リンク

Page 15: kibayos-PIAX & SkipGraph-071207

代表的なオーバレイ (2)DHT

(key value ) のペアをkeyのハッシュ値に従い分散管理(key, value ) のペアをkeyのハッシュ値に従い分散管理する

ALM (Application Layer Multicast)ALM (Application Layer Multicast)アプリケーションレイヤにおける anycast およびmulticast を実現するmulticast を実現する

ソーシャルネット

SNSのバックボーンとなるオーバレイネットワークSNSのバックボーンとなるオーバレイネットワーク

ユビキタスでは、口コミ情報収集に活用⇒ 人のセンサ化⇒ 人のセンサ化

人の関係を単方向グラフで表したリンク構造を元に形成

15

Page 16: kibayos-PIAX & SkipGraph-071207

P2Pエージェントの状態遷移

一般的なモバイルエージェントシステムと同じ

生成(create), 消滅(destroy), 複製(duplicate), 永続化続 態 ピ(sleep), 永続状態からの復帰(wakeup), 他のピアへの移

動(travel)等のメソッドがある

移動先の指定は ピアIDで行う (IPアドレスは隠蔽される)移動先の指定は、ピアIDで行う (IPアドレスは隠蔽される)

moving sleeping

travelsleep

wakeup

activecreate duplicate

travel wakeup

destroy

16

Page 17: kibayos-PIAX & SkipGraph-071207

P2Pエージェントのモビリティ

PIAXでは、エージェントに対し弱モビリティ(スタックを含むcontextの移動はしない)をサポート

P2Pシステムにおける利点帯域の効率的利用

通信頻度が高い相手の近傍にエージェントを移動させることで、ネットワーク全体の帯域消費を抑える

負荷の平準化負荷の平準化負荷の高いエージェントを複製し、リクエスト元の近傍に移動させることで、全体負荷を平準化させる

サービスの持続性ユーザが利用するアクセスピアの変化に対し、サービスを追従させるせる

アプリケーションの耐性P2Pネットワークの構成変化(churn)に対するアプリケーション側

耐性を高める

17

の耐性を高めるP2P特有

Page 18: kibayos-PIAX & SkipGraph-071207

非同期、一方向、同報型メソッド呼び出し

エージェント間の通信は、メッセージ送信ではなく、RPC

操作透過性(ローカルとリモートをできるだけ区別しない)

RPCの制約に対処するため、同期型に加え、非同期、一方向、同報型のメソッド呼び出しを用意

呼び出し例String name = remoteCall(peerId, agentId, “getName”);FutureReturn future = remoteCallAsync(peerId, agentId, “heavyCalc”, 123456);remoteCallOneway(peerId agentId “notify”);remoteCallOneway(peerId, agentId, notify );ReturnSet rset = remoteCallMulti(peerId, filter, “getScore”);

18

g );

Page 19: kibayos-PIAX & SkipGraph-071207

発見型メソッド呼び出し

Discovery messaging の実現形態

P2Pエージェントの探索とリクエストを同時に行えるP2Pエージェントの探索とリクエストを同時に行える

メソッド定義

R S ObjReturnSet<Object>discoveryCall(QueryCondition qCond, String method, Object args)Object... args)

呼び出し例

t h di C ll( R t l (135 0rset = home.discoveryCall(new Rectangle(135.0, 35.0, 1.0, 1.0), “getScore”, myProfile);

実行時には クエリ条件がマルチオ バレイ機構に実行時には、クエリ条件がマルチオーバレイ機構に渡され、適切なオーバレイが選択される

19

Page 20: kibayos-PIAX & SkipGraph-071207

(PIAX video)

20

Page 21: kibayos-PIAX & SkipGraph-071207

構造化オ バレイ Ski G h構造化オーバレイ Skip Graph

Page 22: kibayos-PIAX & SkipGraph-071207

Skip GraphYale大学の J. Aspnes教授の研究による構造化オーバレイ

論文:J. Aspnes and G. Shah. Skip Graphs. In Proceedings of the 14th

Annual ACM-SIAM Symposium on Discrete Algorithms, Jan. 2003.

基本とするデータ構造は skip list(W. Pugh,1990)というバランス木

ノードは、IDとは別にkeyを持つ指定された範囲のkeyを持つノードを効率よく探索できる

認知度は低いけど、実はパワフル範囲探索

任意 を持 オブジ ク を任意のkeyを持つオブジェクトをサーチ

ALM

PIAXにおいて 中核的な役割を果たしている

22

PIAXにおいて、中核的な役割を果たしている

Page 23: kibayos-PIAX & SkipGraph-071207

Skip Listノードはkey順に並ぶ

レベル0のリストには全てのノードが含まれる

レベルi-1に現れるノードはある確率pでレベルiに現れる(ここでは簡単のため、p=1/2とします)

通常のバランス木と違い ノ ドの追加 削除の際にバラン通常のバランス木と違い、ノードの追加・削除の際にバランス化の処理が不要

33

HEAD TAIL

L l 2

13 33

33

48

Level 2

L l 1

13

13

21 33 48 75 99

33 48Level 1

L l 0

23

13 21 33 48 75 99Level 0

Page 24: kibayos-PIAX & SkipGraph-071207

Skip List を使った検索

上位レベルから下位レベルに降りる形で処理が進む

平均検索時間は、ノード数をNとして、O(log N)平均検索時間は、 ド数を して、 ( g )全順序関係が定義できるデータならすべて key として使うことができる(数値、文字列など)。片寄りがあってもよい

HEAD から Key “75” を検索

33

HEAD TAIL

L l 2

HEAD から Key 75 を検索

13 33

33

48

Level 2

L l 1

13

13

21 33 48 75 99

33 48Level 1

L l 0

24

13 21 33 48 75 99Level 0

Page 25: kibayos-PIAX & SkipGraph-071207

Coffee Break: Skip ListJava 6 から skip list が使えるようになりました

java.util.concurrent.ConcurrentSkipListMapうれしいことにスレッドセーフ

さらに、SortedMap より強力な NavigableMap が登場し、今ま きなか た次 処理が きるよう なりま たまでできなかった次の処理ができるようになりました

指定したkey以上の大きさを持つ最小のkeyを取得 等

T M と C tSki Li tM は次のように使い分けTreeMap と ConcurrentSkipListMap は次のように使い分けましょう

TreeMap ConcurrentSkipListMap

get,put,removeのコスト log N log N

バランス処理 要 不要

スレッドセーフ NG OK

25

メモリ消費のオーバヘッド 3*N+α 6*N+α

Page 26: kibayos-PIAX & SkipGraph-071207

Skip Graph の構成レベルi では membership vectorのプレフィックスの i桁が一致するノード同士リンクをはるmembership vectormembership vector

“レベルi-1に現れるノードは確率1/2でレベルiに現れる”性質を実現するための2進整数(ランダムに分布)DHTでいうノ ドIDに相当DHTでいうノードIDに相当

3321Key

33Level 2

21

13 48 75 99

Level 1

21 75 99

13

13

21 33 48 75 99

33 48

L l 0 Membership

Skip List

26

13 21 33 48 75 99Level 0

000 001010100 110 111

Membershipvector

Page 27: kibayos-PIAX & SkipGraph-071207

Skip Graphでのkey検索個々のノードから見ると、Skip List と同じ構造(アミ掛け部分)Skip List と同じ検索アルゴリズムを実行Skip List と同じ検索アルゴリズムを実行範囲検索も同様にできる

3321Key

key “33”のノードから key “75” を検索

33Level 2

21

13 48 75 99

Level 1

21 75 99

13

13

21 33 48 75 99

33 48

L l 0 Membership

Skip List

27

13 21 33 48 75 99Level 0

000 001010100 110 111

Membershipvector

Page 28: kibayos-PIAX & SkipGraph-071207

Skip Graphでのノード追加 (1)introducer(ここでは99)から挿入位置を検索⇒ key “48” を見つける

レベル0のリンクに新規ノードを挿入

33Level 2

21introducer

21 75 99

13 48 75 99

13 33 48Level 1

13 21 33 48 75 99Level 0 40011

28

000 001010100 110 111011

Page 29: kibayos-PIAX & SkipGraph-071207

Skip Graphでのノード追加 (2)レベル1から上位レベルへ順番に、プレフィックスの一致するノードから成るリンクに新規ノードを挿入

33Level 2

21 40

21 75 99

13 48 75 99

13 33 48Level 1

40

13 21 33 48 75 99Level 0 40

29

000 001010100 110 111011

Page 30: kibayos-PIAX & SkipGraph-071207

DHTs vs. Skip GraphDHTs Skip Graph

ID検索 通常 O(l N) O(l N)ID検索 通常 O(log N) O(log N)

key検索 N/A O(log N)

範囲検索 NG O(log N)

insert/delete O(log2 N) (*1) O(log N)

経路表の高さ ID長 log N経路表 高さ 長 g

経路表の対称性 ? Kademliaは有 有

insert/delete 時の排他制御(*2)

不要 必要

30

*1 Chord の場合*2 排他制御の有無の理由については考察中

Page 31: kibayos-PIAX & SkipGraph-071207

関連研究 (1)SkipNet

論文:N. J. A. Harvey, M. B. Jones, S. Saroiu, M. Theimer, and A. Wolman, “SkipNet: A scalable overlay network with practical locality properties,” USITS ’03, 2003.locality properties, USITS 03, 2003.

DHTが対象とする情報の格納範囲をネットワーク全体ではなく、近接のサブネットワークに制限

DHTが不得意とするローカリティ制御を実現

Skip B-Tree論文:

I. Abraham, J. Aspnes, and J. Yuan, “Skip B-trees,” in Principles of Distributed Systems; 9th InternationalPrinciples of Distributed Systems; 9th International Conference, OPODIS 2005, Dec. 2005.

B-Tree を導入し、keyをブロック化することで効率化

31

Page 32: kibayos-PIAX & SkipGraph-071207

関連研究 (2)Rainbow Skip Graph

論文:論文:M. T. Goodrich, M. J. Nelson, and J. Z. Sun, “The rainbow skip graph: a fault-tolerant constant-degree distributed data t t i P 17th S Di t Al ithstructure,” in Proc. 17th Symp. Discrete Algorithms, pp.

384–393, Jan 2006.

レベル0のリングをまとめることによって ノードの持つ次レベル0のリングをまとめることによって、ノ ドの持つ次数が定数オーダーになることを示した

SkipIndexSkipIndex論文:

C. Zhang, A. Krishnamurthy, and R. Y. Wang, “Skipindex:C. Zhang, A. Krishnamurthy, and R. Y. Wang, Skipindex: Towards a scalable peer-to-peer index service for high dimensional data,” TR-703-04, Princeton University, May 2004

32

2004.

K-D treeを使うことで、多次元の範囲検索を実現

Page 33: kibayos-PIAX & SkipGraph-071207

関連研究 (3)Znet

論文:論文:Y. Shu, B. C. Ooi, K.-L. Tan, and A. Zhou, “Supporting multi-dimensional range queries in peer-to-peer systems,” P2P’05,

173 180 2005pp. 173–180, 2005.

空間充填曲線であるZ-orderingを使うことで、多次元の範囲検索を実現範囲検索を実現

33

Page 34: kibayos-PIAX & SkipGraph-071207

M lti k Ski G hMulti-key Skip Graph

Page 35: kibayos-PIAX & SkipGraph-071207

Multi-key Skip Graph仮想的なピアを複数置くことで複数keyの保持に対応

2007/6 情報処理学会研究報告 DPS-131にて発表

同じ membership vector をもつ仮想ピアは同一物理ピア上に存在する

仮想ピアの保持する各レベルのルーティングテーブルのエントリ(数字は仮想ピアのキー)

Level 20 1 3 6

(数字は仮想ピアのキ )

Level 2

42

0 1 3 4

5

62Level 1

0 1 3 4 5 6Level 0 2

35

00 00 0101 0010

membership vector (=物理ピアの識別)

00

Page 36: kibayos-PIAX & SkipGraph-071207

マルチレンジフォワード方式

100 00 0

物理ピア単位で見たクエリ転送経路

0 10

01

00

01

00

00

00

物理ピア 00 と 01 間で何度もクエリが往復する

上記の問題への対処

ク を受 ると 物 ピ 存在する全 仮想クエリを受け取ると、その物理ピア上に存在する全ての仮想ピアを考慮してルーティング

クエリの転送は各物理ピア毎に 度のみクエリの転送は各物理ピア毎に一度のみ

検索コスト(ホップ数)は、物理ピア数をMとして、log M仮想ピア数に依存しないところがポイント

36

仮想ピア数に依存しないところがポイント

Page 37: kibayos-PIAX & SkipGraph-071207

探索パスの比較

仮想ピア単位のルーティング(改良前)仮想 ア単位のル ティング(改良前)

マルチレンジフォワード方式

37

マルチレンジフォワ ド方式

Page 38: kibayos-PIAX & SkipGraph-071207

評価結果 (ピア数 100)

38

Page 39: kibayos-PIAX & SkipGraph-071207

Multi-key Skip Graphを使ったオ バレイの実装オーバレイの実装

Page 40: kibayos-PIAX & SkipGraph-071207

PIAXにおけるオーバレイの関係

LL-Net, DHT, ALM 等は、Multi-key Skip Graph の機能を使って実装している

経路表は1つで済む構造化オーバレイのメンテナンスコスト削減につながる

非構造化オーバレイについては別に用意

Discovery Messaging

LL-Net DHT ・・・ALM

y g g

Multi-key Skip Graph

40

Page 41: kibayos-PIAX & SkipGraph-071207

LL-Net の4分木による実装

2次元領域を段階的に4分割

得られた4分木をベースにルーティングテーブルを構成得られた 分木を ル ティングテ ルを構成各レベルについて、隣接する3つの領域へのリンクを保持

ルーティングの方法は、Pastryとほぼ同じ

しかし、ピアが一様に分布しない問題が...

B D A B C D

イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イメージが破損している可能性があります。コンピュータを再起動して再度ファイルを開いてください。それでも赤い x が表示される場合は、イメージを削除して挿入してください。

A C ・・・ ・・・ ・・・ ・・・ ・・・

41

Page 42: kibayos-PIAX & SkipGraph-071207

参考:ベキ乗分布

集中点20,総ピア数5000総ピア数5000で出力してみた

代表例:東京 800万横浜 340万横浜 340万大阪 260万・・・

順位をnとして、人口が次の関数にな ているになっている

y=an-1

42

Page 43: kibayos-PIAX & SkipGraph-071207

そこで、Skip Graph+空間充填曲線

利点

内部に形成されるグラフ構造(skip list)が常にバランス内部に形成されるグラフ構造(skip list)が常にバランスするため、探索効率は、log N に安定

多次元を1次元に変換する手法として 空間充填曲多次元を1次元に変換する手法として、空間充填曲線(space-filling curves)を利用する

cf Znetcf. Znet

43

Page 44: kibayos-PIAX & SkipGraph-071207

空間充填曲線

ペアノ曲線ともいう

よく知られているのが、ヒルベルト曲線

Zの書き順にしたのが、Z-ordering(Z曲線)

変換は、Z-orderingの方がやりやすいため、範囲検索ではこちらがよく使われるこちらがよく使われる

44

ヒルベルト曲線 位相5 Z-order 位相5

Page 45: kibayos-PIAX & SkipGraph-071207

2次元を1次元に

Location-ID (L-ID)緯度・経度の2次元位置情報を1次元にエンコード

変換 は を使変換には、Z-orderingを使用

32桁の4進数値

精度は約1cm (地球の全周が40000kmなので)精度は約1cm (地球の全周が40000kmなので)

使用しない

90度

31

180度-180度20

-90度

032

45

ベース領域 – 地球全体エンコーディング例 (3桁)

Page 46: kibayos-PIAX & SkipGraph-071207

範囲検索

設定した矩形を包含する1次元の範囲を求めて、その後Skip Graphを使って探索

常 範通常は、4つ以上の部分範囲に分かれる

誤差部分については間引く必要がある

D

B 対象矩形

A B C D

対象矩形

A C

A C

L-IDの値

46

Page 47: kibayos-PIAX & SkipGraph-071207

DHTSkip Graph でID検索を行う

方法は、SkipNetの論文に記載ここでは ID = membership vectorここでは、ID = membership vector

レベル0から上位レベルへ、目的のIDとプレフィックスの一致桁が長くなるよう検索

3321Key

key “13”のノードから membership vector “111” を検索

33Level 2

21

13 48 75 990011

Level 1

21 75 99

0

1

13

13

21 33 48 75 99

33 48

L l 0 Membership

0

47

13 21 33 48 75 99Level 0

000 001010100 110 111

Membershipvector

Page 48: kibayos-PIAX & SkipGraph-071207

ALM (Application Layer Multicast)Skip Graphの、指定されたkeyを持つピアにメッセージを送る機能を利用

1 ピア 1 key だと複数のmulticast groupに参加できなくなるの1 ピア, 1 key だと複数のmulticast groupに参加できなくなるので、multi-keyが前提となる

スパニングツリーを構成する必要がないランデブ ポイントを自由に設定できるランデブーポイントを自由に設定できる経路の障害回避は Skip Graph の方でやってくれる

G

G

rendezvous

G G

GLevel 2rendezvous

point

G G G

GLevel 1

L l 0G: group ID

48

G G GLevel 000 00 00 0011011010

Page 49: kibayos-PIAX & SkipGraph-071207

まとめまとめ

Page 50: kibayos-PIAX & SkipGraph-071207

紹介できなかった技術トピック

範囲探索のストリーム化返り値集約の機構約 機構

ヒット数が多い時に有効

近接オブジェクトの発見近接オ ジ ク 発見オブジェクト間の近接関係を処理する機構の導入

統計処理: ベイジアン

推論処理: 分散型演繹機構

P2Pエージェントの移動透過性と複製透過性P2P ジ ト 仮想化P2Pエージェントの仮想化

一群のP2Pエージェントを論理的に単一のP2Pエージェントとしてみせかける

セキュリティ、プライバシー保護の強化現在、ピアとP2Pエージェントに対するPKIベースの認証

50

現在、 ア ジ ン 対する 認証機構のみ実装

Page 51: kibayos-PIAX & SkipGraph-071207

まとめ

PIAXSkip GraphSkip GraphMulti-key Skip Graph, Overlays

紹介について紹介

PIAX:Java 5 以上のJVMで動作Java 5 以上のJVMで動作

http://www.piax.org にてオープンソースとして公開中

公開して8ヶ月(ダウンロード数 700)公開して8ヶ月(ダウンロ ド数 700)行き届かない点が多々ありますが、よかったら使ってみてください

51

てください

Page 52: kibayos-PIAX & SkipGraph-071207

ご清聴ありがとうございましたご清聴ありがとうございました