[P2P]ブラウザだけで分散ハッシュテーブル(DHT)を体感しよう!
□はじめに
P2Pで注目されている技術として分散ハッシュテーブル(DHT)が挙げられますが、仕組みが複雑なこともあって、理解するのはなかなか大変です。またOverlay WeaverのようなDHTシュミレーターをインストールするのも、ちょっと面倒。。という人も多いと思われます。
そこで、ブラウザだけでDHTを体感できる2つのサイトをご紹介したいと思います。
なお、DHTって何?と思った方は拙著のDHT入門を見て頂くことをお勧めします。
分散ハッシュテーブル入門~その1(初心者向け)
P2Pと分散ハッシュテーブル~その1(ネットワークについてある程度ご存知の方向け)
□FlashでDHT体験?
DHTの有名な方式の一つとしてChordが挙げられます。このChordにおけるルーティングの様子をFlashで動的に図示するサイトがあります。
http://ibaraki.iobb.net/misc/dht/DHT.html
使い方は以下の通りです。
1)Flashで円状に黒い円と青い円が表示されます。どちらの円もノードIDを示します。青い円はそのノードIDにノードが存在する場合を示します。逆に黒い円はそのノードIDにノードが存在していません。
2)次に青い円(この円を円Aとします。)を一つ選らんでクリックします。色が緑に変わることがわかります。つぎにもう一つ青い円(この円を円Bとします。)を選びます。すると、円Aから円Bにルーティングされている様子が図示されます。左上にはルーティングで経由するノードIDが数字で示されます。
3)右下の「Clear Node」を押すと、ノードの再配置が行われます。
このFlashでChordのルーティングイメージがざっくりとわかると思います。なおActionScriptのソース等も公開されています。このActionScriptを改良して更なる情報を表示させたり、ノードが参加、離脱する様を表示させるのも興味深いでしょう。
http://ibaraki.iobb.net/misc/dht.zip
□実際に分散環境で動いているDHTを体感する!
今度は実際に分散環境で動いているDHTをブラウザで体感してみましょう!
今回ご紹介するのはPlanetlabという世界中に広がる分散環境上でOverlay Weaverが動いている様子を表示するサイトです。DHTとしては先ほど同様Chordを使っています。
http://planetlab0.otemachi.wide.ad.jp:3998/
サイトを見ると、まず最初にノードの情報、その後にルーティング情報(Predecessor、Successor List,Finger Table)が見えます。なおルーティング情報にあるリンクを押すと、各ノードの情報を見る事ができます。
これだけだとルーティング情報を参照するだけになりますが、サイトの最後にget,put,removeというフォームがあることに注目してください。これがとても面白いのです。
putとは、あるkey(ノードIDとほぼ同一と考えてください)にvalue(ある値、任意)を格納することを意味します。removeはputの逆でkyeからvalueを削除します。getはあるkeyに対してどのようなvalueがあるか、一覧を出してもらえます。
まずはputをしてみて、それをgetしたときに、入力したvalueの値がきちんと現れるか見てください。興味のある方は様々なkeyでvalueをputをした場合、そのvalueを実際にはどのノードが持っているのか調べてみると良いでしょう。
□終わりに
今回はブラウザだけでDHTを体験できるサイトを紹介しました。DHTに本格的に興味をもあった方はOverlay Weaverを実際にPC内で動かしてみるのも良いでしょう。
| 固定リンク
| コメント (1)
| トラックバック (0)