Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Dicomo 2013, デスクトップ画像共有システムのための、トーナメントアルゴリズムを使った負荷分散機構

1,353 views

Published on

HTML5を使ったデスクトップ画像共有システムにおいて, 大量のWebクライアント間で短い遅延を保ったまま, 画像共有を実現するための, 負荷分散機構について述べる. この画像共有システムは複数のWebサーバと大量のWebクライアントによって実現されている. この負荷分散機構はトーナメントアルゴリズムを用いて実現している. 80台の端末を用いて本システムおよびアルゴリズムの有効性を確認した.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Dicomo 2013, デスクトップ画像共有システムのための、トーナメントアルゴリズムを使った負荷分散機構

  1. 1. デスクトップ画像共有 システムのための, トーナメントアルゴリズム を使った負荷分散機構 山之上卓†1 杉田裕次郎†1 小荒田裕理†1 小田謙太郎†1 下園幸一 †1 鹿児島大学 マルチメディア,分散,協調とモバイル(DICOMO2013)シンポジ 2F-4, 2013 7/10@北海道十勝川温泉 ホテル大平原
  2. 2. 目次  1. はじめに  2. Web Screen Share  3. Distributed Web Screen Share  4. ISCノードによる平衡2分木の構成  5. トーナメントアルゴリズムによる負荷分散  6. アルゴリズムの拡張  7. 関連研究  8. おわりに
  3. 3. 1. はじめに-1  授業やゼミや会議  パソコン画面をプロジェクタでスクリーンに投影  -> 遠くから小さな字や絵を見ることが困難  このような問題に対処するため  -> SOLAR-CATS[1][4] やMulti VNC[7]  -> 会議参加者それぞれに, これらのソフトウェアをインストール したパソコンが必要.  (市村先生のQuick Boardはその問題はありません)
  4. 4. 1. はじめに-2  最近, みんな、スマートフォンやノートパソコンを携帯  発表者のパソコンのデスクトップ画像を,  このような機器で,  特別なソフトウェアやアプリをインストールすることなしに,  共有したい  -> 「Web Screen Share」  我々のゼミで利用
  5. 5. 1. はじめに-3  Web Screen Share  HTML5の Web Socket技術  パソコンデスクトップ画面共有システム  複数の, HTML5対応 Webブラウザに, 画像中継Webサーバを通じ て, 送信元パソコンのデスクトップ画面をリアルタイムで配信  Web Screen Share は, 参加者が20名程度までなら, 問題な く動作  この人数を超えると, 動画を表示するときに, 動きの滑らか さが失われてしまう
  6. 6. 1. はじめに-4  この問題を,  平衡2分木上に接続されたサーバ間データ転送ノード  を使うことによって, 解消  送信元パソコンのデスクトップ画像を  サーバ間データ転送ノードを使って  複数の画像中継Web サーバに配送  Web ブラウザ  複数の画像中継Webサーバに, 自動的に, 均等に, 接続  「Distributed Web Screen Share」
  7. 7. 1. はじめに-5  Webブラウザの均等割り当て トーナメントアルゴリズムを使って実現  Distributed Web Screen Share  動画表示の動きの滑らかさを損なうことなく,  より多くのWebクライアントで  同じデスクトップ画面を共有
  8. 8. 1. はじめに-6
  9. 9. 2. Web Screen Share-1  Client-Server 型  HTML5 の Web Socket 技術を使った  パソコンデスクトップ画像の実時間共有システム  構成  1台の Web Server  複数の Web Client  画像取得とその画面をサーバに送信する Screen Sender
  10. 10. 2. Web Screen Share-2
  11. 11. 2. Web Screen Share-3  Screen Sender  デスクトップ画像を繰り返し取得  通常のSocket を使って Web Server に送信  Screen Sender から画像を受け取った Web Server  その画像を各Web Client に対応した Queue の最後に追加  Queue に溜まった画像の量が一定値を超えると, その値を超えな いようにQueue の先頭部分にある画像を削除  現在, この一定値は 3 .
  12. 12. 2. Web Screen Share-4  Web Client  HTML5 , Web Socket  Web Server に対して get コマンドを繰り返し発行  Web Server が get コマンドを受け取ると  Web Client に対応した Queue の先頭にある画像を,  get コマンドを受け取った Socket に対して送信  その画像を Queue から削除  画像を受け取った Web Client …その画像を表示する.  Jetty を利用(開発当時は Web Socket が利用できるWeb サーバ)
  13. 13. 2. Web Screen Share-5 CPU :intel インテル Celeron デュアルコアE1200 1.6GHz 相当 Memory: 2GB Screen Sender : 5fps 解像度: 1440 x 900 Network: 100Mbps (NIC: 1Gbps)
  14. 14. 3. Distributed Web Screen Share-1  大規模な会議にも対応したい->  数百台のWeb クライアントが画面共有できるようにしたい  Web クライアント増加による性能劣化を緩和したい Distributed Web Screen Share (DWSS)を開発  DWSS  Node System を平衡2分木状に接続  葉の位置にあるNode system の Web Server にWeb Client をでき るだけ均等に割り当て
  15. 15. 3. Distributed Web Screen Share-2
  16. 16. 3. Distributed Web Screen Share-3  平衡2分木のすべてのISC Node に画像を中継するため,以下 のmulti-casting 手続きを利用する.  準備  すべてのノード(ISCノード)は、 親、左(の子)、右(の子)  の3つの全2重のTCP 接続を持つ null の場合もある  手続き  どれかのTCP接続から multicast データを受け取ったら, それを他 の接続に転送する  受け取った multicast データのノード内処理を行う
  17. 17. 4. ISCノードによる平衡2分木の構成-1  特許 No. 5186624, (Feb. 2013)  新規ノード追加時  準備  すべてのノードは、自分の左右それぞれの子孫の数を記憶  葉ノードはそれぞれ0  根以外のノードは、一定間隔で、 自分(1)+左の子孫の数+右の子孫の数 を親ノードに通知
  18. 18. 4. ISCノードによる平衡2分木の構成-2  ノード追加処理 (recursive procedure)  あるノードにおいて、 左右ともども子孫がいなかったら、左に追加 左に子孫がいて、右にいなかったら、右に追加 それ以外は子孫の数の少ない方に対してノード追加処 理  新規ノードは(原則として)(グループの)根ノードから追加
  19. 19. 4. ISCノードによる平衡2分木の構成-3  グループ内ノード障害発生時・離脱時の処理  ノード数情報を親ノードに送るとき、親から反応がない場合は親 がいなくなったと判断  根以外のグループ内の任意のノードは、親がいなくなったら、自 分を新規ノードとして根に追加処理を依頼  一時的にバランスはくずれるが、徐々にバランスが保たれ る方向にノードが追加される。
  20. 20. 5. トーナメントアルゴリズムによる負荷分 散-1  準備  任意のノードは、以下の情報を持つ  [自分のWebサーバの情報, そのWeb Client の数]  左の子孫における[Web Client 接続先候補, そのWeb Client の数]  右の子孫における[Web Client 接続先候補, そのWeb Client の数]  ノードの[Web Client 接続先候補, そのWeb Client の数]
  21. 21. 5. トーナメントアルゴリズムによる負荷分 散-2  定期的に以下を行う  葉ノードは、[自分のWeb サーバの情報, そのWeb Client の数]を [Web Client 接続先候補, その Web Client の数]とする  節ノードは、左右を比較して、Web Client の数が少ない方(勝っ た方)の [Web Client 接続先候補, その Web Client の数]を ノードの[Web Client 接続先候補, その Web Client の数]とす る  根ノード以外は ノードの[Web Client 接続先候補, その Web Client の数] を親ノードに伝える
  22. 22. 5. トーナメントアルゴリズムによる負荷分 散-3  新規に Web Client が接続されるとき  その Web Cliet は根ノードに接続する.  次に、根ノードの Web Client 接続先候補に redirect する。  葉ノードの中で最も Web Client 数が少ない Web サーバに 接続する --- 負荷分散
  23. 23. 6. アルゴリズムの拡張  1つの葉ノードに接続される Web Client の制限  全Web Client 数のモニタ… Web Client 増加時には ノードを 追加するなどに利用  (Web Client数減少時)葉ノードへのWeb Client の接続制 限 葉ノードを空にしてグループから削除
  24. 24. 7. 関連研究  SOLAR-CATS … Web Client ではない  拡張Edutab … 負荷分散はない  AKAMAI … 限られたIP範囲内の、せいのでドーンには向か ない  FCAN … 特殊なDNS を利用  Ustream Live Producer … 遅延が大きい  Web RTC … DWSS に使えるかも
  25. 25. 7. おわりに  大量のクライアント間の画面共有システムの負荷分散  大量のWi-Fi 端末を使う会議や授業のための「ポータブルク ラウド」開発中。これに組み込み予定  ノード数が減っていくとき対策として、Web Client におけ る定期的な接続やり直しの方法もあり

×