專利名稱::會(huì)話中介可擴(kuò)展應(yīng)用程序接口的制作方法會(huì)話中介可擴(kuò)展應(yīng)用程序接口背景在諸如終端服務(wù)tm(TS)系統(tǒng)等遠(yuǎn)程訪問系統(tǒng)環(huán)境中,若干服務(wù)器計(jì)算機(jī)能存放一個(gè)或多個(gè)應(yīng)用程序并使其對(duì)通過網(wǎng)絡(luò)訪問這些應(yīng)用程序的若干客戶機(jī)設(shè)備可用。一般而言,用戶可以通過在服務(wù)器計(jì)算機(jī)一端和客戶機(jī)設(shè)備處的用戶一端之間建立連接來遠(yuǎn)程地訪問該服務(wù)器計(jì)算機(jī)所存放的應(yīng)用程序。這樣的通信在用戶和服務(wù)器之間創(chuàng)建會(huì)話,在該會(huì)話期間用戶可以與該服務(wù)器計(jì)算機(jī)上存放的應(yīng)用程序進(jìn)行交互并使用它,如同該應(yīng)用程序存在該遠(yuǎn)程客戶機(jī)設(shè)備的本地。然而,遠(yuǎn)程訪問系統(tǒng)(例如TS)環(huán)境可能不能允許用戶訪問加載在服務(wù)器計(jì)算機(jī)上的第三方應(yīng)用程序。這樣的第三方應(yīng)用程序(也可以是"插件"應(yīng)用程序)可由獨(dú)立的軟件供應(yīng)商(ISV)來創(chuàng)建或提供。通常,ISV不能向用戶提供允許用戶訪問第三方應(yīng)用程序的路由行為(進(jìn)程)。因此,存在對(duì)由遠(yuǎn)程客戶機(jī)設(shè)備和用戶訪問的、存放在遠(yuǎn)程服務(wù)器計(jì)算機(jī)上的第三方應(yīng)用程序的需求。概述提供本概述以描述與充分利用能支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)相關(guān)的概念。這些概念在以下詳細(xì)描述中進(jìn)一步描述。本概述并不旨在標(biāo)識(shí)所要求保護(hù)的主題的必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。在一個(gè)實(shí)現(xiàn)中,會(huì)話中介服務(wù)器監(jiān)視遠(yuǎn)程客戶機(jī)和具有應(yīng)用程序(插件應(yīng)用程序)的對(duì)該客戶機(jī)可用的服務(wù)器的狀態(tài)和連接。一種可擴(kuò)展應(yīng)用程序接口(API)標(biāo)識(shí)遠(yuǎn)程客戶機(jī)可用的會(huì)話。附圖簡(jiǎn)述參考附圖來描述詳細(xì)描述。在附圖中,附圖標(biāo)號(hào)的最左邊的數(shù)字標(biāo)識(shí)該附圖標(biāo)號(hào)首次出現(xiàn)的附圖。在各附圖中,使用相同的標(biāo)號(hào)來指示相同的特征和組件。圖1是示出用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的示例性網(wǎng)絡(luò)體系結(jié)構(gòu)的框圖。圖2是示出用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的示例性體系結(jié)構(gòu)的框圖。圖3是示出用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的示例性服務(wù)器系統(tǒng)的框圖。圖4是示出用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的示例性方法的流程圖。圖5是示出用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的另一示例性方法的流程圖。圖6是示出示例性計(jì)算環(huán)境的框圖。詳細(xì)描述本發(fā)明針對(duì)用于可支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的技術(shù)。遠(yuǎn)程訪問系統(tǒng)的一個(gè)示例是微軟⑥公司提供的終端服務(wù)tm系統(tǒng)。終端服務(wù)1在以下示例中討論;然而,可以理解,所討論的技術(shù)適用于其他遠(yuǎn)程訪問系統(tǒng)?!N會(huì)話中介控制向在遠(yuǎn)程訪問系統(tǒng)環(huán)境中通信的用戶分配會(huì)話。會(huì)話中介基于存儲(chǔ)在該會(huì)話中介中的會(huì)話狀態(tài)信息來向用戶分配會(huì)話。會(huì)話狀態(tài)信息可包括例如會(huì)話ID、用戶名、會(huì)話所在的服務(wù)器的名稱、每一服務(wù)器計(jì)算機(jī)中的活動(dòng)會(huì)話的數(shù)量等等。在一遠(yuǎn)程訪問系統(tǒng)環(huán)境中,服務(wù)器可以接收用戶對(duì)連接的請(qǐng)求。該服務(wù)器可以初始地接受該連接請(qǐng)求并隨后查詢會(huì)話中介以確定可將該用戶重定向到哪里。會(huì)話中介分析該特定環(huán)境的會(huì)話狀態(tài)信息并標(biāo)識(shí)該用戶可被重定向的服務(wù)器。一合適的服務(wù)器可能擁有該用戶先前訪問但隨后斷開的會(huì)話,該用戶可被再次重新連接到該會(huì)話。在一實(shí)現(xiàn)中,假如用戶不擁有任何其他現(xiàn)有會(huì)話,則一合適的服務(wù)器可以提供該用戶可以連接到的新會(huì)話。會(huì)話中介向被請(qǐng)求的服務(wù)器發(fā)送信息,從而允許該服務(wù)器與該合適的服務(wù)器建立連接。例如,該信息可包括機(jī)器ID、會(huì)話ID、以及該合適的服務(wù)器的位置。被請(qǐng)求的服務(wù)器分析接收到的該信息并將用戶重定向到該合適的服務(wù)器?!┯脩襞c該合適的服務(wù)器建立了連接,則該用戶可以訪問該合適的服務(wù)器中存在的應(yīng)用程序。這些應(yīng)用程序可以兼容會(huì)話中介邏輯,該邏輯在從終端服務(wù)環(huán)境中標(biāo)識(shí)該合適的服務(wù)器時(shí)使用。遠(yuǎn)程訪問系統(tǒng)環(huán)境面對(duì)的一個(gè)挑戰(zhàn)是向用戶提供對(duì)第三方應(yīng)用程序的訪問,并且尤其是提供對(duì)插件應(yīng)用程序的訪問。此處描述的技術(shù)通過提供充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的應(yīng)用程序接口(API)來解決這一挑戰(zhàn)。在一典型的場(chǎng)景中,在用戶請(qǐng)求連接以訪問第三方插件應(yīng)用程序時(shí),該API可覆蓋(override)會(huì)話中介邏輯并與該會(huì)話中介進(jìn)程交互以標(biāo)識(shí)該用戶可連接到的會(huì)話或合適的服務(wù)器。用戶可通過所標(biāo)識(shí)的會(huì)話或合適的服務(wù)器來訪問第三方插件應(yīng)用程序。在一個(gè)實(shí)現(xiàn)中,第三方插件應(yīng)用程序可從在遠(yuǎn)程訪問系統(tǒng)環(huán)境中作出的改變中更新,例如新會(huì)話的創(chuàng)建、會(huì)話的刪除、服務(wù)器中的配置改變、會(huì)話的連接和斷開信息等。會(huì)話中介進(jìn)程可以管理遠(yuǎn)程訪問系統(tǒng)環(huán)境中的改變,并在接收到來自該API的指令時(shí)將這些改變通知給第三方插件應(yīng)用程序。此處描述的技術(shù)可用于多種不同的操作環(huán)境和系統(tǒng)中。以下描述多種多樣的實(shí)現(xiàn)。在下節(jié)中討論適用于實(shí)現(xiàn)各種實(shí)現(xiàn)的示例性環(huán)境。用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的示例性系統(tǒng)和方法在可由諸如個(gè)人計(jì)算機(jī)等計(jì)算設(shè)備執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。程序模塊一般包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。盡管本發(fā)明的系統(tǒng)和方法在上述上下文中描述,但此后描述的動(dòng)作和操作是用硬件或其他形式的計(jì)算平臺(tái)來實(shí)現(xiàn)的。示例性網(wǎng)絡(luò)體系結(jié)構(gòu)圖1示出用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的示例性網(wǎng)絡(luò)體系結(jié)構(gòu)100。為此,描述了包括可通過網(wǎng)絡(luò)110與服務(wù)器集合104、外部服務(wù)器或服務(wù)器106、以及會(huì)話中介服務(wù)器108進(jìn)行通信的多個(gè)客戶機(jī)設(shè)備102-1、102-2........102-N(統(tǒng)稱為客戶機(jī)設(shè)備104)的網(wǎng)絡(luò)體系結(jié)構(gòu)100。在一個(gè)實(shí)現(xiàn)中,網(wǎng)絡(luò)體系結(jié)構(gòu)100中的服務(wù)器集合104、服務(wù)器106、以及會(huì)話中介服務(wù)器108可以與多個(gè)個(gè)人計(jì)算機(jī)(PC)、web服務(wù)器、以及分布于全球的其他計(jì)算設(shè)備進(jìn)行交互?;蛘?,在另一可能的實(shí)現(xiàn)中,網(wǎng)絡(luò)體系結(jié)構(gòu)IOO可包括通過局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)等來與單個(gè)服務(wù)器通信的有限數(shù)量的PC。網(wǎng)絡(luò)110可以是局域網(wǎng)(LAN)、廣域網(wǎng)、無線網(wǎng)絡(luò)、光學(xué)網(wǎng)絡(luò)、城域網(wǎng)(MAN)等??蛻魴C(jī)設(shè)備102可以是通用計(jì)算設(shè)備、膝上型計(jì)算設(shè)備、移動(dòng)計(jì)算設(shè)備等。服務(wù)器集合104可包括多個(gè)服務(wù)器112-1、112-2........112-N(統(tǒng)稱為服務(wù)器112)。服務(wù)器112可具有供客戶機(jī)設(shè)備102使用的插件114。插件114可包括例如第三方插件應(yīng)用程序以及任何其他軟件應(yīng)用程序。如上所述,在服務(wù)器112和客戶機(jī)設(shè)備102之間創(chuàng)建的會(huì)話使得客戶機(jī)設(shè)備102能夠訪問服務(wù)器112中所存放的插件114。服務(wù)器112基于從會(huì)話中介服務(wù)器108接收到的指令來創(chuàng)建這些會(huì)話。在一個(gè)實(shí)現(xiàn)中,客戶機(jī)設(shè)備102-1可以向服務(wù)器集合104發(fā)送訪問在那里所存放的插件的請(qǐng)求。來自服務(wù)器集合104的服務(wù)器112-1接受該請(qǐng)求并與客戶機(jī)設(shè)備102-1建立連接。服務(wù)器112-1可以向會(huì)話中介服務(wù)器108發(fā)送查詢以確定將客戶機(jī)設(shè)備102-1重定向到哪里。需要注意,來自服務(wù)器集合104的任何服務(wù)器112都可接受來自客戶機(jī)設(shè)備102-1的連接請(qǐng)求。在另一實(shí)現(xiàn)中,服務(wù)器112-1可以擔(dān)當(dāng)專用重定向器并接受來自客戶機(jī)設(shè)備102-1的連接請(qǐng)求。在這樣的實(shí)現(xiàn)中,請(qǐng)求連接的客戶機(jī)設(shè)備102-1最初可連接到服務(wù)器112-1。會(huì)話中介服務(wù)器108可實(shí)現(xiàn)會(huì)話中介模塊116和可擴(kuò)展API118,它們用于處理服務(wù)器112-1所發(fā)送的查詢并標(biāo)識(shí)可被提供給客戶機(jī)設(shè)備102-1的會(huì)話??蓴U(kuò)展API118可以是基于分布式組件對(duì)象模型(DCOM)的接口,該接口使跨服務(wù)器網(wǎng)絡(luò)計(jì)算設(shè)備而分布的若干軟件組件能夠彼此通信。在一個(gè)實(shí)現(xiàn)中,可擴(kuò)展API118可以是允許網(wǎng)絡(luò)環(huán)境中的各軟件組件之間的通信的基于組件對(duì)象模型(COM)的接口。在一個(gè)實(shí)現(xiàn)中,會(huì)話中介模塊116可以接收查詢并將對(duì)該查詢的接收通知給可擴(kuò)展API118??蓴U(kuò)展API118產(chǎn)生一個(gè)函數(shù)調(diào)用,該調(diào)用可觸發(fā)會(huì)話中介模塊116來標(biāo)識(shí)會(huì)話。所標(biāo)識(shí)的會(huì)話可以是早先與客戶機(jī)設(shè)備102-1相關(guān)聯(lián)的已有會(huì)話。會(huì)話中介模塊116隨后可以指示服務(wù)器112-1將客戶機(jī)設(shè)備102-1重定向到服務(wù)器112中的具有一已有會(huì)話的任何一個(gè)服務(wù)器,例如服務(wù)器112-2。在這種情況下,服務(wù)器112-1重定向客戶機(jī)設(shè)備102-1以與服務(wù)器112-2建立連接。在另一實(shí)現(xiàn)中,會(huì)話中介模塊116還可以將客戶機(jī)設(shè)備102-1重定向到具有已有會(huì)話的位于服務(wù)器集合104之外的服務(wù)器亂在又一實(shí)現(xiàn)中,會(huì)話中介模塊116可標(biāo)識(shí)具有可被提供給客戶機(jī)設(shè)備102-1的新會(huì)話的任何合適的服務(wù)器112,該合適的服務(wù)器可能不具有遠(yuǎn)程訪問系統(tǒng)環(huán)境中的任何已有會(huì)話。會(huì)話中介模塊116隨后指引服務(wù)器112-1將客戶機(jī)設(shè)備102-1重定向到服務(wù)器112外部的合適的服務(wù)器。在又一實(shí)現(xiàn)中,會(huì)話中介模塊116可將服務(wù)器108標(biāo)識(shí)為能夠向客戶機(jī)設(shè)備102-1提供新會(huì)話。示例性系統(tǒng)體系結(jié)構(gòu)圖2示出用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的示例性系統(tǒng)體系結(jié)構(gòu)200。系統(tǒng)體系結(jié)構(gòu)200示出來自服務(wù)器集合的一個(gè)服務(wù)器(例如,服務(wù)器112-1)與會(huì)話中介服務(wù)器108之間的交互。服務(wù)器112-1可包括與遠(yuǎn)程連接管理器204和本地會(huì)話管理器206進(jìn)行交互的會(huì)話中介客戶機(jī)202。需要注意,服務(wù)器集合6104中的服務(wù)器112可包括其各自的會(huì)話中介客戶機(jī)、遠(yuǎn)程連接管理器、以及本地會(huì)話管理器。會(huì)話中介服務(wù)器108還可包括與寄存器208和可擴(kuò)展API118進(jìn)行交互的會(huì)話中介模塊116。服務(wù)器112-1最初與客戶機(jī)設(shè)備102-1相連接并從客戶機(jī)設(shè)備102-1接收連接到會(huì)話的請(qǐng)求。會(huì)話中介客戶機(jī)202收集該請(qǐng)求以及客戶機(jī)信息??蛻魴C(jī)信息可包括例如客戶機(jī)設(shè)備102在遠(yuǎn)程訪問系統(tǒng)環(huán)境中的機(jī)器ID和位置。會(huì)話中介客戶機(jī)202將請(qǐng)求和客戶機(jī)信息發(fā)送到會(huì)話中介模塊116。會(huì)話中介模塊116可以執(zhí)行被示為會(huì)話中介進(jìn)程208的一部分的各種功能,以從服務(wù)器112中標(biāo)識(shí)客戶機(jī)設(shè)備102-1可被重定向到的一個(gè)服務(wù)器。在操作中,會(huì)話中介模塊116可以將對(duì)請(qǐng)求的接收通知給可擴(kuò)展API118。在一個(gè)實(shí)現(xiàn)中,會(huì)話中介模塊116可以執(zhí)行用于初始化插件114的功能,即初始化212。在初始化212的過程期間,會(huì)話中介模塊116從寄存器208中確定插件114的類ID。寄存器208可包括例如各插件應(yīng)用程序的類ID,關(guān)于硬件設(shè)置、操作系統(tǒng)、非操作系統(tǒng)、客戶機(jī)設(shè)備、服務(wù)器等的信息。根據(jù)對(duì)插件114的類ID的標(biāo)識(shí),會(huì)話中介模塊116可以創(chuàng)建插件114的實(shí)例,該實(shí)例進(jìn)而初始化插件114?!﹦?chuàng)建了實(shí)例,則可擴(kuò)展API118可以觸發(fā)會(huì)話中介模塊116來啟動(dòng)被示為斷開會(huì)話214的函數(shù)調(diào)用'TSSDRpcGetUserDisconnectedSessions(獲取用戶斷開會(huì)話)'以標(biāo)識(shí)客戶機(jī)設(shè)備102-1可被重定向到的會(huì)話。在一個(gè)實(shí)現(xiàn)中,斷開會(huì)話214可以確定客戶機(jī)設(shè)備102-1先前連接但稍后斷開的已有會(huì)話。在這樣的場(chǎng)景中,會(huì)話中介模塊116可以進(jìn)行函數(shù)調(diào)用,即'TSSDRpcPingSD(查驗(yàn)會(huì)話目錄)'和'TSSDRpcQuerySDVersion(查詢會(huì)話目錄版本)',以從會(huì)話目錄中標(biāo)識(shí)已有會(huì)話并同時(shí)確定會(huì)話目錄的版本。以上函數(shù)調(diào)用可分別被示為查驗(yàn)會(huì)話目錄216和會(huì)話目錄版本218。已有會(huì)話可以是與服務(wù)器集合104中的任何一個(gè)服務(wù)器112相關(guān)聯(lián)的會(huì)話。在另一實(shí)現(xiàn)中,已有會(huì)話可以與位于服務(wù)器集合104外部的服務(wù)器106相關(guān)聯(lián)。在標(biāo)識(shí)了已有會(huì)話后,會(huì)話中介模塊116可以收集會(huì)話細(xì)節(jié),例如會(huì)話ID、機(jī)器ID、以及與可提供該已有會(huì)話的服務(wù)器(例如,服務(wù)器112-1)相關(guān)的位置。例如,會(huì)話中介模塊116隨后可向遠(yuǎn)程連接管理器204發(fā)送該會(huì)話細(xì)節(jié)連同建立連接的指令。遠(yuǎn)程連接管理器204基于該會(huì)話細(xì)節(jié)從服務(wù)器112中標(biāo)識(shí)服務(wù)器112-2,并將客戶機(jī)設(shè)備102-1重定向到服務(wù)器112-2來建立連接。在重定向客戶機(jī)設(shè)備102-1的過程期間,遠(yuǎn)程連接管理器204可向服務(wù)器112-2發(fā)送連接請(qǐng)求。會(huì)話中介模塊116繼續(xù)監(jiān)視該連接的狀態(tài)并用在遠(yuǎn)程訪問系統(tǒng)環(huán)境中發(fā)生的任何改變來更新可擴(kuò)展API118。在該監(jiān)視過程期間,會(huì)話中介模塊116可進(jìn)行被示為服務(wù)器重新連接待決220的函數(shù)調(diào)用,即'TSSDRpcSetServerReconnectPending(設(shè)置服務(wù)器重新連接待決)',以通知可擴(kuò)展API118與服務(wù)器112-2的連接請(qǐng)求正在待決。—旦建立了該連接,則會(huì)話中介模塊116可將連接狀態(tài)報(bào)告給可擴(kuò)展API118。例如,會(huì)話中介模塊116可進(jìn)行被示為重新連接的會(huì)話222的函數(shù)調(diào)用'TSSDRpcSetSessionReconnected(設(shè)置重新連接的會(huì)話)'以使可擴(kuò)展API118確認(rèn)客戶機(jī)設(shè)備102-1已經(jīng)連接。0041]可擴(kuò)展API118可啟動(dòng)會(huì)話中介模塊116來產(chǎn)生另一函數(shù)調(diào)用,即斷開會(huì)話214,以標(biāo)識(shí)可被提供給客戶機(jī)設(shè)備102-1的新會(huì)話。在這種情況下,會(huì)話中介模塊116收集與來自服務(wù)器集合104的服務(wù)器(例如,服務(wù)器112-2)或外部服務(wù)器106相關(guān)聯(lián)的服務(wù)器細(xì)節(jié),并將該服務(wù)器細(xì)節(jié)發(fā)送到遠(yuǎn)程連接管理器204。遠(yuǎn)程連接管理器204指導(dǎo)客戶機(jī)設(shè)備102-1來與服務(wù)器112-2或服務(wù)器106創(chuàng)建新會(huì)話。在一實(shí)現(xiàn)中,會(huì)話中介模塊116確認(rèn)是否創(chuàng)建了新會(huì)話,并相應(yīng)地啟動(dòng)被示為創(chuàng)建會(huì)話224的函數(shù)調(diào)用,即'TSSDRpcCreateSession(創(chuàng)建會(huì)話)',以將該新會(huì)話的創(chuàng)建通知給插件114。在以上實(shí)現(xiàn)中,可擴(kuò)展API118可以隨機(jī)但連續(xù)地啟動(dòng)會(huì)話中介模塊116來進(jìn)行被示為會(huì)話斷開226的函數(shù)調(diào)用,即'TSSDRpcSetSessionDisconnected(設(shè)置斷開會(huì)話ID)',以通知插件114連接客戶機(jī)設(shè)備102-1與服務(wù)器112-2或服務(wù)器106的會(huì)話已斷開。在這種情況下,會(huì)話中介模塊116可指示本地會(huì)話管理器監(jiān)視該斷開的會(huì)話。除以上之外,可擴(kuò)展API118可觸發(fā)會(huì)話中介模塊116來提供關(guān)于在遠(yuǎn)程訪問系統(tǒng)環(huán)境中作出的配置改變的信息。在這樣的場(chǎng)景中,會(huì)話中介模塊116可以啟動(dòng)被示為配置設(shè)置228的函數(shù)調(diào)用,即'SSDRpcUpdateConfigurationSetting(更新配置設(shè)置)',這可收集與配置改變相關(guān)的信息并向插件114報(bào)告這些改變(如果有的話)??蓴U(kuò)展API118可指示會(huì)話中介模塊116來標(biāo)識(shí)連接到客戶機(jī)設(shè)備102-1的服務(wù)器112-2或服務(wù)器108的狀態(tài)。會(huì)話中介模塊116在接收到指令后,可進(jìn)行分別被示為服務(wù)器在線230和服務(wù)器離線232的函數(shù)調(diào)用,即'TSSDRpcServerOnlineEx(服務(wù)器在線)'和'TSSDRpcServerOffline(服務(wù)器離線)',以通知插件114服務(wù)器112-2或服務(wù)器108是否離線??蓴U(kuò)展API118可與會(huì)話中介模塊118進(jìn)行交互以確定在特定時(shí)間在遠(yuǎn)程訪問系統(tǒng)環(huán)境中運(yùn)行的各會(huì)話的狀態(tài)。在這樣的實(shí)現(xiàn)中,會(huì)話中介模塊118可啟動(dòng)被示為刪除會(huì)話234的函數(shù)調(diào)用(例如,'TSSDRpcDeleteSession(刪除會(huì)話)')以通知插件114該會(huì)話已被刪除。會(huì)話中介模塊118可啟動(dòng)被示為重新填充所有會(huì)話236的函數(shù)調(diào)用,即'TSSDRpcR印opulateAllSession(重新填充所有會(huì)話)',以檢查由會(huì)話中介模塊118管理的所有會(huì)話的狀態(tài)。示例性會(huì)話中介服務(wù)器圖3詳細(xì)描述與充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)相關(guān)聯(lián)的會(huì)話中介服務(wù)器108的某些功能方面。服務(wù)器108包括處理器300和系統(tǒng)存儲(chǔ)器302。服務(wù)器108還包括用于提供到諸如圖1中所描述的網(wǎng)絡(luò)102等各種網(wǎng)絡(luò)的連接和諸如有線(例如,LAN、電纜等)和無線網(wǎng)絡(luò)(例如,WLAN、蜂窩、衛(wèi)星等)等協(xié)議類型的網(wǎng)絡(luò)接口304。輸入/輸出接口306為服務(wù)器108提供數(shù)據(jù)輸入和輸出能力。輸入/輸出接口306可包括例如鼠標(biāo)端口、鍵盤端口等。系統(tǒng)存儲(chǔ)器302存儲(chǔ)程序模塊308和程序數(shù)據(jù)310。程序模塊308可包括會(huì)話中介模塊116、可擴(kuò)展API118、以及其他應(yīng)用程序模塊312(例如,用于提供運(yùn)行時(shí)環(huán)境的操作系統(tǒng)(OS)、多個(gè)用戶之間的連網(wǎng)通信)。會(huì)話中介模塊116具有若干責(zé)任,包括擔(dān)當(dāng)遠(yuǎn)程訪問系統(tǒng)環(huán)境的中央單元、向請(qǐng)求連接的客戶機(jī)設(shè)備102分配會(huì)話、以及監(jiān)視該遠(yuǎn)程訪問系統(tǒng)環(huán)境中的會(huì)話。會(huì)話中介模塊116可包括初始化模塊314、函數(shù)調(diào)用模塊316、監(jiān)視模塊318、以及重新加入模塊320。如上所述,會(huì)話中介模塊116可用來通過服務(wù)器112-1接收客戶機(jī)設(shè)備102-1所發(fā)送的對(duì)會(huì)話的請(qǐng)求。基于接收到的請(qǐng)求,初始化模塊314初始化可擴(kuò)展API118。初始化模塊314可以從寄存器208確定插件114的類ID。一旦插件114的類ID與存儲(chǔ)在寄存器中的類ID相匹配,則初始化模塊314可以創(chuàng)建實(shí)例來初始化可擴(kuò)展API118。如上所述,可擴(kuò)展API118指示會(huì)話中介模塊116產(chǎn)生適當(dāng)?shù)暮瘮?shù)調(diào)用以標(biāo)識(shí)客戶機(jī)設(shè)備102-1可被重定向到的會(huì)話。因此,例如,調(diào)用被示為外部會(huì)話集合322的函數(shù)調(diào)用'WTSSBX_GetUserExternalSession(獲取用戶外部會(huì)話)'來標(biāo)識(shí)遠(yuǎn)程訪問系統(tǒng)環(huán)境中存在的外部會(huì)話。該外部會(huì)話可以是位于服務(wù)器集合104之外的服務(wù)器106所提供的會(huì)話。在這種情況下,外部會(huì)話集合322可以觸發(fā)函數(shù)調(diào)用模塊316來產(chǎn)生諸如斷開會(huì)話214等函數(shù)調(diào)用以確定服務(wù)器106是否能向客戶機(jī)設(shè)備102-1提供外部會(huì)話并且如果連接到外部則還收集會(huì)話細(xì)節(jié)。此后,會(huì)話中介模塊116可以收集會(huì)話細(xì)節(jié)并通過服務(wù)器112-1將客戶機(jī)設(shè)備102-1定向到服務(wù)器106。函數(shù)調(diào)用模塊316所進(jìn)行的函數(shù)調(diào)用可由監(jiān)視模塊318來監(jiān)視以確定該函數(shù)調(diào)用是否即將超過預(yù)定時(shí)間。該預(yù)定時(shí)間可由諸如管理器等用戶來預(yù)設(shè)。在函數(shù)調(diào)用保持待決超過預(yù)定時(shí)間的情況下,如果插件114失敗,監(jiān)視模塊318可以指示會(huì)話中介模塊116記錄出錯(cuò)消息。此后,會(huì)話中介模塊116可以再次啟動(dòng)可擴(kuò)展API118。在一個(gè)實(shí)現(xiàn)中,外部會(huì)話集合322可以觸發(fā)函數(shù)調(diào)用模塊316來產(chǎn)生函數(shù)調(diào)用以從遠(yuǎn)程訪問系統(tǒng)環(huán)境中確定與客戶機(jī)設(shè)備104相關(guān)聯(lián)的已有會(huì)話。函數(shù)調(diào)用模塊316進(jìn)而產(chǎn)生函數(shù)調(diào)用,如查驗(yàn)會(huì)話目錄216和會(huì)話目錄版本218,以從會(huì)話目錄中標(biāo)識(shí)客戶機(jī)設(shè)備102-1的已有會(huì)話。函數(shù)調(diào)用模塊316可以標(biāo)識(shí)服務(wù)器集合104中的能夠提供已有會(huì)話的任何一個(gè)服務(wù)器112,例如服務(wù)器112-2。在這樣的場(chǎng)景中,函數(shù)調(diào)用模塊316收集服務(wù)器112-2的服務(wù)器細(xì)節(jié)并將其服務(wù)器細(xì)節(jié)提供給會(huì)話中介模塊116?;谠摲?wù)器細(xì)節(jié),會(huì)話中介模塊116可以將客戶機(jī)設(shè)備102-1定向到服務(wù)器112。在另一實(shí)現(xiàn)中,已有會(huì)話可由位于服務(wù)器集合104外部的服務(wù)器106提供??蓴U(kuò)展API114可以啟動(dòng)函數(shù)調(diào)用模塊316以進(jìn)行函數(shù)調(diào)用,即合適的服務(wù)器集合324,以從服務(wù)器集合104或外部服務(wù)器106標(biāo)識(shí)可向客戶機(jī)設(shè)備102-1提供新會(huì)話的合適的服務(wù)器。例如,函數(shù)調(diào)用模塊316可進(jìn)行函數(shù)調(diào)用,即'WTSSBX_GetMostSuitableServer(獲取最合適的服務(wù)器)',以標(biāo)識(shí)可向客戶機(jī)設(shè)備102_1提供新會(huì)話的合適的服務(wù)器。因此,函數(shù)調(diào)用模塊316收集與看來適用于連接的合適的服務(wù)器相關(guān)聯(lián)的服務(wù)器細(xì)節(jié)并啟用會(huì)話中介模塊116來指示服務(wù)器112-1在客戶機(jī)設(shè)備104和該合適的服務(wù)器之間建立連接。如上所述,函數(shù)調(diào)用可由監(jiān)視模塊318來監(jiān)視以確定該函數(shù)調(diào)用是否待決超過預(yù)定時(shí)間。在函數(shù)調(diào)用保持待決超過預(yù)定時(shí)間的情況下,如果插件114失敗,監(jiān)視模塊318可以指示會(huì)話中介模塊116記錄出錯(cuò)消息。此后,監(jiān)視模塊318重定向可擴(kuò)展API118以與會(huì)話中介模塊116的負(fù)載平衡算法進(jìn)行交互。該負(fù)載平衡算法使得會(huì)話中介模塊116能夠標(biāo)識(shí)合適的服務(wù)器列表。會(huì)話中介模塊116標(biāo)識(shí)具有最少數(shù)量的會(huì)話的合適的服務(wù)器并指示服務(wù)器112-1將客戶機(jī)設(shè)備102-1重定向到該合適的服務(wù)器。在以上實(shí)現(xiàn)中,可擴(kuò)展API118可被配置成對(duì)會(huì)話改變通知326進(jìn)行調(diào)用,這觸發(fā)會(huì)話中介模塊116用發(fā)生的會(huì)話改變來更新插件114。例如,可擴(kuò)展API118可進(jìn)行函數(shù)調(diào)用,g卩'WTSSBX_SessionChangeNotification(會(huì)話改變通知)',以使會(huì)話中介模塊116能9夠收集關(guān)于發(fā)生的任何會(huì)話改變的信息,如新會(huì)話的創(chuàng)建、已有會(huì)話的斷開、會(huì)話的重新連接、以及會(huì)話的刪除。在一個(gè)實(shí)現(xiàn)中,當(dāng)稱為'WTSSBX_SessionChangeNotification(會(huì)話改變通知),的函數(shù)調(diào)用保持待決超過預(yù)定時(shí)間并且插件114失敗時(shí),記錄出錯(cuò)事件。另夕卜,可擴(kuò)展API118可調(diào)用被示為機(jī)器改變通知328的'WTSSBX_MachineChangeNotification(機(jī)器改變通知)'以啟動(dòng)會(huì)話中介模塊116來收集在遠(yuǎn)程訪問系統(tǒng)環(huán)境中的服務(wù)器112和外部服務(wù)器106中發(fā)生的信息并將該信息報(bào)告給插件114。所發(fā)生的改變可包括服務(wù)器中的配置改變和服務(wù)器狀態(tài)的改變(即服務(wù)器的在線或離線狀態(tài))。在一實(shí)現(xiàn)中,當(dāng)函數(shù)調(diào)用'WTSSBX_MachineChangeNotification(機(jī)器改變通知)'保持待決超過預(yù)定時(shí)間并且插件114失敗時(shí),記錄出錯(cuò)事件。示例性方法參考附圖1-3來描述用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的示例性過程。這些過程可在計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。一般而言,計(jì)算機(jī)可執(zhí)行指令可包括執(zhí)行特定功能或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)、過程、模塊、功能等。這些過程還能在其中功能由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中,計(jì)算機(jī)可執(zhí)行指令可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。圖4示出用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的示例性方法400。過程400被表示為邏輯流程圖中的一組框的集合,其表示可用硬件、軟件或其組合實(shí)現(xiàn)的一系列操作。在軟件上下文中,各個(gè)框表示當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí)完成既定操作的計(jì)算機(jī)指令。描述方法的次序并不旨在解釋為限制,并且任何數(shù)量的所述方法框都可以按任何次序組合以實(shí)現(xiàn)本方法或?qū)崿F(xiàn)替換方法。另外,可從該方法中刪除各個(gè)框而不背離此處所述的主題的精神和范圍。此外,本方法可用任何合適的硬件、軟件、固件或其組合來實(shí)現(xiàn)而不背離本發(fā)明的范圍。在框402處,用戶請(qǐng)求連接到會(huì)話。在一個(gè)實(shí)現(xiàn)中,客戶機(jī)設(shè)備102-1的用戶向服務(wù)器112-1作出請(qǐng)求以訪問存放在該服務(wù)器上的插件114或任何其他應(yīng)用程序。會(huì)話中介模塊116從最初與客戶機(jī)設(shè)備102-1相連接的服務(wù)器112-1接收對(duì)會(huì)話的請(qǐng)求。此后,會(huì)話中介模塊116初始化與插件114相關(guān)聯(lián)的可擴(kuò)展API118。在框404處,調(diào)用函數(shù)調(diào)用,S卩'GetUserDisconnectedSession(獲取用戶斷開的連接)',來獲取會(huì)話。在一個(gè)實(shí)現(xiàn)中,為客戶機(jī)設(shè)備102-1擔(dān)當(dāng)重定向器的服務(wù)器112-1對(duì)會(huì)話中介服務(wù)器108進(jìn)行函數(shù)調(diào)用。會(huì)話中介服務(wù)器108的會(huì)話中介模塊116接收該函數(shù)調(diào)用并向可擴(kuò)展API通知該函數(shù)調(diào)用。在框406處,口向應(yīng)于調(diào)用'GetUserDisconnectedSession,來進(jìn)行被稱為'GetUserExternalSession(獲取用戶外部會(huì)話)'的函數(shù)調(diào)用。會(huì)話中介模塊116可以向可擴(kuò)展API118發(fā)送服務(wù)器112-1所進(jìn)行的服務(wù)器函數(shù)調(diào)用。可擴(kuò)展API118在接收到該服務(wù)器函數(shù)調(diào)用后可進(jìn)行函數(shù)調(diào)用'GetUserExternalSession'來為客戶機(jī)設(shè)備102_1標(biāo)識(shí)會(huì)話。在框408處,搜索客戶機(jī)設(shè)備的用戶的外部會(huì)話??蓴U(kuò)展API118所啟動(dòng)的函數(shù)10調(diào)用'GetUserExternalSession'可觸發(fā)會(huì)話中介模塊116來標(biāo)識(shí)遠(yuǎn)程訪問系統(tǒng)環(huán)境中存在的用戶外部會(huì)話。在框410處,作出外部會(huì)話是否存在的判定。如果外部會(huì)話存在(g卩,自框410的"是"路徑),則將客戶機(jī)設(shè)備102-1重定向到服務(wù)器106以建立該外部會(huì)話。如果遠(yuǎn)程訪問系統(tǒng)環(huán)境中不存在外部會(huì)話(即,自框410的"否"路徑),則在框414處標(biāo)識(shí)與客戶機(jī)設(shè)備102-1相關(guān)聯(lián)的已有會(huì)話。在框416處,在標(biāo)識(shí)了已有會(huì)話后,收集該已有會(huì)話的會(huì)話細(xì)節(jié)。這樣的會(huì)話細(xì)節(jié)可存儲(chǔ)在會(huì)話目錄中,該會(huì)話目錄存儲(chǔ)在會(huì)話中介服務(wù)器108中。在框418處,建立與具有已有會(huì)話的服務(wù)器的連接。會(huì)話中介模塊116可以向被配置成重定向客戶機(jī)設(shè)備102-1的服務(wù)器112-1發(fā)送指令并連同具有已有會(huì)話的合適的服務(wù)器的會(huì)話細(xì)節(jié)。服務(wù)器112-1基于該會(huì)話細(xì)節(jié)來標(biāo)識(shí)合適的服務(wù)器并將客戶機(jī)設(shè)備102-1重定向到合適的服務(wù)器以建立連接。圖5示出用于充分利用支持第三方插件應(yīng)用程序的遠(yuǎn)程訪問系統(tǒng)會(huì)話中介基礎(chǔ)結(jié)構(gòu)的另一示例性方法500。在框502處,作出連接到會(huì)話的請(qǐng)求。會(huì)話中介模塊116可通過最初與客戶機(jī)設(shè)備102-1相連接的服務(wù)器(如服務(wù)器112-1)接收對(duì)會(huì)話的請(qǐng)求。此后,會(huì)話中介模塊116初始化與插件114相關(guān)聯(lián)的可擴(kuò)展API118。在框504處,進(jìn)行函數(shù)調(diào)用'GetUserDisconnectedSession,來獲取會(huì)話。在一個(gè)實(shí)現(xiàn)中,為客戶機(jī)設(shè)備102-1擔(dān)當(dāng)重定向器的服務(wù)器112-1可對(duì)會(huì)話中介服務(wù)器108進(jìn)行函數(shù)調(diào)用。會(huì)話中介服務(wù)器108的會(huì)話中介模塊116接收該函數(shù)調(diào)用并向可擴(kuò)展API118通知該函數(shù)調(diào)用。在框506處,響應(yīng)于調(diào)用'GetMostSuitableServer(獲取最合適的服務(wù)器)'來進(jìn)行函數(shù)調(diào)用'GetUserExternalSession'。會(huì)話中介模塊116可以向可擴(kuò)展API118發(fā)送重定向服務(wù)器112-1所進(jìn)行的服務(wù)器函數(shù)調(diào)用。可擴(kuò)展API118在接收到該服務(wù)器函數(shù)調(diào)用后,可調(diào)用函數(shù)調(diào)用'GetMostSuitableServer'以啟動(dòng)會(huì)話中介模塊116來標(biāo)識(shí)客戶機(jī)設(shè)備102-1可重定向到的合適的服務(wù)器,例如服務(wù)器112中的任何服務(wù)器或外部服務(wù)器106。在框508處,收集與該合適的服務(wù)器相關(guān)聯(lián)的服務(wù)器ID。會(huì)話中介模塊116收集該合適的服務(wù)器在遠(yuǎn)程訪問系統(tǒng)環(huán)境中的服務(wù)器ID。在框510處,確認(rèn)該合適的服務(wù)器的服務(wù)器ID。在一個(gè)實(shí)現(xiàn)中,會(huì)話中介模塊116可檢查寄存器208來標(biāo)識(shí)寄存器208中是否存在服務(wù)器ID并且還檢查服務(wù)器ID是否與該合適的服務(wù)器相關(guān)。在另一實(shí)現(xiàn)中,會(huì)話中介模塊116可以確定具有該服務(wù)器ID的合適的服務(wù)器是否處于耗盡模式。如果該合適的服務(wù)器處于耗盡模式,則該合適的服務(wù)器可拒絕來自其他用戶的任何新的遠(yuǎn)程登錄。此外,在這種情況下,在遠(yuǎn)程訪問系統(tǒng)環(huán)境中具有與服務(wù)器的已有會(huì)話的用戶可被重新連接。在又一實(shí)現(xiàn)中,會(huì)話中介模塊116可檢查具有所需服務(wù)器ID的合適的服務(wù)器分配給合適的服務(wù)器的會(huì)話是否超過最大數(shù)量。在框512處,作出服務(wù)器ID是否有效的判定。如果服務(wù)器ID是有效的(即自框512的"是"路徑),則在框514處重定向客戶機(jī)設(shè)備102-1來與合適的服務(wù)器建立連接。如果服務(wù)器ID不是有效的(即自框512的"否"路徑),則記錄插件出錯(cuò)事件。例如,在可擴(kuò)展API118所調(diào)用的函數(shù)調(diào)用'WTSSBX_GetMostSuitableServer'返回?zé)o效服務(wù)器ID時(shí)記錄警告。在另一場(chǎng)景中,如果函數(shù)調(diào)用'WTSSBX—GetMostSuitableServer'將客戶機(jī)設(shè)備102-1重定向到處于耗盡模式的合適的服務(wù)器,則將插件出錯(cuò)事件被記錄作為警告。類似地,在又一場(chǎng)景中,在函數(shù)調(diào)用'WTSSBX_GetMostSuitableServer'提供違反了預(yù)定義會(huì)話限制的合適的服務(wù)器時(shí)記錄插件出錯(cuò)事件。在框518處,從具有其對(duì)應(yīng)權(quán)重的各服務(wù)器的列表中標(biāo)識(shí)合適的服務(wù)器。會(huì)話中介模塊116可基于每一服務(wù)器所處理的會(huì)話的數(shù)量使用負(fù)載平衡算法來向遠(yuǎn)程訪問系統(tǒng)環(huán)境中的每一服務(wù)器分配權(quán)重。會(huì)話中介模塊116生成服務(wù)器列表并從該列表中標(biāo)識(shí)合適的服務(wù)器。所標(biāo)識(shí)的服務(wù)器可擁有較少數(shù)量的會(huì)話并且因而向客戶機(jī)設(shè)備102-1展示出提供會(huì)話的能力。在框520處,重定向客戶機(jī)設(shè)備102-1來與所標(biāo)識(shí)的服務(wù)器建立連接。示例性計(jì)算機(jī)環(huán)境圖6示出了示例性通用計(jì)算機(jī)環(huán)境600,它可用于實(shí)現(xiàn)本文所述的技術(shù),且整體或部分地表示本文所述的元素。計(jì)算機(jī)環(huán)境600僅是計(jì)算環(huán)境的一個(gè)示例,而非旨在對(duì)計(jì)算機(jī)和網(wǎng)絡(luò)體系結(jié)構(gòu)的使用范圍或功能提出任何限制。計(jì)算機(jī)環(huán)境600也不應(yīng)被解釋成對(duì)于在示例計(jì)算機(jī)環(huán)境600中所示出的任一組件或其組合有任何依賴或要求。計(jì)算機(jī)環(huán)境600包括計(jì)算機(jī)602形式的通用的基于計(jì)算的設(shè)備。計(jì)算機(jī)602例如可以是臺(tái)式計(jì)算機(jī)、手持式計(jì)算機(jī)、筆記本或膝上型計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、游戲控制臺(tái)等。計(jì)算機(jī)602的各組件可以包括但不限于一個(gè)或多個(gè)處理器或處理單元604、系統(tǒng)存儲(chǔ)器606、以及將包括處理器604在內(nèi)的各系統(tǒng)組件耦合至系統(tǒng)存儲(chǔ)器606的系統(tǒng)總線608。系統(tǒng)總線608表示任何若干類型的總線結(jié)構(gòu)中的一個(gè)或多個(gè),包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、加速圖形端口以及使用任何各種總線體系結(jié)構(gòu)的處理器或局部總線。作為示例,這樣的體系結(jié)構(gòu)可包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線和外圍部件互連(PCI)總線(也被稱為Mezzanine總線)。計(jì)算機(jī)602通常包括各種計(jì)算機(jī)可讀介質(zhì)。這樣的介質(zhì)可以是能由計(jì)算機(jī)602訪問的任何可用介質(zhì),包括易失性和非易失性介質(zhì)以及可移動(dòng)和不可移動(dòng)介質(zhì)。系統(tǒng)存儲(chǔ)器606包括諸如隨機(jī)存取存儲(chǔ)器(RAM)610等易失性存儲(chǔ)器形式的計(jì)算機(jī)可讀介質(zhì),和/或諸如只讀存儲(chǔ)器(ROM)612等非易失性存儲(chǔ)器形式的計(jì)算機(jī)可讀介質(zhì)。示出了包含幫助在諸如啟動(dòng)期間在計(jì)算機(jī)602內(nèi)元件之間傳遞信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS)614,它被存儲(chǔ)在ROM612中。RAM610通常包含可以由處理單元604立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。計(jì)算機(jī)602還可以包括其他可移動(dòng)/不可移動(dòng)、易失性/非易失性的計(jì)算機(jī)存儲(chǔ)介質(zhì)。作為示例,圖6示出用于讀寫不可移動(dòng)非易失性磁介質(zhì)(未示出)的硬盤驅(qū)動(dòng)器616。此外,圖6示出用于讀寫可移動(dòng)非易失性磁盤620(例如"軟盤")的磁盤驅(qū)動(dòng)器618。此外,圖6示出用于讀和/或?qū)懼T如CD-ROM、DVD-ROM、或其他光學(xué)介質(zhì)等可移動(dòng)非易失性光盤624的光盤驅(qū)動(dòng)器622。硬盤驅(qū)動(dòng)器616、磁盤驅(qū)動(dòng)器618和光盤驅(qū)動(dòng)器622都通過一個(gè)或多個(gè)數(shù)據(jù)媒體接口626連接至系統(tǒng)總線608?;蛘?,硬盤驅(qū)動(dòng)器616、磁盤驅(qū)動(dòng)器618和光盤驅(qū)動(dòng)器622可通過一個(gè)或多個(gè)接口(未示出)連接至系統(tǒng)總線608。盤驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)向計(jì)算機(jī)602提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及其他數(shù)據(jù)的非易失性存儲(chǔ)。盡管該示例示出了硬盤616、可移動(dòng)磁盤620和可移動(dòng)光盤624,但可以理解可存儲(chǔ)可由計(jì)算機(jī)訪問的數(shù)據(jù)的其他類型的計(jì)算機(jī)可讀介質(zhì)也可用來實(shí)現(xiàn)該示例性計(jì)算系統(tǒng)和環(huán)境,這些介質(zhì)如盒式磁帶或其他磁存儲(chǔ)設(shè)備、閃存卡、CD-ROM、數(shù)字多功能盤(DVD)或其他光學(xué)存儲(chǔ)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)等等。任何數(shù)量的程序模塊可儲(chǔ)存在硬盤616、磁盤620、光盤624、ROM612和/或RAM610中,作為示例包括操作系統(tǒng)626、一個(gè)或多個(gè)應(yīng)用程序628、其他程序模塊630和程序數(shù)據(jù)632。每個(gè)這樣的操作系統(tǒng)626、一個(gè)或多個(gè)應(yīng)用程序628、其它程序模塊630以及程序數(shù)據(jù)632(或其某種組合)可實(shí)現(xiàn)支持分布式文件系統(tǒng)的常駐組件的全部或部分。用戶可通過諸如鍵盤634和定點(diǎn)設(shè)備636(例如"鼠標(biāo)")等輸入設(shè)備向計(jì)算機(jī)602輸入命令和信息。其他輸入設(shè)備638(未具體示出)可以包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、串行端口、掃描儀等。這些和其他輸入設(shè)備通過耦合到系統(tǒng)總線608的輸入/輸出接口640連接到處理單元604,但也可通過其他接口和總線結(jié)構(gòu),如并行端口、游戲端口或通用串行總線(USB)來連接。監(jiān)視器642或其他類型的顯示設(shè)備也經(jīng)由諸如視頻適配器644等接口連接至系統(tǒng)總線608。除監(jiān)視器642之外,其他輸出外圍設(shè)備可包括諸如揚(yáng)聲器(未示出)和打印機(jī)646等組件,這些組件可通過輸入/輸出接口640連接至計(jì)算機(jī)602。計(jì)算機(jī)602可使用至一臺(tái)或多臺(tái)遠(yuǎn)程計(jì)算機(jī)(如遠(yuǎn)程基于計(jì)算的設(shè)備648)的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。作為示例,遠(yuǎn)程基于計(jì)算的設(shè)備648可以是個(gè)人計(jì)算機(jī)、便攜式計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)計(jì)算機(jī)、對(duì)等設(shè)備或者其他常見網(wǎng)絡(luò)節(jié)點(diǎn)等。遠(yuǎn)程基于計(jì)算的設(shè)備648被示為可以包括在本文中相對(duì)于計(jì)算機(jī)602描述的許多或全部元素和特征的便攜式計(jì)算機(jī)。計(jì)算機(jī)602和遠(yuǎn)程計(jì)算機(jī)648之間的邏輯連接被示為局域網(wǎng)(LAN)650并且還通過通用廣域網(wǎng)(WAN)652。這樣的聯(lián)網(wǎng)環(huán)境常見于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中實(shí)現(xiàn)時(shí),計(jì)算機(jī)602通過網(wǎng)絡(luò)接口或適配器654連接到局域網(wǎng)650。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中實(shí)現(xiàn)時(shí),計(jì)算機(jī)602通常包括調(diào)制解調(diào)器656或用于通過廣域網(wǎng)652建立通信的類似裝置。調(diào)制解調(diào)器656對(duì)于計(jì)算機(jī)602可以是內(nèi)置或外置的,其可通過輸入/輸出接口640或其他適當(dāng)機(jī)制連接到系統(tǒng)總線608??梢岳斫猓揪W(wǎng)絡(luò)連接是示例性的,也可采用在計(jì)算機(jī)602和648之間建立通信鏈路的其他手段。在諸如對(duì)計(jì)算環(huán)境600示出的網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)602描繪的程序模塊或其部分可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例,遠(yuǎn)程應(yīng)用程序658駐留在遠(yuǎn)程計(jì)算機(jī)648的存儲(chǔ)器設(shè)備上。為說明起見,諸如操作系統(tǒng)等應(yīng)用程序和其他可執(zhí)行程序組件在此被示為離散的塊,但可以理解,這樣的程序和組件在不同的時(shí)間駐留在基于計(jì)算的設(shè)備602的不同存儲(chǔ)組件中,并由計(jì)算機(jī)602的數(shù)據(jù)處理器來執(zhí)行。各種模塊和技術(shù)在此處可在諸如程序模塊等由一個(gè)或多個(gè)計(jì)算機(jī)或其他設(shè)備執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。通常,程序模塊的功能可以在各個(gè)實(shí)施例中按需進(jìn)行組合或分布。這些模塊和技術(shù)的實(shí)現(xiàn)可以存儲(chǔ)在某種形式的計(jì)算機(jī)可讀介質(zhì)上或通過某種形式的計(jì)算機(jī)可讀介質(zhì)傳輸。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)訪問的任何可用介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括"計(jì)算機(jī)存儲(chǔ)介質(zhì)"和"通信介質(zhì)"。"計(jì)算機(jī)存儲(chǔ)介質(zhì)"包括以存儲(chǔ)如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、R0M、EEPROM、閃存或其他存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其他光盤存儲(chǔ)、盒式磁帶、磁帶、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備,或者任何其他可用于存儲(chǔ)所需信息并可由計(jì)算機(jī)訪問的介質(zhì)?;蛘撸蚣艿母鞑糠挚捎糜布?、或硬件軟件的組合、和/或固件來實(shí)現(xiàn)。例如,可將一個(gè)或多個(gè)專用集成電路(ASIC)或可編程邏輯器件(PLD)設(shè)計(jì)或編程為實(shí)現(xiàn)該框架的一個(gè)或多個(gè)部分。結(jié)論盡管已經(jīng)用結(jié)構(gòu)特征和/或方法專用的語言描述了用于充分利用終端服務(wù)會(huì)話中介基礎(chǔ)結(jié)構(gòu)來支持第三方插件應(yīng)用程序的各實(shí)施例,但是應(yīng)該理解所附權(quán)利要求書的主題不必限于所描述的具體特征或方法。相反,這些具體特征和方法是作為用于充分利用終端服務(wù)會(huì)話中介基礎(chǔ)結(jié)構(gòu)來支持第三方插件應(yīng)用程序的示例性實(shí)現(xiàn)來公開的。權(quán)利要求一種服務(wù)器,包括存儲(chǔ)器;在操作上耦合到所述存儲(chǔ)器的一個(gè)或多個(gè)處理器;所述存儲(chǔ)器中的會(huì)話中介模塊,它監(jiān)視遠(yuǎn)程客戶機(jī)的狀態(tài)和連接;以及所述存儲(chǔ)器中的可擴(kuò)展應(yīng)用程序接口(API),它標(biāo)識(shí)所述遠(yuǎn)程客戶機(jī)可用的會(huì)話。2.如權(quán)利要求1所述的服務(wù)器,其特征在于,所述會(huì)話中介模塊接收來自所述遠(yuǎn)程客戶機(jī)的查詢并通知所述API。3.如權(quán)利要求1所述的服務(wù)器,其特征在于,所述會(huì)話中介模塊將所述遠(yuǎn)程客戶機(jī)定向到多個(gè)服務(wù)器中的一個(gè)服務(wù)器。4.如權(quán)利要求1所述的服務(wù)器,其特征在于,所述會(huì)話中介模塊初始化駐留在所述遠(yuǎn)程客戶機(jī)可連接到的一個(gè)或多個(gè)服務(wù)器上的插件應(yīng)用程序。5.如權(quán)利要求1所述的服務(wù)器,其特征在于,所述會(huì)話中介模塊收集并提供關(guān)于包括所述服務(wù)器、所述遠(yuǎn)程客戶機(jī)、以及一個(gè)或多個(gè)服務(wù)器的遠(yuǎn)程訪問系統(tǒng)環(huán)境的API配置的改變。6.如權(quán)利要求1所述的服務(wù)器,其特征在于,所述會(huì)話中介模塊包括初始化模塊,它初始化所述API并確定寄存器中的插件應(yīng)用程序的標(biāo)識(shí)。7.如權(quán)利要求1所述的服務(wù)器,其特征在于,所述會(huì)話中介模塊包括函數(shù)調(diào)用模塊,它產(chǎn)生函數(shù)調(diào)用以確定并收集所述遠(yuǎn)程客戶機(jī)的會(huì)話信息。8.如權(quán)利要求7所述的服務(wù)器,其特征在于,所述會(huì)話中介模塊包括監(jiān)視模塊,它確定所述函數(shù)調(diào)用是否待決超過預(yù)定時(shí)間。9.如權(quán)利要求8所述的服務(wù)器,其特征在于,在函數(shù)調(diào)用待決超過所述預(yù)定時(shí)間時(shí)生成出錯(cuò)消息。10.如權(quán)利要求7所述的服務(wù)器,其特征在于,API啟動(dòng)所述函數(shù)調(diào)用模塊來為所述遠(yuǎn)程客戶機(jī)之一標(biāo)識(shí)多個(gè)服務(wù)器中的一個(gè),以向所述該一個(gè)遠(yuǎn)程客戶機(jī)提供會(huì)話。11.如權(quán)利要求1所述的服務(wù)器,其特征在于,所述API是組件對(duì)象模型,它使得跨連接所述遠(yuǎn)程客戶機(jī)和服務(wù)器的網(wǎng)絡(luò)的多個(gè)軟件組件能夠彼此通信。12.如權(quán)利要求1所述的服務(wù)器,其特征在于,所述API進(jìn)行會(huì)話改變通知,它啟動(dòng)所述會(huì)話中介模塊來更新駐留在一個(gè)或多個(gè)服務(wù)器上的插件應(yīng)用程序。13.如權(quán)利要求1所述的服務(wù)器,其特征在于,所述API進(jìn)行關(guān)于機(jī)器改變通知的調(diào)用,從而啟動(dòng)所述會(huì)話中介模塊來收集信息并報(bào)告所述遠(yuǎn)程客戶機(jī)連接到的所述服務(wù)器和其他服務(wù)器的改變。14.一種在計(jì)算機(jī)可執(zhí)行介質(zhì)上實(shí)現(xiàn)的方法,包括接收來自客戶機(jī)的對(duì)會(huì)話的請(qǐng)求來對(duì)駐留在一個(gè)或多個(gè)服務(wù)器上的插件應(yīng)用程序進(jìn)行訪問;調(diào)用函數(shù)來獲取所述會(huì)話;標(biāo)識(shí)所述客戶機(jī)的任何預(yù)先存在的會(huì)話;以及搜索所述客戶機(jī)的用戶的外部會(huì)話。15.如權(quán)利要求14所述的方法,其特征在于,所述接收包括重定向到服務(wù)器。16.如權(quán)利要求14所述的方法,其特征在于,還包括確定所述外部會(huì)話或另一外部會(huì)話是否存在。17.如權(quán)利要求16所述的方法,其特征在于,還包括收集所標(biāo)識(shí)的外部會(huì)話的會(huì)話細(xì)節(jié)。18.如權(quán)利要求16所述的方法,其特征在于,還包括連接到已有會(huì)話。19.如權(quán)利要求14所述的方法,其特征在于,還包括為所述用戶標(biāo)識(shí)合適的服務(wù)器。20.如權(quán)利要求19所述的方法,其特征在于,還包括收集所述合適的服務(wù)器的標(biāo)識(shí)。21.如權(quán)利要求20所述的方法,還包括確認(rèn)所述標(biāo)識(shí)。22.如權(quán)利要求21所述的方法,其特征在于,在不能確認(rèn)所述標(biāo)識(shí)的情況下記錄插件應(yīng)用程序的出錯(cuò)事件。23.如權(quán)利要求19所述的方法,其特征在于,還包括在所述合適的服務(wù)器處于耗盡模式的情況下記錄插件出錯(cuò)事件。24.如權(quán)利要求19所述的方法,其特征在于,還包括從具有負(fù)載平衡權(quán)重的服務(wù)器列表中標(biāo)識(shí)所述合適的服務(wù)器。25.如權(quán)利要求19所述的方法,其特征在于,還包括生成所述合適的服務(wù)器的服務(wù)器列表。全文摘要所描述的是一種用于提供應(yīng)用程序接口的技術(shù),該應(yīng)用程序接口能充分利用支持第三方插件應(yīng)用程序的終端服務(wù)會(huì)話中介基礎(chǔ)結(jié)構(gòu)。在一典型的場(chǎng)景中,在用戶請(qǐng)求連接以訪問第三方插件應(yīng)用程序時(shí),該應(yīng)用程序接口可覆蓋會(huì)話中介邏輯并與該會(huì)話中介進(jìn)程交互以標(biāo)識(shí)該用戶可連接到的會(huì)話或合適的服務(wù)器。用戶可通過所標(biāo)識(shí)的會(huì)話或合適的服務(wù)器來訪問第三方插件應(yīng)用程序。文檔編號(hào)G06F15/16GK101796504SQ200880106189公開日2010年8月4日申請(qǐng)日期2008年8月21日優(yōu)先權(quán)日2007年9月6日發(fā)明者D·T·多普森,I·本-沙查,R·別列茨基,S·薩姆帕斯申請(qǐng)人:微軟公司