changeset 4:f8cb6edde76f

update
author oc
date Wed, 29 Oct 2014 13:38:35 +0900
parents f281e372d8f2
children 3275b58829c7
files .report.tex.swp report.aux report.dvi report.log report.pdf report.tex
diffstat 6 files changed, 101 insertions(+), 160 deletions(-) [+]
line wrap: on
line diff
Binary file .report.tex.swp has changed
--- a/report.aux	Wed Oct 29 11:12:27 2014 +0900
+++ b/report.aux	Wed Oct 29 13:38:35 2014 +0900
@@ -1,20 +1,19 @@
 \relax 
 \@writefile{toc}{\contentsline {section}{\numberline {1}はじめに}{1}}
-\newlabel{fig:figure1}{{1}{1}}
+\newlabel{fig:treeVNC}{{1}{1}}
 \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces TreeVNCの図}}{1}}
 \@writefile{toc}{\contentsline {section}{\numberline {2}VNC}{1}}
 \@writefile{toc}{\contentsline {section}{\numberline {3}TreeVNC}{1}}
-\@writefile{toc}{\contentsline {section}{\numberline {4}TreeVNCのリファクタリング}{1}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}port番号の変更}{1}}
+\@writefile{toc}{\contentsline {section}{\numberline {4}動的なport番号の指定}{1}}
 \bibcite{1}{1}
 \bibcite{2}{2}
-\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Treeの構成の変更}{2}}
+\@writefile{toc}{\contentsline {section}{\numberline {5}Treeの構成の変更}{2}}
 \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces マルチネットワークに対応したTreeVNCの図}}{2}}
 \newlabel{fig:figure2}{{2}{2}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}ホスト切り替え時の挙動の修正}{2}}
