Mercurial > hg > Papers > 2014 > nobuyasu-master
comparison paper/chapter3.tex @ 42:585196deaace
Added figures
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 29 Jan 2014 18:41:30 +0900 |
parents | 63eca978482f |
children | 34ac359f20f1 |
comparison
equal
deleted
inserted
replaced
41:a59ede6b5a5a | 42:585196deaace |
---|---|
86 \begin{lstlisting}[frame=lrbt,label=src:run_program,caption=トポロジーマネージャーの利用,numbers=left] | 86 \begin{lstlisting}[frame=lrbt,label=src:run_program,caption=トポロジーマネージャーの利用,numbers=left] |
87 % java Program -host mass00.cs.ie.u-ryukyu.ac.jp -port 10000 | 87 % java Program -host mass00.cs.ie.u-ryukyu.ac.jp -port 10000 |
88 \end{lstlisting} | 88 \end{lstlisting} |
89 | 89 |
90 \section{Alice を用いての分散実装} | 90 \section{Alice を用いての分散実装} |
91 形成されたトポロジー上でのデータの送受信を行う部分について述べる. | 91 Aliceのポロジー形成と他のサーバのデータへのアクセスする機構を用いるためには, Aliceが |
92 | 92 提供するプログラミングスタイルに沿わなければならない. |
93 | 93 それはDataSegment(データ)とCodeSegment(タスク)によるプログラムである. |
94 | 94 ここではまずDataSegmentとCodeSegmentによるプログラムの方法について説明し, 他サーバとの |
95 通信部分の実装について述べる. | |
96 | |
97 \subsection{Alice によるプログラミング} | |
98 AliceはDataSegment(データ)とCodeSegment(タスク)単位でプログラミングを行うことを述べた. | |
99 CodeSegmentには計算に必要なDataSegmentが登録される. | |
100 そしてDataSegmentが準備され次第CodeSegmentによる計算が実行される. | |
101 DataSegmentの取得は文字列のキーを使うことで行える. | |
102 以下のコードにCodeSegmentの例を示す. | |
103 \begin{lstlisting}[frame=lrbt,label=src:syslog_nfconntrack,caption=CodeSegmentの実行,numbers=left] | |
104 public class TestCodeSegment extends CodeSegment { | |
105 // DataSegment | |
106 public Receiver ds = ids.create(CommandType.TAKE); | |
107 | |
108 public TestCodeSegment() { | |
109 } | |
110 | |
111 public void run() { | |
112 int count = ds.asInteger(); | |
113 count++; | |
114 System.out.println("count = "+count); | |
115 if(c > 10) { exit(0); } | |
116 CodeSegment cs = new TestCodeSegment(); | |
117 cs.setKey("count"); | |
118 ods.update("local", "count", c); | |
119 } | |
120 | |
121 public static void main(String[] args) { | |
122 CodeSegment cs = new TestCodeSegment(); | |
123 cs.ds.setKey("local", "count"); | |
124 cs.ods.update("local", "count", 0); | |
125 } | |
126 } | |
127 \end{lstlisting} | |
128 このプログラムは, 数字を1から10まで出力を行い終了する. | |
129 コードの説明を行う. | |
130 まずTestCodeSegmentというCodeSegmentのインスタンスcsを生成する. | |
131 csにはdsというReceiverクラスのフィールドを保持している. | |
132 このdsがDataSegmentになる. | |
133 次に\verb|ds.setKey| | |
134 | |
135 | |
136 % Alice の他サーバノードへの"log"のputの問題 | |
95 | 137 |
96 \section{ログのシリアライズ} | 138 \section{ログのシリアライズ} |
97 ここでログのシリアライズについて述べる. | 139 ここでログのシリアライズについて述べる. |
98 | 140 |
99 シリアライズとは, データをネットワーク上に流しても良い形式に変換することである. | 141 シリアライズとは, データをネットワーク上に流しても良い形式に変換することである. |