欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

使用雙緩沖來(lái)進(jìn)行屏幕共享的制作方法

文檔序號(hào):7665863閱讀:210來(lái)源:國(guó)知局
專利名稱:使用雙緩沖來(lái)進(jìn)行屏幕共享的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及用于遠(yuǎn)程桌面共享的方法和系統(tǒng),尤其涉及用于使用雙緩沖來(lái)進(jìn)行屏幕共享的方法和系統(tǒng)。
背景技術(shù)
遠(yuǎn)程桌面共享允許用戶通過(guò)網(wǎng)絡(luò)訪問(wèn)遠(yuǎn)程計(jì)算機(jī)上的應(yīng)用程序和數(shù)據(jù)。例如, Microsoft Remote Desktop是其中一個(gè)計(jì)算機(jī)通過(guò)查看第二計(jì)算機(jī)的桌面會(huì)話并且充當(dāng)鍵盤和鼠標(biāo)輸入的主人來(lái)“控制”該第二計(jì)算機(jī)的模型。類似地,遠(yuǎn)程會(huì)議軟件使用戶能夠?qū)崟r(shí)經(jīng)由諸如因特網(wǎng)等網(wǎng)絡(luò)與其他計(jì)算機(jī)用戶、客戶、客戶機(jī)或同事開(kāi)會(huì)。如因特網(wǎng)之類的網(wǎng)絡(luò)是不可預(yù)測(cè)的。網(wǎng)絡(luò)上的擁擠的通信可導(dǎo)致上傳和下載速度變化。不同的網(wǎng)絡(luò)連接帶寬以及連接到網(wǎng)絡(luò)的計(jì)算機(jī)的處理速度也可導(dǎo)致數(shù)據(jù)傳輸延遲。數(shù)據(jù)傳輸延遲可導(dǎo)致客戶機(jī)看見(jiàn)過(guò)期的主機(jī)信息。

發(fā)明內(nèi)容
在屏幕共享中,主計(jì)算機(jī)可以連接到中間計(jì)算機(jī),并且請(qǐng)求該中間計(jì)算機(jī)在該中間計(jì)算機(jī)上創(chuàng)建用于與一個(gè)或多個(gè)客戶機(jī)計(jì)算機(jī)的屏幕共享應(yīng)用程序的會(huì)話。主計(jì)算機(jī)可以向中間計(jì)算機(jī)發(fā)送當(dāng)前屏幕圖像。中間計(jì)算機(jī)可將該屏幕圖像存儲(chǔ)在第一緩沖區(qū)中。一個(gè)或多個(gè)客戶機(jī)計(jì)算機(jī)可以加入中間計(jì)算機(jī)上的會(huì)話??梢栽谥虚g計(jì)算機(jī)上在第二緩沖區(qū)中為每一個(gè)屏幕共享客戶機(jī)計(jì)算機(jī)創(chuàng)建屏幕編碼器的新實(shí)例。第二緩沖區(qū)還可包括客戶機(jī)計(jì)算機(jī)接收到的主機(jī)屏幕圖像的最新版本。屏幕編碼器使用主計(jì)算機(jī)的幾乎實(shí)況的屏幕圖像和第二緩沖區(qū)中的內(nèi)容來(lái)創(chuàng)建已編碼的差別更新圖像數(shù)據(jù)流以被傳遞至客戶機(jī)計(jì)算機(jī)。因?yàn)榫幋a在中間計(jì)算機(jī)上完成使得更新不被存儲(chǔ)在中間計(jì)算機(jī)上,所以可以在中間計(jì)算機(jī)上分配恒定的存儲(chǔ)器量。因?yàn)榭蛻魴C(jī)計(jì)算機(jī)屏幕使用主機(jī)的幾乎實(shí)況的屏幕圖像來(lái)更新,所以可以減少客戶機(jī)計(jì)算機(jī)所需的帶寬量??梢允褂秒p緩沖或者雙緩沖和維護(hù) FIFO(先進(jìn)先出)隊(duì)列的組合來(lái)通過(guò)使用中間計(jì)算機(jī)實(shí)現(xiàn)屏幕共享。提供本發(fā)明內(nèi)容是為了以精簡(jiǎn)的形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。


