用于經(jīng)由支持2d畫布和動態(tài)繪圖的html來進行遠程桌面會話的方法和系統(tǒng)的制作方法
【專利摘要】提供方法、系統(tǒng)、設備和機器可讀存儲介質的實例來經(jīng)由編碼轉換服務器促進由客戶端設備處的網(wǎng)頁瀏覽器訪問和控制遠程計算機遠程桌面,而無需在客戶端設備上安裝專有的插件或協(xié)議。編碼轉換服務器可將來自網(wǎng)頁瀏覽器的用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入調(diào)用命令。編碼轉換服務器可從遠程計算機接收遠程桌面繪圖命令且將遠程桌面繪圖命令轉譯成與網(wǎng)頁瀏覽器兼容的網(wǎng)頁瀏覽器繪圖更新。編碼轉換服務器可經(jīng)由HTTP與網(wǎng)頁瀏覽器進行通信,并經(jīng)由遠程桌面顯示協(xié)議與遠程計算機進行通信。網(wǎng)頁瀏覽器可為HTML5瀏覽器。編碼轉換服務器可經(jīng)由HTTP標頭將繪圖坐標發(fā)送到網(wǎng)頁瀏覽器,并可以使用長輪詢。
【專利說明】用于經(jīng)由支持2D畫布和動態(tài)繪圖的HTML來進行遠程桌面
會話的方法和系統(tǒng)
【技術領域】
[0001]本發(fā)明主題的技術通常涉及通信及處理,以及更具體地涉及用于經(jīng)由支持2D畫布和動態(tài)繪圖的HTML來進行遠程桌面會話的方法和系統(tǒng)。
【背景技術】
[0002]傳統(tǒng)遠程桌面協(xié)議的實現(xiàn)使得遠程用戶能夠從客戶端設備通過局域網(wǎng)或廣域網(wǎng)的網(wǎng)絡拓撲到服務器上訪問其桌面或應用程序。
[0003]傳統(tǒng)的方法適用于支持特定公共或專有遠程桌面顯示協(xié)議(其是本地的或安裝到服務器上的)的軟件架構(infrastructure)供應商。為了利用遠程桌面協(xié)議來訪問服務器,客戶端通常需要具有在用戶的特定操作系統(tǒng)和平臺或適于特定瀏覽器的插件上執(zhí)行的特定軟件應用協(xié)議。
[0004]因此傳統(tǒng)的方法對于用戶而言是繁瑣的。因此,對于下述系統(tǒng)和方法存在需求,所述系統(tǒng)和方法便于用戶從客戶端設備與服務器上運行的應用程序交互,以及給在客戶端設備處的用戶提供改進的體驗。
【發(fā)明內(nèi)容】
[0005]可利用編碼轉換服務器來提供本公開的各個方面,所述編碼轉換服務器通過遠程桌面客戶端提供一個或多個網(wǎng)頁瀏覽器到一個或多個遠程計算機的訪問。根據(jù)本公開的編碼轉換服務器可包括例如計算機可讀指令的模塊或功能,以便用于接收來自網(wǎng)頁瀏覽器的請求。編碼轉換服務器還可包括例如計算機可讀指令的模塊或功能,以便將從網(wǎng)頁瀏覽器接收到的用戶輸入請求(如HTTP請求)轉譯成相應的輸入調(diào)用命令,其在協(xié)議/語言上與用于訪問一個或多個遠程計算機的一個或多個遠程桌面客戶端兼容。編碼轉換服務器可經(jīng)由一個或多個遠程桌面客戶端來接收來自一個或多個遠程計算機的例如繪圖命令的信息/數(shù)據(jù),并將所述信息/數(shù)據(jù)轉譯成與相關聯(lián)的一個或多個網(wǎng)頁瀏覽器兼容的協(xié)議/語言。編碼轉換服務器可包括用于保持圖像(例如Java位圖)的存儲/記憶功能,其可響應于從遠程桌面服務器所接收到的繪圖命令來進行修改。編碼轉換服務器也可接收來自遠程桌面服務器的繪圖命令并存儲相應于相應繪圖命令的坐標。
[0006]在一些應用中,編碼轉換服務器可通過創(chuàng)建和修改遠程桌面一部分的圖像來促進/加速一個或多個相關的遠程桌面圖像在相關網(wǎng)頁瀏覽器處的渲染,遠程桌面一部分的圖像受到用戶在用戶設備處輸入的影響。
[0007]本公開的各個方面可提供一種編碼轉換服務器,其具有長輪詢功能以便處理來自網(wǎng)頁瀏覽器的請求。
[0008]本公開的各個方面可包括或提供具有畫布(canvas)或二維渲染功能的網(wǎng)頁瀏覽器。
[0009]應該理解對于本【技術領域】的技術人員而言從下面的詳細描述將容易明了本發(fā)明主題技術的其它配置,在下面的詳細描述中通過示例的方式示出和描述了本發(fā)明主題技術的各種配置。如將會意識到的那樣,本發(fā)明主題的技術能夠具有其它和不同的配置,且其若干細節(jié)能夠在不同的其它方面進行修改,上述所有內(nèi)容均不脫離本發(fā)明主題技術的范圍。因此,附圖和詳細描述應該被認為在本質上是示例性的而不是限制性的。
【專利附圖】
【附圖說明】
[0010]圖1示出在經(jīng)由服務器與遠程計算機的遠程訪問會話期間在客戶端設備上顯示的實例;
[0011]圖2A是一個或多個客戶端設備實例的視圖,其中每個客戶端設備具有經(jīng)由多個網(wǎng)絡和一個服務器而連接到一個或多個遠程計算機的網(wǎng)頁瀏覽器;
[0012]圖2B是一個或多個客戶端設備實例的視圖,其中每個客戶端設備具有通過一個網(wǎng)絡和一個服務器而連接到一個或多個遠程計算機的網(wǎng)頁瀏覽器;
[0013]圖3A是根據(jù)本公開某些方面的在結合網(wǎng)頁瀏覽器和遠程計算機使用時的編碼轉換服務器實例的概念性框圖;
[0014]圖3B是根據(jù)本公開某些替代性方面的在結合網(wǎng)頁瀏覽器和遠程計算機使用時的編碼轉換服務器實例的概念性框圖;
[0015]圖4A是編碼轉換服務器實例的概念性框圖;
[0016]圖4B是替代性編碼轉換服務器實例的概念性框圖;
[0017]圖4C是遠程計算機的遠程桌面的概念性框圖;
[0018]圖5是在結合編碼轉換服務器和遠程計算機使用時的網(wǎng)頁瀏覽器實例的概念性框圖;
[0019]圖6是根據(jù)本公開某些方面的編碼轉換服務器實例的概念性框圖;
[0020]圖7是在結合網(wǎng)頁瀏覽器和遠程計算機使用時在編碼轉換服務器、網(wǎng)頁瀏覽器和遠程計算機之間交互的時序圖的實例;
[0021]圖8是示出示例性計算系統(tǒng)的框圖;
[0022]圖9A是示出從用戶設備訪問和控制遠程桌面的方法實例的框圖;
[0023]圖9B是示出延續(xù)圖9A的圖;
[0024]圖1OA是示出在客戶端設備處利用編碼轉換服務器經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器促進實時訪問和控制遠程計算機遠程桌面的方法實例的框圖;
[0025]圖1OB是示出計算機可讀存儲介質實例編碼的框圖,該存儲介質編碼有指令,所述指令可由處理系統(tǒng)執(zhí)行以便執(zhí)行在客戶端設備處利用編碼轉換服務器經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器來促進實時訪問和控制遠程計算機遠程桌面的方法;
[0026]圖1OC是示出用于在客戶端設備處利用編碼轉換服務器經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器促進實時訪問和控制遠程計算機遠程桌面的設備實例模塊的框圖;
[0027]圖1lA是示出在客戶端設備處利用編碼轉換服務器經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器促進實時訪問和控制遠程計算機遠程桌面的方法實例的框圖;
[0028]圖1lB是示出計算機可讀存儲介質實例編碼的框圖,該存儲介質編碼有指令,所述指令可由處理系統(tǒng)執(zhí)行以便執(zhí)行在客戶端設備處利用編碼轉換服務器經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器來促進實時訪問和控制遠程計算機遠程桌面的方法;
[0029]圖1lC是示出用于在客戶端設備處利用編碼轉換服務器經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器促進實時訪問和控制遠程計算機遠程桌面的設備實例模塊的框圖;
[0030]圖12A是示出經(jīng)由編碼轉換服務器和利用支持二維(2D)畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的方法實例的框圖;
[0031]圖12B是示出計算機可讀存儲介質實例編碼的框圖,該存儲介質編碼有指令,所述指令可由處理系統(tǒng)執(zhí)行以便執(zhí)行經(jīng)由編碼轉換服務器和利用支持二維(2D)畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的方法;
[0032]圖12C是示出用于經(jīng)由編碼轉換服務器和利用支持二維(2D)畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的設備實例模塊的框圖;
[0033]圖13A是示出用于通過編碼轉換服務器、利用適于遠程桌面會話繪圖的超文本傳輸協(xié)議(HTTP)的HTTP標頭促進在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的方法實例的框圖;
[0034]圖13B是示出計算機可讀存儲介質實例編碼的框圖,該存儲介質編碼有指令,所述指令可由處理系統(tǒng)執(zhí)行以便執(zhí)行通過編碼轉換服務器、利用適于遠程桌面會話繪圖的超文本傳輸協(xié)議(HTTP)的HTTP標頭促進在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的方法;
[0035]圖13C是示出用于通過編碼轉換服務器、利用適于遠程桌面會話繪圖的超文本傳輸協(xié)議(HTTP)的HTTP標頭促進在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的設備實例模塊的框圖;
[0036]圖14A是示出通過編碼轉換服務器、利用在編碼轉換服務器處的適配器促進在客戶端設備處的網(wǎng)頁瀏覽器和遠程計算機處的遠程桌面服務器之間進行遠程桌面會話的方法實例的框圖;
[0037]圖14B是示出計算機可讀存儲介質實例編碼的框圖,該存儲介質編碼有指令,所述指令可由處理系統(tǒng)執(zhí)行以便執(zhí)行通過編碼轉換服務器、利用在編碼轉換服務器處的適配器促進在客戶端設備處的網(wǎng)頁瀏覽器和在遠程計算機處的遠程桌面服務器之間進行遠程桌面會話的方法;
[0038]圖14C是示出用于通過編碼轉換服務器、利用在編碼轉換服務器處的適配器促進在客戶端設備處的網(wǎng)頁瀏覽器和在遠程計算機處的遠程桌面服務器之間進行遠程桌面會話的設備實例模塊的框圖;
[0039]圖15A是示出計算機可讀存儲介質實例編碼的框圖,該存儲介質編碼有指令,所述指令可由處理系統(tǒng)執(zhí)行以便執(zhí)行經(jīng)由適于編碼轉換服務器的超文本傳輸協(xié)議(HTTP)處理器和遠程桌面客戶端適配器促進實時從客戶端設備處的網(wǎng)頁瀏覽器訪問和控制遠程計算機遠程桌面的方法;
[0040]圖15B至圖15C是示出經(jīng)由適于編碼轉換服務器的超文本傳輸協(xié)議(HTTP)處理器和遠程桌面客戶端適配器促進實時從客戶端設備處的網(wǎng)頁瀏覽器訪問和控制遠程計算機遠程桌面的方法實例的框圖;圖15C是延續(xù)圖15B的圖;
[0041]圖1?至圖15E是示出經(jīng)由適于編碼轉換服務器的超文本傳輸協(xié)議(HTTP)處理器和遠程桌面客戶端適配器促進實時從客戶端設備處的網(wǎng)頁瀏覽器訪問和控制遠程計算機遠程桌面的設備實例模塊的框圖;圖15E是延續(xù)圖15D的圖。
[0042]雖然在附圖中示出了某些實施例,但是本領域的技術人員將會理解的是所描述的實施例是示例性的,可在本公開的范圍內(nèi)設想到所示實施例的變型以及本文所描述的其它實施例并可進行實施。
[0043]
【發(fā)明內(nèi)容】
[0044]下面提出的詳細描述意旨是作為本發(fā)明主題技術的各種配置的描述,而并非意旨代表其中可實施本發(fā)明主題技術的唯一配置。附圖并入本文中,并構成詳細描述的一部分。詳細描述包括為了給本發(fā)明主題技術提供透徹理解目的具體細節(jié)。然而,對于本【技術領域】的技術人員而言顯而易見的是本發(fā)明主題的技術可在沒有這些具體細節(jié)的情況下來實施。在某些情況下,公知結構和組件以框圖形式示出,以避免模糊本發(fā)明主題技術的概念。為了便于理解,相同的組件由具有相同的元件標號來標記。
[0045]之前使用超文本標記語言(HTML)的方法需要使用特定的瀏覽器插件來例如通過加速視頻和音頻作為用于創(chuàng)建更好用戶體驗的一種方法。瀏覽器插件不能獨立地通過競爭架構供應商獲取HTML瀏覽器。
[0046]架構供應商在“專有的”遠程桌面協(xié)議方面競爭地非常激烈,并側重于隨著時間的推移進行適度地改善以改善用戶體驗。同時利用遠程桌面協(xié)議的用戶體驗是架構供應商之間的主要區(qū)分者。但是,已知的工作不能夠使得用戶和客戶用統(tǒng)一的方法來遠程訪問他們的家庭、工作或移動的Windows、Mac或Linux環(huán)境。
[0047]在某些方面,本發(fā)明主題技術的實施例可以消除或減少用于將“專有的”協(xié)議安裝在用戶設備(或客戶端設備)上以便在遠程桌面會話期間用于訪問遠程計算機的需求。遠程計算機或可遠程訪問的計算機可包括遠程桌面服務器。通過使得用戶能夠憑借如HTML5的“開放標準”技術使用單一方法來訪問他們的遠程桌面,可以顯著減少放置在用戶設備例如智能手機上的要求。
[0048]在某些方面,本發(fā)明主題技術的實施例可減少或消除用于將客戶端軟件和/或瀏覽器插件安裝到用戶客戶端設備上的需求。
[0049]在某些方面,本發(fā)明主題技術的實施例可以實現(xiàn)希望從個人計算機桌面上進行執(zhí)行本地應用程序而獲取的強大的用戶體驗。
[0050]在某些方面,本發(fā)明主題技術的實施例可有利地利用合適網(wǎng)頁瀏覽器的二維渲染功能以及可由在用戶客戶端設備上運行的瀏覽器二維繪圖功能取代專有的渲染協(xié)議。
[0051]在某些方面,本發(fā)明主題技術的實施例可允許用戶容易地通過多個服務器來訪問一個或多個打開的遠程桌面,且從實時存儲于相關聯(lián)的網(wǎng)絡服務器上的信息保持它們的確切狀態(tài),所述相關聯(lián)的網(wǎng)絡服務器具有協(xié)議轉換功能,其可起到在由大多數(shù)遠程桌面協(xié)議采用的推式協(xié)議和由HTTP采用的拉式協(xié)議之間的通用接口的功能,上述網(wǎng)絡服務器在此也稱為“編碼轉換服務器”,用戶可經(jīng)由具有二維渲染功能的網(wǎng)頁瀏覽器來訪問上述服務器。這樣做可允許用戶在幾秒鐘內(nèi)渲染當前打開會話的遠程顯示屏。因此,當用戶從客戶端設備到客戶端設備進行切換時,保存特定遠程桌面的確切狀態(tài)以及基于每一顯示器的能力來進行重新渲染。用戶的多個桌面可有效地配置成總是處于打開狀態(tài)且準備好根據(jù)要求來顯示。用戶的遠程桌面可配置成在任何時刻以及從任何地點來進行訪問。
[0052]在如本文所述的本發(fā)明主題技術之前,因為HTTP (拉式協(xié)議)和大多數(shù)遠程桌面顯示協(xié)議(推式協(xié)議)是不相容的,本領域內(nèi)的技術人員已經(jīng)普遍地認識到對于網(wǎng)頁瀏覽器而言專有軟件和/或下載的插件是必要的,以便使得遠程桌面會話在一端利用HTTP以及在另一端利用遠程桌面顯示協(xié)議。
[0053]在某些方面,本發(fā)明主題技術的實施例可使得任何終端設備的用戶使用具有2D渲染功能的網(wǎng)頁瀏覽器,例如,HTML5瀏覽器,以便在一個或多個瀏覽器窗口中顯示一個或多個遠程桌面會話。本公開的實施例可相應地消除用于將適于遠程桌面訪問的專有或開放的源客戶端應用程序安裝在客戶端設備上的需求。本公開的實施例可以建立和維持到單個或多個Windows和Mac OS或Linux服務器的同步遠程桌面連接,并使得能夠在用戶的瀏覽器應用程序中獨立地顯示和交互所有的遠程會話。本公開的實施例實時渲染且可作為網(wǎng)頁顯示在遠程客戶端(例如像智能手機的用戶設備)上。所有的用戶鼠標、觸摸屏屏和鍵盤輸入可捕獲在瀏覽器窗口內(nèi)并轉換成由遠程計算機桌面所需的輸入格式,其可利用常見的桌面協(xié)議,例如由Citrix系統(tǒng)提供的獨立計算架構(ICA)、由微軟提供的遠程桌面協(xié)議(RDP),以及由Taradici提供的PC-over-1P (PCoIP)等。本公開的實施例可在任何時候保持到主機服務器的開放連接,允許一個或多個端點設備交互地連接到遠程會話以及瞬間斷開到遠程會話的連接。遠程會話從不需要從服務器斷開連接,因為本公開的實施例可保持到桌面的活動連接?;顒訒捒芍匦抡{(diào)整大小,并可進行調(diào)整以便于獲取最佳的顯示效果和用戶體驗,從而充分利用用戶訪問設備的能力。
[0054]在某些方面,本發(fā)明主題技術的實施例可減少或消除適于本地客戶端應用程序例如網(wǎng)頁瀏覽器的要求,以便支持供應商的特定遠程桌面協(xié)議。本公開的實施例可允許具有2D渲染功能的瀏覽器在任何硬件、任何操作系統(tǒng)上運行以及以任何形式運行,以便適于用戶訪問其遠程桌面或應用程序。用戶可只需將瀏覽器(例如像谷歌瀏覽器的HTML5兼容瀏覽器)指向適于配置成遠程桌面應用程序服務器的一個或多個遠程計算機的相應的預定統(tǒng)一資源定位器(URL)。瀏覽器可訪問編碼轉換服務器,所述編碼轉換服務器可在適用于瀏覽器的協(xié)議和適用于遠程計算機的協(xié)議之間進行轉譯或轉碼。編碼轉換服務器可以是公共的/或基于云的專有服務器,以及可以利用HTTPS協(xié)議來訪問編碼轉換服務器。編碼轉換服務器可驗證在遠程計算機和遠程桌面客戶端之間的連接,實時渲染遠程計算機的桌面,以及將所述渲染經(jīng)由HTTP傳送到瀏覽器,這樣瀏覽器可以HTML5畫布顯示所述渲染。因此,本發(fā)明的實施例可具有如下功能或提供如下功能,即連接到一個或多個遠程桌面服務器的虛擬桌面和應用程序服務器,例如采用ICA的Citrix XenDesktop,采用RDP的微軟Windows客戶端和服務器,以及采用PCoIP的VMware View等。
[0055]在支持畫布2D實時繪圖原語的HTML5之前,由于渲染對象的靜態(tài)特性,不能將單獨的HTML認為是實用的渲染技術。如根據(jù)本發(fā)明所用的那樣,HTML5和類似的瀏覽器語言可由于在客戶端平臺上以2D、3D和多媒體視頻/音頻對象渲染的能力而使得新的用戶具有強大的體驗;在某些情況下,HTML5還可以利用適于這種渲染的硬件加速。本發(fā)明主題技術的各個方面可通過提供允許實時訪問遠程計算機以及不需要客戶端設備具有專有軟件或插件的無關于平臺的技術而可便于增強用戶對遠程桌面會話的體驗。此外,遠程計算機對于遠程桌面會話而言不需要具有HTTP或HTML兼容性。
[0056]如本文所述,本發(fā)明主題技術的各個方面可以減少或最小化瀏覽器和根據(jù)本公開編碼轉換服務器之間的流量??赏ㄟ^本發(fā)明主題技術的不同方面來促進流量的減少,上述方面包括但不限于,對于從網(wǎng)頁瀏覽器接收到的繪圖請求執(zhí)行長輪詢,將來自遠程桌面的已經(jīng)改變和需要更新的僅僅一部分圖像(而非整個遠程桌面的圖像)提供給網(wǎng)頁瀏覽器,并將適于更新后圖像部分的坐標放置到單個HTTP傳輸響應的標頭中。進出瀏覽器的流量減少可促進遠程桌面會話提供實時的用戶體驗,例如如果對于用戶從客戶端輸入傳輸?shù)竭h程計算機而言的往返時間內(nèi)(延遲)有任何可感知的延遲的話時間很短的用戶體驗,以及相應更新的遠程桌面顯示在客戶端設備上。在示例性實施例中,這種延遲會是短時間的,例如100毫秒,從而使大多數(shù)用戶根本感覺不到任何延遲。
[0057]圖1示出在經(jīng)由服務器與遠程計算機的遠程訪問會話期間在具有較大顯示屏的客戶端設備處的顯示的實例。顯示器100包括客戶端設備的本地桌面110,網(wǎng)頁瀏覽器窗口 120,網(wǎng)頁瀏覽器窗口 120依次包括示出遠程計算機遠程桌面的圖像132的遠程視圖窗口130,在該實例中,該圖像除了在遠程計算機上運行的遠程網(wǎng)頁瀏覽器應用程序140之外包括文件夾和快捷圖標。遠程視圖窗口 130可具有一定的高度H和寬度W,以及遠程視圖窗口130可重新調(diào)整大小(例如,可擴大以覆蓋整個本地桌面110或縮小)。遠程桌面130的圖像132和遠程應用程序140基于遠程桌面130和遠程應用程序140的經(jīng)由服務器從遠程計算機傳送到客戶端設備上的顯示輸出數(shù)據(jù)。
[0058]正如前面提到的那樣,本公開的各個方面可包括或利用具有2D畫布的HTML5兼容的網(wǎng)頁瀏覽器,例如,圖5中的530。HTML5要求提供二維畫布,其允許對2D圖形和位圖圖像進行動態(tài)的、實時的和以腳本方式渲染。在一個方面,可以腳本方式可意味著或包括用于利用JavaScript進行標記來渲染2D圖像。畫布包括以具有一定高度和寬度屬性的HTML編碼來限定的可繪制區(qū)域。JavaScript編碼可通過類似于其它普通2D API的一套完整的繪圖功能來訪問該區(qū)域,從而允許動態(tài)地生成圖形。
[0059]如圖2A至圖2B中所示,本公開示例性實施例的整體架構可包括三個部分:客戶端設備(或用戶設備),其包括瀏覽器,例如HTML5兼容瀏覽器;服務器,例如,Java網(wǎng)絡服務器,其配置成用作編碼轉換服務器,在不同的協(xié)議之間進行轉譯;以及客戶端設備連接到其的遠程計算機。如圖3A至3B中所示以及針對圖3A至圖3B的描述,編碼轉換服務器可包括三個主要部分:遠程桌面客戶端包裝器或適配器,繪圖命令隊列,以及網(wǎng)絡應用程序服務器(容器)。網(wǎng)絡應用程序服務器可包括各種元件或組件,例如超文本傳輸協(xié)議(HTTP)處理器,長輪詢處理器,以及繪圖請求隊列,如參照圖2A至圖11示出和描述的那樣。在替代性的實施例中,繪圖命令隊列可以是網(wǎng)絡應用程序服務器的一部分。
[0060]圖2A是客戶端設備實例的視圖,諸如那些具有經(jīng)由多個網(wǎng)絡和一個服務器而連接到多個遠程計算機的網(wǎng)頁瀏覽器。系統(tǒng)200可包括一個或多個遠程客戶端設備202,其經(jīng)由一個或多個網(wǎng)絡206通過服務器計算裝置208 (服務器)與一個或多個遠程計算機204進行通信。在一個方面,服務器208配置成允許遠程會話(例如,遠程桌面會話),其中在客戶端設備202處的用戶通過經(jīng)由一個或多個網(wǎng)絡206從客戶端設備202登錄到服務器208上而可以訪問一個或多個遠程計算機204上的應用程序和文件。[0061]圖2B是通過網(wǎng)絡和服務器連接到一個或多個遠程計算機的一個或多個客戶端設備的替代性實例的視圖。如圖中所示,與遠程計算機204相關聯(lián)的服務器208例如可以輪轂和輻條的配置連接到網(wǎng)絡206。
[0062]通過示例而非限制性的方式,在本公開的一個方面,從遠程計算機側的透視圖進行陳述(將遠程計算機204看作本地設備,而將客戶端設備202看作遠程設備),在本地設備204處執(zhí)行(或運行)應用程序。雖然客戶端設備202可將應用程序視圖接收和顯示在客戶端設備202本地的顯示器上,但是客戶端設備202不在客戶端設備202處執(zhí)行(或運行)應用程序。從客戶端一側的另一方式進行陳述(將遠程計算機204看作遠程設備,而將客戶端設備202看作本地設備),在遠程計算機204處執(zhí)行(或運行)遠程應用程序,雖然客戶端設備202可接收和顯示遠程應用程序視圖,但是客戶端設備202不在客戶端設備202本地處執(zhí)行(或運行)遠程應用程序。
[0063]通過示例而非限制性的方式,客戶端設備202可代表計算機,移動電話,膝上型電腦,薄型客戶端設備,個人數(shù)字助理(PDA),便攜式計算機設備,或具有處理器的合適裝置。在一個實例中,客戶端設備202可以是智能手機(如iPhone,Android手機,黑莓等等)。在某些配置中,客戶端設備202可代表音頻播放器,游戲機,照相機,攝像機,音頻設備,視頻設備,多媒體設備,或能夠支持連接到遠程服務器的設備。在一個優(yōu)選的實例中,客戶端設備202是移動的。在另一個實例中,客戶端設備202可以是固定的。根據(jù)本公開的一個方面,客戶端設備202可以是具有至少一個處理器和存儲器的設備,其中客戶端設備202的總存儲量可小于遠程計算機204或服務器208中的總存儲量。在一個實例中,客戶端設備202不具有硬盤。在一個方面,客戶端設備202具有的顯示小于由遠程計算機204或服務器208支持的顯示。在一個方面,客戶端設備可包括一個或多個客戶端設備。
[0064]在一個優(yōu)選的方面,服務器208或遠程計算機204可代表計算機。在另一個方面,服務器208或遠程計算機204可代表膝上型電腦,計算設備,虛擬機(例如,VMware ?虛擬機),桌面會話(例如,微軟終端服務器),公布的應用程序設備(例如,微軟終端服務器),或具有處理器的合適裝置。在一個優(yōu)選的實例中,服務器208或遠程計算機204是固定的。在另一個方面,服務器208或遠程計算機204可以是移動的。在某些配置中,服務器208或遠程計算機204可以是可代表客戶端設備的任何設備。在一個方面,服務器208可包括一個或多個服務器。
[0065]在一個實例中,當?shù)谝辉O備沒有直接連接到第二設備時,第一設備就是到第二個設備的遠程設備。在一個實例中,第一遠程設備可通過諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、和/或其它網(wǎng)絡的通信網(wǎng)絡連接到第二設備。
[0066]當客戶端設備202、服務器208和遠程計算機204相對于彼此是遠程設備時,客戶端設備202通過網(wǎng)絡206連接到服務器208,而遠程計算機可通過網(wǎng)絡206經(jīng)由網(wǎng)絡連接而連接到服務器208,上述網(wǎng)絡連接例如是調(diào)制解調(diào)器連接,包括以太網(wǎng)的LAN連接,或包括DSL、電纜、T1、T3、光纖、W1-Fi的寬帶WAN連接,或包括GSM、GPRS、3G、WiMAX的移動網(wǎng)絡連接,或其它網(wǎng)絡連接。網(wǎng)絡206可以是LAN網(wǎng)絡,WAN網(wǎng)絡,無線網(wǎng)絡,因特網(wǎng)(互聯(lián)網(wǎng)),企業(yè)內(nèi)部網(wǎng)或其它網(wǎng)絡。網(wǎng)絡206可包括用于在客戶端設備和/或服務器之間路由數(shù)據(jù)的一個或多個路由器。網(wǎng)絡上的遠程設備(例如,客戶端設備,服務器)可由相應的網(wǎng)絡地址定址,包括但不限于互聯(lián)網(wǎng)協(xié)議(IP)地址,互聯(lián)網(wǎng)名稱,Windows因特網(wǎng)名稱服務(WINS)的名稱,域名或其它系統(tǒng)名稱。這些說明了一臺設備如何成為到另一臺設備的遠程設備的一些實例。但本發(fā)明主題的技術并不僅僅限于這些實例。
[0067]根據(jù)本公開的某些方面,術語“服務器”和“遠程服務器”通常關于客戶端設備同義地使用,以及詞語“遠程”可指示服務器例如通過網(wǎng)絡連接與一個或多個其它設備進行通?目。
[0068]根據(jù)本公開的某些方面,術語“服務器”和“遠程服務器”通常關于服務器/或遠程計算機同義地使用,以及詞語“遠程”可指示客戶端設備例如通過網(wǎng)絡連接與一個或多個服務器和/或一個或多個遠程計算機進行通信。
[0069]在本公開的一個方面,“客戶端設備”可有時稱為客戶端,用戶設備,用戶的設備或反之亦然。類似地,“服務器”可有時稱為服務器設備或反之亦然。服務器有時也被稱為網(wǎng)絡服務器。本公開的示例性實施例包括使用具有轉碼(編碼轉換)功能的網(wǎng)絡服務器,例如編碼轉換服務器。
[0070]在一個方面,術語“本地”和“遠程”是相對的術語,分別取決于客戶端是否是從客戶端設備一側或從服務器一側或遠程計算機一側來進行描述,客戶端設備可被稱為本地客戶機設備或遠程客戶端·設備。取決于遠程計算機是否是從遠程計算機的一側或從客戶端的一側或服務器的一側來進行描述,遠程計算機可被稱為本地計算機或遠程計算機。類似地,分別取決于服務器是否是從所述服務器的一側或從客戶端的一側或遠程計算機的一側來進行描述,服務器可被稱為本地服務器或遠程服務器。此外,如果從遠程計算機的一側進行描述,在遠程計算機上運行的應用程序可被稱為本地應用程序,而如果從客戶端的一側或服務器的一側進行描述,在遠程計算機上運行的應用程序可被稱為遠程應用程序。
[0071]在一個方面,放置在客戶端一側上的設備(直接連接到客戶端的設備或使用電線或短距離無線連接(例如,藍牙)連接到彼此的設備)可相對于客戶端設備被稱為本地設備,以及相對于服務器被稱為遠程設備。類似地,放置在服務器一側上的設備(直接連接到服務器的設備或使用電線或短距離無線連接(例如,藍牙)連接到彼此的設備)可相對于服務器被稱為本地設備,以及相對于客戶端設備被稱為遠程設備。
[0072]圖3Α是根據(jù)本公開某些方面的在結合網(wǎng)頁瀏覽器312和遠程計算機320使用時的包括編碼轉換服務器330的系統(tǒng)300Α實例的概念性框圖。示出例如智能手機或膝上型電腦的客戶端設備310以及網(wǎng)頁瀏覽器,其具有(i)畫布316,例如具有支持2D渲染畫布的網(wǎng)頁瀏覽器312 ;以及(ii)腳本客戶端314,例如在一個優(yōu)選實施例中的JavaScript客戶端。
[0073]編碼轉換服務器330可以包括三個主要功能塊或模塊:網(wǎng)絡應用程序服務器(容器)340,遠程桌面客戶端適配器350,以及包括共享存儲器的繪圖命令隊列360。網(wǎng)絡應用程序服務器可包括HTTP處理器344,用于處理來自網(wǎng)頁瀏覽器的HTTP請求以及響應于網(wǎng)頁瀏覽器的HTTP。在一些實施例中,網(wǎng)絡應用程序服務器(容器)340還可包括長輪詢處理模塊342,如圖所示。遠程桌面客戶端適配器350可配置成與例如來自第三方供應商的遠程桌面客戶端352接口連接,以便與遠程計算機320進行通信,所述遠程計算機320包括遠程桌面服務器322,如圖所示。編碼轉換服務器330的實施例可配置成提供應用程序框架,用于托管一個或多個網(wǎng)絡應用程序和/或起到可運行Servlet的Java網(wǎng)絡應用程序服務器。在某些方面,遠程桌面客戶端適配器350可被稱作遠程桌面客戶端通用接口。[0074]遠程桌面客戶端352可利用遠程桌面顯示協(xié)議用于與遠程計算機320的遠程桌面服務器322進行通信。遠程桌面客戶端將用戶輸入發(fā)送到遠程計算機,并經(jīng)由其特定的遠程桌面顯示協(xié)議接收來自遠程計算機的繪圖數(shù)據(jù)。
[0075]在一個方面,遠程桌面服務器322可涉及在遠程計算機320上安裝的軟件,以及遠程桌面服務器322可允許在與遠程計算機320獨立和不同的機器(例如,客戶端設備310)上顯示在遠程計算機320上運行的應用程序,特別是那些包括圖形的應用程序。遠程桌面服務器322可允許代表遠程計算機桌面圖像的繪圖命令發(fā)送到單獨的機器(例如,編碼轉換服務器330)。在一個方面,遠程桌面客戶端352可涉及在與遠程計算機320獨立和不同的機器(例如,編碼轉換服務器330)上安裝的軟件。遠程桌面客戶端352可經(jīng)由遠程桌面顯示協(xié)議發(fā)送請求到遠程桌面服務器322以及響應地經(jīng)由遠程桌面顯示協(xié)議接收代表遠程計算機桌面圖像的繪圖命令。
[0076]在操作過程中,網(wǎng)絡應用程序服務器340可起到接收和響應于JavaScript客戶端的HTTP請求的功能。在一個實施方式中,可以使用Servlet服務器,但是利用例如像Restlet的任何類似的網(wǎng)絡應用程序框架可以獲取相同的結果。遠程桌面客戶端適配器350可提供任何遠程桌面客戶端和繪圖命令隊列/網(wǎng)絡應用程序服務器之間的通用接口。
[0077]遠程桌面客戶端適配器350可以接收來自HTTP處理器344的用戶輸入信息、數(shù)據(jù)或命令(例如鼠標,鍵盤,以及觸摸屏事件)以及將輸入信息/命令轉譯成相應的遠程桌面輸入調(diào)用命令,其有時被稱為遠程桌面輸入命令。遠程桌面客戶端適配器350也可以將從遠程桌面服務器322所接收(經(jīng)由遠程桌面顯示協(xié)議和遠程桌面客戶端352)的遠程桌面繪圖命令(例如GDI繪圖命令)轉譯成Java圖形應用程序編程接口(API)命令。Java圖形API命令本身并不適用于網(wǎng)頁瀏覽器,但是它們是實現(xiàn)瀏覽器兼容性的一個中間步驟。然后遠程桌面客戶端適配器可執(zhí)行那些Java圖形API命令,也就是說,繪制成離屏的Java位圖,其可以儲存于繪圖命令隊列360內(nèi)。在替代性的實施例中,繪圖命令隊列(例如,圖3A中的360或圖4A或4B中的440)可接收來自遠程桌面客戶機適配器的Java圖形API命令,并執(zhí)行Java圖形API命令以便繪制成離屏的Java位圖。HTTP處理器(例如,圖3A中的344或圖4A中的422)或圖像轉換模塊(例如,圖3B中的346或圖4B中的428)可從Java離屏位圖來創(chuàng)建圖像,諸如聯(lián)合圖像專家小組(JPEG)圖像,或便攜式網(wǎng)絡圖形(PNG)圖像,或位圖像文件(BMP)圖像或適用于網(wǎng)頁瀏覽器的為圖像格式的任何其它圖像文件;以及由此產(chǎn)生適用于瀏覽器312的圖像。在一個方面,JPEG圖像可被稱為JPEG圖像文件,PNG圖像可被稱為PNG圖像文件,以及BMP圖像可被稱為BMP圖像文件。在一個方面,隨著圖像(例如,JPEG或PNG圖像)實時創(chuàng)建,在圖像創(chuàng)建時,其僅被發(fā)送到網(wǎng)頁瀏覽器而不存儲在編碼轉換服務器處。
[0078]在一個方面,繪圖命令隊列360可用于兩個目的:保存或存儲其上執(zhí)行繪圖命令的離屏Java位圖;以及保存或用作繪圖坐標池,例如,適于繪圖命令的坐標隊列。例如繪圖命令隊列360可以存儲從遠程桌面客戶端適配器所接收到的GDI繪圖命令坐標。在隊列中存在新繪圖坐標的情況下,繪圖命令隊列360可發(fā)送通知到長輪詢處理器模塊342 (例如,可以發(fā)送通知使得可服務于繪圖請求隊列中的任何等待處理的請求)。繪圖請求隊列中(例如,圖4A或4B中的426)可起到存儲從客戶端輸入的長輪詢繪圖請求以及當存在來自繪圖命令隊列的等待處理繪圖命令時進行響應的功能。[0079]圖3B是在結合網(wǎng)頁瀏覽器和遠程計算機使用時的根據(jù)本公開某些替代性方面的包括編碼轉換服務器330的系統(tǒng)300B的概念性框圖。系統(tǒng)300B類似于圖3A中的具有相似附圖標記的系統(tǒng)300A,不同之處在于遠程桌面客戶端352示出為相對于遠程桌面客戶端適配器350的單獨模塊/功能塊,以及圖像轉換模塊346示出為相對于HTTP處理器344的單獨模塊/功能塊。
[0080]圖4A是根據(jù)本公開某些方面的編碼轉換服務器400A的詳細概念性框圖。在一個方面,編碼轉換服務器400A可優(yōu)選為Java編碼轉換服務器。編碼轉換服務器400A可包括網(wǎng)絡應用程序服務器420 (例如,網(wǎng)絡應用程序服務器,如Servlet服務器),遠程桌面客戶端適配器430,以及繪圖命令隊列440。遠程桌面客戶機適配器430可配置成與任何適當?shù)倪h程桌面客戶端432接口連接以便與遠程計算機(例如,圖3A或3B中的320)進行通信,其可配置成包括遠程桌面服務器432 (例如,圖3A或3B中的322)。繪圖命令隊列440可充當可由網(wǎng)絡應用程序服務器420和遠程桌面客戶端適配器430訪問的內(nèi)存或存儲器。網(wǎng)絡應用程序容器420可包括用于處理來自網(wǎng)頁瀏覽器的HTTP請求以及將HTTP響應發(fā)送回到客戶端/網(wǎng)頁瀏覽器(例如,圖3A或3B中的312)的HTTP處理器422。在一個方面,HTTP處理器422是標準的HTTP處理器。繪圖命令隊列440可用于兩個目的:保存或存儲其上執(zhí)行繪圖命令的離屏圖像,例如Java位圖444 ;以及用作繪圖坐標池442,例如,適于繪圖命令的坐標隊列。坐標可以是需要在客戶端設備處重新繪制以反映在遠程桌面上改變的遠程桌面圖像區(qū)域或范圍的那些坐標。所述范圍或區(qū)域有時被稱為“臟污”區(qū)域,如圖4A-4B中所
/Jn ο
[0081]在一些實施例中,網(wǎng)絡應用程序服務器可包括長輪詢處理程序模塊,其包括長輪詢處理器424和繪圖請求隊列426。長輪詢處理器424可由繪制請求隊列426操作。繪圖請求隊列426可起到存儲經(jīng)由長輪詢處理器424從客戶端(例如,HTML5兼容的網(wǎng)頁瀏覽器,諸如圖3A或3B中的網(wǎng)頁瀏覽器312)所接收到的輸入長輪詢繪圖請求以及當存在來自繪圖命令隊列440的等待處理繪圖命令時進行響應的功能。在一個方面,等待處理的繪圖命令可包括臟污坐標池442中的圖像和/或繪圖命令隊列440中的圖像(例如,Java位圖444)中的坐標。
[0082]在操作過程中,網(wǎng)絡應用程序服務器420可接收來自用戶設備(例如,圖2A中的202或圖3A或3B中的310)上網(wǎng)頁瀏覽器的HTTP請求以及響應于來自用戶設備上網(wǎng)頁瀏覽器的HTTP請求。網(wǎng)絡應用程序服務器420可將用戶輸入請求提供到遠程桌面客戶端適配器430,其提供網(wǎng)絡應用程序服務器420和遠程桌面客戶端432之間的通用接口。遠程桌面客戶端適配器430可將用戶輸入信息(例如鼠標,鍵盤和觸摸屏事件)轉譯成適于遠程桌面客戶端432的相應遠程桌面輸入調(diào)用命令。遠程桌面客戶端適配器430可將經(jīng)由遠程桌面顯示協(xié)議和遠程桌面客戶端432從遠程計算機(例如,圖2A或圖2B中的204或圖3A或圖3B中的320)所接收到的遠程桌面圖像的繪圖命令(例如,GDI繪圖命令)轉譯成Java圖形繪制命令。
[0083]在接收和轉譯來自遠程桌面客戶端432的繪圖命令之后,遠程桌面客戶端適配器430可繪制成存儲于如圖所示的繪圖命令隊列440中的離屏Java位圖。更具體地,遠程桌面客戶端適配器430可提供為圖像部分,也稱為受到來自用戶設備的用戶輸入影響的遠程桌面的“臟污區(qū)域”。隨同繪圖命令,遠程桌面客戶端適配器430可從繪圖命令提取來自遠程桌面客戶端的臟污臟區(qū)域的坐標,并將繪圖坐標提供到繪圖命令隊列440(例如臟污坐標池442),如圖所示。如下面解釋的那樣,坐標可放置到HTTP標頭部分內(nèi)(例如通過HTTP處理器422)以便將臟污區(qū)域的坐標(例如作為小型文本文件Cookie)連同圖像發(fā)送到瀏覽器(例如圖3A或圖3B中的312)以便顯示。
[0084]在繪圖命令隊列440 (例如,臟污坐標池442)中存在新繪圖坐標的情況下,繪圖命令隊列440可能會發(fā)送通知到繪圖請求隊列426,這樣繪圖請求隊列426中的任何等待處理(掛起)的請求可附送到HTTP處理器422以便服務。然后HTTP處理器422可訪問繪圖命令隊列440 (例如臟污坐標池442),并從臟污坐標池442獲取臟污坐標。然后HTTP處理器422將臟污坐標放置到HTTP標頭部分內(nèi)(已知為小型文本文件Cookie)。此外,根據(jù)這些坐標,HTTP處理器422可從Java離屏位圖444獲取圖像部分。然后HTTP處理器422可將圖像(例如,作為JPEG圖像或PNG圖像)以及坐標(其存儲于HTTP響應的標頭部分內(nèi))發(fā)送到網(wǎng)頁瀏覽器(例如,圖3A或圖3B中的312),以便在用戶設備的顯示器上進行顯示(例如,圖3A或圖3B中的313)。其結果是,編碼轉換服務器400A可促進用戶設備(例如,圖2A或圖2B中的202,或圖3A或圖3B中的310)和遠程計算機(例如,圖2A或3B中的204,或圖3A或圖3B中的320)之間的遠程桌面會話,而對于用戶設備而言無需利用專有的插件或協(xié)議。
[0085]在一個方面,由編碼轉換服務器發(fā)送到網(wǎng)頁瀏覽器的圖像(或圖像文件)和繪圖坐標可被認為是網(wǎng)頁瀏覽器圖形更新的實例。在一個優(yōu)選的方面,網(wǎng)頁瀏覽器繪圖更新與網(wǎng)頁瀏覽器兼容,這樣網(wǎng)頁瀏覽器可識別網(wǎng)頁瀏覽器繪圖更新并處理它們以便在顯示器上的合適位置處顯示圖像??梢岳闷渌愋偷睦L圖數(shù)據(jù)和命令來實現(xiàn)網(wǎng)頁瀏覽器的繪圖更新。
[0086]在一個方面,在客戶端設備和編碼轉換服務器之間的HTTP協(xié)議(其請求可由HTTP處理器和長輪詢處理器來處理)為拉式協(xié)議,而在編碼轉換服務器和遠程計算機之間使用的遠程桌面顯示協(xié)議是推式協(xié)議。
[0087]長輪詢是傳統(tǒng)輪詢技術的改進,可允許從服務器到客戶端的信息推送仿真。利用長輪詢,客戶端以與常規(guī)輪詢類似的方式從服務器請求信息。在服務器不具有可用于客戶端的任何信息的情況下,不是發(fā)送一個空的響應,而是服務器將保存該請求并等待可用的一些信息。一旦信息變得可用(或在合適的超時之后),將完整的響應發(fā)送到客戶端。然后客戶端就可以立即從服務器重新請求信息,從而使得服務器幾乎總是具有可用的等待請求,其可以用于傳送響應于事件的數(shù)據(jù)。
[0088]圖4B是根據(jù)本公開某些方面的替代性編碼轉換服務器400B的概念性框圖。編碼服務器400B類似于圖4A的具有類似附圖標記的編碼轉換服務器400A,除了示出單獨的圖像轉換或生成塊428之外。塊428可起到下述功能:從繪圖命令隊列440獲取Java位圖444,以及將其轉換成圖像文件,例如JPEG,BMP,PNG等,并將該圖像文件提供到HTTP處理器422,這樣HTTP處理器422可將圖像文件連同相關聯(lián)的坐標發(fā)送到網(wǎng)頁瀏覽器(例如,圖3A或圖3B中的312)。另外一個區(qū)別是遠程桌面客戶端432示出為相對于遠程桌面客戶端適配器430的單獨模塊/功能塊。
[0089]圖4C是遠程計算機遠程桌面的圖像400C的概念性框圖。圖像400C可包括遠程計算機的整個桌面。圖像可作為與遠程計算機的遠程桌面會話的遠程桌面繪圖命令的一部分而由遠程桌面客戶端(例如圖4A或4B中的432)來提供。合適的遠程桌面顯示協(xié)議可用于遠程桌面會話。實例可包括但不限于,Microsoft?遠程桌面協(xié)議(RDP),個人計算機互聯(lián)網(wǎng)協(xié)議(PCoIP),遠程FX (RFX)協(xié)議,遠程框架緩沖(RFB)協(xié)議,Citrix獨立計算體系結構(ICA), NX協(xié)議,和/或其它合適的遠程桌面顯示協(xié)議。在一個實例中,可有利地使用RDP(推式協(xié)議),因為其已被廣泛使用。如圖所示,圖像400C可以包括相對于之前情況的桌面圖像已經(jīng)改變的區(qū)域,例如圖像部分450和圖像部分452。兩個圖像部分450和452連同它們的坐標可以來自相關聯(lián)遠程桌面客戶端的繪圖命令提供給相關聯(lián)的遠程桌面服務器(通過編碼轉換服務器來處理和轉譯然后發(fā)送到網(wǎng)頁瀏覽器)以便進行遠程桌面會話。備選地,圖像部分450連同其坐標可以繪圖命令提供,然后圖像部分452連同其坐標可以單獨的另一繪圖命令提供(例如,按序地)。因此,當只有部分遠程桌面已經(jīng)改變時,那么只有該已經(jīng)改變的部分可從遠程桌面服務器提供到其遠程桌面客戶端,而不是提供遠程桌面的整個圖像,因此減少流量和提高效率。
[0090]圖5是在結合編碼轉換服務器(例如,圖2A或圖2B中的208,圖3A或圖3B中的330,圖4A中的400A,或圖4B中的400B)和遠程計算機(例如,圖2A或圖2B中的204,或圖3A或圖3B中的320)使用時的根據(jù)本公開某些方面的網(wǎng)頁瀏覽器500的概念性框圖和圖像。在一個優(yōu)選的方面,網(wǎng)頁瀏覽器500可以是HTML5兼容的網(wǎng)頁瀏覽器。在一個方面,網(wǎng)頁瀏覽器500可以是網(wǎng)頁瀏覽器312。網(wǎng)頁瀏覽器500可包括腳本客戶端編碼520,例如,JavaScript客戶端編碼,以及畫布(canvas) 530 (例如,支持2D繪圖或渲染的存儲器中的對象或元素)。腳本客戶端編碼520可指代圖3A或圖3B中的腳本客戶端314。畫布530可包括或代表瀏覽器(例如,312,500)的整個可視窗口(例如,圖1中的130)。在一個優(yōu)選的方面,畫布530是HTML5兼容的畫布,例如,根據(jù)HTML5要求的畫布元素。合適的網(wǎng)頁瀏覽器的實例可包括但不限于Mozilla Firefox, Google Chrome, Safari,和Opera。網(wǎng)頁瀏覽器500可存在于合適的用戶設備(諸如PC或智能手機等)上。
[0091]腳本客戶端編碼520可包括響應于諸如鼠標、鍵盤和觸摸屏事件的用戶輸入的輸入偵聽器522。輸入偵聽器522可將HTTP請求連同用戶輸入發(fā)送到編碼轉換服務器,例如,圖2A或圖2B中的服務器208,或圖3A或圖3B中的330。該腳本客戶端編碼520還可包括加載圖像功能或模塊524,其包括圖像裝載處理器526,其可從HTTP標頭(例如,從已知為小型文本文件Cookie的一部分)提取繪圖坐標,將所接收到的圖像繪制到畫布530上,再次調(diào)用加載圖像功能524,使其通過其獨特的識別編碼(ID)。位于錯誤處理器上的圖像和/或位于中止處理器528上的圖像也可包括在加載圖像功能524內(nèi)以便處理加載錯誤。處理器528可調(diào)用加載圖像功能524。為了遠程桌面會話,畫布530可保存遠程計算機遠程桌面的圖像,例如圖1的132,而用戶設備可在瀏覽器(例如,312,500)的可視窗口 130中將圖像顯示在顯示器(例如,圖3A或圖3B中的313)上。
[0092]正如前面提到的那樣,HTML5兼容的瀏覽器可用于本公開的示例性實施例。HTML5包括(或支持)畫布,其允許對2D圖形和位圖圖像進行動態(tài)的、實時的和以腳本方式渲染。在一個方面,可以腳本方式可意味著或包括用于利用JavaScript進行標記來渲染2D圖像。畫布530包括以具有一定高度和寬度屬性的HTML編碼來限定的可繪制區(qū)域。JavaScript編碼可通過類似于其它普通2D API的一套完整的繪圖功能來訪問該區(qū)域或范圍,從而允許動態(tài)地生成圖形。
[0093]在操作過程中,諸如在遠程桌面會話期間訪問遠程計算機(例如,圖2A或圖2B中的204,或圖3A或圖3B中的320)時,輸入偵聽器522可將用戶輸入中繼到相關的編碼轉換服務器(例如,圖2A或圖2B中的208,或圖3A或圖3B中的330),其通過遠程桌面客戶端和遠程桌面客戶端適配器(例如,圖3A或圖3B中的350,或圖4A或圖4B中的430)與遠程計算機接口連接。該腳本客戶端編碼520也可發(fā)送許多繪圖請求,如由加載圖像(LoadImage)(I)至加載圖像(4)所示那樣。如前所述,繪圖請求由相關的編碼轉換服務器作為長輪詢請求來處理。
[0094]當經(jīng)由遠程桌面客戶端從遠程桌面服務器接收到繪圖命令時,編碼轉換服務器可創(chuàng)建/修改遠程桌面的離屏圖像以及將實際圖像及相關的坐標提供到瀏覽器500,在此處JavaScript客戶端的圖像裝載處理器(例如528)則可按照從HTTP標頭(例如小型文本文件Cookie)提取的坐標將圖像532繪制到畫布530上。在一個方面,圖像532代表已經(jīng)改變的遠程桌面整個圖像的一部分,因此裝載處理器可基于所接收到的坐標來接收和更新畫布的一部分(而不是更新整個畫布)。
[0095]在一個方面,在編碼轉換服務器中的位圖(例如,Java離屏位圖444)可包括或代表遠程桌面的整個圖像(例如圖1的132)的位圖。當遠程桌面圖像的一個或多個部分(例如圖像部分450,452)例如響應于用戶輸入命令或遠程計算機的其它改變而改變時,所改變的圖像部分及其遠程桌面坐標可作為遠程桌面繪圖命令經(jīng)由遠程桌面客戶端(例如,432)從遠程桌面服務器(例如,322 )提供到遠程桌面客戶端適配器(例如,430 )。
[0096]在一個方面,遠程桌面客戶端適配器可將遠程桌面繪圖命令轉譯成圖形繪制命令,基于圖形繪制命令生成坐標(對應于遠程桌面坐標),并將坐標提供到坐標池(例如,442)內(nèi)。遠程桌面客戶端適配器可執(zhí)行圖形繪制命令以便繪制成位圖,或根據(jù)由遠程桌面客戶機適配器所生成的坐標以另一種方式來表示以便生成位圖部分,從而更新位圖部分(例如444的一部分)。位圖的經(jīng)過更新的部分代表遠程桌面的經(jīng)過改變的圖像部分。在一個優(yōu)選的方面,位圖的經(jīng)過更新的部分是Java離屏位圖444的一部分。
[0097]在一個方面,HTTP處理器(例如,422)可形成對應于位圖已經(jīng)更新部分的圖像文件,獲取(例如從442)適于圖像文件的坐標,以及將坐標放置到HTTP標頭部分內(nèi)。然后HTTP處理器可將圖像文件和坐標提供到網(wǎng)頁瀏覽器(例如,312,500),或更具體地以單次HTTP響應提供到腳本客戶端編碼(例如,520 )。
[0098]畫布(例如,530)可存儲遠程桌面(例如,圖1的132)的整個圖像以便顯示在顯示器(例如,100,313)上,然后當在遠程桌面會話期間遠程桌面圖像的一個或多個部分改變時畫布530的一個或多個部分可被更新。在該實例中,當腳本客戶端編碼接收對應于遠程桌面圖像的已經(jīng)改變的一個或多個部分的圖像文件和坐標時,該腳本客戶端編碼可對應于從HTTP處理器所接收到坐標的畫布坐標來更新畫布的一部分,這樣畫布的經(jīng)過更新的部分代表包含在圖像文件中的圖像。
[0099]因為由遠程桌面客戶端所提供的繪圖命令可只包括相對于以前的繪圖命令而已經(jīng)改變或更新的遠程桌面的那些圖像部分或區(qū)域(具有相應的坐標),因此在示例性實施例中提供到畫布(例如,530)上的圖像可相應地被限制或最小化成包括遠程桌面的剛好已經(jīng)更新的部分。遠程桌面上的更新可能是由于用戶輸入(例如,經(jīng)由遠程桌面會話)或遠程計算機本身(例如來自系統(tǒng)時鐘的新的指示時間)所造成的。因為響應于繪圖請求而提供到畫布上(例如,530)上的圖像大小可被最小化,因此遠程會話的流量可以減少或最小化,促進遠程桌面會話的實時用戶體驗。
[0100]在一個實例中,遠程桌面繪圖命令可包括繪圖調(diào)用命令,諸如gdi_bitmap (*數(shù)據(jù),上,左,寬度,高度,16,32),其中“*數(shù)據(jù)”可以是位圖數(shù)據(jù)位于其中的存儲器位置的指示器。參數(shù)“上,左,寬度,高度”可代表適于位圖數(shù)據(jù)的坐標。參數(shù)“16”可以是紅-綠-藍(RGB)中的比特數(shù),以及參數(shù)“32”可以是α-紅-綠-藍(ARGB)中的比特數(shù)。因此,該示例性調(diào)用命令指示適于遠程桌面圖像一部分(例如,已經(jīng)改變的部分)的位圖數(shù)據(jù)所處的位置,適于位圖數(shù)據(jù)的坐標以及比特數(shù)用于從RGB格式轉換成ARGB格式。
[0101]在另一個實例中,圖形繪制命令可包括繪圖調(diào)用命令,諸如繪制矩形(顏色,上,左,寬,高)。該繪圖調(diào)用命令可在由使用指定“顏色”的“上,左,寬度,高度”指定的坐標下繪制矩形。
[0102]在一個方面,當在客戶端設備和使用HTTP (拉式協(xié)議)的編碼轉換服務器之間利用長輪詢時,可將到達客戶端設備的流量減少到推式協(xié)議所經(jīng)歷的水平。
[0103]圖6示出根據(jù)本發(fā)明主題技術各個方面的遠程桌面客戶端適配器600的一個實例。遠程桌面客戶機適配器600促進遠程計算機690 (其可包括遠程桌面服務器680)和編碼轉換服務器的其余組件之間的通信,所述其余組件例如網(wǎng)絡應用程序服務器(例如,圖4A或圖4B中的420)和繪圖命令隊列(例如,圖4A或圖4B中的440)。在某些方面,遠程桌面客戶機適配器600可提供遠程桌面客戶端(例如,圖3A或圖3B中的352,圖4A或圖4B中的432,或圖6中的640)和網(wǎng)絡應用程序服務器(例如,圖4A或圖4B中的420)之間的通用接口。在某些方面,遠程桌面客戶端適配器600可包括繪圖命令處理器630,遠程桌面客戶端管理器610,用戶輸入處理器620,和遠程桌面客戶端640。在某些方面,遠程桌面客戶端適配器并不一定包括遠程桌面客戶端640。相反,遠程桌面客戶端可以是獨立于遠程桌面客戶端適配器(例如,如圖3B中所示)的模塊。
[0104]根據(jù)本發(fā)明主題技術的各個方面,適配器600可包括遠程桌面客戶端管理器610,其可配置成經(jīng)由網(wǎng)絡應用程序服務器(例如,圖3A或圖3B中的340,或圖4A或圖4B中的420)間接地從網(wǎng)頁瀏覽器(例如,圖3A或圖3B中的312)接收連接請求(例如,指定特定遠程計算機的HTTP請求)。在某些方面,連接請求可經(jīng)由與網(wǎng)頁瀏覽器通信的網(wǎng)絡應用程序服務器從網(wǎng)頁瀏覽器接收。例如,連接請求可經(jīng)由網(wǎng)絡應用程序服務器的HTTP處理器(例如,344或422 )從網(wǎng)頁瀏覽器接收。在某些方面,遠程桌面客戶管理器620可管理(或促進)響應于連接請求建立遠程桌面客戶端640和遠程桌面服務器680之間的遠程桌面會話。例如,遠程桌面客戶端管理器610可以管理(或促進)啟動遠程桌面會話,將認證、設置、首選項等轉發(fā)到遠程桌面服務器(例如經(jīng)由遠程桌面客戶端),以及停止遠程桌面會話。
[0105]在一個方面,遠程桌面客戶端管理器610可接收連接請求,例如源自于網(wǎng)頁瀏覽器的請求以便建立與遠程桌面服務器(例如,322或680)的連接。響應于連接請求,遠程桌面客戶端管理器610可產(chǎn)生與遠程桌面客戶端、遠程桌面服務器和遠程桌面顯示協(xié)議兼容的會話控制命令,例如下述會話控制命令,其可由遠程桌面客戶端和遠程桌面服務器理解和處理,并且可利用遠程桌面顯示協(xié)議由遠程桌面客戶端和遠程桌面服務器傳送和接收。這些會話控制命令可包括用于啟動遠程桌面會話的命令,用于停止遠程桌面會話的命令。會話控制命令還可包括認證、設置、首選項等的一個或多個,以便將認證、設置、首選項等轉發(fā)到遠程桌面服務器(例如,322或680)。響應于HTTP連接請求,遠程桌面客戶端管理器610可進一步將由遠程桌面客戶端管理器所產(chǎn)生的合適會話控制命令提供到遠程桌面客戶端(例如,352或640)。然后遠程桌面客戶端利用從遠程桌面客戶端管理器610所接收到的會話控制命令啟動與遠程桌面服務器的遠程桌面會話,將認證、設置、首選項等轉發(fā)到遠程桌面服務器,以及停止遠程桌面會話。
[0106]在一個方面,遠程桌面客戶端管理器610可將與遠程桌面客戶端、遠程桌面服務器、或遠程桌面顯示協(xié)議不兼容(例如,不能由遠程桌面客戶端、遠程桌面服務器或遠程桌面顯示協(xié)議理解或處理)的連接請求轉譯成與遠程桌面客戶端、遠程桌面服務器和遠程桌面顯示協(xié)議兼容的會話控制命令(即可由遠程桌面客戶端和遠程桌面服務器理解和處理,以及可利用遠程桌面顯示協(xié)議在遠程桌面客戶端和遠程桌面服務器之間通信)。
[0107]在某些方面,促進在遠程桌面客戶端和遠程桌面服務器之間建立遠程桌面會話包括基于初始HTTP請求生成會話控制命令。在某些方面,促進建立遠程桌面會話包括將來自遠程桌面客戶端管理器610的會話控制命令傳送到遠程桌面客戶端640,然后從遠程桌面客戶端傳送到遠程桌面服務器680。例如,會話控制命令可經(jīng)由利用遠程桌面顯示協(xié)議與遠程桌面服務器680通信的遠程桌面客戶端640傳送到遠程桌面服務器680。在某些方面,遠程桌面顯示協(xié)議包括Microsoft:?遠程桌面協(xié)議(RDP),個人計算機互聯(lián)網(wǎng)協(xié)議(PCoIP),遠程FX (RFX)協(xié)議,遠程框架緩沖(RFB)協(xié)議,Citrix獨立計算體系結構(ICA), NX協(xié)議,和/或其它合適的遠程桌面顯示協(xié)議的至少一個。在某些方面,RFB協(xié)議包括虛擬網(wǎng)絡計算(VNC)。
[0108]根據(jù)本發(fā)明主題技術的某些方面,服務器諸如服務器208,330,400A,400B (例如,經(jīng)由遠程桌面客戶端管理器610)在任何時候可保持其遠程桌面客戶端和一個或多個遠程桌面服務器之間的開放連接,允許單個或多個客戶端設備交互地連接到遠程桌面會話以及瞬間斷開到遠程桌面會話的連接。在某些方面,遠程桌面會話可從不需要從一個或多個遠程桌面服務器斷開連接,因為服務器可保持到一個或多個桌面服務器的活動連接。當然,遠程計算機(例如690)由于不受相關編碼轉換服務器的控制的原因可停機;但是,只要遠程計算機可用于遠程訪問就可保持連接。例如,遠程桌面客戶端管理器610可繼續(xù)保持遠程桌面會話,直至遠程桌面服務器取決于遠程桌面服務器的停用遠程連接設置而從遠程桌面會話斷開連接。在某些方面,利用遠程桌面客戶端管理器610的遠程桌面會話可以重新調(diào)整大小,并可進行調(diào)整以便于獲取最佳的顯示效果和用戶體驗,從而充分利用用戶訪問設備的能力。
[0109]根據(jù)本發(fā)明主題技術的各個方面,用戶輸入處理器620可從諸如服務器208,330,400A,400B的網(wǎng)頁瀏覽器(例如,經(jīng)由HTTP處理器344或422)間接地接收輸入請求,以及將輸入請求轉換成可由遠程桌面客戶端640和遠程桌面服務器680識別或與其兼容的格式。例如,用戶輸入處理器620接收利用請求-響應協(xié)議從網(wǎng)頁瀏覽器傳送的輸入請求。在一個優(yōu)選方面,請求-響應協(xié)議可能包括超文本傳輸協(xié)議(HTTP)。在另一個方面,請求-響應協(xié)議可以包括其它合適的請求-響應協(xié)議。在某些方面,輸入請求可經(jīng)由與網(wǎng)頁瀏覽器通信的網(wǎng)絡應用程序服務器(例如,340、420)從網(wǎng)頁瀏覽器(例如,圖3A或圖3B中的312)接收。例如,輸入請求經(jīng)由網(wǎng)絡應用程序服務器的HTTP處理器(例如,344或422)來接收。在某些方面,輸入請求包括鼠標事件、鍵盤事件、觸摸屏事件中的至少一個。用戶輸入處理器620可將為適于請求-響應協(xié)議或與其兼容的輸入請求轉譯成適于遠程桌面顯示協(xié)議或與其兼容的輸入命令(例如遠程桌面顯示協(xié)議輸入命令)。用戶輸入處理器620可將輸入命令傳送到遠程桌面客戶端640,其可將輸入命令傳送到遠程桌面服務器680。例如,用戶輸入處理器620可經(jīng)由利用遠程桌面顯示協(xié)議與遠程桌面服務器680通信的遠程桌面客戶端640促使將輸入命令傳送到遠程桌面服務器680。在一個方面,輸入請求有時被稱為作為用戶輸入命令,反之亦然。然而,請注意,如果輸入請求被稱為其經(jīng)由HTTP接收時的輸入命令,則其是HTTP請求而不是命令。在一個方面,輸入命令有時也被稱為輸入調(diào)用命令或遠程桌面輸入命令,反之亦然。
[0110]遠程計算機690 (例如,其遠程桌面服務器680)可基于輸入命令執(zhí)行一個或多個操作,并將作為執(zhí)行一個或多個操作結果的繪圖數(shù)據(jù)發(fā)送到服務器,諸如編碼轉換服務器208,330,400A*400B (例如,服務器的遠程桌面客戶端620)。根據(jù)各個方面,遠程桌面客戶端640可響應于傳送到遠程計算機690 (例如,其遠程桌面服務器680)的輸入命令利用遠程桌面顯示協(xié)議接收從遠程計算機690 (例如,遠程桌面服務器680)傳送的屏幕繪圖命令。在一個方面,從遠程計算機所接收到的屏幕繪圖命令有時可被稱為繪圖命令,遠程計算機繪圖命令,或從遠程計算機所接收到的遠程桌面繪圖命令,反之亦然。然后繪圖命令處理器630可從連接到遠程計算機690的遠程桌面客戶端640接收屏幕繪圖命令。例如,繪圖命令處理器630可利用遠程桌面顯示協(xié)議經(jīng)由與遠程計算機690 (例如,其遠程桌面服務器680)通信的遠程桌面客戶端640從遠程計算機690 (例如,其遠程桌面服務器680)接收屏幕繪圖命令。
[0111]根據(jù)某些方面,繪圖命令處理器630可將屏幕繪圖命令轉換成可由網(wǎng)頁瀏覽器(例如,圖3A或圖3B中的312)識別或與其兼容的格式。例如,繪圖命令處理器630可將適于遠程桌面客戶端、遠程桌面服務器和遠程桌面顯示協(xié)議或與其兼容的屏幕繪圖命令轉譯成與服務器208,330,400A或400B兼容的圖形繪制命令,諸如當服務器是Java編碼轉換服務器時轉換成Java圖形(抽象窗口工具包)API命令。在某些方面,轉譯屏幕繪圖命令可包括計算新的繪圖命令的參數(shù)和/或調(diào)整所接收到的繪圖命令參數(shù),和/或對所接收到的位圖數(shù)據(jù)進行調(diào)整,諸如但不限于將16位的紅-綠-藍(RGB)5-6-5的顏色格式轉換成32位的α-紅-綠-藍(ARGB) 8-8-8-8的格式。在某些方面,繪圖命令處理器630可執(zhí)行圖形繪制命令(例如Java圖形API命令)以便繪制成已經(jīng)在所述編碼轉換服務器(例如,圖3A或圖3B中的330,圖4A中的400A或圖4B中的400B)處創(chuàng)建的繪圖命令隊列(例如,圖3A或圖3B中的360或圖4A或圖4B中的440)的位圖圖像(例如,離屏的Java位圖444)。在一個方面,Java圖形API命令有時被稱為Java圖形命令或Java圖形繪制命令。在一個方面,離屏位圖可在存儲或內(nèi)存位置,其是可由應用程序服務器(例如,340或420)訪問的繪圖命令隊列(例如,360或440) —部分。在一個方面,離屏位圖的大小可代表遠程會話的大小。以另一種方式表示的話,離屏位圖的大小可代表遠程桌面的大小,或離屏位圖可為遠程桌面整個圖像的位圖表示。
[0112]為了客戶端設備和遠程計算機之間的遠程會話,本公開的優(yōu)選實施例實質上將HTTP請求轉譯成遠程桌面顯示協(xié)議命令,反之亦然(例如,將請求或經(jīng)由HTTP傳送/接收的響應轉譯成經(jīng)由遠程桌面顯示協(xié)議傳送/接收的命令,反之亦然)。例如,來自網(wǎng)頁瀏覽器諸如服務器208,330,400A,400B的輸入請求可轉譯成適于遠程桌面顯示協(xié)議或與其兼容的輸入命令(例如遠程桌面輸入命令),且經(jīng)由遠程桌面客戶端640由遠程桌面服務器680接收。利用遠程桌面顯示協(xié)議從遠程計算機690傳送(例如響應于輸入命令)的屏幕繪圖命令可轉譯成與服務器208,330,400A,400B兼容的圖形繪制命令,諸如Java圖形(抽象窗口工具包)API命令。在某些方面,HTTP是拉式協(xié)議,而遠程桌面顯示協(xié)議可以是推式協(xié)議。在某些方面,為推式協(xié)議的繪圖命令可在遠程客戶端設備和遠程計算機之間的遠程會話期間轉譯成為拉式協(xié)議的繪圖更新(或繪圖響應)。
[0113]繼續(xù)參照圖6,當繪制成離屏位圖時,繪圖命令處理器630可將像素數(shù)據(jù)傳送到離屏位圖。在某些方面,像素數(shù)據(jù)用于更新離屏位圖的一部分(例如,離屏Java位圖)。在某些方面,繪圖命令處理器630可將像素數(shù)據(jù)發(fā)送到離屏位圖,這樣離屏位圖的經(jīng)過更新部分可存儲和/或轉換成圖像文件。
[0114]根據(jù)某些方面,繪圖命令處理器630可生成對應于離屏位圖的經(jīng)過更新部分的一個或多個坐標(例如,當執(zhí)行圖形繪制命令時將圖像繪制成離屏位圖)。例如,所述一個或多個坐標可以確定對應的圖像位圖將在網(wǎng)頁瀏覽器的畫布上執(zhí)行的位置。在一個實施例中,所述一個或多個坐標可從圖形繪制命令提取或復制。繪圖命令處理器630還可將一個或多個坐標發(fā)送到圖4A或圖4B中的臟污坐標池442,其是繪圖命令隊列(例如,360或440)的一部分。在某些方面,繪圖命令處理器630可將一個或多個坐標發(fā)送當骯污坐標池,使得所述一個或多個坐標可存儲于臟污坐標池內(nèi)。因此,繪圖命令處理器630可在繪圖命令隊列中更新“臟污”區(qū)域的坐標。在某些方面,繪圖命令處理器630可將通知信號發(fā)送到網(wǎng)絡應用程序服務器(例如,420)的繪圖請求隊列(例如,圖4A或圖4B中的426)。在某些方面,通知信號/信息可指示該圖像位圖(例如,離屏的Java位圖)已被更新。
[0115]圖7是根據(jù)本公開某些方面的在結合網(wǎng)頁瀏覽器(例如,312)和遠程計算機(例如,204,320或690)使用時的在編碼轉換服務器(例如,208,330,400A,400B)、網(wǎng)頁瀏覽器和遠程計算機之間交互的時序圖700。時序顯示為701-724。如在701處所示,網(wǎng)頁瀏覽器可將初始HTTP請求發(fā)送到編碼轉換服務器(例如,圖4的編碼轉換服務器400A),例如,發(fā)送到其HTTP處理器(例如,422)。初始HTTP請求可包括指定所需遠程計算機的URL。在702和703處,編碼轉換服務器可促進建立遠程桌面與遠程計算機(例如,其遠程桌面服務器)的連接。在704處,編碼轉換服務器也可將客戶端編碼(例如,JavaScript客戶端編碼)提供到網(wǎng)頁瀏覽器。網(wǎng)頁瀏覽器中的JavaScript客戶端編碼會產(chǎn)生許多繪圖請求,其可作為長輪詢請求由編碼轉換服務器進行處理。在示例性實施例中,在任意一個時刻可有四個繪圖請求等待處理,但是繪圖請求的數(shù)目可根據(jù)需要來選擇且針對不同的實施方式來進行優(yōu)化。
[0116]如在圖的下方所示,例如在719和722處,網(wǎng)頁瀏覽器可將用戶輸入請求(HTTP請求)提供到編碼轉換服務器,而在721和724處,所述編碼轉換服務器可依次將用戶輸入命令提供到遠程計算機,例如以便控制遠程計算機的遠程桌面。在705處,遠程計算機可通過遠程桌面客戶機適配器(例如,350,430或600)將繪圖命令(示出一個命令)提供到編碼轉換服務器中的繪圖命令隊列(例如,360或440),其將遠程桌面的相應圖像繪制成繪圖命令隊列中的離屏位圖。響應于繪圖命令,在706處,繪圖命令隊列可將通知提供到編碼轉換服務器的長輪詢處理程序模塊(例如,342)中的繪圖請求隊列(例如,426)。作為響應,第一等待處理的繪圖請求可從繪圖請求隊列提取,并提供給HTTP處理器。作為響應,在707和708處,HTTP處理器可從繪圖命令隊列獲取圖像。在709處,HTTP處理器響應于被發(fā)送到網(wǎng)頁瀏覽器的腳本客戶端(例如,314或520,或者更具體地526)而提供圖像和相應的坐標。然后腳本客戶端在711處利用從小型文本文件Cookie提取的相應坐標將圖像(例如,532)繪制到畫布(例如,316或530)上,以便在網(wǎng)頁瀏覽器中顯示遠程桌面。
[0117]在一個方面,HTTP處理器(例如,422)是標準的HTTP處理器,其特征在于當它從網(wǎng)頁瀏覽器接收到請求時,它作出響應而不等待或存儲請求。例如,當HTTP處理器在719或722處從網(wǎng)頁瀏覽器接收作為HTTP請求的用戶輸入請求時,HTTP處理器分別在720和723處立即做出為零響應的響應(而請求經(jīng)由遠程桌面客戶端適配器被發(fā)送到遠程計算機)。在一個方面,長輪詢處理器(例如,424)可用于接收請求且基于事件作出響應,以及可存儲長輪詢請求。例如,在一種情況(例如繪圖命令正在等待處理)下,則對該請求立即作出反應,例如,輪詢處理器將繪圖請求發(fā)送到HTTP處理器,使得HTTP處理器可立即發(fā)送繪圖請求的響應。在另一種情況(例如繪圖命令沒有等待處理)下,則請求會被存儲起來(例如,存儲到繪圖請求隊列中),直到滿足條件(例如新的繪圖命令已到達繪圖命令隊列處)。
[0118]在一個方面,遠程桌面是遠程計算機的桌面。在一個方面,在與遠程計算機的遠程桌面會話期間,客戶端設備的網(wǎng)頁瀏覽器可訪問、控制和/或查看存在于遠程計算機上的任何或所有應用程序和文件。在另一個方面,在與遠程計算機的遠程桌面會話區(qū)間,取決于用戶的認證和設置,可允許網(wǎng)頁瀏覽器訪問、控制和/或查看存在于遠程計算機上的一些應用程序和文件。
[0119]在一個優(yōu)選的方面,客戶端設備、編碼轉換服務器以及遠程計算機的每一個是遠離彼此的獨立和不同的機器。在一方面,編碼轉換服務器可為與一個或多個客戶端設備和一個或多個遠程計算機通信的機器,以及編碼轉換服務器可為能夠通過網(wǎng)絡通信的機器。在一方面,網(wǎng)頁瀏覽器可為允許用戶通過網(wǎng)絡檢索、呈現(xiàn)或信息通信的應用程序。
[0120]圖8是示出適用于本公開實施例的計算系統(tǒng)800的一個實例的概念性框圖。系統(tǒng)800例如可以是客戶端設備(例如,202或310),服務器(例如,208,330,400A,400B)或遠程計算機(例如,204,320或690)。系統(tǒng)800可包括處理系統(tǒng)802。處理系統(tǒng)802通過總線804或其它結構或裝置能夠與接收器806和發(fā)射器808通信。但是應當理解,除了總線以外的通信裝置可用于所公開的配置。處理系統(tǒng)802可以生成音頻,視頻,多媒體,和/或其它類型的數(shù)據(jù),以便提供給發(fā)射器809以便于進行通信。此外,音頻,視頻,多媒體,和/或其它類型的數(shù)據(jù)可以在接收器806處接收,且由處理系統(tǒng)802進行處理。
[0121]處理系統(tǒng)802可包括用于執(zhí)行指令的通用目的處理器或特定目的處理器,并且可進一步包括計算機可讀介質819,諸如易失性或非易失性存儲器,用于存儲適于軟件程序的數(shù)據(jù)和/或指令??纱鎯τ谟嬎銠C可讀介質810和/或819中的指令可由處理系統(tǒng)802來執(zhí)行以便控制和管理到各種網(wǎng)絡的訪問,以及提供其它通信和處理功能。該指令還可包括由處理系統(tǒng)802執(zhí)行的適于各種用戶界面設備(諸如顯示器812和小鍵盤814)的指令。處理系統(tǒng)802可包括輸入端口 822和輸出端口 824。輸入端口 822和輸出端口 824的每一個可包括一個或多個端口。輸入端口 822和輸出端口 824可以是相同的端口(例如,雙向端口),或者可以是不同的端口。
[0122]處理系統(tǒng)802可使用軟件,硬件,或兩者的組合來實現(xiàn)。通過實例的方式,處理系統(tǒng)802可用一個或多個處理器來實現(xiàn)。處理器可以是通用目的微處理器,微控制器,數(shù)字信號處理器(DSP),專用集成電路(ASIC),現(xiàn)場可編程門陣列(FPGA),可編程邏輯器件(PLD),控制器,狀態(tài)機,門控邏輯,離散硬件組件,和/或任何其它可以執(zhí)行計算或其它信息操作的合適裝置。
[0123]機器可讀的介質可以是一種或多種機器可讀的介質。軟件應廣義地解釋為意味著指令、數(shù)據(jù)、或它們的任意組合,不管其是否被稱為軟件,固件,中間件,微代碼,硬件描述語言或其它的形式。指令可以包括編碼(例如,為源編碼的格式,二進制編碼的格式,可執(zhí)行編碼的格式,或任何其它合適的編碼格式)。
[0124]機器可讀介質(例如,819)可包括集成到處理系統(tǒng)中的存儲器,諸如可以是具有專用集成電路(ASIC)的情況。機器可讀介質(例如,810)還可以包括處理系統(tǒng)外部的存儲器,例如隨機存取存儲器(RAM),閃速存儲器,只讀存儲器(ROM),可編程只讀存儲器(PR0M),可擦除PROM (EPR0M),寄存器,硬盤,可移動盤,CD-ROM,DVD,或任何其它合適的存儲裝置。此夕卜,機器可讀介質可包括傳輸線或編碼數(shù)據(jù)信號的載波。本領域內(nèi)的那些技術人員將認識到針對處理系統(tǒng)802如何最好地實現(xiàn)所描述功能。根據(jù)本公開的一方面,機器可讀介質是編碼或存儲有指令的一種計算機可讀介質,以及其是一個計算元件,該元件限定指令和其余系統(tǒng)之間的結構和功能的相互關系,其允許指令的功能得以實現(xiàn)。在一個方面,機器可讀介質是非瞬時性的機器可讀介質,機器可讀的存儲介質,或非瞬時性的機器可讀存儲介質。在一個方面,計算機可讀介質是非瞬時性計算機可讀介質,計算機可讀存儲介質,或非瞬時性計算機可讀存儲介質。指令例如可由客戶端設備、服務器、遠程計算機來執(zhí)行,或由客戶端設備、服務器、或遠程計算機的處理系統(tǒng)來執(zhí)行。指令例如可以是包括編碼的計算機程序。
[0125]接口 816可以是任何類型的接口,并可以存在于圖8中所示的組件之間。接口 816例如也可以是到外界的接口(例如,因特網(wǎng)網(wǎng)絡接口)。收發(fā)器模塊807可代表一個或多個收發(fā)器,以及每個收發(fā)器806可包括接收器和發(fā)送器809。在處理系統(tǒng)802中實現(xiàn)的功能可在接收器806的一部分、發(fā)射器809的一部分、機器可讀介質810的一部分、顯不器812的一部分、小鍵盤814的一部分、或接口 816的一部分中實現(xiàn),反之亦然。
[0126]圖9A示出代表根據(jù)本公開某些方面的經(jīng)由編碼轉換服務器(例如,208,330,400A或400B)從網(wǎng)頁瀏覽器(例如,312或500)訪問和控制遠程桌面的方法900的框圖。圖9B示出了方法900的延續(xù)。對于方法900而言,如在902所述的那樣,提供具有2D渲染功能的網(wǎng)頁瀏覽器,例如HTML5兼容的網(wǎng)頁瀏覽器。如在906處所述的那樣,輸入請求可在編碼轉換服務器處接收以便用于控制遠程桌面。如在908處所述的那樣,輸入請求可從網(wǎng)頁瀏覽器的協(xié)議(例如優(yōu)選的HTTP)轉譯成與遠程桌面相關聯(lián)的遠程桌面服務器的協(xié)議。然后如在910處所述的那樣,可將輸入命令提供到遠程計算機(其可包括遠程桌面服務器)。
[0127]參照圖9B以及繼續(xù)描述方法900,例如,臟污區(qū)域的繪圖命令和坐標可由編碼轉換服務器從遠程桌面服務器接收,如在912處所述的那樣。作為響應,繪圖命令和坐標可從遠程桌面服務器的協(xié)議轉譯成網(wǎng)頁瀏覽器的協(xié)議,如在914處所述的那樣。如在916處所述的那樣,編碼轉換服務器可以通過繪制或生成遠程桌面的圖像作出反應。如在918處所述的那樣,圖像和對應的坐標可連接或組合。來自網(wǎng)頁瀏覽器的繪圖請求可通過將圖像和坐標發(fā)送到網(wǎng)頁瀏覽器(如在922處所述的那樣)以便顯示作出響應(如在920處所述的那樣)。因此,方法900可經(jīng)由HTTP用于控制和訪問遠程桌面會話,且這種控制可以實時進行。
[0128]經(jīng)由編碼轉換服務器(例如,208,330,400A或400B)從網(wǎng)頁瀏覽器(例如,312或500)來訪問和控制遠程計算機(例如,204,320或690)的遠程桌面的方法的示例性實施例可包括以下三個步驟:在會話開始時可以進行一次第一步驟;而第二步驟和第三步驟可在遠程桌面會話期間繼續(xù)互換。
[0129]第一步驟可包括由網(wǎng)頁瀏覽器啟動初始HTTP請求(例如,連接到遠程計算機的連接請求)。例如,初始HTTP請求由網(wǎng)頁瀏覽器(優(yōu)選HTML5兼容的瀏覽器)發(fā)送。網(wǎng)頁瀏覽器接收回應,其可包含一個腳本客戶端,諸如314或500,例如JavaScript Ajax客戶端編碼。編碼轉換服務器(例如,Java編碼轉換服務器)可經(jīng)由遠程桌面客戶端利用連接請求建立到遠程計算機的連接。在Java編碼轉換服務器上或由其使用的遠程桌面客戶端可利用遠程桌面顯示協(xié)議建立到遠程計算機的連接。編碼轉換服務器可充當HTTP協(xié)議和遠程桌面顯示協(xié)議之間的接口。在一個方面,網(wǎng)頁瀏覽器和編碼轉換服務器之間沒有連接,因為HTTP是一種無連接的協(xié)議。相反,可在HTTP協(xié)議中只有單獨的請求和響應。
[0130]第二步驟是在網(wǎng)頁瀏覽器處的遠程會話繪圖:在瀏覽器的一側上,客戶端的JavaScript編碼可以不斷地重新發(fā)送多個例如四個異步(Ajax) HTTP請求,以便找出是否存在需要(重新)繪制的遠程計算機遠程桌面任何“臟污”區(qū)域。在Java編碼轉換服務器上,這些繪圖請求作為長輪詢請求來處理,這意味著僅當存在要繪制的數(shù)據(jù)時它們才將作出響應,否則它們在繪圖請求隊列中掛起(例如,426)。此外,在Java編碼轉換服務器上,遠程會話在編碼轉換服務器的繪圖命令隊列中被繪制成離屏的Java位圖。此外,繪圖指令的坐標也追加或添加到繪圖命令隊列中。該最后的部分還發(fā)送通知到編碼轉換服務器的繪圖請求隊列,這樣可服務于來自繪圖請求隊列的第一個等待請求。在HTTP對瀏覽器作出響應的過程中,發(fā)送“臟污”的繪制圖像以及存儲于HTTP標頭的部分(已知為小型文本文件cookie)之一內(nèi)的繪圖坐標。在瀏覽器一側上,腳本客戶端接收“臟污”圖像和坐標,以及腳本客戶端利用來自小型文本文件cookie的坐標將圖像繪制成HTML畫布(例如,530)。這允許經(jīng)由Java編碼轉換服務器將來自遠程計算機的遠程會話(例如,遠程計算機遠程桌面的圖像)拖動到客戶端的HTML5瀏覽器。
[0131]第三步驟涉及到用戶輸入,諸如鼠標點擊,按鍵或觸摸屏事件。在瀏覽器一側上,腳本客戶端例如檢測到鼠標事件,以及發(fā)送HTTP請求到編碼轉換服務器,通過沿著事件的X和Y坐標。Java編碼轉換服務器接收請求,發(fā)送空答復(例如參見圖7中的720和723)以便關閉HTTP請求,然后經(jīng)由遠程桌面客戶端適配器將該請求轉發(fā)到遠程桌面客戶端,該請求是經(jīng)由其到遠程計算機的協(xié)議發(fā)送的。這些用戶輸入請求可以一種標準的方式處理,即不是長輪詢事件,以便接收和處理用戶輸入。然后用戶輸入可被發(fā)送到遠程計算機。
[0132]在一個優(yōu)選的方面,腳本客戶端沒有安裝到客戶端設備上。換言之,在上述第一步驟之前(例如,在網(wǎng)頁瀏覽器連接到遠程計算機之前,或者發(fā)送請求以便連接到遠程計算機之前,以及編碼轉換服務器啟動與遠程計算機的遠程會話之前),腳本客戶端不存在于(沒有預先安裝到)網(wǎng)頁瀏覽器或客戶端設備上。在一個優(yōu)選的方面,客戶端設備只需網(wǎng)頁瀏覽器來啟動訪問和控制遠程計算機的遠程桌面,或啟動與遠程計算機的遠程桌面會話。因此,客戶端設備不需要適于遠程桌面顯示協(xié)議的軟件或瀏覽器插件。一旦網(wǎng)頁瀏覽器請求連接到遠程計算機以便遠程桌面會話,編碼轉換服務器經(jīng)由HTTP將腳本客戶端實時地提供到網(wǎng)頁瀏覽器。此時通過編碼轉換服務器建立到遠程計算機的網(wǎng)頁瀏覽器連接,當遠程桌面會話被終止或在瀏覽器關閉時,腳本客戶端從客戶端設備和網(wǎng)頁瀏覽器刪除。
[0133]下面示出用于在客戶端設備處利用編碼轉換服務器經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器促進實時訪問和控制遠程計算機遠程桌面的方法/設備/機器可讀存儲介質(作為條款描述)。
[0134]例如根據(jù)以下描述的各個方面來說明本發(fā)明主題的技術。為了簡便,使用編號的條款(1,2,3等等)來描述本發(fā)明主題技術的各個方面的各個實例。這些方面是作為實例來提供的且對本發(fā)明主題的技術并沒有限制作用。下面的第I條例如參照本公開的附圖例如圖10A-10C等呈現(xiàn)。應當指出,任何從屬條款可以任何組合相結合,并放置到相應的獨立條款中,例如,第1、11、和22條。其它條款可以類似的方式來呈現(xiàn)。
[0135]1.在客戶端設備(例如參見圖3A中的310)處利用編碼轉換服務器(例如參見圖3A中的330)經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器(例如參見圖5中的500)促進實時訪問和控制遠程計算機(例如,參見圖3A中的320)遠程桌面的方法(例如見參見圖1OA的方法1000-A),所述方法包括:
[0136]在編碼轉換服務器處接收基于遠程計算機遠程桌面圖像的遠程桌面繪圖命令,其中遠程桌面繪圖命令與由遠程計算機利用的遠程桌面顯示協(xié)議兼容(例如,參見圖1OA中的第1002-A項);
[0137]在編碼轉換服務器處將遠程桌面繪圖命令轉譯成與網(wǎng)頁瀏覽器兼容的網(wǎng)頁瀏覽器繪圖更新(例如參見圖1OA中的第1004-A項);以及
[0138]在客戶端設備和遠程計算機之間的遠程桌面會話期間促進將網(wǎng)頁瀏覽器繪圖更新利用HTTP從編碼轉換服務器提供到客戶端設備的網(wǎng)頁瀏覽器(例如,參見圖1OA中的第1006-A 項);
[0139]其中遠程桌面顯示協(xié)議是推式協(xié)議(例如,參見圖1OA中的第1008-A項);
[0140]其中HTTP是拉式協(xié)議(例如,參見圖1OA中的第1010-A項)。
[0141]2.根據(jù)第I條所述的方法,其中網(wǎng)頁瀏覽器的繪圖更新包括可由網(wǎng)頁瀏覽器識別和處理的圖像文件和適于圖像文件的繪圖坐標。
[0142]3.根據(jù)第I條所述的方法,其中所述轉譯包括:
[0143]將遠程桌面繪圖命令轉譯成Java圖形繪制命令;
[0144]利用Java圖形繪制命令更新Java位圖的一部分,其中所述Java位圖的經(jīng)過更新的部分代表遠程桌面整個圖像的一部分;
[0145]從Java位圖創(chuàng)建圖像文件;以及
[0146]生成適于圖像文件的繪圖坐標;
[0147]其中網(wǎng)頁瀏覽器的繪圖更新包括圖像文件和適于圖像文件的繪圖坐標;
[0148]其中促進提供包括將繪圖坐標放置到HTTP標頭內(nèi);
[0149]其中利用HTTP包括利用HTTP處理器;
[0150]其中所述編碼轉換服務器是Java編碼轉換服務器,其配置成提供用于托管一個或多個網(wǎng)絡應用程序的應用程序框架。
[0151]4.根據(jù)第I條所述的方法,其中所述轉譯包括:
[0152]將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令,其中圖形繪制命令包括坐標;
[0153]從圖形繪制命令提取坐標;
[0154]基于圖形繪制命令更新離屏位圖的至少一部分,其中所述離屏位圖的至少一部分與坐標相關聯(lián);
[0155]其中離屏位圖基于遠程桌面的圖像;
[0156]基于離屏位圖的至少一部分創(chuàng)建圖像文件;以及
[0157]其中網(wǎng)頁瀏覽器的繪圖更新包括圖像文件和坐標。
[0158]5.根據(jù)第I條所述的方法,其中網(wǎng)頁瀏覽器是HTML5兼容的網(wǎng)頁瀏覽器。
[0159]6.根據(jù)第I條所述的方法,進一步包括:
[0160]利用HTTP從網(wǎng)頁瀏覽器接收用戶輸入請求;
[0161]將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令;
[0162]將輸入命令提供到遠程桌面客戶端以便在遠程桌面會話期間用于訪問和控制遠程計算機的遠程桌面;
[0163]其中網(wǎng)頁瀏覽器的繪圖更新包括可由網(wǎng)頁瀏覽器識別和處理的圖像文件和適于圖像文件的繪圖坐標;
[0164]其中所述圖像文件和繪圖坐標表示遠程桌面整個圖像的一部分已經(jīng)響應于輸入命令而改變。
[0165]7.根據(jù)第6條所述的方法,其中所述用戶輸入請求包括鼠標事件、鍵盤事件、以及觸摸屏事件中的至少一個。
[0166]8.根據(jù)第I條所述的方法,其中遠程桌面繪圖命令包括從遠程計算機的遠程桌面服務器所接收到的遠程桌面繪圖命令參數(shù)和位圖數(shù)據(jù);
[0167]其中所述轉譯包括下述的一個或多個:
[0168]基于遠程桌面的繪圖命令參數(shù)來計算新的繪圖命令參數(shù);
[0169]調(diào)整遠程桌面繪圖命令的參數(shù);以及
[0170]對位圖數(shù)據(jù)進行調(diào)整。
[0171]9.根據(jù)第I條所述的方法,其中遠程桌面繪圖命令包括從遠程計算機的遠程桌面服務器所接收到的遠程桌面繪圖命令參數(shù)和位圖數(shù)據(jù);
[0172]其中所述轉譯包括對位圖數(shù)據(jù)進行調(diào)整;
[0173]其中進行的調(diào)整包括將16位的紅-綠-藍(RGB) 5-6-5的色彩格式轉換成32位的α _紅-綠-藍(ARGB) 8-8-8-8的格式。
[0174]10.根據(jù)第I條所述的方法,其中編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。
[0175]11.一種機器可讀存儲介質(例如參見圖1OB中的機器可讀存儲介質1000-B),其編碼有指令,所述指令可由處理系統(tǒng)執(zhí)行以便執(zhí)行在客戶端設備(例如參見圖3A中的310)處利用編碼轉換服務器(例如參見圖3A中的330)經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器(例如參見圖5中的500)促進實時訪問和控制遠程計算機(例如,參見圖3A中的320)遠程桌面的方法,所述指令包括適于下述的編碼:
[0176]在編碼轉換服務器處接收基于遠程計算機遠程桌面圖像的遠程桌面繪圖命令,其中遠程桌面繪圖命令與由遠程計算機利用的遠程桌面顯示協(xié)議兼容(例如,參見圖1OB中的第1002-B項);
[0177]在編碼轉換服務器處將遠程桌面繪圖命令轉譯成與網(wǎng)頁瀏覽器兼容的網(wǎng)頁瀏覽器繪圖更新(例如參見圖1OB中的第1004-B項);以及[0178]在客戶端設備和遠程計算機之間的遠程桌面會話期間促進將網(wǎng)頁瀏覽器繪圖更新利用HTTP從編碼轉換服務器提供到客戶端設備的網(wǎng)頁瀏覽器(例如,參見圖1OB中的第1006-B 項);
[0179]其中遠程桌面顯示協(xié)議是推式協(xié)議(例如,參見圖1OB中的第1008-B項);
[0180]其中HTTP是拉式協(xié)議(例如,參見圖1OB中的第1010-B項)。
[0181]12.根據(jù)第11條所述的機器可讀存儲介質,其中網(wǎng)頁瀏覽器的繪圖更新包括可由網(wǎng)頁瀏覽器識別和處理的圖像文件和適于圖像文件的繪圖坐標。
[0182]13.根據(jù)第11條所述的機器可讀存儲介質,其中所述轉譯包括:
[0183]將遠程桌面繪圖命令轉譯成Java圖形繪制命令;
[0184]利用Java圖形繪制命令更新Java位圖的一部分,其中所述Java位圖的經(jīng)過更新的部分代表遠程桌面整個圖像的一部分;
[0185]從Java位圖創(chuàng)建圖像文件;以及
[0186]生成適于圖像文件的繪圖坐標;
[0187]其中網(wǎng)頁瀏覽器的繪圖更新包括圖像文件和適于圖像文件的繪圖坐標;
[0188]其中促進提供包括將繪圖坐標放置到HTTP標頭內(nèi);
[0189]其中利用HTTP包括利用HTTP處理器;
[0190]其中所述編碼轉換服務器是Java編碼轉換服務器,其配置成提供用于托管一個或多個網(wǎng)絡應用程序的應用程序框架。
[0191]14.根據(jù)第11條所述的機器可讀存儲介質,其中所述轉譯包括:
[0192]將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令,其中圖形繪制命令包括坐標;
[0193]從圖形繪制命令提取坐標;
[0194]基于圖形繪制命令更新離屏位圖的至少一部分,其中所述離屏位圖的至少一部分與坐標相關聯(lián);
[0195]其中離屏位圖基于遠程桌面的圖像;
[0196]基于離屏位圖的至少一部分創(chuàng)建圖像文件;以及
[0197]其中網(wǎng)頁瀏覽器的繪圖更新包括圖像文件和坐標。
[0198]15.根據(jù)第11條所述的機器可讀存儲介質,其中網(wǎng)頁瀏覽器是HTML5兼容的網(wǎng)頁瀏覽器。
[0199]16.根據(jù)第11條所述的機器可讀存儲介質,其中所述指令進一步包括適于下述的編碼:
[0200]利用HTTP從網(wǎng)頁瀏覽器接收用戶輸入請求;
[0201]將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令;以及
[0202]將輸入命令提供到遠程桌面客戶端以便在遠程桌面會話期間用于訪問和控制遠程計算機的遠程桌面;
[0203]其中網(wǎng)頁瀏覽器的繪圖更新包括可由網(wǎng)頁瀏覽器識別和處理的圖像文件和適于圖像文件的繪圖坐標;以及
[0204]其中所述圖像文件和繪圖坐標表示遠程桌面整個圖像的一部分已經(jīng)響應于輸入命令而改變。[0205]17.根據(jù)第16條所述的機器可讀存儲介質,其中所述用戶輸入請求包括鼠標事件、鍵盤事件、以及觸摸屏事件中的至少一個。
[0206]18.根據(jù)第11條所述的機器可讀存儲介質,其中遠程桌面繪圖命令包括從遠程計算機的遠程桌面服務器所接收到的遠程桌面繪圖命令參數(shù)和位圖數(shù)據(jù);
[0207]其中所述轉譯包括下述的一個或多個:
[0208]基于遠程桌面的繪圖命令參數(shù)來計算新的繪圖命令參數(shù);
[0209]調(diào)整遠程桌面繪圖命令的參數(shù);以及
[0210]對位圖數(shù)據(jù)進行調(diào)整。
[0211]19.根據(jù)第11條所述的機器可讀存儲介質,其中遠程桌面繪圖命令包括從遠程計算機的遠程桌面服務器所接收到的遠程桌面繪圖命令參數(shù)和位圖數(shù)據(jù);
[0212]其中所述轉譯包括對位圖數(shù)據(jù)進行調(diào)整;
[0213]其中進行的調(diào)整包括將16位的紅-綠-藍(RGB) 5-6-5的色彩格式轉換成32位的α _紅-綠-藍(ARGB) 8-8-8-8的格式。
[0214]20.根據(jù)第11條所述的機器可讀存儲介質,其中編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。
[0215]21.包括第11條所述的機器可讀存儲介質的一種計算機,其中所述計算機是編碼轉換服務器。
[0216]22.用于在客戶端設備(例如參見圖3A中的310)處利用編碼轉換服務器(例如參見圖3A中的330)經(jīng)由超文本傳輸協(xié)議(HTTP)通過網(wǎng)頁瀏覽器(例如參見圖5中的500)促進實時訪問和控制遠程計算機(例如,參見圖3A中的320)遠程桌面的設備,所述設備包括:
[0217]用于接收基于遠程計算機遠程桌面圖像的遠程桌面繪圖命令的裝置,其中遠程桌面繪圖命令與由遠程計算機利用的遠程桌面顯示協(xié)議兼容(例如,參見圖1OC中的第1002-C 項);
[0218]用于將遠程桌面繪圖命令轉譯成與網(wǎng)頁瀏覽器兼容的網(wǎng)頁瀏覽器繪圖更新的裝置(例如參見圖1OC中的第1004-C項);以及
[0219]用于在客戶端設備和遠程計算機之間的遠程桌面會話期間促進將網(wǎng)頁瀏覽器繪圖更新利用HTTP從編碼轉換服務器提供到客戶端設備的網(wǎng)頁瀏覽器的裝置(例如,參見圖1OC中的第1006-C項);
[0220]其中遠程桌面顯示協(xié)議是推式協(xié)議(例如,參見圖1OC中的第1008-C項);以及
[0221]其中HTTP是拉式協(xié)議(例如,參見圖1OC中的第1010-C項)。
[0222]23.根據(jù)第22條所述的設備,其中網(wǎng)頁瀏覽器的繪圖更新包括可由網(wǎng)頁瀏覽器識別和處理的圖像文件和適于圖像文件的繪圖坐標。
[0223]24.根據(jù)第22條所述的設備,其中用于所述轉譯的裝置包括:
[0224]用于將遠程桌面繪圖命令轉譯成Java圖形繪制命令的裝置;
[0225]用于利用Java圖形繪制命令更新Java位圖的一部分的裝置,其中所述Java位圖的經(jīng)過更新的部分代表遠程桌面整個圖像的一部分;
[0226]用于從Java位圖創(chuàng)建圖像文件的裝置;以及
[0227]用于生成適于圖像文件的繪圖坐標的裝置;
[0228]其中網(wǎng)頁瀏覽器的繪圖更新包括圖像文件和適于圖像文件的繪圖坐標;[0229]其中用于促進提供的裝置包括用于將繪圖坐標放置到HTTP標頭內(nèi)的裝置;
[0230]其中利用HTTP包括利用HTTP處理器;以及
[0231]其中所述編碼轉換服務器是Java編碼轉換服務器,其配置成提供用于托管一個或多個網(wǎng)絡應用程序的應用程序框架。
[0232]25.根據(jù)第22條所述的設備,其中用于所述轉譯的裝置包括:
[0233]用于將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令的裝置,其中圖形繪制命令包括坐標;
[0234]用于從圖形繪制命令提取坐標的裝置;
[0235]用于基于圖形繪制命令更新離屏位圖的至少一部分的裝置,其中所述離屏位圖的至少一部分與坐標相關聯(lián),其中離屏位圖基于遠程桌面的圖像;以及
[0236]用于基于離屏位圖的至少一部分創(chuàng)建圖像文件的裝置;以及
[0237]其中網(wǎng)頁瀏覽器的繪圖更新包括圖像文件和坐標。
[0238]26.根據(jù)第22條所述的設備,其中網(wǎng)頁瀏覽器是HTML5兼容的網(wǎng)頁瀏覽器。
[0239]27.根據(jù)第22條所述的設備,進一步包括:
[0240]用于利用HTTP從網(wǎng)頁瀏覽器接收用戶輸入請求的裝置;
[0241]用于將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令的裝置;以及
[0242]用于將輸入命令提供到遠程桌面客戶端以便在遠程桌面會話期間用于訪問和控制遠程計算機的遠程桌面的裝置;
[0243]其中網(wǎng)頁瀏覽器的繪圖更新包括可由網(wǎng)頁瀏覽器識別和處理的圖像文件和適于圖像文件的繪圖坐標;以及
[0244]其中所述圖像文件和繪圖坐標表示遠程桌面整個圖像的一部分已經(jīng)響應于輸入命令而改變。
[0245]28.根據(jù)第27條所述的設備,其中所述用戶輸入請求包括鼠標事件、鍵盤事件、以及觸摸屏事件中的至少一個。
[0246]29.根據(jù)第22條所述的設備,其中遠程桌面繪圖命令包括從遠程計算機的遠程桌面服務器所接收到的遠程桌面繪圖命令參數(shù)和位圖數(shù)據(jù);
[0247]其中用于所述轉譯的裝置包括下述的一個或多個:
[0248]用于基于遠程桌面的繪圖命令參數(shù)來計算新的繪圖命令參數(shù)的裝置;
[0249]用于調(diào)整遠程桌面繪圖命令的參數(shù)的裝置;以及
[0250]對位圖數(shù)據(jù)進行調(diào)整的裝置。
[0251]30.根據(jù)第22條所述的設備,其中遠程桌面繪圖命令包括從遠程計算機的遠程桌面服務器所接收到的遠程桌面繪圖命令參數(shù)和位圖數(shù)據(jù);
[0252]其中用于所述轉譯的裝置包括對遠程計算機位圖數(shù)據(jù)進行調(diào)整的裝置;
[0253]其中用于進行調(diào)整的裝置包括用于將16位的紅-綠-藍(RGB)5-6_5的色彩格式轉換成32位的α -紅-綠-藍(ARGB) 8-8-8-8的格式的裝置。
[0254]31.根據(jù)第22條所述的設備,其中編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。
[0255]32.根據(jù)第22條所述的設備,其中所述設備包括編碼裝換服務器。
[0256]33.根據(jù)第22條所述的設備,其中所述設備包括處理系統(tǒng)和存儲器。[0257]下面示出用于經(jīng)由編碼轉換服務器和利用支持二維(2D)畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的方法/設備/機器可讀存儲介質(作為條款描述)。
[0258]例如根據(jù)以下描述的各個方面來說明本發(fā)明主題的技術。為了簡便,使用編號的條款(1,2,3等等)來描述本發(fā)明主題技術的各個方面的各個實例。這些方面是作為實例來提供的且對本發(fā)明主題的技術并沒有限制作用。下面的第I條例如參照附圖11A-11C呈現(xiàn)。應當指出,任何從屬條款可以任何組合相結合,并放置到相應的獨立條款中,例如,第1、11、和22條。其它條款可以類似的方式來呈現(xiàn)。
[0259]1.經(jīng)由編碼轉換服務器(例如參見330)和利用支持二維(2D)畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備(例如參見圖3A中的310)的網(wǎng)頁瀏覽器和遠程計算機(例如,參見320)之間進行遠程桌面會話的方法(例如見參見圖1lA的方法1100-A),所述方法包括:
[0260]在編碼轉換服務器處從客戶端設備處的網(wǎng)頁瀏覽器接收用戶輸入請求以便訪問和控制遠程計算機,其中網(wǎng)頁瀏覽器支持二維畫布和動態(tài)繪圖(例如,參見圖1lA中的第1102-A 項);
[0261]在編碼轉換服務器處將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,以便由編碼轉換服務器用來促進與遠程計算機的通信(例如參見圖1lA中的第1104-A項);
[0262]在編碼轉換服務器處響應于輸入命令從遠程計算機接收遠程桌面繪圖命令(例如參見圖1lA中的第1106-A項);
[0263]在編碼轉換服務器處將遠程桌面繪圖命令轉譯成與超文本標記語言兼容的繪圖更新(例如參見圖1lA中的第1108-A項);以及
[0264]促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器(例如參見圖1lA中的第1110-A 項);
[0265]其中編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。
[0266]2.根據(jù)第I條所述的方法,其中轉譯遠程桌面繪圖命令包括:
[0267]將遠程桌面繪圖命令轉譯成Java圖形繪制命令;
[0268]執(zhí)行Java圖形繪制命令來更新Java位圖的一部分,其中Java位圖代表遠程計算機遠程桌面的整個圖像;
[0269]基于Java圖形繪制命令生成適于Java位圖的經(jīng)過更新部分的坐標;
[0270]基于Java位圖的經(jīng)過更新的部分形成圖像文件,其中所述圖像文件與HTML5兼容;以及
[0271]基于適于Java位圖的經(jīng)過更新的部分的坐標獲取適于圖像文件的繪圖坐標,其中所述繪圖坐標與HTML5兼容;
[0272]其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標;
[0273]其中繪圖的更新代表遠程桌面整個圖像的一部分;
[0274]其中在遠程桌面會話期間網(wǎng)頁瀏覽器瞬時包括JavaScript客戶端編碼,同時遠程桌面會話繼續(xù);[0275]其中所述方法進一步包括在編碼轉換服務器處從網(wǎng)頁瀏覽器的JavaScript客戶端編碼接收繪圖請求;
[0276]其中促進提供繪圖更新包括響應于來自網(wǎng)頁瀏覽器的JavaScript客戶端編碼的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的JavaScript客戶端編碼。
[0277]3.根據(jù)第I條所述的方法,其中轉譯遠程桌面繪圖命令包括:
[0278]將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令;
[0279]基于圖形繪制命令來更新Java位圖的一部分,其中Java位圖的經(jīng)過更新的一部分代表遠程計算機遠程桌面整個圖像的相對于前一圖形繪制命令已經(jīng)改變的一部分;
[0280]生成適于Java位圖的經(jīng)過更新部分的坐標;
[0281]基于位圖的經(jīng)過更新的部分形成圖像文件,其中所述圖像文件與HTML5兼容;以及
[0282]獲取適于圖像文件的繪圖坐標,其中所述繪圖坐標與HTML5兼容;
[0283]其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標;
[0284]其中所述方法進一步包括在編碼轉換服務器處從網(wǎng)頁瀏覽器接收繪圖請求;
[0285]其中促進提供繪圖更新包括響應于來自網(wǎng)頁瀏覽器的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器。
[0286]4.根據(jù)第I條所述的方法,其中所述編碼轉換服務器包括遠程桌面客戶端適配器,其配置成將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,并將遠程桌面繪圖命令轉譯成圖形繪制命令。
[0287]5.根據(jù)第I條所述的方法,還包括從網(wǎng)頁瀏覽器接收長輪詢HTTP請求,其中長輪詢HTTP請求包括繪圖請求。
[0288]6.根據(jù)第I條所述的方法,還包括從網(wǎng)頁瀏覽器接收包括遠程計算機的統(tǒng)一資源定位符(URL)的初始HTTP請求。
[0289]7.根據(jù)第6條所述的方法,還包括響應于適于遠程計算機URL的初始HTTP請求促進將腳本客戶端編碼提供到網(wǎng)頁瀏覽器,其中所述腳本客戶端編碼與HTML5兼容。
[0290]8.根據(jù)第I條所述的方法,其中所述遠程桌面繪圖命令與遠程桌面顯示協(xié)議是兼容的,其中所述遠程桌面顯示協(xié)議為推式協(xié)議,以及其中促進提供繪圖更新包括利用為拉式協(xié)議的HTTP促進提供繪圖更新。
[0291]9.根據(jù)第I條所述的方法,其中動態(tài)繪圖包括響應于網(wǎng)頁瀏覽器腳本客戶端的一個或多個繪圖請求實時地繪制2D畫布的一部分,而不是繪制整個2D畫布。
[0292]10.根據(jù)第I條所述的方法,其中所述2D畫布在同一時間根據(jù)一組坐標來進行部分更新。
[0293]11.一種機器可讀存儲介質(例如參見圖8中的810,819),其編碼有指令,所述指令可由處理系統(tǒng)(例如參見802)來執(zhí)行,以便執(zhí)行經(jīng)由編碼轉換服務器(例如參見330)和利用支持二維(2D)畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備(例如參見圖3A中的310)的網(wǎng)頁瀏覽器和遠程計算機(例如,參見320)之間進行遠程桌面會話的方法,所述指令包括適于下述的編碼:
[0294]在編碼轉換服務器處從客戶端設備處的網(wǎng)頁瀏覽器接收用戶輸入請求以便訪問和控制遠程計算機,其中網(wǎng)頁瀏覽器支持二維畫布和動態(tài)繪圖(例如,參見圖1lB中的第1102-B 項);
[0295]在編碼轉換服務器處將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,以便由編碼轉換服務器用來促進與遠程計算機的通信(例如參見圖1lB中的第1104-B項);
[0296]在編碼轉換服務器處響應于輸入命令從遠程計算機接收遠程桌面繪圖命令(例如參見圖1lB中的第1106-B項);
[0297]在編碼轉換服務器處將遠程桌面繪圖命令轉譯成與超文本標記語言兼容的繪圖更新(例如參見圖1lB中的第1108-B項);以及
[0298]促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器(例如參見圖1lB中的第1110-B 項);
[0299]其中編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。
[0300]12.根據(jù)第11條所述的機器可讀存儲介質,其中轉譯遠程桌面繪圖命令包括:
[0301]將遠程桌面繪圖命令轉譯成Java圖形繪制命令;
[0302]執(zhí)行Java圖形繪制命令來更新Java位圖的一部分,其中Java位圖代表遠程計算機遠程桌面的整個圖像;
[0303]基于Java圖形繪制命令生成適于Java位圖的經(jīng)過更新部分的坐標;
[0304]基于Java位圖的經(jīng)過更新的部分形成圖像文件,其中所述圖像文件與HTML5兼容;以及
[0305]基于適于Java位圖的經(jīng)過更新的部分的坐標獲取適于圖像文件的繪圖坐標,其中所述繪圖坐標與HTML5兼容;
[0306]其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標;
[0307]其中繪圖的更新代表遠程桌面整個圖像的一部分;
[0308]其中在遠程桌面會話期間網(wǎng)頁瀏覽器瞬時包括JavaScript客戶端編碼,同時遠程桌面會話繼續(xù);
[0309]其中所述方法進一步包括在編碼轉換服務器處從網(wǎng)頁瀏覽器的JavaScript客戶端編碼接收繪圖請求;
[0310]其中促進提供繪圖更新包括響應于來自網(wǎng)頁瀏覽器的JavaScript客戶端編碼的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的JavaScript客戶端編碼。
[0311]13.根據(jù)第11條所述的機器可讀存儲介質,其中轉譯遠程桌面繪圖命令包括:
[0312]將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令;
[0313]基于圖形繪制命令來更新Java位圖的一部分,其中Java位圖的經(jīng)過更新的一部分代表遠程計算機遠程桌面整個圖像的相對于前一圖形繪制命令已經(jīng)改變的一部分;
[0314]生成適于Java位圖的經(jīng)過更新部分的坐標;
[0315]基于位圖的經(jīng)過更新的部分形成圖像文件,其中所述圖像文件與HTML5兼容;以及
[0316]獲取適于圖像文件的繪圖坐標,其中所述繪圖坐標與HTML5兼容;[0317]其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標;
[0318]其中所述方法進一步包括在編碼轉換服務器處從網(wǎng)頁瀏覽器接收繪圖請求;以及
[0319]其中促進提供繪圖更新包括響應于來自網(wǎng)頁瀏覽器的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器。
[0320]14.根據(jù)第11條所述的機器可讀存儲介質,其中所述編碼轉換服務器包括遠程桌面客戶端適配器,其配置成將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,并將遠程桌面繪圖命令轉譯成圖形繪制命令。
[0321]15.根據(jù)第11條所述的機器可讀存儲介質,還包括從網(wǎng)頁瀏覽器接收長輪詢HTTP請求,其中長輪詢HTTP請求包括繪圖請求。
[0322]16.根據(jù)第11條所述的機器可讀存儲介質,還包括用于從網(wǎng)頁瀏覽器接收包括遠程計算機的統(tǒng)一資源定位符(URL)的初始HTTP請求的編碼。
[0323]17.根據(jù)第16條所述的機器可讀存儲介質,還包括用于響應于適于遠程計算機URL的初始HTTP請求促進將腳本客戶端編碼提供到網(wǎng)頁瀏覽器的編碼,其中所述腳本客戶端編碼與HTML5兼容。
[0324]18.根據(jù)第11條所述的機器可讀存儲介質,其中所述遠程桌面繪圖命令與遠程桌面顯示協(xié)議是兼容的,其中所述遠程桌面顯示協(xié)議為推式協(xié)議,以及其中促進提供繪圖更新包括利用為拉式協(xié)議的HTTP促進提供繪圖更新。
[0325]19.根據(jù)第11條所述的機器可讀存儲介質,其中動態(tài)繪圖包括響應于網(wǎng)頁瀏覽器腳本客戶端的一個或多個繪圖請求實時地繪制2D畫布的一部分,而不是繪制整個2D畫布。
[0326]20.根據(jù)第11條所述的機器可讀存儲介質,其中所述2D畫布在同一時間根據(jù)一組坐標來進行部分更新。
[0327]21.包括第11條所述機器可讀存儲介質的一種計算機,其中所述計算機是編碼轉換服務器。
[0328]22.一種用于經(jīng)由編碼轉換服務器(例如參見330)和利用支持二維(2D)畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備(例如參見圖3A中的310)的網(wǎng)頁瀏覽器和遠程計算機(例如,參見320)之間進行遠程桌面會話的設備(例如,參見圖1lC中的第1100-C項),所述設備包括:
[0329]用于從客戶端設備處的網(wǎng)頁瀏覽器接收用戶輸入請求以便訪問和控制遠程計算機的裝置,其中網(wǎng)頁瀏覽器支持二維畫布和動態(tài)繪圖(例如,參見圖1ic中的第1102-C項);
[0330]用于將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令的裝置,以便由編碼轉換服務器用來促進與遠程計算機的通信(例如參見圖1lC中的第1104-C項);
[0331]用于響應于輸入命令從遠程計算機接收遠程桌面繪圖命令的裝置(例如參見圖1lC中的第1106-C項);
[0332]用于將遠程桌面繪圖命令轉譯成與超文本標記語言兼容的繪圖更新的裝置(例如參見圖1lC中的第1108-C項);以及
[0333]用于促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的裝置(例如參見圖1lC中的第IllO-C項);
[0334]其中編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。[0335]23.根據(jù)第22條所述的設備,其中用于轉譯遠程桌面繪圖命令的裝置包括:
[0336]用于將遠程桌面繪圖命令轉譯成Java圖形繪制命令的裝置;
[0337]用于執(zhí)行Java圖形繪制命令來更新Java位圖的一部分的裝置,其中Java位圖代表遠程計算機遠程桌面的整個圖像;
[0338]用于基于Java圖形繪制命令生成適于Java位圖的經(jīng)過更新部分的坐標的裝置;
[0339]用于基于Java位圖的經(jīng)過更新的部分形成圖像文件的裝置,其中所述圖像文件與HTML5兼容;以及
[0340]用于基于適于Java位圖的經(jīng)過更新的部分的坐標獲取適于圖像文件的繪圖坐標的裝置,其中所述繪圖坐標與HTML5兼容;
[0341]其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標;
[0342]其中繪圖的更新代表遠程桌面整個圖像的一部分;
[0343]其中在遠程桌面會話期間網(wǎng)頁瀏覽器瞬時包括JavaScript客戶端編碼,同時遠程桌面會話繼續(xù);
[0344]其中所述設備進一步包括用于從網(wǎng)頁瀏覽器的JavaScript客戶端編碼接收繪圖請求的裝置;
[0345]其中用于促進提供繪圖更新的裝置包括用于響應于來自網(wǎng)頁瀏覽器的JavaScript客戶端編碼的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的JavaScript客戶端編碼的裝置。
[0346]24.根據(jù)第22條所述的設備,其中用于轉譯遠程桌面繪圖命令的裝置包括:
[0347]用于將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令的裝置;
[0348]用于基于圖形繪制命令來更新Java位圖的一部分的裝置,其中Java位圖的經(jīng)過更新的一部分代表遠程計算機遠程桌面整個圖像的相對于前一圖形繪制命令已經(jīng)改變的一部分;
[0349]用于生成適于Java位圖的經(jīng)過更新部分的坐標的裝置;
[0350]用于基于位圖的經(jīng)過更新的部分形成圖像文件的裝置,其中所述圖像文件與HTML5兼容;以及
[0351]用于獲取適于圖像文件的繪圖坐標的裝置,其中所述繪圖坐標與HTML5兼容;
[0352]其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標;
[0353]其中所述設備進一步包括用于從網(wǎng)頁瀏覽器接收繪圖請求的裝置;以及
[0354]其中用于促進提供繪圖更新的裝置包括用于響應于來自網(wǎng)頁瀏覽器的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的裝置。
[0355]25.根據(jù)第22條所述的設備,其中所述編碼轉換服務器包括遠程桌面客戶端適配器,其配置成將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,并將遠程桌面繪圖命令轉譯成圖形繪制命令。
[0356]26.根據(jù)第22條所述的設備,還包括用于從網(wǎng)頁瀏覽器接收長輪詢HTTP請求的裝置,其中長輪詢HTTP請求包括繪圖請求。
[0357]27.根據(jù)第22條所述的設備,還包括用于從網(wǎng)頁瀏覽器接收包括遠程計算機的統(tǒng)一資源定位符(URL)的初始HTTP請求的裝置。[0358]28.根據(jù)第27條所述的設備,還包括用于響應于適于遠程計算機URL的初始HTTP請求促進將腳本客戶端編碼提供到網(wǎng)頁瀏覽器的裝置,其中所述腳本客戶端編碼與HTML5兼容。
[0359]29.根據(jù)第22條所述的設備,其中所述遠程桌面繪圖命令與遠程桌面顯示協(xié)議是兼容的,其中所述遠程桌面顯示協(xié)議為推式協(xié)議,以及其中用于促進提供繪圖更新的裝置包括用于利用為拉式協(xié)議的HTTP促進提供繪圖更新的裝置。
[0360]30.根據(jù)第22條所述的設備,其中動態(tài)繪圖包括響應于網(wǎng)頁瀏覽器腳本客戶端的一個或多個繪圖請求實時地繪制2D畫布的一部分,而不是繪制整個2D畫布。
[0361]31.根據(jù)第22條所述的設備,其中所述2D畫布在同一時間根據(jù)一組坐標來進行部分更新。
[0362]32.根據(jù)第22條所述的設備,其中所述設備包括編碼轉換服務器。
[0363]33.根據(jù)第22條所述的設備,其中所述設備包括處理系統(tǒng)和存儲器。
[0364]下面示出用于經(jīng)由編碼轉換服務器和利用適于遠程桌面會話繪圖的HTTP的超文本傳輸協(xié)議(HTTP)標頭促進在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的方法/設備/機器可讀存儲介質(作為條款描述)。
[0365]例如根據(jù)以下描述的各個方面來說明本發(fā)明主題的技術。為了簡便,使用編號的條款(1,2,3等等)來描述本發(fā)明主題技術的各個方面的各個實例。這些方面是作為實例來提供的且對本發(fā)明主題的技術并沒有限制作用。應當指出,任何從屬條款可以任何組合相結合,并放置到相應的獨立條款中,例如,第1、11、和22條。下面的第I條例如參照附圖12A-12C呈現(xiàn)。其它條款可以類似的方式來呈現(xiàn)。
[0366]1.經(jīng)由編碼轉換服務器(例如參見330)和利用適于遠程桌面會話繪圖的HTTP的超文本傳輸協(xié)議(HTTP)標頭促進在客戶端設備(例如參見圖3A中的310)的網(wǎng)頁瀏覽器和遠程計算機(例如參見320)之間進行遠程桌面會話的方法(例如參見圖12A中的第1200-A項),所述方法包括:
[0367]在編碼轉換服務器處從客戶端設備處的網(wǎng)頁瀏覽器接收繪圖請求(例如參見圖12A中的第1202-A項);
[0368]在編碼轉換服務器處利用遠程桌面顯示協(xié)議從遠程計算機接收遠程桌面繪圖命令,其中遠程桌面繪圖命令基于遠程計算機遠程桌面的圖像(例如參見圖12A中的第1204-A 項);
[0369]在編碼轉換服務器處將遠程桌面繪圖命令轉譯成顯示圖像和適于顯示圖像的繪圖坐標(例如參見圖12A中的第1206-A項);
[0370]在編碼轉換服務器處將繪圖坐標放置到HTTP響應標頭內(nèi)(例如參見圖12A中的第1208-A項);以及
[0371]響應于繪制請求中的至少一個,促進以單次HTTP響應將顯示圖像和繪圖坐標一起提供到網(wǎng)頁瀏覽器,以便在網(wǎng)頁瀏覽器處繪制遠程桌面的顯示圖像,其中單次HTTP響應包括HTTP標頭響應(例如參見圖12A中的第1210-A項);
[0372]其中所述遠程桌面顯示協(xié)議為推式協(xié)議;以及
[0373]其中所述HTTP為拉式協(xié)議。
[0374]2.根據(jù)第I條所述的方法,其中所述轉譯包括:[0375]將遠程桌面繪圖命令轉譯成Java圖形繪制命令,其中所述編碼轉換服務器包括Java可兼容的網(wǎng)絡應用程序服務器;
[0376]響應于Java圖形繪制命令更新遠程桌面Java圖形位圖的一部分;
[0377]從Java圖形繪制命令生成適于Java位圖的經(jīng)過更新部分的坐標;
[0378]基于Java位圖經(jīng)過更新的部分生成與網(wǎng)頁瀏覽器兼容的顯示圖像;以及
[0379]基于適于Java位圖的經(jīng)過更新部分的坐標獲取適于顯示圖像的繪圖坐標;
[0380]其中所述顯示圖像和繪圖坐標與HTML兼容;
[0381]其中Java圖形位圖的經(jīng)過更新的部分代表遠程計算機遠程桌面整個圖像的一部分;
[0382]其中所述顯示圖像和繪圖坐標代表遠程計算機遠程桌面整個圖像的一部分。
[0383]3.根據(jù)第I條所述的方法,其中所述轉譯包括:
[0384]將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令;
[0385]基于圖形繪制命令更新遠程桌面位圖的一部分;
[0386]生成適于位圖經(jīng)過更新部分的坐標;
[0387]基于位圖的經(jīng)過更新的部分生成與網(wǎng)頁瀏覽器兼容的顯示圖像;
[0388]獲取適于顯示圖像的繪圖坐標;
[0389]其中所述顯示圖像和繪圖坐標與HTML兼容。
[0390]4.根據(jù)第I條所述的方法,其中所述顯示圖像和繪圖坐標與HTML5兼容。
[0391]5.根據(jù)第I條所述的方法,其中編碼轉換服務器介于遠程計算機和客戶端設備之間,其中編碼轉換服務器在物理上獨立于遠程計算機。
[0392]6.根據(jù)第I條所述的方法,其中所述遠程桌面繪圖命令包括相對于前一遠程桌面繪圖命令已經(jīng)改變的遠程桌面區(qū)域的坐標。
[0393]7.根據(jù)第6條所述的方法,其中所述坐標指定重新繪制區(qū)域。
[0394]8.根據(jù)第I條所述的方法,其中所述繪圖坐標與網(wǎng)頁瀏覽器的JavaScript客戶端編碼是兼容的,以及其中所述顯示圖像與網(wǎng)頁瀏覽器的HTML兼容。
[0395]9.根據(jù)第I條所述的方法,其中所述顯示圖像包括遠程桌面的縮放圖像。
[0396]10.根據(jù)第I條所述的方法,其中所述顯示圖像包括遠程桌面的偏移圖像。
[0397]11.一種機器可讀存儲介質(例如參見圖8中的810,819),其編碼有指令,所述指令可由處理系統(tǒng)(例如參見802)來執(zhí)行,以便執(zhí)行經(jīng)由編碼轉換服務器(例如參見330)和利用適于遠程桌面會話繪圖的HTTP的超文本傳輸協(xié)議(HTTP)標頭促進在客戶端設備(例如參見圖3A中的310)的網(wǎng)頁瀏覽器和遠程計算機(例如參見320)之間進行遠程桌面會話的方法,所述指令包括適于下述的編碼:
[0398]在編碼轉換服務器處從客戶端設備處的網(wǎng)頁瀏覽器接收繪圖請求(例如參見圖12B中的第1202-B項);
[0399]在編碼轉換服務器處利用遠程桌面顯示協(xié)議從遠程計算機接收遠程桌面繪圖命令,其中遠程桌面繪圖命令基于遠程計算機遠程桌面的圖像(例如參見圖12B中的第1204-B 項);
[0400]在編碼轉換服務器處將遠程桌面繪圖命令轉譯成顯示圖像和適于顯示圖像的繪圖坐標(例如參見圖12B中的第1206-B項);[0401]在編碼轉換服務器處將繪圖坐標放置到HTTP響應標頭內(nèi)(例如參見圖12B中的第1208-B項);以及
[0402]響應于繪制請求中的至少一個,促進以單次HTTP響應將顯示圖像和繪圖坐標一起提供到網(wǎng)頁瀏覽器,以便在網(wǎng)頁瀏覽器處繪制遠程桌面的顯示圖像,其中單次HTTP響應包括HTTP標頭響應(例如參見圖12B中的第1210-B項);
[0403]其中所述遠程桌面顯示協(xié)議為推式協(xié)議;以及
[0404]其中所述HTTP為拉式協(xié)議。
[0405]12.根據(jù)第11條所述的機器可讀存儲介質,其中所述轉譯包括:
[0406]將遠程桌面繪圖命令轉譯成Java圖形繪制命令,其中所述編碼轉換服務器包括Java可兼容的網(wǎng)絡應用程序服務器;
[0407]響應于Java圖形繪制命令更新遠程桌面Java圖形位圖的一部分;
[0408]從Java圖形繪制命令生成適于Java位圖的經(jīng)過更新部分的坐標;
[0409]基于Java位圖經(jīng)過更新的部分生成與網(wǎng)頁瀏覽器兼容的顯示圖像;以及
[0410]基于適于Java位圖的經(jīng)過更新部分的坐標獲取適于顯示圖像的繪圖坐標;
[0411]其中所述顯示圖像和繪圖坐標與HTML兼容;
[0412]其中Java圖形位圖的經(jīng)過更新的部分代表遠程計算機遠程桌面整個圖像的一部分;
[0413]其中所述顯示圖像和繪圖坐標代表遠程計算機遠程桌面整個圖像的一部分。
[0414]13.根據(jù)第11條所述的機器可讀存儲介質,其中所述轉譯包括:
[0415]將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令;
[0416]基于圖形繪制命令更新遠程桌面位圖的一部分;
[0417]生成適于位圖經(jīng)過更新部分的坐標;
[0418]基于位圖的經(jīng)過更新的部分生成與網(wǎng)頁瀏覽器兼容的顯示圖像;
[0419]獲取適于顯示圖像的繪圖坐標;
[0420]其中所述顯示圖像和繪圖坐標與HTML兼容。
[0421]14.根據(jù)第11條所述的機器可讀存儲介質,其中所述顯示圖像和繪圖坐標與HTML5兼容。
[0422]15.根據(jù)第11條所述的機器可讀存儲介質,其中編碼轉換服務器介于遠程計算機和客戶端設備之間,其中編碼轉換服務器在物理上獨立于遠程計算機。
[0423]16.根據(jù)第11條所述的機器可讀存儲介質,其中所述遠程桌面繪圖命令包括相對于前一遠程桌面繪圖命令已經(jīng)改變的遠程桌面區(qū)域的坐標。
[0424]17.根據(jù)第16條所述的機器可讀存儲介質,其中所述坐標指定重新繪制區(qū)域。
[0425]18.根據(jù)第11條所述的機器可讀存儲介質,其中所述繪圖坐標與網(wǎng)頁瀏覽器的JavaScript客戶端編碼是兼容的,以及其中所述顯示圖像與網(wǎng)頁瀏覽器的HTML兼容。
[0426]19.根據(jù)第11條所述的機器可讀存儲介質,其中所述顯示圖像包括遠程桌面的縮放圖像。
[0427]20.根據(jù)第11條所述的機器可讀存儲介質,其中所述顯示圖像包括遠程桌面的偏移圖像。
[0428]21.包括第11條所述機器可讀存儲介質的一種計算機,其中所述計算機是編碼轉換服務器。
[0429]22.用于經(jīng)由編碼轉換服務器(例如參見330)和利用適于遠程桌面會話繪圖的HTTP的超文本傳輸協(xié)議(HTTP)標頭促進在客戶端設備(例如參見圖3A中的310)的網(wǎng)頁瀏覽器和遠程計算機(例如參見320)之間進行遠程桌面會話的設備(例如,參見圖12C中的第1200-C項),所述設備包括:
[0430]用于從客戶端設備處的網(wǎng)頁瀏覽器接收繪圖請求的裝置(例如參見圖12C中的第1202-C 項);
[0431]用于利用遠程桌面顯示協(xié)議從遠程計算機接收遠程桌面繪圖命令的裝置,其中遠程桌面繪圖命令基于遠程計算機遠程桌面的圖像(例如參見圖12C中的第1204-C項);
[0432]用于將遠程桌面繪圖命令轉譯成顯示圖像和適于顯示圖像的繪圖坐標的裝置(例如參見圖12C中的第1206-C項);
[0433]用于將繪圖坐標放置到HTTP響應標頭內(nèi)的裝置(例如參見圖12C中的第1208-C項);以及
[0434]響應于繪制請求中的至少一個,用于促進以單次HTTP響應將顯示圖像和繪圖坐標一起提供到網(wǎng)頁瀏覽器的裝置,以便在網(wǎng)頁瀏覽器處繪制遠程桌面的顯示圖像,其中單次HTTP響應包括HTTP標頭響應(例如參見圖12C中的第1210-C項);
[0435]其中所述遠程桌面顯示協(xié)議為推式協(xié)議;以及
[0436]其中所述HTTP為拉式協(xié)議。
[0437]23.根據(jù)第22條所述的設備,其中用于所述轉譯的裝置包括:
[0438]用于將遠程桌面繪圖命令轉譯成Java圖形繪制命令的裝置,其中所述編碼轉換服務器包括Java可兼容的網(wǎng)絡應用程序服務器;
[0439]用于響應于Java圖形繪制命令更新遠程桌面Java圖形位圖的一部分的裝置;
[0440]用于從Java圖形繪制命令生成適于Java位圖的經(jīng)過更新部分的坐標的裝置;
[0441]用于基于Java位圖經(jīng)過更新的部分生成與網(wǎng)頁瀏覽器兼容的顯示圖像的裝置;以及
[0442]用于基于適于Java位圖的經(jīng)過更新部分的坐標獲取適于顯示圖像的繪圖坐標的
裝置;
[0443]其中所述顯示圖像和繪圖坐標與HTML兼容;
[0444]其中Java圖形位圖的經(jīng)過更新的部分代表遠程計算機遠程桌面整個圖像的一部分;
[0445]其中所述顯示圖像和繪圖坐標代表遠程計算機遠程桌面整個圖像的一部分。
[0446]24.根據(jù)第22條所述的設備,其中用于所述轉譯的裝置包括:
[0447]用于將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令的裝置;
[0448]用于基于圖形繪制命令更新遠程桌面位圖的一部分的裝置;
[0449]用于生成適于位圖經(jīng)過更新部分的坐標的裝置;
[0450]用于基于位圖的經(jīng)過更新的部分生成與網(wǎng)頁瀏覽器兼容的顯示圖像的裝置;以及
[0451]用于獲取適于顯示圖像的繪圖坐標的裝置;
[0452]其中所述顯示圖像和繪圖坐標與HTML兼容。[0453]25.根據(jù)第22條所述的設備,其中所述顯示圖像和繪圖坐標與HTML5兼容。
[0454]26.根據(jù)第22條所述的設備,其中編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。
[0455]27.根據(jù)第22條所述的設備,其中所述遠程桌面繪圖命令包括相對于前一遠程桌面繪圖命令已經(jīng)改變的遠程桌面區(qū)域的坐標。
[0456]28.根據(jù)第27條所述的設備,其中所述坐標指定重新繪制區(qū)域。
[0457]29.根據(jù)第22條所述的設備,其中所述繪圖坐標與網(wǎng)頁瀏覽器的JavaScript客戶端編碼是兼容的,以及其中所述顯示圖像與網(wǎng)頁瀏覽器的HTML兼容。
[0458]30.根據(jù)第22條所述的設備,其中所述顯示圖像包括遠程桌面的縮放圖像。
[0459]31.根據(jù)第22條所述的設備,其中所述顯示圖像包括遠程桌面的偏移圖像。
[0460]32.根據(jù)第22條所述的設備,其中所述設備包括編碼轉換服務器。
[0461]33.根據(jù)第22條所述的設備,其中所述設備包括處理系統(tǒng)和存儲器。
[0462]下面示出用于經(jīng)由編碼轉換服務器和利用用于減少到客戶端設備流量的長輪詢來促進在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的方法/設備/機器可讀存儲介質(作為條款描述)。
[0463]例如根據(jù)以下描述的各個方面來說明本發(fā)明主題的技術。為了簡便,使用編號的條款(1,2,3等等)來描述本發(fā)明主題技術的各個方面的各個實例。這些方面是作為實例來提供的且對本發(fā)明主題的技術并沒有限制作用。應當指出,任何從屬條款可以任何組合相結合,并放置到相應的獨立條款中,例如,第1、11、和22條。下面的第I條例如參照附圖13A-13C呈現(xiàn)。其它條款可以類似的方式來呈現(xiàn)。
[0464]1.經(jīng)由編碼轉換服務器(例如參見圖3A中的330)和用于減少到客戶端設備流量的長輪詢來促進在客戶端設備(例如參見圖3A中的310)的網(wǎng)頁瀏覽器(例如參見圖5中的500)和遠程計算機(例如參見圖3A中的320)之間進行遠程桌面會話的方法(例如參見圖13A中的第1300-A項),所述方法包括:
[0465]在編碼轉換服務器處利用HTTP從網(wǎng)頁瀏覽器接收多個繪圖請求,其中HTTP是拉式協(xié)議(例如參見圖13A中的第1302-A項);
[0466]在編碼轉換服務器處處理作為長輪詢請求的多個繪圖請求(例如參見圖13A中的第 1304-A 項);
[0467]在編碼轉換服務器處從遠程計算機接收遠程桌面繪圖命令(例如參見圖13A中的第 1306-A 項);
[0468]在編碼轉換服務器處將遠程桌面繪圖命令轉譯成網(wǎng)頁瀏覽器繪圖更新,其中遠程桌面繪圖命令與推式協(xié)議兼容,其中網(wǎng)頁瀏覽器繪圖更新與HTTP兼容,其中HTTP是拉式協(xié)議(例如參見圖13A中的第1308-A項);以及
[0469]作為對來自網(wǎng)頁瀏覽器的多個繪圖請求中至少一個的響應,促進利用HTTP將網(wǎng)頁瀏覽器繪圖更新從編碼轉換服務器提供到客戶端設備的網(wǎng)頁瀏覽器(例如參見圖13A中的第1310-A項)。
[0470]2.根據(jù)第I條所述的方法,其中所述處理包括:
[0471]對于網(wǎng)頁瀏覽器而言,確定繪圖命令是否在編碼轉換服務器處等待處理;
[0472]如果不存在等待處理的繪圖命令,則將多個繪圖請求作為長輪詢請求存儲于繪圖請求隊列中;以及
[0473]如果存在等待處理的繪圖命令,則將多個繪圖請求中的至少一個提供到編碼轉換服務器中的HTTP處理器以便允許HTTP處理器響應于多個繪圖請求中的至少一個來服務于等待處理的繪圖命令。
[0474]3.根據(jù)第I條所述的方法,其中遠程桌面繪圖命令代表遠程計算機遠程桌面整個圖像的一部分;
[0475]其中所述轉譯包括:
[0476]將遠程桌面繪圖命令轉譯成Java圖形繪制命令;
[0477]響應于Java圖形繪制命令更新遠程桌面整個圖像的Java位圖的一部分;
[0478]基于Java圖形繪制命令生成Java位圖的經(jīng)過更新部分的坐標;
[0479]基于Java位圖的經(jīng)過更新的部分生成圖像文件,其中所述圖像文件與網(wǎng)頁瀏覽器是兼容的;以及
[0480]基于Java位圖的經(jīng)過更新部分的坐標獲取適于圖像文件的繪圖坐標;
[0481]其中網(wǎng)頁瀏覽器繪圖更新包括圖像文件和繪圖坐標。
[0482]4.根據(jù)第3條所述的方法,其中所述處理包括:
[0483]對于網(wǎng)頁瀏覽器而言,確定繪圖命令是否在編碼轉換服務器處等待處理;
[0484]如果不存在等待處理的繪圖命令,則將多個繪圖請求作為長輪詢請求存儲于繪圖請求隊列中;以及
[0485]如果存在等待處理的繪圖命令,則將多個繪圖請求中的至少一個提供到編碼轉換服務器中的HTTP處理器以便允許HTTP處理器響應于多個繪圖請求中的至少一個來服務于等待處理的繪圖命令。
[0486]5.根據(jù)第4條所述的方法,其中所述促進提供包括:
[0487]在HTTP處理器處將繪圖坐標放置到響應于網(wǎng)頁瀏覽器的單次HTTP傳輸?shù)腍TTP標頭內(nèi);
[0488]在HTTP處理器處將圖像文件包括到響應于網(wǎng)頁瀏覽器的單次HTTP傳輸內(nèi),以便促進在單次HTTP傳輸響應中將圖像文件和繪圖坐標一起提供到網(wǎng)頁瀏覽器。
[0489]6.根據(jù)第5條所述的方法,進一步包括:
[0490]當繪圖命令隊列具有新的坐標時,發(fā)送通知到繪圖請求隊列以便允許在繪圖請求隊列中的多個繪圖請求中的至少一個轉發(fā)到HTTP處理器。
[0491]7.根據(jù)第I條所述的方法,進一步包括:
[0492]響應于作為對來自網(wǎng)頁瀏覽器的多個繪圖請求中至少一個的響應,促進將網(wǎng)頁瀏覽器繪圖更新從編碼轉換服務器提供到客戶端設備的網(wǎng)頁瀏覽器而從網(wǎng)頁瀏覽器接收新的繪圖請求。
[0493]8.根據(jù)第I條所述的方法,進一步包括:
[0494]從網(wǎng)頁瀏覽器接收要連接到遠程計算機的請求;
[0495]響應于要連接到遠程計算機的請求促進將JavaScript客戶端編碼提供到網(wǎng)頁瀏
兄器;
[0496]其中接收多個繪圖請求包括從JavaScript客戶端編碼接收多個繪圖請求;
[0497]其中促進將網(wǎng)頁瀏覽器繪圖更新提供到客戶端設備的網(wǎng)頁瀏覽器包括促進將網(wǎng)頁瀏覽器繪圖更新提供到JavaScript客戶端編碼。
[0498]9.根據(jù)第8條所述的方法,還包括當遠程桌面會話終止時促進將JavaScript客戶端編碼從網(wǎng)頁瀏覽器刪除。
[0499]10.根據(jù)第I條所述的方法,進一步包括:
[0500]在編碼轉換服務器處從網(wǎng)頁瀏覽器接收用戶輸入請求,以便訪問或控制遠程計算機的遠程桌面;
[0501]在編碼轉換服務器處將用戶輸入請求轉譯成與推式協(xié)議兼容的輸入命令;
[0502]利用推式協(xié)議促進將輸入命令提供到遠程計算機;
[0503]其中接收遠程桌面繪圖命令包括響應于輸入命令接收遠程桌面繪圖命令。
[0504]11.一種機器可讀存儲介質(例如參見圖13B中的第1300-B項),其編碼有指令,所述指令可由處理器執(zhí)行以便執(zhí)行經(jīng)由編碼轉換服務器(例如參見圖3B中的330)和用于減少到客戶端設備流量的長輪詢來促進在客戶端設備(例如參見圖3A中的310)的網(wǎng)頁瀏覽器(例如參見圖5中的500)和遠程計算機(例如參見圖3B中的320)之間進行遠程桌面會話的方法,所述指令包括適于下述的編碼:
[0505]在編碼轉換服務器處利用HTTP從網(wǎng)頁瀏覽器接收多個繪圖請求,其中HTTP是拉式協(xié)議(例如參見圖13B中的第1302-B項);
[0506]在編碼轉換服務器處處理作為長輪詢請求的多個繪圖請求(例如參見圖13B中的第 1304-B 項);
[0507]在編碼轉換服務器處從遠程計算機接收遠程桌面繪圖命令(例如參見圖13B中的第 1306-B 項);
[0508]在編碼轉換服務器處將遠程桌面繪圖命令轉譯成網(wǎng)頁瀏覽器繪圖更新,其中遠程桌面繪圖命令與推式協(xié)議兼容,其中網(wǎng)頁瀏覽器繪圖更新與HTTP兼容,其中HTTP是拉式協(xié)議(例如參見圖13B中的第1308-B項);以及
[0509]作為對來自網(wǎng)頁瀏覽器的多個繪圖請求中至少一個的響應,促進利用HTTP將網(wǎng)頁瀏覽器繪圖更新從編碼轉換服務器提供到客戶端設備的網(wǎng)頁瀏覽器(例如參見圖13B中的第1310-B項)。
[0510]12.根據(jù)第11條所述的機器可讀存儲介質,其中所述處理包括:
[0511]對于網(wǎng)頁瀏覽器而言,確定繪圖命令是否在編碼轉換服務器處等待處理;
[0512]如果不存在等待處理的繪圖命令,則將多個繪圖請求作為長輪詢請求存儲于繪圖請求隊列中;以及
[0513]如果存在等待處理的繪圖命令,則將多個繪圖請求中的至少一個提供到編碼轉換服務器中的HTTP處理器以便允許HTTP處理器響應于多個繪圖請求中的至少一個來服務于等待處理的繪圖命令。
[0514]13.根據(jù)第11條所述的機器可讀存儲介質,其中遠程桌面繪圖命令代表遠程計算機遠程桌面整個圖像的一部分;
[0515]其中所述轉譯包括:
[0516]將遠程桌面繪圖命令轉譯成Java圖形繪制命令;
[0517]響應于Java圖形繪制命令更新遠程桌面整個圖像的Java位圖的一部分;
[0518]基于Java圖形繪制命令生成Java位圖的經(jīng)過更新部分的坐標;[0519]基于Java位圖的經(jīng)過更新的部分生成圖像文件,其中所述圖像文件與網(wǎng)頁瀏覽器是兼容的;以及
[0520]基于Java位圖的經(jīng)過更新部分的坐標獲取適于圖像文件的繪圖坐標;
[0521]其中網(wǎng)頁瀏覽器繪圖更新包括圖像文件和繪圖坐標。
[0522]14.根據(jù)第13條所述的機器可讀存儲介質,其中所述處理包括:
[0523]對于網(wǎng)頁瀏覽器而言,確定繪圖命令是否在編碼轉換服務器處等待處理;
[0524]如果不存在等待處理的繪圖命令,則將多個繪圖請求作為長輪詢請求存儲于繪圖請求隊列中;以及
[0525]如果存在等待處理的繪圖命令,則將多個繪圖請求中的至少一個提供到編碼轉換服務器中的HTTP處理器以便允許HTTP處理器響應于多個繪圖請求中的至少一個來服務于等待處理的繪圖命令。
[0526]15.根據(jù)第14條所述的機器可讀存儲介質,其中所述促進提供包括:
[0527]在HTTP處理器處將繪圖坐標放置到響應于網(wǎng)頁瀏覽器的單次HTTP傳輸?shù)腍TTP標頭內(nèi);以及
[0528]在HTTP處理器處將圖像文件包括到響應于網(wǎng)頁瀏覽器的單次HTTP傳輸內(nèi),以便促進在單次HTTP傳輸響應中將圖像文件和繪圖坐標一起提供到網(wǎng)頁瀏覽器。
[0529]16.根據(jù)第15條所述的機器可讀存儲介質,進一步包括適于下述的編碼:
[0530]當繪圖命令隊列具有新的坐標時,發(fā)送通知到繪圖請求隊列以便允許在繪圖請求隊列中的多個繪圖請求中的至少一個轉發(fā)到HTTP處理器。
[0531]17.根據(jù)第11條所述的機器可讀存儲介質,進一步包括適于下述的編碼:
[0532]響應于作為對來自網(wǎng)頁瀏覽器的多個繪圖請求中至少一個的響應,促進將網(wǎng)頁瀏覽器繪圖更新從編碼轉換服務器提供到客戶端設備的網(wǎng)頁瀏覽器而從網(wǎng)頁瀏覽器接收新的繪圖請求。
[0533]18.根據(jù)第11條所述的機器可讀存儲介質,進一步包括適于下述的編碼:
[0534]從網(wǎng)頁瀏覽器接收要連接到遠程計算機的請求;以及
[0535]響應于要連接到遠程計算機的請求促進將JavaScript客戶端編碼提供到網(wǎng)頁瀏
兄器;
[0536]其中接收多個繪圖請求包括從JavaScript客戶端編碼接收多個繪圖請求;
[0537]其中促進將網(wǎng)頁瀏覽器繪圖更新提供到客戶端設備的網(wǎng)頁瀏覽器包括促進將網(wǎng)頁瀏覽器繪圖更新提供到JavaScript客戶端編碼。
[0538]19.根據(jù)第18條所述的機器可讀存儲介質,還包括適于下述的編碼:當遠程桌面會話終止時促進將JavaScript客戶端編碼從網(wǎng)頁瀏覽器刪除。
[0539]20.根據(jù)第11條所述的機器可讀存儲介質,進一步包括適于下述的編碼:
[0540]在編碼轉換服務器處從網(wǎng)頁瀏覽器接收用戶輸入請求,以便訪問或控制遠程計算機的遠程桌面;
[0541]在編碼轉換服務器處將用戶輸入請求轉譯成與推式協(xié)議兼容的輸入命令;
[0542]利用推式協(xié)議促進將輸入命令提供到遠程計算機;
[0543]其中接收遠程桌面繪圖命令包括響應于輸入命令接收遠程桌面繪圖命令。
[0544]21.包括第11條所述機器可讀存儲介質的一種計算機,其中所述計算機是編碼轉換服務器。
[0545]22.用于經(jīng)由編碼轉換服務器(例如參見圖3A中的330)和用于減少到客戶端設備流量的長輪詢來促進在客戶端設備(例如參見圖3A中的310)的網(wǎng)頁瀏覽器(例如參見圖5中的500)和遠程計算機(例如參見圖3A中的320)之間進行遠程桌面會話的設備(例如參見圖13C中的第1300-C項),所述設備包括:
[0546]用于利用HTTP從網(wǎng)頁瀏覽器接收多個繪圖請求的裝置,其中HTTP是拉式協(xié)議(例如參見圖13C中的第1302-C項);
[0547]用于作為長輪詢請求的多個繪圖請求的裝置(例如參見圖13C中的第1304-C項);
[0548]用于從遠程計算機接收遠程桌面繪圖命令的裝置(例如參見圖13C中的第1306-C項);
[0549]用于將遠程桌面繪圖命令轉譯成網(wǎng)頁瀏覽器繪圖更新的裝置,其中遠程桌面繪圖命令與推式協(xié)議兼容,其中網(wǎng)頁瀏覽器繪圖更新與HTTP兼容,其中HTTP是拉式協(xié)議(例如參見圖13C中的第1308-C項);以及
[0550]作為對來自網(wǎng)頁瀏覽器的多個繪圖請求中至少一個的響應,用于促進利用HTTP將網(wǎng)頁瀏覽器繪圖更新從編碼轉換服務器提供到客戶端設備的網(wǎng)頁瀏覽器的裝置(例如參見圖13C中的第1310-C項)。
[0551]23.根據(jù)第22條所述的設備,其中用于所述處理的裝置包括:
[0552]對于網(wǎng)頁瀏覽器而言,用于確定繪圖命令是否在編碼轉換服務器處等待處理的裝置;
[0553]如果不存在等待處理的繪圖命令,則用于將多個繪圖請求作為長輪詢請求存儲于繪圖請求隊列中的裝置;以及
[0554]如果存在等待處理的繪圖命令,則用于將多個繪圖請求中的至少一個提供到編碼轉換服務器中的HTTP處理器的裝置,以便允許HTTP處理器響應于多個繪圖請求中的至少一個來服務于等待處理的繪圖命令。
[0555]24.根據(jù)第22條所述的設備,其中遠程桌面繪圖命令代表遠程計算機遠程桌面整個圖像的一部分;
[0556]其中用于所述轉譯的裝置包括:
[0557]用于將遠程桌面繪圖命令轉譯成Java圖形繪制命令的裝置;
[0558]用于響應于Java圖形繪制命令更新遠程桌面整個圖像的Java位圖的一部分的裝置;
[0559]用于基于Java圖形繪制命令生成Java位圖的經(jīng)過更新部分的坐標的裝置;
[0560]用于基于Java位圖的經(jīng)過更新的部分生成圖像文件的裝置,其中所述圖像文件與網(wǎng)頁瀏覽器是兼容的;以及
[0561]用于基于Java位圖的經(jīng)過更新部分的坐標獲取適于圖像文件的繪圖坐標的裝置;
[0562]其中網(wǎng)頁瀏覽器繪圖更新包括圖像文件和繪圖坐標。
[0563]25.根據(jù)第22條所述的設備,其中用于所述處理的裝置包括:
[0564]對于網(wǎng)頁瀏覽器而言,用于確定繪圖命令是否在編碼轉換服務器處等待處理的裝置;[0565]如果不存在等待處理的繪圖命令,則用于將多個繪圖請求作為長輪詢請求存儲于繪圖請求隊列中的裝置;以及
[0566]如果存在等待處理的繪圖命令,則用于將多個繪圖請求中的至少一個提供到編碼轉換服務器中的HTTP處理器的裝置,以便允許HTTP處理器響應于多個繪圖請求中的至少一個來服務于等待處理的繪圖命令。
[0567]26.根據(jù)第22條所述的方法,其中用于所述促進提供的裝置包括:
[0568]用于在HTTP處理器處將繪圖坐標放置到響應于網(wǎng)頁瀏覽器的單次HTTP傳輸?shù)腍TTP標頭內(nèi)的裝置;以及
[0569]用于在HTTP處理器處將圖像文件包括到響應于網(wǎng)頁瀏覽器的單次HTTP傳輸內(nèi)的裝置,以便促進在單次HTTP傳輸響應中將圖像文件和繪圖坐標一起提供到網(wǎng)頁瀏覽器。
[0570]27.根據(jù)第22條所述的設備,進一步包括:
[0571]當繪圖命令隊列具有新的坐標時,用于發(fā)送通知到繪圖請求隊列的裝置,以便允許在繪圖請求隊列中的多個繪圖請求中的至少一個轉發(fā)到HTTP處理器。
[0572]28.根據(jù)第22條所述的方法,進一步包括:
[0573]用于響應于作為對來自網(wǎng)頁瀏覽器的多個繪圖請求中至少一個的響應,促進將網(wǎng)頁瀏覽器繪圖更新從編碼轉換服務器提供到客戶端設備的網(wǎng)頁瀏覽器而從網(wǎng)頁瀏覽器接收新的繪圖請求的裝置。
[0574]29.根據(jù)第22條所述的設備,進一步包括:
[0575]用于從網(wǎng)頁瀏覽器接收要連接到遠程計算機的請求的裝置;以及
[0576]用于響應于要連接到遠程計算機的請求促進將JavaScript客戶端編碼提供到網(wǎng)頁瀏覽器的裝置;
[0577]其中用于接收多個繪圖請求的裝置包括用于從JavaScript客戶端編碼接收多個繪圖請求的裝置;
[0578]其中用于促進將網(wǎng)頁瀏覽器繪圖更新提供到客戶端設備的網(wǎng)頁瀏覽器的裝置包括用于促進將網(wǎng)頁瀏覽器繪圖更新提供到JavaScript客戶端編碼的裝置。
[0579]30.根據(jù)第29條所述的設備,還包括當遠程桌面會話終止時用于促進將JavaScript客戶端編碼從網(wǎng)頁瀏覽器刪除的裝置。
[0580]31.根據(jù)第22條所述的設備,進一步包括:
[0581]用于從網(wǎng)頁瀏覽器接收用戶輸入請求的裝置,以便訪問或控制遠程計算機的遠程桌面;
[0582]用于將用戶輸入請求轉譯成與推式協(xié)議兼容的輸入命令的裝置;
[0583]用于利用推式協(xié)議促進將輸入命令提供到遠程計算機的裝置;
[0584]其中用于接收遠程桌面繪圖命令的裝置包括用于響應于輸入命令接收遠程桌面繪圖命令的裝置。
[0585]32.根據(jù)第22條所述的設備,其中所述設備包括編碼轉換服務器。
[0586]33.根據(jù)第22條所述的設備,其中所述設備包括處理系統(tǒng)和存儲器。
[0587]下面示出用于經(jīng)由編碼轉換服務器和利用在編碼轉換服務器處的適配器來促進在客戶端設備處的網(wǎng)頁瀏覽器和遠程計算機處的編碼轉換服務器之間進行遠程桌面會話的方法/設備/機器可讀存儲介質(作為條款描述)。[0588]例如根據(jù)以下描述的各個方面來說明本發(fā)明主題的技術。為了簡便,使用編號的條款(1,2,3等等)來描述本發(fā)明主題技術的各個方面的各個實例。這些方面是作為實例來提供的且對本發(fā)明主題的技術并沒有限制作用。應當指出,任何從屬條款可以任何組合相結合,并放置到相應的獨立條款中,例如,第1、10、和20條。下面的第I條例如參照附圖14A-14C呈現(xiàn)。其它條款可以類似的方式來呈現(xiàn)。
[0589]1.用于經(jīng)由編碼轉換服務器(例如參見330)和利用在編碼轉換服務器處的適配器(例如參見圖6中的600)來促進在客戶端設備(例如參見圖3A中的310)處的網(wǎng)頁瀏覽器和在遠程計算機(例如參見320)處的編碼轉換服務器之間進行遠程桌面會話的方法(例如參見圖14A中的第1400-A項),所述方法包括:
[0590]在適配器處利用請求-響應協(xié)議從網(wǎng)頁瀏覽器接收輸入請求,其中請求-響應協(xié)議是拉式協(xié)議(例如參見圖14A中的第1402-A項);
[0591]在適配器處將輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,以便由在編碼轉換服務器處的遠程桌面客戶端使用,從而促進與在遠程計算機處的遠程桌面服務器通信,其中遠程桌面顯示協(xié)議是推式協(xié)議(例如參見圖14A中的第1404-A項);
[0592]將輸入命令提供到編碼轉換服務器處的遠程桌面客戶端,以促進利用遠程桌面顯示協(xié)議將輸入命令提供到遠程桌面服務器(例如參見圖14A中的第1406-A項);
[0593]響應于輸入命令在適配器處從遠程桌面服務器接收遠程桌面繪圖命令,其中所述遠程桌面繪圖命令基于遠程計算機遠程桌面的圖像(例如參見圖14A中的第1408-A項);
[0594]在適配器處將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令,以便允許編碼轉換服務器來促進將網(wǎng)頁瀏覽器繪圖更新提供到網(wǎng)頁瀏覽器,其中網(wǎng)頁瀏覽器繪圖更新與網(wǎng)頁瀏覽器兼容(例如參見圖14A中的第1410-A項)。
[0595]2.根據(jù)第I條所述的方法,其中請求-響應協(xié)議包括超文本傳輸協(xié)議(HTTP),其中所述圖形繪制命令是Java圖形繪制命令,其中所述編碼轉換服務器是Java編碼轉換服務器,其中所述網(wǎng)頁瀏覽器是HTML5兼容的。
[0596]3.根據(jù)第I條所述的方法,其中接收輸入請求包括經(jīng)由在編碼轉換服務器處的網(wǎng)絡應用程序服務器的HTTP處理器來從網(wǎng)頁瀏覽器接收輸入請求;
[0597]其中接收遠程桌面繪圖命令包括經(jīng)由遠程桌面客戶端利用遠程桌面顯示協(xié)議來接收遠程桌面繪圖命令。
[0598]4.根據(jù)第I條所述的方法,其中遠程桌面繪圖命令包括從遠程桌面服務器接收到的遠程桌面繪圖命令的參數(shù)和位圖數(shù)據(jù);
[0599]其中轉譯遠程桌面繪圖命令包括下述的一個或多個:
[0600]基于遠程桌面繪圖命令的參數(shù)計算新的繪圖命令參數(shù);
[0601]調(diào)整遠程桌面繪圖命令的參數(shù);以及
[0602]對位圖數(shù)據(jù)進行調(diào)整。
[0603]5.根據(jù)第I條所述的方法,進一步包括:
[0604]基于圖形繪制命令生成圖像;以及
[0605]基于圖形繪制命令生成適于圖像的坐標;
[0606]其中所述圖像代表遠程桌面整個圖像的一部分。
[0607]6.根據(jù)第I條所述的方法,進一步包括:[0608]執(zhí)行圖形繪制命令來生成圖像并將圖像拖動到在編碼轉換服務器處的繪圖命令隊列內(nèi),所述編碼轉換服務器可由在編碼轉換服務器處的網(wǎng)絡應用程序服務器訪問以便與網(wǎng)頁瀏覽器進行通信;
[0609]基于圖形繪制命令生成適于圖像的坐標;
[0610]將坐標存儲于繪圖命令隊列中;以及
[0611]在生成坐標之后,發(fā)送繪圖命令準備服務于網(wǎng)頁瀏覽器的通知到網(wǎng)絡應用程序服務器;
[0612]其中圖形繪制命令代表遠程桌面整個圖像的一部分。
[0613]7.根據(jù)第I條所述的方法,進一步包括:
[0614]經(jīng)由編碼轉換服務器的HTTP處理器從網(wǎng)頁瀏覽器接收連接請求;
[0615]響應于連接請求促進建立、控制或終止遠程桌面客戶端和遠程桌面服務器之間的遠程桌面會話,其中促進建立、控制或終止包括:
[0616]基于連接請求生成會話控制命令,其中會話控制命令與遠程桌面顯示協(xié)議兼容;以及
[0617]經(jīng)由遠程桌面客戶端利用遠程桌面顯示協(xié)議促進將會話控制命令傳送到遠程桌面服務器。
[0618]8.根據(jù)第7條所述的方法,其中會話控制命令包括下述的至少一個:用于啟動遠程桌面會話的命令,用于停止遠程桌面會話、認證、設置、首選項的命令,以及用于通過至少一個認證、設置和首選項的命令。
[0619]9.根據(jù)第I條所述的方法,進一步包括:
[0620]從圖形繪制命令提取坐標;以及
[0621]基于圖形繪制命令更新離屏位圖的至少一部分,其中所述離屏位圖的至少一部分與坐標相關聯(lián),其中所述離屏位圖代表遠程桌面的整個圖像。
[0622]10.一種機器可讀存儲介質(例如參見圖8中的810,819),其編碼有指令,所述指令由處理系統(tǒng)(例如參見802)來執(zhí)行,以便執(zhí)行用于經(jīng)由編碼轉換服務器(例如參見330)和利用在編碼轉換服務器處的適配器(例如參見圖6中的600)來促進在客戶端設備(例如參見圖3A中的310)處的網(wǎng)頁瀏覽器和在遠程計算機(例如參見320)處的編碼轉換服務器之間進行遠程桌面會話的方法,所述指令包括適于下述的編碼:
[0623]在適配器處利用請求-響應協(xié)議從網(wǎng)頁瀏覽器接收輸入請求,其中請求-響應協(xié)議是拉式協(xié)議(例如參見圖14B中的第1402-B項);
[0624]在適配器處將輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,以便由在編碼轉換服務器處的遠程桌面客戶端使用,從而促進與在遠程計算機處的遠程桌面服務器通信,其中遠程桌面顯示協(xié)議是推式協(xié)議(例如參見圖14B中的第1404-B項);
[0625]將輸入命令提供到編碼轉換服務器處的遠程桌面客戶端,以促進利用遠程桌面顯示協(xié)議將輸入命令提供到遠程桌面服務器(例如參見圖14B中的第1406-B項);
[0626]響應于輸入命令在適配器處從遠程桌面服務器接收遠程桌面繪圖命令,其中所述遠程桌面繪圖命令基于遠程計算機遠程桌面的圖像(例如參見圖14B中的第1408-B項);以及
[0627]在適配器處將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令,以便允許編碼轉換服務器來促進將網(wǎng)頁瀏覽器繪圖更新提供到網(wǎng)頁瀏覽器,其中網(wǎng)頁瀏覽器繪圖更新與網(wǎng)頁瀏覽器兼容(例如參見圖14B中的第1410-B項)。
[0628]11.根據(jù)第10條所述的機器可讀存儲介質,其中請求-響應協(xié)議包括超文本傳輸協(xié)議(HTTP),其中所述圖形繪制命令是Java圖形繪制命令,其中所述編碼轉換服務器是Java編碼轉換服務器,其中所述網(wǎng)頁瀏覽器是HTML5兼容的。
[0629]12.根據(jù)第10條所述的機器可讀存儲介質,其中接收輸入請求包括經(jīng)由在編碼轉換服務器處的網(wǎng)絡應用程序服務器的HTTP處理器來從網(wǎng)頁瀏覽器接收輸入請求;
[0630]其中接收遠程桌面繪圖命令包括經(jīng)由遠程桌面客戶端利用遠程桌面顯示協(xié)議來接收遠程桌面繪圖命令。
[0631]13.根據(jù)第10條所述的機器可讀存儲介質,其中遠程桌面繪圖命令包括從遠程桌面服務器接收到的遠程桌面繪圖命令的參數(shù)和位圖數(shù)據(jù);
[0632]其中轉譯遠程桌面繪圖命令包括下述的一個或多個:
[0633]基于遠程桌面繪圖命令的參數(shù)計算新的繪圖命令參數(shù);
[0634]調(diào)整遠程桌面繪圖命令的參數(shù);以及
[0635]對位圖數(shù)據(jù)進行調(diào)整。
[0636]14.根據(jù)第10條所述的機器可讀存儲介質,其中所述指令進一步包括適于下述的編碼:
[0637]基于圖形繪制命令生成圖像;以及
[0638]基于圖形繪制命令生成適于圖像的坐標;
[0639]其中所述圖像代表遠程桌面整個圖像的一部分。
[0640]15.根據(jù)第10條所述的機器可讀存儲介質,其中所述指令進一步包括適于下述的編碼:
[0641]執(zhí)行圖形繪制命令來生成圖像并將圖像拖動到在編碼轉換服務器處的繪圖命令隊列內(nèi),所述編碼轉換服務器可由在編碼轉換服務器處的網(wǎng)絡應用程序服務器訪問以便與網(wǎng)頁瀏覽器進行通信;
[0642]基于圖形繪制命令生成適于圖像的坐標;
[0643]將坐標存儲于繪圖命令隊列中;以及
[0644]在生成坐標之后,發(fā)送繪圖命令準備服務于網(wǎng)頁瀏覽器的通知到網(wǎng)絡應用程序服務器;
[0645]其中圖形繪制命令代表遠程桌面整個圖像的一部分。
[0646]16.根據(jù)第10條所述的機器可讀存儲介質,其中所述指令進一步包括適于下述的編碼:
[0647]經(jīng)由編碼轉換服務器的HTTP處理器從網(wǎng)頁瀏覽器接收連接請求;
[0648]響應于連接請求促進建立、控制或終止遠程桌面客戶端和遠程桌面服務器之間的遠程桌面會話,其中促進建立、控制或終止包括:
[0649]基于連接請求生成會話控制命令,其中會話控制命令與遠程桌面顯示協(xié)議兼容;以及
[0650]經(jīng)由遠程桌面客戶端利用遠程桌面顯示協(xié)議促進將會話控制命令傳送到遠程桌面服務器。[0651]17.根據(jù)第16條所述的機器可讀存儲介質,其中會話控制命令包括下述的至少一個:用于啟動遠程桌面會話的命令,用于停止遠程桌面會話、認證、設置、首選項的命令,以及用于通過至少一個認證、設置和首選項的命令。
[0652]18.根據(jù)第10條所述的機器可讀存儲介質,其中所述指令進一步包括適于下述的編碼:
[0653]從圖形繪制命令提取坐標;以及
[0654]基于圖形繪制命令更新離屏位圖的至少一部分,其中所述離屏位圖的至少一部分與坐標相關聯(lián),其中所述離屏位圖代表遠程桌面的整個圖像。
[0655]19.包括第10條所述機器可讀存儲介質的一種計算機,其中所述計算機是編碼轉換服務器。
[0656]20.用于經(jīng)由編碼轉換服務器(例如參見330)和利用在編碼轉換服務器處的適配器(例如參見圖6中的600)來促進在客戶端設備(例如參見圖3A中的310)處的網(wǎng)頁瀏覽器和在遠程計算機(例如參見320)處的編碼轉換服務器之間進行遠程桌面會話的設備(例如參見圖14C中的第1400-C項),所述設備包括:
[0657]用于利用請求-響應協(xié)議從網(wǎng)頁瀏覽器接收輸入請求的裝置,其中請求-響應協(xié)議是拉式協(xié)議(例如參見圖14C中的第1402-C項);
[0658]用于將輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令的裝置,以便由在編碼轉換服務器處的遠程桌面客戶端使用,從而促進與在遠程計算機處的遠程桌面服務器通信,其中遠程桌面顯示協(xié)議是推式協(xié)議(例如參見圖14C中的第1404-C項);
[0659]用于將輸入命令提供到編碼轉換服務器處的遠程桌面客戶端的裝置,以促進利用遠程桌面顯示協(xié)議將輸入命令提供到遠程桌面服務器(例如參見圖14C中的第1406-C項);
[0660]用于響應于輸入命令在適配器處從遠程桌面服務器接收遠程桌面繪圖命令的裝置,其中所述遠程桌面繪圖命令基于遠程計算機遠程桌面的圖像(例如參見圖14C中的第1408-C項);以及
[0661]用于將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令的裝置,以便允許編碼轉換服務器來促進將網(wǎng)頁瀏覽器繪圖更新提供到網(wǎng)頁瀏覽器,其中網(wǎng)頁瀏覽器繪圖更新與網(wǎng)頁瀏覽器兼容(例如參見圖14C中的第1410-C項)。
[0662]21.根據(jù)第20條所述的設備,其中請求-響應協(xié)議包括超文本傳輸協(xié)議(HTTP),其中所述圖形繪制命令是Java圖形繪制命令,其中所述編碼轉換服務器是Java編碼轉換服務器,其中所述網(wǎng)頁瀏覽器是HTML5兼容的。
[0663]22.根據(jù)第20條所述的方法,其中用于接收輸入請求的裝置包括經(jīng)由在編碼轉換服務器處的網(wǎng)絡應用程序服務器的HTTP處理器來從網(wǎng)頁瀏覽器接收輸入請求的裝置;
[0664]其中用于接收遠程桌面繪圖命令的裝置包括用于經(jīng)由遠程桌面客戶端利用遠程桌面顯示協(xié)議來接收遠程桌面繪圖命令的裝置。
[0665]23.根據(jù)第20條所述的設備,其中遠程桌面繪圖命令包括從遠程桌面服務器接收到的遠程桌面繪圖命令的參數(shù)和位圖數(shù)據(jù);
[0666]其中用于轉譯遠程桌面繪圖命令的裝置包括下述的一個或多個:
[0667]用于基于遠程桌面繪圖命令的參數(shù)計算新的繪圖命令參數(shù)的裝置;
[0668]用于調(diào)整遠程桌面繪圖命令的參數(shù)的裝置;以及[0669]用于對位圖數(shù)據(jù)進行調(diào)整的裝置。
[0670]24.根據(jù)第20條所述的設備,進一步包括:
[0671]用于基于圖形繪制命令生成圖像的裝置;以及
[0672]用于基于圖形繪制命令生成適于圖像的坐標的裝置;
[0673]其中所述圖像代表遠程桌面整個圖像的一部分。
[0674]25.根據(jù)第20條所述的方法,進一步包括:
[0675]用于執(zhí)行圖形繪制命令來生成圖像并將圖像拖動到在編碼轉換服務器處的繪圖命令隊列內(nèi)的裝置,所述編碼轉換服務器可由在編碼轉換服務器處的網(wǎng)絡應用程序服務器訪問以便與網(wǎng)頁瀏覽器進行通信;
[0676]用于基于圖形繪制命令生成適于圖像的坐標的裝置;
[0677]用于將坐標存儲于繪圖命令隊列中的裝置;以及
[0678]在生成坐標之后,用于發(fā)送繪圖命令準備服務于網(wǎng)頁瀏覽器的通知到網(wǎng)絡應用程序服務器的裝置;
[0679]其中圖形繪制命令代表遠程桌面整個圖像的一部分。
[0680]26.根據(jù)第20條所述的方法,進一步包括:
[0681]用于經(jīng)由編碼轉換服務器的HTTP處理器從網(wǎng)頁瀏覽器接收連接請求的裝置;
[0682]用于響應于連接請求促進建立、控制或終止遠程桌面客戶端和遠程桌面服務器之間的遠程桌面會話的裝置,其中用于促進建立、控制或終止的裝置包括:
[0683]用于基于連接請求生成會話控制命令的裝置,其中會話控制命令與遠程桌面顯示協(xié)議兼容;以及
[0684]用于經(jīng)由遠程桌面客戶端利用遠程桌面顯示協(xié)議促進將會話控制命令傳送到遠程桌面服務器的裝置。
[0685]27.根據(jù)第26條所述的設備,其中會話控制命令包括下述的至少一個:用于啟動遠程桌面會話的命令,用于停止遠程桌面會話、認證、設置、首選項的命令,以及用于通過至少一個認證、設置和首選項的命令。
[0686]28.根據(jù)第20條所述的方法,進一步包括:
[0687]用于從圖形繪制命令提取坐標的裝置;以及
[0688]用于基于圖形繪制命令更新離屏位圖的至少一部分的裝置,其中所述離屏位圖的至少一部分與坐標相關聯(lián),其中所述離屏位圖代表遠程桌面的整個圖像。
[0689]29.根據(jù)第20條所述的設備,其中所述設備包括編碼轉換服務器。
[0690]30.根據(jù)第20條所述的設備,其中所述設備包括處理系統(tǒng)和存儲器。
[0691]下面示出用于經(jīng)由適于編碼轉換服務器的超文本傳輸協(xié)議(HTTP)處理器和遠程桌面客戶端適配器來促進從客戶端設備處的網(wǎng)頁瀏覽器實時地訪問和控制遠程計算機遠程桌面的方法/設備/機器可讀存儲介質(作為條款描述)。
[0692]例如根據(jù)以下描述的各個方面來說明本發(fā)明主題的技術。為了簡便,使用編號的條款(1,2,3等等)來描述本發(fā)明主題技術的各個方面的各個實例。這些方面是作為實例來提供的且對本發(fā)明主題的技術并沒有限制作用。應當指出,任何從屬條款可以任何組合相結合,并放置到相應的獨立條款中,例如,第1、10、和18條。下面的第I條例如參照附圖15A-15E呈現(xiàn)。其它條款可以類似的方式來呈現(xiàn)。[0693]1.一種機器可讀存儲介質(例如參見圖15A中的第1500-A項),其包括用于經(jīng)由適于編碼轉換服務器(例如參見圖3A中的330)的超文本傳輸協(xié)議(HTTP)處理器(例如參見圖4A中的422)和遠程桌面客戶端適配器(例如參見圖4B中的430)來促進從客戶端設備(例如參見圖3A中的310)處的網(wǎng)頁瀏覽器(例如參見圖5中的500)實時地訪問和控制遠程計算機(例如參見圖3A中的320)遠程桌面的代碼,所述機器可讀存儲介質包括:
[0694]HTTP處理器(例如參見圖15A中的第1502-A項);
[0695]遠程桌面客戶端適配器(例如參見圖15A中的第1504-A項);
[0696]其中HTTP處理器配置成利用HTTP從網(wǎng)頁瀏覽器接收連接請求和用戶輸入請求,以便將連接請求和用戶輸入請求提供到遠程桌面客戶機適配器,以及以便響應于來自網(wǎng)頁瀏覽器的繪圖請求將網(wǎng)頁瀏覽器繪圖更新提供到網(wǎng)頁瀏覽器,其中所述網(wǎng)頁瀏覽器繪圖更新與網(wǎng)頁瀏覽器是兼容的;
[0697]其中所述遠程桌面客戶端適配器配置成接收連接請求和用戶輸入請求,將連接請求轉譯成與遠程桌面顯示協(xié)議兼容的會話控制命令,以及將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的遠程桌面輸入命令;
[0698]其中遠程桌面客戶端適配器配置成促進將會話控制命令提供到遠程桌面客戶端,以便將會話控制命令提供到遠程計算機的遠程桌面服務器以及以便建立、控制或終止與遠程桌面服務器的遠程桌面會話;
[0699]其中遠程桌面客戶端適配器配置成促進將遠程桌面輸入命令提供到遠程桌面客戶端,以便將遠程桌面輸入命令提供到遠程桌面服務器;
[0700]其中遠程桌面客戶端適配器配置成響應于遠程桌面輸入命令經(jīng)由遠程桌面客戶端從遠程桌面服務器接收遠程桌面繪圖命令,其中遠程桌面繪圖命令與遠程桌面顯示協(xié)議兼容;
[0701]其中遠程桌面客戶端適配器配置成將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令,以及基于圖形繪制命令更新代表整個遠程桌面的圖像和坐標的一部分;以及
[0702]其中所述HTTP處理器配置成基于圖像的經(jīng)過更新的部分生成圖像文件,以及響應于繪圖請求基于坐標獲取繪圖坐標,其中網(wǎng)頁瀏覽器繪圖更新包括圖像文件和繪圖坐標;
[0703]其中所述遠程桌面繪圖命令代表整個遠程桌面的一部分;
[0704]其中所述遠程桌面顯示協(xié)議是推式協(xié)議,以及HTTP是拉式協(xié)議。
[0705]2.根據(jù)第I條所述的機器可讀存儲介質,其中所述用戶輸入請求包括鼠標事件、鍵盤事件、觸摸屏事件中的至少一個。
[0706]3.根據(jù)第I條所述的機器可讀存儲介質,其中所述會話控制命令涉及建立或控制遠程桌面客戶端和遠程桌面服務器之間的連接,且包括下述的至少一個:用于啟動遠程桌面會話的命令,用于停止遠程桌面會話、認證、設置、首選項的命令,以及用于通過至少一個認證、設置和首選項的命令。
[0707]4.根據(jù)第I條所述的機器可讀存儲介質,其中所述圖形繪制命令是Java圖形繪制命令,其中所述編碼轉換服務器是Java編碼轉換服務器,以及其中所述網(wǎng)頁瀏覽器是HTML5兼容的。[0708]5.根據(jù)第I條所述的機器可讀存儲介質,其中所述遠程桌面客戶端適配器配置成將圖像和坐標放置到繪圖命令隊列中;
[0709]其中所述機器可讀存儲介質還包括長輪詢處理器;
[0710]其中所述長輪詢處理器配置成利用HTTP從網(wǎng)頁瀏覽器接收繪圖請求,如果圖像的坐標正在繪圖命令隊列中等待處理則將繪圖請求轉發(fā)到HTTP處理器,如果在繪圖命令中沒有等待處理的圖像坐標,則將繪圖請求放置到繪圖請求隊列中;
[0711]其中繪圖命令隊列配置成如果繪圖命令隊列接收到包含圖像和適于圖像的坐標的新的繪圖命令,則將通知發(fā)送到繪圖請求隊列。
[0712]6.根據(jù)第I條所述的機器可讀存儲介質,還包括繪圖命令隊列,其配置成響應于來自繪圖命令隊列的繪圖命令正在等待網(wǎng)頁瀏覽器處理的通知而將繪圖請求轉發(fā)到HTTP處理器。
[0713]7.根據(jù)第I條所述的機器可讀存儲介質,其中所述HTTP處理器配置成將繪圖坐標放置到HTTP標頭的一部分內(nèi),其中所述HTTP處理器配置成促進在單次HTTP傳輸響應中將圖像文件和繪圖坐標一起提供到網(wǎng)頁瀏覽器,以便在網(wǎng)頁瀏覽器處繪制顯示圖像,其中所述顯示圖像表示代表整個遠程桌面的圖像的經(jīng)過更新的部分。
[0714]8.根據(jù)第I條所述的機器可讀存儲介質,其中所述HTTP處理器配置成如果來自網(wǎng)頁瀏覽器的連接請求包括要連接到遠程計算機的請求則促進將與網(wǎng)頁瀏覽器兼容的腳本客戶端編碼提供到網(wǎng)頁瀏覽器。
[0715]9.包括第I條所述的機器可讀存儲介質的一種計算機,其中所述計算機是編碼轉換服務器。
[0716]10.利用編碼轉換服務器(例如參見圖3A中的330)來促進從客戶端設備(例如參見圖3A中的310)處的網(wǎng)頁瀏覽器(例如參見圖5中的500)實時地訪問和控制遠程計算機(例如參見圖3A中的320)遠程桌面的方法(例如參見圖15B的第1500-B項和圖15C的第1500-C項),所述方法包括:
[0717]在編碼轉換服務器處利用HTTP從網(wǎng)頁瀏覽器接收連接請求(例如參見圖15B中的第 1502-B 項);
[0718]在編碼轉換服務器處將連接請求轉譯成到與遠程桌面顯示協(xié)議兼容的會話控制命令(例如參見圖15B中的第1504-B項);
[0719]將會話控制命令提供到編碼轉換服務器的遠程桌面客戶端,以便將會話控制命令提供到遠程計算機的遠程桌面服務器,以及以便建立、控制或終止與遠程桌面服務器的遠程桌面會話(例如參見圖15B中的第1506-B項);
[0720]在編碼轉換服務器處利用HTTP從網(wǎng)頁瀏覽器接收用戶輸入請求(例如參見圖15B中的第1508-B項);
[0721]在編碼轉換服務器處將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的遠程桌面輸入命令(例如參見圖15B中的第1510-B項);
[0722]將遠程桌面輸入命令提供到遠程桌面客戶端,以便將遠程桌面輸入命令提供到遠程桌面服務器(例如參見圖15B中的第1512-B項);
[0723]響應于遠程桌面輸入命令在編碼轉換服務器處經(jīng)由遠程桌面客戶端從遠程桌面服務器接收遠程桌面繪圖命令,其中遠程桌面繪圖命令與遠程桌面顯示協(xié)議兼容,其中所述遠程桌面繪圖命令代表遠程桌面整個圖像的一部分(例如參見圖15C中的第1502-C項);
[0724]在編碼轉換服務器處將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令(例如參見圖15C中的第1504-C項);
[0725]在編碼轉換服務器處基于圖形繪制命令更新圖像和坐標的一部分(例如參見圖15C中的第1506-C項);
[0726]在編碼轉換服務器處基于圖像的經(jīng)過更新的部分生成圖像文件(例如參見圖15C中的第1508-C項);
[0727]基于坐標獲取繪圖坐標(例如參見圖15C中的第1510-C項);以及
[0728]響應于來自網(wǎng)頁瀏覽器的繪圖請求促進將網(wǎng)頁瀏覽器繪圖更新提供到網(wǎng)頁瀏覽器,其中網(wǎng)頁瀏覽器繪圖更新包括圖像文件和繪圖坐標,以及其中網(wǎng)頁瀏覽器繪圖更新與網(wǎng)頁瀏覽器兼容(例如參見圖15C中的第1512-C項);
[0729]其中所述遠程桌面繪圖命令代表整個遠程桌面的一部分,以及所述圖像代表整個遠程桌面;
[0730]其中所述遠程桌面顯示協(xié)議是推式協(xié)議,而HTTP是拉式協(xié)議。
[0731]11.根據(jù)第10條所述的方法,其中所述用戶輸入的請求包括鼠標事件、鍵盤事件、觸摸屏事件中的至少一個。
[0732]12.根據(jù)第10條所述的方法,其中會話控制命令包括下述的至少一個:
[0733]用于啟動遠程桌面會話的命令,用于停止遠程桌面會話、認證、設置、首選項的命令,以及用于通過至少一個認證、設置和首選項的命令。
[0734]13.根據(jù)第10條所述的方法,其中所述圖形繪制命令是Java圖形繪制命令,其中所述編碼轉換服務器是Java編碼轉換服務器,其中所述網(wǎng)頁瀏覽器是HTML5兼容的。
[0735]14.根據(jù)第10條所述的方法,其中所述更新圖像和坐標的一部分包括將圖像和坐標的所述部分存儲到繪圖命令隊列中;
[0736]其中所述方法進一步包括:
[0737]利用HTTP從網(wǎng)頁瀏覽器接收繪圖請求;
[0738]如果圖像的坐標正在繪圖命令隊列中等待處理則將繪圖請求轉發(fā)到HTTP處理器;
[0739]如果在繪圖命令中沒有等待處理的圖像坐標,則將繪圖請求放置到繪圖請求隊列中;
[0740]其中所述方法進一步包括:
[0741]如果繪圖命令隊列接收到包括圖像和適于圖像的坐標的新的繪圖命令則發(fā)送通知到繪圖請求隊列。
[0742]15.根據(jù)第10條所述的方法,還包括響應于來自繪圖命令隊列的繪圖命令正在等待網(wǎng)頁瀏覽器處理的通知而將繪圖請求轉發(fā)到HTTP處理器。
[0743]16.根據(jù)第10條所述的方法,還包括將繪圖坐標放置到HTTP標頭的一部分內(nèi),其中促進提供網(wǎng)頁瀏覽器繪圖更新包括促進在單次HTTP傳輸響應中將圖像文件和繪圖坐標一起提供到網(wǎng)頁瀏覽器,以便在網(wǎng)頁瀏覽器處繪制顯示圖像,其中所述顯示圖像表示代表整個遠程桌面的圖像的經(jīng)過更新的部分。
[0744]17.根據(jù)第10條所述的方法,還包括如果來自網(wǎng)頁瀏覽器的連接請求包括要連接到遠程計算機的請求則促進將與網(wǎng)頁瀏覽器兼容的腳本客戶端編碼提供到網(wǎng)頁瀏覽器。
[0745]18.用于促進從客戶端設備(例如參見圖3A中的310)處的網(wǎng)頁瀏覽器(例如參見圖5中的500)實時地訪問和控制遠程計算機(例如參見圖3A中的320)遠程桌面的編碼轉換服務器(例如參見圖15D的第1500-D項和圖15E的第1500-E項),所述編碼轉換服務器包括:
[0746]用于利用HTTP從網(wǎng)頁瀏覽器接收連接請求的裝置(例如參見圖1?中的第1502-D項);
[0747]用于將連接請求轉譯成到與遠程桌面顯示協(xié)議兼容的會話控制命令的裝置(例如參見圖15D中的第1504-D項);
[0748]用于將會話控制命令提供到編碼轉換服務器的遠程桌面客戶端的裝置,以便將會話控制命令提供到遠程計算機的遠程桌面服務器,以及以便建立、控制或終止與遠程桌面服務器的遠程桌面會話(例如參見圖15D中的第1506-D項);
[0749]用于利用HTTP從網(wǎng)頁瀏覽器接收用戶輸入請求的裝置(例如參見圖15D中的第1508-D 項);
[0750]用于將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的遠程桌面輸入命令的裝置(例如參見圖15D中的第1510-D項);
[0751]用于將遠程桌面輸入命令提供到遠程桌面客戶端的裝置,以便將遠程桌面輸入命令提供到遠程桌面服務器(例如參見圖15D中的第1512-D項);
[0752]用于響應于遠程桌面輸入命令經(jīng)由遠程桌面客戶端從遠程桌面服務器接收遠程桌面繪圖命令的裝置,其中遠程桌面繪圖命令與遠程桌面顯示協(xié)議兼容,其中所述遠程桌面繪圖命令代表遠程桌面整個圖像的一部分(例如參見圖15E中的第1502-E項);
[0753]用于將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令的裝置(例如參見圖15E中的第1504-E項);
[0754]用于基于圖形繪制命令更新圖像和坐標的一部分的裝置(例如參見圖15E中的第1506-E 項);
[0755]用于基于圖像的經(jīng)過更新的部分生成圖像文件的裝置(例如參見圖15E中的第1508-E 項);
[0756]用于基于坐標獲取繪圖坐標的裝置(例如參見圖15E中的第1510-E項);以及
[0757]用于響應于來自網(wǎng)頁瀏覽器的繪圖請求促進將網(wǎng)頁瀏覽器繪圖更新提供到網(wǎng)頁瀏覽器的裝置,其中網(wǎng)頁瀏覽器繪圖更新包括圖像文件和繪圖坐標,以及其中網(wǎng)頁瀏覽器繪圖更新與網(wǎng)頁瀏覽器兼容(例如參見圖15E中的第1512-E項);
[0758]其中所述遠程桌面繪圖命令代表整個遠程桌面的一部分,以及所述圖像代表整個遠程桌面;
[0759]其中所述遠程桌面顯示協(xié)議是推式協(xié)議,而HTTP是拉式協(xié)議。
[0760]19.根據(jù)第18條所述的編碼轉換服務器,其中所述用戶輸入的請求包括鼠標事件、鍵盤事件、觸摸屏事件中的至少一個。
[0761]20.根據(jù)第18條所述的編碼轉換服務器,其中會話控制命令包括下述的至少一個:用于啟動遠程桌面會話的命令,用于停止遠程桌面會話、認證、設置、首選項的命令,以及用于通過至少一個認證、設置和首選項的命令。[0762]21.根據(jù)第18條所述的編碼轉換服務器,其中所述圖形繪制命令是Java圖形繪制命令,其中所述編碼轉換服務器是Java編碼轉換服務器,其中所述網(wǎng)頁瀏覽器是HTML5兼容的。
[0763]22.根據(jù)第18條所述的編碼轉換服務器,其中用于所述更新圖像和坐標的一部分的裝置包括用于將圖像和坐標的所述部分存儲到繪圖命令隊列中的裝置;
[0764]其中所述編碼轉換服務器進一步包括:
[0765]用于利用HTTP從網(wǎng)頁瀏覽器接收繪圖請求的裝置;
[0766]如果圖像的坐標正在繪圖命令隊列中等待處理則用于將繪圖請求轉發(fā)到HTTP處理器的裝置;
[0767]如果在繪圖命令中沒有等待處理的圖像坐標,則用于將繪圖請求放置到繪圖請求隊列中的裝置;以及
[0768]其中所述編碼轉換服務器進一步包括:
[0769]如果繪圖命令隊列接收到包括圖像和適于圖像的坐標的新的繪圖命令則用于發(fā)送通知到繪圖請求隊列的裝置。
[0770]23.根據(jù)第18條所述的編碼轉換服務器,還包括用于響應于來自繪圖命令隊列的繪圖命令正在等待網(wǎng)頁瀏覽器處理的通知而將繪圖請求轉發(fā)到HTTP處理器的裝置。
[0771]24.根據(jù)第18條所述的編碼轉換服務器,還包括用于將繪圖坐標放置到HTTP標頭的一部分內(nèi)的裝置,其中用于促進提供網(wǎng)頁瀏覽器繪圖更新的裝置包括用于促進在單次HTTP傳輸響應中將圖像文件和繪圖坐標一起提供到網(wǎng)頁瀏覽器的裝置,以便在網(wǎng)頁瀏覽器處繪制顯示圖像,其中所述顯示圖像表示代表整個遠程桌面的圖像的經(jīng)過更新的部分。
[0772]25.根據(jù)第18條所述的編碼轉換服務器,還包括如果來自網(wǎng)頁瀏覽器的連接請求包括要連接到遠程計算機的請求則用于促進將與網(wǎng)頁瀏覽器兼容的腳本客戶端編碼提供到網(wǎng)頁瀏覽器的裝置。
[0773]26.一種處理器,其包括配置成用于執(zhí)行在PCT申請原始公開文本的段落[0132]-[0143]中的任一項前述條款所述方法的模塊。
[0774]27.一種機器可讀存儲介質,其包括用于使得編碼轉換服務器執(zhí)行在PCT申請原始公開文本的段落[0132]-[0143]中的任一項前述條款所述方法的編碼。
[0775]28.根據(jù)第27條所述的機器可讀存儲介質,其中所述編碼轉換服務器包括機器可讀存儲介質。
[0776]29.一種設備,其包括用于執(zhí)行在PCT申請原始公開文本的段落[0132]_[0143]中的任一項前述條款所述方法的裝置。
[0777]30.根據(jù)第29條所述的設備,其中所述設備包括編碼轉換服務器。
[0778]31.根據(jù)第29條所述的設備,其中所述設備包括處理系統(tǒng)和存儲器。
[0779]33.一種設備,其包括可操作來執(zhí)行在PCT申請原始公開文本的段落[0132]-[0143]中的任一項前述條款所述方法的組件。
[0780]34.根據(jù)第33條所述的設備,其中所述設備包括編碼轉換服務器。
[0781]35.根據(jù)第33條所述的設備,其中所述設備包括處理系統(tǒng)和存儲器。
[0782]本【技術領域】的那些技術人員應該理解本文所述的各種示例性的塊,模塊,元件,組件,方法和算法可作為電子硬件,計算機軟件,或兩者的組合來實施。[0783]例如,模塊(例如,網(wǎng)絡應用程序服務器(容器),長輪詢處理器模塊,長輪詢處理器,繪制請求隊列,HTTP處理器,圖像轉換模塊,繪圖命令隊列,遠程桌面客戶端適配器,遠程桌面客戶端,遠程桌面服務器,或其它模塊或功能)可作為電子硬件,計算機軟件,或兩者的組合來實施。在某些方面,模塊可被認為是用于完成一項或多項功能或步驟的裝置。在一個方面,因為模塊可包括編碼或存儲在機器可讀介質上、另一設備上、或者在其一部分上的指令,因此模塊可以是一種設備。在一個方面,模塊可以是存儲于機器可讀介質內(nèi)且由處理系統(tǒng)或處理器執(zhí)行的軟件(例如,應用程序,子程序)。在另一個方面,模塊可以是硬件(例如,編碼有指令的機器可讀介質,例如具有ASIC或FPGA的預編程的通用目的計算機,或特殊用途的電子或光學設備)。
[0784]為了說明硬件和軟件的這種可互換性,在上文中大體根據(jù)其功能描述了各種示例性塊,模塊,元件,組件,方法和算法。此類功能是否是以硬件還是軟件施取決于對整個系統(tǒng)所施加的特定應用和設計約束。熟練的技術人員可針對每一特定應用來以不同的方式實施所述的功能。
[0785]在本公開的一個方面,當操作或功能(例如,創(chuàng)建,發(fā)送,接收,提供,建立,顯示,通知,接受,選擇,控制,發(fā)出命令,傳輸,報告,推送,或任何其它操作或功能)描述為由模塊或組件來執(zhí)行時,應該理解這種操作或功能由模塊或組件直接或間接地執(zhí)行。作為一個實例,當模塊描述為執(zhí)行一個操作時,應該理解該模塊可直接地執(zhí)行該操作,或可間接地執(zhí)行該操作,例如通過促進這種操作。例如,當會話描述為由模塊建立時,應該理解該模塊可通過促進建立會話而間接地建立會話。作為又一個實例,當圖像描述為由模塊顯示或呈現(xiàn)時,應該理解圖像可由模塊直接或間接地顯示或呈現(xiàn)。
[0786]各種組件和塊可不同地布置(例如,以不同的順序布置,或以不同的方式劃分),但是所有不脫離本發(fā)明主題技術的范圍。在本公開的一個方面,所附權利要求中所述的模塊(或元件)可由一個模塊或由更小數(shù)目的模塊來執(zhí)行,且這種布置在權利要求的范圍內(nèi)。在另一個方面,所附權利要求中所述的模塊(或元件)可由較大數(shù)目的模塊來執(zhí)行,且這種布置也在權利要求的范圍內(nèi)。在又一個方面,所附權利要求中所述的模塊(或元件)可由多個模塊來執(zhí)行,且這種布置也在權利要求的范圍內(nèi)。
[0787]應該理解在所公開過程中步驟的特定順序或層次是示例性方法的舉例說明。根據(jù)設計偏好,應當理解過程中步驟的特定順序或層次可以被重新布置。一些步驟可以同時執(zhí)行。所附方法要求以示范順序呈現(xiàn)各個步驟的元素,但這不意味著被限制到具體順序或層次。
[0788]提供前面的描述以便使得本領域的任何技術人員能夠實踐本文所述的各個方面。前面的描述提供本發(fā)明主題技術的各種實例,但是本發(fā)明主題技術并不限于這些實例。對這些方面的各種修改對于本【技術領域】的技術人員而言是顯而易見的,且本文所限定的一般原理可應用于其它方面。因此,權利要求并不意旨限于本文所示的各個方面,而是應被賦予與權利要求文字語言相一致的全部范圍,其中使用單數(shù)對元素(例如,命令,調(diào)用命令,處理器,設備,機器等)的參考并不意旨意味著“一個且僅一個”,除非進行如此的特別聲明,否則就是“一個或多個”。除非另外特別地說明,否則術語“一些”指代一個或多個。男性代詞(例如他的)包括女性和中性(例如,她的和其的),反之亦然。標題和副標題(如果有的話)僅僅是為了方便使用,而并不限制本發(fā)明。[0789]諸如“方面”的措辭并不意味著該方面是本發(fā)明主題技術必不可少的,或并不意味著該方面適用于本發(fā)明主題技術的所有配置。關于方面的公開可適用于所有配置,或一種或多種配置。一個方面可以提供本公開的一個或多個實例。諸如方面的措辭可指代一個或多個方面,反之亦然。諸如“實施例”的措辭并不意味著該實施例是本發(fā)明主題技術必不可少的,或并不意味著該實施例適用于本發(fā)明主題技術的所有配置。關于實施例的公開可適用于所有實施例,或一個或多個實施例。實施例可提供本公開的一個或多個實例。諸如實施例的措辭中可指代一個或多個實施例,反之亦然。諸如“配置”的措辭并不意味著該配置是本發(fā)明主題技術必不可少的,或并不意味著該配置適用于本發(fā)明主題技術的所有配置。關于配置的公開可適用于所有配置,或一種或多種配置。配置可提供本公開的一個或多個實例。諸如配置的措辭可指代一種或多種配置,反之亦然。
[0790]本文所用的詞語“示例性”意味著“用作實例或舉例說明”。本文中描述為“示例性”的任何方面或設計不一定被解釋為比其它方面或設計優(yōu)選或有利。
[0791]在一個方面,術語“兼容”可在一定意義上使用,即第一元件(例如,繪圖命令,輸入調(diào)用命令,輸入命令,連接請求,繪圖請求等)與第二元件(例如,遠程桌面顯示協(xié)議,遠程桌面客戶端,遠程桌面服務器,編碼轉換服務器,網(wǎng)頁瀏覽器,客戶端設備,遠程計算機,HTML5,HTTP等)兼容,使得第一元件可由第二元件認知到或理解,可以由所述第二元件處理,或可由第二元件利用或與第二元件一起使用。
[0792]與在本公開中通篇描述的對于本【技術領域】的那些普通技術人員而言是已知的或以后獲知的各個方面元素等同的所有結構和功能明確地通過引用并入本文,且意旨由權利要求所涵蓋。此外,本文所公開的內(nèi)容并不意旨要貢獻給公眾,無論這種公開是否在權利要求中明確地陳述。不應當根據(jù)35U.S.C.§112第6段的規(guī)定來解釋權利要求的元素,除非該元素使用措辭“適于……的裝置”來明確陳述,或者在方法權利要求的情況下,該元素使用措辭“用于……的步驟”來明確陳述。此外,就在說明書或權利要求書中使用的術語“包含”、“具有”等而言,這種術語意旨以類似于術語“包括”的方式而為包括性的,因為“包括”在權利要求中用作過渡詞時是解 釋性的。
【權利要求】
1.經(jīng)由編碼轉換服務器和利用支持二維2D畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的方法,所述方法包括: 在編碼轉換服務器處從客戶端設備處的網(wǎng)頁瀏覽器接收用戶輸入請求以便訪問和控制遠程計算機,其中網(wǎng)頁瀏覽器支持二維畫布和動態(tài)繪圖; 在編碼轉換服務器處將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,以便由編碼轉換服務器用來促進與遠程計算機的通信; 在編碼轉換服務器處響應于輸入命令從遠程計算機接收遠程桌面繪圖命令; 在編碼轉換服務器處將遠程桌面繪圖命令轉譯成與超文本標記語言兼容的繪圖更新;以及 促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器; 其特征在于編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。
2.根據(jù)權利要求 1所述的方法,其特征在于轉譯遠程桌面繪圖命令包括: 將遠程桌面繪圖命令轉譯成Java圖形繪制命令; 執(zhí)行Java圖形繪制命令來更新Java位圖的一部分,其中Java位圖代表遠程計算機遠程桌面的整個圖像; 基于Java圖形繪制命令生成適于Java位圖的經(jīng)過更新部分的坐標; 基于Java位圖的經(jīng)過更新的部分形成圖像文件,其中所述圖像文件與HTML5兼容;以及 基于適于Java位圖的經(jīng)過更新的部分的坐標獲取適于圖像文件的繪圖坐標,其中所述繪圖坐標與HTML5兼容; 其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標; 其中繪圖的更新代表遠程桌面整個圖像的一部分; 其中在遠程桌面會話期間網(wǎng)頁瀏覽器瞬時包括JavaScript客戶端編碼,同時遠程桌面會話繼續(xù); 其中所述方法進一步包括在編碼轉換服務器處從網(wǎng)頁瀏覽器的JavaScript客戶端編碼接收繪圖請求; 其中促進提供繪圖更新包括響應于來自網(wǎng)頁瀏覽器的JavaScript客戶端編碼的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的JavaScript客戶端編碼。
3.根據(jù)權利要求1所述的方法,其特征在于轉譯遠程桌面繪圖命令包括: 將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令; 基于圖形繪制命令來更新Java位圖的一部分,其中Java位圖的經(jīng)過更新的一部分代表遠程計算機遠程桌面整個圖像的相對于前一圖形繪制命令已經(jīng)改變的一部分; 生成適于Java位圖的經(jīng)過更新部分的坐標; 基于位圖的經(jīng)過更新的部分形成圖像文件,其中所述圖像文件與HTML5兼容;以及 獲取適于圖像文件的繪圖坐標,其中所述繪圖坐標與HTML5兼容; 其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標;其中所述方法進一步包括在編碼轉換服務器處從網(wǎng)頁瀏覽器接收繪圖請求; 其中促進提供繪圖更新包括響應于來自網(wǎng)頁瀏覽器的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器。
4.根據(jù)權利要求1所述的方法,其特征在于所述編碼轉換服務器包括遠程桌面客戶端適配器,其配置成將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,并將遠程桌面繪圖命令轉譯成圖形繪制命令。
5.根據(jù)權利要求1所述的方法,還包括從網(wǎng)頁瀏覽器接收長輪詢HTTP請求,其中長輪詢HTTP請求包括繪圖請求。
6.根據(jù)權利要求1所述的方法,還包括從網(wǎng)頁瀏覽器接收包括遠程計算機的統(tǒng)一資源定位符URL的初始HTTP請求。
7.根據(jù)權利要求6所述的方法,還包括響應于適于遠程計算機URL的初始HTTP請求促進將腳本客戶端編碼提供到網(wǎng)頁瀏覽器,其中所述腳本客戶端編碼與HTML5兼容。
8.根據(jù)權利要求1所述的方法,其中所述遠程桌面繪圖命令與遠程桌面顯示協(xié)議是兼容的,其中所述遠程桌面顯示協(xié)議為推式協(xié)議,以及其中促進提供繪圖更新包括利用為拉式協(xié)議的HTTP促進提供繪圖更新。
9.根據(jù)權利要求1所述的方法,其中動態(tài)繪圖包括響應于網(wǎng)頁瀏覽器腳本客戶端的一個或多個繪圖請求實時地繪制2D畫布的一部分,而不是繪制整個2D畫布。
10.根據(jù)權利要求1所述的方法,其中所述2D畫布在同一時間根據(jù)一組坐標來進行部分更新。`
11.一種機器可讀存儲介質,其編碼有指令,所述指令可由處理系統(tǒng)來執(zhí)行,以便執(zhí)行經(jīng)由編碼轉換服務器和利用支持二維2D畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的方法,所述指令包括適于下述的編碼: 在編碼轉換服務器處從客戶端設備處的網(wǎng)頁瀏覽器接收用戶輸入請求以便訪問和控制遠程計算機,其中網(wǎng)頁瀏覽器支持二維畫布和動態(tài)繪圖; 在編碼轉換服務器處將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,以便由編碼轉換服務器用來促進與遠程計算機的通信; 在編碼轉換服務器處響應于輸入命令從遠程計算機接收遠程桌面繪圖命令; 在編碼轉換服務器處將遠程桌面繪圖命令轉譯成與超文本標記語言兼容的繪圖更新;以及 促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器; 其特征在于編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。
12.根據(jù)權利要求11所述的機器可讀存儲介質,其特征在于轉譯遠程桌面繪圖命令包括: 將遠程桌面繪圖命令轉譯成Java圖形繪制命令; 執(zhí)行Java圖形繪制命令來更新Java位圖的一部分,其中Java位圖代表遠程計算機遠程桌面的整個圖像; 基于Java圖形繪制命令生成適于Java位圖的經(jīng)過更新部分的坐標;基于Java位圖的經(jīng)過更新的部分形成圖像文件,其中所述圖像文件與HTML5兼容;以及 基于適于Java位圖的經(jīng)過更新的部分的坐標獲取適于圖像文件的繪圖坐標,其中所述繪圖坐標與HTML5兼容; 其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標; 其中繪圖的更新代表遠程桌面整個圖像的一部分; 其中在遠程桌面會話期間網(wǎng)頁瀏覽器瞬時包括JavaScript客戶端編碼,同時遠程桌面會話繼續(xù); 其中所述方法進一步包括在編碼轉換服務器處從網(wǎng)頁瀏覽器的JavaScript客戶端編碼接收繪圖請求; 其中促進提供繪圖更新包括響應于來自網(wǎng)頁瀏覽器的JavaScript客戶端編碼的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的JavaScript客戶端編碼。
13.根據(jù)權利要求11所述的機器可讀存儲介質,其中轉譯遠程桌面繪圖命令包括: 將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令; 基于圖形繪制命令來更新Java位圖的一部分,其中Java位圖的經(jīng)過更新的一部分代表遠程計算機遠程桌面整個圖像的相對于前一圖形繪制命令已經(jīng)改變的一部分; 生成適于Java位圖的經(jīng)過 更新部分的坐標; 基于位圖的經(jīng)過更新的部分形成圖像文件,其中所述圖像文件與HTML5兼容;以及 獲取適于圖像文件的繪圖坐標,其中所述繪圖坐標與HTML5兼容; 其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標; 其中所述方法進一步包括在編碼轉換服務器處從網(wǎng)頁瀏覽器接收繪圖請求;以及其中促進提供繪圖更新包括響應于來自網(wǎng)頁瀏覽器的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器。
14.根據(jù)權利要求11所述的機器可讀存儲介質,其中所述編碼轉換服務器包括遠程桌面客戶端適配器,其配置成將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,并將遠程桌面繪圖命令轉譯成圖形繪制命令。
15.根據(jù)權利要求11所述的機器可讀存儲介質,還包括從網(wǎng)頁瀏覽器接收長輪詢HTTP請求,其中長輪詢HTTP請求包括繪圖請求。
16.根據(jù)權利要求11所述的機器可讀存儲介質,還包括用于從網(wǎng)頁瀏覽器接收包括遠程計算機的統(tǒng)一資源定位符URL的初始HTTP請求的編碼。
17.根據(jù)權利要求16所述的機器可讀存儲介質,還包括用于響應于適于遠程計算機URL的初始HTTP請求促進將腳本客戶端編碼提供到網(wǎng)頁瀏覽器的編碼,其中所述腳本客戶端編碼與HTML5兼容。
18.根據(jù)權利要求11所述的機器可讀存儲介質,其中所述遠程桌面繪圖命令與遠程桌面顯示協(xié)議是兼容的,其中所述遠程桌面顯示協(xié)議為推式協(xié)議,以及其中促進提供繪圖更新包括利用為拉式協(xié)議的HTTP促進提供繪圖更新。
19.根據(jù)權利要求11所述的機器可讀存儲介質,其中動態(tài)繪圖包括響應于網(wǎng)頁瀏覽器腳本客戶端的一個或多個繪圖請求實時地繪制2D畫布的一部分,而不是繪制整個2D畫布。
20.根據(jù)權利要求11所述的機器可讀存儲介質,其中所述2D畫布在同一時間根據(jù)一組坐標來進行部分更新。
21.包括權利要求11所述機器可讀存儲介質的一種計算機,其中所述計算機是編碼轉換服務器。
22.一種用于經(jīng)由編碼轉換服務器和利用支持二維2D畫布和動態(tài)繪圖的超文本標記語言促進實時在客戶端設備的網(wǎng)頁瀏覽器和遠程計算機之間進行遠程桌面會話的設備,所述設備包括: 用于從客戶端設備處的網(wǎng)頁瀏覽器接收用戶輸入請求以便訪問和控制遠程計算機的裝置,其中網(wǎng)頁瀏覽器支持二維畫布和動態(tài)繪圖; 用于將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令的裝置,以便由編碼轉換服務器用來促進與遠程計算機的通信; 用于響應于輸入命令從遠程計算機接收遠程桌面繪圖命令的裝置; 用于將遠程桌面繪圖命令轉譯成與超文本標記語言兼容的繪圖更新的裝置;以及 用于促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的裝置; 其特征在于編碼轉換服務器介于遠程計算機和客戶端設備之間,以及其中編碼轉換服務器在物理上獨立于遠程計算機。
23.根據(jù)第權利要求22所述的設備,其特征在于用于轉譯遠程桌面繪圖命令的裝置包括: 用于將遠程桌面繪圖命令轉 譯成Java圖形繪制命令的裝置; 用于執(zhí)行Java圖形繪制命令來更新Java位圖的一部分的裝置,其中Java位圖代表遠程計算機遠程桌面的整個圖像; 用于基于Java圖形繪制命令生成適于Java位圖的經(jīng)過更新部分的坐標的裝置; 用于基于Java位圖的經(jīng)過更新的部分形成圖像文件的裝置,其中所述圖像文件與HTML5兼容;以及 用于基于適于Java位圖的經(jīng)過更新的部分的坐標獲取適于圖像文件的繪圖坐標的裝置,其中所述繪圖坐標與HTML5兼容; 其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標; 其中繪圖的更新代表遠程桌面整個圖像的一部分; 其中在遠程桌面會話期間網(wǎng)頁瀏覽器瞬時包括JavaScript客戶端編碼,同時遠程桌面會話繼續(xù); 其中所述設備進一步包括用于從網(wǎng)頁瀏覽器的JavaScript客戶端編碼接收繪圖請求的裝置; 其中用于促進提供繪圖更新的裝置包括用于響應于來自網(wǎng)頁瀏覽器的JavaScript客戶端編碼的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的JavaScript客戶端編碼的裝置。
24.根據(jù)權利要求22所述的設備,其中用于轉譯遠程桌面繪圖命令的裝置包括: 用于將遠程桌面繪圖命令轉譯成與編碼轉換服務器兼容的圖形繪制命令的裝置; 用于基于圖形繪制命令來更新Java位圖的一部分的裝置,其中Java位圖的經(jīng)過更新的一部分代表遠程計算機遠程桌面整個圖像的相對于前一圖形繪制命令已經(jīng)改變的一部分; 用于生成適于Java位圖的經(jīng)過更新部分的坐標的裝置; 用于基于位圖的經(jīng)過更新的部分形成圖像文件的裝置,其中所述圖像文件與HTML5兼容;以及 用于獲取適于圖像文件的繪圖坐標的裝置,其中所述繪圖坐標與HTML5兼容; 其中繪圖的更新包括圖像文件和適于圖像文件的繪圖坐標; 其中所述設備進一步包括用于從網(wǎng)頁瀏覽器接收繪圖請求的裝置;以及 其中用于促進提供繪圖更新的裝置包括用于響應于來自網(wǎng)頁瀏覽器的繪圖請求之一來促進將繪圖更新從編碼轉換服務器提供到網(wǎng)頁瀏覽器的裝置。
25.根據(jù)權利要求22所述的設備,其中所述編碼轉換服務器包括遠程桌面客戶端適配器,其配置成將用戶輸入請求轉譯成與遠程桌面顯示協(xié)議兼容的輸入命令,并將遠程桌面繪圖命令轉譯成圖形繪制命令。
26.根據(jù)權利要求22所述的設備,還包括用于從網(wǎng)頁瀏覽器接收長輪詢HTTP請求的裝置,其中長輪詢HTTP請求包括繪圖請求。
27.根據(jù)權利要求22所述的設備,還包括用于從網(wǎng)頁瀏覽器接收包括遠程計算機的統(tǒng)一資源定位符URL的初始HTTP請求的裝置。
28.根據(jù)權利要求27所述的設備,還包括用于響應于適于遠程計算機URL的初始HTTP請求促進將腳本客戶端編碼提供到網(wǎng)頁瀏覽器的裝置,其中所述腳本客戶端編碼與HTML5兼容。
29.根據(jù)權利要求22所述的設備,其中所述遠程桌面繪圖命令與遠程桌面顯示協(xié)議是兼容的,其中所述遠程桌面顯示協(xié)議為推式協(xié)議,以及其中用于促進提供繪圖更新的裝置包括用于利用為拉式協(xié)議的HTTP促進提供繪圖更新的裝置。
30.根據(jù)權利要求22所述的設備,其中動態(tài)繪圖包括響應于網(wǎng)頁瀏覽器腳本客戶端的一個或多個繪圖請求實時地繪制2D畫布的一部分,而不是繪制整個2D畫布。
31.根據(jù)權利要求22所述的設備,其中所述2D畫布在同一時間根據(jù)一組坐標來進行部分更新。
32.根據(jù)權利要求22所述的設備,其中所述設備包括編碼轉換服務器。
33.根據(jù)權利要求22所述的設備,其中所述設備包括處理系統(tǒng)和存儲器。
【文檔編號】G06F3/00GK103430123SQ201180067326
【公開日】2013年12月4日 申請日期:2011年12月9日 優(yōu)先權日:2010年12月10日
【發(fā)明者】S·科米內(nèi)克, J·M·斯坦利, C·施維貝克 申請人:韋斯技術有限公司