Mercurial > hg > Papers > 2015 > parusu-prosym
comparison presen/prosym.md @ 32:0b99de43a192
Update
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 08 Jan 2016 02:28:33 +0900 |
parents | b04f53aba6ec |
children | c20b2d98c5f4 |
comparison
equal
deleted
inserted
replaced
31:b04f53aba6ec | 32:0b99de43a192 |
---|---|
4 lang: Japanese | 4 lang: Japanese |
5 code-engine: coderay | 5 code-engine: coderay |
6 | 6 |
7 # 画面共有を利用したコミュニケーション | 7 # 画面共有を利用したコミュニケーション |
8 - 授業やゼミ等で、それぞれが PC 端末を持っている場合では、PC の機能を活かした コミュニケーションが可能である | 8 - 授業やゼミ等で、それぞれが PC 端末を持っている場合では、PC の機能を活かした コミュニケーションが可能である |
9 - 教員が操作する画面をそのまま学生に配信したり, ゼミ などで、発表する学生の画面を切り替えたりすることを可能にする | |
10 - 画面配信システム TreeVNC は参加したクライアントをバイナリツリー状に接続し、配信コストを分散させる 仕組みを取っている。そのため, 多人数が参加しても処理性能が下がらない | 9 - 画面配信システム TreeVNC は参加したクライアントをバイナリツリー状に接続し、配信コストを分散させる 仕組みを取っている。そのため, 多人数が参加しても処理性能が下がらない |
11 - ツリー のルートが参照している VNC サーバーを変更することで、ケーブルの差し替えなしに画面 の切替が可能となる | 10 - ツリー のルートが参照している VNC サーバーを変更することで、ケーブルの差し替えなしに画面の切替が行える |
12 | 11 |
13 # TreeVNC の問題点 | 12 # TreeVNC の問題点 |
14 - TreeVNC を実際に使用していく中で様々な問題が発生した。 | 13 - TreeVNC を実際に使用していく中で様々な問題が発生した。 |
15 - 琉球大学では無線と有線が別々のネットワークになっている | 14 - 琉球大学では無線と有線が別々のネットワークになっている |
16 - TreeVNCは単一のネットワークにしか対応できず、両方のネットワークにつながっている端末でも1つのネットワークでしか使用できなかった | 15 - TreeVNCは単一のネットワークにしか対応できず、両方のネットワークにつながっている端末でも1つのネットワークでしか使用できなかった |
19 | 18 |
20 # TreeVNC の問題点 | 19 # TreeVNC の問題点 |
21 - ゼミ等で発表者毎に画面切り替えを行う際、デュアルディスプレイを使っている人がいた | 20 - ゼミ等で発表者毎に画面切り替えを行う際、デュアルディスプレイを使っている人がいた |
22 - その際 VNC サーバーからはすべての画面データが送信されており、発表とは関係ない画面も配信されていた | 21 - その際 VNC サーバーからはすべての画面データが送信されており、発表とは関係ない画面も配信されていた |
23 | 22 |
24 <img src="./images/multidisplay.svg" alt="message" width="400"> | 23 <img src="./images/multidisplay.svg" alt="message" width="500"> |
25 | 24 |
26 # この発表は | 25 # この発表は |
27 - TreeVNC の概要 | 26 - TreeVNC の概要 |
28 - 構造 | 27 - 構造 |
29 - 圧縮形式 | 28 - 圧縮形式 |
38 - 画像データ送信の遅延 | 37 - 画像データ送信の遅延 |
39 | 38 |
40 # TreeVNC | 39 # TreeVNC |
41 - TreeVNC は本研究室で開発している VNC を利用した画面配信システム | 40 - TreeVNC は本研究室で開発している VNC を利用した画面配信システム |
42 - 参加したクライアントをバイナリツリー状で接続することで配信コストを分散させる | 41 - 参加したクライアントをバイナリツリー状で接続することで配信コストを分散させる |
43 - スムーズな画面の切替を行う | 42 - スムーズな配信画面の切替を行う |
44 | 43 |
45 <img src="./images/TreeVNC.svg" alt="message" width="400"> | 44 <img src="./images/TreeVNC.svg" alt="message" width="400"> |
46 | 45 |
47 # VNC | 46 # VNC |
48 - VNC(Virtual Network Computing) は RFBプロトコルを用いて遠隔操作を行うソフトウェア | 47 - VNC(Virtual Network Computing) は RFBプロトコルを用いて遠隔操作を行うソフトウェア |
49 - サーバー側とクライアント側に分かれており、サーバーを起動し、クライアントがサーバーに接続を行うことで遠隔操作を可能とする | 48 - サーバー側とクライアント側に分かれており、サーバーを起動し、クライアントがサーバーに接続を行うことで遠隔操作を可能とする |
50 | 49 |
51 <img src="./images/vnc.svg" alt="message" width="400"> | 50 <img src="./images/vnc.svg" alt="message" width="600"> |
52 | 51 |
53 # RFB プロトコル | 52 # RFB プロトコル |
54 - RFB(Remote Frame Buffer)プロトコルは VNC で用いられているプロトコル | 53 - RFB(Remote Frame Buffer)プロトコルは VNC で用いられているプロトコル |
55 - 自身の画面をネットワーク越しに他者の画面に表示する | 54 - 自身の画面をネットワーク越しに他者の画面に表示する |
56 - RFB サーバと RFB クライアントに分かれている | |
57 - Framebuffer と呼ばれるメモリ上に置かれた画像データを使用して画面表示を行う | 55 - Framebuffer と呼ばれるメモリ上に置かれた画像データを使用して画面表示を行う |
58 - RFB サーバーは Framebuffer が更新されるたびにRFB クライアントに対して Framebuffer の変更部分だけを送信する。 | 56 - サーバーは Framebuffer が更新されるたびにクライアントに対して変更部分だけを送信する。 |
59 | 57 |
60 # 多人数でVNCを使用する際の問題点 | 58 # 多人数でVNCを使用する際の問題点 |
61 - 多人数のクライアントが1つのサーバーに接続する構造である | 59 - 多人数のクライアントが1つのサーバーに接続する構造 |
62 - そのため、サーバー側の処理性能が落ちてしまう | 60 - サーバー側の処理性能が落ちてしまう |
63 - ゼミ等の発表で画面配信者が切り替わる場合配信者が変わるたびにアプリケーションを終了し、再接続を行う必要がある。 | 61 - 配信者を切り替える際、配信側のサーバーを立ち上げ直す必要がある |
64 | 62 |
65 # TreeVNC の構造 | 63 # TreeVNC の構造 |
66 - Java で作成されたTightVNC(Tight Virtual Network Computing) を元に作成されている | 64 - Java で作成されたTightVNC(Tight Virtual Network Computing) を元に作成されている |
67 - クライアント同士をバイナリツリー状に接続する | 65 - クライアント同士をバイナリツリー状に接続する |
68 - バイナリツリーのルートのノードをRoot Nodeと呼び、 Root Node に接続されるノードを Node と呼ぶ | 66 - バイナリツリーのルートのノードをRoot Nodeと呼び、 Root Node に接続されるノードを Node と呼ぶ |
78 - 従来のVNC : Node数 * データ量 | 76 - 従来のVNC : Node数 * データ量 |
79 - TreeVNC : (2(子供の数) + 1) * データ量 | 77 - TreeVNC : (2(子供の数) + 1) * データ量 |
80 - 従来のVNCはNode数に比例 | 78 - 従来のVNCはNode数に比例 |
81 - TreeVNCはNode数に関係なく一定 | 79 - TreeVNCはNode数に関係なく一定 |
82 | 80 |
83 <img src="./images/comparenormalandtree.svg" alt="message" width="400"> | 81 <img src="./images/comparenormalandtree.svg" alt="message" width="600"> |
84 | 82 |
85 # TreeVNC の圧縮形式 | 83 # TreeVNC の圧縮形式 |
86 - TreeVNC は ZRLEE というエンコードでデータのやり取りを行う | 84 - TreeVNC は ZRLEE というエンコードでデータのやり取りを行う |
87 - ZRLEE は Rfb でのエンコードの1つである ZRLE を元に生成される | 85 - ZRLEE は Rfb でのエンコードの1つである ZRLE を元に生成される |
88 - ZRLEE はZRLE を一度 Root Node で解凍して再圧縮を行う | 86 - ZRLEE はZRLE を一度 Root Node で解凍して再圧縮を行う |
89 - その際配信画面の更新のたびに辞書を作りなおす | 87 - その際配信画面の更新のたびに辞書を作りなおす |
90 | 88 |
91 <img src="./images/ZRLEE.svg" alt="message" width="400"> | 89 <img src="./images/ZRLEE.svg" alt="message" width="400"> |
92 | 90 |
93 # TreeVNC に参加するまでのメッセージ通信の流れ | 91 # TreeVNC に参加するまでのメッセージ通信の流れ |
94 <img src="./images/message.svg" alt="message" class="center" width="400"/> | 92 <img src="./images/message.svg" alt="message" width="400"/> |
95 | 93 |
96 # 切断時の木の再構成 | 94 # 切断時の木の再構成 |
97 - TreeVNC はバイナリーツリーという特性上 Node の切断を検知できずにいると、Node 同士で構成された木構造が崩れてしまう | 95 - TreeVNC はバイナリーツリーという特性上 Node の切断を検知できずにいると、Node 同士で構成された木構造が崩れてしまう |
98 - TreeVNC は Node 切断の検知を LOST\_CHILD というメッセージ通信で行っている | 96 - TreeVNC は Node 切断の検知を LOST\_CHILD というメッセージ通信で行っている |
99 | 97 |
102 # 共有画面切り替え | 100 # 共有画面切り替え |
103 - TreeVNC の Root Node は配信者の VNC サーバーと通信を行っている | 101 - TreeVNC の Root Node は配信者の VNC サーバーと通信を行っている |
104 - 画面を配信されている側のビューワにある Share Screen ボタンが押す | 102 - 画面を配信されている側のビューワにある Share Screen ボタンが押す |
105 - Root Node に SERVER\_CHANGE\_REQUEST メッセージを送信する | 103 - Root Node に SERVER\_CHANGE\_REQUEST メッセージを送信する |
106 - Root Node は Share Screen ボタンを押したクライアントの VNC サーバーと通信を始める。 | 104 - Root Node は Share Screen ボタンを押したクライアントの VNC サーバーと通信を始める。 |
107 - NAT を越えは現時点では実装されていない | 105 - NAT 越えは現時点では実装されていない |
108 | 106 |
109 # QUALITY モードと SPEED モード | 107 # QUALITY モードと SPEED モード |
110 - 高解像度のデータの描画処理はPCのスペックによって重くなる場合がある | 108 - 高解像度のデータの描画処理はPCのスペックによって重くなる場合がある |
111 - 画像描画処理には | 109 - 画像描画処理には |
112 - 高画質優先の QUALITY モード | 110 - 高画質優先の QUALITY モード |
124 | 122 |
125 # 複数ネットワークの対応 | 123 # 複数ネットワークの対応 |
126 - Root Node が接続しているネットワークごとに木構造を形成する | 124 - Root Node が接続しているネットワークごとに木構造を形成する |
127 - 新しい Node が接続してきた際、 interfaces から Node のネットワークと一致する木構造を取得し、 接続の処理を任せる | 125 - 新しい Node が接続してきた際、 interfaces から Node のネットワークと一致する木構造を取得し、 接続の処理を任せる |
128 | 126 |
129 <img src="./images/MultiNetworkTree.svg" alt="message" width="800"> | 127 <img src="./images/MultiNetworkTree.svg" alt="message" width="600"> |
130 | 128 |
131 # Direct Connection | 129 # Direct Connection |
132 - NATを越えたネットワークからの接続は直接配信側の Root Node に 接続を行うことで実現する | 130 - NATを越えたネットワークからの接続は直接配信側の Root Node に接続を行うことで実現する |
133 - Direct Connection した Node はそのネットワークの Root Node になり、そのネットワークの他の Node は Root Node に接続を行い木構造を作る | 131 - Direct Connection した Node はそのネットワークの Root Node になり、そのネットワークの他の Node は Root Node に接続を行い木構造を作る |
134 | 132 |
135 <img src="./images/directConnection.svg" alt="message" width="800"> | 133 <img src="./images/directConnection.svg" alt="message" width="800"> |
136 | 134 |
137 # TreeVNCの評価 | 135 # TreeVNCの評価 |
149 // 遅延時間の計算 | 147 // 遅延時間の計算 |
150 Long delay = System.currentTimeMillis() - time; | 148 Long delay = System.currentTimeMillis() - time; |
151 ``` | 149 ``` |
152 | 150 |
153 # 深さ1, 2 | 151 # 深さ1, 2 |
154 <img src="./images/depth1.svg" alt="message" width="800"> | 152 <img src="./images/depth1.svg" alt="message" width="450"> |
155 <img src="./images/depth2.svg" alt="message" width="800"> | 153 <img src="./images/depth2.svg" alt="message" width="450"> |
156 | 154 |
157 # 深さ3, 4 | 155 # 深さ3, 4 |
158 <img src="./images/depth3.svg" alt="message" width="800"> | 156 <img src="./images/depth3.svg" alt="message" width="450"> |
159 <img src="./images/depth4.svg" alt="message" width="800"> | 157 <img src="./images/depth4.svg" alt="message" width="450"> |
160 | 158 |
161 # 結果から | 159 # 結果から |
162 - 画像データの伝達はほぼ1秒以内に収まっているが、容量が小さい場合でも時間がかかる場合がある。 それはその送信の前に大容量の画像を送信した後の回線の Delay が残っているためだと考えられる | 160 - 画像データの伝達はほぼ1秒以内に収まっている |
161 - 容量が小さい場合でも時間がかかる場合がある。 それはその送信の前に大容量の画像を送信した後の回線の Delay が残っているためだと考えられる | |
163 - 深さ 3 で極端に遅い場合がある。 遅い原因として1つの Node がボトルネックになっている事が判明した。 | 162 - 深さ 3 で極端に遅い場合がある。 遅い原因として1つの Node がボトルネックになっている事が判明した。 |
164 - ネックになった Node をそのままにするとその子Nodeに影響を及ぼしてしまう。 そのためその Node に何らかの対応を行う必要がある | 163 - ネックになった Node をそのままにするとその子Nodeに影響を及ぼしてしまう。 そのためその Node に何らかの対応を行う必要がある |
165 | 164 |
166 # まとめと課題 | 165 # まとめと課題 |
167 - 今回TreeVNCの様々な問題点の解決を行った | 166 - 今回TreeVNCの様々な問題点の解決を行った |