annotate paper/prosym.tex @ 10:7e2f72bafa1b

Up feedback
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 10 Nov 2015 22:30:05 +0900
parents fe911ee74f59
children 6daaf5e03e4d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
10e5ea7ae31e Fix Encoding
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
1 % withpage: ページ番号をつける (著者確認用)
7
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
2 \documentclass[dvipdfmx]{ipsjprosym}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
3 \usepackage[dvipdfmx]{graphicx}
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
4 \usepackage{url}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
5 \usepackage{listings, jlisting}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
6 \lstset{%
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
7 language={java},%使用言語
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
8 basicstyle={\small},%書体
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
9 commentstyle={\small\itshape},%コメントの書体
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
10 keywordstyle={\small\bfseries},%キーワードの書体
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
11 %identifierstyle={\small},%
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
12 %ndkeywordstyle={\small},%
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
13 stringstyle={\small},%文字列の書体
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
14 frame={trlb},%外枠
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
15 breaklines=true,%改行
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
16 columns=[l]{fullflexible},%
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
17 xrightmargin=0zw,%
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
18 xleftmargin=3zw,%
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
19 numbers=left,%行番号の表示
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
20 numberstyle={\scriptsize},%行番号の書体
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
21 numbersep=1zw,%
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
22 stepnumber=1,
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
23 lineskip=-0.5ex,%
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
24 captionpos=b,%キャプションの位置
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
25 moredelim=**[s][\color{red}]{\"compressed}{\"},
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
26 }
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
27 \renewcommand{\lstlistingname}{Code}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
28 \input{dummy.tex} %% Font
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 \begin{document}
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
32 % ユーザー定義したマクロなど
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
33 \makeatletter
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
34 \let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
35 \def\<{\(\langle\)}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
36 \def\>{\(\rangle\)}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
37 %\def\|{\verb|}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
38 \def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
39 \def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
40 \def\LATEX{\iLATEX\Large}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
41 \def\LATEx{\iLATEX\normalsize}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
42 \def\LATex{\iLATEX\small}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
43 \def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
44 \ T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
45 \def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
46 \def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
47 \def\Quote{\list{}{}\item[]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
48 \let\endQuote\endlist
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
49 \def\TT{\if@LaTeX@e\tt\fi}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
50 \def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
51 $\backslash$#1\fi}
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
53 % Title, Author %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
54 \title{有線 LAN 上のPC画面配信システムTreeVNCの改良}
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
56 \affiliate{IE}{琉球大学工学部情報工学科}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
57
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
58 \author{伊波 立樹}{Tatsuki IHA}{IE}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
59 \author{河野 真治}{Shinji KONO}{IE}
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 \begin{abstract}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
62 ゼミや授業等で、それぞれがPC端末を持っている場合では、PCの機能を活かしたコミュニケーションが可能である。教員が操作する画面をそのまま学生に配信したり, ゼミなどで、発表する学生の画面を切り替えたりすることを可能にしたい。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
63 TreeVNCは参加したクライアントをバイナリツリー状に接続し、配信コストを分散させる仕組みを取っている。そのため,多人数が参加しても処理性能が下がらない。また、ツリーのRootが見ているVNCサーバーを変更することで、ケーブルの差し替えなしに画面の切替が可能となる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
64 今研究ではTreeVNCの改良として、WANへの対応、 マルチディスプレイへの対応を行う。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 \end{abstract}
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 \begin{jkeyword}
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 \end{jkeyword}
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 \maketitle
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
73 \section{研究背景と目的}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
74 ゼミや授業等で、それぞれがPC端末を持っている場合では、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
75 PCの機能を活かしたコミュニケーションが可能である。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
76 教員が操作する画面をそのまま学生に配信したり、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
77 ゼミなどで、発表する学生の画面を切り替えたりすることを可能にしたい。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
78
7
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
79 TreeVNC画面配信システム\cite{oc:thesis}\cite{taninari:2012a}は、
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
80 参加したクライアントをバイナリツリー状に接続し、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
81 配信コストをクライアントにバランスさせる仕組みになっている。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
82 なので、多人数が参加しても処理性能が下がらない。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
83 また、RFBプロトコルを用いているので、ケーブルの差し替えなしに
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
84 共有している画面の切り替えが可能になっている。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
85
10
7e2f72bafa1b Up feedback
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
86 今研究では、 WAN 、マルチディスプレイへの対応を行った。
6
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
87 WANへの対応として、新しい接続方法を提案し、実装を行った。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
88 また、マルチディスプレイへの対応としては配信する際に、配信するディスプレイ情報を取得し、配信を行うことで、対応した。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
89
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
90 \section{画面配信システムTreeVNC}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
91 \subsection*{[RFBプロトコル]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
92 RFB(remote frame buffer)プロトコル\cite{rfbProtocol}とは、自身の画面を送信し、ネットワーク越しに他者の画面に表示するプロトコルである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
93 ユーザが居る側をRFBクライアント側と呼び、Framebufferへの更新が行われる側はRFBサーバと呼ぶ。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
94 Framebufferとは、メモリ上に置かれた画像データのことである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
95 RFBプロトコルでは、最初にプロトコルバージョンの確認や認証が行われる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
96 その後、クライアントに向けてFramebufferの大きさやデスクトップに付けられた名前などが含まれている初期メッセージが送信される。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
97 RFBサーバ側はFramebufferの更新が行われるたびに、RFBクライアントに対してFramebufferの変更部分だけを送信する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
98 更にRFBクライアントのFramebufferUpdateRequestが来るとそれに答え返信する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
99 RFBプロトコルは、描画データに使われるエンコードが多数用意されており、また独自のエンコードを実装することもできるプロトコルである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
100
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
101 \subsection*{[TightVNC]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
102 TightVNC(Tight Virtual Network Computing)\cite{tightvnc}はJavaを用いて作成されたRFBプロトコルのクライアントである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
103 本研究で作成したTreeVNCはTightVNCを元に作成されている。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
105 \subsection*{[多人数で VNC を使用する時の問題点]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
106 多人数で従来の VNC を使用する際、1つのコンピュータに多人数が同時につながり、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
107 処理が集中してしまい、性能が大幅に落ちてしまうという問題が生じる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
108
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
109 ゼミ等の画面配信者が頻繁に切り替わる場合、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
110 配信者が替わる度にアプリケーションを終了し、接続をし直さないといけないという問題がある。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
111
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
112 \subsection*{[TreeVNC の構造]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
113 多人数で VNC を用いるために、クライアントの接続がサーバに一極集中してしまう問題を解決する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
114 そのために、 TreeVNC はサーバへ接続しに来たクライアントをバイナリツリー状に接続する(図\ref{fig:tree})。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
115 バイナリツリーなら、各nodeに最大2台分のクライアントしか接続されない。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
116 $N$台のクライアントが接続しに来た場合、画面配信の画像データをコピーする回数は、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
117 従来の VNC ではサーバ側で$N$回する必要があるが、TreeVNCでは各 node が2回ずつコピーするだけで済む。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
118 TreeVNC は、root への負荷を各 node に分散することにより、処理性能が向上している。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
119
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
120 \begin{figure}[ht]
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
121 \begin{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
122 \includegraphics[width=70mm]{./pic/TreeVNC.pdf}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
123 \end{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
124 \caption{構成される木構造}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
125 \label{fig:tree}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
126 \end{figure}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
127
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
128 \subsection*{[Multicast や Broadcast を用いたVNC]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
129 Multicast とは、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
130 同一ネットワーク内でマルチキャストアドレスを持っている端末に対してデータを送信することである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
131 Broadcast とは、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
132 同一ネットワーク上の全ての端末に対してデータを送信することである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
133 どちらの通信方法も、root からのデータ送信は1回でよく、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
134 1度データの送信を行うとデータの複製はルータが行う。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
135
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
136 VNC を Multicast や Broadcast の通信方法を用いて実装すると、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
137 画像データの送信が1度で済むため、負荷分散のために木構造を形成する必要もなくなる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
138
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
139 しかし、これらの通信方法でのパケットの扱いには
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
140 \begin{itemize}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
141 \item 送信可能なパケットのブロックサイズが 64000byte までであると決まっている
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
142 \item パケットが途中で消失してしまっても特定することができない
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
143 \end{itemize}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
144 といった性質がある。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
145
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
147 VNC でこれらの通信方法を用いて実装する場合、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
148 パケットの扱いの性質を乗り越えなければならない。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
149
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
150 送信可能なパケットのサイズが決まっているので、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
151 画面データは 64000byte 以下に分割し送信しなければならない。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
152 しかし、現在の TreeVNC で用いている方法では、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
153 データ分割の処理には時間がかかってしまう。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
155 パケットの消失を検知するために、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
156 各パケットに対してシリアル番号を振り分ける。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
157 パケットを受信した node 側で、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
158 シリアル番号が連番で届いているのかどうかを調べれば、消失を検知することが可能である。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
159 もしパケットが届いていなかった場合は、root に対して再送要求を送信すれば良い。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
160 しかし、Multicast や Broadcast 通信ではパケットロス率が高かった。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
161
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
162 これらの通信方法を用いての VNC の実装にはもう更なる工夫が必要である。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
163
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
164
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
165
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
166 \subsection*{[node 間で行われるメッセージ通信]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
167 RFBプロトコルで提供されているメッセージに加え、 TreeVNC 独自のメッセージを使用している。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
168 TreeVNC で使用されるメッセージの一覧を表\ref{tb:message}に示す。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
169
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
170
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
171 \begin{table}[h!]
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
172 \large
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
173 \scalebox{0.4} {
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
174 \begin{tabular}{|l|l|l|} \hline
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
175 通信経路 & message & 説明 \\ \hline \hline
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
176 & FIND\_ROOT & TreeVNC接続時にrootを探す。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
177 send direct message & WHERE\_TO\_CONNECT & 接続先をrootに聞く。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
178 (child to root) & LOST\_CHILD & 子nodeの切断をrootに知らせる。 \\ \hline \hline
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
179
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
180 & FIND\_ROOT\_REPLY & FIND\_ROOTへの返信。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
181 send direct message & CONNECT\_TO\_AS\_LEADER & 左子nodeとして接続する。接続先のnodeが含まれている。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
182 (root to child) & CONNECT & 右子nodeとして接続する。接続先のnodeが含まれている。 \\ \hline \hline
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
183
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
184 message down tree & FRAMEBUFFER\_UPDATE & 画像データ。EncodingTypeを持っている。\\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
185 (root to child) & CHECK\_DELAY & 通信の遅延を測定する。 \\ \hline \hline
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
186
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
187 message up tree & CHECK\_DELAY\_REPLY & CHECK\_DELAYへの返信。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
188 (child to root) & SERVER\_CHANGE\_REQUEST & 画面切り替え要求。 \\ \hline \hline
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
189
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
190 & FRAMEBUFFER\_UPDATE\_REPLY & 画像データの要求。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
191 send message & SET\_PIXEL\_FORMAT & pixel値の設定。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
192 (root to VNCServer) & SET\_ENCODINGS & pixelデータのencodeTypeの設定。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
193 & KEY\_EVENT & キーボードからのイベント。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
194 & POINTER\_EVENT & ポインタからのイベント。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
195 & CLIENT\_CUT\_TEXT & テキストのカットバッファを持った際のmessage。 \\ \hline \hline
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
196
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
197 & FRAMEBUFFER\_UPDATE & 画像データ。EncodingTypeを持っている。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
198 send message & SET\_COLOR\_MAP\_ENTRIES & 指定されているpixel値にマップするRGB値。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
199 (VNCServer to root) & BELL & ビープ音を鳴らす。 \\ \cline{2-3}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
200 & SERVER\_CUT\_TEXT & サーバがテキストのカットバッファを持った際のmessage。 \\ \hline
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
201 \end{tabular}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
202 }
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
203 \caption{通信経路とメッセージ一覧}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
204 \label{tb:message}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
205 \end{table}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
206
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
207
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
208 図\ref{fig:message}は
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
209 TreeVNC で node が root に接続し、画像データを受信するまでのメッセージ通信の様子である。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
210
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
211 手順として
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
212
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 \begin{itemize}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
214 \item nodeはMulticast通信でrootに対してFIND\_ROOTを送信する(1:findRoot())
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
215 \item rootがFIND\_ROOTを受信し、FIND\_ROOT\_REPLYを送信する(2:findRootReplay())
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
216 \item node側で、どのrootに接続するかを選択するパネルが表示される
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
217 \item nodeはパネルで接続するrootを選択し、rootに対して接続先を要求するWHERE\_TO\_CONNECTを送信する(3:whereToConnect())
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
218 \item 受信したrootはnodeの接続先をCONNECT\_TOで送信する(4:connectTo)
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
219 \item nodeはrootの指定した接続先に接続しに行く
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
220 \item root・node間の接続が確立後、rootからnodeに対して定期的に画像データFRAME\_BUFFER\_UPDATEを送信する(5:framebufferUpdate())
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 \end{itemize}
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
222
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
223 を行っている。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
224
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
225 \begin{figure}[ht]
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
226 \begin{center}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
227 \includegraphics[width=65mm]{./pic/message.pdf}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
228 \end{center}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
229 \caption{node 間で行われるメッセージ通信}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
230 \label{fig:message}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
231 \end{figure}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
232
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
233
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
234 \subsection*{[配信画面切り替え]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
235 ゼミでは発表者が順々に入れ替わる。発表者が入れ替わる度に共有する画面の切り替えが必要となる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
236 ゼミを円滑に進めるために、画面の切り替えをスムーズに行いたい。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
237
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
238 画面の共有にプロジェクタを使用する場合、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
239 発表者が変わる度にケーブルの抜き差しを行わないとならない。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
240 その際に、ディスプレイ解像度を設定し直す必要が出たり、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
241 接続不良が起こる等の煩わしい問題が生じることがある。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
242
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
243 従来のVNCを使用する場合、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
244 画面の切り替えの度に一旦VNCを終了し、発表者のVNCServerへと再接続を行う必要がある。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
245
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
246 TreeVNC は、配信者の切り替えの度に生じる問題を解決している。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
247 TreeVNC を立ち上げることで、ケーブルを使用する必要なしに、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
248 各参加者の手元のPCに発表者の画面を共有することができる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
249 画面の切り替えは、ユーザがVNCSeverへの再接続を行うことなく、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
250 share button を押すことによって、配信者の切り替えを行うことができる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
251
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
252 TreeVNC の root は配信者の VNCServer と通信を行っている。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
253 VNCServer から画面データを受信し、そのデータを node へと送信している。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
254 配信者切り替え時に share button が押されると、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
255 root は share button を押したクライアントの VNCServer と通信を始める。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
256 TreeVNCは、配信者切り替えの度に VNC を終了し、再接続する必要がない。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
257
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
258 しかし、配信者と受信者の画面サイズの違いや、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
259 マルチディスプレイ全体を共有してしまう問題があるので、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
260 それらを解決する必要がある。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
261
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
262 \section{QUALITYモードとSPEEDモード}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
263 高解像度のまま拡大・縮小の処理を行うと、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
264 PC のスペックによっては描画処理に時間がかかってしまうことがある。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
265 配信者の画面をリアルタイムに取得するため、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
266 描画処理に時間のかからないモードを追加する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
267
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
268 画像描画処理には、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
269 高画質優先の QUALITY モードと描画速度優先の SPEED モードがある。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
270 今まで TreeVNC は QUALITY モードで使用していた。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
271
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
272 今回、どちらのモードを使用するかを Viewer から変更出来るようにした。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
273 これにより、描画処理の遅延を解決することができた。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
274
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
275 \section{マルチディスプレイ対応}
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
276 画面配信側のPCがマルチディスプレイの場合、
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
277 VNCServer からは複数の画面全体の画像データが送信されてしまう。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
278
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
279 授業やゼミ等でTreeVNCを使用する場合、複数画面の表示は必要ない。
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
280 そこで、画面を共有する際、ディスプレイを選択させ、画面共有を行う機能を追加した。
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
281
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
282 ディスプレイの情報は個々のクライアントでしか取得ができない。
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
283 なので、配信側は画面の切替を行う際に、ディスプレイを選択し、そのディスプレイの左上と右下の座標を取得する。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
284 その座標を root への画面切り替えを要求する SERVER\_CHANGE\_REQUEST message に付加させる。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
285 root は 配信側の VNCServer に画像データを要求する FRAMEBUFFER\_UPDATE\_REPLY message に送信された座標を付加する。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
286 VNCServer は要求された座標内の画像データを FRAMEBUFFER\_UPDATE message で root に送信する。
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
287 これにより、一画面のみの表示が可能となる。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
288
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
289 図\ref{fig:multidisplay} は Display1 のみを画面共有する例を示している。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
290
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
291 \begin{figure}[ht]
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
292 \begin{center}
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
293 \includegraphics[width=70mm]{./pic/shareScreenToMultiDisplay.pdf}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
294 \end{center}
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
295 \caption{マルチディスプレイへの対応}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
296 \label{fig:multidisplay}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
297 \end{figure}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
298
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
299 \section{無線LANへの対応}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
300 授業でTreeVNCを使用する場合、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
301 有線を使用するか否かは学生によって違う。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
302 TreeVNCを有線・無線の両方からの接続に対応したい。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
303
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
304 従来の TreeVNC は、クライアントの接続する木構造が単一であった。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
305 そのため、単一のネットワークインターフェースでしか使用することができなかった。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
306
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
307 この問題を解決するために、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
308 図\ref{fig:multinetworktree}の様に、ネットワークインターフェース別に
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
309 木構造を形成するように設計した。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
310
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
311 \begin{figure}[ht]
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
312 \begin{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
313 \includegraphics[width=70mm]{./pic/MultiNetworkTree.pdf}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
314 \end{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
315 \caption{Multi Network Tree}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
316 \label{fig:multinetworktree}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
317 \end{figure}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
318
7
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
319 TreeVNC は root が TreeManager というオブジェクトを持っている。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
320 TreeManager は TreeVNC の接続部分を管理している。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
321 TreeManager では木構造を管理する nodeList が生成される。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
322 この nodeList を元に、新しい node の接続や、node の切断検出時の接続の切り替え等を行う。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
323
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
324 root の保持しているネットワークインタフェース毎に
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
325 TreeManager を生成する様に変更した。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
326
7
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
327 新しい node が接続してきた際、 interfaces から node のネットワークインタフェースと一致する TreeManager を取得する。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
328 その TreeManager に、node 接続の処理を任せる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
329
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
330 こうすることによって、TreeVNC を複数のネットワークインターフェース別に
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
331 木構造を構成することができる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
332
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
333 \section{WANへの対応}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
334 遠隔地からでもゼミや授業に参加できるよう、
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
335 別ネットワークから TreeVNC への接続を可能にした。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
336
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
337 図\ref{fig:directConnection} に別ネットワークからの接続を示す。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
338 別ネットワークからTreeVNCに参加する際、 直接配信側のネットワークの root に接続を行う。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
339 この接続を Direct Connection と呼ぶ。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
340
7
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
341 Direct Connection した node はそのネットワークの root になり、node はそのネットワークの root に接続し、木構造を生成する。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
342
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
343 配信側の root は Direct Connection で接続された node に対して Framebuffer Update で 画像データを別ネットワークの node に送信する。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
344 Framebuffer Update が送信された node はそのネットワークの root なので、子 node に対して Framebuffer Update を送信する。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
345
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
346 これにより、別ネットワークでの画面共有が可能となる。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
347
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
348 \begin{figure}[ht]
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
349 \begin{center}
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
350 \includegraphics[width=80mm]{./pic/directConnection.pdf}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
351 \caption{遠隔地 node からの接続}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
352 \label{fig:directConnection}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
353 \end{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
354 \end{figure}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
355
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
356
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
357 \section{評価}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
358 \subsection*{[木の深さによるメッセージ伝達の遅延]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
359 VNCServer から受信する画像データ、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
360 TreeVNC で扱われるメッセージ通信は構成された木を伝って伝達される。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
361 接続する人数が増える毎に木の段数は増えていく。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
362 そこで root から木の末端の node まで、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
363 メッセージが遅延することなく伝達できているかを検証する実験を行った。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
364
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
365
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
366 \subsection*{[実験環境]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
367 授業を受講している学生が TreeVNC を使用した状態で実験を行った。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
368 TreeVNC には最大で34名が接続していた。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
369
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
370 \subsection*{[メッセージを使用した実測]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
371 TreeVNC を伝搬するメッセージに、CHECK\_DELAY・CHECK\_DELAY\_REPLY を追加した。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
372 CHECK\_DELAY は root から node の末端まで伝達するメッセージ(図\ref{fig:checkdelay}, 左)、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
373 CHECK\_DELAY\_REPLY は各 node から root まで伝達するメッセージ(図\ref{fig:checkdelay}, 右)である。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
374
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
375 \begin{figure}[ht]
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
376 \begin{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
377 \includegraphics[width=70mm]{./pic/checkDelay.pdf}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
378 \end{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
379 \caption{CHECH\_DELAY, CHECK\_DELAY\_REPLY}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
380 \label{fig:checkdelay}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
381 \end{figure}
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
382
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
383 CHECK\_DELAY message は、送信時刻を付けて送信する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
384 root から CHECK\_DELAY 送信し、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
385 末端 node まで各 node を伝いながら伝達して行く。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
386
8
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
387 CHECK\_DELAY\_REPLY には CHECK\_DELAY から受け取った送信時刻をそのまま付つけて送信する。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
388 CHECK\_DELAY を受け取った各 node は CHECK\_DELAY\_REPLY を接続している親 node に送信する。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
389
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
390 CHECK\_DELAY\_REPLY を受け取った root は、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
391 メッセージの伝達にどれだけの時間がかかったかを計算する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
392
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
393 計算方法を以下のソースコード\ref{calc}に記述する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
394 各 node にデータを下ろす際も、root にデータが上る際も、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
395 木を伝い受け渡されている。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
396 なので、データが root から末端 node に伝わる時間は、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
397 CHECK\_DELAY を送信した時間と、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
398 CHECK\_DELAY\_REPLY を受信した時間の半分であるといえる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
399
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
400 \begin{table}[htb]
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
401 \begin{lstlisting}[label=calc, caption=遅延時間の計算方法]
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
402 Long delay = System.currentTimeMillis() - time;
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
403 double halfDelay = (double) delay / 2;
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
404 \end{lstlisting}
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
405 \end{table}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
406
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
407
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
408 \subsection*{[depth毎の遅延結果]}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
409 バイナリツリーで木を構成した場合、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
410 node 数が34台だと深さが5となる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
411 各木構造の階層毎に、メッセージの伝搬にかかった時間を測定した。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
412
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
413 図\ref{fig:test}は遅延の分布を示したヒストグラムである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
414 X軸はメッセージ伝達にかかった秒数(ms)、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
415 Y軸は CHECK\_DELAY\_REPLY を送信した node の割合を表している。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
416
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
417 ほとんどのメッセージの伝達は 0.0 〜 4.0 ミリ秒内に収まっている。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
418 木の段数毎に、メッセージ伝達速度の差が生じている。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
419 深い段数の node ほど、メッセージ伝達速度が落ちている。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
420
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
421 \begin{figure}[h]
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
422 \begin{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
423 \includegraphics[width=70mm]{./pic/test.pdf}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
424 \end{center}
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
425 \caption{遅延の分布}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
426 \label{fig:test}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
427 \end{figure}
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
428
1
10e5ea7ae31e Fix Encoding
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
429 \section{まとめ}
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
430 本研究では画面配信システムTreeVNCをマルチディスプレイ、WAN に対応させた。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
431
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
432 マルチディスプレイに対応したことで、 配信者が配信したいディスプレイを選択し、画面配信することが可能となった。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
433
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
434 WANに対応することで別ネットワークにいるユーザーが TreeVNC に参加することが可能となった。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
435
7
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
436 今後の課題として、画面切り替えの安定化、 WAN での画面切り替え、 ユーザビリティの向上、 共有機能の追加を行う。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
437
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
438 現在のTreeVNCでは、share button を押すと、その時配信されている画面から、自動的に画面が切り替わってしまうという問題がある。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
439 それを防ぐために share button が押されるとその時の配信者に切り替え確認を行う処理を追加する。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
440
7
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
441 今回追加した Direct Connection などの一部の機能はコマンドラインオプションで指定する必要があるため、一般ユーザーでは操作するのが困難である。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
442 そこで、 今までコマンドラインオプションで指定していた機能を Viewer で操作するように変更を行う。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
443
7
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
444 共有機能の追加としては、音声、講義中の質問・意見 等が挙げられる。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
445
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
446 \nocite{*}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
447 \bibliographystyle{ipsjunsrt}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
448 \bibliography{prosym}
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
449
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
450 \end{document}