情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

Overlay Weaver で新しいルーティングアルゴリズムを作る方法(3/3) このエントリーを含むはてなブックマーク

この記事は、「Overlay Weaver で新しいルーティングアルゴリズムを作る方法(2/3)」のつづきです。

できあがった新アルゴリズムの使い方

ここまでで、新アルゴリズムの定義は終了しました。では、実際に作成したアルゴリズムをどう使えばいいかを最後に解説したいと思います。

ow.routing.RoutingAlgorithmFactoryのPROVIDERSにProviderを追加する

まず、新しいアルゴリズムを登録する作業を行います。 登録は、ow.routing.RoutingAlgorithmFactoryPROVIDERSに、MyChordProviderクラスを追加するだけです。たとえば、次のように追加します。

private final static Class/*<RoutingAlgorithmProvider>*/[] PROVIDERS = {
	ow.routing.chord.ChordProvider.class,					// "Chord"
	ow.routing.kademlia.KademliaProvider.class,			// "Kademlia"
	ow.routing.koorde.KoordeProvider.class,				// "Koorde"
	ow.routing.linearwalker.LinearWalkerProvider.class,	// "LinearWalker"
	ow.routing.pastry.PastryProvider.class,				// "Pastry"
	ow.routing.tapestry.TapestryProvider.class,			// "Tapestry"
	ow.routing.mychord.MyChordProvider.class			// "MyChord"
};

このように、一番下に追加すればOKです。これで、呼び出す準備が整いました。

設定を確認

アルゴリズム固有の設定はMyChordConfigurationで出来ているのですが、より全体にわたる設定は、「ow.routing.RoutingServiceConfigurationクラス」で行われています。チェックしてください。

呼び出し方

登録が完了し、設定の確認も完了したので、あとは普通に呼び出すだけです。

たとえば、DHTシェルから呼び出す場合は、次のように設定できます。

owdhtshell [other options] -a MyChord

このように、-aに続けてアルゴリズム名「MyChord」を書くだけで利用するアルゴリズムを設定できます。

このとき、「MyChord」というアルゴリズム名は、「MyChrodProvider」のgetName()メソッドで得られるアルゴリズム名なので注意してください。getName()メソッドで「My-Chrod」と設定していたら、「-a My-Chord」とする必要があります。

まとめ

すごく簡単にOverlayWeaverに新しくDHTアルゴリズムを追加する方法を紹介しました。基礎の基礎です。

もちろん、しっかりメソッドの呼び出し関係をたどれば分かることが多いのですが、ヒントがないとなかなかわからない場合も多いので、ヒントとして書いておきました。あくまでヒントです。間違っているところもあると思うので、それだけは気を付けてください。最後はソースコードが頼りです。

世の中の卒論生の役に立ったらいいなぁ。

DHT | コメント:0 | トラックバック:0 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

この記事のコメント

コメントの投稿 エントリの新旧に関わらず、極力18時間中に返信します。














この記事のトラックバック

トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。