kibayos-PIAX & SkipGraph-071207
-
Upload
mikio-yoshida -
Category
Technology
-
view
1.827 -
download
0
Transcript of kibayos-PIAX & SkipGraph-071207
2007/12/7 情報処理学会関西支部講演会
技術紹介:技術紹介: P2Pエージェントプラットフォーム PIAX と
構造化オーバレイ Skip Graph
吉田 幹 (株)ビービーアール吉田 幹 (株)ビ ビ ア ル,大阪大学(招聘研究員)
大阪大学大阪大学
AgendaPIAX
設計コンセプト設計コンセプト
アーキテクチャ
APIAPI
Skip GraphSkip ListSkip ListSkip Graph関連研究関連研究
トピック
Multi-key Skip GraphMulti-key Skip Graphを使ったオーバレイの実装
2
P2Pエ ジ ントプラ トフォ ム PIAXP2Pエージェントプラットフォーム PIAX
※PIAXの一部は、総務省委託研究「ユビキタスネットワーク認証・エージェ※PIAXの 部は、総務省委託研究 ビキタスネットワ ク認証 ジェント技術の研究開発」の一環として開発されたものです
共通プラットフォームのニーズ
ユビキタスネットワーク
PCに加え 携帯電話 PDA 家電機器 自動車 センサPCに加え、携帯電話、PDA、家電機器、自動車、センサ、ロボット、ウェアラブルなど、多種多様のデバイスがネットワークに接続
3C(Computing, Connectivity, Contents) everywhere
課題課題
大量のオブジェクトから必要なものを瞬時に発見する
発見したオブジェクトを使って高度なサービスを構成する発見したオブジェクトを使って高度なサ ビスを構成する
ユ ザの位置や 情報間の関係に基づくオブジ クトのユ ザの位置や 情報間の関係に基づくオブジ クトのユーザの位置や、情報間の関係に基づくオブジェクトの発見と連携をスケーラブルに実現するための
共通プラットフォームが必要
ユーザの位置や、情報間の関係に基づくオブジェクトの発見と連携をスケーラブルに実現するための
共通プラットフォームが必要
4
共通プラットフォ ムが必要共通プラットフォ ムが必要
ユビキタスサービスの実現イメージ
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
近傍性、近接性と相互作用
<ユビキタスコンピューティングの処理の流れ>
1. ユーザ位置を同定ザ位置を同定
2. 近傍、近接オブジェクトの探索近傍に位置するオブジェクト⇒ 物理空間における近傍性
仮想空間上に蓄積された関連性のあるオブジェクト⇒ 意味空間における近接性⇒ 意味空間における近接性
3. 探索されたオブジェクト(複数のサービス主体と能動的オブジェクト)の相互連携によりサービスを実現ジ クト)の相互連携によりサ ビスを実現
「ユビキタスサービスは、ユーザ(群)とその近傍、近接
にあるオブジェクト間における相互作用により実現される」
「ユビキタスサービスは、ユーザ(群)とその近傍、近接
にあるオブジェクト間における相互作用により実現される」
6
ユビキタス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
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
ケーラブルに実現
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
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
・・・
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
マルチオーバレイ
共通的なプラットフォームとして機能するためには、アプリケーションからの様々な探索要求に応える必要がある
複数のオーバレイネットワークを管理オーバレイネットワークのプラグイン化
クエリパターン オーバレイネットワーク
完全一致探索 DHT, (Skip Graph)
部分一致探索 DHT+α
範囲探索(1またはN次元) Skip Graph, LL-Net
連想探索(SNSなど) Unstructured連想探索(SNSなど) Unstructured
意味探索 DHT+α
12
※複合的なクエリパターンを処理する機構(インターリーブ)については今後の課題
マルチオーバレイの機構
目的別にオーバレイを追加拡張するための機構
オーバレイを 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
代表的なオーバレイ (1)LL-Net (Location-based Logical P2P Network)
地理的探索のためのオーバレイ特に、近傍オブジェクトの探索に効力を発揮
ピアの位置(緯度、経度)に基づいてオーバレイネットワークを構築・維持維持
対象世界(地球全体)を矩形のエリアに分割し、階層的に管理
モバイル端末の接続・切断・移動に応じて、オーバレイネットワークを動的に構成
エリア内リンク
14
エリア間リンク
代表的なオーバレイ (2)DHT
(key value ) のペアをkeyのハッシュ値に従い分散管理(key, value ) のペアをkeyのハッシュ値に従い分散管理する
ALM (Application Layer Multicast)ALM (Application Layer Multicast)アプリケーションレイヤにおける anycast およびmulticast を実現するmulticast を実現する
ソーシャルネット
SNSのバックボーンとなるオーバレイネットワークSNSのバックボーンとなるオーバレイネットワーク
ユビキタスでは、口コミ情報収集に活用⇒ 人のセンサ化⇒ 人のセンサ化
人の関係を単方向グラフで表したリンク構造を元に形成
15
P2Pエージェントの状態遷移
一般的なモバイルエージェントシステムと同じ
生成(create), 消滅(destroy), 複製(duplicate), 永続化続 態 ピ(sleep), 永続状態からの復帰(wakeup), 他のピアへの移
動(travel)等のメソッドがある
移動先の指定は ピアIDで行う (IPアドレスは隠蔽される)移動先の指定は、ピアIDで行う (IPアドレスは隠蔽される)
moving sleeping
travelsleep
wakeup
activecreate duplicate
travel wakeup
destroy
16
P2Pエージェントのモビリティ
PIAXでは、エージェントに対し弱モビリティ(スタックを含むcontextの移動はしない)をサポート
P2Pシステムにおける利点帯域の効率的利用
通信頻度が高い相手の近傍にエージェントを移動させることで、ネットワーク全体の帯域消費を抑える
負荷の平準化負荷の平準化負荷の高いエージェントを複製し、リクエスト元の近傍に移動させることで、全体負荷を平準化させる
サービスの持続性ユーザが利用するアクセスピアの変化に対し、サービスを追従させるせる
アプリケーションの耐性P2Pネットワークの構成変化(churn)に対するアプリケーション側
耐性を高める
17
の耐性を高めるP2P特有
非同期、一方向、同報型メソッド呼び出し
エージェント間の通信は、メッセージ送信ではなく、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 );
発見型メソッド呼び出し
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
(PIAX video)
20
構造化オ バレイ Ski G h構造化オーバレイ Skip Graph
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において、中核的な役割を果たしている
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
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
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+α
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
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
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
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
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 排他制御の有無の理由については考察中
関連研究 (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
関連研究 (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を使うことで、多次元の範囲検索を実現
関連研究 (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
M lti k Ski G hMulti-key Skip Graph
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
マルチレンジフォワード方式
100 00 0
物理ピア単位で見たクエリ転送経路
0 10
01
00
01
00
00
00
物理ピア 00 と 01 間で何度もクエリが往復する
上記の問題への対処
ク を受 ると 物 ピ 存在する全 仮想クエリを受け取ると、その物理ピア上に存在する全ての仮想ピアを考慮してルーティング
クエリの転送は各物理ピア毎に 度のみクエリの転送は各物理ピア毎に一度のみ
検索コスト(ホップ数)は、物理ピア数をMとして、log M仮想ピア数に依存しないところがポイント
36
仮想ピア数に依存しないところがポイント
探索パスの比較
仮想ピア単位のルーティング(改良前)仮想 ア単位のル ティング(改良前)
マルチレンジフォワード方式
37
マルチレンジフォワ ド方式
評価結果 (ピア数 100)
38
Multi-key Skip Graphを使ったオ バレイの実装オーバレイの実装
PIAXにおけるオーバレイの関係
LL-Net, DHT, ALM 等は、Multi-key Skip Graph の機能を使って実装している
経路表は1つで済む構造化オーバレイのメンテナンスコスト削減につながる
非構造化オーバレイについては別に用意
Discovery Messaging
LL-Net DHT ・・・ALM
y g g
Multi-key Skip Graph
40
LL-Net の4分木による実装
2次元領域を段階的に4分割
得られた4分木をベースにルーティングテーブルを構成得られた 分木を ル ティングテ ルを構成各レベルについて、隣接する3つの領域へのリンクを保持
ルーティングの方法は、Pastryとほぼ同じ
しかし、ピアが一様に分布しない問題が...
B D A B C D
イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イメージが破損している可能性があります。コンピュータを再起動して再度ファイルを開いてください。それでも赤い x が表示される場合は、イメージを削除して挿入してください。
A C ・・・ ・・・ ・・・ ・・・ ・・・
41
参考:ベキ乗分布
集中点20,総ピア数5000総ピア数5000で出力してみた
代表例:東京 800万横浜 340万横浜 340万大阪 260万・・・
順位をnとして、人口が次の関数にな ているになっている
y=an-1
42
そこで、Skip Graph+空間充填曲線
利点
内部に形成されるグラフ構造(skip list)が常にバランス内部に形成されるグラフ構造(skip list)が常にバランスするため、探索効率は、log N に安定
多次元を1次元に変換する手法として 空間充填曲多次元を1次元に変換する手法として、空間充填曲線(space-filling curves)を利用する
cf Znetcf. Znet
43
空間充填曲線
ペアノ曲線ともいう
よく知られているのが、ヒルベルト曲線
Zの書き順にしたのが、Z-ordering(Z曲線)
変換は、Z-orderingの方がやりやすいため、範囲検索ではこちらがよく使われるこちらがよく使われる
44
ヒルベルト曲線 位相5 Z-order 位相5
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桁)
範囲検索
設定した矩形を包含する1次元の範囲を求めて、その後Skip Graphを使って探索
常 範通常は、4つ以上の部分範囲に分かれる
誤差部分については間引く必要がある
D
B 対象矩形
A B C D
対象矩形
A C
A C
L-IDの値
46
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
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
まとめまとめ
紹介できなかった技術トピック
範囲探索のストリーム化返り値集約の機構約 機構
ヒット数が多い時に有効
近接オブジェクトの発見近接オ ジ ク 発見オブジェクト間の近接関係を処理する機構の導入
統計処理: ベイジアン
推論処理: 分散型演繹機構
P2Pエージェントの移動透過性と複製透過性P2P ジ ト 仮想化P2Pエージェントの仮想化
一群のP2Pエージェントを論理的に単一のP2Pエージェントとしてみせかける
セキュリティ、プライバシー保護の強化現在、ピアとP2Pエージェントに対するPKIベースの認証
50
現在、 ア ジ ン 対する 認証機構のみ実装
まとめ
PIAXSkip GraphSkip GraphMulti-key Skip Graph, Overlays
紹介について紹介
PIAX:Java 5 以上のJVMで動作Java 5 以上のJVMで動作
http://www.piax.org にてオープンソースとして公開中
公開して8ヶ月(ダウンロード数 700)公開して8ヶ月(ダウンロ ド数 700)行き届かない点が多々ありますが、よかったら使ってみてください
51
てください
ご清聴ありがとうございましたご清聴ありがとうございました