@@ -113,105 +114,138 @@
-
研究目的
-
多人数で意見を交わし合い、モチベーションを高めたい。
-
並列信頼研のゼミでは、それぞれの学生の研究目的や進捗状況等を共有する。
- 共有した上で、教授や他の学生からアドバイスやアイデアを頂く。
-
このように多人数で情報を共有し、意見・質問等を交わし合いたい。
+
PCを用いた多人数でのコミュニケーションの充実
+
ゼミや授業等、ひとりひとりがPCを持っている状況で、
+ PCの機能を活かしたコミュニケーションが可能である
+
授業での教授のPC画面をリアルタイムで配信したり、
+ ゼミ等で、発表する学生のPC画面を切り替えることを可能にしたい
-
-
研究目的
-
TreeVNCを用いることによって、多人数でのコミュニケーションの充実をはかる。
+
TreeVNCを用いたコミュニケーションの充実
+
TreeVNCを用いることによって、多人数でのPC端末を用いたコミュニケーションの充実をはかる
- ひとつの画面を多人数で共有する
- 画面の切り替えをスムーズにする
- 綺麗な画質をリアルタイムで配信する
+ - 遠隔地からでもコミュニケーションに参加できる
-
これらの機能に加えて、遠隔地からでもコミュニケーションに参加出来るようにしたい。
-
-
-
lostChild 機能追加
-
lostChild 機能とは
-
- - lostParent と逆の方法で死んだ node に対する検知
- - 親 node が timer-discard-thread で子 node が死んだことを検知
-
- - それぞれの子 node には myId がふられている(左子 : 0, 右子 : 1)
-
- - root node へ command(lostLeftClient/lostRightCliet) を送信
- - root node は、 nodeList の更新を行い、死んだ node の代わりに nodeList の最後の node を割り当てる
-
+
TreeVNCとは
+
今研究室で開発している多人数向けの画面共有システム
+
TreeVNC 画面配信システムは、参加したクライアントをバイナリツリー状に接続し、
+ 配信コストをクライアントに バランスさせる仕組みになっている
+ なので、多人数が参加しても処理性能が下がらない
+
また、RFB プロトコルを用いているので、
+ ケーブルの差し替えなしに共有している画面の切り替えが可能になっている
+
-
lostParent と lostChild の違い
-
lostParent との違い
+
機能向上のために行った機能拡張
+
以下のTreeVNCの機能拡張を行った
+
リファクタリング
- - lostParent は、子 node が死んだ親に気づく
- - lostChild は、親 node が死んだ子に気づく
-
-
なぜ lostParent を消したのか
-
- - lostParent 中、接続が一旦切れると timer-discard-thread に検知されてしまうようになってしまった
- - lostParent の処理で新しく node が接続されても、その node は lostChild として消されてしまうようになってしまった
- - lostParent と lostChild は検知する場所が違うだけで、同じ動作をする
+ - 1台のPCで複数のTreeVNCの立ち上げを可能にした
+ - 複数のネットワークインタフェースでの使用が可能になった
+ - 切断の検知方法を解決した
-
-
-
-
lostParent と lostChild の違い
-
-
-
-
-
lostParent と lostChild の違い
-
-
-
-
-
-
ルータ超えの実装案
-
rootと遠隔地nodeの接続
+
新機能実装
- - 遠隔地nodeはrootのグローバルアドレスを指定してpacketを送信する。
- - rootはpacketからnodeのIPAddressとport番号を取得する。
- - 遠隔地nodeの情報をrootのnodeListに追加する。
-
+ - 描画速度の向上
+ - シングルディスプレイのみの表示を可能にした
+ - 遠隔地からの接続を可能にした
-
これからやること
+
動的なport番号の割り当て
+
問題点
+
固定port番号の使用をしていたため、1台のPCで複数台のTreeVNCを立ち上げることができなかった
+
解決方法
+
接続してくるnodeに対して、動的にport番号を割り当てる様に変更を行った
+ node間のメッセージ通信は、割り当てられたport番号を用いて行う様にした
+
結果
+
1台のPCで複数台のTreeVNCの立ち上げが可能となった
+ メッセージ通信に、どのportが使用されているかを意識する必要がなくなった
+
+
+
+
+
+
Treeの構成の変更
+
問題点
+
単一のネットワークインタフェースのみでしか使用できなかった
+ 構成される木構造がひとつであった
+
解決方法
+
ネットワークインタフェース毎に木構造を構成する様変更した
+
結果
+
有線・無線、両方でのTreeVNCの使用が可能になった
+
+
+
+
+
マルチディスプレイ対応
+
問題点
+
配信者の画面がマルチディスプレイだった場合、2画面のデータが配信されてしまう
+ 2画面の表示はプレゼンテーションには向いていない
+
+
解決方法
+
配信側のシングルディスプレイサイズを取得し、画面データのフィルタリングを行った
+
結果
+
シングルディスプレイのみの表示が可能となった
+
+
+
+
遠隔地から接続を可能にした
+
結果
+
+
+
+
+
遠隔地からの接続の実装方法
+
実装方法
- - ルータを越えた接続の実装
- - 音声共有機能の実装
-
- - node -> root間の送信方法変更
- - root -> 他nodeへの送信
- - 送信・受信の終了処理追加
-
- - 卒論
+ - 遠隔地 node から接続したい root に対して接続を要求する WHERE_TO_CONNECT_message を送信する
+ - root は、遠隔地 node に対して接続先を含む CONNECT_TO message を送信する
+ - 遠隔地 node は指定された接続先に対して接続しに行く
+
+
+
+
その他の問題解決
+ ビデオフィードバッグを非表示にした
+ 切断時の検知方法の変更
+ QUALITYモードとSPEEDモード
+ 表示画面サイズ調整機能
+
+
+
+
+
今後の課題
+ 音声機能の追加
+ 記録機能の追加
+ 意見・質問等の共有機能の追加
+
+
+
+
+