Dicomo 2013,...

26
デデデデデデデデデデ デデデデデデデデ , トトトトトトトトトトトト トトトトトトトトトト トトトト †1 トトトトト †1 トトトトト †1 トトトトト †1 トトト†1 トトトトト デデデデデデデ デデデ デデデデデデデ ,, (DICOMO2013) デデデデデデ 2F-4, 2013 7/10@ トトトトトトトト トトトトトト

description

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

Transcript of Dicomo 2013,...

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

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

山之上卓† 1  杉田裕次郎† 1 小荒田裕理† 1 小田謙太郎† 1  下園幸一† 1

鹿児島大学

マルチメディア,分散,協調とモバイル (DICOMO2013)シンポジウム2F-4, 2013 7/10@ 北海道十勝川温泉 ホテル大平原

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

目次 1. はじめに 2. Web Screen Share 3. Distributed Web Screen Share 4. ISC ノードによる平衡2分木の構成 5. トーナメントアルゴリズムによる負荷分散 6. アルゴリズムの拡張 7. 関連研究 8. おわりに

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

1. はじめに -1

授業やゼミや会議 パソコン画面をプロジェクタでスクリーンに投影 -> 遠くから小さな字や絵を見ることが困難 このような問題に対処するため -> SOLAR-CATS[1][4] や Multi VNC[7] -> 会議参加者それぞれに , これらのソフトウェアをインストー

ルしたパソコンが必要 . ( 市村先生の Quick Board はその問題はありません )

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

1. はじめに -2

最近 , みんな、スマートフォンやノートパソコンを携帯 発表者のパソコンのデスクトップ画像を , このような機器で , 特別なソフトウェアやアプリをインストールすることなしに ,

共有したい -> 「 Web Screen Share 」 我々のゼミで利用

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

1. はじめに -3

Web Screen Share HTML5 の Web Socket 技術 パソコンデスクトップ画面共有システム 複数の , HTML5 対応 Web ブラウザに , 画像中継 Web サーバを

通じて , 送信元パソコンのデスクトップ画面をリアルタイムで配信

Web Screen Share は , 参加者が20名程度までなら , 問題なく動作

この人数を超えると , 動画を表示するときに , 動きの滑らかさが失われてしまう

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

1. はじめに -4

この問題を , 平衡2分木上に接続されたサーバ間データ転送ノード を使うことによって , 解消

送信元パソコンのデスクトップ画像を サーバ間データ転送ノードを使って 複数の画像中継 Web サーバに配送

Web ブラウザ 複数の画像中継 Web サーバに , 自動的に , 均等に , 接続

「 Distributed Web Screen Share 」

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

1. はじめに -5

Web ブラウザの均等割り当てトーナメントアルゴリズムを使って実現

Distributed Web Screen Share 動画表示の動きの滑らかさを損なうことなく , より多くの Web クライアントで 同じデスクトップ画面を共有

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

1. はじめに -6

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

2. Web Screen Share-1

Client-Server 型 HTML5 の Web Socket 技術を使った パソコンデスクトップ画像の実時間共有システム 構成

1 台の Web Server 複数の Web Client 画像取得とその画面をサーバに送信する Screen Sender

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

2. Web Screen Share-2

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

2. Web Screen Share-3

Screen Sender デスクトップ画像を繰り返し取得 通常の Socket を使って Web Server に送信

Screen Sender から画像を受け取った Web Server その画像を各 Web Client に対応した Queue の最後に追加 Queue に溜まった画像の量が一定値を超えると , その値を超え

ないように Queue の先頭部分にある画像を削除 現在 , この一定値は 3 .

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

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 サーバ )

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

2. Web Screen Share-5

CPU : intel インテル Celeron デュアルコア E1200 1.6GHz 相当Memory: 2GBScreen Sender : 5fps 解像度 : 1440 x 900 Network: 100Mbps(NIC: 1Gbps)

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

3. Distributed Web Screen Share-1  大規模な会議にも対応したい -> 数百台の Web クライアントが画面共有できるようにした

い Web クライアント増加による性能劣化を緩和したい

Distributed Web Screen Share (DWSS) を開発

