annotate paper/prosym.tex @ 16:b2832058b822

Fix
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Mon, 30 Nov 2015 16:24:18 +0900
parents d9ab81f7ca04
children a8c64ed24b6d
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}
13
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
62 授業やゼミ等で、それぞれがPC端末を持っている場合では、PCの機能を活かしたコミュニケーションが可能である。教員が操作する画面をそのまま学生に配信したり, ゼミなどで、発表する学生の画面を切り替えたりすることを可能にしたい。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
63 画面配信システムTreeVNCは参加したクライアントをバイナリツリー状に接続し、配信コストを分散させる仕組みを取っている。そのため,多人数が参加しても処理性能が下がらない。また、ツリーのルートが参照しているVNCサーバーを変更することで、ケーブルの差し替えなしに画面の切替が可能となる。
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
64 今研究ではTreeVNCの改良として、複数のネットワークへの対応、 WANへの対応、 マルチディスプレイへの対応するとともに、TreeVNC 有用性を示すために画像データの遅延時間計測を行った。
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{研究背景と目的}
13
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
74 授業やゼミ等で、それぞれがPC端末を持っている場合では、
2
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
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
77 通常の授業では先生の用意した資料、 PC画面を見ながら授業が進むことが多い。
13
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
78 ゼミでは発表者を切り替えながら発表を行う。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
79
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
80 通常これらの画面を表示するためにプロジェクタが使用されている。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
81 しかし、プロジェクタでは通常の授業の際、参加者はプロジェクタに集中するため、手元の PC をあまり使用できない。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
82 更に手元の PC を使う際はプロジェクタと PC を行き来するため、目に負担がかかってしまう。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
83 またゼミの際には発表者を切り替えるたびにプロジェクタにケーブルを差し替える必要がある。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
84 ケーブルの差し替えの際に発表者の PC によってアダプターの種類や解像度の設定によって正常に PC 画面を表示できない場合もある。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
85
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
86 画面配信システム TreeVNC\cite{oc:thesis}\cite{taninari:2012a}は発表者の画面を参加者の PC に表示する。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
87 そのため、参加者は不自由なく手元の PC を使用しながら授業を受ける事が可能になる。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
88 更に発表者の切り替えの際もケーブルの差し替えずに共有する画面の切替を可能としている。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
89
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
90 Tree VNC は VNC を使用した画面配信を行っている。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
91 しかし通常の VNC では共有側に全ての参加者が接続するため、多人数の際の処理性能が落ちてしまう。
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
92 Tree VNC では参加者をバイナリツリー状に接続し、 配信コストをクライアントに分散させる仕組みになっている。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
93 そのため、授業で先生の画面を表示する際、多人数の生徒が参加しても処理性能が下がらない。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
94 また、ツリーのルートが参照している VNCサーバーを変更することで、共有する画面の切替が可能となる。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
95
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
96 本研究では 複数のネットワークへの対応、 WAN 、マルチディスプレイへの対応を行った。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
97 Tree VNCは単一のネットワークのみしか対応しておらず、起動した PC が複数のネットワークに属していても、1つのネットワークしか対応出来なかっため
6
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
98 WANへの対応として、新しい接続方法を提案し、実装を行った。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
99 また、マルチディスプレイへの対応としては配信する際に、配信するディスプレイ情報を取得し、配信を行うことで、対応した。
2
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 \section{画面配信システムTreeVNC}
11
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
102 \subsection{VNCについて}
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
103 VNC(Virtual Network Computing) は、 RFBプロトコルを用いて遠隔操作を行うリモートデスクトップソフトウェアである。
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
104 VNC はサーバー側とクライアント(ビューア)側に分かれている。 サーバを起動し、クライアントがサーバに接続を行い遠隔操作を可能とする。
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
105
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
106 \subsection{RFBプロトコル}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
107 RFB(remote frame buffer)プロトコル\cite{rfbProtocol}とは、自身の画面を送信し、ネットワーク越しに他者の画面に表示するプロトコルである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
108 ユーザが居る側をRFBクライアント側と呼び、Framebufferへの更新が行われる側はRFBサーバと呼ぶ。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
109 Framebufferとは、メモリ上に置かれた画像データのことである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
110 RFBプロトコルでは、最初にプロトコルバージョンの確認や認証が行われる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
111 その後、クライアントに向けてFramebufferの大きさやデスクトップに付けられた名前などが含まれている初期メッセージが送信される。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
112 RFBサーバ側はFramebufferの更新が行われるたびに、RFBクライアントに対してFramebufferの変更部分だけを送信する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
113 更にRFBクライアントのFramebufferUpdateRequestが来るとそれに答え返信する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
114 RFBプロトコルは、描画データに使われるエンコードが多数用意されており、また独自のエンコードを実装することもできるプロトコルである。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
115
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
116 \subsection{多人数で VNC を使用する時の問題点}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
117 VNCを使用すればクライアント側にサーバー側の画面を表示することが可能である。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
118 しかし、多人数のクライアントが1つのサーバーに接続してしまうと処理性能が落ちてしまうという問題点がある。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
119
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
120 また、 ゼミ等の発表で画面配信者が頻繁に切り替わる場合、
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
121 配信者が替わる度にアプリケーションを終了し、接続をし直さないといけないという問題がある。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
122
11
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
123 \subsection{TreeVNC の構造}
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
124 TreeVNC は Java を用いて作成された TightVNC(Tight Virtual Network Computing)\cite{tightvnc} を元に作成されている。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
126 TreeVNC は クライアント同士を接続させ、画面描画のデータを受け取ったクライアントが次のクライアントにデータを流す方式を取っている。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
127 また、サーバへ接続しに来たクライアントをバイナリツリー状に接続する(図\ref{fig:tree})。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
128 バイナリツリー状に接続することで、$N$台のクライアントが接続しに来た場合、画面配信の画像データをコピーする回数は従来の VNC ではサーバ側で$N$回する必要があるが、TreeVNCでは各ノードが2回ずつコピーするだけで済む。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
129
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
130 バイナリツリーのルートのノードを Root Node と呼び、 Root Node に接続されるノードを Node と呼ぶ
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
131 Root Node は子 Nodeにデータを流す機能に加え、各 Node の管理、 VNC サーバーから流れてきた画像データの管理を行う。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
132 Node は 親 Node から送られたデータを 自分の子 Node に流す機能、 逆に子 Node から送られてきたデータを 親 Node に流す機能がある。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
133
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
134 \begin{figure}[ht]
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
135 \begin{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
136 \includegraphics[width=70mm]{./pic/TreeVNC.pdf}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
137 \end{center}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
138 \caption{構成される木構造}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
139 \label{fig:tree}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
140 \end{figure}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
141
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
142 \subsection{TreeVNC の通信経路}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
143 TreeVNC の通信経路として以下が挙げられる
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
144 \begin{itemize}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
145 \item ある Node から Root Node に直接通信を行う send direct message (Node to Root)
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
146 \item Root Node からある Node に直接通信を行う send direct message (Root to Node)
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
147 \item Root Node から木の末端の Node までのすべての Nodeに通信を行う messeage down tree (Root to Node)
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
148 \item ある Node から木構造を上に辿って Root Nodeまで通信を行う message up tree (Node to Root)
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
149 \item Root Node から配信者の VNC サーバーへの通信を行う send message (Root to VNCServer)
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
150 \item VNC サーバーから Root Node への通信を行う send message (VNCServer to Root)
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
151 \end{itemize}
11
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
152
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
153
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
154 \subsection{ノード間で行われるメッセージ通信}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
155 RFBプロトコルで提供されているメッセージに加え、 TreeVNC 独自のメッセージを使用している。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
156 TreeVNC で使用されるメッセージの一覧を表\ref{tb:message}に示す。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
157
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
158 \begin{table}[h!]
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
159 \caption{通信経路とメッセージ一覧}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
160 \large
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
161 \scalebox{0.4} {
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
162 \begin{tabular}{|l|l|l|} \hline
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
163 通信経路 & message & 説明 \\ \hline \hline
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
164 & FIND\_ROOT & TreeVNC接続時にRoot Nodeを探す。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
165 send direct message & WHERE\_TO\_CONNECT & 接続先をRoot Nodeに聞く。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
166 (Node to Root) & LOST\_CHILD & 子Nodeの切断をRoot Nodeに知らせる。 \\ \hline \hline
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
167
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
168 & FIND\_ROOT\_REPLY & FIND\_ROOTへの返信。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
169 send direct message & CONNECT\_TO\_AS\_LEADER & 左子Nodeとして接続する。接続先のNodeが含まれている。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
170 (Root to Node) & CONNECT & 右子Nodeとして接続する。接続先のNodeが含まれている。 \\ \hline \hline
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
171
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
172 message down tree & FRAMEBUFFER\_UPDATE & 画像データ。EncodingTypeを持っている。\\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
173 (Root to Node) & CHECK\_DELAY & 通信の遅延を測定する。 \\ \hline \hline
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
174
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
175 message up tree & CHECK\_DELAY\_REPLY & CHECK\_DELAYへの返信。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
176 (Node to Root) & SERVER\_CHANGE\_REQUEST & 画面切り替え要求。 \\ \hline \hline
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
177
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
178 & FRAMEBUFFER\_UPDATE\_REPLY & 画像データの要求。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
179 send message & SET\_PIXEL\_FORMAT & pixel値の設定。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
180 (Root to VNCServer) & SET\_ENCODINGS & pixelデータのencodeTypeの設定。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
181 & KEY\_EVENT & キーボードからのイベント。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
182 & POINTER\_EVENT & ポインタからのイベント。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
183 & CLIENT\_CUT\_TEXT & テキストのカットバッファを持った際のmessage。 \\ \hline \hline
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
184
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
185 & FRAMEBUFFER\_UPDATE & 画像データ。EncodingTypeを持っている。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
186 send message & SET\_COLOR\_MAP\_ENTRIES & 指定されているpixel値にマップするRGB値。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
187 (VNCServer to Root) & BELL & ビープ音を鳴らす。 \\ \cline{2-3}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
188 & SERVER\_CUT\_TEXT & サーバがテキストのカットバッファを持った際のmessage。 \\ \hline
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
189 \end{tabular}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
190 }
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
191 \label{tb:message}
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
192 \end{table}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
193
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
194 図\ref{fig:message}は TreeVNC で Node が Root Node に接続し、画像データを受信するまでのメッセージ通信の様子である。
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
195 図\ref{fig:message}の手順として
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
196
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 \begin{itemize}
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
198 \item 接続を行う Node (以下 Client Node)はMulticast通信で Root Node に対してFIND\_ROOTを送信する(1:findRoot())
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
199 \item Root NodeがFIND\_ROOTを受信し、FIND\_ROOT\_REPLYを送信する(2:findRootReplay())
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
200 \item Client Node 側で、どのRoot Nodeに接続するかを選択するパネルが表示される
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
201 \item Client Node はパネルで接続するRoot Nodeを選択し、Rootに対して接続先を要求するWHERE\_TO\_CONNECTを送信する(3:whereToConnect())
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
202 \item 受信した Root Node は Client Node の接続先をCONNECT\_TOで送信する(4:connectTo)
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
203 \item Client Node は Root の指定した接続先に接続しに行く
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
204 \item Root Node, Client Node間の接続が確立後、Root Node から Clinet Node に対して定期的に画像データFRAME\_BUFFER\_UPDATEを送信する(5:framebufferUpdate())
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 \end{itemize}
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
206
4
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
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
209 \begin{figure}[ht]
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
210 \begin{center}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
211 \includegraphics[width=65mm]{./pic/message.pdf}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
212 \end{center}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
213 \caption{node 間で行われるメッセージ通信}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
214 \label{fig:message}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
215 \end{figure}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
216
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
217 \subsection{切断時の木の再構成}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
218 TreeVNC はバイナリツリーでの接続という特性上 Node が切断されたことを検知できずにいると、Node 同士で構成された木構造が崩れてしまい、新しい Node が接続に来た場合に適切な場所に Node を接続することができなくなってしまう。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
219 木構造を崩さないよう、Node 同士の接続を再構成を行う必要がある。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
220
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
221 TreeVNC の木構造のネットワークトポロジーは Root Node が持っている nodeList というリストで管理している。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
222 つまり、Node の接続が切れた場合、木の再構成を行うため Root Node に知らせなければならない。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
223
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
224 TreeVNC は Lost\_CHILD というメッセージ通信で Node の切断を検知・木の再構成を行っている。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
225
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
226 TreeVNC は VNCサーバーから送られる画像データ(FRAME\_BUFFER\_Update)を MulticastQueue というキューに蓄積しており、
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
227 Node はこのキューから画像データを取得し、画面を描画している。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
228 Lost\_Child の検出方法は、この MulticastQueue を使用している。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
229 ある一定時間 MulticastQueue から画像データが取得されない場合 Memory Over Flow を回避するために Timeout スレッドが用意されている。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
230 Timeout を検知した際、Node との接続が切れたと判断する。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
231
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
232 Lost\_Child の検知・木の再構成を以下に示す。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
233 \begin{itemize}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
234 \item 子 Node の切断を検知した Node が Root Node へ LOST\_CHILD メッセージを送信する(図\ref{fig:lostchild1}中, 1:lostChild())
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
235 \item LOST\_CHILD メッセージを受け取った Root Node は nodeList の更新を行う(図\ref{fig:lostchild1}中, 2:updateNodeList())
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
236 \item 切断した Node を nodeList から消し、nodeList の最後尾の Node に切断した node number を割り当てる
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
237 \item Root Node は最後尾の Node に、切断した子 Node が接続していた親 Node に接続する様に CONNECT\_TO メッセージを送信する(図\ref{fig:lostchild1}中, 3:connectTo(1))
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
238 \item 最後尾の Node が子 Node を失った親 Node へ接続しに行く(図\ref{fig:lostchild1}中, 4:connectToParent(1))
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
239 \end{itemize}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
240
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
241 \begin{figure}[ht]
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
242 \begin{center}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
243 \includegraphics[width=70mm]{./pic/lostChild1.pdf}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
244 \end{center}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
245 \caption{lostChild を検知・再接続}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
246 \label{fig:lostchild1}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
247 \end{figure}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
248
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
249 Lost\_Child によって、 切断された全ての Node を検知することができるため、 nodeList の更新が正しく行われる。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
250 よって、新しく接続に来た Node を適切な場所に接続することが可能となる。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
251
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
252 \subsection{共有画面切り替え}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
253 ゼミでは発表者が順々に入れ替わる。発表者が入れ替わる度に共有する画面の切り替えが必要となる。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
254 ゼミを円滑に進めるために、画面の切り替えをスムーズに行いたい。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
255
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
256 画面の共有にプロジェクタを使用する場合、 発表者が変わる度にケーブルの抜き差しを行う必要がある。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
257 その際に、ディスプレイ解像度を設定し直す必要が出たり、 接続不良が起こる等の煩わしい問題が生じることがある。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
258
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
259 従来のVNCを使用する場合、 画面の切り替えの度に一旦VNCを終了し、発表者のVNCServerへと再接続を行う必要がある。
2
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 TreeVNC は、配信者の切り替えの度に生じる問題を解決している。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
262 TreeVNC を立ち上げることで、ケーブルを使用する必要なしに、各参加者の手元のPCに発表者の画面を共有することができる。
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
263 画面の切り替えは、ユーザがVNCSeverへの再接続を行うことなく、ビューワの Share Screen ボタンを押すことによって、配信者の切り替えを行うことができる。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
264
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
265 TreeVNC の Root Node は配信者の VNCServer と通信を行っている。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
266 VNCServer から画面データを受信し、そのデータを 子 Node へと送信している。
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
267 配信者切り替え時に Share Screen ボタン が押されると、
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
268 Root Node は Share Screen ボタン を押したクライアントの VNC サーバー と通信を始める。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
269 そのためTreeVNCは配信者切り替えの度に VNC を終了し、再接続する必要がない。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
270
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
271 \section{TreeVNCの新機能}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
272 \subsection{QUALITYモードとSPEEDモード}
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 PC のスペックによっては描画処理に時間がかかってしまうことがある。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
275 配信者の画面をリアルタイムに取得するため、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
276 描画処理に時間のかからないモードを追加する。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
277
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
278 画像描画処理には、
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
279 高画質優先の QUALITY モードと描画速度優先の SPEED モードがある。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
280 今まで TreeVNC は QUALITY モードで使用していた。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
281
13
956ebac058fb Edit purpose of research
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
282 今回どちらのモードを使用するかを ビューワ から変更出来るようにした。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
283 これにより、描画処理の遅延を解決することができた。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
284
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
285 \subsection{マルチディスプレイ対応}
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
286 画面配信側のPCがマルチディスプレイの場合、
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
287 VNCServer からは複数の画面全体の画像データが送信されてしまう。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
288
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
289 授業やゼミ等でTreeVNCを使用する場合、複数画面の表示は必要ない。
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
290 そこで、画面を共有する際、ディスプレイを選択させ、画面共有を行う機能を追加した。
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
291
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
292 ディスプレイの情報は個々のクライアントでしか取得ができない。
11
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
293 そのため、配信側は画面の切替を行う際に、ディスプレイを選択し、そのディスプレイの左上と右下の座標を取得する。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
294 その座標を Root Node への画面切り替えを要求する SERVER\_CHANGE\_REQUEST message に付加させる。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
295 Root Node は 配信側の VNCServer に画像データを要求する FRAMEBUFFER\_UPDATE\_REPLY message に送信された座標を付加する。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
296 VNC サーバーは要求された座標内の画像データを FRAMEBUFFER\_UPDATE message で Root Node に送信する。
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
297 これにより、一画面のみの表示が可能となる。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
298
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
299 図\ref{fig:multidisplay} は Display1 のみを画面共有する例を示している。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
300
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
301 \begin{figure}[ht]
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
302 \begin{center}
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
303 \includegraphics[width=70mm]{./pic/shareScreenToMultiDisplay.pdf}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
304 \end{center}
3
74034b769a12 Fix multi display
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
305 \caption{マルチディスプレイへの対応}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
306 \label{fig:multidisplay}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
307 \end{figure}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
308
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
309 \subsection{複数のネットワークの対応}
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
310 従来の TreeVNC は、クライアントの接続する木構造が単一であった。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
311 そのため、Root Node が複数のネットワークに接続していても、 単一のネットワークでしか使用することができなかった。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
312
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
313 この問題を解決するために、 図\ref{fig:multinetworktree}の様に、ネットワーク別に 木構造を形成するように設計した。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
314
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
315 \begin{figure}[ht]
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
316 \begin{center}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
317 \includegraphics[width=70mm]{./pic/MultiNetworkTree.pdf}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
318 \end{center}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
319 \caption{Multi Network Tree}
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
320 \label{fig:multinetworktree}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
321 \end{figure}
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
322
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
323 TreeVNC は Root Node が TreeManager というオブジェクトを持っている。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
324 TreeManager は TreeVNC の接続部分を管理している。
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
325 TreeManager では木構造を管理する nodeList が生成される。
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
326 この nodeList を元に、新しい Node の接続や、切断検出時の接続の切り替え等を行う。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
327
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
328 Root Node の保持しているネットワーク毎にTreeManager を生成する様に変更した。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
329 新しい Node が接続してきた際、 interfaces から Node のネットワークと一致する TreeManager を取得する。
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
330 その TreeManager に Node 接続の処理を任せる。
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
331 そのため、 TreeVNC を複数のネットワーク別に木構造を構成することができる。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
332
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
333 \subsection{WANへの対応}
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
334 遠隔地からでもゼミや授業に参加できるよう、 NATを越えたネットワークから TreeVNC への接続を可能にした。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
335
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
336 図\ref{fig:directConnection} にNATを越えたネットワークからの接続を示す。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
337 別ネットワークからTreeVNCに参加する際、 直接配信側のネットワークの Root Node に接続を行う。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
338 この接続を Direct Connection と呼ぶ。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
339
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
340 Direct Connection した Node はそのネットワークの Root Node になる。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
341 そのネットワークの他の Node はそのネットワークの Root Node に接続し、木構造を生成する。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
342
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
343 配信側の Root Node は Direct Connection で接続された Root Node に対して Framebuffer Update で 画像データを送信する。
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
344 Framebuffer Update が送信された Root Node は そのネットワークの Node に対して Framebuffer Update を送信する。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
345
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
346 これにより、NATを越えたネットワークの画面共有が可能となる。
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}
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
351 \caption{遠隔地 Node からの接続}
4
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
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
357 \section{TreeVNC の評価}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
358 \subsection{木の深さによる画像データ伝達の遅延}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
359 VNCサーバー から受信する画像データ、 TreeVNC で扱われるメッセージ通信は構成された木を伝って伝達される。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
360 接続する人数が増える毎に木の段数は増えていく。 そこで Root Node から木の末端の Clinet Node までの画像データ伝達の遅延を検証する実験を行った。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
361
11
6daaf5e03e4d Add MindMap
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
362 \subsection{実験環境}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
363 授業を受講している学生が TreeVNC を使用した状態で実験を行った。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
364 TreeVNC には最大で17名が接続していた。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
365
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
366 \subsection{メッセージを使用した実測}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
367 TreeVNC を伝搬するメッセージに、CHECK\_DELAY・CHECK\_DELAY\_REPLY を追加した。
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
368 CHECK\_DELAY は Root Node から 末端の Node まで伝達するメッセージと画像データ、
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
369 CHECK\_DELAY\_REPLY は各 Node から Root Node まで伝達するメッセージである。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
370
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
371 CHECK\_DELAY メッセージは送信時刻を付けて送信する。
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
372 Root Nodeから CHECK\_DELAY 送信し、末端の Node まで各 Node を伝いながら伝達して行く。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
373
14
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
374 CHECK\_DELAY\_REPLY は CHECK\_DELAY から受け取った送信時刻に画像データのサイズを付けて送信する。
d9ab81f7ca04 Add lost child section
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
375 CHECK\_DELAY を受け取った各 Node は CHECK\_DELAY\_REPLY を接続している親 Node に送信する。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
376
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
377 CHECK\_DELAY\_REPLY を受け取った Root Node はメッセージと画像データの伝達にどれだけの時間がかかったかを計算する。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
378 データ計算方法を以下のソースコード\ref{calc}に記述する。 この変数``time''は CHECK\_DELAY\_REPLY に付いている送信時刻である。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
379
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
380 \begin{table}[htb]
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
381 \begin{lstlisting}[label=calc, caption=遅延時間の計算方法]
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
382 Long delay = System.currentTimeMillis() - time;
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
383 \end{lstlisting}
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
384 \end{table}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
385
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
386
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
387 \subsection{深さ毎の遅延結果}
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
388 バイナリツリーで木を構成した場合、 Node 数が17台だと深さが4となる。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
389 各木構造の階層毎に、画像データの伝搬にかかった時間を測定した。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
390
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
391 図\ref{fig:depth}は遅延の分布を示した散布図である。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
392 X軸はメッセージ伝達にかかった秒数(ms)、 Y軸は画像データのサイズ(Byte)である。
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
393
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
394 画像データの伝達はほぼ1秒以内に収まっているが、容量が小さい場合でも時間がかかる場合がある。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
395 それはその送信の前に大容量の画像を送信した後の回線のDelayが残っているためだと考えられる。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
396
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
397 また、深さ3で極端に遅い場合がある。 遅い原因として、1つの Node がボトルネックになっていることが判明している。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
398 このような極端に遅い Node をそのまま木に配置した場合、その Node の子 Node 以下に影響を及ぼす場合がある。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
399 そのため、遅い Nodeを検出して、木の最後尾に移動させる機能が必要である。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
400
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
401 今回4段分のデータでは30名程度の遅延のみしか判断することができないため、更に大人数での実験を繰り返し行う必要がある。
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
402
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
403 \begin{figure}[ht]
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
404 \begin{center}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
405 \includegraphics[width=70mm]{./pic/depth1.eps}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
406 \end{center}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
407 \begin{center}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
408 \includegraphics[width=70mm]{./pic/depth2.eps}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
409 \end{center}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
410 \begin{center}
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
411 \includegraphics[width=70mm]{./pic/depth3.eps}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
412 \end{center}
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
413 \begin{center}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
414 \includegraphics[width=70mm]{./pic/depth4.eps}
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
415 \end{center}
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
416 \caption{深さ毎のデータサイズと遅延の関係(上から深さ1, 2, 3, 4)}
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
417 \label{fig:depth}
2
d964ad17d606 Add oc-thesis
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
418 \end{figure}
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
419
1
10e5ea7ae31e Fix Encoding
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
420 \section{まとめ}
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
421 本研究では画面配信システムTreeVNCをマルチディスプレイ、WAN に対応させた。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
422
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
423 マルチディスプレイに対応したことで、 配信者が配信したいディスプレイを選択し、画面配信することが可能となった。
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
424
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
425 WANに対応することでNATを超えているネットワークのユーザーが TreeVNC に参加することが可能となった。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
426
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
427 今後の課題として機能の安定化、 WAN での画面切り替え、 ユーザビリティの向上、 新機能の評価が上げられる。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
428
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
429 機能の安定化として今回の画像データの遅延実験で判明したボトルネックになる Node の対処を行う。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
430 ネックになっている Node の検出として、CHEKC\_DELAY メッセージの時間を使用して、その Node がネックかどうかを判断する予定である。
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
431
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
432 今回追加した Direct Connection ではNATを越えたネットワークの画面を配信を行うのみであり、TreeVNC の利点の1つである画面切り替えを行うことが出来ない。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
433 そのため、NATを越えたネットワークでの画面切り替えの実装は必須と言える。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
434
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
435 Direct Connection などの一部の機能はコマンドラインオプションで指定する必要があるため、一般ユーザーでは操作するのが困難である。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
436 そこで、 今までコマンドラインオプションで指定していた機能を ビューワ で操作するように変更を行う。
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
437
16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
438 今回新機能としてマルチディスプレイ、 WANへの対応を行ったが、 まだ評価を行っていない。
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
439 そのため、適切な評価方法を思考し、評価を行う必要がある。
12
aaa9a0f50d3f Update 11_29_19:16
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
440
4
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
441 \nocite{*}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
442 \bibliographystyle{ipsjunsrt}
e1f5a313cadc Update 11_10
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
443 \bibliography{prosym}
0
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
444
f37f38f03508 Add prosym templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
445 \end{document}