-\@writefile{toc}{\contentsline {section}{\numberline {5}まとめ}{2}}
-\@writefile{toc}{\contentsline {section}{\numberline {6}今後の課題}{2}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}画像データの遅延}{2}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}エラーハンドリング}{2}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}音声データの共有}{2}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}画面の大きさをホスト側で変更できる}{2}}
+\@writefile{toc}{\contentsline {section}{\numberline {6}ホスト切り替え時の挙動の修正}{2}}
+\@writefile{toc}{\contentsline {section}{\numberline {7}まとめ}{2}}
+\@writefile{toc}{\contentsline {section}{\numberline {8}今後の課題}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}画像データの遅延}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}エラーハンドリング}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.3}音声データの共有}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.4}画面の大きさをホスト側で変更できる}{2}}
Binary file report.dvi has changed
--- a/report.log	Wed Oct 29 11:12:27 2014 +0900
+++ b/report.log	Wed Oct 29 13:38:35 2014 +0900
@@ -1,4 +1,4 @@
-This is e-pTeX, Version 3.14159265-p3.5-130605-2.6 (utf8.euc) (TeX Live 2014) (preloaded format=platex 2014.10.23)  29 OCT 2014 11:11
+This is e-pTeX, Version 3.14159265-p3.5-130605-2.6 (utf8.euc) (TeX Live 2014) (preloaded format=platex 2014.10.23)  29 OCT 2014 13:35
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -145,68 +145,12 @@
 (Font)              Font shape `JY1/gt/m/n' tried instead on input line 27.
 File: pic/TreeVNC.eps Graphic file (type eps)
  <pic/TreeVNC.eps>
-Overfull \hbox (3.57736pt too wide) in paragraph at lines 53--54
- [] 
- []
-
-LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <12> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 77.
-LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <12> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 77.
-
-Underfull \hbox (badness 10000) in paragraph at lines 92--106
-[]\JY1/mc/m/n/10 子 \OT1/cmr/m/n/10 node \JY1/mc/m/n/10 が最初に \OT1/cmr/m/n/1
-0 root \JY1/mc/m/n/10 へと通信を行う \OT1/cmr/m/n/10 mes-sage
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 92--106
-\OT1/cmr/m/n/10 (FIND[]ROOT\JY1/mc/m/n/10 、 \OT1/cmr/m/n/10 FIND[]ROOT[]REPLY)
-\JY1/mc/m/n/10 、 \OT1/cmr/m/n/10 node \JY1/mc/m/n/10 間の
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 92--106
-\JY1/mc/m/n/10 接続を行う \OT1/cmr/m/n/10 mes-sage (CON-NECT[]TO[]AS[]LEADER\JY
-1/mc/m/n/10 、
- []
-
-
-Underfull \hbox (badness 2376) in paragraph at lines 92--106
-\OT1/cmr/m/n/10 CON-NECT[]TO)\JY1/mc/m/n/10 、 どの \OT1/cmr/m/n/10 node \JY1/m
-c/m/n/10 と接続するかを知らせる
- []
-
-
-Underfull \hbox (badness 1057) in paragraph at lines 92--106
-\OT1/cmr/m/n/10 mes-sage (WHERE[]TO[]CONNECT)\JY1/mc/m/n/10 、 親 \OT1/cmr/m/n/
-10 node \JY1/mc/m/n/10 との接続
- []
-
-
-Underfull \hbox (badness 1418) in paragraph at lines 92--106
-\JY1/mc/m/n/10 しい \OT1/cmr/m/n/10 node \JY1/mc/m/n/10 が接続した場合の \OT1/c
-mr/m/n/10 mes-sage (NEW[]NODE)\JY1/mc/m/n/10 、
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 92--106
-\JY1/mc/m/n/10 クライアントが画面共有ボタンを押した際の \OT1/cmr/m/n/10 mes-
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 92--106
-\OT1/cmr/m/n/10 sage (SERVER[]CHANGE[]REQUEST)\JY1/mc/m/n/10 、 \OT1/cmr/m/n/10
- root \JY1/mc/m/n/10 と \OT1/cmr/m/n/10 node
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 92--106
-\JY1/mc/m/n/10 間の通信における遅延を計測するための \OT1/cmr/m/n/10 mes-sage
- []
-
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <10> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 92.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <10> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 92.
 File: pic/emblem-bitmap.pdf Graphic file (type eps)
-<pic/emblem-bitmap.pdf>
+ <pic/emblem-bitmap.pdf>
 
 Package Fancyhdr Warning: \headheight is too small (0.0pt): 
  Make it at least 20.37784pt.
@@ -219,18 +163,22 @@
 ]
 File: pic/MultiNetworkTree.eps Graphic file (type eps)
  <pic/MultiNetworkTree.eps>
-Overfull \hbox (3.57736pt too wide) in paragraph at lines 127--128
+Overfull \hbox (3.57736pt too wide) in paragraph at lines 131--132
  [] 
  []
 
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <12> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 158.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <12> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 158.
 [2] (./report.aux) ) 
 Here is how much of TeX's memory you used:
- 849 strings out of 493807
- 9540 string characters out of 6151950
+ 853 strings out of 493807
+ 9589 string characters out of 6151950
  73447 words of memory out of 5000000
- 4355 multiletter control sequences out of 15000+600000
- 13576 words of font info for 53 fonts, out of 8000000 for 9000
+ 4358 multiletter control sequences out of 15000+600000
+ 13884 words of font info for 54 fonts, out of 8000000 for 9000
  929 hyphenation exceptions out of 8191
- 25i,16n,43p,250b,366s stack positions out of 5000i,500n,10000p,200000b,80000s
+ 25i,15n,43p,250b,364s stack positions out of 5000i,500n,10000p,200000b,80000s
 
-Output written on report.dvi (2 pages, 12668 bytes).
+Output written on report.dvi (2 pages, 12500 bytes).
Binary file report.pdf has changed
--- a/report.tex	Wed Oct 29 11:12:27 2014 +0900
+++ b/report.tex	Wed Oct 29 13:38:35 2014 +0900
@@ -26,21 +26,17 @@
 
 \section{はじめに}
 
-% 目的を先に書く
-本研究では、
+本研究室では、TreeVNCという画面共有システムを開発している。
 ゼミや講義の質を高め、快適にプレゼンテーションを聴講でき、
 参加者同士が充分なコミュニケーションを取れることを目的としている。
-%TreeVNCに新たな機能の実装を行う。
-本研究室では、TreeVNCという画面共有システムを開発している。
-TreeVNCに新たな機能の実装を行っていく。
 
 % TreeVNCの負荷分散の話
 TreeVNCは、接続しに来たクライアントをバイナリツリー状に接続する。
-多人数で使用する場合でも、各nodeに最大2台分のクライアントしか接続されない。
-従来のVNCの場合、rootに多人数分のクライアントが接続される。
-TreeVNCとVNCとでは、配信する画像データをコピーする回数が違う。
-TreeVNCは、rootへの負担を各nodeに分散するため、
-処理性能の低下を防いでいる。
+バイナリツリーなら、各nodeに最大2台分のクライアントしか接続されない。
+従来のVNCの場合、rootに複数のクライアントが接続される。
+TreeVNCはVNCよりも配信時に画像データをコピーする回数が少ない。
+TreeVNCは、rootへの負荷を各nodeに分散することにより、
+処理性能の向上を計る。
 
 % 画面共有ボタンの話
 ゼミで画面共有を行う場合、発表者が頻繁に入れ替わる。
@@ -48,16 +44,15 @@
 入れ替えの度にケーブルを挿し直す必要がある。
 TreeVNCには、画面共有ボタンが付いており、
 発表者はそれを押すことによって、画面を切り替えをスムーズに行える。
+
 \begin{figure}[htpb]
   \begin{center}
-    \includegraphics[width=90mm]{pic/TreeVNC.eps}
+    \includegraphics[width=70mm]{pic/TreeVNC.eps}
   \end{center}
-  \label{fig:figure1}
+  \label{fig:treeVNC}
   \caption{TreeVNCの図}
 \end{figure}
 
-\newpage
-
 \section{VNC}
 VNC(Virtual Network Computing)は、
 RFBプロトコルを使用し遠隔操作を行うリモートデスクトップソフトである。
@@ -68,59 +63,68 @@
 \section{TreeVNC}
 TreeVNCは、TightVNCのjava版のビューアを元に
 作成された画面共有システムである。
-
+接続しにきたクライアントは図\ref{fig:treeVNC}の様に、
+ツリー状に構成される。
 
-\section{TreeVNCのリファクタリング}
-TreeVNCをリファクタリングを行い、大幅な変更を加えた。
 
 
-  \subsection{port番号の変更}
-  TreeVNCは複雑の分散アルゴリズムを用いたシステムであり、
-  デバッグを行う環境を整える必要がある。
+\section{動的なport番号の指定}
+TreeVNCは複雑な分散アルゴリズムを用いたシステムであり、
+デバッグを行う環境を整える必要がある。
+
+従来のTreeVNCでは、固定長portを複数利用していた。
+port番号は一意なので、1台で複数のTreeVNCを立ち上げることができない。
 
-  従来のTreeVNCでは、固定長ポートを複数利用していた。
-  そのせいで通信プロトコルが複雑になり、
-  1台で複数のTreeVNCを立ち上げることができなかった。
+動的にport番号を割り当てることで、
+1つのnodeに対して複数のTreeVNCを起動することを可能にした。
+最低限のソケットポートを開けることによって、
+メモリの使用量を抑えることにも繋がる。
 
-  ダイナミックにportを変更することによって、
-  1つのnodeに対して複数のTreeVNCを起動することを可能にした。
-  最低限のソケットポートを開けることによって、
-  メモリの使用を抑えた。
-
-  rootと子node間の通信を行うmessageは以下である。
+%  messageの説明にportにどんな関係があるのかあとから
+以前は固定長portを使用しmessageの通信を行っていたが、
+一意なportを割り当てられているnodeが通信を行うことによって、
+どのport番号が使用されているかを意識する必要がなくなった。
 
-  子nodeが最初にrootへと通信を行うmessage
-  (FIND\_ROOT、FIND\_ROOT\_REPLY)、
-  node間の接続を行うmessage
-  (CONNECT\_TO\_AS\_LEADER、CONNECT\_TO)、
-  どのnodeと接続するかを知らせるmessage
-  (WHERE\_TO\_CONNECT)、
-  親nodeとの接続が切れてしまった場合のmessage
-  (LOST\_PARENT)、
-  新しいnodeが接続した場合のmessage
-  (NEW\_NODE)、
-  クライアントが画面共有ボタンを押した際のmessage
-  (SERVER\_CHANGE\_REQUEST)、
-  rootとnode間の通信における遅延を計測するためのmessage
-  (CHECK\_DELAY\_REPLY)
+rootと子node間の通信を行うmessageは以下である。
+\begin{description}
+    \setlength{\parskip}{0cm} % 段落間
+  \setlength{\itemsep}{0cm} % 項目間
+  \item[CONNECT\_TO\_AS\_LEADER、CONNECT\_TO]\mbox{}\\
+    node間の接続を行うmessage
+  \item[WHERE\_TO\_CONNECT]\mbox{}\\
+    どのnodeと接続するかを知らせるmessage
+  \item[LOST\_PARENT]\mbox{}\\
+    親nodeとの接続が切れてしまった場合のmessage
+  \item[NEW\_NODE]\mbox{}\\
+    新しいnodeが接続した場合のmessage
+  \item[SERVER\_CHANGE\_REQUEST]\mbox{}\\
+    クライアントが画面共有ボタンを押した際のmessage
+  \item[CHECK\_DELAY\_REPLY]\mbox{}\\
+    rootとnode間の通信における遅延を計測するためのmessage
+\end{description}
+
+\newpage
 
 
-  \subsection{Treeの構成の変更}
+\section{Treeの構成の変更}
 
-  TreeVNCを、複数のネットワークインターフェイスで
-  使用できるようにリファクタリングを行った。
+従来のTreeVNCには、クライアントの木構造は単一であった。
+そのため、ネットワークインターフェースが違うクライアントが
+同じ木に混在している状況が生じた。
+速度の遅いクライアントが木に存在すると、
+そのクライアント以下の通信速度が遅くなってしまう。
 
-  従来のTreeVNCは、単一のネットワークでしか使用出来なかった。
-  複数のネットワークインターフェースで、
-  別の木構造を形成するように設計し直した。
+この問題を解決するために、
+図2の様に、ネットワークインターフェース別に
+木構造を形成するように設計した。
 
-  TreeVNCは、rootがnodeListというリストを持って木構造を管理している。
-  複数のネットワークインターフェースで木構造を形成する場合、
-  このnodeListをネットワークインターフェース毎に作成しておく。
-  新しいnodeを接続する際、nodeのネットワークインターフェースを取得し、
-  どのnodeListに登録されるかが決まる。
-  こうすることによって、TreeVNCを複数のネットワークインターフェイスで
-  使用することができる。
+TreeVNCは、rootがnodeListというリストを保持し、木構造を管理している。
+複数のネットワークインターフェースで木構造を形成する場合、
+このnodeListをネットワークインターフェース毎に作成しておく。
+新しいnodeを接続する際、nodeのネットワークインターフェースを取得し、
+どのnodeListに登録されるかが決まる。
+こうすることによって、TreeVNCを複数のネットワークインターフェイス別に
+木構造を構成することができる。
 
 \begin{figure}[htpd]
   \begin{center}
@@ -132,23 +136,20 @@
 
 
 
-  \subsection{ホスト切り替え時の挙動の修正}
-  画面の切り替えを行う際、ホスト側の画面の
-  ビデオフィードバックが生じてしまい、
-  その結果が他のユーザに共有されてしまう問題を解決した。
+\section{ホスト切り替え時の挙動の修正}
+画面の切り替えを行う際、新しいホスト側の画面に生じた
+ビデオフィードバックが他のユーザに共有されてしまう問題があった。
 
-  ホストを切り替える際にviewerを閉じる様、設計した。
-  また、元のホストでは、viewerが立ち上がる様にした。
+ホストの切り替えの際、
+新しいホスト側のviewerを閉じることで問題を解決した。
 
-  ビデオフィードバックが共有されないよう、
-  手動でviewerを最小化する必要がなくなった。
 
 
 \section{まとめ}
-TreeVNCに上記の様なリファクタリングを行うことによって、
-今後の開発環境を整い、
-通信できるネットワークインターフェースの幅が広がり、
-TreeVNCの利便性が向上した。
+TreeVNCにリファクタリングを行うことによって、
+有線LANや無線LANといった
+複数のネットワークインターフェイスで通信することができる。
+これは開発環境を整えることや、利便性の向上に繋がる。
 
 
 
@@ -159,15 +160,15 @@
   全画像データの書き換えが立て続けに起こってしまった場合、
   データの受け渡し処理で遅延が発生する。
 
+  送られてきた全てのデータを画面に出力するのではなく、
   VNCServerから立て続けに大きい画像データが送信されたことを検知し、
-  送られてきた全てのデータを画面に出力するのではなく、
   最新のデータのみを取得し出力するといった実装を行う。
 
 
   \subsection{エラーハンドリング}
-%  SeverChange時の子nodeのエラーメッセージがrootに出力される。
-  クライアントが画面の切替を行った際に生じた
-  クライアントのエラーが、rootに出力されるという問題がある。
+  クライアントが画面の切替を行う際、
+  接続が確立する前に、通信の段階でエラーが生じた場合、
+  そのエラーメッセージがrootに出力されるという問題がある。
 
   クライアントのエラーを検出した際にそのクライアントのIDを取得する。
   木構造を下に辿って、
@@ -177,10 +178,6 @@
   一致した箇所でエラーメッセージを出力するような実装を行う。
 
 
-%\section{新機能の実装}
-%%参加者同士の充分なコミュニケーションを提供するために、以下の機能が考えられる。
-%TreeVNCを使用し、参加者が充分なコミュニケーションを行うために、以下の機能が考えられる。
-
 
   \subsection{音声データの共有}
   現在TreeVNCが共有しているのは画面のデータのみである。
@@ -195,14 +192,11 @@
   現在のTreeVNCは、ホスト側の画面全体を送信している。
   マルチディスプレイを持っているホストだと、
   2つの画面が共有されてしまう。
-  これでは発表者が切り替わる毎に、
-  クライアント側で画面の大きさを手動で変更しなければならない。
-  そこで、画面の大きさをホスト側で変更したい。
+  共有する画面をホスト側で指定できる様にする。
 
   ホスト側にviewerの代わりに枠を用意し、
   その枠内のデータのみを共有するといった機能を追加する。
   この機能を追加することによって、
-  本来共有する必要のないデータを共有することがなくなる。