DWSS Node System を平衡 2 分木状に接続 葉の位置にある Node system の Web Server に Web Client

をできるだけ均等に割り当て

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

3. Distributed Web Screen Share-2

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

3. Distributed Web Screen Share-3

平衡 2 分木のすべての ISC Node に画像を中継するため ,以下の multi-casting 手続きを利用する .

準備 すべてのノード( ISC ノード)は、

親、左(の子)、右(の子) の3つの全2重の TCP 接続を持つ null の場合もある

手続きどれかの TCP 接続から multicast データを受け取ったら , それ

を他の接続に転送する 受け取った multicast データのノード内処理を行う

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

4. ISCノードによる平衡2分木の構成 -1

特許 No. 5186624, (Feb. 2013)新規ノード追加時 準備

すべてのノードは、自分の左右それぞれの子孫の数を記憶 葉ノードはそれぞれ0

根以外のノードは、一定間隔で、   自分(1)+左の子孫の数+右の子孫の数を親ノードに通知

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

4. ISCノードによる平衡2分木の構成 -2

ノード追加処理 (recursive procedure) あるノードにおいて、

左右ともども子孫がいなかったら、左に追加左に子孫がいて、右にいなかったら、右に追加それ以外は子孫の数の少ない方に対してノード追加処理

新規ノードは(原則として) (グループの )根ノードから追加

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

4. ISCノードによる平衡2分木の構成 -3

グループ内ノード障害発生時・離脱時の処理 ノード数情報を親ノードに送るとき、親から反応がない場合は親

がいなくなったと判断根以外のグループ内の任意のノードは、親がいなくなったら、自

分を新規ノードとして根に追加処理を依頼 一時的にバランスはくずれるが、徐々にバランスが保たれ

る方向にノードが追加される。

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

5. トーナメントアルゴリズムによる負荷分散 -1 準備任意のノードは、以下の情報を持つ

[ 自分の Web サーバの情報 , その Web Client の数 ] 左の子孫における [Web Client 接続先候補 , その Web Client

の数 ] 右の子孫における [Web Client 接続先候補 , その Web Client

の数 ] ノードの [Web Client 接続先候補 , その Web Client の数 ]

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

5. トーナメントアルゴリズムによる負荷分散 -2 定期的に以下を行う

葉ノードは、 [ 自分の Web サーバの情報 , その Web Client の数 ] を   [Web Client 接続先候補 , その Web Client の数 ] とする節ノードは、左右を比較して、 Web Client の数が少ない方

( 勝った方 ) の        [Web Client 接続先候補 , その Web Client の数 ] を ノードの [Web Client 接続先候補 , その Web Client の数 ]とする根ノード以外は ノードの [Web Client 接続先候補 , その Web Client の数 ] を親ノードに伝える

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

5. トーナメントアルゴリズムによる負荷分散 -3新規に Web Client が接続されるとき

その Web Cliet は根ノードに接続する .次に、根ノードの Web Client 接続先候補に redirect する。

葉ノードの中で最も Web Client 数が少ない Web サーバに接続する --- 負荷分散

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

5. トーナメントアルゴリズムによる負荷分散 -4

0 10 20 30 40 50 60 70 800

1

2

3

4

5

6

サーバ 7台 サーバ 3台

Number of Clients

fps

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

6. アルゴリズムの拡張1つの葉ノードに接続される Web Client の制限 全 Web Client 数のモニタ… Web Client 増加時には

ノードを追加するなどに利用 ( Web Client 数減少時)葉ノードへの Web Client の接

続制限 葉ノードを空にしてグループから削除

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

7. 関連研究 SOLAR-CATS … Web Client ではない 拡張 Edutab … 負荷分散はない AKAMAI … 限られた IP範囲内の、せいのでドーンには向

かない FCAN … 特殊な DNS を利用 Ustream Live Producer … 遅延が大きい Web RTC … DWSS に使えるかも

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

7. おわりに 大量のクライアント間の画面共有システムの負荷分散 大量の Wi-Fi 端末を使う会議や授業のための「ポータブル

クラウド」開発中。これに組み込み予定 ノード数が減っていくとき対策として、 Web Client にお

ける定期的な接続やり直しの方法もあり