changeset 6:a04f0d8b19a1

for check
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Mon, 30 Nov 2015 05:40:06 +0900
parents 50de9b120af4
children 7cb463761b4e
files paper-last/.prosym.tex.swp paper-last/prosym.aux paper-last/prosym.bbl paper-last/prosym.bib paper-last/prosym.blg paper-last/prosym.dvi paper-last/prosym.log paper-last/prosym.pdf paper-last/prosym.tex
diffstat 9 files changed, 284 insertions(+), 215 deletions(-) [+]
line wrap: on
line diff
Binary file paper-last/.prosym.tex.swp has changed
--- a/paper-last/prosym.aux	Mon Nov 30 02:14:22 2015 +0900
+++ b/paper-last/prosym.aux	Mon Nov 30 05:40:06 2015 +0900
@@ -8,60 +8,66 @@
 \newlabel{fig:CS}{{1}{2}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}{DataSegmentManager}}{2}}
 \newlabel{fig:RemoteDSM}{{2}{2}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}{Data Segment API}}{3}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}{Code Segmentの記述方法}}{3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}{Data Segment API}}{2}}
+\citation{MessagePack}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}{Data Segmentの表現}}{3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}{Code Segmentの記述方法}}{3}}
 \newlabel{src:StartCodeSegment}{{1}{3}}
 \@writefile{lol}{\contentsline {lstlisting}{\numberline {1}StartCodeSegmentの例}{3}}
 \newlabel{src:CodeSegment}{{2}{3}}
 \@writefile{lol}{\contentsline {lstlisting}{\numberline {2}CodeSegmentの例}{3}}
+\citation{dot}
 \@writefile{toc}{\contentsline {section}{\numberline {3}\hskip 1zw{Meta Computation}}{4}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}{DSのMeta Computation}}{4}}
-\citation{dot}
-\citation{MessagePack}
 \newlabel{src:topologyfile}{{3}{5}}
 \@writefile{lol}{\contentsline {lstlisting}{\numberline {3}トポロジーファイルの例}{5}}
 \newlabel{fig:topologymanager}{{3}{5}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}{CSのMeta Computation}}{5}}
 \citation{tightVNC}
+\newlabel{fig:topfix1}{{4}{6}}
+\newlabel{fig:topfix2}{{5}{6}}
+\newlabel{fig:topfix3}{{6}{6}}
+\newlabel{src:closedEvent}{{4}{6}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {4}切断時に実行されるCSの登録方法}{6}}
 \@writefile{toc}{\contentsline {section}{\numberline {4}\hskip 1zw{AliceVNC}}{6}}
-\newlabel{fig:TreeVNC}{{4}{6}}
-\@writefile{toc}{\contentsline {section}{\numberline {5}\hskip 1zw{Aliceの新機能}}{6}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}{転送機能}}{6}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}{Data Segmentの表現の追加(圧縮機能)}}{6}}
-\newlabel{src:ReceiveData}{{4}{7}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {4}データを表現するクラス}{7}}
-\newlabel{src:before}{{5}{7}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}通常のDSを扱うCSの例}{7}}
-\newlabel{src:after}{{6}{7}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {6}圧縮したDSを扱うCSの例}{7}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}{Aliceの通信プロトコルの変更}}{7}}
-\newlabel{src:asClass}{{7}{8}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {7}asClassの処理}{8}}
-\newlabel{src:CommandMessage}{{8}{8}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {8}CommandMessage}{8}}
-\newlabel{tb:variable}{{1}{8}}
-\@writefile{toc}{\contentsline {section}{\numberline {6}\hskip 1zw{評価と考察}}{8}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}{メッセージ伝達速度の比較}}{8}}
-\newlabel{fig:mesure}{{5}{9}}
-\newlabel{tb:variable}{{2}{9}}
-\newlabel{src:Mesurement}{{9}{9}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {9}到達時間・木の段数の計測方法}{9}}
-\newlabel{fig:TreeVNC_delay}{{6}{10}}
-\newlabel{fig:AliceVNC_notcompress_delay}{{7}{10}}
-\newlabel{fig:AliceVNC_compress_delay}{{8}{10}}
+\newlabel{fig:TreeVNC}{{7}{7}}
+\@writefile{toc}{\contentsline {section}{\numberline {5}\hskip 1zw{Aliceの新機能}}{7}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}{転送機能}}{7}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}{Data Segmentの表現の追加(圧縮機能)}}{7}}
+\newlabel{src:ReceiveData}{{5}{8}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}データを表現するクラス}{8}}
+\newlabel{src:before}{{6}{8}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {6}通常のDSを扱うCSの例}{8}}
+\newlabel{src:after}{{7}{8}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {7}圧縮したDSを扱うCSの例}{8}}
+\newlabel{src:asClass}{{8}{8}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {8}asClassの処理}{8}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}{Aliceの通信プロトコルの変更}}{8}}
+\@writefile{toc}{\contentsline {section}{\numberline {6}\hskip 1zw{評価と考察}}{9}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}{メッセージ伝達速度の比較}}{9}}
+\newlabel{fig:mesure}{{8}{9}}
+\newlabel{tb:mesure}{{1}{9}}
+\newlabel{src:Mesurement}{{9}{10}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {9}到達時間・木の段数の計測方法}{10}}
+\newlabel{fig:TreeVNC_delay}{{9}{10}}
+\newlabel{fig:AliceVNC_notcompress_delay}{{10}{10}}
+\newlabel{fig:AliceVNC_compress_delay}{{11}{10}}
 \citation{complaxy}
