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の様々な問題点の解決を行った