diff prepaper/finalPre.tex @ 31:d8660bf1da6f

Update prepaper
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Wed, 17 Feb 2016 22:57:52 +0900
parents 81e6e6f33521
children 8972829988e6
line wrap: on
line diff
--- a/prepaper/finalPre.tex	Wed Feb 17 22:06:56 2016 +0900
+++ b/prepaper/finalPre.tex	Wed Feb 17 22:57:52 2016 +0900
@@ -46,14 +46,8 @@
 通常の授業では先生の用意した資料、 PC 画面を見ながら授業が進むことが多い。 
 ゼミでは発表者を切り替えながら発表を行う。
 
-通常これらの画面を表示するためにプロジェクタが使用されている。
-しかし、プロジェクタでは通常の授業の際、参加者はプロジェクタに集中するため、手元の PC をほぼ使用することができない。
-更に手元の PC を使う際はプロジェクタと PC を行き来するため、目に負担がかかってしまう。
-またゼミの際には発表者を切り替えるたびにプロジェクタにケーブルを差し替える必要がある。
-ケーブルの差し替えの際に発表者の PC によってアダプターの種類や解像度の設定によって正常に PC 画面を表示できない場合もある。
-
 画面配信システム TreeVNC\cite{taninari:2011a}は発表者の画面を参加者の PC に表示する。
-そのため、参加者は不自由なく手元の PC を使用しながら授業を受ける事が可能になる。
+そのため、参加者は手元の PC を使用しながら授業を受ける事が可能になる。
 更に発表者の切り替えの際もケーブルの差し替えずに共有する画面の切替を可能としている。
 
 Tree VNC は VNC\cite{vnc} を使用した画面配信を行っている。
@@ -79,7 +73,7 @@
 
 \begin{figure}[htbp]
     \begin{center}
-        \includegraphics[width=60mm]{./pic/treeVnc.pdf}
+        \includegraphics[width=50mm]{./pic/treeVnc.pdf}
     \end{center}
     \caption{構成される木構造}
     \label{fig:tree}
@@ -110,9 +104,7 @@
 
 \section{マルチディスプレイ対応}
 画面配信側のPCがマルチディスプレイの場合、 VNC サーバーからは複数の画面全体の画像データが送信されてしまう。
-
-授業やゼミ等でTreeVNCを使用する場合、複数画面の表示は必要ない。
-そこで、画面を共有する際、ディスプレイを選択させ、画面共有を行う機能を追加した。
+そこで、画面を共有する際、ディスプレイを選択させ、画面共有を行う機能を追加した\cite{parusu:2016a}。
 
 ディスプレイの情報は個々のクライアントでしか取得ができない。
 そのため、配信側は画面の切替を行う際に、ディスプレイを選択し、そのディスプレイの左上と右下の座標を取得する。
@@ -146,29 +138,70 @@
 そのため、 画面切り替えを行う際に切り替え先が VNC サーバーの共有設定をしていない場合 Root Node に接続エラーのダイアログが表示されるという実装になっており、切り替えを行ったクライアントには通知されていなかった。
 
 この問題を解決するために新しくERROR\_ANNOUNCE というメッセージを追加した。
-図\ref{fig:errorAnnounce} は Node3 に対してエラー通知を行っている例を示している。
 ERROR\_ANNOUNCE メッセージは Root Nodeから木構造を辿りながら末端の Node に通信を行うメッセージで、エラー通知したいクライアントの Node Nuber と エラー内容の文字列を付加して送信する。
 付加した Node Number に一致する Node がメッセージを受け取ると、 付加されたエラーの文字列をダイアログで表示する。
 エラー通知用のメッセージを追加することで、 各々のクライアントに対して通知を行うことが可能になった。
 
