專利名稱:智能路由的制作方法
智能路由
背景技術(shù):
在許多類型的客戶機(jī)服務(wù)器體系結(jié)構(gòu)中,對(duì)客戶機(jī)作出的請(qǐng)求執(zhí)行一種形式的路由直到它到達(dá)了履行請(qǐng)求的服務(wù)器為止。這種類型的路由可因許多原因發(fā)生,諸如在一組服務(wù)器計(jì)算機(jī)之間進(jìn)行負(fù)載平衡、向某類客戶機(jī)提供更高質(zhì)量的服務(wù)等。在某些情況中,執(zhí)行路由的服務(wù)器和履行客戶機(jī)請(qǐng)求的服務(wù)器是相同物理服務(wù)器。在這些情況中,服務(wù)器通常通過網(wǎng)絡(luò)路由客戶機(jī)請(qǐng)求,并將客戶機(jī)請(qǐng)求路由回相同物理服務(wù)器以便處理。這種類型的路由可能會(huì)是低效的。此處所做出的本公開正是對(duì)于這些和其他考慮事項(xiàng)而提出的。
發(fā)明內(nèi)容
此處描述了用于智能路由的技術(shù)。具體地,通過實(shí)現(xiàn)此處提供的概念和技術(shù),如果進(jìn)行履行的服務(wù)器和路由器位于相同物理計(jì)算機(jī)系統(tǒng)上,則利用優(yōu)化傳輸將客戶機(jī)請(qǐng)求從路由器帶往服務(wù)器并帶回響應(yīng)。例如,優(yōu)化傳輸可以是僅本地機(jī)傳輸,它不要求客戶機(jī)請(qǐng)求通過網(wǎng)絡(luò)被路由。相反,僅本地機(jī)傳輸提供了在不使用網(wǎng)絡(luò)棧的情況下路由客戶機(jī)請(qǐng)求的優(yōu)化機(jī)制。根據(jù)一個(gè)實(shí)施例,路由器模塊接收客戶機(jī)請(qǐng)求。響應(yīng)于接收這樣的請(qǐng)求,路由器模塊獲取要履行請(qǐng)求的服務(wù)器模塊的網(wǎng)絡(luò)地址。例如,路由器模塊可查詢負(fù)載平衡器來獲取服務(wù)器模塊的網(wǎng)絡(luò)地址。路由器模塊然后基于服務(wù)器模塊的網(wǎng)絡(luò)地址來判斷它是否正在與服務(wù)器模塊相同的物理計(jì)算機(jī)上執(zhí)行。在一個(gè)實(shí)現(xiàn)中,路由器模塊將服務(wù)器模塊的網(wǎng)絡(luò)地址與其上執(zhí)行路由器模塊的服務(wù)器響應(yīng)的網(wǎng)絡(luò)地址列表進(jìn)行比較以作出這種判斷。如果路由器模塊確定服務(wù)器模塊不在相同物理計(jì)算機(jī)上執(zhí)行,則路由器模塊利用標(biāo)準(zhǔn)網(wǎng)絡(luò)傳輸,諸如傳輸控制協(xié)議/網(wǎng)際協(xié)議(“TCP/IP”)、超文本傳輸協(xié)議(“HTTP”)或另一類型的傳輸將客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)器模塊。如果路由器模塊確定服務(wù)器模塊正在相同計(jì)算機(jī)上執(zhí)行,則路由器模塊使用優(yōu)化傳輸將客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)器模塊。例如,在一個(gè)特定實(shí)現(xiàn)中,優(yōu)化傳輸可包括利用二進(jìn)制編碼的傳輸,諸如TCP傳輸。根據(jù)另一實(shí)現(xiàn),優(yōu)化傳輸包括優(yōu)化的僅本地機(jī)傳輸,諸如命名管道綁定,以便在不使用網(wǎng)絡(luò)棧的情況下啟用路由器模塊與服務(wù)器模塊之間的通信。優(yōu)化傳輸也用于將來自服務(wù)器模塊的響應(yīng)傳輸給服務(wù)器模塊。應(yīng)當(dāng)理解,上述主題也可被實(shí)現(xiàn)為計(jì)算機(jī)控制的裝置、計(jì)算機(jī)進(jìn)程、計(jì)算系統(tǒng)或諸如計(jì)算機(jī)可讀介質(zhì)等制品。通過閱讀下面的詳細(xì)描述并審閱相關(guān)聯(lián)的附圖,這些及各種其他特征將變得顯而易見。提供本發(fā)明內(nèi)容以便以簡(jiǎn)化的形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在將本概述用來限制所要求保護(hù)的主題的范圍。此外,所要求保護(hù)的主題不限于解決在本發(fā)明的任一部分中提及的任何或所有缺點(diǎn)的實(shí)現(xiàn)。
圖1是示出用于此處呈現(xiàn)的各個(gè)實(shí)施例的一個(gè)說明性操作環(huán)境的網(wǎng)絡(luò)圖;圖2是示出此處呈現(xiàn)的用于優(yōu)化路由的一個(gè)實(shí)施例的各方面的網(wǎng)絡(luò)圖;圖3是示出此處呈現(xiàn)的一個(gè)實(shí)施例中用于客戶機(jī)請(qǐng)求的優(yōu)化路由的一個(gè)說明性過程的流程圖;以及圖4是示出能夠?qū)崿F(xiàn)本文所呈現(xiàn)的實(shí)施例的各方面的計(jì)算系統(tǒng)的說明性計(jì)算機(jī)硬件和軟件體系結(jié)構(gòu)的計(jì)算機(jī)體系結(jié)構(gòu)圖。
具體實(shí)施例方式以下詳細(xì)描述針對(duì)用于優(yōu)化路由的技術(shù)。盡管在結(jié)合計(jì)算機(jī)系統(tǒng)上的操作系統(tǒng)和應(yīng)用程序的執(zhí)行而執(zhí)行的程序模塊的一般上下文中呈現(xiàn)了此處描述的主題,但是本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,其他實(shí)現(xiàn)可以結(jié)合其他類型的程序模塊來執(zhí)行。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其它類型的結(jié)構(gòu)。此外,本領(lǐng)域技術(shù)人員將明白,可以利用其他計(jì)算機(jī)系統(tǒng)配置來實(shí)施此處描述的主題,這些計(jì)算機(jī)系統(tǒng)配置包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子產(chǎn)品、小型計(jì)算機(jī)、大型計(jì)算機(jī)等等。在下面的詳細(xì)描述中,將參考構(gòu)成本發(fā)明的一部分的附圖,并且在附圖中作為說明示出了各具體實(shí)施例或示例。現(xiàn)在參考附圖,其中全部若干附圖中相同的標(biāo)號(hào)表示相同的元素,將提供用于優(yōu)化路由的計(jì)算系統(tǒng)和方法的各方面。現(xiàn)在轉(zhuǎn)向圖1,將提供關(guān)于此處呈現(xiàn)的各實(shí)施例的說明性操作環(huán)境的細(xì)節(jié)。具體而言,圖1示出形成用于此處呈現(xiàn)的各個(gè)實(shí)施例的說明性操作環(huán)境的系統(tǒng)100的各方面。如圖ι中所示,客戶機(jī)計(jì)算機(jī)104經(jīng)由網(wǎng)絡(luò)106連接至一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī)102A-102B。 應(yīng)理解,諸如網(wǎng)絡(luò)106等此處所討論的網(wǎng)絡(luò)僅是說明性的,且可在此處呈現(xiàn)的技術(shù)的實(shí)際實(shí)現(xiàn)中利用更多或更少的網(wǎng)絡(luò)。而且,還應(yīng)理解,盡管在圖1中示出了單個(gè)網(wǎng)絡(luò)106,可在此處呈現(xiàn)的各個(gè)實(shí)施例中利用多于所示的網(wǎng)絡(luò)。而且,應(yīng)理解網(wǎng)絡(luò)106可例如橫跨因特網(wǎng)。 例如,客戶機(jī)104可位于一塊大陸上而服務(wù)器102A-102B可位于另一大陸上。還應(yīng)理解,客戶機(jī)服務(wù)器104可包括能夠生成對(duì)服務(wù)器計(jì)算機(jī)的請(qǐng)求的任何類型的計(jì)算系統(tǒng)。例如,客戶機(jī)計(jì)算機(jī)104可包括標(biāo)準(zhǔn)臺(tái)式或膝上型計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)、手持計(jì)算系統(tǒng)、機(jī)頂盒或具有數(shù)據(jù)能力的無線移動(dòng)電話。如圖1所示,服務(wù)器計(jì)算機(jī)102A-102B中的每一個(gè)可分別配備路由器模塊 108A-108B以及服務(wù)器模塊110A-110B。路由器模塊108A-108B包括從客戶機(jī)計(jì)算機(jī)104接收請(qǐng)求的軟件程序。路由器模塊108A-109B也提供用于將從客戶機(jī)計(jì)算機(jī)104接收的請(qǐng)求路由到合適的服務(wù)器模塊110A-110B進(jìn)行處理的功能。來自相應(yīng)的服務(wù)器模塊110A-110B 的響應(yīng)被返回到曾將原始請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)器模塊的路由器模塊108A-108B。路由器模塊然后將響應(yīng)轉(zhuǎn)發(fā)到客戶機(jī)計(jì)算機(jī)104。應(yīng)理解,服務(wù)器模塊110A-110B包括被配置成接收和響應(yīng)請(qǐng)求的軟件組件。例如,服務(wù)器模塊110A-110B可包括Web服務(wù)器程序、Web服務(wù)和其它類型的服務(wù)器組件。為了確定從客戶機(jī)計(jì)算機(jī)104接收的客戶機(jī)請(qǐng)求要路由到服務(wù)器模塊110A-110B 中的哪一個(gè),路由器模塊108A-108B被配置成利用負(fù)載平衡器112的服務(wù)。負(fù)載平衡器是被配置成標(biāo)識(shí)用于履行來自客戶機(jī)計(jì)算機(jī)104的請(qǐng)求的服務(wù)器模塊110A-110B之一的軟件或硬件組件。應(yīng)理解,負(fù)載平衡器112可利用各種算法來標(biāo)識(shí)合適的服務(wù)器模塊110A-110B, 包括但不限于服務(wù)器計(jì)算機(jī)102A-102B的當(dāng)前處理負(fù)載、向某類客戶機(jī)計(jì)算機(jī)104提供更高質(zhì)量的服務(wù)以及其它因素。應(yīng)理解,此處呈現(xiàn)的實(shí)施例不依賴于負(fù)載平衡器112用來標(biāo)識(shí)應(yīng)履行特定客戶機(jī)請(qǐng)求的服務(wù)器模塊110A-110B的任何特定機(jī)制。當(dāng)由路由器模塊108A-108B之一從客戶機(jī)計(jì)算機(jī)104接收請(qǐng)求時(shí),接收請(qǐng)求的路由器模塊針對(duì)要履行客戶機(jī)請(qǐng)求的服務(wù)器模塊110A-110B的網(wǎng)絡(luò)地址查詢負(fù)載平衡器 112。一旦路由器模塊108A-108B有了用于履行請(qǐng)求的服務(wù)器模塊110A-110B的網(wǎng)絡(luò)地址, 路由器模塊就將客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)給合適的服務(wù)器模塊110A-110B。例如,如果指示路由器模塊108A將客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器模塊110B,則通過合適的網(wǎng)絡(luò)連接建立與服務(wù)器模塊IlOB的網(wǎng)絡(luò)連接114B。類似地,如果指示路由器108B將客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器模塊 110A,則經(jīng)由網(wǎng)絡(luò)連接114D轉(zhuǎn)發(fā)客戶機(jī)請(qǐng)求。同樣地,如果指示路由器模塊108A將請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器模塊110A,則為該客戶機(jī)請(qǐng)求在路由器模塊與服務(wù)器模塊IlOA之間建立網(wǎng)絡(luò)連接114A。類似地,如果指示路由器模塊108B將客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器模塊110B, 則在路由器模塊108B與服務(wù)器模塊IlOB之間建立網(wǎng)絡(luò)連接114C并在其上轉(zhuǎn)發(fā)客戶機(jī)請(qǐng)求。來自合適的服務(wù)器模塊110A-110B的響應(yīng)也經(jīng)由相同的網(wǎng)絡(luò)連接返回給路由器模塊 108A-108B。在圖1所示的示例中,在路由器模塊108A和服務(wù)器模塊IlOA之間建立網(wǎng)絡(luò)連接 114A,即使這些組件在相同服務(wù)器計(jì)算機(jī)102A上執(zhí)行。類似地,在路由器模塊108B和服務(wù)器模塊IlOB之間建立網(wǎng)絡(luò)連接114C,即使這些組件在相同物理服務(wù)器計(jì)算機(jī)102B上執(zhí)行。 以這種方式建立網(wǎng)絡(luò)連接114A和114C是非常低效的。以下參考圖2-4描述解決這一特定路由場(chǎng)景的各種概念和技術(shù)。現(xiàn)在轉(zhuǎn)向圖2,將描述在路由器模塊108A與服務(wù)器模塊IlOA之間提供優(yōu)化路由的說明性系統(tǒng)200的各方面。在圖2所示的系統(tǒng)200中,路由器模塊108A被配置成,當(dāng)路由器模塊108A與服務(wù)器模塊IlOA在相同物理服務(wù)器計(jì)算機(jī)102A上執(zhí)行時(shí),創(chuàng)建到服務(wù)器模塊IlOA的優(yōu)化路由。關(guān)于該過程的附加細(xì)節(jié)將在以下提供。如圖2所示,路由器模塊108A可從客戶機(jī)計(jì)算機(jī)104接收客戶機(jī)請(qǐng)求202。響應(yīng)于接收客戶機(jī)請(qǐng)求202,路由器模塊108A為了要履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊 110A-110B的網(wǎng)絡(luò)地址而將請(qǐng)求204發(fā)送給負(fù)載平衡器112。響應(yīng)于接收請(qǐng)求204,負(fù)載平衡器112返回要履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊110A-110B的目標(biāo)地址206。當(dāng)路由器模塊108A從負(fù)載平衡器112接收目標(biāo)地址206時(shí),路由器模塊108A判斷要履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊是否在與路由器模塊108A相同的物理計(jì)算機(jī)102A 上執(zhí)行。例如,在一個(gè)實(shí)現(xiàn)中,路由器模塊108A通過將目標(biāo)地址206與服務(wù)器計(jì)算機(jī)102A 響應(yīng)的網(wǎng)絡(luò)地址208的列表進(jìn)行比較來作出這種判斷。如果在網(wǎng)絡(luò)地址208的列表中標(biāo)識(shí)了該目標(biāo)地址,則路由器模塊108A得出服務(wù)器模塊IlOA正在相同物理服務(wù)器計(jì)算機(jī)102A 上執(zhí)行的結(jié)論。如果該目標(biāo)地址未被包含在網(wǎng)絡(luò)地址208的列表中,則路由器模塊108A得出要履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊在另一物理計(jì)算機(jī)(諸如服務(wù)器計(jì)算機(jī)102B)上執(zhí)行的結(jié)論。如果路由器模塊108A得出要履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊在另一物理服務(wù)器計(jì)算機(jī)(諸如服務(wù)器模塊110B)上執(zhí)行的結(jié)論,則路由器模塊108A經(jīng)由標(biāo)準(zhǔn)網(wǎng)絡(luò)傳輸 212將客戶機(jī)請(qǐng)求202轉(zhuǎn)發(fā)給服務(wù)器模塊110B。例如,可利用TCP/IP傳輸機(jī)制來將客戶機(jī)請(qǐng)求202轉(zhuǎn)發(fā)給合適的服務(wù)器模塊110B,并將對(duì)客戶機(jī)請(qǐng)求202的響應(yīng)返回給路由器模塊 108A。然而,如果路由器模塊108A確定要履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊在相同物理服務(wù)器計(jì)算機(jī)102A上執(zhí)行,則路由器模塊108A經(jīng)由優(yōu)化傳輸210將客戶機(jī)請(qǐng)求202轉(zhuǎn)發(fā)給服務(wù)器模塊110A。根據(jù)一個(gè)實(shí)施例,優(yōu)化傳輸210包括利用二進(jìn)制編碼的TCP傳輸。在替換實(shí)施例中,優(yōu)化傳輸210包括優(yōu)化的僅本地機(jī)傳輸。優(yōu)化傳輸210是不利用網(wǎng)絡(luò)棧的傳輸,且因此與其它類型的傳輸相比被高度優(yōu)化了。例如,在一個(gè)實(shí)施例中,優(yōu)化的僅本地機(jī)傳輸包括WINDOWS通信基礎(chǔ)(“WCF”)命名管道綁定。命名管道綁定在服務(wù)器計(jì)算機(jī)102A上創(chuàng)建共享存儲(chǔ)器區(qū),路由器模塊108A和服務(wù)器模塊IlOA可通過該共享存儲(chǔ)器區(qū)進(jìn)行通信。應(yīng)理解,盡管在此處所述的一個(gè)特定實(shí)現(xiàn)中利用了 WCF命名管道綁定,當(dāng)路由器模塊108A與服務(wù)器模塊IlOA在相同物理計(jì)算機(jī)上執(zhí)行時(shí),可利用本領(lǐng)域技術(shù)人員所知的其它類型的進(jìn)程間通信機(jī)制來在這些組件之間創(chuàng)建傳輸。將在以下關(guān)于圖3-4提供關(guān)于該過程的其他細(xì)節(jié)?,F(xiàn)在參考圖3,將提供關(guān)于此處所呈現(xiàn)的用于優(yōu)化路由的實(shí)施例的其它細(xì)節(jié)。具體地,圖3是示出根據(jù)此處呈現(xiàn)的一個(gè)實(shí)施例的路由器模塊108A-108B的操作的各方面的流程圖。應(yīng)理解,此處所述的邏輯操作被實(shí)現(xiàn)為(1) 一系列計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)作或運(yùn)行于計(jì)算系統(tǒng)上的程序模塊,和/或(2)計(jì)算系統(tǒng)內(nèi)的互連的機(jī)器邏輯電路或電路模塊。取決于計(jì)算系統(tǒng)的性能及其他要求,可以選擇不同的實(shí)現(xiàn)。因此,此處描述的邏輯操作被不同地稱為狀態(tài)操作、結(jié)構(gòu)設(shè)備、動(dòng)作或模塊。這些操作、結(jié)構(gòu)設(shè)備、動(dòng)作和模塊可用軟件、固件、專用數(shù)字邏輯以及它們的任何組合來實(shí)現(xiàn)。還應(yīng)該明白,可以執(zhí)行比附圖中示出并在此處描述的操作更多或更少的操作。這些操作還可以按與此處所描述的不同的次序來執(zhí)行。路由器300開始于操作302,其中路由器模塊108A檢索服務(wù)器計(jì)算機(jī)102用于通信的網(wǎng)絡(luò)地址的列表208。從操作302,例程300前進(jìn)至操作304,其中路由器模塊108A判斷是否從計(jì)算機(jī),諸如客戶機(jī)計(jì)算機(jī)104,接收到客戶機(jī)請(qǐng)求202。如果否,例程300返回至操作304,在那里進(jìn)行另一個(gè)這樣的判斷。應(yīng)理解,盡管圖3所示的功能被示出在循環(huán)中執(zhí)行,其它實(shí)施例可不利用循環(huán)機(jī)制。例如,在一個(gè)實(shí)現(xiàn)中,圖3中所示的過程可在接收到客戶機(jī)請(qǐng)求時(shí)啟動(dòng)。結(jié)果,不存在該過程在這樣的實(shí)現(xiàn)中以圖3中所示的方式循環(huán)的需要。如果路由器模塊108A接收客戶機(jī)請(qǐng)求202,例程300前進(jìn)至操作306。在操作306, 路由器模塊108A將請(qǐng)求204發(fā)送到負(fù)載平衡器112,以獲取要履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊110A-110B的目標(biāo)地址206。一旦路由器模塊108A接收了目標(biāo)地址206,路由器模塊108A就將目標(biāo)地址206與網(wǎng)絡(luò)地址列表208中包含的網(wǎng)絡(luò)地址進(jìn)行比較,以判斷路由器模塊108A與將履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊110A-110B是否在相同物理計(jì)算機(jī)系統(tǒng)上執(zhí)行。如果路由器模塊108和將履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊110A-110B不在相同物理計(jì)算機(jī)上執(zhí)行,例程300從操作310前進(jìn)至操作312。在操作312,路由器模塊108A利用標(biāo)準(zhǔn)網(wǎng)絡(luò)傳輸212將客戶機(jī)請(qǐng)求202轉(zhuǎn)發(fā)到服務(wù)器模塊,諸如服務(wù)器模塊110B,并響應(yīng)于客戶機(jī)請(qǐng)求202從服務(wù)器模塊IlOB接收響應(yīng)。從操作312,例程300前進(jìn)至如上所述的操作304,在那里以類似方式處理另一這樣的客戶機(jī)請(qǐng)求。如果路由器模塊108A確定要履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊110A-110B的目標(biāo)地址在相同物理服務(wù)器計(jì)算機(jī)上執(zhí)行,則例程300從操作310前進(jìn)至操作314。在操作314,路由器模塊108A利用優(yōu)化傳輸210將客戶機(jī)請(qǐng)求202轉(zhuǎn)發(fā)到將履行客戶機(jī)請(qǐng)求202的服務(wù)器模塊,諸如服務(wù)器模塊110A,并接收對(duì)客戶機(jī)請(qǐng)求202的響應(yīng)。如上所述,在一個(gè)實(shí)施例中,優(yōu)化傳輸210可包括利用二進(jìn)制編碼的傳輸。例如,優(yōu)化傳輸210可包括TCP傳輸?;蛘撸瑑?yōu)化傳輸210可包括利用二進(jìn)制編碼的優(yōu)化的僅本地機(jī)傳輸,諸如命名管道綁定。從操作314,例程300返回至如上所述的操作304,在那里可按照類似方式接收和處理另一客戶機(jī)請(qǐng)求202。圖4示出了用于能夠按照以上提供的方式執(zhí)行此處所述的用于優(yōu)化路由的軟件組件的計(jì)算機(jī)400的說明性計(jì)算機(jī)體系結(jié)構(gòu)。圖4所示的計(jì)算機(jī)體系結(jié)構(gòu)示出常規(guī)臺(tái)式、膝上型或服務(wù)器計(jì)算機(jī),并可以用來執(zhí)行此處呈現(xiàn)的、被描述為在客戶計(jì)算機(jī)104、服務(wù)器計(jì)算機(jī)102A-102B以及負(fù)載平衡器112上執(zhí)行的軟件組件的任何方面。圖4所示的計(jì)算機(jī)體系結(jié)構(gòu)包括中央處理單元402 (“CPU”)、包括隨機(jī)存取存儲(chǔ)器414( “RAM”)和只讀存儲(chǔ)器(“ROM”)416的系統(tǒng)存儲(chǔ)器408、以及將存儲(chǔ)器耦合至CPU 402的系統(tǒng)總線404。基本輸入/輸出系統(tǒng)被存儲(chǔ)在ROM 416中,該系統(tǒng)包含幫助諸如在啟動(dòng)期間在計(jì)算機(jī)400中的元件之間傳遞信息的基本例程。計(jì)算機(jī)400還包括用于存儲(chǔ)操作系統(tǒng)418、應(yīng)用程序和其他程序模塊的大容量存儲(chǔ)設(shè)備410,這將在本文中更為詳盡地描述。大容量存儲(chǔ)設(shè)備410通過連接至總線404的大容量存儲(chǔ)控制器(未示出)連接到CPU 402。大容量存儲(chǔ)設(shè)備410及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)400提供非易失性的存儲(chǔ)。雖然對(duì)這里包含的計(jì)算機(jī)可讀介質(zhì)的描述引用了諸如硬盤或CD-ROM驅(qū)動(dòng)器之類的大容量存儲(chǔ)設(shè)備,但是本領(lǐng)域的技術(shù)人員應(yīng)該明白,計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)400訪問的任何可用計(jì)算機(jī)存儲(chǔ)介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊之類的信息或其他數(shù)據(jù)的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。例如,計(jì)算機(jī)可讀介質(zhì)包括但不限于,RAM、ROM、EPROM、EEPR0M、閃存或其他固態(tài)存儲(chǔ)器技術(shù)、⑶-ROM、數(shù)字多功能盤(“DVD”)、HD-DVD、藍(lán)光(BLU-RAY)或其他光學(xué)存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備、或能用于存儲(chǔ)所需信息且可以由計(jì)算機(jī)400訪問的任何其他介質(zhì)。根據(jù)各實(shí)施例,計(jì)算機(jī)400可以使用通過諸如網(wǎng)絡(luò)420之類的網(wǎng)絡(luò)到遠(yuǎn)程計(jì)算機(jī)的邏輯連接來在聯(lián)網(wǎng)環(huán)境中操作。計(jì)算機(jī)400可以通過連接至總線404的網(wǎng)絡(luò)接口單元406來連接到網(wǎng)絡(luò)420。應(yīng)當(dāng)理解,網(wǎng)絡(luò)接口單元406還可以被用來連接到其他類型的網(wǎng)絡(luò)和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)400還可以包括用于接收和處理來自多個(gè)其他設(shè)備的輸入的輸入/輸出控制器412,這些設(shè)備包括鍵盤、鼠標(biāo)或者電子指示筆(未在圖4中示出)。類似地,輸入/輸出控制器可以提供至顯示屏、打印機(jī)或其他類型的輸出設(shè)備(也未在圖4中示出)的輸出。如前簡(jiǎn)述的那樣,多個(gè)程序模塊和數(shù)據(jù)文件可以存儲(chǔ)在計(jì)算機(jī)400的大容量存儲(chǔ)設(shè)備410和RAM 414內(nèi),包括適于控制聯(lián)網(wǎng)的臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)或服務(wù)器計(jì)算機(jī)的操作的操作系統(tǒng)418。大容量存儲(chǔ)設(shè)備410和RAM 414還可以存儲(chǔ)一個(gè)或多個(gè)程序模塊。具體地,大容量存儲(chǔ)設(shè)備410和RAM 414可存儲(chǔ)路由器模塊108和服務(wù)器模塊110,其每一個(gè)都在上文參考圖1-3詳細(xì)描述。大容量存儲(chǔ)設(shè)備410和RAM 414還可存儲(chǔ)其它類型的程序模塊和數(shù)據(jù)。應(yīng)當(dāng)理解,本文所描述的軟件組件在被加載到CPU 402中并被執(zhí)行時(shí)可以將CPU402和總體計(jì)算機(jī)400從通用計(jì)算系統(tǒng)變換成為方便本文所提出的功能而定制的專用計(jì)算系統(tǒng)。CPU 402可以用任意數(shù)量的晶體管或其他分離的電路元件(它們可以分別地或共同地呈現(xiàn)任意數(shù)量的狀態(tài))構(gòu)建。更具體地,CPU 402可以響應(yīng)于包含在本文所公開的軟件模塊中的可執(zhí)行指令來作為有限狀態(tài)機(jī)操作。這些計(jì)算機(jī)可執(zhí)行指令可以通過指定CPU 402如何在各狀態(tài)之間轉(zhuǎn)換來變換CPU 402,由此變換了構(gòu)成CPU 402的晶體管或其它分立硬件元件。對(duì)本文所提出的軟件模塊的編碼也可變換本文所提出的計(jì)算機(jī)可讀介質(zhì)的物理結(jié)構(gòu)。在本說明書的不同的實(shí)現(xiàn)中,物理結(jié)構(gòu)的具體變換可取決于各種因素。這些因素的示例包括但不限于用于實(shí)現(xiàn)計(jì)算機(jī)可讀介質(zhì)的技術(shù)、計(jì)算機(jī)可讀介質(zhì)被表征為主還是次級(jí)存儲(chǔ)等等。例如,如果計(jì)算機(jī)可讀介質(zhì)被實(shí)現(xiàn)為基于半導(dǎo)體的存儲(chǔ)器,則本文所公開的軟件可以通過變換半導(dǎo)體存儲(chǔ)器的物理狀態(tài)而在計(jì)算機(jī)可讀介質(zhì)上編碼。例如,軟件可以變換構(gòu)成半導(dǎo)體存儲(chǔ)器的晶體管、電容器或其它分立電路元件的狀態(tài)。軟件還可變換這些組件的物理狀態(tài)以在其上存儲(chǔ)數(shù)據(jù)。作為另一示例,本文所公開的計(jì)算機(jī)可讀介質(zhì)可以使用磁或光技術(shù)來實(shí)現(xiàn)。在這些實(shí)現(xiàn)中,本文所提出的軟件可以在其中編碼了軟件時(shí)變換磁或光介質(zhì)的物理狀態(tài)。這些變換可以包括改變給定磁性介質(zhì)內(nèi)的特定位置的磁性。這些變換還可以包括改變給定光學(xué)介質(zhì)內(nèi)的特定位置的物理特征或特性,以改變這些位置的光學(xué)特性。在沒有偏離本說明書的范圍和精神的情況下,物理介質(zhì)的其他轉(zhuǎn)換也是可以的,前面提供的示例只是為了便于此討論。鑒于以上內(nèi)容,應(yīng)當(dāng)理解,在計(jì)算機(jī)400中發(fā)生許多類型的物理變換來存儲(chǔ)并執(zhí)行本文所提出的軟件組件。還應(yīng)當(dāng)理解,計(jì)算機(jī)400可包括其它類型的計(jì)算設(shè)備,包括手持式計(jì)算機(jī)、嵌入式計(jì)算機(jī)系統(tǒng)、個(gè)人數(shù)字助理、以及本領(lǐng)域技術(shù)人員已知的其它類型的計(jì)算設(shè)備。還可構(gòu)想計(jì)算機(jī)400可以不包括圖4所示的全部組件,可以包括未在圖4中明確示出的其它組件,或者可利用完全不同于圖4所示的體系結(jié)構(gòu)?;谏衔?,應(yīng)當(dāng)理解,本文提供了用于優(yōu)化路由的技術(shù)。盡管用對(duì)計(jì)算機(jī)結(jié)構(gòu)特征、方法和變換動(dòng)作、特定計(jì)算機(jī)器和計(jì)算機(jī)可讀介質(zhì)專用的語(yǔ)言描述了本文所提出的主題,但可以理解,所附權(quán)利要求書中定義的本發(fā)明不必限于本文所述的具體特征、動(dòng)作或介質(zhì)。相反,這些具體特征、動(dòng)作和介質(zhì)是作為實(shí)現(xiàn)權(quán)利要求的示例形式來公開的。上述主題僅作為說明提供,并且不應(yīng)被解釋為限制。可對(duì)此處所述的主題作出各種修改和改變,而不必遵循所示和所述的示例實(shí)施例和應(yīng)用,且不背離所附權(quán)利要求書中所述的本發(fā)明的真正精神和范圍。
權(quán)利要求
1.一種用于將客戶機(jī)請(qǐng)求(20 路由到服務(wù)器模塊(110)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述計(jì)算機(jī)實(shí)現(xiàn)的方法包括用于以下的計(jì)算機(jī)實(shí)現(xiàn)的操作在路由器模塊(108)處從客戶機(jī)計(jì)算機(jī)(104)接收客戶機(jī)請(qǐng)求Q02);以及響應(yīng)于接收所述客戶機(jī)請(qǐng)求002),針對(duì)要履行所述客戶機(jī)請(qǐng)求Q02)的服務(wù)器模塊 (110)的目標(biāo)網(wǎng)絡(luò)地址(206)查詢負(fù)載平衡器(112),將所述目標(biāo)網(wǎng)絡(luò)地址(206)與網(wǎng)絡(luò)地址列表(208)中的一個(gè)或多個(gè)網(wǎng)絡(luò)地址進(jìn)行比較,以判斷所述路由器模塊(108)和所述要履行客戶機(jī)請(qǐng)求O02)的服務(wù)器模塊(110)是否在相同物理計(jì)算機(jī)上執(zhí)行,響應(yīng)于確定所述路由器模塊(108)和所述服務(wù)器模塊(110)在相同物理計(jì)算機(jī)上執(zhí)行,經(jīng)由利用二進(jìn)制編碼的優(yōu)化傳輸(210)將所述客戶機(jī)請(qǐng)求(20 從所述路由器模塊(108)轉(zhuǎn)發(fā)到所述服務(wù)器模塊(110)。
2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述優(yōu)化傳輸包括優(yōu)化的僅本地機(jī)傳輸。
3.如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述優(yōu)化的僅本地機(jī)傳輸利用二進(jìn)制編碼。
4.如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述優(yōu)化的僅本地機(jī)傳輸包括命名管道綁定。
5.一種其上存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令在由計(jì)算機(jī)執(zhí)行時(shí)使得所述計(jì)算機(jī)執(zhí)行如權(quán)利要求1所述的方法。
6.一種用于將客戶機(jī)請(qǐng)求(202)路由到服務(wù)器模塊(110)的系統(tǒng),所述系統(tǒng)包括 服務(wù)器模塊(110),被配置成接收所述客戶機(jī)請(qǐng)求(20 并對(duì)其作出響應(yīng);路由器模塊(108),被配置成接收所述客戶機(jī)請(qǐng)求(20 并且,響應(yīng)于接收所述客戶機(jī)請(qǐng)求(202),來獲取所述服務(wù)器模塊(110)的網(wǎng)絡(luò)地址,以判斷所述服務(wù)器模塊(110)是否在與所述路由器模塊(10 相同的計(jì)算機(jī)上執(zhí)行,并且響應(yīng)于確定所述服務(wù)器模塊(110)正在相同計(jì)算機(jī)上執(zhí)行而利用優(yōu)化傳輸(210)將所述請(qǐng)求(20 轉(zhuǎn)發(fā)到所述服務(wù)器模塊(110)。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,還包括負(fù)載平衡器,且其中獲取所述服務(wù)器模塊的網(wǎng)絡(luò)地址包括查詢負(fù)載平衡器以獲取服務(wù)器模塊的網(wǎng)絡(luò)地址。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述路由器模塊還被配置成響應(yīng)于確定所述服務(wù)器模塊不在相同計(jì)算機(jī)上執(zhí)行而利用標(biāo)準(zhǔn)傳輸。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,判斷所述服務(wù)器模塊是否在相同計(jì)算機(jī)上執(zhí)行包括將從所述負(fù)載平衡器接收到的網(wǎng)絡(luò)地址與執(zhí)行所述路由器模塊的計(jì)算機(jī)所響應(yīng)的網(wǎng)絡(luò)地址列表中的一個(gè)或多個(gè)網(wǎng)絡(luò)地址進(jìn)行比較,以判斷所述服務(wù)器是否在相同計(jì)算機(jī)上執(zhí)行。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述優(yōu)化傳輸包括傳輸控制協(xié)議(TCP)傳輸。
11.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述優(yōu)化傳輸包括優(yōu)化的僅本地機(jī)傳輸。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述優(yōu)化的僅本地機(jī)傳輸利用二進(jìn)制編碼。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述優(yōu)化的僅本地機(jī)傳輸包括命名管道綁定。
全文摘要
路由器模塊接收客戶機(jī)請(qǐng)求。響應(yīng)于接收請(qǐng)求,路由器模塊獲取要履行該請(qǐng)求的服務(wù)器模塊的網(wǎng)絡(luò)地址。路由器模塊然后判斷它是否在與服務(wù)器模塊相同的物理計(jì)算機(jī)上執(zhí)行。如果路由器模塊確定服務(wù)器模塊不在相同物理計(jì)算機(jī)上執(zhí)行,則路由器模塊利用標(biāo)準(zhǔn)網(wǎng)絡(luò)傳輸將客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)器模塊。如果路由器模塊確定服務(wù)器模塊正在相同計(jì)算機(jī)上執(zhí)行,則路由器模塊使用優(yōu)化傳輸,諸如優(yōu)化的僅本地機(jī)傳輸,將客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)器模塊。
文檔編號(hào)H04L12/56GK102369691SQ201080015803
公開日2012年3月7日 申請(qǐng)日期2010年3月26日 優(yōu)先權(quán)日2009年3月30日
發(fā)明者B·列夫 申請(qǐng)人:微軟公司