專利名稱:用于遠(yuǎn)程呈現(xiàn)會話的高效連接和路由的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)交互,尤其涉及遠(yuǎn)程呈現(xiàn)會話部署。
背景技術(shù):
雖然計算機(jī)曾經(jīng)一度是孤立的并且與其他計算機(jī)具有最小的或很少的交互,但是現(xiàn)在計算機(jī)通過局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、撥號連接等等與各種各樣的其他計算機(jī)進(jìn)行交互。隨著因特網(wǎng) 計算機(jī)網(wǎng)絡(luò)的廣泛增長,計算機(jī)之間的連接已經(jīng)變得更加重要并且已經(jīng)開發(fā)了許多新的應(yīng)用和技術(shù)。大規(guī)模網(wǎng)絡(luò)的增長以及低成本個人計算機(jī)的廣泛可用性已經(jīng)從根本上改變了許多人工作、交互、通信、以及玩樂的方式。聯(lián)網(wǎng)的一種日益增加的流行形式一般被稱為遠(yuǎn)程呈現(xiàn),其能使用諸如遠(yuǎn)程桌面協(xié)議(RDP)、獨立計算體系結(jié)構(gòu)(ICA)、以及其他協(xié)議等協(xié)議與遠(yuǎn)程客戶機(jī)共享桌面和其他應(yīng)用。這樣的計算系統(tǒng)通常將來自客戶機(jī)的鍵盤按壓和鼠標(biāo)點擊或選擇傳送到服務(wù)器,通過網(wǎng)絡(luò)連接(例如,因特網(wǎng) )將屏幕更新轉(zhuǎn)播回其他方向。由此,當(dāng)實際上僅僅向客戶機(jī)設(shè)備發(fā)送如在服務(wù)器側(cè)上出現(xiàn)的應(yīng)用的屏幕截圖時,用戶具有好像他們的機(jī)器正在本地執(zhí)行應(yīng)用的體驗。在要并發(fā)地提供許多遠(yuǎn)程呈現(xiàn)會話的環(huán)境中,諸如對于大型公司,這些遠(yuǎn)程呈現(xiàn)會話可由通常被稱為服務(wù)器場或部署的編組在一起的多個服務(wù)器或者一個物理服務(wù)器上的多個虛擬機(jī)(VM)來提供。該部署的各服務(wù)器可以扮演不同的角色或角色服務(wù)(角色被配置成為網(wǎng)絡(luò)中的多個用戶或其他計算機(jī)執(zhí)行特定功能)。例如,一個服務(wù)器可以擔(dān)當(dāng)將傳入的遠(yuǎn)程呈現(xiàn)會話請求分配給提供遠(yuǎn)程呈現(xiàn)會話的其他服務(wù)器的連接中介。遠(yuǎn)程呈現(xiàn)會話部署(如,虛擬化桌面基礎(chǔ)結(jié)構(gòu),即VDI部署)可能需要這些角色中的多個角色才能使該部署發(fā)揮作用。在VDI上下文中,例如,可存在(1)被配置成虛擬機(jī)重定向器的遠(yuǎn)程桌面服務(wù)主機(jī)(RDSH)角色,它接受來自客戶機(jī)的傳入的遠(yuǎn)程呈現(xiàn)會話連接; (2)確定多個遠(yuǎn)程呈現(xiàn)服務(wù)器(以及可能服務(wù)器中的多個VM)中的與該客戶機(jī)進(jìn)行該遠(yuǎn)程呈現(xiàn)會話的服務(wù)器的遠(yuǎn)程桌面連接中介(RDCB);以及(3)向該客戶機(jī)扮演遠(yuǎn)程呈現(xiàn)服務(wù)器的遠(yuǎn)程桌面虛擬化主機(jī)(RDVH)。從客戶機(jī)傳入的建立遠(yuǎn)程呈現(xiàn)會話的連接在RDSH角色處被接收,并隨后被路由到RDBC。在RDCB處,建立過程被分解成若干階段——仲裁、負(fù)載平衡、以及布置。RDCB隨后將呼叫重新路由到RDVH,以通過使VM在線并確保該VM準(zhǔn)備好接受遠(yuǎn)程呈現(xiàn)會話連接來完成配合的最終階段。這樣的部署的復(fù)雜性是由功能跨多個角色分布而引起的,這使得部署這種基礎(chǔ)結(jié)構(gòu)非常困難。使這一復(fù)雜性更甚的是,診斷具有跨若干機(jī)器邊界(虛擬機(jī)邊界或物理機(jī)邊界)的多跳的給定連接的難度使得難以監(jiān)視并診斷連接故障。
發(fā)明內(nèi)容
因此,修改遠(yuǎn)程呈現(xiàn)會話部署以將這樣的部署的各個角色組合在一個機(jī)器中(執(zhí)行“合并角色”的功能的那一個機(jī)器)將是一個改進(jìn)。用于部署的這一連接和路由模型的合并和簡化可以基于執(zhí)行合并角色的服務(wù)器上可用的信息的聚集,該信息的聚集是因為該服務(wù)器還主存提供遠(yuǎn)程呈現(xiàn)會話的VM而引起的。連接和路由模型的這一合并不僅簡化了該系統(tǒng)(如通過消除對連接中介的需求),而且還使該系統(tǒng)能夠執(zhí)行先前不能執(zhí)行的功能。例如,該經(jīng)合并的系統(tǒng)可以通過從客戶機(jī)到系統(tǒng)的單個連接來起作用,其中合并角色擔(dān)當(dāng)客戶機(jī)與主存同該客戶機(jī)的遠(yuǎn)程呈現(xiàn)會話的VM之間的代理或路由器。在一實施例中,服務(wù)器包括合并角色??蛻魴C(jī)連接到合并角色以建立遠(yuǎn)程呈現(xiàn)會話。合并角色在可提供遠(yuǎn)程呈現(xiàn)會話的服務(wù)器上的多個VM之間確定一 VM。合并角色通過執(zhí)行該合并角色的服務(wù)器上可用的信息的聚集來確定這一點。這一信息可以由于該服務(wù)器還主存提供遠(yuǎn)程呈現(xiàn)會話的VM而被聚集。合并角色向客戶機(jī)發(fā)送將提供該客戶機(jī)的遠(yuǎn)程呈現(xiàn)會話的VM的指示,并且該客戶機(jī)聯(lián)系該VM以建立遠(yuǎn)程呈現(xiàn)會話。在另一實施例中,合并角色擔(dān)當(dāng)客戶機(jī)和VM之間的遠(yuǎn)程呈現(xiàn)會話中的通信的路由器或代理。在從客戶機(jī)接收到連接建立消息并確定了提供該客戶機(jī)的遠(yuǎn)程呈現(xiàn)會話的VM 之后,合并角色在該合并角色與該VM之間構(gòu)造完整的遠(yuǎn)程呈現(xiàn)會話連接,并且擔(dān)當(dāng)該客戶機(jī)與該VM之間的遠(yuǎn)程呈現(xiàn)會話通信的路由器或代理。在這樣做時,客戶機(jī)不必分開建立與 VM的遠(yuǎn)程呈現(xiàn)會話連接。在一實施例中,合并角色通過使用共享資源來對客戶機(jī)與VM之間的通信進(jìn)行路由。遠(yuǎn)程呈現(xiàn)會話協(xié)議棧在合并角色與VM之間劃分。合并角色隨后通過沿所劃分的遠(yuǎn)程呈現(xiàn)會話協(xié)議棧“向上”發(fā)送信息到VM或接收從VM沿所劃分的遠(yuǎn)程呈現(xiàn)會話協(xié)議?!跋蛳隆?發(fā)送的信息來與VM進(jìn)行通信。在一實施例中,部署包括包含合并角色的多個服務(wù)器。客戶機(jī)連接到合并角色之一以建立遠(yuǎn)程呈現(xiàn)會話。這一合并角色可以定位其服務(wù)器上的用于提供遠(yuǎn)程呈現(xiàn)會話的 VM,或在沒有VM可用的情況下與中介進(jìn)行通信以尋找另一服務(wù)器上的VM。該中介與多個服務(wù)器進(jìn)行通信并且將向合并角色發(fā)送將向客戶機(jī)提供遠(yuǎn)程呈現(xiàn)會話的第二服務(wù)器的身份。 合并角色接收這一信息并將其發(fā)送給客戶機(jī)??蛻魴C(jī)隨后聯(lián)系這一第二服務(wù)器來進(jìn)行遠(yuǎn)程呈現(xiàn)會話。如此處所描述的,除非在討論特定機(jī)器時清楚地指明,否則機(jī)器可以是物理機(jī)或虛擬機(jī)。本領(lǐng)域技術(shù)人員將理解,本發(fā)明的一個或多個方面可包括但不限于用于實現(xiàn)本發(fā)明的本文所述方面的電路和/或編程;該電路和/或編程實質(zhì)上可以是配置成實現(xiàn)本文所述方面的硬件、軟件和/或固件的任何組合,這取決于系統(tǒng)設(shè)計者的設(shè)計選擇。以上是概述,并且因此必然包含細(xì)節(jié)的簡化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本概述只是說明性的并且決不旨在是限制性的。
參考附圖來進(jìn)一步描述用于高效的遠(yuǎn)程呈現(xiàn)會話連接和路由的系統(tǒng)、方法和計算機(jī)可讀介質(zhì),在附圖中圖1示出了可在其中體現(xiàn)了在此描述的技術(shù)的示例性通用計算環(huán)境。圖2描繪其中可實現(xiàn)本公開的各方面的示例遠(yuǎn)程呈現(xiàn)會話服務(wù)器。
圖3描繪客戶機(jī)和包括多個角色的部署之間的示例遠(yuǎn)程呈現(xiàn)會話連接建立,其中每一角色在單獨的機(jī)器上運作。圖4描繪根據(jù)本發(fā)明的技術(shù)的被合并在一個機(jī)器上的多個角色。圖5描繪客戶機(jī)和包括合并角色的服務(wù)器之間的示例遠(yuǎn)程呈現(xiàn)會話連接建立。圖6描繪客戶機(jī)和包括合并角色的服務(wù)器之間的替換示例遠(yuǎn)程呈現(xiàn)會話連接建立。圖7A描繪根據(jù)圖6的遠(yuǎn)程呈現(xiàn)會話服務(wù)器的、合并角色與VM之間的使用TCP/IP 連接的遠(yuǎn)程呈現(xiàn)會話通信。圖7B描繪根據(jù)圖6的遠(yuǎn)程呈現(xiàn)會話服務(wù)器的、合并角色與VM之間的使用共享資源連接的遠(yuǎn)程呈現(xiàn)會話通信。圖8描繪客戶機(jī)和各自包括合并角色的多個服務(wù)器之間的示例遠(yuǎn)程呈現(xiàn)會話連
接建立。
具體實施例方式圖1是在其中可實現(xiàn)在此描述的技術(shù)的通用計算設(shè)備的框圖。圖1及以下討論旨在提供可在其中實現(xiàn)本發(fā)明的合適計算環(huán)境的簡要概括描述。貫穿本發(fā)明使用的術(shù)語“電路”可包括諸如硬件中斷控制器、硬盤驅(qū)動器、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器等硬件組件,以及用于操作這些硬件的固件。術(shù)語“電路”還可包括微處理器、專用集成電路、和/或一個或多個邏輯處理器,例如由固件和/或軟件配置的多核通用處理單元的一個或多個核。邏輯處理器可由指令來配置,這些指令將可用于執(zhí)行從例如RAM(在此稱為“系統(tǒng)存儲器”)、ROM、固件和/或大容量存儲等存儲器加載的功能的邏輯具體化。在其中電路包括硬件和軟件的組合的示例實施例中,實現(xiàn)者可以編寫具體化邏輯的源代碼,該源代碼隨后被編譯成可由邏輯處理器執(zhí)行的機(jī)器可讀代碼。因為本領(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進(jìn)化到硬件實現(xiàn)的功能或軟件實現(xiàn)的功能之間幾乎沒有差別的地步,因而選擇硬件還是軟件來實現(xiàn)此處描述的功能只是一個設(shè)計選擇。換言之,由于本領(lǐng)域的技術(shù)人員可以理解軟件進(jìn)程可被變換成等效的硬件結(jié)構(gòu),且硬件結(jié)構(gòu)本身可被變換成等效的軟件進(jìn)程,因此選擇硬件實現(xiàn)或是軟件實現(xiàn)留給了實現(xiàn)者?,F(xiàn)在參考圖1,描繪了示例性計算系統(tǒng)100。計算機(jī)系統(tǒng)100可包括邏輯處理器 102,如執(zhí)行核。盡管示出了一個邏輯處理器102,但在其他實施例中,計算機(jī)系統(tǒng)100可具有多個邏輯處理器,例如每一處理器基板有多個執(zhí)行核,和/或各自可具有多個執(zhí)行核的多個處理器基板。如圖所示,各種計算機(jī)可讀存儲介質(zhì)110可由一個或多個系統(tǒng)總線互聯(lián), 系統(tǒng)總線將各種系統(tǒng)組件耦合到邏輯處理器102。系統(tǒng)總線可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲器總線或存儲器控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。在示例實施例中,計算機(jī)可讀存儲介質(zhì)110可以包括例如隨機(jī)存取存儲器(RAM) 104、存儲設(shè)備106(例如電機(jī)硬盤驅(qū)動器、固態(tài)硬盤驅(qū)動器等)、固件108(例如閃速RAM或ROM)、以及可移動存儲設(shè)備118 (例如CD-ROM、軟盤、DVD、閃速驅(qū)動器、外部存儲設(shè)備等)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可使用其他類型的計算機(jī)可讀存儲介質(zhì),如磁帶盒、 閃存卡、數(shù)字視頻盤和柏努利盒式磁帶。
計算機(jī)可讀存儲介質(zhì)110可以為計算機(jī)100提供對處理器可執(zhí)行指令122、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的非易失性和易失性存儲,實現(xiàn)管理器250的可執(zhí)行指令在以下附圖中描述?;据斎?輸出系統(tǒng)(BIOS) 120可被存儲在固件108中,它包含幫助在諸如啟動期間在計算機(jī)系統(tǒng)100內(nèi)的各元件之間傳遞信息的基本例程。包括操作系統(tǒng)和/或應(yīng)用程序的多個程序可被存儲在固件108、存儲設(shè)備106、RAM 104和/或可移動存儲設(shè)備118 上,并且可由邏輯處理器102來執(zhí)行。命令和信息可由計算機(jī)100通過輸入設(shè)備116來接收,輸入設(shè)備可包括但不限于鍵盤和定點設(shè)備。其他輸入設(shè)備可以包括話筒、操縱桿、游戲手柄、掃描儀等等。這些和其他輸入設(shè)備常通過耦合到系統(tǒng)總線的串行端口接口連接到邏輯處理器102,但也可通過其他接口連接,如并行端口、游戲端口或通用串行總線(USB)。顯示器或其他類型的顯示設(shè)備也可經(jīng)由接口來連接到系統(tǒng)總線,所述接口是諸如視頻適配器等可以是具有對于視頻存儲器的訪問的圖形處理器(GPU) 112的一部分或可連接到該圖形處理器112。除了顯示器之外,計算機(jī)通常包括其他外圍輸出設(shè)備(未示出),如揚聲器和打印機(jī)。圖1的示例性系統(tǒng)還包括主適配器、小型計算機(jī)系統(tǒng)接口(SCSI)總線和連接到SCSI總線的外部存儲設(shè)備。計算機(jī)系統(tǒng)100可使用至一個或多個遠(yuǎn)程計算機(jī),如遠(yuǎn)程計算機(jī)的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計算機(jī)可以是另一計算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其他常見的網(wǎng)絡(luò)節(jié)點,并且通常包括上面關(guān)于計算機(jī)系統(tǒng)100所述的許多或全部元件。當(dāng)在LAN或WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機(jī)系統(tǒng)100可通過網(wǎng)絡(luò)接口卡(NIC)114 連接至LAN或WAN。NIC 114可以是內(nèi)置或外置的,其可以連接到系統(tǒng)總線。在聯(lián)網(wǎng)環(huán)境中, 相對于計算機(jī)系統(tǒng)100所描述的程序模塊或其部分可被儲存在遠(yuǎn)程存儲器存儲設(shè)備中??梢岳斫猓枋龅木W(wǎng)絡(luò)連接是示例性的,且可以使用在計算機(jī)之間建立通信鏈路的其他手段。雖然可構(gòu)想本發(fā)明的許多實施例尤其適用于計算機(jī)化的系統(tǒng),然而在本說明中不意味著將本發(fā)明限于那些實施例?,F(xiàn)在參照圖2,其一般描繪其中可實現(xiàn)本公開的各方面的示例環(huán)境。本領(lǐng)域技術(shù)人員可理解,示出圖2所描繪的示例元素是為了提供用于描述本公開的操作框架。因此,在一些實施例中,每個環(huán)境的物理布局可取決于不同的實現(xiàn)方案而有所不同。因此,該示例操作框架將僅被視為說明性的且不以任何方式限制權(quán)利要求的范圍。本領(lǐng)域技術(shù)人員還可明白以下討論是介紹性的。一般地,圖2描繪了可被配置成包括本公開的各方面的服務(wù)器環(huán)境的高級概覽。 參照該圖,描繪了服務(wù)器204,其可包括配置成實現(xiàn)遠(yuǎn)程呈現(xiàn)會話服務(wù)器的電路,或者在其他實施例中,服務(wù)器204可包括配置成支持遠(yuǎn)程桌面連接的電路。在所描繪的示例中,服務(wù)器204可被配置成生成用于連接客戶機(jī)的一個或多個會話,諸如會話1到N(其中N是大于 2的整數(shù))。簡言之,在本公開的示例實施例中,會話一般可包括由配置成與服務(wù)器204的內(nèi)核214交互的多個子系統(tǒng)(例如,軟件代碼)實現(xiàn)的操作環(huán)境。例如,會話可包括實例化諸如桌面窗口之類的用戶界面的進(jìn)程、跟蹤該窗口內(nèi)的鼠標(biāo)移動的子系統(tǒng)、將圖標(biāo)上的鼠標(biāo)點擊轉(zhuǎn)換成實現(xiàn)程序?qū)嵗拿畹淖酉到y(tǒng)等。會話可由服務(wù)器204在逐個用戶的基礎(chǔ)上生成,例如在服務(wù)器204通過網(wǎng)絡(luò)連接接收來自客戶機(jī)201的連接請求時由服務(wù)器204生成。一般而言,連接請求首先可由傳輸邏輯210處理,傳輸邏輯210例如可由服務(wù)器204的電路實現(xiàn)。在一些實施例中,傳輸邏輯210可包括網(wǎng)絡(luò)適配器、可被配置成接收連接消息并將其轉(zhuǎn)發(fā)給引擎212的固件和軟件。如圖2所示,在一些實施例中,傳輸邏輯210可包括每個會話的協(xié)議棧實例。一般而言,每個協(xié)議棧實例可被配置成將用戶界面輸出路由到客戶機(jī),以及將從客戶機(jī)接收到的用戶輸入路由到與其會話相關(guān)聯(lián)的會話核心對4。繼續(xù)圖2的一般性描述,在本發(fā)明的一些示例實施例中,引擎212可被配置成處理對會話的請求;確定每個會話的功能;通過為會話分配一組物理資源來生成會話;以及實例化會話的協(xié)議棧實例。在一些實施例中,引擎212可由能實現(xiàn)上述操作過程中的一部分的專門電路組件來實現(xiàn)。例如,一些示例實施例中,該電路在可包括存儲器以及配置成執(zhí)行實現(xiàn)引擎212的代碼的處理器。如圖2所描繪地,在一些情況下,引擎212可接收連接請求并確定例如許可證可用,并且可為該請求生成會話。在服務(wù)器204是包括遠(yuǎn)程桌面能力的遠(yuǎn)程計算機(jī)的情形中,引擎212可被配置成響應(yīng)于連接請求生成會話而不檢查許可證。如圖2所示,會話管理器216可被配置成接收來自引擎212的消息,并且響應(yīng)于該消息,會話管理器216可將會話標(biāo)識符添加到表中;向該會話標(biāo)識符指派存儲器;以及在指派給該會話標(biāo)識符的存儲器中生成系統(tǒng)環(huán)境變量和子系統(tǒng)進(jìn)程的實例。如圖2所示,會話管理器216可實例化諸如運行時子系統(tǒng)240之類的環(huán)境子系統(tǒng), 該子系統(tǒng)可包括諸如會話核心244之類的內(nèi)核模式部分。例如,在一實施例中,環(huán)境子系統(tǒng)被配置成將一些服務(wù)子集展示給應(yīng)用程序并向操作系統(tǒng)214的內(nèi)核提供接入點。在示例實施例中,運行時子系統(tǒng)240可控制進(jìn)程和線程的執(zhí)行,并且會話核心244可向內(nèi)核214的執(zhí)行程序發(fā)送請求以向線程分配存儲器并調(diào)度執(zhí)行它們的時間。在一實施例中,會話核心244 可包括圖形顯示界面246 (⑶I)、安全子系統(tǒng)250和輸入子系統(tǒng)252。在這些實施例中,輸入子系統(tǒng)252可被配置成經(jīng)由與該會話相關(guān)聯(lián)的協(xié)議棧實例接收來自客戶機(jī)201的用戶輸入并將該輸入傳送給合適會話的會話核心對4。在一些實施例中,用戶輸入可包括指示絕對和 /或相對鼠標(biāo)移動命令、鼠標(biāo)坐標(biāo)、鼠標(biāo)點擊、鍵盤信號、操縱桿移動信號等的信號。例如圖標(biāo)上的鼠標(biāo)雙擊的用戶輸入可被會話核心244接收,并且輸入子系統(tǒng)252可被配置成確定圖標(biāo)位于與該雙擊相關(guān)聯(lián)的坐標(biāo)處。輸入子系統(tǒng)252隨后可被配置成向可執(zhí)行與該圖標(biāo)相關(guān)聯(lián)的應(yīng)用的進(jìn)程的運行時子系統(tǒng)240發(fā)送通知。除了接收來自客戶機(jī)201的輸入之外,可從應(yīng)用和/或桌面接收繪制命令并由GDI 246來處理。⑶I 246—般可包括能生成圖形對象繪制命令的進(jìn)程。在該示例實施例中,⑶I 246可被配置成將其輸出傳遞給遠(yuǎn)程顯示子系統(tǒng)254,在那里,針對附連到該會話的顯示驅(qū)動器,命令被格式化。在某些示例實施例中,一個或多個物理顯示器可被附連到服務(wù)器204, 例如在遠(yuǎn)程桌面情形中。在這些示例實施例中,遠(yuǎn)程顯示子系統(tǒng)2M可被配置成對由遠(yuǎn)程計算機(jī)系統(tǒng)的顯示驅(qū)動器呈現(xiàn)的繪制命令制作鏡像,并經(jīng)由與該會話相關(guān)聯(lián)的棧實例將鏡像信息傳送給客戶機(jī)201。在服務(wù)器204是遠(yuǎn)程呈現(xiàn)會話服務(wù)器的另一示例實施例中,遠(yuǎn)程顯示子系統(tǒng)2M可被配置成包括可不與物理上附連到服務(wù)器204的顯示器相關(guān)聯(lián)的虛擬顯示驅(qū)動器,例如服務(wù)器204可無頭地(headless)運行。在該實施例中,遠(yuǎn)程顯示子系統(tǒng) 254可被配置成接收針對一個或多個虛擬顯示器的繪制命令并將它們經(jīng)由與該會話相關(guān)聯(lián)的棧實例傳送給客戶機(jī)201。在本公開的實施例中,遠(yuǎn)程顯示子系統(tǒng)邪4可被配置成確定每個顯示驅(qū)動器的顯示分辨率,例如確定與虛擬顯示器相關(guān)聯(lián)的虛擬顯示驅(qū)動器的顯示分辨率或與物理顯示器相關(guān)聯(lián)的顯示驅(qū)動器的顯示分辨率;以及經(jīng)由相關(guān)聯(lián)的協(xié)議棧實例將分組路由到客戶機(jī)201。
在一些示例實施例中,會話管理器216可附加地實例化與該會話的會話標(biāo)識符相關(guān)聯(lián)的可被配置成處理該會話的登入和登出的登錄進(jìn)程的實例。在這些示例實施例中,指示與登錄進(jìn)程相關(guān)聯(lián)的圖形用戶界面的繪制命令可被傳送給客戶機(jī)201,在那里,客戶機(jī) 201的用戶可向登錄屏幕輸入帳戶標(biāo)識符(例如用戶名/ 口令組合)、智能卡標(biāo)識符、和/ 或生物測定信息。該信息可被傳送給服務(wù)器204并被路由至引擎212以及會話核心244的安全子系統(tǒng)250。例如,在某些示例實施例中,引擎212可被配置成確定用戶帳戶是否與許可證相關(guān)聯(lián);并且安全子系統(tǒng)250可被配置成生成該會話的安全令牌。圖3描繪客戶機(jī)和包括多個角色的部署之間的示例遠(yuǎn)程呈現(xiàn)會話連接設(shè)置,其中每一角色在單獨的機(jī)器上運作。在此討論的每一機(jī)器可包括例如圖1的計算設(shè)備141或在圖1的計算設(shè)備141上執(zhí)行的VM。部署302包括重定向器304、連接中介306、以及服務(wù)器308。重定向器接收來自諸如客戶機(jī)312等客戶機(jī)的請求,并處理像認(rèn)證該客戶機(jī)并向該客戶機(jī)發(fā)放用于與部署302 進(jìn)行遠(yuǎn)程呈現(xiàn)會話的許可證等操作。連接中介306確定用于向客戶機(jī)提供遠(yuǎn)程呈現(xiàn)會話的服務(wù)器或服務(wù)器上的VM。這樣的VM可包括例如圖2的虛擬化服務(wù)器204。服務(wù)器308通過主存一個或多個VM (在此被描繪成VM-I 310a到VM-N 310η)來提供遠(yuǎn)程呈現(xiàn)會話。部署302可包括未被描繪(以使被描繪的角色清楚)的其他角色。這些角色可包括諸如遠(yuǎn)程呈現(xiàn)web訪問角色(它使用web界面向客戶機(jī)發(fā)布虛擬桌面以進(jìn)行遠(yuǎn)程呈現(xiàn)會話)和域服務(wù)角色(它存儲客戶機(jī)用戶向個人虛擬桌面的分配)等角色??蛻魴C(jī)312與部署302進(jìn)行通信314以建立遠(yuǎn)程呈現(xiàn)會話。例如,客戶機(jī)312可包括TsClient (終端服務(wù)器客戶機(jī))且部署302可包括VDI部署。這一通信314由部署302 在重定向器304處接收。在VDI部署中,重定向器304可包括提供對客戶機(jī)進(jìn)行重定向的功能的RDSH角色。重定向器304基于一個或多個憑證來授權(quán)客戶機(jī)或客戶機(jī)的用戶,并且對連接中介306進(jìn)行查詢316以確定要將客戶機(jī)312重定向到的客戶機(jī)312可與之進(jìn)行遠(yuǎn)程呈現(xiàn)會話的VM。連接中介306與一個或多個服務(wù)器(在此描繪成服務(wù)器308)進(jìn)行通信 318以確定關(guān)于主存在該服務(wù)器上的VM 310a、310n的信息,如VM是否能夠接受新連接(例如,與在“耗盡連接隨后休眠”狀態(tài)形成對比)。基于從一個或多個服務(wù)器接收到的信息,連接中介306選擇客戶機(jī)312將與之進(jìn)行遠(yuǎn)程呈現(xiàn)會話的VM。連接中介306將這一所選VM傳達(dá)316給重定向器304。重定向器 304將這一所選VM傳達(dá)320給客戶機(jī)312并向客戶機(jī)312發(fā)放用于進(jìn)行遠(yuǎn)程呈現(xiàn)會話的許可證(注意,該許可證可在各種時間發(fā)送給客戶機(jī),并且這只示出了一個這樣的實施例)。 客戶機(jī)312隨后與所選VM(在此被示為VM-N 310η)進(jìn)行通信322以建立并隨后進(jìn)行遠(yuǎn)程呈現(xiàn)會話。圖4描繪根據(jù)本發(fā)明的技術(shù)的被合并在一個機(jī)器上的多個角色。這一合并角色 424可以向部署提供組織支持426、仲裁支持428、許可證發(fā)放430、授權(quán)432、以及連接管理 434中的每一個。這些元素是出于邏輯清楚的目的才如此顯示的,并且可以明白,它們可被編組在一起或以也能實現(xiàn)合并角色的技術(shù)的其他方式來細(xì)分。配合支持4 被配置成對合并角色424的其他部分之間的信息交換進(jìn)行協(xié)調(diào),并使在執(zhí)行合并角色似4的服務(wù)器上的VM可用于遠(yuǎn)程呈現(xiàn)會話中(通過在該VM處于離線狀態(tài)或保存狀態(tài)的情況下使它在線并確保該VM準(zhǔn)備好接受遠(yuǎn)程呈現(xiàn)會話連接)。仲裁支持4 被配置成在機(jī)器上所主存的多個VM之間確定客戶機(jī)將與之進(jìn)行遠(yuǎn)程呈現(xiàn)會話的VM。許可證發(fā)放430被配置成向客戶機(jī)發(fā)放許可該客戶機(jī)與合并角色似4是其一部分的部署進(jìn)行遠(yuǎn)程呈現(xiàn)會話的許可證(或確認(rèn)該客戶機(jī)已經(jīng)擁有的許可證)。授權(quán)432被配置成確定客戶機(jī)被授權(quán)與合并角色4M是其一部分的部署進(jìn)行遠(yuǎn)程呈現(xiàn)會話。例如,這可包括檢查客戶機(jī)的憑證(如登錄和口令)對該部署而言是有效的。連接管理434被配置成與客戶機(jī)進(jìn)行通信,并且還與機(jī)器上的一個或多個VM進(jìn)行通信,如在提供遠(yuǎn)程呈現(xiàn)會話中的“路由器” 或“代理”的角色時,如以下參考圖6所描述的。這一合并角色可包括單個計算機(jī)進(jìn)程。通過經(jīng)由單個進(jìn)程實現(xiàn)所有上述角色功能,這消除了對網(wǎng)絡(luò)通信的需求以及各組件之間的認(rèn)證需求。圖5描繪客戶機(jī)和包括合并角色的服務(wù)器之間的示例遠(yuǎn)程呈現(xiàn)會話連接建立。在一實施例中,合并角色包括在服務(wù)器的一部分內(nèi)執(zhí)行的單個進(jìn)程。這一單個進(jìn)程實現(xiàn)降低了復(fù)雜度,因為各單獨的組件或合并角色的各進(jìn)程之間不需要認(rèn)證,并降低了實現(xiàn)遠(yuǎn)程通信會話所需的網(wǎng)絡(luò)通信或進(jìn)程間通信的量??蛻魴C(jī)312向服務(wù)器536的合并角色似4發(fā)送遠(yuǎn)程呈現(xiàn)會話連接建立消息538。 合并角色4 用授權(quán)432來對客戶機(jī)進(jìn)行授權(quán)。連接管理434選擇多個VM (在此被描繪為VM-I 310a和VM-N 310η)中的將與客戶機(jī)312進(jìn)行遠(yuǎn)程通信會話的VM。例如,這可由維護(hù)與主存在服務(wù)器536上的VM相對應(yīng)的信息的數(shù)據(jù)庫(或其他數(shù)據(jù)存儲)的連接管理434來實現(xiàn)。連接管理434還可通過查詢 VM中的一個或多個來尋找關(guān)于它們向客戶機(jī)312提供遠(yuǎn)程呈現(xiàn)會話的能力或適當(dāng)性的信息(如向客戶機(jī)312提供遠(yuǎn)程呈現(xiàn)會話的VM,該遠(yuǎn)程呈現(xiàn)會話處于可被重新連接的斷開連接狀態(tài))。例如,對一個或多個VM的這一查詢可以在確定要將客戶機(jī)312分配給一 VM時完成。在選擇VM之后(在此被描繪為VM-N 310η),合并角色似4將所選VM傳達(dá)540給客戶機(jī)312??蛻魴C(jī)312隨后與所選VM(VM-N 310η)進(jìn)行通信Μ2以建立并隨后進(jìn)行遠(yuǎn)程呈現(xiàn)會話。 在一實施例中,在合并角色4Μ在服務(wù)器536的一分區(qū)內(nèi)執(zhí)行的情況下,合并角色 424在主操作系統(tǒng)內(nèi)執(zhí)行或在服務(wù)器536的VM的客操作系統(tǒng)內(nèi)執(zhí)行。圖6描繪客戶機(jī)和包括合并角色的服務(wù)器之間的替換示例遠(yuǎn)程呈現(xiàn)會話連接建立。然而,如圖5所示,客戶機(jī)312作出與VM-N 310的單獨通信以建立并進(jìn)行遠(yuǎn)程呈現(xiàn)會話,如圖6所示,合并角色似4在客戶機(jī)312與VM-N 310a之間提供用于建立并進(jìn)行遠(yuǎn)程呈現(xiàn)會話的路由器或代理功能。這可以通過在一個服務(wù)器上主存合并角色和被配置成提供遠(yuǎn)程呈現(xiàn)會話的多個VM來實現(xiàn)??蛻魴C(jī)312與合并角色4M進(jìn)行通信644,這執(zhí)行與圖5中描述的相類似的功能——合并角色似4執(zhí)行客戶機(jī)授權(quán)和許可證發(fā)放,并在服務(wù)器536上的已知VM的數(shù)據(jù)庫中進(jìn)行查找以確定是否有某一 VM具備作為客戶機(jī)312的遠(yuǎn)程呈現(xiàn)會話的適當(dāng)目標(biāo)的資格。并非如圖5所示向客戶機(jī)312發(fā)送與之通信的所選VM的指示,在此,合并角色4M 的連接管理434向客戶機(jī)312與所選VM(在此被描繪為VM-N 310η)之間的遠(yuǎn)程呈現(xiàn)會話提供路由器或代理功能。合并角色似4構(gòu)造合并角色似4與VM-N 310η之間的完整遠(yuǎn)程呈現(xiàn)會話連接646,并向客戶機(jī)312傳達(dá)644遠(yuǎn)程呈現(xiàn)會話已經(jīng)建立。以此方式,客戶機(jī)312不“知道”它正在與所選VM進(jìn)行遠(yuǎn)程呈現(xiàn)會話,并且客戶機(jī)312不必作出與所選VM的單獨通信就能建立遠(yuǎn)程呈現(xiàn)會話。相反,客戶機(jī)312通過與提供路由器或代理功能的合并角色 424進(jìn)行通信644來與VM-N 310η進(jìn)行遠(yuǎn)程呈現(xiàn)會話,并將從客戶機(jī)312接收到的信息傳達(dá) 646給VM-N 310η,并且將從VM-N 310η接收到的信息傳達(dá)給客戶機(jī)312。從客戶機(jī)312發(fā)送到合并角色424的這些通信可被稱為“客戶機(jī)遠(yuǎn)程呈現(xiàn)會話通信”,并且從VM-N 310η發(fā)送到合并角色4Μ的這些通信可被稱為“服務(wù)器遠(yuǎn)程呈現(xiàn)會話通信”。合并角色似4與VM-N 310η之間的通信646可以用各種方式來實現(xiàn)。例如,通信 646可以通過在合并角色似4與VM-N 310η之間建立TCP/IP (傳輸控制協(xié)議/網(wǎng)際協(xié)議) 連接來實現(xiàn)。遠(yuǎn)程呈現(xiàn)會話連接隨后可以經(jīng)由這一 TCP/IP連接來構(gòu)建。作為另一示例,通信646可以通過在合并角色424與VM-N 310η之間使用共享資源來實現(xiàn)。例如,這些共享資源可包括在合并角色和VM-N 310η之間拆分的遠(yuǎn)程呈現(xiàn)會話協(xié)議棧——該棧的一些功能在合并角色424中實現(xiàn),并且該棧的其他功能在VM-N 310η中實現(xiàn)。從合并角色似4到VM-N 310η的通信可以通過將數(shù)據(jù)沿該?!跋蛏稀卑l(fā)送來實現(xiàn),并且從VM-N 310η到合并角色424的通信可以通過將數(shù)據(jù)沿該?!跋蛳隆卑l(fā)送來實現(xiàn)。在合并角色424與VM-N 310η之間拆分的遠(yuǎn)程呈現(xiàn)會話協(xié)議棧在圖7Β中更詳細(xì)地描繪。圖7Α描繪根據(jù)圖6的遠(yuǎn)程呈現(xiàn)會話服務(wù)器的、合并角色與VM之間的使用TCP/IP 連接的遠(yuǎn)程呈現(xiàn)會話通信。如圖所示,合并角色似4包括遠(yuǎn)程呈現(xiàn)會話微棧748 (遠(yuǎn)程呈現(xiàn)會話微棧748進(jìn)而包括連接管理434和授權(quán)436)、仲裁支持428、以及連接重定向器750。合并角色似4與遠(yuǎn)程呈現(xiàn)會話主機(jī)753 (它管理在服務(wù)器536上執(zhí)行的VM) —起在分區(qū)752內(nèi)執(zhí)行。分區(qū)752 可包括服務(wù)器536的主分區(qū)或客分區(qū)??蚔M 310包括遠(yuǎn)程呈現(xiàn)棧754、終端服務(wù)器756、以及登錄UI 758(在客戶機(jī)嘗試登錄到VM 310的會話時呈現(xiàn)給客戶機(jī)的登錄用戶界面)。對于合并角色似4與RDP棧7M進(jìn)行通信時的遠(yuǎn)程呈現(xiàn)會話通信,這一通信經(jīng)由 TCP/IP連接760來完成。在客戶機(jī)312與服務(wù)器536進(jìn)行通信以建立遠(yuǎn)程呈現(xiàn)會話時,在連接管理434處接收這一通信。在認(rèn)證436對客戶機(jī)312進(jìn)行了認(rèn)證之后,連接重定向器750與遠(yuǎn)程呈現(xiàn)棧乃4建立遠(yuǎn)程呈現(xiàn)會話。連接重定向器750經(jīng)由TCP/IP通信760建立這一會話。連接重定向器750以同客戶機(jī)312相同的方式來與遠(yuǎn)程呈現(xiàn)棧7M進(jìn)行交互,以使得從遠(yuǎn)程呈現(xiàn)棧754的觀點看,它“想”它正與客戶機(jī)進(jìn)行交互。TCP/IP連接760可以例如由Kerberos網(wǎng)絡(luò)認(rèn)證協(xié)議或由作為向分區(qū)752提供與認(rèn)證436向客戶機(jī)312提供的功能相類似的功能的遠(yuǎn)程呈現(xiàn)棧7M的一部分的認(rèn)證機(jī)制來保護(hù)。當(dāng)在分區(qū)752與客VM 310之間建立了這一遠(yuǎn)程呈現(xiàn)會話之后,連接管理434與客戶機(jī)312進(jìn)行通信以告知客戶機(jī)312已經(jīng)在分區(qū)752與客戶機(jī)312之間建立了遠(yuǎn)程呈現(xiàn)會話。這可包括將從客VM 310接收到的遠(yuǎn)程呈現(xiàn)會話通信傳送到客戶機(jī)312。以此方式,客戶機(jī)312 “想”它正在與遠(yuǎn)程呈現(xiàn)會話服務(wù)器直接進(jìn)行交互,因為合并角色424以同遠(yuǎn)程呈現(xiàn)會話服務(wù)器相同的方式來與客戶機(jī)312進(jìn)行交互,從而實現(xiàn)遠(yuǎn)程呈現(xiàn)會話。在合并角色似4接收到來自客戶機(jī)312的遠(yuǎn)程呈現(xiàn)會話通信時,它經(jīng)由連接重定向器750將這些通信傳遞到遠(yuǎn)程呈現(xiàn)棧754,從而在必要時修改它們(如指示它們源自分區(qū)752而非客戶機(jī)312,或根據(jù)遠(yuǎn)程呈現(xiàn)會話協(xié)議對它們進(jìn)行重新編碼)。同樣,在合并角色4M接收到來自VM 310的遠(yuǎn)程呈現(xiàn)會話通信時,它將這些通信傳遞到客戶機(jī)312,從而在必要時修改它們(如指示它們源自分區(qū)752,或根據(jù)遠(yuǎn)程呈現(xiàn)會話協(xié)議對它們進(jìn)行重新編碼)。以此方式,合并角色似4用作在客戶機(jī)312與VM 310之間進(jìn)行的遠(yuǎn)程呈現(xiàn)會話的代理或路由器。圖7B描繪根據(jù)圖6的遠(yuǎn)程呈現(xiàn)會話服務(wù)器的、合并角色與VM之間的使用共享資源連接的遠(yuǎn)程呈現(xiàn)會話通信。遠(yuǎn)程呈現(xiàn)會話棧可被拆分成角色部分(在此由合并角色424 來描繪)和VM部分(在此由遠(yuǎn)程呈現(xiàn)微拆分棧762來描繪)。在此,共享資源764包括共享存儲器區(qū)域或共享緩沖區(qū),如HYPER-V 。遠(yuǎn)程呈現(xiàn)微拆分棧762與圖7A的遠(yuǎn)程呈現(xiàn)棧754的不同之處在于缺少該遠(yuǎn)程呈現(xiàn)棧754的各特征中的一些特征方面。如圖所示,遠(yuǎn)程呈現(xiàn)拆分棧缺少TCP監(jiān)聽程序、授權(quán)436、以及對數(shù)據(jù)進(jìn)行加密的能力,這些特征通常在諸如遠(yuǎn)程呈現(xiàn)棧7M等遠(yuǎn)程呈現(xiàn)棧中找到??梢悦靼?,盡管遠(yuǎn)程呈現(xiàn)微拆分棧762在此被描繪為在授權(quán)層被拆分(因為授權(quán) 436被發(fā)現(xiàn)處于遠(yuǎn)程呈現(xiàn)微棧748中而非處于遠(yuǎn)程呈現(xiàn)微拆分棧762中),但該??梢栽谶h(yuǎn)程呈現(xiàn)棧結(jié)構(gòu)內(nèi)的不同層處拆分。例如,拆分可以在棧中推得“更高”,如在加密或遠(yuǎn)程呈現(xiàn)會話編碼層處。其中實現(xiàn)了這些教導(dǎo)的系統(tǒng)的細(xì)節(jié)可以確定在不同點處拆分該棧的好處。連接建立和遠(yuǎn)程呈現(xiàn)會話操作在此與圖7A所描述的大體相同。當(dāng)分區(qū)752具有要發(fā)送到VM 310的通信時,遠(yuǎn)程呈現(xiàn)微棧748將該通信置于共享資源760中,VM 310可以在那里獲取它。同樣,當(dāng)VM 310具有要發(fā)送到分區(qū)752的通信時,遠(yuǎn)程呈現(xiàn)微拆分棧762 將該通信置于共享資源760中,VM 310可以在那里獲取它。存在著其中如圖7A所示的合并角色4M與VM-N 310之間的TCP/IP連接可能是有好處的場景,如在VM-N是傳統(tǒng)VM并且對它進(jìn)行修改不合乎需要的情況下。還存在著其中圖 7B中描繪的拆分棧實現(xiàn)是優(yōu)選方案的場景,如在可完成這一實現(xiàn)以使得它使用更少處理資源來在合并角色4 與VM-N 310之間發(fā)送數(shù)據(jù)的情況。這兩種類型的連接——TCP/IP和拆分棧——可以用在一部署中。即,合并角色似4可經(jīng)由TCP/IP連接與一個或多個VM 310 進(jìn)行通信,并經(jīng)由拆分棧與一個或多個其他VM 310進(jìn)行通信。圖8描繪客戶機(jī)和每一個都包括合并角色的多個服務(wù)器之間的示例遠(yuǎn)程呈現(xiàn)會話連接建立。遠(yuǎn)程呈現(xiàn)會話部署包括多個服務(wù)器536和中介866。部署可包括多個服務(wù)器, 例如,在部署要提供比單個服務(wù)器所具有的處理資源能夠處理的更多數(shù)量的遠(yuǎn)程呈現(xiàn)會話的情況下。 在該附圖中描繪了兩個服務(wù)器——服務(wù)器536a和服務(wù)器536b。每一服務(wù)器被描繪為包括合并角色(分別是42 和424b)和N個虛擬機(jī)(310aa到310rm和310na到 310nn ;注意,盡管每一服務(wù)器被描繪為主存了 N個虛擬機(jī),每一服務(wù)器所主存的虛擬機(jī)的數(shù)量可以與該部署的其他服務(wù)器所主存的虛擬機(jī)的數(shù)量不同)。 客戶機(jī)312與該部署的一服務(wù)器進(jìn)行通信868 (在此被描繪為與服務(wù)器536a進(jìn)行通信)以建立遠(yuǎn)程呈現(xiàn)會話。來自客戶機(jī)的這些初始通信可以分布在部署的各服務(wù)器之間,如通過利用DNS(域名系統(tǒng))的循環(huán)特征??蛻魴C(jī)可以使用該部署的全稱域名(FQDN) (例如,remot印resentationsession. com ;注意這不是提交時的注冊域名。將來可在該全
12稱域名處獲得的任何主題不一定與本發(fā)明相關(guān))來連接。通過DNS,這一主機(jī)名被轉(zhuǎn)換成 IP地址(即,范圍從0-255(包括0和255)的形式為Χ. Χ. Χ. X的四個數(shù)字,其中使用IPv4 地址)并被提供給請求者。請求者隨后連接到具有這一 IP地址的計算機(jī)。通過在DNS中將該部署的主機(jī)名與該部署的要處理來自客戶機(jī)的連接建立通信的每一服務(wù)器的IP地址進(jìn)行關(guān)聯(lián),DNS向客戶機(jī)提供多個IP地址之一,并可以向不同的客戶機(jī)提供不同的IP地址,使得初始通信分布在這些服務(wù)器之間。如在此描繪的,客戶機(jī)312最初與服務(wù)器536a的合并角色42 進(jìn)行通信來進(jìn)行遠(yuǎn)程呈現(xiàn)會話連接建立。合并角色42 可以確定在服務(wù)器536a上主存的VM是否要與客戶機(jī)312進(jìn)行遠(yuǎn)程呈現(xiàn)會話。例如,它可以通過使用以上參考圖5描述的類似技術(shù)來確定這一點。在合并角色42 確定服務(wù)器536a上沒有VM要進(jìn)行遠(yuǎn)程呈現(xiàn)會話(例如,⑴服務(wù)器536a上沒有VM具有可用的處理資源或處于能接受新遠(yuǎn)程呈現(xiàn)會話連接的狀態(tài),或(2) 服務(wù)器536a上存在這樣的VM但出于諸如服務(wù)器之間的負(fù)載平衡(基于服務(wù)器的可用負(fù)載)等其他原因,遠(yuǎn)程呈現(xiàn)會話將由不同服務(wù)器的VM來進(jìn)行)的情況下,合并角色42 向中介866傳遞查詢870以確定不同服務(wù)器上的要與客戶機(jī)312進(jìn)行遠(yuǎn)程呈現(xiàn)會話的VM。中介866與該部署的多個服務(wù)器進(jìn)行通信,以從這些服務(wù)器中確定它們以及在它們上執(zhí)行的 VM是否能夠以及能夠在什么程度上提供遠(yuǎn)程呈現(xiàn)會話。合并角色42 從中介866接收與客戶機(jī)312要連接到的其他服務(wù)器(如在此描繪的,該其他服務(wù)器是服務(wù)器536b)有關(guān)的通信870。合并角色42 將這一點傳達(dá)827給客戶機(jī)312??蛻魴C(jī)312使用這一信息來與服務(wù)器536b的合并角色424b進(jìn)行通信874。在通信中,客戶機(jī)312和合并角色424b可以使用圖5或6中描述的技術(shù)來在客戶機(jī)312和服務(wù)器536b的VM之間建立遠(yuǎn)程呈現(xiàn)會話連接。圖8描繪其中客戶機(jī)312最初與第一服務(wù)器進(jìn)行通信但最終與主存在第二服務(wù)器上的VM進(jìn)行遠(yuǎn)程呈現(xiàn)會話的場景??梢悦靼?,在多服務(wù)器部署中,其中客戶機(jī)最初連接到主存該客戶機(jī)與之進(jìn)行遠(yuǎn)程呈現(xiàn)會話的VM的同一服務(wù)器的場景可與圖5和6中描繪的單服務(wù)器場景相類似地操作。即,870,872,以及874的通信不必發(fā)生。合并角色42 可以基于服務(wù)器536a中包含的信息來確定服務(wù)器536a的VM將提供遠(yuǎn)程呈現(xiàn)會話。在作出這一判定后,服務(wù)器536a 所主存的遠(yuǎn)程呈現(xiàn)會話可以使用參考圖5或6描述的技術(shù)來建立。結(jié)論盡管已經(jīng)結(jié)合各附圖所示的較佳方面描述了本發(fā)明,但要理解,可使用其他相似方面或者可對所述方面進(jìn)行修改或添加來執(zhí)行本發(fā)明的相同功能而不脫離本發(fā)明。因此, 本發(fā)明不應(yīng)該僅限于任何單個方面,而是應(yīng)該在根據(jù)所附權(quán)利要求書的廣度和范圍內(nèi)解釋。例如,本文描述的各種過程可用硬件或軟件、或兩者的組合來實現(xiàn)。因此,所公開的各實施例的方法和裝置或其某些方面或部分可采用包含在諸如軟盤、CD-ROM、硬盤驅(qū)動器或任何其他機(jī)器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼(即,指令)的形式。當(dāng)程序代碼被加載到諸如計算機(jī)等機(jī)器并由其執(zhí)行時,該機(jī)器變?yōu)楸慌渲贸蓪嵤┧_的各實施例的裝置。除了此處明確闡述的具體實現(xiàn)之外,考慮此處所公開的說明書,其他方面和實現(xiàn)將對本領(lǐng)域的技術(shù)人員是顯而易見的。說明書和所示實現(xiàn)旨在僅被認(rèn)為是示例。
權(quán)利要求
1.一種方法,包括在服務(wù)器(204)處接收來自客戶機(jī)O01)的遠(yuǎn)程呈現(xiàn)會話連接請求; 基于所述請求來選擇由所述服務(wù)器主存的多個虛擬機(jī)(VM)中的所選VM(310); 建立與所選VM的連接;在所述服務(wù)器處接收來自所述客戶機(jī)的客戶機(jī)遠(yuǎn)程呈現(xiàn)會話通信(644); 通過所述連接(646)將所述客戶機(jī)遠(yuǎn)程呈現(xiàn)會話通信傳送到所選VM; 通過所述連接(646)接收來自所選VM的服務(wù)器遠(yuǎn)程呈現(xiàn)會話通信;以及將所述服務(wù)器遠(yuǎn)程呈現(xiàn)會話通信從所述服務(wù)器傳送到所述客戶機(jī)(644)。
2.如權(quán)利要求1所述的方法,其特征在于,建立與所選VM的連接包括 建立與所選VM的傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)連接。
3.如權(quán)利要求2所述的方法,其特征在于,建立與所選VM的TCP/IP連接包括 經(jīng)由所述TCP/IP連接來構(gòu)造與所選VM的遠(yuǎn)程呈現(xiàn)會話連接。
4.如權(quán)利要求1所述的方法,其特征在于,建立與所選VM的連接包括 建立與所選VM的共享資源連接。
5.如權(quán)利要求3所述的方法,其特征在于,所述共享資源包括拆分遠(yuǎn)程呈現(xiàn)會話拆分棧,所述遠(yuǎn)程呈現(xiàn)會話拆分棧包括角色部分和VM部分,所述角色部分在合并角色中執(zhí)行并且所述VM部分在所述VM中執(zhí)行。
6.如權(quán)利要求5所述的方法,其特征在于,所述角色部分和所述VM部分經(jīng)由共享存儲器區(qū)域來進(jìn)行通信。
7.如權(quán)利要求4所述的方法,其特征在于,所述角色部分對所述客戶機(jī)進(jìn)行認(rèn)證,并且通過所述連接將所述客戶機(jī)遠(yuǎn)程呈現(xiàn)會話通信傳送到所選VM包括將所述客戶機(jī)遠(yuǎn)程呈現(xiàn)會話通信存儲在所述共享資源中,使得所述VM部分接收所述客戶機(jī)遠(yuǎn)程呈現(xiàn)會話通信,并且所述VM部分在不對所述客戶機(jī)進(jìn)行認(rèn)證的情況下處理所述客戶機(jī)遠(yuǎn)程呈現(xiàn)會話通信。
8.如權(quán)利要求1所述的方法,其特征在于,建立與所選VM的連接包括響應(yīng)于確定不能建立與所選VM的共享資源連接來建立與所選VM的傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)連接。
9.如權(quán)利要求1所述的方法,其特征在于,選擇所選VM包括 基于所述多個VM之間的負(fù)載平衡來選擇所選VM。
10.如權(quán)利要求1所述的方法,其特征在于,選擇所選VM包括基于所選VM具有用于與所述客戶機(jī)進(jìn)行遠(yuǎn)程呈現(xiàn)會話的可用負(fù)載來選擇所選VM。
11.一種承載計算機(jī)可讀指令的計算機(jī)可讀存儲介質(zhì),當(dāng)所述計算機(jī)可讀指令在遠(yuǎn)程呈現(xiàn)會話部署的服務(wù)器(536a)上執(zhí)行時,使得所述服務(wù)器執(zhí)行以下操作,包括由在所述服務(wù)器的一分區(qū)內(nèi)執(zhí)行的合并角色GMa)從客戶機(jī)(31 接收遠(yuǎn)程呈現(xiàn)會話連接請求,所述遠(yuǎn)程呈現(xiàn)會話請求是在所述遠(yuǎn)程呈現(xiàn)會話請求沒有由所述遠(yuǎn)程呈現(xiàn)會話部署的連接中介處理的情況下接收的;由所述合并角色確定所述服務(wù)器所主存的多個虛擬機(jī)(VM)中沒有VM 310將向所述客戶機(jī)提供所述遠(yuǎn)程呈現(xiàn)會話;由所述合并角色對中介進(jìn)行查詢以尋找第二服務(wù)器(536b),所述第二服務(wù)器主存將向所述客戶機(jī)提供所述遠(yuǎn)程呈現(xiàn)會話的VM ;由所述合并角色基于所述查詢來接收所述第二服務(wù)器的身份;以及向所述客戶機(jī)發(fā)送與所述第二服務(wù)器進(jìn)行所述遠(yuǎn)程呈現(xiàn)會話的指示,使得所述客戶機(jī)聯(lián)系所述第二服務(wù)器并與所述第二服務(wù)器的VM建立遠(yuǎn)程呈現(xiàn)會話。
12.如權(quán)利要求11所述的計算機(jī)可讀存儲介質(zhì),其特征在于,所述部署包括多個服務(wù)器,并且所述中介被配置成與所述多個服務(wù)器中的每一服務(wù)器進(jìn)行通信以確定服務(wù)器是否可進(jìn)行遠(yuǎn)程呈現(xiàn)會話。
13.如權(quán)利要求11所述的計算機(jī)可讀存儲介質(zhì),其特征在于,所述中介維護(hù)包括所述第二服務(wù)器具有主存與所述客戶機(jī)的遠(yuǎn)程呈現(xiàn)會話的能力的指示的數(shù)據(jù)庫;以及響應(yīng)于所述合并角色對所述中介進(jìn)行的尋找所述第二服務(wù)器的查詢,所述中介基于所述數(shù)據(jù)庫來確定所述第二服務(wù)器主存將提供所述遠(yuǎn)程呈現(xiàn)會話的VM。
14.如權(quán)利要求11所述的計算機(jī)可讀存儲介質(zhì),其特征在于,響應(yīng)于所述合并角色對所述中介進(jìn)行的尋找所述第二服務(wù)器的查詢,所述中介通過查詢所述第二服務(wù)器以確定所述第二服務(wù)器能夠提供所述遠(yuǎn)程呈現(xiàn)會話來確定所述第二服務(wù)器主存將提供所述遠(yuǎn)程呈現(xiàn)的VM。
15.如權(quán)利要求11所述的計算機(jī)可讀存儲介質(zhì),其特征在于,所述服務(wù)器和所述第二服務(wù)器具有相同的全稱域名(FQDN);以及作為客戶機(jī)查詢域名系統(tǒng)(DNS)以尋找所述部署的網(wǎng)際協(xié)議(IP)地址的結(jié)果,由在所述服務(wù)器的一分區(qū)內(nèi)執(zhí)行的合并角色接收來自所述客戶機(jī)的遠(yuǎn)程呈現(xiàn)會話連接請求,并且作為響應(yīng)來基于所述DNS的循環(huán)特征接收所述服務(wù)器的IP地址。
全文摘要
公開了用于高效的遠(yuǎn)程呈現(xiàn)會話連接和路由的技術(shù)。在一實施例中,接收來自客戶機(jī)的連接以及確定用于提供客戶機(jī)的遠(yuǎn)程呈現(xiàn)會話的虛擬機(jī)(VM)中涉及的遠(yuǎn)程呈現(xiàn)會話部署的各角色被合并在主存這些VM的部署的一個或多個服務(wù)器上。在這一合并角色從客戶機(jī)接收連接建立通信時,它使用它本地和它服務(wù)器本地的信息來確定用于提供遠(yuǎn)程呈現(xiàn)會話的VM。在該部署包括多個這樣的服務(wù)器的情況下,合并角色可以與服務(wù)器間連接中介進(jìn)行通信以確定將進(jìn)行遠(yuǎn)程呈現(xiàn)會話的不同的服務(wù)器。
文檔編號H04L29/06GK102333109SQ20111017071
公開日2012年1月25日 申請日期2011年6月14日 優(yōu)先權(quán)日2010年6月15日
發(fā)明者A·伯納迪, I·本-沙哈爾, M·K·阿拉迪, W·R·舒米德爾 申請人:微軟公司