+\citation{Erlang}
 \@writefile{toc}{\contentsline {subsection}{\numberline {6.2}{コードの比較}}{11}}
-\newlabel{tb:code}{{3}{11}}
-\newlabel{tb:complex}{{4}{11}}
+\newlabel{tb:code}{{2}{11}}
+\newlabel{tb:complex}{{3}{11}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {6.3}{他言語・フレームワークとの比較}}{11}}
-\@writefile{toc}{\contentsline {section}{\numberline {7}\hskip 1zw{まとめ}}{11}}
+\citation{Akka}
+\@writefile{toc}{\contentsline {section}{\numberline {7}\hskip 1zw{まとめ}}{12}}
 \citation{*}
 \bibstyle{ipsjunsrt}
 \bibdata{prosym}
 \bibcite{senkokenkyu}{1}
 \bibcite{treeVNC}{2}
 \bibcite{MessagePack}{3}
-\bibcite{tightVNC}{4}
-\bibcite{Erlang}{5}
-\newlabel{fig:overNAT}{{9}{12}}
-\newlabel{ipsj@lastpage}{{}{12}}
+\bibcite{dot}{4}
+\bibcite{tightVNC}{5}
+\bibcite{complaxy}{6}
+\bibcite{Erlang}{7}
+\bibcite{Akka}{8}
+\newlabel{fig:overNAT}{{12}{13}}
+\newlabel{ipsj@lastpage}{{}{13}}
--- a/paper-last/prosym.bbl	Mon Nov 30 02:14:22 2015 +0900
+++ b/paper-last/prosym.bbl	Mon Nov 30 05:40:06 2015 +0900
@@ -12,10 +12,19 @@
 \bibitem{MessagePack}
 : MessagePack, \url{http://msgpack.org/}.
 
+\bibitem{dot}
+: .
+
 \bibitem{tightVNC}
 : {TightVNC Software}, \url{http://www.tightvnc.com}.
 
+\bibitem{complaxy}
+: .
+
 \bibitem{Erlang}
 柏原正三\:プログラミング言語Erlang入門,アスキー (2007).
 
+\bibitem{Akka}
+: .
+
 \end{thebibliography}
--- a/paper-last/prosym.bib	Mon Nov 30 02:14:22 2015 +0900
+++ b/paper-last/prosym.bib	Mon Nov 30 05:40:06 2015 +0900
@@ -28,3 +28,27 @@
   journal = "アスキー",
   year = "2007"
 }
+
+@article{Akka,
+  author = "",
+  title = "",
+  journal = "",
+  year = ""
+}
+
+@article{complaxy,
+  author = "",
+  title = "",
+  journal = "",
+  year = ""
+}
+
+@article{dot,
+  author = "",
+  title = "",
+  journal = "",
+  year = ""
+}
+
+
+
--- a/paper-last/prosym.blg	Mon Nov 30 02:14:22 2015 +0900
+++ b/paper-last/prosym.blg	Mon Nov 30 05:40:06 2015 +0900
@@ -3,46 +3,62 @@
 The top-level auxiliary file: prosym.aux
 The style file: ipsjunsrt.bst
 Database file #1: prosym.bib
-Warning--I didn't find a database entry for "dot"
-Warning--I didn't find a database entry for "complaxy"
 Warning--there's no number and/or volumesenkokenkyu
 Warning--Missing required argument pages in senkokenkyu
 Warning--there's no number and/or volumetreeVNC
 Warning--Missing required argument pages in treeVNC
 Warning--Missing required argument author in MessagePack
+Warning--Missing required argument author in dot
+Warning--Missing required argument title in dot
+Warning--Missing required argument journal in dot
+Warning--Missing required argument year in dot
+Warning--there's no number and/or volumedot
+Warning--Missing required argument pages in dot
 Warning--Missing required argument author in tightVNC
+Warning--Missing required argument author in complaxy
+Warning--Missing required argument title in complaxy
+Warning--Missing required argument journal in complaxy
+Warning--Missing required argument year in complaxy
+Warning--there's no number and/or volumecomplaxy
+Warning--Missing required argument pages in complaxy
 Warning--there's no number and/or volumeErlang
 Warning--Missing required argument pages in Erlang
-You've used 5 entries,
+Warning--Missing required argument author in Akka
+Warning--Missing required argument title in Akka
+Warning--Missing required argument journal in Akka
+Warning--Missing required argument year in Akka
+Warning--there's no number and/or volumeAkka
+Warning--Missing required argument pages in Akka
+You've used 8 entries,
             2207 wiz_defined-function locations,
-            557 strings with 4561 characters,
-and the built_in function-call counts, 678 in all, are:
-= -- 37
-> -- 15
+            559 strings with 4569 characters,
+and the built_in function-call counts, 1035 in all, are:
+= -- 40
+> -- 18
 < -- 0
-+ -- 8
++ -- 11
 - -- 3
-* -- 48
-:= -- 102
-add.period$ -- 5
-call.type$ -- 5
+* -- 108
+:= -- 138
+add.period$ -- 8
+call.type$ -- 8
 change.case$ -- 0
 chr.to.int$ -- 0
-cite$ -- 13
-duplicate$ -- 43
-empty$ -- 87
+cite$ -- 34
+duplicate$ -- 64
+empty$ -- 144
 format.name$ -- 5
-if$ -- 154
+if$ -- 223
 int.to.chr$ -- 0
-int.to.str$ -- 5
-missing$ -- 3
-newline$ -- 18
+int.to.str$ -- 8
+missing$ -- 6
+newline$ -- 27
 num.names$ -- 3
-pop$ -- 18
+pop$ -- 36
 preamble$ -- 1
 purify$ -- 0
 quote$ -- 0
-skip$ -- 36
+skip$ -- 45
 stack$ -- 0
 substring$ -- 0
 swap$ -- 0
@@ -50,9 +66,9 @@
 text.prefix$ -- 0
 top$ -- 0
 type$ -- 0
-warning$ -- 8
+warning$ -- 26
 while$ -- 3
-width$ -- 6
-write$ -- 35
-is.kanji.str$ -- 16
-(There were 10 warnings)
+width$ -- 9
+write$ -- 47
+is.kanji.str$ -- 19
+(There were 26 warnings)
Binary file paper-last/prosym.dvi has changed
--- a/paper-last/prosym.log	Mon Nov 30 02:14:22 2015 +0900
+++ b/paper-last/prosym.log	Mon Nov 30 05:40:06 2015 +0900
@@ -1,4 +1,4 @@
-This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2014.4.14)  29 NOV 2015 23:31
+This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2014.4.14)  30 NOV 2015 05:39
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -151,52 +151,48 @@
 LaTeX Warning: Unused global option(s):
     [techrep].
 
