Mercurial > hg > Members > nobuyasu > presen
comparison OpenSourceConference/index.html @ 10:eaf3f3d169fe
modify index.html
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Sep 2011 17:23:58 +0900 |
parents | 95d46a58d75e |
children |
comparison
equal
deleted
inserted
replaced
9:95d46a58d75e | 10:eaf3f3d169fe |
---|---|
219 <div class="slide"> | 219 <div class="slide"> |
220 <h1>発表内容</h1> | 220 <h1>発表内容</h1> |
221 <ul> | 221 <ul> |
222 <li>RFB Protocol</li> | 222 <li>RFB Protocol</li> |
223 <li>データ転送量</li> | 223 <li>データ転送量</li> |
224 <li>ZRLE Encodingの問題</li> | |
224 <li>データ転送に用いたMulticastQueueについての説明</li> | 225 <li>データ転送に用いたMulticastQueueについての説明</li> |
225 <li>TreeVNCのデモ</li> | 226 <!-- <li>TreeVNCのデモ</li> --> |
226 <li>木構造の再構築</li> | 227 <li>木構造の再構築</li> |
227 <li>ZRLE Encodingの問題</li> | |
228 </ul> | 228 </ul> |
229 </div> | 229 </div> |
230 <!-- PAGE --> | 230 <!-- PAGE --> |
231 <div class="slide"> | 231 <div class="slide"> |
232 <h1>RFB protocol</h1> | 232 <h1>RFB protocol</h1> |
662 if (rfb.updateRectEncoding==RfbProto.EncodingZRLEE) | 662 if (rfb.updateRectEncoding==RfbProto.EncodingZRLEE) |
663 zrleInStream = null; | 663 zrleInStream = null; |
664 if (zrleInStream == null) | 664 if (zrleInStream == null) |
665 zrleInStream = new ZlibInStream(); | 665 zrleInStream = new ZlibInStream(); |
666 </pre> | 666 </pre> |
667 <li>JavaではZlibの辞書を取り出す機能がなかった為、このような方法をとることになった。</li> | 667 <li>JavaではZlibの辞書の取り出しが実装されていなかった為、このような方法をとることになった。</li> |
668 </div> | 668 </div> |
669 <!-- PAGE --> | 669 <!-- PAGE --> |
670 <div class="slide"> | 670 <div class="slide"> |
671 | 671 <h1>MulticastQueue</h1> |
672 | 672 <li>MulticastQueueの図を入れる。 </li> |
673 <p style="text-align: center;"> | |
674 <small> | |
675 接続されてきた時点からデータの送信が始まる。データは読み込まれるまでメモリ上に残っている。 | |
676 </small> | |
677 </p> | |
678 </div> | |
679 <!-- PAGE --> | |
680 <div class="slide"> | |
681 <h1>MulticastQueue</h1> | |
682 <li>MulticastQueueからデータを取り出し子供に送っている部分のソース</li> | |
683 <pre> | |
684 LinkedList<ByteBuffer> bufs = c.poll(); | |
685 int inputIndex = 0; | |
686 ByteBuffer header = bufs.get(inputIndex); | |
687 if (header==null) continue; | |
688 writeToClient(os, bufs, inputIndex); | |
689 </pre> | |
690 <li>c.poll(inputIndex) 内部では次の処理を行っている。</li> | |
691 <pre> | |
692 latch.await(); | |
693 return next; | |
694 </pre> | |
695 <li>次のデータが用意できるまでawait()で待つのである。</li> | |
696 </div> | |
697 <!-- PAGE --> | |
698 <div class="slide"> | |
699 <h1>MulticastQueue</h1> | |
700 <li>データは作られるとMulticastQueueにputされる。</li> | |
701 <p><small>put内部ではつぎの処理が行われる。</small></p> | |
702 <pre> | |
703 Node<T> next = new Node<T>(item); | |
704 tail.set(next); | |
705 tail = next; | |
706 </pre> | |
707 | |
708 <small> | |
709 <p> | |
710 set()内部ではlatchがcountDown()され、await()で止まっていたスレッドが動き出す。 | |
711 </small> | |
673 </div> | 712 </div> |
674 <!-- PAGE --> | 713 <!-- PAGE --> |
675 <div class="slide"> | 714 <div class="slide"> |
676 <h1>MulticastQueue</h1> | 715 <h1>MulticastQueue</h1> |
716 <li>MulticastQueueは次の次のデータへの参照を順序良く行うためのクラスである。</li> | |
717 <li></li> | |
718 | |
677 <li>MulticastQueueはjava.util.CountDownLatchを用いて実装されたクラスである。 </li> | 719 <li>MulticastQueueはjava.util.CountDownLatchを用いて実装されたクラスである。 </li> |
678 <li>クライアントから接続されると、データ転送用のスレッド(sender)が走る。 </li> | 720 <li>クライアントから接続されると、データ転送用のスレッド(sender)が走る。 </li> |
679 <li>このスレッドは次に流すデータが来るまでは待機して置かなければならない。そして流すべきデータがくるとまた動き始めなければならない。</li> | 721 <li>このスレッドは次に流すデータが来るまでは待機して置かなければならない。そして流すべきデータがくるとまた動き始めなければならない。</li> |
680 <li>このスレッドの待機・解放を行うのがMulticastQueueとなる。 </li> | 722 <li>このスレッドの待機・解放を行うのがMulticastQueueとなる。 </li> |
681 <!-- | 723 <!-- |
684 </small> | 726 </small> |
685 --> | 727 --> |
686 </div> | 728 </div> |
687 <!-- PAGE --> | 729 <!-- PAGE --> |
688 <div class="slide"> | 730 <div class="slide"> |
689 <h1>MulticastQueue</h1> | |
690 <li>MulticastQueueの図を入れる。 </li> | |
691 <p style="text-align: center;"> | |
692 <small> | |
693 接続されてきた時点からデータの送信が始まる。データは読み込まれるまでメモリ上に残っている。 | |
694 </small> | |
695 </p> | |
696 </div> | |
697 <!-- PAGE --> | |
698 <div class="slide"> | |
699 <h1>MulticastQueueの問題点</h1> | 731 <h1>MulticastQueueの問題点</h1> |
700 <li>Clientがデータを読み込まないとデータが溜まりメモリを圧迫してしまう。 </li> | 732 <li>Clientがデータを読み込まないとデータが溜まりメモリを圧迫してしまう。 </li> |
701 <p style="text-align: center;"> | 733 <p style="text-align: center;"> |
702 <img src="./pix/TimeOut1.png"> | 734 <img src="./pix/TimeOut1.png"> |
703 </p> | 735 </p> |
704 </div> | 736 </div> |
705 <!-- PAGE --> | 737 <!-- PAGE --> |
706 <div class="slide"> | 738 <div class="slide"> |
707 <h1>MulticastQueueの問題点</h1> | 739 <h1>MulticastQueueの問題点</h1> |
708 <li style="text-align: center;">解決策</li> | 740 <li>TimeOut(TO)スレッドを走らせ、一定の時間データを読み込まなければ代わりにこのTOが読み込むようにする。</li> |
709 <p style="text-align: center;"> | 741 <p style="text-align: center;"> |
710 <img src="./pix/TimeOut2.png"> | 742 <img src="./pix/TimeOut2.png"><br> |
711 </p> | 743 解決策 |
712 <small> | 744 </p> |
713 <li>TimeOut(TO)スレッドを走らせ、一定の時間データを読み込まなければ代わりにこのTOが読み込むようにする。</li> | 745 </div> |
714 </small> | 746 <!-- PAGE --> |
715 </div> | 747 <div class="slide"> |
716 <!-- PAGE --> | 748 <h1>テスト環境の構築</h1> |
717 <div class="slide"> | |
718 <h1>TreeVNCのデモ</h1> | |
719 <li>では実際に動かしてみる。</li> | |
720 <li></li> | |
721 </div> | |
722 <!-- PAGE --> | |
723 <div class="slide"> | |
724 <h1>TreeVNCの利点と欠点</h1> | |
725 <ul> | |
726 <li>ケーブル1本への負荷が減る。一極集中型よりスループットを維持できる。</li> | |
727 <li>無線を使われると遅くなる。</li> | |
728 </ul> | |
729 </div> | |
730 <!-- PAGE --> | |
731 <div class="slide"> | |
732 <h1>テスト環境について</h1> | |
733 <li>CUI版のVNCクライアントを作成</li> | 749 <li>CUI版のVNCクライアントを作成</li> |
734 <li>48台あるクラスタでCUI版のクライアントをはしらせてVNCをかけさせる。</li> | 750 <li>48台あるクラスタでCUI版のクライアントをはしらせてVNCをかけさせる。</li> |
735 <li>最初の1台目と50台めをGUI版のクライアントで接続を行い見比べてみる。 </li> | 751 <li>最初の1台目と48台めをGUI版のクライアントで接続を行い見比べてみる。 </li> |
736 </div> | 752 </div> |
737 <!-- PAGE --> | 753 <!-- PAGE --> |
738 <div class="slide"> | 754 <div class="slide"> |
739 <h1></h1> | 755 <h1>TreeVNCの発端</h1> |
740 <li></li> | 756 <li>大学のB3でうける授業の1つ、programming4で作り始めたことがきっかけ。</li> |
741 <li></li> | 757 <li>programming4は作りたいものを提案して作る授業。 </li> |
742 </div> | 758 <li>授業が終わっても改良を加えていた。</li> |
743 <!-- PAGE --> | 759 <li>B4になりこの場で発表してみることになった。</li> |
760 </div> | |
761 <!-- PAGE --> | |
762 <!-- | |
744 <div class="slide"> | 763 <div class="slide"> |
745 <h1>既存のプログラムとの比較</h1> | 764 <h1>既存のプログラムとの比較</h1> |
746 <li>VNC Reflector</li> | 765 <li>VNC Reflector</li> |
747 <ul> | 766 <ul> |
748 <li>tightVNCの作者が作成したプログラム</li> | 767 <li>tightVNCの作者が作成したプログラム</li> |
749 <li>VNC Reflecotrにクライアントが接続することでVNCを行うことができる</li> | 768 <li>VNC Reflecotrにクライアントが接続することでVNCを行うことができる</li> |
750 </ul> | 769 </ul> |
751 </div> | 770 </div> |
752 <!-- PAGE --> | 771 --> |
753 <div class="slide"> | |
754 <h1></h1> | |
755 <li></li> | |
756 </div> | |
757 <!-- PAGE --> | 772 <!-- PAGE --> |
758 </div> | 773 </div> |
759 </body> | 774 </body> |
760 </html> | 775 </html> |