基於 x 視窗系統之遠端應用程式畫面呈現 機制

23
基基 X 基基基基基基基基基基基基基基基基基 Advisor : Jing Chen Reporter : 林林林 Date : 2011/12/15

Upload: jordan-kirby

Post on 01-Jan-2016

53 views

Category:

Documents


7 download

DESCRIPTION

基於 X 視窗系統之遠端應用程式畫面呈現 機制. Advisor : Jing Chen Reporter : 林建宏 Date : 2011/12/15. Outline. 簡介 動機與目標 相關研究 系統 架構 結論. 簡介. WebOS 使用瀏覽器操作遠端應用程式 不 需 plug-in Thin client 伺服器只分享單一應用程式 多客戶端 V.S. 單一伺服器. 簡介. 之前 實 作 方法 擷取應用程式 畫面,儲存為圖片 瀏覽器發出請求,請求圖片檔名 瀏覽器下載圖片,顯示於網頁上 缺點 以圖片方式傳送畫面,流量大 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

基於 X 視窗系統之遠端應用程式畫面呈現機制

Advisor : Jing Chen

Reporter : 林建宏Date : 2011/12/15

Page 2: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

2

Outline

• 簡介• 動機與目標• 相關研究• 系統架構• 結論

Page 3: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

3

簡介• WebOS– 使用瀏覽器操作遠端應用程式– 不需 plug-in– Thin client– 伺服器只分享單一應用程式– 多客戶端 V.S. 單一伺服器

Page 4: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

4

簡介• 之前實作方法– 擷取應用程式畫面,儲存為圖片– 瀏覽器發出請求,請求圖片檔名– 瀏覽器下載圖片,顯示於網頁上

• 缺點– 以圖片方式傳送畫面,流量大– 以 client pull 方式更新畫面,延遲性高,互動性

Page 5: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

5

動機與目標• 現有的遠端畫面呈現系統在行動裝置上效

率不佳• 互動性差• 目標– 改變畫面呈現方式,減少網路傳輸資料量– 改變伺服器客戶端溝通機制,減少系統延遲性

Page 6: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

6

相關研究• X Window System• Canvas• WebSocket

Page 7: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

7

X Window System

• 一種以點陣圖方式顯示軟體的顯示系統• 標準化軟體工具套件及顯示架構的運作協

定• 主從式架構– X Server– X Client– X Protocol

• 以網路為溝通的管道

Page 8: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

8

X Window System

Page 9: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

9

X Window System

Keyboard Mouse Screen

X Server

X Client X Client

Network

X Client

X Client

Local Machine

Remote Machine

Page 10: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

10

X Protocol

• X 視窗系統的基礎協議• 透過網路傳送四種類型的封包– Request : original 127 個, extension 27 個– Reply– Event– Error

Page 11: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

11

Canvas

• HTML 5 定義之新元素• 可視為一塊畫布• 透過 JavaScript 實現網頁繪圖功能• CanvasRenderingContext2D 提供繪圖 API• toDataURL()– 傳回以 data: 為首碼的 base 64 編碼表示的圖像

資料

Page 12: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

12

WebSocket

• 一種 browser 與 server 之間的通訊協定• 透過 handshaking ,雙方建立一個快速通道,

實現雙方通訊• 傳統方式 : Client Pull• 傳統實現 client server 同步方法– Polling– Comet – 改良式 Comet - Long Polling

Page 13: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

13

傳統方式比較• Client Pull– 由瀏覽器發出 HTTP Request ,伺服器返回最新

資料– 伺服器不主動傳送資料至瀏覽器

• Scenario : 網頁即時通訊

Network

Client A Client B

Network

Server

Message Message

Page 14: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

14

Polling

• Polling– Client 固定時間發出 Request 向 Server 要求更

新資料

Network

Client A Client B

Network

Server

Message Message

Request

Message

Page 15: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

15

Comet

• Comet– Server 端的 Polling– 永不中止的連線

Network

Client A Client B

Network

Server

Message Message

前次 Request

Polling

Page 16: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

16

Long Polling

• Long Polling– 改良 comet– Client 發出一個較長時間等待之 Request ,當

Server 有資料回應,中斷連線並重新發送 Request

Network

Client A Client B

Network

Server

Message Message

前次 Request

Polling

下次 Request

Polling

Page 17: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

17

WebSocket

• WebSocket– 以新的通訊協議,讓 client 與 Server 建立雙

向通道– 省去 Client Request , Server Reply 造成的

overhead– 可隨時互相傳遞訊息

Network

Client A Client B

Network

Server

Message Message

Page 18: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

18

系統架構• 原有系統架構

Client Side

Browser

HTML

JavaScript

Server Side

Application Launcher

X Agent X Agent X Agent

X Agent Manager

……

Web Server

Virtual X Server

Request MonitorProcess

Screen CaptureProcess

User Input HandleProcess

Screen UpdateProcess

X Agent

需要修改

Page 19: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

19

系統架構

Client Side

Browser

HTML5

JavaScript

Server Side

Application Launcher

X Agent Manager

……

Web Server

Input process

Virtual X Server

Virtual X Server

Input process

Virtual X Server

Input process

Page 20: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

20

系統架構

Browser

HTML

JavaScript

HTTPWeb

ServerX ServerXML-RPC

User Input Process

Input event

Browser

HTML5

JavaScript

WebSocketWeb

ServerX Server

WebSocket Server

User Input Process

Input event

CommandCommand Queue

Page 21: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

21

系統架構• Virtual X Server– 修改 X server 使其能將繪圖 Command 送出至

WebSocket Server

• 畫面呈現頁面– 具有解析繪圖 Command 能力– 實作一 library 對應每個繪圖 Command– 以 WebSocket 與 Server 溝通

Page 22: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

22

結論• 藉由分析 X Protocol 了解應用程式畫面的

組成,將畫面組成元件傳送至瀏覽器,重現應用程式畫面

• 降低網路傳輸流量並減少延遲性• 未來可以針對應用程式特性,發展出不同

呈現機制

Page 23: 基於 X 視窗系統之遠端應用程式畫面呈現 機制

23

參考資料• X 視窗系統

– http://zh.wikipedia.org/wiki/X_Window%E7%B3%BB%E7%B5%B1

• X Window 核心協議– http://zh.wikipedia.org/wiki/X_Window%E6%A0%B8%E5%BF

%83%E5%8D%94%E8%AD%B0

• Browser 與 Server 持續同步的作法介紹– http://www.josephj.com/entry.php?id=358

• Canvas– http://zh.wikipedia.org/wiki/Canvas_%28HTML

%E5%85%83%E7%B4%A0%29

• WebSocket– http://zh.wikipedia.org/wiki/WebSocket

• X 視窗應用程式分享系統之設計與實作