HTML5 技術を利用してデスクトップ画面を、実時間で、数十台の端末に配信するシステムと、その管理システムを試作したことについて述べる。インターネットとプライベートネットワークのどちらにもサーバを配置することにより、授業や会議が遠隔地で分散して実施される場合にも対応できる。大量の端末に効率よくデータを配信するため、複数のサーバを利用するが、Web クライアントを自動的に適切なサーバに割り当てる機能も持っている。負荷分散機能も持っている。サーバを管理するため、Web 画面上でサーバを制御することができる。管理者が適切にサーバを加えたり減らしたりするため、端末数、Web クライアントで表示される単位時間あたりの表示画面枚数、Web クライアントにおけるネットワーク利用バンド幅などの変化も表示可能で、ログも採取できる。
Experimental Implementation of
a Real-time PC Screen Distribution System for Classes and Meetings using HTML5 Technology
Experimental implementation of a real-time PC screen distribution system for classes and meetings is discussed. This system uses HTML5 technology. So users of this system can use this system just using their own common Web browsers. Several tens web clients can share the screen of a PC. This system is a kind of CDN which unifies servers at the Internet and hierarchical private networks. An appropriate server of the CDN is selected automatically when a Web client is connected to the CDN. This system is also equipped with administration functions for managers of this system.
17. • Client-Server 型
• HTML5 の Web Socket 技術を使った
• パソコンデスクトップ画像の実時間共有システム
• 構成
– 1台の Web Server
– 複数の Web Client
– 画像取得とその画面をサーバに送信する Screen Sender
3.0 Web Screen Share
18.
19. • Screen Sender
– デスクトップ画像を繰り返し取得
– 通常のSocket を使って Web Server に送信
• Screen Sender から画像を受け取った Web Server
– その画像を各Web Client に対応した Queue の最後に追加
– Queue に溜まった画像の量が一定値を超えると, その値を超え
ないようにQueue の先頭部分にある画像を削除
– 現在, この一定値は 3 .
20. • Web Client
– HTML5 , Web Socket
– Web Server に対して get コマンドを繰り返し発行
• Web Server が get コマンドを受け取ると
– Web Client に対応した Queue の先頭にある画像を,
– get コマンドを受け取った Socket に対して送信
– その画像を Queue から削除
• 画像を受け取った Web Client …その画像を表示する.
• Jetty を利用(開発当時は Web Socket が利用できるWeb サーバ)
38. Procedure connectToAnAppropriateServer(a∈A)
begin
connect to ℎ𝑜𝑠𝑡 𝑎, 𝐻 temporally;
privates←privateRootServers(ℎ𝑜𝑠𝑡(𝑎, 𝐻));
default← 𝑑𝑒𝑓𝑎𝑢𝑙𝑡𝑆𝑒𝑟𝑣𝑒𝑟 ℎ𝑜𝑠𝑡(𝑎, 𝐻 ) ;
if privates≠ 𝜙 then
for each 𝑠 𝑟𝑖 ∈ 𝑝𝑟𝑖𝑣𝑎𝑡𝑒𝑠
if connectable(𝑡ℎ𝑖𝑠, 𝑠 𝑟𝑖) then
connectToAnAppropriateServer(𝑠 𝑟𝑖) ;
connect to default as a client;
end;
39. Screen Sender
Private network-2L Private network-2R
Private network-1
Global Internet
Root Node System
New Web Client ?
Private IP:PA2L0 Private IP: PA2R0
Node-L
Node-R
Node-L is a leaf node in the
global Internet, and it has the
smallest number of web clients
or node systems at private networks.
Private IP: PA0
Private network-0
40. Screen Sender
Private network-2L Private network-2R
Private network-1
Global Internet
Root Node System
New Web Client ?
Private IP:PA2L1 Private IP: PA2R1
Node-L
Node-R
Node-L is a leaf node in the
global Internet, and it has the
smallest number of web clients
or node systems at private networks.
Private IP: PA0
Private network-0
I’d like to join
your group.
Global IP address is GA0
Temporal
WebSocket
Connection
41. Screen Sender
Private network-2L Private network-2R
Private network-1
Global Internet
Root Node System
New Web Client ?
Private IP:PA2L1 Private IP: PA2R1
Node-L
Node-R
Private IP: PA0
Private network-0
Global IP address is GA0
Does anyone has the private
node link, the address of
which is GA0?.
42. Screen Sender
Private network-2L Private network-2R
Private network-1
Global InternetRoot Node System
New Web Client ?
Private IP:PA2L1 Private IP: PA2R1
Node-L Node-R
Private IP: PA0
Private network-0
Global IP address is GA0
I have it.
The private addresses of it is PA0.
43. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L1 Private IP: PA2R1
Node-L Node-R
Private IP: PA0
Private network-0
Try to connect to PA0.
If failed to connect to it, try to
connect to Node-L
44. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L1
Private IP: PA2R1
Node-L Node-R
Private IP: PA0
Private network-0
Is it possible to
connect to PA0?
If yes, …
45. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L1
Private IP: PA2R1
Node-L Node-R
Private IP: PA0
Private network-0
I’d like to join
your group.
46. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L1
Private IP: PA2R1
Node-L Node-R
Private IP: PA0
Private network-0
Does anyone has the private
node link, the address of
which is P10?.
Private IP address is P10
47. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L0
Private IP: PA2R0
Node-L Node-R
Private IP: PA0
Private network-0
Private IP address is P10
I have it.
The private addresses of it is PA2R0.
I have it.
The private addresses of it is PA2L0.
48. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L0
Private IP: PA2R0
Node-L Node-R
Private IP: PA0
Private network-0
Try to connect to PA2R0 or PA2L0.
If failed to connect to it, try to
connect to Node-P0L
Node-P0L
49. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L0
Private IP: PA2R0
Node-L Node-R
Private IP: PA0
Private network-0
Node-P0L
Is it possible to
connect to PA2R0?
If No, …
50. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L0
Private IP: PA2R0
Node-L Node-R
Private IP: PA0
Private network-0
Node-P0L
Is it possible to
connect to PA2L0?
If Yes, …
51. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L0
Private IP: PA2R0
Node-L Node-R
Private IP: PA0
Private network-0
Node-P0L
I’d like to join your
group
52. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L0
Private IP: PA2R0
Node-L Node-R
Private IP: PA0
Private network-0
Node-P0L
I have no children Nodes.
So the new web client can
connect to me as my web client.
53. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client ?
Private IP:PA2L0
Private IP: PA2R0
Node-L Node-R
Private IP: PA0
Private network-0
Node-P0L
Connect to me as my web client.
54. Screen Sender
Private network-2L Private network-2R
Private network-1
Root Node System
New Web Client
Private IP:PA2L0
Private IP: PA2R0
Node-L Node-R
Private IP: PA0
Private network-0
Node-P0L
Connect as a web client
55.
56.
57. 4. 管理機能
• Web GUI
• Node System の追加と削除
• Node System の接続状況の把握
• 接続クライアントの把握
• 変化の把握
– Node system 数
– クライアント数
– Fps, バンド幅