+\section{TreeVNC の評価}
+VNC サーバー から受信する画像データ、 TreeVNC で扱われるメッセージ通信は構成された木を伝って伝達される。
+接続する人数が増える毎に木の段数は増えていく。 そこで Root Node から木の末端の Node までの画像データ伝達の遅延を検証する実験を行った。
+
+今回授業を受講している学生が TreeVNC を使用した状態で実験を行った。
+TreeVNC には最大で17名が接続していた。 
+バイナリツリーで木を構成した場合、 Node 数が17台だと深さが4となる。
+
+図\ref{fig:depth}は深さ4 のち円の分布を示した散布図である。
+X軸はメッセージ伝達にかかった秒数(ms)、 Y軸は画像データのサイズ(Byte)である。
+画像データの伝達はほぼ1秒以内に収まっているが、容量が小さい場合でも時間がかかる場合がある。
+それはその送信の前に大容量の画像を送信した後の回線のDelayが残っているためだと考えられる。
+
 \begin{figure}[htbp]
     \begin{center}
-        \includegraphics[width=70mm]{./pic/errorAnnounce.pdf}
+        \includegraphics[width=60mm]{./pic/depth4.eps}
     \end{center}
-    \caption{ERROR\_ANNOUNCE メッセージの挙動}
-    \label{fig:errorAnnounce}
+    \caption{データサイズと遅延の関係 : 深さ4}
+    \label{fig:depth}
 \end{figure}
 
-\section{TreeVNC の評価}
+また、この実験で1つだけ極端に遅い Node が見られた。
+このような Node を木に配置した場合、その Node の 子 Node 以下に影響を及ぼすおそれがある。
+
+\section{ボトルネックになっている Node への対処}
+画像データを受け取る時間が遅い Node をそのまま木構造に配置しているとその子 Node 以下に影響を及ぼす。
+そのためネックになっている Node への対処が必要である。
+
+ボトルネックになっている Node への対処として CHECK\_DELAY\_REPLAY メッセージを使用している。
+図\ref{fig:fixTree}は 6台の Node が接続している状態で Node1 がネックになっている場合の木の再構成を示している。
+CHECK\_DELAY\_REPLAY メッセージを受け取った Root Node はその Node がボトルネックなっているかの判断を行う。
+ボトルネックになっているなら Root Node の nodeList からその Node を削除する。
+削除した Node の場所には末端の Node を配置するように CONNECT\_TO メッセージを送信する。
+nodeList から削除された Node は接続されたままなので、データの受信は行うが、 木構造には入らないため、ネックになっている Node の下に新しい Node が繋がることはない。
+そのためネックになっている Node 以下に影響を及ばすことがない。
+
+\begin{figure}[htbp]
+    \begin{center}
+        \includegraphics[width=100mm]{./pic/fixTree.pdf}
+    \end{center}
+    \caption{ボトルネックになっている Node への対処}
+    \label{fig:fixTree}
+\end{figure}
 
 \section{まとめ}
-本研究では画面配信システム TreeVNC での NAT 対応、 リファクタリングによる機能改良、 TreeVNC の評価を行った。 
+本研究では画面配信システム TreeVNC での NAT 対応、 マルチディスプレイ対応、共有画面切り替えの安定化、 各 Node へのエラー通知、TreeVNC の評価を行った。
+
 NATを越えに対応した Direct Connection という接続方法を確立し実装した。
 これにより、NAT を越えた別ネットワークのユーザーが TreeVNC に参加することが可能となった。
-また、リファクタリングによって以下の機能の改良を行い、安定性の向上をおこなった。
+
+マルチディスプレイの場合に画面を選択して配信することが可能になった。
+
+画面切り替えの際に切り替え用のスレッドを用意することでスムーズな画面切り替えが可能。
 
-\section{今後の課題}
-今回追加した Direct Connection では NAT を 越えたネットワークの画面の配信を行うのみであ り、 TreeVNC の利点の 1 つである画面切り替え を行うことが出来ない。そのため、NAT を越えた ネットワークでの画面切り替えの実装を行う。
+新しく ERROR\_ANNOUNCE メッセージを追加することで各Nodeにエラー通知を行える様になった。
+
+今回の画像データの遅延実験を行い、 ボトルネックになっているノードがあることがわかった。
+また、ボトルネックになっているノードへの対処を行った。
+
+また今後の課題として音声配信機能の実装、マルチディスプレイ時の表示画面サイズの調整を行う
 
 \nocite{*}
 \bibliographystyle{junsrt}