-(./prosym.aux
-
-LaTeX Warning: Label `tb:variable' multiply defined.
-
-)
+(./prosym.aux)
 \openout1 = `prosym.aux'.
 
-LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 33.
-LaTeX Font Info:    ... okay on input line 33.
-LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 33.
-LaTeX Font Info:    ... okay on input line 33.
-LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 33.
-LaTeX Font Info:    ... okay on input line 33.
-LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 33.
-LaTeX Font Info:    ... okay on input line 33.
-LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 33.
-LaTeX Font Info:    ... okay on input line 33.
-LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 33.
-LaTeX Font Info:    ... okay on input line 33.
-LaTeX Font Info:    Checking defaults for JY1/mc/m/n on input line 33.
-LaTeX Font Info:    ... okay on input line 33.
-LaTeX Font Info:    Checking defaults for JT1/mc/m/n on input line 33.
-LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 32.
+LaTeX Font Info:    ... okay on input line 32.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 32.
+LaTeX Font Info:    ... okay on input line 32.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 32.
+LaTeX Font Info:    ... okay on input line 32.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 32.
+LaTeX Font Info:    ... okay on input line 32.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 32.
+LaTeX Font Info:    ... okay on input line 32.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 32.
+LaTeX Font Info:    ... okay on input line 32.
+LaTeX Font Info:    Checking defaults for JY1/mc/m/n on input line 32.
+LaTeX Font Info:    ... okay on input line 32.
+LaTeX Font Info:    Checking defaults for JT1/mc/m/n on input line 32.
+LaTeX Font Info:    ... okay on input line 32.
 \c@lstlisting=\count110
 LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <8.8711> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 40.
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 39.
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <8.8711> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 40.
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 39.
 LaTeX Font Info:    Font shape `JT1/gt/bx/n' in size <19.2207> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 53.
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 50.
 LaTeX Font Info:    Font shape `JY1/gt/bx/n' in size <19.2207> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 53.
-LaTeX Font Info:    Calculating math sizes for size <9.61035> on input line 53.
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 50.
+LaTeX Font Info:    Calculating math sizes for size <9.61035> on input line 50.
 
-LaTeX Font Info:    Calculating math sizes for size <11.82813> on input line 53
+LaTeX Font Info:    Calculating math sizes for size <11.82813> on input line 50
 .
-LaTeX Font Info:    Calculating math sizes for size <8.13184> on input line 53.
+LaTeX Font Info:    Calculating math sizes for size <8.13184> on input line 50.
 
 LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <11.82813> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 56.
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 53.
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <11.82813> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 56.
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 53.
 LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <9.61035> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 72.
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 69.
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <9.61035> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 72.
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 69.
  [1
 
 
@@ -204,27 +200,27 @@
 File: images/dsandcs2.pdf Graphic file (type pdf)
  <images/dsandcs2.pdf>
 LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <8.13184> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 82.
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 79.
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <8.13184> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 82.
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 79.
 File: images/remote_datasegment.pdf Graphic file (type pdf)
- <images/remote_datasegment.pdf> [2]
-Underfull \hbox (badness 10000) in paragraph at lines 115--116
+ <images/remote_datasegment.pdf>
+Underfull \hbox (badness 10000) in paragraph at lines 111--112
 []\OT1/cmtt/m/n/9.61035 void put(String managerKey, String
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 119--120
+Underfull \hbox (badness 10000) in paragraph at lines 115--116
 []\OT1/cmtt/m/n/9.61035 void update(String managerKey, String
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 124--125
+Underfull \hbox (badness 10000) in paragraph at lines 120--121
 []\OT1/cmtt/m/n/9.61035 void take(String managerKey, String
  []
 
-
-Underfull \hbox (badness 10000) in paragraph at lines 129--130
+[2]
+Underfull \hbox (badness 10000) in paragraph at lines 125--126
 []\OT1/cmtt/m/n/9.61035 void peek(String managerKey, String
  []
 
@@ -238,14 +234,10 @@
 (Font)              Font shape `OMS/cmsy/m/n' tried instead on input line 1.
 )
 (./source/TestCodeSegment.java) [3]
-Overfull \hbox (24.42479pt too wide) in paragraph at lines 172--173
+Overfull \hbox (24.42479pt too wide) in paragraph at lines 179--180
 []\OT1/cmtt/m/n/9.61035 void setKey(String managerKey, String key) 
  []
 
-[4]
-
-LaTeX Warning: Citation `dot' on page 5 undefined on input line 206.
-
 (./source/TopologyFile.dot
 LaTeX Font Info:    Calculating math sizes for size <8.8711> on input line 2.
 LaTeX Font Info:    Try loading font information for OML+cmr on input line 2.
@@ -258,36 +250,40 @@
 )
 File: images/topologymanager.pdf Graphic file (type pdf)
 
-<images/topologymanager.pdf>
+<images/topologymanager.pdf> [4] [5]
+File: images/TopologyFix.pdf Graphic file (type pdf)
+ <images/TopologyFix.pdf>
+File: images/TopologyFix2.pdf Graphic file (type pdf)
 
-LaTeX Warning: `h' float specifier changed to `ht'.
-
-[5]
+<images/TopologyFix2.pdf>
+File: images/TopologyFix3.pdf Graphic file (type pdf)
+ <images/TopologyFix3.pdf>
+(./source/RegisterEvent.java) [6]
 File: images/TreeVNC.pdf Graphic file (type pdf)
  <images/TreeVNC.pdf>
-Overfull \hbox (21.64644pt too wide) in paragraph at lines 263--264
+Overfull \hbox (21.64644pt too wide) in paragraph at lines 298--299
  [] 
  []
 
-[6] (./source/ReceiveData.java) (./source/beforeCompress.java)
-(./source/afterCompress.java) (./source/asClass.java) [7]
-(./source/CommandMessage.java)
-Overfull \hbox (39.99373pt too wide) in paragraph at lines 349--372
- [] 
+[7] (./source/ReceiveData.java) (./source/beforeCompress.java)
+(./source/afterCompress.java)
+Underfull \hbox (badness 6658) in paragraph at lines 363--369
+[]\JY1/mc/m/n/9.61035 画面表示の際は \OT1/cmr/m/n/9.61035 Re-ceive-Data.class \
+JY1/mc/m/n/9.61035 内の
  []
 
-[8]
+(./source/asClass.java) [8]
 File: images/delay.pdf Graphic file (type pdf)
  <images/delay.pdf>
-Overfull \hbox (14.02144pt too wide) in paragraph at lines 412--423
+Overfull \hbox (14.02144pt too wide) in paragraph at lines 417--428
  [] 
  []
 
 
-LaTeX Warning: Reference `src:mesurement' on page 9 undefined on input line 429
+LaTeX Warning: Reference `src:mesurement' on page 9 undefined on input line 434
 .
 
-(./source/mesurement.java) [9]
+[9] (./source/mesurement.java)
 File: images/TreeVNC_depth3.pdf Graphic file (type pdf)
  <images/TreeVNC_depth3.pdf>
 File: images/AliceVNC_notcompress_depth3.pdf Graphic file (type pdf)
@@ -296,31 +292,44 @@
 File: images/AliceVNC_compress_depth3.pdf Graphic file (type pdf)
  <images/AliceVNC_compress_depth3.pdf>
 [10]
+Underfull \hbox (badness 10000) in paragraph at lines 528--530
+[]\OT1/cmr/m/n/9.61035 TreeVNC \JY1/mc/m/n/9.61035 で最高値を出した \OT1/cmr/m/
+n/9.61035 TreeRF-
+ []
 
-LaTeX Warning: Citation `complaxy' on page 11 undefined on input line 514.
+
+Underfull \hbox (badness 4899) in paragraph at lines 531--532
+[]\OT1/cmr/m/n/9.61035 AliceVNC \JY1/mc/m/n/9.61035 で複雑度の最高値を出した
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 531--532
+\OT1/cmr/m/n/9.61035 SwingView-er-Win-dow.class \JY1/mc/m/n/9.61035 は \OT1/cmr
+/m/n/9.61035 TightVNC \JY1/mc/m/n/9.61035 で
+ []
 
 [11]
 File: images/overNAT.pdf Graphic file (type pdf)
  <images/overNAT.pdf>
-Overfull \hbox (7.42006pt too wide) in paragraph at lines 572--573
+Overfull \hbox (7.42006pt too wide) in paragraph at lines 600--601
  [] 
  []
 
-(./prosym.bbl) [12] (./prosym.aux)
+
+LaTeX Warning: `h' float specifier changed to `ht'.
+
+[12] (./prosym.bbl) [13] (./prosym.aux)
 
 LaTeX Warning: There were undefined references.
 
-
-LaTeX Warning: There were multiply-defined labels.
-
  ) 
 Here is how much of TeX's memory you used:
- 2999 strings out of 494008
- 42219 string characters out of 6154472
- 198678 words of memory out of 5000000
+ 3001 strings out of 494008
+ 42312 string characters out of 6154472
+ 198596 words of memory out of 5000000
  6417 multiletter control sequences out of 15000+600000
- 27682 words of font info for 116 fonts, out of 8000000 for 9000
+ 27514 words of font info for 115 fonts, out of 8000000 for 9000
  745 hyphenation exceptions out of 8191
- 30i,12n,40p,280b,1428s stack positions out of 5000i,500n,10000p,200000b,80000s
+ 30i,9n,40p,280b,1426s stack positions out of 5000i,500n,10000p,200000b,80000s
 
-Output written on prosym.dvi (12 pages, 73112 bytes).
+Output written on prosym.dvi (13 pages, 83276 bytes).
Binary file paper-last/prosym.pdf has changed
--- a/paper-last/prosym.tex	Mon Nov 30 02:14:22 2015 +0900
+++ b/paper-last/prosym.tex	Mon Nov 30 05:40:06 2015 +0900
@@ -25,7 +25,6 @@
   stepnumber=1,
   lineskip=-0.5ex,%
   captionpos=b,%キャプションの位置
-  moredelim=**[s][\color{red}]{\"compressed}{\"},
 }
 \renewcommand{\lstlistingname}{Code}
 \input{dummy.tex} %% Font 
@@ -38,12 +37,10 @@
 \author{河野 真治}{Shinji Kono}{琉球大学工学部情報工学科}[kono@ie.u-ryukyu.ac.jp]
 
 \begin{abstract}
-当研究室ではデータを Data Segment、タスクを Code Segment という単位で分割して記述する手法を提唱しており、
-それに基づく並列分散フレームワークAliceを開発している。
-Aliceが分散プログラムを記述する能力を有することは水族館の例題等において確認された。
-しかし、実用的な分散アプリケーションを構築するには圧縮形式で通信を行う機能等が必要であることが分かった。
-本研究では、 実用的なアプリケーションである画面共有システムTreeVNCをAliceで実装するにあたり必要となった圧縮機能等をMeta Computationとして実装した。
-データの多態性の実現により、扱うデータの形式を元のコードを大きく変更することなく指定することができ、ノード間通信における自由度の向上を図った。
+当研究室ではデータを Data Segment、タスクを Code Segment という単位で分割して記述する手法を提唱しており、それに基づく並列分散フレームワークAliceを開発している。
+Aliceが実用的な分散アプリケーションの記述能力を有することを確認するために、画面共有システムTreeVNCをAlice上で構築した。
+TreeVNCをAliceで実装するにあたり必要となった圧縮機能等をAliceが提供するMeta Computationとして実装した。
+そして記述したアプリケーションの性能とコードを比較したことで、Aliceが実用的な分散アプリケーションをシンプルな記述で実現でき、仕様の変更を抑えた信頼性の高いプログラミングが可能だということを確認した。
 \end{abstract}
 
 \begin{jkeyword}
@@ -104,7 +101,6 @@
     \label{fig:RemoteDSM}
 \end{figure}
 
-\newpage
 
 \subsection{Data Segment API}
 DSの保存・取得にはAliceが提供するAPIを用いる。
@@ -130,6 +126,17 @@
 \end{itemize}
 peekもDSを読み込むAPIである。takeとの違いは読み込まれたDSが削除されないことである。
 
+\subsection{Data Segmentの表現}
+
+DSの表現にはMessagePack for Java \cite{MessagePack} を利用している。
+\begin{itemize}
+\item {\ttfamily DSは一般的なJavaのクラスオブジェクト}
+\item {\ttfamily MessagePackを用いて変換したbyte[]で表現されたバイナリオブジェクト}
+\end{itemize}
+の2種類があり、LocalDSMにputされた場合は一般的なJavaのクラスオブジェクトとして追加される。
+RemoteDSMにputされた場合は通信時にbyteArrayに変換されたバイナリオブジェクトが追加される。
+
+
 \subsection{Code Segmentの記述方法}
 CSをユーザーが記述する際にはCodeSegment.classを継承して記述する(ソースコード \ref{src:StartCodeSegment} , \ref{src:CodeSegment})。
 継承することによりCode Segmentで使用するData Segment APIを利用する事ができる。
@@ -189,15 +196,12 @@
 それに対して、AliceのMeta Computation は、Remoteノードとの通信時のトポロジーの構成や切断・再接続の処理と言える。
 つまりトポロジーの構成はAliceのComputationを支えているComputationとみなすことができる。
 
-Aliceの機能を追加するということはプログラマ側が使うMeta Computationを追加すると言い換えられる。
+Aliceの機能を追加するということはプログラマー側が使うMeta Computationを追加すると言い換えられる。
 AliceではMeta Computationとして分散環境の構築等の機能を提供するため、プログラマーはCSを記述する際にトポロジー構成や切断、再接続という状況を予め想定した処理にする必要はない。
 プログラマーは目的の処理だけ記述し、切断や再接続が起こった場合の処理をMeta Computationとして指定する。
 このようにプログラムすることで、通常処理と例外処理を分離することができるため、仕様の変更を抑えたシンプルなプログラムを記述できる。
-現在Aliceには、動的・静的トポロジーの管理構成機能、ノードとの接続状態確認機能、切断・再接続時の処理を指定できる機能などのMeta Computationが用意されている。
+現在Aliceには、動的・静的トポロジーの管理構成機能、ノードとの接続状態確認機能、切断・再接続時の処理を指定できる機能など、分散環境の実現に必要なさまざまなMeta Computationが用意されている。
 
-\subsection{DSのMeta Computation}
-CSはアプリケーションを動作させるために必要なタスクであり、ユーザーによって定義される。
-それに対してMeta CSはAliceを構成するタスクである。つまりMeta CSの群はAliceのComputationと言い換えることができる。一部のみユーザーが定義をすることができ、Aliceの挙動を変更することができる。
 
 \textbf{Topology Manager}
 
@@ -228,22 +232,56 @@
 そしてTopology Managerが持つトポロジー情報が更新される。
 現在Topology Managerでは動的なトポロジータイプとして二分木に対応している。
 
-\textbf{Data Segmentの表現}
-
-DSの表現にはMessagePack for Java \cite{MessagePack} を利用している。
-\begin{itemize}
-\item {\ttfamily DSは一般的なJavaのクラスオブジェクト}
-\item {\ttfamily MessagePackを用いて変換したbyte[]で表現されたバイナリオブジェクト}
-\end{itemize}
-の2種類があり、LocalDSMにputされた場合は一般的なJavaのクラスオブジェクトとして追加される。
-RemoteDSMにputされた場合は通信時にbyteArrayに変換されたバイナリオブジェクトが追加される。
-
-\subsection{CSのMeta Computation}
 
 \textbf{KeepAlive}
 
+ノード間通信はRemoteDSMに対してputやtakeを行うことでのみ発生する。
+アプリケーション次第では長時間通信が行われない可能性があり、その間にノード間接続が切れた場合、次の通信が行われるまで切断を発見することができない。
+また、接続状態ではあるが応答に時間がかかる場合もある。
+
+これらの問題を検知するために、KeepAliveという定期的にheart beatを送信し生存確認を行うMeta Computationがある。この機能もCS/DSを用いて実装されている。
+一定時間内にノードからの応答がない場合、KeepAliveにより、そのノードのRemoteDSMが切断される。
+
+また、トポロジーからノードが切断された際にトポロジーを再構成する機能もTopology Managerに用意した。
+例えばツリートポロジーでノードが切断された場合、そのノードの子ノードは全体のトポロジーから分断されてしまう。
+ノードは切断を検知するとただちにTopology Managerに再接続すべきノード情報を要求し、木を構成し直す(図\ref{fig:topfix1} 〜 \ref{fig:topfix3})。
+\newpage
+\begin{figure}[h]
+\begin{center}
+\includegraphics[width=70mm]{images/TopologyFix.pdf}
+\end{center}
+\caption{切断ノードの検知}
+\label{fig:topfix1}
+\end{figure}
+\begin{figure}[h]
+\begin{center}
+\includegraphics[width=70mm]{images/TopologyFix2.pdf}
+\end{center}
+\caption{接続すべきノード情報の送信}
+\label{fig:topfix2}
+\end{figure}
+\begin{figure}[h]
+\begin{center}
+\includegraphics[width=70mm]{images/TopologyFix3.pdf}
+\end{center}
+\caption{再構成の完了}
+\label{fig:topfix3}
+\end{figure}
+\newpage
+
+
+
 \textbf{切断・再接続時の処理}
 
+MMORPGでは、試合の最中にサーバーからユーザーが切断された場合、自動的にユーザーが操作するキャラクターをゲームの開始時の位置に戻すという処理が実行される。
+同様に、Aliceを用いたアプリケーションでもノードの切断時に対する処理を用意したい場合がある。
+そこで、Aliceが切断を検知した際に任意のCSを実行できる機能(ClosedEventManager)を追加した。プログラマーは切断の際に実行したいCSを書き、ClosedEventManagerに登録しておけば良い(ソースコード\ref{src:closedEvent})。
+\begin{table}[html]
+    \lstinputlisting[label=src:closedEvent, caption=切断時に実行されるCSの登録方法]{source/RegisterEvent.java}
+\end{table}
+
+また、再接続してきたノードに対し通常の処理とは別の処理を行わせたい場合がある。そのため、切断時と同様に再接続してきたノードに任意のCSを実行できるMeta Computationも用意した。
+
 
 \section{AliceVNC}
 AliceのMeta Computationが実用的なアプリケーションの記述において有用であることを確認する。
@@ -255,9 +293,6 @@
 この問題をノード同士を接続させ、木構造を構成することで負荷分散を行い解決したものがTreeVNCである。
 図 \ref{fig:TreeVNC}はAliceVNCを実現するための構成である。leftとrightのRemoteDSMを用意し子ノードと接続することで木構造を実現する。
 
-TreeVNCは通信処理部分の記述が大変複雑になっている。しかし、Aliceで記述すれば本質的な処理とそれを支える通信処理部分で分離できる。
-そのため、TightVNCからの修正も少なく、見通しの良い記述で構成可能と期待される。
-
 \begin{figure}[h]
 \begin{center}
 \includegraphics[width=80mm]{images/TreeVNC.pdf}
@@ -266,12 +301,15 @@
 \label{fig:TreeVNC}
 \end{figure}
 
-\newpage
+TreeVNCは通信処理部分や画面データの処理部分が1つのコード内で記述され、大変複雑になっている。しかし、Aliceで記述すればMeta Computationにより本質的な処理とそれを支える通信処理部分で分離できる。
+TreeVNCでは3章で述べた動的なトポロジーの構成、切断ノードの発見、再接続・トポロジーの再構成といった通信処理のMeta Computationが活用できる。そのため、TightVNCからの修正の少ない、見通しの良い記述で構成可能と期待される。
+
+
 \section{Aliceの新機能}
-実用的なアプリケーションであるTreeVNCをAlice上で実装することで、Aliceに必要な機能を洗い出した。
+実用的なアプリケーションであるTreeVNCをAlice上で実装することで、Aliceに必要なMeta Computationを洗い出した。
 \subsection{転送機能}
 Input DSをRecieverに取得したあと、プログラマーはRecieverから値を任意の型で取り出し、値を操作した後putメソッドで再度別クラスに変換されOutput DSとして出力する。
-しかし、Input DSとして取得したデータをそのまま子ノードにOutput DSとして出力する場合、一度Recieverから取り出し再変換する操作は無駄である。
+しかし、Input DSとして取得したデータ形式のまま子ノードにOutput DSとして出力する場合、一度Recieverから取り出し再変換する操作は無駄である。
 
 そこで、Input DSとして受け取ったDSをそのままOutput DSとして転送する機能をput/updateとは別にflipメソッドをData Segment APIに実装した。
 Input DSであるReceiverを展開せずにflipメソッドに引数として渡すことで、展開のオーバーヘッドをなくしている。
@@ -288,7 +326,7 @@
 圧縮状態のまま子ノードに送信ができれば、解凍・再圧縮するオーバーヘッドを無くすことができる。
 
 そこで、1つのData Segmentに対し複数の表現を持たせることで、必要に応じた形式でDSを扱うことを可能にした。
-DSを扱うReceiveData.classに、次の3種類の表現を同時に持つことができる。
+DSを扱うReceiveData.classに、次の3種類の表現を同時に持つことができるようにしたことで、データの多態性を実現した。
 
 \begin{enumerate}
   \item 一般的なJavaのクラスオブジェクト
@@ -304,12 +342,11 @@
 \lstinputlisting[label=src:ReceiveData, caption=データを表現するクラス]{source/ReceiveData.java}
 \end{table}
 
-\newpage
-また、圧縮状態を持つDSを扱うDSMとしてLocalとRemoteそれぞれにCompressed Data Segment Managerを追加した。
+また、圧縮表現を持つDSを扱うDSMとしてRemoteDSMにCompressed Data Segment Managerを追加した。
 Compressed DSMの内部では、put/updateが呼ばれた際にReceiveData.classが圧縮表現を持っていればそれを使用し、持っていなければその時点で圧縮表現を作ってput/updateを行う。
 
 ソースコード \ref{src:before} はRemoteDSMに対しInt型のデータをputする記述である。
-これをDSを圧縮形式で行いたい場合、ソースコード \ref{src:after} のように指定するDSM名の先頭に"compressed"をつければCompressed DSM内部の圧縮Meta Computationが走りDSを圧縮状態で扱うようになる。
+この通信を圧縮形式のDSで行いたい場合、ソースコード \ref{src:after} のように指定するDSM名の先頭に"compressed"をつければCompressed DSM内部の圧縮Meta Computationが走り圧縮形式に変換されたDSとなって通信が行われる。
 
 \begin{table}[html]
 \lstinputlisting[label=src:before, caption=通常のDSを扱うCSの例]{source/beforeCompress.java}
@@ -319,60 +356,28 @@
 \lstinputlisting[label=src:after,caption=圧縮したDSを扱うCSの例]{source/afterCompress.java}
 \end{table}
 
-
-これによりユーザは指定するDSMを変えるだけで、他の計算部分を変えずに圧縮表現を持つDSを扱うことができる。
+これによりユーザは指定するDSMを変えるだけで、他の計算部分を変えずに圧縮表現をDS内で持つことができる。
 ノードは圧縮されたDSを受け取った後、そのまま子ノードにflipメソッドで転送すれば圧縮状態のまま送信されるので、送信の際の再圧縮がなくなる。
+
+
 画面表示の際はReceiveData.class内の{\tt asClass()}(ソースコード\ref {src:asClass} )を使うことで適切な形式でデータを取得できる。
-{\tt asClass()}はDSを目的の型にcastするメソッドであり、ReceiveData.classが圧縮表現だけを持っている場合はこのメソッド内で解凍してcastを行っている。
-これによりDSの表現を必要になったときに作成できる。
+{\tt asClass()}はDSを目的の型にcastするメソッドである。
+AliceVNCで圧縮形式を指定してDSを送信すると、それを受け取るDSMは圧縮形式のみを持ったDSとして保存する。
+そして{\tt asClass()}が呼ばれて初めて、メソッド内で解凍してcastが行われDSが複数の表現を同時に持つようになる。
+これによりDSの表現を必要になったときに作成できるため、プログラマーはどんな形式でDSを受け取ってもこのメソッドを使うことによりDSを編集可能な形式として扱うことができる。
+また、複数表現は必要なときにしか作成されないため、メモリ使用量も必要最低限に抑えることができる。
+
 
 \begin{table}[html]
 \lstinputlisting[label=src:asClass, caption=asClassの処理]{source/asClass.java}
 \end{table}
 
 \subsection{Aliceの通信プロトコルの変更}
-2.4 Data Segmentの表現 で述べたように、Remoteからputされたデータは必ずシリアライズ化されておりbyteArrayで表現される。
+2.4 Data Segmentの表現で述べたように、Remoteからputされたデータは必ずシリアライズ化されておりbyteArrayで表現される。
 しかし、TreeVNCのようにもとからbyteArrayの画像データをputする場合、MessagePackでシリアライズされたものかの判別が付かない。
 また、データの表現に圧縮したbyteArrayを追加したため、RemoteからputされたbyteArrayが圧縮されているのかそうでないのかを判断する必要がある。
 
-そこで、Aliceの通信におけるヘッダにあたるCommandMessage.class(ソースコード \ref{src:CommandMessage} )にシリアライズ状態表すフラグと、圧縮状態を表すフラグを追加した。
-
-\begin{table}[html]
-\lstinputlisting[label=src:CommandMessage, caption=CommandMessage]{source/CommandMessage.java}
-\end{table}
-
-\newpage
-\begin{table}[htbp]
-\caption{CommandMessageの変数名の説明}
-\label{tb:variable}
-\begin{center}
-\begin{tabular} {|l|l|}
-  \hline
-  変数名&説明\\
-  \hline
-  type&CommandType {\tt PEEK, PUT}などを表す\\
-  \hline
-  seq&\shortstack{Data Segmentの待ち合わせを行っている\\Code Segmentを表すunique number }\\
-  \hline
-  key&どのKeyに対して操作を行うか指定する\\
-  \hline
-
-  quickFlag&SEDAを挟まずCommandを処理を行うかを示す\\
-  \hline
-  serialized&データ本体のシリアライズ状態を示す\\
-  \hline
-
-  compressed&データ本体の圧縮状態を示す\\
-  \hline
-
-  dataSize&圧縮前のデータサイズを表す\\
-  \hline
-
-\end{tabular}
-\end{center}
-\end{table}
-
-
+そこで、Aliceの通信におけるヘッダにあたるCommandMessage.classにシリアライズ状態表すフラグと、圧縮状態を表すフラグを追加した。
 これによってputされたDSMはフラグに応じた適切な形式でReceiveData.class内にDSを格納できる。
 また、CommandMessage.classに圧縮前のデータサイズも追加したことで、適切な解凍が可能になった。
 
@@ -407,7 +412,7 @@
 計測用のヘッダは以下の要素で構成されている。
 \begin{table}[htbp]
 \caption{計測用ヘッダの変数名の説明}
-\label{tb:variable}
+\label{tb:mesure}
 \begin{center}
 \begin{tabular} {|l|l|}
   \hline
@@ -582,7 +587,7 @@
 
 \section{まとめ}
 並列分散フレームワークAliceでは、スケーラブルかつ信頼性の高いプログラムを記述する環境を実現するため、CS/DSの計算モデルとMeta Computationによる実装の階層化を採用している。
-Aliceが実用的な分散アプリケーションを記述するために必要なMeta Computationとして、d動的なトポロジー管理・構成機能や多態性を持つデータを扱う機能、データを無駄なコピーをすることなく転送する機能などを実装した。
+Aliceが実用的な分散アプリケーションを記述するために必要なMeta Computationとして、動的なトポロジー管理・構成機能や多態性を持つデータを扱う機能、データを無駄なコピーをすることなく転送する機能などを実装した。
 そしてMeta Computationを用いて分散アプリケーションTreeVNCをAlice上で実装し性能評価を行った。
 その結果、TreeVNCで使用される基本機能はAliceでも実現でき、同等の性能を出すことができるということが分かった。
 またコードの観点からTreeVNCとAliceVNCを比較した結果、Aliceが仕様の変更を抑えたシンプルな記述を実現し、信頼性の高い実用的な分散アプリケーションを構築するに有用であることが確認された。