在附圖中圖Ia示出了根據(jù)此處所公開(kāi)的主題的各方面的實(shí)現(xiàn)桌面屏幕共享的系統(tǒng)100的示例;圖Ib示出了根據(jù)此處所公開(kāi)的主題的各方面的使用FIFO隊(duì)列來(lái)實(shí)現(xiàn)桌面屏幕共享的系統(tǒng)100a的示例;圖Ic示出了根據(jù)此處所公開(kāi)的主題的各方面的使用雙緩沖來(lái)實(shí)現(xiàn)桌面屏幕共享的系統(tǒng)IOOb的示例;圖Id示出了根據(jù)此處所公開(kāi)的主題的各方面的使用FIFO隊(duì)列和雙緩沖來(lái)實(shí)現(xiàn)桌面屏幕共享的系統(tǒng)IOOc的示例;圖2是根據(jù)此處所公開(kāi)的主題的各方面的用于使用雙緩沖來(lái)進(jìn)行桌面屏幕共享的方法300的示例的流程圖;以及圖3是示出其中可實(shí)現(xiàn)此處所公開(kāi)的主題的各方面的計(jì)算環(huán)境的示例的框圖。
具體實(shí)施例方式概覽在包括支持和維護(hù)應(yīng)用程序、網(wǎng)絡(luò)會(huì)議等在內(nèi)的屏幕共享應(yīng)用程序中,用戶必須與支持工程師或同事和/或其他用戶共享他的計(jì)算機(jī)屏幕。屏幕共享可涉及在用戶計(jì)算機(jī)(主計(jì)算機(jī))上運(yùn)行的主計(jì)算機(jī)程序,以及在支持工程師的計(jì)算機(jī)或其他用戶的計(jì)算機(jī) (客戶機(jī)計(jì)算機(jī))上運(yùn)行的客戶機(jī)計(jì)算機(jī)程序。主計(jì)算機(jī)和客戶機(jī)計(jì)算機(jī)連接到網(wǎng)絡(luò),諸如 LAN、WAN或因特網(wǎng)。這些計(jì)算機(jī)通常由一個(gè)或多個(gè)防火墻來(lái)保護(hù)。防火墻通過(guò)阻塞到受保護(hù)計(jì)算機(jī)的入站連接來(lái)保護(hù)計(jì)算機(jī)免遭來(lái)自諸如因特網(wǎng)之類的外部網(wǎng)絡(luò)的攻擊。防火墻允許訪問(wèn)例如從受保護(hù)計(jì)算機(jī)到因特網(wǎng)的出站連接。如果主計(jì)算機(jī)受到防火墻保護(hù),則客戶機(jī)計(jì)算機(jī)連接到主計(jì)算機(jī)的嘗試將被防火墻阻止,因?yàn)樵撨B接是入站連接。為了克服該限制并且繞過(guò)網(wǎng)絡(luò)安全措施,在客戶機(jī)計(jì)算機(jī)和主計(jì)算機(jī)之間建立連接可以使用第三計(jì)算機(jī)作為客戶機(jī)計(jì)算機(jī)和主計(jì)算機(jī)之間的中介來(lái)間接地實(shí)現(xiàn)。在一種方法中,主計(jì)算機(jī)首先發(fā)送其整個(gè)屏幕圖像的快照。該快照被稱為關(guān)鍵幀。 在發(fā)送初始快照后,差別屏幕編碼器隨后只發(fā)送已編碼的屏幕圖像的已改變部分。只發(fā)送已編碼形式的屏幕圖像的已改變部分通常減少傳送動(dòng)畫屏幕所需的存儲(chǔ)器和帶寬。一種這樣的編碼器是微軟研究院的Titanium編碼器,但存在本領(lǐng)域內(nèi)已知的許多編碼器。因此, 屏幕的已改變部分由編碼器編碼并被周期性地發(fā)送到中間計(jì)算機(jī)。中間計(jì)算機(jī)可將已編碼的屏幕圖像更新存儲(chǔ)在存儲(chǔ)器中的FIFO(先進(jìn)先出)隊(duì)列中直到客戶機(jī)計(jì)算機(jī)請(qǐng)求更新。 客戶機(jī)計(jì)算機(jī)以服務(wù)器從主計(jì)算機(jī)接收到更新的次序來(lái)接收這些更新并且在客戶機(jī)計(jì)算機(jī)上重放這些更新。雖然該過(guò)程有時(shí)能夠工作良好,但當(dāng)網(wǎng)絡(luò)緩慢、存在計(jì)算機(jī)硬件限制或出于其他原因時(shí),從主計(jì)算機(jī)到客戶機(jī)計(jì)算機(jī)的已編碼信息流可能減緩。例如,當(dāng)客戶機(jī)計(jì)算機(jī)慢于主計(jì)算機(jī)時(shí),中間計(jì)算機(jī)上的隊(duì)列可能變大,從而耗盡或消耗中間計(jì)算機(jī)的存儲(chǔ)器。一種可能的解決方案是減緩來(lái)自主計(jì)算機(jī)的更新的發(fā)送或者請(qǐng)求主計(jì)算機(jī)發(fā)送關(guān)鍵幀以使得中間幀能夠被丟棄。因?yàn)殛P(guān)鍵幀包括整個(gè)屏幕的內(nèi)容,所以關(guān)鍵幀通常更大并因此通過(guò)網(wǎng)絡(luò)傳送關(guān)鍵幀更為資源昂貴。因此,發(fā)送關(guān)鍵幀也可減緩客戶機(jī)計(jì)算機(jī)。如果誤算輪詢間隔或者客戶機(jī)計(jì)算機(jī)的速度波動(dòng),則減緩主計(jì)算機(jī)上的更新間隔可能不如預(yù)期那樣工作。同樣,如果存在具有不同網(wǎng)絡(luò)速度和不同硬件的多個(gè)客戶機(jī),則所有客戶機(jī)計(jì)算機(jī)都將被具有最慢速度的客戶機(jī)計(jì)算機(jī)減緩。根據(jù)此處所公開(kāi)的主題的各方面,描述了一種雙緩沖方法,其中在中間計(jì)算機(jī)上為會(huì)話重新創(chuàng)建主計(jì)算機(jī)的屏幕圖像。當(dāng)已編碼數(shù)據(jù)(例如,關(guān)鍵幀數(shù)據(jù)和屏幕圖像更新數(shù)據(jù))被傳遞至中間計(jì)算機(jī)時(shí),該中間計(jì)算機(jī)可將該數(shù)據(jù)解碼成其原始格式,并且可將從主計(jì)算機(jī)接收到的初始關(guān)鍵幀存儲(chǔ)在存儲(chǔ)器中的緩沖區(qū)中,并且可對(duì)所存儲(chǔ)的主機(jī)屏幕圖像應(yīng)用屏幕圖像更新。結(jié)果,服務(wù)器始終具有主計(jì)算機(jī)的“幾乎實(shí)況”的屏幕圖像。當(dāng)客戶機(jī)計(jì)算機(jī)加入屏幕共享會(huì)話時(shí),中間計(jì)算機(jī)可以為該客戶機(jī)計(jì)算機(jī)創(chuàng)建屏幕編碼器的實(shí)例。屏幕編碼器和客戶機(jī)計(jì)算機(jī)具有的屏幕圖像的最新版本可被存儲(chǔ)在中間計(jì)算機(jī)上的第二緩沖區(qū)中。可以在中間計(jì)算機(jī)上為加入會(huì)話的每一個(gè)客戶機(jī)計(jì)算機(jī)創(chuàng)建屏幕編碼器的實(shí)例,并且可以為每一個(gè)客戶機(jī)計(jì)算機(jī)在第二緩沖區(qū)中存儲(chǔ)主機(jī)屏幕圖像的最新版本的副本。當(dāng)客戶機(jī)計(jì)算機(jī)請(qǐng)求更新時(shí),編碼器將第一緩沖區(qū)中的主機(jī)計(jì)算機(jī)的幾乎實(shí)況的屏幕圖像與為客戶機(jī)計(jì)算機(jī)存儲(chǔ)在第二緩沖區(qū)中的的主機(jī)屏幕圖像的最新版本進(jìn)行比較,以創(chuàng)建已編碼的屏幕圖像更新來(lái)發(fā)送到客戶機(jī)計(jì)算機(jī)。由此,每一個(gè)客戶機(jī)計(jì)算機(jī)都能夠獨(dú)立地與中間計(jì)算機(jī)一起工作,如它想要得那樣頻繁或不頻繁地并以其自己的速度向中間計(jì)算機(jī)請(qǐng)求屏幕更新,而不阻礙任一其他客戶機(jī)計(jì)算機(jī)。此外,當(dāng)客戶機(jī)計(jì)算機(jī)連接到會(huì)話時(shí),客戶機(jī)計(jì)算機(jī)接收主計(jì)算機(jī)的幾乎實(shí)時(shí)的圖像而不是初始關(guān)鍵幀,以及必須通過(guò)網(wǎng)絡(luò)傳送、解碼的所有更新和在客戶機(jī)計(jì)算機(jī)上重放的更新。其他方法中的存儲(chǔ)屏幕圖像更新的FIFO隊(duì)列是不必要的。中間計(jì)算機(jī)上的由每一個(gè)客戶機(jī)計(jì)算機(jī)消耗的存儲(chǔ)器量是固定或恒定的。該存儲(chǔ)器量不隨FIFO隊(duì)列的大小而增大或縮小。上述方法在網(wǎng)絡(luò)速度波動(dòng)和/或存在具有不同網(wǎng)絡(luò)帶寬和硬件處理速度能力的多個(gè)客戶機(jī)計(jì)算機(jī)的時(shí)候工作良好。在中間計(jì)算機(jī)上顯示主計(jì)算機(jī)屏幕圖像時(shí)的延遲被減少至由網(wǎng)絡(luò)等待時(shí)間引起的延遲。雖然上述方法在客戶機(jī)計(jì)算機(jī)慢于主計(jì)算機(jī)時(shí)通常是有利的,但例如當(dāng)客戶機(jī)計(jì)算機(jī)快于主計(jì)算機(jī)或者主計(jì)算機(jī)和客戶機(jī)計(jì)算機(jī)的速度匹配時(shí),該方法能夠消耗中間計(jì)算機(jī)的更多資源是可能的。在這種情況下,可以應(yīng)用使用FIFO隊(duì)列和雙緩沖方法兩者的混合方法,或者動(dòng)態(tài)算法可以驅(qū)動(dòng)各種方法之間的切換,如下文中更全面地描述的。使用雙緩沖的桌面屏幕共享圖Ia示出了根據(jù)此處所公開(kāi)的主題的各方面的用于桌面屏幕共享的系統(tǒng)100的示例。系統(tǒng)100的全部或部分可駐留在諸如以下參照?qǐng)D3描述的計(jì)算機(jī)之類的一個(gè)或多個(gè)計(jì)算機(jī)上。系統(tǒng)100或其部分可以被提供為獨(dú)立系統(tǒng)或插件或附件。系統(tǒng)100在其上執(zhí)行的計(jì)算機(jī)可以是主計(jì)算機(jī)110和諸如客戶機(jī)計(jì)算機(jī)1112、客戶機(jī)計(jì)算機(jī)2113等一個(gè)或多個(gè)客戶機(jī)計(jì)算機(jī)之間的中間計(jì)算機(jī)102。中間計(jì)算機(jī)102可以是web服務(wù)器計(jì)算機(jī)或代理服務(wù)器或網(wǎng)關(guān)。如果中間計(jì)算機(jī)102是web服務(wù)器,則中間計(jì)算機(jī)102缺少軟件并且缺少繞過(guò)存在于代理服務(wù)器或網(wǎng)關(guān)上的防火墻或共享IP限制的硬件。中間計(jì)算機(jī)102可擔(dān)當(dāng)中介,以使得能夠通過(guò)允許第一計(jì)算機(jī)(其上運(yùn)行客戶機(jī)程序的計(jì)算機(jī))查看第二計(jì)算機(jī)(其上運(yùn)行主機(jī)程序的主計(jì)算機(jī))的桌面會(huì)話并且允許第一計(jì)算機(jī)擔(dān)當(dāng)?shù)诙?jì)算機(jī)的輸入設(shè)備輸入(例如,鍵盤輸入、鼠標(biāo)輸入、指示筆輸入等)的主人來(lái)“控制”第二計(jì)算機(jī)。中間計(jì)算機(jī)102可以是用于在主計(jì)算機(jī)110和諸如客戶機(jī)計(jì)算機(jī) 1112、客戶機(jī)計(jì)算機(jī)2113等多個(gè)客戶機(jī)計(jì)算機(jī)之間共享的web會(huì)議或應(yīng)用程序的中間計(jì)算機(jī)。中間計(jì)算機(jī)102可包括以下各項(xiàng)中的一個(gè)或多個(gè)處理器(諸如處理器142)、存儲(chǔ)器144、以及用于桌面屏幕共享的一個(gè)或多個(gè)模塊104。本領(lǐng)域公知的其他組件也可被包括其中但不在這里示出??梢岳斫猓糜谧烂嫫聊还蚕淼囊粋€(gè)或多個(gè)模塊104可被加載到存儲(chǔ)器144中以使得諸如處理器142等一個(gè)或多個(gè)處理器執(zhí)行歸于用于桌面屏幕共享的一個(gè)或多個(gè)模塊的動(dòng)作。系統(tǒng)100可以包括以下各項(xiàng)中的一個(gè)或多個(gè)屏幕共享會(huì)話106和高速緩存108。根據(jù)此處所公開(kāi)的主題的各方面,主計(jì)算機(jī)110可連接到中間計(jì)算機(jī)102并且請(qǐng)求中間計(jì)算機(jī)102創(chuàng)建諸如屏幕共享會(huì)話106等新會(huì)話。如果中間計(jì)算機(jī)102是web服務(wù)器,則主計(jì)算機(jī)110可連接到該web服務(wù)器并且使用HTTPGET或POST命令來(lái)請(qǐng)求該web服務(wù)器使用安全(HTTPS)和非安全(HTTP)通信來(lái)創(chuàng)建諸如屏幕共享會(huì)話106等新會(huì)話。web 服務(wù)器可以從主機(jī)計(jì)算機(jī)110接收該通信,并且作為響應(yīng)可建立所請(qǐng)求的會(huì)話(例如,屏幕共享會(huì)話106),并且可經(jīng)由HTTP GET或POST命令來(lái)將會(huì)話的會(huì)話專用標(biāo)識(shí)符返回給主計(jì)算機(jī)110。由于web服務(wù)器可具有多個(gè)不同的用戶的會(huì)話,因此會(huì)話專用標(biāo)識(shí)符可提供為該特定主機(jī)(以及可加入會(huì)話的任何客戶機(jī)計(jì)算機(jī))標(biāo)識(shí)會(huì)話的機(jī)制。主計(jì)算機(jī)110可使用編解碼器,諸如但不限于諸如Microsoft Titanium編解碼器等屏幕編解碼器、諸如 Direct Stream Digital、自由無(wú)損音頻編解碼器等音頻編解碼器、諸如BiM、連續(xù)媒體標(biāo)記語(yǔ)言等文本編解碼器、諸如Alpary或Blaclcbird等視頻編解碼器、或者任何有損或無(wú)損編解碼器,無(wú)論是現(xiàn)在已知的還是將來(lái)開(kāi)發(fā)的。根據(jù)此處所公開(kāi)的主題的各方面,可使用編解碼器來(lái)向中間計(jì)算機(jī)102發(fā)送已編碼屏幕圖像和已編碼的屏幕圖像更新。編解碼器是能夠編碼和/或解碼數(shù)字?jǐn)?shù)據(jù)流或信號(hào)或其他數(shù)據(jù)流或信號(hào)的設(shè)備或計(jì)算機(jī)程序。編解碼器編碼數(shù)據(jù)流或信號(hào)以便傳輸、存儲(chǔ)或加密,或者解碼數(shù)據(jù)流或信號(hào)以便回放或編輯。編解碼器可用于視頻會(huì)議和流媒體應(yīng)用程序。例如,攝像機(jī)的模數(shù)轉(zhuǎn)換器(ADC)可將模擬照相機(jī)的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。數(shù)字信號(hào)然后可通過(guò)視頻壓縮器來(lái)傳遞以便進(jìn)行數(shù)字傳輸或存儲(chǔ)。接收設(shè)備可通過(guò)視頻解壓器來(lái)運(yùn)行信號(hào)并且然后通過(guò)數(shù)模轉(zhuǎn)換器(DAC)來(lái)進(jìn)行模擬顯示。根據(jù)此處所公開(kāi)的主題的各方面,主計(jì)算機(jī)110可使用編解碼器來(lái)通過(guò)使用HTTP GET或POST命令向web服務(wù)器發(fā)布初始已編碼屏幕圖像和/或已編碼的差別屏幕圖像更新。圖像的發(fā)布能夠以規(guī)則(恒定)的間隔或以變化的間隔進(jìn)行。每一個(gè)屏幕圖像更新都能夠加上時(shí)間戳以便在客戶機(jī)計(jì)算機(jī)1112上按時(shí)間順序重放。web服務(wù)器可將屏幕圖像和屏幕圖像更新作為先進(jìn)先出(FIFO)列表高速緩存在存儲(chǔ)器中(例如,高速緩存108中)。 web服務(wù)器可指示主計(jì)算機(jī)110改變其屏幕圖像更新間隔或屏幕分辨率。諸如客戶機(jī)計(jì)算機(jī)1112、客戶機(jī)計(jì)算機(jī)2113等一個(gè)或多個(gè)客戶機(jī)計(jì)算機(jī)可連接到web服務(wù)器并使用HTTP GET或POST命令來(lái)請(qǐng)求加入由會(huì)話專用標(biāo)識(shí)符標(biāo)識(shí)的屏幕共享會(huì)話106??蛻魴C(jī)計(jì)算機(jī),即客戶機(jī)計(jì)算機(jī)1112、客戶機(jī)計(jì)算機(jī)2113等可以指定屏幕共享會(huì)話106的會(huì)話專用標(biāo)識(shí)符,或者本領(lǐng)域內(nèi)已知的會(huì)話管理軟件可管理主計(jì)算機(jī)110和客戶機(jī)計(jì)算機(jī)之間的會(huì)話發(fā)起??蛻魴C(jī)計(jì)算機(jī),即客戶機(jī)計(jì)算機(jī)1112、客戶機(jī)計(jì)算機(jī)2113等使用HTTPGET或POST命令來(lái)向web服務(wù)器請(qǐng)求由會(huì)話專用標(biāo)識(shí)符ID標(biāo)識(shí)的屏幕共享會(huì)話 106的最新或當(dāng)前屏幕圖像??蛻魴C(jī)計(jì)算機(jī)(例如,客戶機(jī)計(jì)算機(jī)111 還可使用HTTP GET 或POST命令來(lái)向web服務(wù)器發(fā)送在客戶機(jī)計(jì)算機(jī)1112處始發(fā)的任何用戶設(shè)備輸入事件。web服務(wù)器可跟蹤從該web服務(wù)器傳送至客戶機(jī)計(jì)算機(jī)的屏幕圖像和屏幕圖像更新,并且可以使用一個(gè)或多個(gè)HTTP GET或POST命令向客戶機(jī)計(jì)算機(jī)僅發(fā)送已更新的屏幕圖像。發(fā)送到客戶機(jī)計(jì)算機(jī)1112的屏幕圖像數(shù)據(jù)可任選地發(fā)自FIFO列表高速緩存108中的存儲(chǔ)。web服務(wù)器可將所有已更新的屏幕圖像數(shù)據(jù)作為一個(gè)分組發(fā)送或者可以在多個(gè)分組中發(fā)送已更新的屏幕圖像數(shù)據(jù)。屏幕可作為JSON對(duì)象或以任何其他方式發(fā)送。客戶機(jī)計(jì)算機(jī)1112可處理從web服務(wù)器接收到的屏幕更新。所述過(guò)程可以繼續(xù)直到屏幕共享會(huì)話106被關(guān)閉。所述過(guò)程可用于允許客戶機(jī)計(jì)算機(jī)1112控制主計(jì)算機(jī)110并且允許客戶機(jī)計(jì)算機(jī)1112擔(dān)當(dāng)主計(jì)算機(jī)110的鍵盤和鼠標(biāo)輸入的主人。屏幕共享會(huì)話106可由主計(jì)算機(jī)110或客戶機(jī)計(jì)算機(jī)1112或web服務(wù)器102關(guān)閉。所述過(guò)程可用于允許一組計(jì)算機(jī) (例如,客戶機(jī)計(jì)算機(jī)1112、客戶機(jī)計(jì)算機(jī)2113等)在諸如與主計(jì)算機(jī)110的網(wǎng)絡(luò)會(huì)議等屏幕共享或應(yīng)用程序共享會(huì)話中協(xié)作。發(fā)布屏幕更新的間隔可由web服務(wù)器根據(jù)FIFO列表中等待使用HTTPGET或POST 命令來(lái)發(fā)送到客戶機(jī)計(jì)算機(jī)的屏幕更新分組的數(shù)量來(lái)改變。例如,慢于主計(jì)算機(jī)的客戶機(jī)計(jì)算機(jī)可導(dǎo)致高速緩存108中的FIFO列表變得比所需要的大。作為響應(yīng),web服務(wù)器可告知主計(jì)算機(jī)110減緩其更新間隔(例如,增加更新之間的時(shí)間間隔)。類似地,如果高速緩存108中的FIFO列表在更新大小或數(shù)量方面變得非常小,則web服務(wù)器可告知主計(jì)算機(jī) 110提高更新間隔的速度(即,減小更新間隔以使得在給定時(shí)間段內(nèi)作出更多更新)。確定更新間隔的公式可以是其中間隔長(zhǎng)度直接與FIFO列表中的待決項(xiàng)的大小或數(shù)量成比例的線性等式?;蛘?,中間計(jì)算機(jī)102可以是代理服務(wù)器或網(wǎng)關(guān),并且更新可被如參考圖Ib描述地應(yīng)用于客戶機(jī)計(jì)算機(jī)。圖Ib示出了根據(jù)此處所公開(kāi)的主題的各方面的用于桌面屏幕共享的系統(tǒng)100a的示例。系統(tǒng)100a的全部或部分可駐留在諸如以下參照?qǐng)D3描述的計(jì)算機(jī)之類的一個(gè)或多個(gè)計(jì)算機(jī)上。系統(tǒng)100a或其部分可以被提供為獨(dú)立系統(tǒng)或插件或附件。系統(tǒng)100在其上執(zhí)行的計(jì)算機(jī)可以是主計(jì)算機(jī)IlOa和諸如客戶機(jī)計(jì)算機(jī)1112a、 客戶機(jī)計(jì)算機(jī)2113a等一個(gè)或多個(gè)客戶機(jī)計(jì)算機(jī)之間的中間計(jì)算機(jī),諸如中間計(jì)算機(jī) 10加。中間計(jì)算機(jī)10 可以是如以上參考圖Ia描述的web服務(wù)器計(jì)算機(jī)或代理服務(wù)器或網(wǎng)關(guān)。中間計(jì)算機(jī)10 可包括以下各項(xiàng)中的一個(gè)或多個(gè)處理器(諸如處理器142)、諸如存儲(chǔ)器144等存儲(chǔ)器、以及用于使用FIFO隊(duì)列來(lái)進(jìn)行遠(yuǎn)程桌面屏幕共享的一個(gè)或多個(gè)模塊10如。本領(lǐng)域公知的其他組件也可被包括其中但不在這里示出??梢岳斫?,用于使用 FIFO隊(duì)列來(lái)進(jìn)行遠(yuǎn)程桌面屏幕共享的一個(gè)或多個(gè)模塊10 可被加載到存儲(chǔ)器144中,以使得諸如處理器142等一個(gè)或多個(gè)處理器執(zhí)行歸于用于使用FIFO隊(duì)列來(lái)進(jìn)行遠(yuǎn)程桌面屏幕共享的一個(gè)或多個(gè)模塊10 的動(dòng)作。系統(tǒng)100a還可以包括以下各項(xiàng)中的一個(gè)或多個(gè)屏幕共享會(huì)話106a和諸如FIFO高速緩存108a等高速緩存。主計(jì)算機(jī)IlOa可包括用于編碼被發(fā)送到中間計(jì)算機(jī)10 的數(shù)據(jù)的編碼器lHa??蛻魴C(jī)計(jì)算機(jī)可包括諸如客戶機(jī)計(jì)算機(jī) 1112a上的解碼器1116和客戶機(jī)計(jì)算機(jī)2113a上的解碼器2117等用于解碼從中間計(jì)算機(jī) 10 接收到的已編碼數(shù)據(jù)的解碼器。根據(jù)此處所公開(kāi)的主題的各方面,主計(jì)算機(jī)IlOa可連接到中間計(jì)算機(jī)10 并且請(qǐng)求中間計(jì)算機(jī)10 創(chuàng)建諸如屏幕共享會(huì)話106a等新屏幕共享會(huì)話。作為響應(yīng),中間計(jì)算機(jī)10 可創(chuàng)建屏幕共享會(huì)話106a并且可創(chuàng)建高速緩存,諸如FIFO高速緩存108a。主計(jì)算機(jī)IlOa可首先向中間計(jì)算機(jī)10 發(fā)送被稱為關(guān)鍵幀的主機(jī)的整個(gè)屏幕的快照。中間計(jì)算機(jī)10 可將該關(guān)鍵幀存儲(chǔ)在FIFO高速緩存108a中,例如,在圖Ib中由 FIFO高速緩存108a中的關(guān)鍵幀120a示出。該關(guān)鍵幀還可被保留在主計(jì)算機(jī)IlOa的編碼器IHa的存儲(chǔ)器中。屏幕的已改變部分可由編碼器IHa編碼并可以周期性地被發(fā)送到中間計(jì)算機(jī)10加。中間計(jì)算機(jī)10 可將已編碼的差別屏幕圖像更新存儲(chǔ)在存儲(chǔ)器中的FIFO 高速緩存108a中,直到被一個(gè)或多個(gè)客戶機(jī)計(jì)算機(jī)請(qǐng)求。存儲(chǔ)在FIFO高速緩存108a中的已編碼的差別屏幕圖像更新在圖Ib中由更新1121a、更新2122a、更新3123a等到更新N 12 示出。盡管只在圖Ib中示出了一個(gè)會(huì)話,即屏幕共享會(huì)話106a,但可以理解,中間計(jì)算機(jī)10 可以為多組計(jì)算機(jī)(未示出)建立多個(gè)會(huì)話(未示出),將會(huì)話專用標(biāo)識(shí)符分配給與不同的計(jì)算機(jī)組相關(guān)聯(lián)的不同會(huì)話。諸如客戶機(jī)計(jì)算機(jī)1112a、客戶機(jī)計(jì)算機(jī)2113a等多個(gè)計(jì)算機(jī)可請(qǐng)求加入與主計(jì)算機(jī)IlOa相關(guān)聯(lián)的會(huì)話(例如,屏幕共享會(huì)話106a)。作為響應(yīng),中間計(jì)算機(jī)10 可向每一個(gè)客戶機(jī)計(jì)算機(jī)發(fā)送初始關(guān)鍵幀(關(guān)鍵幀120a),之后以中間計(jì)算機(jī)10 從主計(jì)算機(jī)IlOa 接收到更新的次序來(lái)發(fā)送這些更新。由此,在任何時(shí)刻,已經(jīng)加入屏幕共享會(huì)話106a的每一個(gè)客戶機(jī)計(jì)算機(jī)都可能已經(jīng)接收到、解碼了并應(yīng)用了不同數(shù)量的更新,在圖Ib中由具有指向更新NlMa的指針131a的客戶機(jī)1112a以及具有指向更新1121a的指針13 的客戶機(jī)計(jì)算機(jī)2113a示出。指針可由中間計(jì)算機(jī)10 或附連到會(huì)話的客戶機(jī)計(jì)算機(jī)來(lái)維護(hù)。圖Ic示出了根據(jù)此處所公開(kāi)的主題的各方面的使用雙緩沖來(lái)實(shí)現(xiàn)桌面屏幕共享的系統(tǒng)100b的示例。系統(tǒng)100b的全部或部分可駐留在諸如以下參照?qǐng)D3描述的計(jì)算機(jī)之類的一個(gè)或多個(gè)計(jì)算機(jī)上。系統(tǒng)100b或其部分可以被提供為獨(dú)立系統(tǒng)或插件或附件。系統(tǒng)100b在其上執(zhí)行的計(jì)算機(jī)可以是主計(jì)算機(jī)IlOb和諸如客戶機(jī)計(jì)算機(jī)1112b、 客戶機(jī)計(jì)算機(jī)211 等一個(gè)或多個(gè)客戶機(jī)計(jì)算機(jī)之間的中間計(jì)算機(jī)102b。中間計(jì)算機(jī)102b 可以是如以上參考圖Ia描述的web服務(wù)器計(jì)算機(jī)或代理服務(wù)器或網(wǎng)關(guān)。中間計(jì)算機(jī)102b可包括以下各項(xiàng)中的一個(gè)或多個(gè)處理器(諸如處理器142)、存儲(chǔ)器144、用于使用雙緩沖來(lái)進(jìn)行桌面屏幕共享的一個(gè)或多個(gè)模塊104b。本領(lǐng)域公知的其他組件也可被包括其中但不在這里示出??梢岳斫?,用于使用雙緩沖來(lái)進(jìn)行桌面屏幕共享的一個(gè)或多個(gè)模塊104b可被加載到存儲(chǔ)器144中,以使得諸如處理器142等一個(gè)或多個(gè)處理器執(zhí)行歸于用于使用雙緩沖來(lái)進(jìn)行桌面屏幕共享的一個(gè)或多個(gè)模塊104b的動(dòng)作。系統(tǒng) 100b還可以包括以下各項(xiàng)中的一個(gè)或多個(gè)屏幕共享會(huì)話106b以及由緩沖區(qū)1140b和緩沖區(qū)2142b表示的第一和第二緩沖區(qū)。主計(jì)算機(jī)IlOb可包括用于編碼被發(fā)送到中間計(jì)算機(jī)102b的數(shù)據(jù)的編碼器114b??蛻魴C(jī)計(jì)算機(jī)可包括諸如客戶機(jī)計(jì)算機(jī)1112b上的解碼器 1116b和客戶機(jī)計(jì)算機(jī)211 上的解碼器2117b等用于解碼從中間計(jì)算機(jī)102b接收到的已編碼數(shù)據(jù)的解碼器。根據(jù)此處所公開(kāi)的主題的各方面,描述了一種雙緩沖方法,其中在中間計(jì)算機(jī) 102b上為屏幕共享會(huì)話106b重新創(chuàng)建主計(jì)算機(jī)的屏幕圖像。當(dāng)中間計(jì)算機(jī)102b接收到已編碼的屏幕圖像更新數(shù)據(jù)時(shí),中間計(jì)算機(jī)102b解碼該更新并將其應(yīng)用于存儲(chǔ)器中的主機(jī)屏幕圖像。結(jié)果,中間計(jì)算機(jī)102b始終具有非常接近于主計(jì)算機(jī)的實(shí)況屏幕圖像的圖像, 如下文中更全面地描述的。
根據(jù)此處所公開(kāi)的主題的各方面,主計(jì)算機(jī)IlOb可連接到中間計(jì)算機(jī)102b并且請(qǐng)求中間計(jì)算機(jī)102b創(chuàng)建諸如屏幕共享會(huì)話106b等新會(huì)話。作為響應(yīng),中間計(jì)算機(jī)102b 可創(chuàng)建屏幕共享會(huì)話106b并且創(chuàng)建用于存儲(chǔ)重新創(chuàng)建的當(dāng)前圖像(例如,主計(jì)算機(jī)IlOb 的圖像0121b)的第一緩沖區(qū)(例如,緩沖區(qū)1140b)。緩沖區(qū)1140b還可包括諸如解碼器 0119b等用于解碼從主計(jì)算機(jī)IlOb接收到的已編碼信息的解碼器。例如,主計(jì)算機(jī)IlOb 可將表示關(guān)鍵幀的已編碼數(shù)據(jù)傳遞至中間計(jì)算機(jī)102b。中間計(jì)算機(jī)102b可使用解碼器 0119b來(lái)將已編碼數(shù)據(jù)解碼成其原始位圖格式并存儲(chǔ)該圖像,例如圖像0121b。當(dāng)中間計(jì)算機(jī)102b接收到表示對(duì)存儲(chǔ)器中的主機(jī)屏幕圖像的更新的已編碼數(shù)據(jù)時(shí),可由解碼器0119b 來(lái)解碼該更新并將其應(yīng)用于存儲(chǔ)器中的緩沖區(qū)140b中的主機(jī)屏幕圖像(圖像0121b)。結(jié)果,中間計(jì)算機(jī)102b具有主計(jì)算機(jī)的幾乎實(shí)況的屏幕圖像。可以在中間計(jì)算機(jī)102b的存儲(chǔ)器144中創(chuàng)建第二緩沖區(qū),例如緩沖區(qū)2142b??梢栽谥虚g計(jì)算機(jī)102b上的緩沖區(qū)2142b中為已經(jīng)加入屏幕共享會(huì)話106b的每一個(gè)客戶機(jī)計(jì)算機(jī)創(chuàng)建屏幕編碼器的實(shí)例。例如,可以在中間計(jì)算機(jī)102b上的緩沖區(qū)2142b中為客戶機(jī)計(jì)算機(jī)1112b創(chuàng)建編碼器1144b,并且可以在中間計(jì)算機(jī)102b上的緩沖區(qū)2142b中為客戶機(jī)計(jì)算機(jī)211 創(chuàng)建編碼器214 等,并且對(duì)于加入屏幕共享會(huì)話106b的每一個(gè)客戶機(jī)計(jì)算機(jī)以此類推。編碼器(例如,編碼器1144b、編碼器214 等)可使用主機(jī)屏幕的幾乎實(shí)況的屏幕圖像、圖像121b以及客戶機(jī)計(jì)算機(jī)具有的主機(jī)屏幕圖像的最新版本的副本來(lái)創(chuàng)建已編碼數(shù)據(jù)流以被傳遞至客戶機(jī)計(jì)算機(jī)。例如,當(dāng)客戶機(jī)計(jì)算機(jī)1112b連接到中間計(jì)算機(jī)102b并且請(qǐng)求更新時(shí),編碼器1144b可通過(guò)將圖像1130b與圖像0121b進(jìn)行比較來(lái)為客戶機(jī)計(jì)算機(jī)1112b創(chuàng)建已編碼的差別屏幕更新,并且將該已編碼的差別屏幕圖像發(fā)送到客戶機(jī)計(jì)算機(jī)1112b。圖像1130b然后被設(shè)為圖像0121b。類似地,當(dāng)客戶機(jī)計(jì)算機(jī)211 連接到中間計(jì)算機(jī)102b并且請(qǐng)求更新時(shí),編碼器214 可通過(guò)將圖像2131b與圖像0121b 進(jìn)行比較來(lái)為客戶機(jī)計(jì)算機(jī)211 創(chuàng)建已編碼的差別屏幕更新,并且將該已編碼的差別屏幕圖像發(fā)送到客戶機(jī)計(jì)算機(jī)2113b。圖像2131b然后被設(shè)為圖像0121b。連接到會(huì)話的每一個(gè)客戶機(jī)計(jì)算機(jī)由此能夠以其自己的速度獨(dú)立地與中間計(jì)算機(jī)102b以其一起工作。結(jié)果,當(dāng)客戶機(jī)計(jì)算機(jī)連接到會(huì)話時(shí),該客戶機(jī)計(jì)算機(jī)接收主計(jì)算機(jī)的幾乎實(shí)時(shí)的圖像;每一個(gè)客戶機(jī)都能夠如它想要得那樣頻繁或不頻繁地向服務(wù)器請(qǐng)求屏幕更新。中間計(jì)算機(jī)上的存儲(chǔ)圖像更新的FIFO隊(duì)列是不必要的。由中間計(jì)算機(jī)上的第一緩沖區(qū)使用的存儲(chǔ)器的量是固定或恒定的。中間計(jì)算機(jī)上的由每一個(gè)客戶機(jī)計(jì)算機(jī)消耗的存儲(chǔ)器量是固定或恒定的,中間計(jì)算機(jī)上的由所有客戶機(jī)計(jì)算機(jī)消耗的總存儲(chǔ)器量與加入屏幕共享會(huì)話的客戶機(jī)計(jì)算機(jī)的數(shù)量成比例。上述方法在網(wǎng)絡(luò)速度波動(dòng)以及存在具有不同網(wǎng)絡(luò)帶寬和硬件速度的多個(gè)客戶機(jī)的時(shí)候工作良好。在客戶機(jī)屏幕上顯示主機(jī)屏幕的延遲可能被減少至由網(wǎng)絡(luò)等待時(shí)間引起的延遲量。圖Id示出了根據(jù)此處所公開(kāi)的主題的各方面的用于使用如參考圖Ib描述的FIFO 隊(duì)列108b和如參考圖Ic描述的雙緩沖來(lái)進(jìn)行桌面屏幕共享的系統(tǒng)IOOc的示例。中間計(jì)算機(jī)102c可利用動(dòng)態(tài)算法來(lái)在使用FIFO隊(duì)列108b和使用緩沖區(qū)1140b和緩沖區(qū)2142b 的雙緩沖方法之間切換。例如,由某一指定因素或因素的組合觸發(fā),所有客戶機(jī)計(jì)算機(jī)都可以從使用雙緩沖切換至使用FIFO隊(duì)列,或者相反。另選地或另外地,一組客戶機(jī)計(jì)算機(jī)可被分配至FIFO方法,而另一組客戶機(jī)計(jì)算機(jī)可被分配至雙緩沖方法。例如,超出處理能力閾值的客戶機(jī)計(jì)算機(jī)(例如,客戶機(jī)計(jì)算機(jī)2113b)可被設(shè)為使用FIFO隊(duì)列108b,而所有其他客戶機(jī)計(jì)算機(jī)(例如,客戶機(jī)計(jì)算機(jī)1112b)可被設(shè)為使用雙緩沖方法??梢员O(jiān)視總體系統(tǒng)的性能并且基于中間計(jì)算機(jī)102c的存儲(chǔ)器使用量、cpu使用量等根據(jù)動(dòng)態(tài)算法技術(shù)來(lái)調(diào)整該性能。圖2是根據(jù)此處所公開(kāi)的主題的各方面的用于使用上述雙緩沖方法或雙緩沖和 FIFO隊(duì)列的組合來(lái)共享桌面屏幕的方法200的示例。圖2或其各部分可描述如參考以上圖 la-d描述的系統(tǒng)。如本領(lǐng)域技術(shù)人員將會(huì)理解的,下述動(dòng)作能夠以不同于圖2所描繪的順序發(fā)生。圖2中描繪的一些動(dòng)作可以是可任選的或者可以被省略。在202,中間計(jì)算機(jī)可以從請(qǐng)求屏幕共享會(huì)話的主計(jì)算機(jī)接收通信。在204,中間計(jì)算機(jī)可以為主計(jì)算機(jī)建立屏幕共享會(huì)話。中間計(jì)算機(jī)可以生成為主計(jì)算機(jī)建立的會(huì)話的會(huì)話專用標(biāo)識(shí)符,并且可將該會(huì)話專用標(biāo)識(shí)符發(fā)送到主計(jì)算機(jī)。在206,中間計(jì)算機(jī)可建立用于存儲(chǔ)解碼器以及用于存儲(chǔ)中間計(jì)算機(jī)具有的主計(jì)算機(jī)的最新屏幕圖像的副本的第一緩沖區(qū)。在208,中間計(jì)算機(jī)可以從主計(jì)算機(jī)接收已編碼屏幕圖像,諸如初始關(guān)鍵幀、后續(xù)關(guān)鍵幀或已編碼的差別屏幕圖像更新。在210,如果中間計(jì)算機(jī)接收到的已編碼屏幕信息表示關(guān)鍵幀,則該中間計(jì)算機(jī)可解碼該關(guān)鍵幀并將已解碼屏幕圖像存儲(chǔ)在第一緩沖區(qū)中。如果已編碼屏幕信息表示差別屏幕圖像更新,則中間計(jì)算機(jī)可解碼該差別屏幕圖像更新并將其應(yīng)用于第一緩沖區(qū)中的所存儲(chǔ)的已解碼屏幕圖像。在212,可由中間計(jì)算機(jī)從一個(gè)或多個(gè)客戶機(jī)計(jì)算機(jī)接收加入會(huì)話的請(qǐng)求。在 214,中間計(jì)算機(jī)可以為加入會(huì)話的每一個(gè)客戶機(jī)計(jì)算機(jī)創(chuàng)建編碼器的實(shí)例。中間計(jì)算機(jī)可建立為加入會(huì)話的每一個(gè)客戶機(jī)計(jì)算機(jī)存儲(chǔ)解碼器和屏幕圖像的第二緩沖區(qū)。在216,響應(yīng)于接收到來(lái)自客戶機(jī)計(jì)算機(jī)的對(duì)更新的請(qǐng)求,中間計(jì)算機(jī)可將該客戶機(jī)計(jì)算機(jī)的存儲(chǔ)在第二緩沖區(qū)中的最新屏幕圖像與第一緩沖區(qū)中的屏幕共享會(huì)話的屏幕圖像進(jìn)行比較,并且可以向客戶機(jī)計(jì)算機(jī)發(fā)送已編碼的差別屏幕圖像更新??扇芜x地,在218,由某一個(gè)或多個(gè)因素或條件觸發(fā),可由中間計(jì)算機(jī)創(chuàng)建用于存儲(chǔ)已編碼的差別屏幕圖像更新的FIFO隊(duì)列。在220,可以指定一組客戶機(jī)計(jì)算機(jī)使用FIFO 隊(duì)列來(lái)執(zhí)行屏幕共享,而另一組客戶機(jī)計(jì)算機(jī)可被設(shè)為使用雙緩沖來(lái)執(zhí)行屏幕共享,如上文中更全面地描述的。或者,在222,由某一個(gè)或多個(gè)受監(jiān)視的條件觸發(fā),可將對(duì)于所有客戶機(jī)計(jì)算機(jī)的屏幕共享模式切換為FIFO模式,并且在224,由某一個(gè)或多個(gè)受監(jiān)視的條件觸發(fā),可將對(duì)于所有客戶機(jī)計(jì)算機(jī)的屏幕共享模式切換回雙緩沖模式。該過(guò)程可以繼續(xù)直到屏幕共享會(huì)話被關(guān)閉。合適計(jì)算環(huán)境的示例為了提供有關(guān)本文所公開(kāi)的主題的各個(gè)方面的上下文,圖3以及以下討論旨在提供其中可以實(shí)現(xiàn)各實(shí)施例的合適計(jì)算環(huán)境510的簡(jiǎn)要概括描述。盡管本文所公開(kāi)的主題是在諸如程序模塊等由一個(gè)或多個(gè)計(jì)算機(jī)或其它計(jì)算設(shè)備執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的通用上下文中描述的,但本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,本文所公開(kāi)的主題的各部分還能夠結(jié)合其它程序模塊和/或硬件和軟件的組合來(lái)實(shí)現(xiàn)。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定數(shù)據(jù)類型的例程、程序、對(duì)象、物理人為產(chǎn)物、數(shù)據(jù)結(jié)構(gòu)等。通常,程序模塊的功能可以按需在各個(gè)實(shí)施例中進(jìn)行組合或分布。計(jì)算環(huán)境510只是合適的操作環(huán)境的一個(gè)示例,并且不旨在對(duì)此處所公開(kāi)的主題的使用范圍或功能提出任何限制。
參照?qǐng)D3,描述了計(jì)算機(jī)512形式的用于線性棧上高效恢復(fù)協(xié)同例程的計(jì)算設(shè)備。 計(jì)算機(jī)512可包括處理單元514、系統(tǒng)存儲(chǔ)器516和系統(tǒng)總線518。處理單元514可以是各種處理器中的任何一種。還可以使用雙微處理器及其他多處理器體系結(jié)構(gòu)作為處理單元 514。系統(tǒng)存儲(chǔ)器516可包括易失性存儲(chǔ)器520和非易失性存儲(chǔ)器522。非易失性存儲(chǔ)器 522可包括只讀存儲(chǔ)器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)或閃存。易失性存儲(chǔ)器520可包括可充當(dāng)外部高速緩沖存儲(chǔ)器的隨機(jī)存取存儲(chǔ)器(RAM)。系統(tǒng)總線518將包括系統(tǒng)存儲(chǔ)器516的系統(tǒng)物理人為產(chǎn)物耦合到處理單元514。系統(tǒng)總線518可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線、存儲(chǔ)控制器、外圍總線、外部總線或局部總線,并且可以使用各種可用總線體系結(jié)構(gòu)中的任一種。計(jì)算機(jī)512通常包括各種計(jì)算機(jī)可讀介質(zhì),諸如易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)可以通過(guò)用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)來(lái)實(shí)現(xiàn)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、 ROM、EEPR0M、閃存或其它存儲(chǔ)器技術(shù)、CDR0M、數(shù)字多功能盤(DVD)或其它光盤存儲(chǔ)、磁盒、 磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來(lái)儲(chǔ)存所期望的信息并可由計(jì)算機(jī)512訪問(wèn)的任何其他瞬態(tài)或非瞬態(tài)介質(zhì)。將理解,圖3描述了可充當(dāng)用戶與計(jì)算機(jī)資源之間的媒介的軟件。該軟件可以包括可存儲(chǔ)在盤存儲(chǔ)5M上的操作系統(tǒng)528,該操作系統(tǒng)可控制并分配計(jì)算機(jī)系統(tǒng)512的資源。盤存儲(chǔ)5M可以是通過(guò)諸如接口 5 的不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線518的硬盤驅(qū)動(dòng)器。系統(tǒng)應(yīng)用程序530利用由操作系統(tǒng)5 通過(guò)存儲(chǔ)在系統(tǒng)存儲(chǔ)器516中或者存儲(chǔ)在盤存儲(chǔ)524上的程序模塊532和程序數(shù)據(jù)534對(duì)資源的管理。應(yīng)該明白,計(jì)算機(jī)可用各種操作系統(tǒng)或操作系統(tǒng)的組合來(lái)實(shí)現(xiàn)。用戶可通過(guò)輸入設(shè)備536向計(jì)算機(jī)512輸入命令或信息。輸入設(shè)備536包括但不限于定點(diǎn)設(shè)備,諸如鼠標(biāo)、跟蹤球、指示筆、觸摸墊、鍵盤、話筒等。這些及其他輸入設(shè)備通過(guò)系統(tǒng)總線518經(jīng)由接口端口 538連接到處理單元514。接口端口 538可表示串行端口、并行端口、通用串行總線(USB)等。輸出設(shè)備540可與輸入設(shè)備使用相同類型的端口。提供輸出適配器M2以舉例說(shuō)明存在像監(jiān)視器、揚(yáng)聲器、以及打印機(jī)的需要特定適配器的一些輸出設(shè)備M0。輸出適配器542包括但不限于,在輸出設(shè)備540和系統(tǒng)總線518之間提供連接的視頻卡和聲卡。其他設(shè)備和/或設(shè)備系統(tǒng),諸如遠(yuǎn)程計(jì)算機(jī)M4,可提供輸入和輸出兩種能力。計(jì)算機(jī)512可以使用到諸如遠(yuǎn)程計(jì)算機(jī)544之類的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接來(lái)在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)544可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見(jiàn)的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括許多或所有以上相對(duì)于計(jì)算機(jī)512所描述的元件,但在圖4中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備M6。遠(yuǎn)程計(jì)算機(jī)544可經(jīng)由通信連接550邏輯地連接。網(wǎng)絡(luò)接口 548涵蓋諸如局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)這樣的通信網(wǎng)絡(luò),但也可包括其他網(wǎng)絡(luò)。通信連接550是指用來(lái)將網(wǎng)絡(luò)接口 548連接到總線518的硬件/軟件。連接 550可以在計(jì)算機(jī)512內(nèi)部或外部并且包括諸如調(diào)制解調(diào)器(電話、電纜、DSL和無(wú)線)和 ISDN適配器、以太網(wǎng)卡等內(nèi)部和外部技術(shù)。應(yīng)該理解,所示網(wǎng)絡(luò)連接僅是示例,并且可以使用在計(jì)算機(jī)之間建立通信鏈路的其它手段。本領(lǐng)域的普通技術(shù)人員可以理解,計(jì)算機(jī)512或其它客戶機(jī)設(shè)備可作為計(jì)算機(jī)網(wǎng)絡(luò)的一部分來(lái)部署。在這一點(diǎn)上,本文所公開(kāi)的主題涉及具有任意數(shù)量的存儲(chǔ)器或存儲(chǔ)單元以及在任意數(shù)量的存儲(chǔ)單元或卷上發(fā)生的任意數(shù)量的應(yīng)用程序和進(jìn)程的任何計(jì)算機(jī)系統(tǒng)。本文所公開(kāi)的主題的各方面可應(yīng)用于具有部署在網(wǎng)絡(luò)環(huán)境中的具有遠(yuǎn)程或本地存儲(chǔ)的服務(wù)器計(jì)算機(jī)和客戶計(jì)算機(jī)的環(huán)境。本文所公開(kāi)的主題的各方面也可應(yīng)用于具有編程語(yǔ)言功能、解釋和執(zhí)行能力的獨(dú)立計(jì)算設(shè)備。此處所述的各種技術(shù)可結(jié)合硬件或軟件,或在適當(dāng)時(shí)以其組合來(lái)實(shí)現(xiàn)。由此,本文所公開(kāi)的方法和裝置或其特定方面或部分可采取包含在諸如軟盤、CD-ROM、硬盤驅(qū)動(dòng)器或任何其它機(jī)器可讀存儲(chǔ)介質(zhì)等有形介質(zhì)中的程序代碼(即,指令)的形式,其中當(dāng)程序代碼被加載到諸如計(jì)算機(jī)等機(jī)器內(nèi)并由其執(zhí)行時(shí),該機(jī)器成為用于實(shí)現(xiàn)本文所公開(kāi)的主題的各方面的裝置。在程序代碼在可編程計(jì)算機(jī)上執(zhí)行的情況下,計(jì)算設(shè)備通常將包括處理器、該處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性的存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入設(shè)備、以及至少一個(gè)輸出設(shè)備。可例如通過(guò)使用數(shù)據(jù)處理API等來(lái)利用域?qū)S镁幊棠P透鞣矫娴膭?chuàng)建和/或?qū)崿F(xiàn)的一個(gè)或多個(gè)程序可用高級(jí)過(guò)程編程語(yǔ)言或面向?qū)ο蟮木幊陶Z(yǔ)言來(lái)實(shí)現(xiàn)以與計(jì)算機(jī)系統(tǒng)通信。然而,若有需要,程序也可以以以匯編或機(jī)器語(yǔ)言來(lái)實(shí)現(xiàn)。在任一情況下,語(yǔ)言都可以是編譯的或解釋的語(yǔ)言,并與硬件實(shí)現(xiàn)相結(jié)合。雖然已結(jié)合附圖描述了本文所公開(kāi)的主題,但是應(yīng)理解,可作出修改以按不同方式執(zhí)行相同功能。
權(quán)利要求
1.一種系統(tǒng)(100b),包括 中間計(jì)算機(jī)(102b);所述中間計(jì)算機(jī)(102b)包括處理器(142)和存儲(chǔ)器(144);以及所述中間計(jì)算機(jī)(102b)上的模塊(104b),所述模塊(104b)被配置成使所述處理器 (142)響應(yīng)于從主計(jì)算機(jī)(IlOb)接收請(qǐng)求所述中間計(jì)算機(jī)(102b)上的屏幕共享會(huì)話(106b) 的通信,在所述中間計(jì)算機(jī)(102b)上建立所述屏幕共享會(huì)話(106b);從提供包括已編碼關(guān)鍵幀的已編碼屏幕圖像的所述主計(jì)算機(jī)接收通信; 解碼所述已編碼關(guān)鍵幀并將已解碼關(guān)鍵幀存儲(chǔ)在所述中間計(jì)算機(jī)(102b)上的第一緩沖區(qū)(140b)中;從提供包括屏幕圖像更新的已編碼屏幕圖像的所述主計(jì)算機(jī)(IlOb)接收通信; 解碼所述已編碼屏幕圖像更新并且對(duì)所述第一緩沖區(qū)(140b)中的所存儲(chǔ)的關(guān)鍵幀應(yīng)用已解碼的屏幕圖像更新,以創(chuàng)建幾乎實(shí)況的主機(jī)屏幕圖像(121b);從多個(gè)客戶機(jī)計(jì)算機(jī)(112b、113b等)中的至少一個(gè)客戶機(jī)計(jì)算機(jī)接收通信,所述通信包括所述至少一個(gè)客戶機(jī)計(jì)算機(jī)(112b或113b等)的加入所述中間計(jì)算機(jī)(102b)上的所述屏幕共享會(huì)話(106b)的請(qǐng)求;在所述中間計(jì)算機(jī)(102b)上在第二緩沖區(qū)(142b)中為所述多個(gè)客戶機(jī)計(jì)算機(jī)(112b、 113b等)中的向所述中間計(jì)算機(jī)(102b)發(fā)送會(huì)話加入請(qǐng)求的每一個(gè)客戶機(jī)計(jì)算機(jī)(112b 或113b等)創(chuàng)建編碼器的實(shí)例,所述第二緩沖區(qū)(142b)還包括所述多個(gè)客戶機(jī)計(jì)算機(jī) (112b、113b等)中的發(fā)送所述會(huì)話加入請(qǐng)求的每一個(gè)客戶機(jī)計(jì)算機(jī)(112b或113b等)的主機(jī)屏幕圖像(130b、131b等)的最新版本;響應(yīng)于接收到來(lái)自所述至少一個(gè)客戶機(jī)計(jì)算機(jī)(112b、113b等)的更新請(qǐng)求,向所述至少一個(gè)客戶機(jī)計(jì)算機(jī)(112b或113b等)發(fā)送已編碼的差別屏幕圖像更新,所述已編碼的差別屏幕圖像更新包括所述至少一個(gè)客戶機(jī)計(jì)算機(jī)(112b或113b等)的所述主機(jī)屏幕圖像的所述最新版本與所述第一緩沖區(qū)(140b)中的所述幾乎實(shí)況的主機(jī)屏幕圖像之間的差別。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述中間計(jì)算機(jī)是web服務(wù)器而不是代理服務(wù)器,并且其中所述主計(jì)算機(jī)和所述中間計(jì)算機(jī)之間以及所述中間計(jì)算機(jī)和所述至少一個(gè)計(jì)算機(jī)之間的通信是經(jīng)由HTTP命令來(lái)發(fā)送的。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述中間計(jì)算機(jī)創(chuàng)建用于存儲(chǔ)來(lái)自所述主計(jì)算機(jī)的已編碼的屏幕圖像更新的FIFO隊(duì)列,并且將從所述主計(jì)算機(jī)接收到的所述已編碼的屏幕圖像更新存儲(chǔ)在所述FIFO隊(duì)列中。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,第一組客戶機(jī)計(jì)算機(jī)的已編碼的屏幕圖像更新被存儲(chǔ)在所述FIFO隊(duì)列中,并且其中第二組客戶機(jī)計(jì)算機(jī)的已編碼的屏幕圖像更新通過(guò)以下操作來(lái)生成將所述幾乎實(shí)況的主機(jī)屏幕圖像與所述第二組客戶機(jī)計(jì)算機(jī)中的客戶機(jī)計(jì)算機(jī)的主機(jī)屏幕圖像的最新版本進(jìn)行比較以便為所述客戶機(jī)計(jì)算機(jī)生成已編碼的差別屏幕圖像更新。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,與加入所述屏幕共享會(huì)話的客戶機(jī)計(jì)算機(jī)的數(shù)量成比例的存儲(chǔ)器量用于所述中間計(jì)算機(jī)上的所述第二緩沖區(qū)。
6.一種方法000),包括響應(yīng)于從請(qǐng)求所述中間計(jì)算機(jī)上的屏幕共享會(huì)話的主計(jì)算機(jī)接收通信Q02),在所述中間計(jì)算機(jī)上建立所述屏幕共享會(huì)話;從提供包括已編碼關(guān)鍵幀的已編碼屏幕圖像的所述主計(jì)算機(jī)接收通信O08);解碼所述已編碼關(guān)鍵幀并將已解碼關(guān)鍵幀存儲(chǔ)在所述中間計(jì)算機(jī)上的第一緩沖區(qū)中 (210);從提供包括差別屏幕圖像更新的已編碼屏幕圖像的所述主計(jì)算機(jī)接收通信O08);解碼所述差別屏幕圖像更新并且對(duì)所述第一緩沖區(qū)中的所存儲(chǔ)的關(guān)鍵幀應(yīng)用已解碼的差別屏幕圖像更新,以在所述第一緩沖區(qū)中創(chuàng)建幾乎實(shí)況的主機(jī)屏幕圖像O10);從多個(gè)客戶機(jī)計(jì)算機(jī)中的至少一個(gè)客戶機(jī)計(jì)算機(jī)接收請(qǐng)求加入所述中間計(jì)算機(jī)上的所述屏幕共享會(huì)話的通信012);在所述中間計(jì)算機(jī)上創(chuàng)建第二緩沖區(qū)014);在所述中間計(jì)算機(jī)上的第二緩沖區(qū)中為所述多個(gè)客戶機(jī)計(jì)算機(jī)中的發(fā)送會(huì)話加入請(qǐng)求的每一個(gè)客戶機(jī)計(jì)算機(jī)創(chuàng)建編碼器的實(shí)例,并且其中在所述第二緩沖區(qū)中為所述多個(gè)客戶機(jī)計(jì)算機(jī)中的發(fā)送所述會(huì)話加入請(qǐng)求的每一個(gè)客戶機(jī)計(jì)算機(jī)存儲(chǔ)主機(jī)屏幕圖像的一個(gè)版本的副本;響應(yīng)于接收到來(lái)自所述至少一個(gè)客戶機(jī)計(jì)算機(jī)的更新請(qǐng)求016),向所述至少一個(gè)客戶機(jī)計(jì)算機(jī)發(fā)送已編碼的差別屏幕圖像更新,所述差別屏幕圖像更新包括所述至少一個(gè)客戶機(jī)計(jì)算機(jī)的主機(jī)屏幕圖像的一個(gè)版本的副本與存儲(chǔ)在所述第一緩沖區(qū)中的所述幾乎實(shí)況的主機(jī)屏幕圖像之間的差別。
7.如權(quán)利要求6所述的方法,其特征在于,還包括其中在所述中間計(jì)算機(jī)上,對(duì)所述第一緩沖區(qū)使用恒定的存儲(chǔ)器量,并且其中對(duì)所述第二緩沖區(qū)使用與連接到所述屏幕共享會(huì)話的客戶機(jī)計(jì)算機(jī)的數(shù)量成比例的存儲(chǔ)器量。
8.如權(quán)利要求6所述的方法,其特征在于,還包括在所述中間計(jì)算機(jī)上創(chuàng)建FIFO隊(duì)列并且將從所述主計(jì)算機(jī)接收到的已編碼的屏幕圖像更新存儲(chǔ)在所述FIFO隊(duì)列中。
9.如權(quán)利要求6所述的方法,其特征在于,還包括由受監(jiān)視的條件觸發(fā),在將從所述主計(jì)算機(jī)接收到的已編碼的屏幕圖像更新存儲(chǔ)在所述FIFO中與將所述幾乎實(shí)況的主機(jī)屏幕圖像存儲(chǔ)在所述第一緩沖區(qū)中之間切換。
10.如權(quán)利要求8所述的方法,其特征在于,還包括將第一組客戶機(jī)計(jì)算機(jī)的已編碼的屏幕圖像更新存儲(chǔ)在所述FIFO隊(duì)列中,并且其中第二組客戶機(jī)計(jì)算機(jī)的已編碼的屏幕圖像更新通過(guò)以下操作來(lái)生成將所述第一緩沖區(qū)中的所述幾乎實(shí)況的主機(jī)屏幕圖像與所述第二組客戶機(jī)計(jì)算機(jī)中的每一個(gè)客戶機(jī)計(jì)算機(jī)的主機(jī)屏幕圖像的所述版本的所存儲(chǔ)的副本進(jìn)行比較以便為第二組客戶機(jī)計(jì)算機(jī)生成已編碼的差別屏幕圖像更新。
11.一種包括計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令在被執(zhí)行時(shí)使至少一個(gè)處理器響應(yīng)于從請(qǐng)求所述中間計(jì)算機(jī)上的屏幕共享會(huì)話的主計(jì)算機(jī)接收通信Q02),在所述中間計(jì)算機(jī)上建立所述屏幕共享會(huì)話(204);從提供包括已編碼關(guān)鍵幀的已編碼屏幕圖像的所述主計(jì)算機(jī)接收通信(208);解碼所述已編碼屏幕圖像并將已解碼關(guān)鍵幀存儲(chǔ)在所述中間計(jì)算機(jī)上的第一緩沖區(qū)中(210);從提供包括屏幕圖像更新的已編碼屏幕圖像的所述主計(jì)算機(jī)接收通信(208);解碼已編碼的屏幕圖像更新并且對(duì)所述第一緩沖區(qū)中的所存儲(chǔ)的關(guān)鍵幀應(yīng)用已解碼的屏幕圖像更新,以創(chuàng)建存儲(chǔ)在所述第一緩沖區(qū)中的幾乎實(shí)況的主機(jī)屏幕圖像(210);從多個(gè)客戶機(jī)計(jì)算機(jī)中的至少一個(gè)客戶機(jī)計(jì)算機(jī)接收通信,所述至少一個(gè)計(jì)算機(jī)請(qǐng)求加入所述中間計(jì)算機(jī)上的所述屏幕共享會(huì)話(212);在所述中間計(jì)算機(jī)上在第二緩沖區(qū)中為所述至少一個(gè)計(jì)算機(jī)創(chuàng)建編碼器的實(shí)例,所述第二緩沖區(qū)還為所述至少一個(gè)客戶機(jī)計(jì)算機(jī)存儲(chǔ)主機(jī)屏幕圖像的一個(gè)版本(214);響應(yīng)于接收到來(lái)自所述至少一個(gè)客戶機(jī)計(jì)算機(jī)的更新請(qǐng)求,向所述至少一個(gè)客戶機(jī)計(jì)算機(jī)發(fā)送已編碼的差別屏幕圖像更新,所述差別屏幕圖像更新包括所述主機(jī)屏幕圖像的所存儲(chǔ)的版本與所述第一緩沖區(qū)中的所述幾乎實(shí)況的主機(jī)屏幕圖像之間的差別(216)。
12.如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括被執(zhí)行時(shí)使得所述至少一個(gè)處理器執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令在所述中間計(jì)算機(jī)上創(chuàng)建FIFO隊(duì)列,并且將從所述主計(jì)算機(jī)接收到的已編碼的屏幕圖像更新存儲(chǔ)在所述FIFO隊(duì)列中。
13.如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括被執(zhí)行時(shí)使得所述至少一個(gè)處理器執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令在所述中間計(jì)算機(jī)上對(duì)所述第一緩沖區(qū)使用恒定的存儲(chǔ)器量,并且對(duì)所述第二緩沖區(qū)使用與加入所述屏幕共享會(huì)話的客戶機(jī)計(jì)算機(jī)的數(shù)量成比例的存儲(chǔ)器量。
14.如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括被執(zhí)行時(shí)使得所述至少一個(gè)處理器執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令將第一組客戶機(jī)計(jì)算機(jī)的已編碼的屏幕圖像更新存儲(chǔ)在所述FIFO隊(duì)列中,并且通過(guò)將所述第一緩沖區(qū)中的所述幾乎實(shí)況的主機(jī)屏幕圖像與第二組客戶機(jī)計(jì)算機(jī)的主機(jī)屏幕圖像的所存儲(chǔ)的版本進(jìn)行比較來(lái)為所述第二組客戶機(jī)計(jì)算機(jī)生成已編碼的屏幕圖像更新。
15.如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括被執(zhí)行時(shí)使得所述至少一個(gè)處理器執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令監(jiān)視指定條件,并且響應(yīng)于所述監(jiān)視,在將從所述主計(jì)算機(jī)接收到的已編碼的屏幕圖像更新存儲(chǔ)在所述FIFO中與將所述幾乎實(shí)況的主機(jī)屏幕圖像存儲(chǔ)在所述第一緩沖區(qū)中之間切換。
全文摘要
本發(fā)明涉及遠(yuǎn)程桌面共享。遠(yuǎn)程桌面共享允許用戶通過(guò)網(wǎng)絡(luò)訪問(wèn)遠(yuǎn)程計(jì)算機(jī)上的應(yīng)用程序和數(shù)據(jù)。中間計(jì)算機(jī)可以與主計(jì)算機(jī)以及一個(gè)或多個(gè)客戶機(jī)計(jì)算機(jī)通信以便于遠(yuǎn)程桌面共享。主機(jī)可向中間計(jì)算機(jī)發(fā)送已編碼關(guān)鍵幀和已編碼更新。中間計(jì)算機(jī)可解碼主機(jī)屏幕數(shù)據(jù),并且對(duì)已解碼圖像應(yīng)用后續(xù)更新,以使得中間計(jì)算機(jī)在第一緩沖區(qū)中具有幾乎實(shí)況的主機(jī)屏幕圖像。中間計(jì)算機(jī)上的第二緩沖區(qū)可存儲(chǔ)用于已經(jīng)加入會(huì)話的每一個(gè)客戶機(jī)計(jì)算機(jī)的屏幕編碼器的實(shí)例以及該客戶機(jī)計(jì)算機(jī)具有的最新主機(jī)圖像。編碼器將幾乎實(shí)況的屏幕圖像與所存儲(chǔ)的客戶機(jī)計(jì)算機(jī)主機(jī)圖像進(jìn)行比較,以創(chuàng)建供傳遞至客戶機(jī)計(jì)算機(jī)的已編碼的差別屏幕圖像更新。
文檔編號(hào)H04L29/06GK102238232SQ201110125188
公開(kāi)日2011年11月9日 申請(qǐng)日期2011年5月3日 優(yōu)先權(quán)日2010年5月4日
發(fā)明者J·辛格, M·林, N·克哈恩, T·T·歐門 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
驻马店市| 时尚| 泸定县| 西吉县| 托克逊县| 新郑市| 新巴尔虎右旗| 岑巩县| 满城县| 孝感市| 聂荣县| 道孚县| 华阴市| 九龙城区| 根河市| 井陉县| 收藏| 洪雅县| 资兴市| 台前县| 东阳市| 含山县| 教育| 朔州市| 东源县| 开原市| 吉首市| 乐东| 兴和县| 龙泉市| 衡阳县| 卢氏县| 彭泽县| 福清市| 通榆县| 博罗县| 陆河县| 开江县| 澄江县| 英德市| 万安县|