comparison slide/slide.html @ 29:fc6174d8f6ab

update slide
author e155702
date Wed, 20 Feb 2019 11:53:17 +0900
parents 04d0b9bac8f1
children fe9f7c5b5920
comparison
equal deleted inserted replaced
28:04d0b9bac8f1 29:fc6174d8f6ab
84 84
85 <div class='slide '> 85 <div class='slide '>
86 <!-- === begin markdown block === 86 <!-- === begin markdown block ===
87 87
88 generated by markdown/1.2.0 on Ruby 2.6.1 (2019-01-30) [x86_64-darwin17] 88 generated by markdown/1.2.0 on Ruby 2.6.1 (2019-01-30) [x86_64-darwin17]
89 on 2019-02-20 11:48:31 +0900 with Markdown engine kramdown (2.0.0) 89 on 2019-02-20 11:52:55 +0900 with Markdown engine kramdown (2.0.0)
90 using options {} 90 using options {}
91 --> 91 -->
92 <!-- <\!-- slideshow の command -\-> --> 92 <!-- <\!-- slideshow の command -\-> -->
93 <!-- slide.htmlでは通常キーでのコマンドが存在している --> 93 <!-- slide.htmlでは通常キーでのコマンドが存在している -->
94 94
101 <!-- d : ロゴ部分の選択…? --> 101 <!-- d : ロゴ部分の選択…? -->
102 <!-- [URL](http://~~~) --> 102 <!-- [URL](http://~~~) -->
103 <!-- [FILE](file:///Users/ryokka/~~~) --> 103 <!-- [FILE](file:///Users/ryokka/~~~) -->
104 <!-- slideshow build スライド.md -t s6cr --> 104 <!-- slideshow build スライド.md -t s6cr -->
105 105
106 106 <h2 id="section">画面配信システムの活用</h2>
107 <!-- _S9SLIDE_ -->
108 <h1 id="section">画面配信システムの活用</h1>
109 <ul> 107 <ul>
110 <li>講義や発表の場では、プロジェクタが使用されることが多い。その場合、アクシデント発生の恐れがある</li> 108 <li>講義や発表の場では、プロジェクタが使用されることが多い。その場合、アクシデント発生の恐れがある</li>
111 <li>画面配信システム TreeVNC は、自身の PC 画面を他者の PC に表示するソフトウェアである</li> 109 <li>画面配信システム TreeVNC は、自身の PC 画面を他者の PC に表示するソフトウェアである</li>
112 <li>TreeVNC を使用することで、参加者は手元の PC を使用しながら講義を受ける事が可能になる。切り替えの際も、ボタン一つで共有する画面の切替を可能としている</li> 110 <li>TreeVNC を使用することで、参加者は手元の PC を使用しながら講義を受ける事が可能になる。切り替えの際も、ボタン一つで共有する画面の切替を可能としている</li>
113 </ul> 111 </ul>
114 112
115 113 </div>
116 </div> 114 <div class='slide '>
117 <div class='slide '> 115 <!-- _S9SLIDE_ -->
118 <!-- _S9SLIDE_ --> 116
119 <h1 id="treevnc-">TreeVNC の問題点</h1> 117 <h2 id="treevnc-">TreeVNC の問題点</h2>
120 <ul> 118 <ul>
121 <li>画面配信は送信するデータ量が多いため、TreeVNC では無線接続の場合、画面配信の遅延が大きくなってしまう</li> 119 <li>画面配信は送信するデータ量が多いため、TreeVNC では無線接続の場合、画面配信の遅延が大きくなってしまう</li>
122 <li>有線接続時のデータ転送方法だと、無線接続で送信するには大きすぎる</li> 120 <li>有線接続時のデータ転送方法だと、無線接続で送信するには大きすぎる</li>
123 </ul> 121 </ul>
124 122
125 123 </div>
126 </div> 124 <div class='slide '>
127 <div class='slide '> 125 <!-- _S9SLIDE_ -->
128 <!-- _S9SLIDE_ --> 126
129 <h1 id="section-1">目次</h1> 127 <h2 id="section-1">目次</h2>
130 <ul> 128 <ul>
131 <li>TreeVNC の概要 129 <li>TreeVNC の概要
132 <ul> 130 <ul>
133 <li>基本概念</li> 131 <li>基本概念</li>
134 <li>構造</li> 132 <li>構造</li>
140 <li>送信データの Blocking</li> 138 <li>送信データの Blocking</li>
141 </ul> 139 </ul>
142 </li> 140 </li>
143 </ul> 141 </ul>
144 142
145 143 </div>
146 </div> 144 <div class='slide '>
147 <div class='slide '> 145 <!-- _S9SLIDE_ -->
148 <!-- _S9SLIDE_ --> 146
149 <h1 id="treevnc">TreeVNC</h1> 147 <h2 id="treevnc">TreeVNC</h2>
150 <ul> 148 <ul>
151 <li>TreeVNC は本研究室で開発している画面配信システム</li> 149 <li>TreeVNC は本研究室で開発している画面配信システム</li>
152 <li>VNC (リモートデスクトップソフトウェア) を利用している</li> 150 <li>VNC (リモートデスクトップソフトウェア) を利用している</li>
153 <li>配信側の負荷を分散し、大人数での画面配信が可能</li> 151 <li>配信側の負荷を分散し、大人数での画面配信が可能</li>
154 </ul> 152 </ul>
155 153
156 154 </div>
157 </div> 155 <div class='slide '>
158 <div class='slide '> 156 <!-- _S9SLIDE_ -->
159 <!-- _S9SLIDE_ --> 157
160 <h1 id="vnc">VNC</h1> 158 <h2 id="vnc">VNC</h2>
161 <ul> 159 <ul>
162 <li>VNC (Virtual Network Computing) は、RFB プロトコルを用いて PC の遠隔操作を行うことを目的としたリモートデスクトップソフトウェア</li> 160 <li>VNC (Virtual Network Computing) は、RFB プロトコルを用いて PC の遠隔操作を行うことを目的としたリモートデスクトップソフトウェア</li>
163 <li>サーバー側とクライアント側に分かれており、起動したサーバーにクライアントが接続することで遠隔操作を可能にしている</li> 161 <li>サーバー側とクライアント側に分かれており、起動したサーバーにクライアントが接続することで遠隔操作を可能にしている</li>
164 </ul> 162 </ul>
165 163
166 <p><img src="./fig/vnc-crop.svg" alt="message" width="400" height="250" /></p> 164 <p><img src="./fig/vnc-crop.svg" alt="message" width="400" height="250" /></p>
167 165
168 166 </div>
169 </div> 167 <div class='slide '>
170 <div class='slide '> 168 <!-- _S9SLIDE_ -->
171 <!-- _S9SLIDE_ --> 169
172 <h1 id="rfb-">RFB プロトコル</h1> 170 <h2 id="rfb-">RFB プロトコル</h2>
173 <ul> 171 <ul>
174 <li>RFB (Remote Frame Buffer) プロトコルは、自身の画面をネットワークを通じて送信し他者の画面に表示するプロトコル</li> 172 <li>RFB (Remote Frame Buffer) プロトコルは、自身の画面をネットワークを通じて送信し他者の画面に表示するプロトコル</li>
175 <li>ユーザがいる (画面を表示される) 側と FrameBuffer への更新が行われる (自身の画面を送信する) 側に分かれ、それぞれを RFB クライアント、RFB サーバと呼ぶ</li> 173 <li>ユーザがいる (画面を表示される) 側と FrameBuffer への更新が行われる (自身の画面を送信する) 側に分かれ、それぞれを RFB クライアント、RFB サーバと呼ぶ</li>
176 <li>FrameBuffer は、メモリ上に置かれた画像データのこと</li> 174 <li>FrameBuffer は、メモリ上に置かれた画像データのこと</li>
177 </ul> 175 </ul>
178 176
179 177 </div>
180 </div> 178 <div class='slide '>
181 <div class='slide '> 179 <!-- _S9SLIDE_ -->
182 <!-- _S9SLIDE_ --> 180
183 <h1 id="treevnc--1">TreeVNC の構造</h1> 181 <h2 id="treevnc--1">TreeVNC の構造</h2>
184 <ul> 182 <ul>
185 <li>TreeVNC は接続してきたクライアントを Node とし、バイナリツリー状に管理する。</li> 183 <li>TreeVNC は接続してきたクライアントを Node とし、バイナリツリー状に管理する。</li>
186 <li>ルートのノードを Root Node と呼び、その下に新たな Node を接続していく</li> 184 <li>ルートのノードを Root Node と呼び、その下に新たな Node を接続していく</li>
187 <li>Root Node が参照している VNCServer から FrameBufferUpdate を取得し、各 Node に送信する</li> 185 <li>Root Node が参照している VNCServer から FrameBufferUpdate を取得し、各 Node に送信する</li>
188 <li>バイナリツリー状に接続することで、画像データのコピーを各 Node に負担させることができる</li> 186 <li>バイナリツリー状に接続することで、画像データのコピーを各 Node に負担させることができる</li>
189 </ul> 187 </ul>
190 188
191 <p><img src="./fig/treevnc-crop.svg" alt="message" width="400" height="250" /></p> 189 <p><img src="./fig/treevnc-crop.svg" alt="message" width="400" height="250" /></p>
192 190
193 191 </div>
194 </div> 192 <div class='slide '>
195 <div class='slide '> 193 <!-- _S9SLIDE_ -->
196 <!-- _S9SLIDE_ --> 194
197 <h1 id="section-2">共有画面切り替え</h1> 195 <h2 id="section-2">共有画面切り替え</h2>
198 <ul> 196 <ul>
199 <li>従来の VNC では、配信者が切り替わるたびに再起動、再接続を行う必要があった</li> 197 <li>従来の VNC では、配信者が切り替わるたびに再起動、再接続を行う必要があった</li>
200 <li>TreeVNC では、画面上にある ShareScreen ボタンを押すことで配信者の切り替えが実行できる</li> 198 <li>TreeVNC では、画面上にある ShareScreen ボタンを押すことで配信者の切り替えが実行できる</li>
201 <li>ShareScreen 実行後、Root Node に対し SERVER CHANGE REQUEST というメッセージが送信される。</li> 199 <li>ShareScreen 実行後、Root Node に対し SERVER CHANGE REQUEST というメッセージが送信される。</li>
202 <li>メッセージを受け取った Root Node は配信を希望している Node の VNC サーバーと通信を行い、切り替え作業に入る。</li> 200 <li>メッセージを受け取った Root Node は配信を希望している Node の VNC サーバーと通信を行い、切り替え作業に入る。</li>
203 </ul> 201 </ul>
204 202
205 203 </div>
206 </div> 204 <div class='slide '>
207 <div class='slide '> 205 <!-- _S9SLIDE_ -->
208 <!-- _S9SLIDE_ --> 206
209 <h1 id="treevnc--2">TreeVNC の問題点</h1> 207 <h2 id="treevnc--2">TreeVNC の問題点</h2>
210 <ul> 208 <ul>
211 <li>クライアントが接続している状態で、サーバー側が接続を切るとクライアント側が正しく切断されない</li> 209 <li>クライアントが接続している状態で、サーバー側が接続を切るとクライアント側が正しく切断されない</li>
212 <li>サーバーに接続した際に、画面の操作を許可するかどうか確認するポップアップが Root 側にも表示されてしまう</li> 210 <li>サーバーに接続した際に、画面の操作を許可するかどうか確認するポップアップが Root 側にも表示されてしまう</li>
213 <li>膨大なデータを無線接続で配信した場合、配信の遅延が大きくなる</li> 211 <li>膨大なデータを無線接続で配信した場合、配信の遅延が大きくなる</li>
214 </ul> 212 </ul>
215 213
216 214 </div>
217 </div> 215 <div class='slide '>
218 <div class='slide '> 216 <!-- _S9SLIDE_ -->
219 <!-- _S9SLIDE_ --> 217
220 <h1 id="multicast-">Multicast 対応</h1> 218 <h2 id="multicast-">Multicast 対応</h2>
221 <ul> 219 <ul>
222 <li>有線接続の Node で形成されたツリーに無線接続の Node を加えてしまうと通信の遅延が発生し、ツリー全体の配信遅延に繋がる</li> 220 <li>有線接続の Node で形成されたツリーに無線接続の Node を加えてしまうと通信の遅延が発生し、ツリー全体の配信遅延に繋がる</li>
223 <li>Multicast の実装を提案</li> 221 <li>Multicast の実装を提案</li>
224 <li>Multicast ならば、Server からの送信は一度で済むため、ツリー構造の形成が必要ない</li> 222 <li>Multicast ならば、Server からの送信は一度で済むため、ツリー構造の形成が必要ない</li>
225 <li>従って新しい Node が 無線接続であっても、有線接続のツリーの配信には影響が出ない</li> 223 <li>従って新しい Node が 無線接続であっても、有線接続のツリーの配信には影響が出ない</li>
226 </ul> 224 </ul>
227 225
228 <p><img src="./fig/interface-crop.svg" alt="message" width="400" height="250" /></p> 226 <p><img src="./fig/interface-crop.svg" alt="message" width="400" height="250" /></p>
229 227
230 228 </div>
231 </div> 229 <div class='slide '>
232 <div class='slide '> 230 <!-- _S9SLIDE_ -->
233 <!-- _S9SLIDE_ --> 231
234 <h1 id="blocking">Blocking</h1> 232 <h2 id="blocking">Blocking</h2>
235 <ul> 233 <ul>
236 <li>無線接続の場合、一度に送信できるデータ量が 64kbyte しかないため、それに合わせてデータを分割する必要がある</li> 234 <li>無線接続の場合、一度に送信できるデータ量が 64kbyte しかないため、それに合わせてデータを分割する必要がある</li>
237 <li>大きなデータを小さい単位に分割する手法</li> 235 <li>大きなデータを小さい単位に分割する手法</li>
238 </ul> 236 </ul>
239 237
240 238 </div>
241 </div> 239 <div class='slide '>
242 <div class='slide '> 240 <!-- _S9SLIDE_ -->
243 <!-- _S9SLIDE_ --> 241
244 <h1 id="section-3">まとめ</h1> 242 <h2 id="section-3">まとめ</h2>
245 <ul> 243 <ul>
246 <li>TreeVNC の改良と Multicast 対応のためのデータの Blocking を実装した。 244 <li>TreeVNC の改良と Multicast 対応のためのデータの Blocking を実装した。
247 <ul> 245 <ul>
248 <li>VNCServer 側が接続を切断した場合でもクライアントが正しく終了する様にした。</li> 246 <li>VNCServer 側が接続を切断した場合でもクライアントが正しく終了する様にした。</li>
249 <li>画面操作の許可を確認する authentication のポップアップが Root 側に表示されない様にした。</li> 247 <li>画面操作の許可を確認する authentication のポップアップが Root 側に表示されない様にした。</li>