2010年7月10日土曜日

分散環境エミュレータを使ってみよう - overlayweaver

DHTシェルを何度も何個も起動させるのってめんどくさいなーって時に使える。

使い方は簡単

まずは、SimpleScenario.txtというファイルを作ります。
そこに、次の内容を書き込んで、拡張子(.txt)を消しておく
timeoffset 2000 # invokes the first node class ow.tool.dhtshell.Main arg -p 10000 schedule 0 invoke # invokes 3 nodes, which contacts the first node (emu0) to join an overlay arg emu0 schedule 1000,1000,3 invoke

次にコマンドプロンプトを起動して、SimpleScenarioのあるディレクトリまで移動。
そして、
owemu SimpleScenario
と、実行すると以下のようにノードが四つできあがります。

C:\workspace\overlayweaver>owemu SimpleScenario
DHT configuration:
hostname:port: emu0:3997
transport type: UDP
routing algorithm: Chord
routing style: Iterative
directory type: VolatileMap
working directory: .
A DHT started.
A shell server is waiting on the port tcp/10000
[Clock jump or overload detected: class ow.tool.
1ba34f2, 2312 msec behind]
DHT configuration:
hostname:port: emu1:3997
transport type: UDP
routing algorithm: Chord
routing style: Iterative
directory type: VolatileMap
working directory: .
initial contact: emu0:3997
A DHT started.
DHT configuration:
hostname:port: emu2:3997
transport type: UDP
routing algorithm: Chord
routing style: Iterative
directory type: VolatileMap
working directory: .
initial contact: emu0:3997
A DHT started.
DHT configuration:
hostname:port: emu3:3997
transport type: UDP
routing algorithm: Chord
routing style: Iterative
directory type: VolatileMap
working directory: .
initial contact: emu0:3997
A DHT started.



ちなみに、シナリオファイルを和訳すると、以下のようになります。

遊戯
「俺のターン!
 初期ノードを0ミリ秒後に発動!!
 クラスは、ow.tool.dhtshell.Mainで、引数は-p 10000だ!(10000番ポートで接続を待つ)

 さらにー!1000ミリ秒待ってから~
 三つのノードを1000ミリ秒ごとに一つ発動するぜー!!
 そして、こいつらを初期ノードに接続してオバーレイに参加だー!!!」

海馬
「なにー!?
 たった1ターンでノードを四体だとー!」




ちなみに、ow.tool.dhtshell.Mainの、引数を以下のようにすると
arg -p 10000 -r Recursive -t TCP -a Kademlia

ルーティングスタイル:Recursive(再帰方式)、通信タイプ:TCP、アルゴリズム:Kademlia
こんな感じで、DHTの設定を変えることもできます。



参考文献
OWの使い方
分散環境エミュレータのマニュアル
DHT シェルのマニュアル

0 件のコメント:

コメントを投稿