# HG changeset patch # User Yu Taninari # Date 1329998311 -32400 # Node ID 6c2887fc9df6861f99beb170a22204978f0fa0dd # Parent 29c8a800cc95cb0c311c041605e757a7003f559b# Parent bb5fa4c369e5b29344e4e616abc1e5274c016331 merge diff -r 29c8a800cc95 -r 6c2887fc9df6 paper/chapter4.tex --- a/paper/chapter4.tex Thu Feb 23 20:54:40 2012 +0900 +++ b/paper/chapter4.tex Thu Feb 23 20:58:31 2012 +0900 @@ -1,4 +1,4 @@ -\chapter{TreeVNCの実装} +\chapter{TreeVNCの設計} \label{chap:introduction} \pagenumbering{arabic} @@ -18,37 +18,9 @@ 今回作成したTreeVNCは、上記の実装でツリー状にクライアントを接続していくように実装を行い画面の共有だけを行うように実装した。 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座標、横幅、縦幅、エンコードのタイプ、描画データが矩形の数だけ送られてくる。 -描画データはエンコードのタイプに従った方法で送られてくる。 - +<<<<<<< local \subsection{MulticastQueue} 画面が更新された際に更新をクライアントに伝えなければならない。ノードが多数ある場合、一人一人に更新を知らせるのではなく、同時に画面の更新を知らせたい。 同時に更新を知らせるために、CountDownLatchを用いてMultiCastQueueを作成した。 diff -r 29c8a800cc95 -r 6c2887fc9df6 paper/thesis-paper.tex --- a/paper/thesis-paper.tex Thu Feb 23 20:54:40 2012 +0900 +++ b/paper/thesis-paper.tex Thu Feb 23 20:58:31 2012 +0900 @@ -49,6 +49,9 @@ % 設計方針 \input{chapter4.tex} +% 設計 +\input{chapter5.tex} + % 今後の課題 %\input{chapter5.tex}