# HG changeset patch # User Yu Taninari # Date 1330002255 -32400 # Node ID 92a06963b6a948916138c0c4a3ff9cfef9ba8794 # Parent d18e410d728ae355ef3219df1c1f565d9f80e42a# Parent 6c2887fc9df6861f99beb170a22204978f0fa0dd merge diff -r d18e410d728a -r 92a06963b6a9 paper/chapter4.tex --- a/paper/chapter4.tex Thu Feb 23 22:01:44 2012 +0900 +++ b/paper/chapter4.tex Thu Feb 23 22:04:15 2012 +0900 @@ -1,4 +1,4 @@ -\chapter{TreeVNCの実装} +\chapter{TreeVNCの設計} \label{chap:introduction} \pagenumbering{arabic} @@ -18,36 +18,7 @@ 今回作成した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座標、横幅、縦幅、エンコードのタイプ、描画データが矩形の数だけ送られてくる。 -描画データはエンコードのタイプに従った方法で送られてくる。 \subsection{MulticastQueue} 画面が更新された際に更新をクライアントに伝えなければならない。ノードが多数ある場合、一人一人に更新を知らせるのではなく、同時に画面の更新を知らせたい。 @@ -117,14 +88,16 @@ Topとクライアント側では毎回新しく作る必要がある(クライアント側はinflaterだけ)。 また、ZRLEEはクライアント側が対応していなければならないという問題がある。 -\subsubsection{ZRLEとZRLEEのデータ圧縮率の比較} + +\subsubsection{ZRLEとZRLEEのデータ圧縮率の比較} RAW,ZRLE,ZRLEEのデータ量の比較を行った。 -図6は1920 * 1080の画面の全描画にかかるデータ量を測った結果を示した図である。ZRL\ -EEの方がデータ量が少なくですんでいる。 -これは、ZRLE(Zlib)が初めに送られた辞書を用いての解凍が余り有効的に働いていない\\ +図6は1920 * 1080の画面の全描画にかかるデータ量を測った結果を示した図である。 +ZRLEEの方がデータ量が少なくですんでいる。 +これは、ZRLE(Zlib)が初めに送られた辞書を用いての解凍が余り有効的に働いていない 場合があるからだと思われる。 -つまりVNCの場合はZRLEEの様に毎回辞書のデータを付加させて送ってもデータ量に差が\\ -でない可能性があることが分かった。 +つまりVNCの場合はZRLEEの様に毎回辞書のデータを付加させて送ってもデータ量に差が +でない可能性があることが分かった。 + \begin{figure}[!htbp] \begin{center} @@ -138,6 +111,9 @@ \end{figure} +\newpage + + \section{UserInterface} \subsection{プロキシの検索} TreeVNCはクライアントが起動した際にBroadcastをしようして、 @@ -150,6 +126,7 @@ プロキシを始動するには-pオプションを指定してやる事で localhostに対してVNCをかける事ができる。 + 別のコンピュータの画面共有を行いたい場合は-pオプションを指定してやるか 、第一引数にIpAddress,第に引数にportを指定してやる事で別のコンピュータの 画面共有も行う事ができる。 @@ -164,4 +141,3 @@ 入力する事で、別セグメントのプロキシとも通信をできるようにした。 \section{lionAuthenticate} - diff -r d18e410d728a -r 92a06963b6a9 paper/thesis-paper.tex --- a/paper/thesis-paper.tex Thu Feb 23 22:01:44 2012 +0900 +++ b/paper/thesis-paper.tex Thu Feb 23 22:04:15 2012 +0900 @@ -49,6 +49,9 @@ % 設計方針 \input{chapter4.tex} +% 設計 +\input{chapter5.tex} + % 今後の課題 %\input{chapter5.tex}