Mercurial > hg > Papers > 2014 > nobuyasu-master
diff paper/chapter3.tex @ 20:a7fbd5db80fb
chapter3
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 23 Jan 2014 15:33:54 +0900 |
parents | 90a916194e59 |
children | a4dfb70496ee |
line wrap: on
line diff
--- a/paper/chapter3.tex Wed Jan 22 19:54:58 2014 +0900 +++ b/paper/chapter3.tex Thu Jan 23 15:33:54 2014 +0900 @@ -45,11 +45,18 @@ % DataSegment, CodeSegment はなしにしたほうがいいかもしれない. Alice が論文の主題じゃないから % それとこの2つの説明をするとしたら結構な量になる -\section{Aliceによるトポロジーの形成} -Alice はサーバノードによるネットワークトポロジー形成の機能を持つ. -トポロジーの内容は dot ファイルに記述される. -以下に, サーバノードの数が5で, 2分木ツリー構造を形成する dot ファイル -の例を\ref{src:alice_dot}に示す. +\section{Alice のトポロジーマネージャーの利用} +Alice はサーバノード同士によるネットワークトポロジー形成の機能を持つ. +トポロジーマネージャーの起動は\ref{src:alice_dot}の様にポート番号の指定と dot ファイルを引数として渡すことで行う. +(\ref{src:alice_ntm_run}). +\begin{lstlisting}[frame=lrbt,label=src:alice_ntm_run,caption=Alice によるネットワークトポロジーマネージャーの起動,numbers=left] +% java -cp Alice.jar alice.topology.manager.TopologyManager -p 10000 -conf ./topology/tree5.dot +\end{lstlisting} + + +ポート番号は Alice により記述された並列分散プログラムの起動時に渡す必要がある. +dot ファイルには, トポロジーをどのように形成するかが書かれている. +以下に, サーバノード数5で, 2分木ツリー構造を形成する dot ファイルの例を示す(\ref{src:alice_dot}). \begin{lstlisting}[frame=lrbt,label=src:alice_dot,caption=ネットワークトポロジー設定用 dot ファイル,numbers=left] % cat tree5.dot digraph test { @@ -64,30 +71,22 @@ } \end{lstlisting} -Alice のトポロジーマネージャーを起動する場合は\ref{src:alice_dot}の様にファイルを引数として渡す. - -(\ref{src:alice_ntm_run}). -\begin{lstlisting}[frame=lrbt,label=src:alice_ntm_run,caption=Alice によるネットワークトポロジーマネージャーの起動,numbers=left] -% java -cp Alice.jar alice.topology.manager.TopologyManager -p 10000 -conf /home/one/hg/nobuyasu/workspace/scripts/topology/tree5.dot -\end{lstlisting} - - - +node0 や node1 はサーバノードの名前を示す. +サーバノードの間にはラベルがあり, Alice 上ではこのラベル +に指定される文字列(キー)を使うことで他のサーバノードのデータへアクセスすることができる. +node0 -> node1 はサーバノード同士の繋がりを示している. +次に続く label="child1" は, node0 が node1 のデータに"child1"という文字列を使うことでアクセス +できることを示す. -\begin{lstlisting}[frame=lrbt,label=src:create_jungle,caption=Alice を使用してのトポロジー形成,numbers=left] -public static void main( String[] args ) throws Exception -{ - RemoteConfig conf = new RemoteConfig(args); - new TopologyNode(conf, new StartBBSCodeSegment(args, conf.bbsPort)); -} -\end{lstlisting} +dot ファイルを読み込んだ Alice のトポロジーマネージャーに対して, サーバーノードは +誰に接続を行えばよいかを訪ねる. +トポロジーマネージャーは訪ねてきたサーバノードに対してノード番号を割り振り, dot ファイル +に記述している通りにサーバノード同士が接続を行うよう指示をだす. - +トポロジーマネージャーは接続要求先を聞いてくるサーバノードに対して名前を割り振り, 接続相手を伝える. +dot ファイル\ref{src:alice_dot}により形成されるトポロジーを図\ref{fig:tree_topology}に示す. -トポロジーマネージャーは dot ファイルを読み込み, 接続要求をしてくるサーバノード -に, どのサーバノードにつなげればよいかを教える. -サーバノードには番号が割り振られ, 接続要求が先にきたもの程若い番号が割り当てられる. -これにより形成されるトポロジーを図\ref{fig:tree_topology}に示す. +\newpage \begin{figure}[htpb] \begin{center} @@ -97,17 +96,31 @@ \end{center} \end{figure} -\newpage 矢印に書かれている文字列は, 相手のデータにアクセスするキーを示す. "child1", "child2", "parent" というキーを使うことで別のサーバノードにあるデータを取得することができる. %子共となるノードは "parent" キーにより親の DSM (Remote DSM) にアクセスすることができる. %また, 親も子供となるノードの DSM に対して "child1" や "child2" キーによりアクセスすることが可能となる. +トポロジーマネージャーに最初に接続要求を行う並列分散プログラム側は, 次のように記述する(\ref{src:alice_start}) +\begin{lstlisting}[frame=lrbt,label=src:alice_start,caption=Alice を使用してのトポロジー形成,numbers=left] +public static void main( String[] args ) throws Exception +{ + RemoteConfig conf = new RemoteConfig(args); + new TopologyNode(conf, new StartBBSCodeSegment(args, conf.bbsPort)); +} +\end{lstlisting} + +そして, プログラムの起動時にトポロジーマネージャーが動いているサーバの + + + +\begin{comment} \subsection{トポロジー用 dot ファイル形成スクリプト} Alice ではトポロジー形成用スクリプトが用意されている. -ノードの数と子供の数を指定するだけで dot ファイルの作成が行える. +スクリプトを使用することで, ノードの数を指定するだけで dot ファイルの作成が行える. また, ツリーに限らずリングやメッシュといったトポロジーの形成も行うことができる. +\end{comment} % MessagePackの説明もここに簡単に入れたほうがいいかも.