changeset 12:53afd895a367

change chapter4.tex
author Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
date Thu, 23 Feb 2012 22:11:54 +0900
parents 92a06963b6a9
children 6fd4463ca136
files paper/chapter4.tex paper/thesis-paper.tex
diffstat 2 files changed, 38 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/paper/chapter4.tex	Thu Feb 23 22:04:15 2012 +0900
+++ b/paper/chapter4.tex	Thu Feb 23 22:11:54 2012 +0900
@@ -20,6 +20,43 @@
 TreeVNCはTightVNCのjava版のビューアを元に作成を行った。実装の細かい内容は以下で説明する。TreeVNCはTightVNCのjava版のビューアを元に作成を行った。
 
 
+\newpage
+\section{木の生成}
+今回は、ホストに対しクライアントがツリー状に繋がっていくように実装した。ツリー\\
+の構成は以下の手順で行う。
+ \begin{enumerate}
+  \item クライアントが接続する際、ホストに接続をしているプロキシ(今後このプロ\\
+キシのことをTopと記述する)に接続する。
+ \item Topはクライアントにどこに接続すれば良いかを知らせる。
+ \item クライアントはTopから指定されたノードに接続を行う。
+ \end{enumerate}
+\subsection{Topの仕事}
+Topはjava.util.LinkedListでクライアントの情報を保持している。
+
+TopはtreeBranch(木の分木数)を定数で持っていて
+クライアントが接続してくるごとにcounterをインクリメントしていき
+LinkedListの(counter - 1)/treeBranche番目に入っている親の情報を
+接続してきたクライアントに教えることで木を構成することができる。
+\newpage
+\section{木の再構成}
+\newpage
+\section{クライアントとの通信}
+TreeVNCは、受け取った画面の描画データをそのまま自分に繋がっている次のクライアン\
+トに送信する。
+描画データを受け取ったクライントはまた次のクライアントへデータをそのまま送信す\\
+る。
+内部では、まず受け取った描画データの読み込みを先に行いBytebufferでコピーを行う\\
+。
+次にクライアントへの送信と自身のビューアへの描画を並列に行う。
+
+\subsection{FramebufferrUpdate}
+RFB プロトコルでの画面の描画の更新は、FramebufferUpdateで行われる。
+FramebufferUpdateを受け取ることで画面の再描画が行われる。
+FrameBufferUpdateでは、メッセージタイプと画面の矩形の数がまず送られ、
+次にx座標、y座標、横幅、縦幅、エンコードのタイプ、描画データが矩形の数だけ送ら\\
+れてくる。
+描画データはエンコードのタイプに従った方法で送られてくる。
+
 \subsection{MulticastQueue}
 画面が更新された際に更新をクライアントに伝えなければならない。ノードが多数ある場合、一人一人に更新を知らせるのではなく、同時に画面の更新を知らせたい。
 同時に更新を知らせるために、CountDownLatchを用いてMultiCastQueueを作成した。
--- a/paper/thesis-paper.tex	Thu Feb 23 22:04:15 2012 +0900
+++ b/paper/thesis-paper.tex	Thu Feb 23 22:11:54 2012 +0900
@@ -50,7 +50,7 @@
 \input{chapter4.tex}
 
 % 設計
-\input{chapter5.tex}
+%\input{chapter5.tex}
 
 % 今後の課題
 %\input{chapter5.tex}