應用特定web請求路由的制作方法
【專利摘要】Web請求路由器被用來將對網(wǎng)絡內(nèi)的內(nèi)容的請求進行路由。Web請求路由器工作在通用計算設備上,被配置為接收請求、解析請求并將請求路由到適當目的地。Web請求路由器可被配置為執(zhí)行不同的路由方法和操作。例如,Web請求路由器可基于以下各項來路由請求:網(wǎng)絡流量的類型(例如,用戶/機器);應用特定的邏輯、URL模式和/或其他編程邏輯。該web請求路由器可被配置為基于所確定的該請求的親近性(例如,文檔、統(tǒng)一資源定位符(URL)、目錄路徑、站點集合)來路由該請求。Web請求路由器還可被配置為執(zhí)行QOS操作,諸如審計、日志記錄、計量、對網(wǎng)絡流量扼流、禁止網(wǎng)絡流量等等。
【專利說明】應用特定WEB請求路由
[0001]背景
[0002]傳統(tǒng)網(wǎng)絡負載平衡器設備是用于路由請求的非常昂貴的專用硬件設備。這些設備可被配置成執(zhí)行第4層和第7層路由。第7層是性能密集的,而第4層限于用于定制請求的路由行為。隨著網(wǎng)絡的增長,可能出現(xiàn)瓶頸,導致網(wǎng)絡流量減慢。
[0003]概述
[0004]提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的選擇的概念。本概述不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
[0005]Web請求路由器被用來將對網(wǎng)絡內(nèi)的內(nèi)容的請求進行路由。Web請求路由器工作在通用計算設備上,被配置為接收請求、解析請求并將請求路由到適當目的地。Web請求路由器可被配置為執(zhí)行不同的路由方法和操作。例如,Web請求路由器可基于以下各項來路由請求:網(wǎng)絡流量的類型(例如,用戶/機器);應用特定的邏輯、URL模式和/或其他編程邏輯。Web請求路由器可被配置為基于一請求的所確定的親和性(例如,文檔、統(tǒng)一資源定位符(URL)、目錄路徑、站點集合、底層HTTP協(xié)議的一個或多個屬性,諸如cookie、用戶代理、HTTP版本……等等)來路由該請求。Web請求路由器還可被配置為執(zhí)行QOS操作,諸如審計、日志記錄、計量、對網(wǎng)絡流量扼流、禁止網(wǎng)絡流量等等。
[0006]附圖簡述
[0007]圖1示出使用web請求路由器的路由系統(tǒng);
[0008]圖2示出用于在包括在線服務的前端和后端服務器的網(wǎng)絡中使用web請求路由器來路由請求的示例系統(tǒng)200 ;
[0009]圖3示出使用web請求路由器來路由請求的概覽過程;
[0010]圖4示出可由web請求路由器執(zhí)行的不同示例性操作;以及
[0011]圖5示出說明性計算機體系結(jié)構(gòu)。
[0012]詳細描述
[0013]現(xiàn)將參考其中相同的標號代表相同的元件的附圖來描述各實施例。
[0014]一般而言,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其它類型的結(jié)構(gòu)。也可使用其他計算機系統(tǒng)配置,包括手持式設備、多處理器系統(tǒng)、基于微處理器或可編程消費電子產(chǎn)品、小型計算機、大型計算機等等。還可使用在其中任務由通過通信網(wǎng)絡鏈接的遠程處理設備執(zhí)行的分布式計算環(huán)境。在分布式計算環(huán)境中,程序模塊可位于本地和遠程存儲器存儲設備兩者中。
[0015]圖1示出使用web請求路由器的路由系統(tǒng)。如圖所示,系統(tǒng)100包括路由器102、網(wǎng)絡負載平衡器104-105、web請求路由器110-112、后端服務器120-127以及高速緩存116??墒褂酶嗷蚋俚穆酚善?、網(wǎng)絡負載平衡器、web請求路由器以及后端服務器。另外,由系統(tǒng)100中的組件所提供的功能中的某些可以由其他組件來執(zhí)行。例如,負載平衡可由一不同計算設備執(zhí)行,而不是使用專用網(wǎng)絡負載平衡器(例如,web請求路由器110-112和/或某種其他通用計算設備)。[0016]路由器102跨網(wǎng)絡路由數(shù)據(jù)分組。一般而言,路由器102使用數(shù)據(jù)分組中的地址來確定要在哪里將該分組轉(zhuǎn)發(fā)到網(wǎng)絡負載平衡器104-105或某個其他目的地。
[0017]負載平衡器104-105可被實現(xiàn)為專用網(wǎng)絡設備,和/或負載平衡器所提供的功能的部分/全部可由其他計算設備(例如,web請求路由器110-112或某組其他的計算設備(未示出))來執(zhí)行。根據(jù)一實施例,當網(wǎng)絡負載平衡器是專用負載平衡器時,負載平衡器104-105工作在較低的TCP/IP層(例如,第4層而不是第7層),使得每一負載平衡器都能處理更多請求。負載平衡器104-105還可工作在一不同層。例如,該負載平衡器可以是第3層設備,該設備充當路由但是執(zhí)行平衡負載。當負載平衡器接收到請求時,該負載平衡器將該請求定向到可用web請求路由器之一??墒褂貌煌椒▉韺⒃撜埱舐酚傻絯eb請求路由器(例如,循環(huán)(round robin)、基于負載值、基于負載值及其他)。通常,傳統(tǒng)負載平衡器是專用的硬件設備,它們與通用計算設備相比是昂貴的。
[0018]Web請求路由器110-112將請求定向到一個或多個后端服務器120-127。Web請求路由器提供一種可縮放的請求路由器,其與專用網(wǎng)絡負載平衡器相比工作在較高的TCP/IP層(例如,第7層)。根據(jù)一實施例,web請求路由器被實現(xiàn)為在微軟的用于Windows服務器的因特網(wǎng)信息服務(HS)中運行的通用計算服務器。一般而言,IIS是一種靈活、安全且易于管理的用于Web托管(例如,從媒體流傳輸?shù)絯eb應用托管)的Web服務器。Web請求路由器110-112與專用硬件計算設備相比較是廉價的。例如,web請求路由器可實現(xiàn)在具有低存儲器和處理規(guī)格的商品服務器上。
[0019]在接收到請求后,接收該請求的web請求路由器確定該請求的目的地(例如,后端服務器120-127)。該web請求路由器可執(zhí)行不同的操作以確定目的地。一般而言,web請求路由器使用HTTP協(xié)議來解析該請求以確定該請求的目的地。在許多情形下,使用該請求中所指定的主機頭部(host-header)來選擇要將該請求定向到的后端服務器和/或后端服務器池??稍诟咚倬彺?例如高速緩存116)中查找主機頭部,且該查找可涉及應用某些預定規(guī)則。例如,當web請求路`由器接收到xxxx-yyyy.sharepoint.com形式的統(tǒng)一資源定位(URL)請求時,該web請求路由器可在高速緩存中查找該xxxx部分且yyyy的任何值被發(fā)送到同一組服務器。該web請求路由器還可執(zhí)行其他邏輯來確定該請求的目的地。
[0020]該web請求路由器可基于該請求的親和性來定向該請求。例如,該web請求路由器可被配置為創(chuàng)建/使用針對以下各項的親和性:個別文件、特定URL、目錄路徑、文件類型、站點集合、底層HTTP協(xié)議的一個或多個屬性,諸如cookies、用戶代理、HTTP版本……,等等。例如,親和性可被創(chuàng)建并存儲(例如存儲在高速緩存116中),該親和性引導web請求路由器使用后端服務器120來服務對“文檔I”的請求,而對“站點集合I”的請求可被定向到后端服務器124和125??舍槍σ粋€或多個后端服務器創(chuàng)建親和性以接收與在URL內(nèi)包括匹配模式的請求有關(guān)的請求(例如,該web請求路由器可檢測到URL中包括模式“WordViewer.aspx”的請求并基于對此模式的親近性將該請求定向到該一個或多個所指定的后端服務器)??蓜?chuàng)建一親近性,該親近性指定:包括特定地址或該地址的一部分的任何請求要由所述后端服務器中的一個或多個來服務。
[0021]該web請求路由器可被配置為基于從其接收該請求的用戶來路由該請求。例如,一個或多個用戶可被定向到第一組后端服務器而一個或多個其他用戶可被定向到第二組后端服務器。根據(jù)一實施例,基于(例如,在cookie中接收的)認證信息來確定該用戶。該web請求路由器可檢查高速緩存116和/或某個其他位置來基于該請求是從誰接收的來路由該請求。
[0022]該web請求路由器可被配置為基于客戶端所配置的設置來動態(tài)改變對請求的路由,諸如由客戶端接收的設置和/或從另一計算設備接收的設置(例如,在一應用服務器和/或客戶端處所設置的)。例如,用戶可設置一可選項:使用基于客戶端的應用來不同地路由流量以測試新特性。例如,基于一 cookie (由客戶端應用設置為帶外),該web請求路由器所接收的請求可被路由到該軟件的一較新的/不同的版本,從而允許管理員/用戶預覽該新版本而不將該新版本暴露給他們的其他用戶。根據(jù)基于客戶端的應用設置來改變web請求路由器的路由還可用于其他目的(例如,內(nèi)部測試團隊以驗證新的功能而不將該新功能暴露給真正的終端用戶)。一般而言,根據(jù)設置基于客戶端應用內(nèi)的值,不同用戶可被暴露給不同的內(nèi)容。
[0023]該web請求路由器可確定網(wǎng)絡流量的類型(基于用戶的/基于機器/基于管理的)并基于所確定的流量類型來路由該流量。例如,該web請求路由器可將基于用戶的流量路由到第一組后端服務器,將基于機器的流量路由到第二組后端服務器,并將管理流量路由到再另一組后端服務器。該web請求路由器還可基于網(wǎng)絡流量的類型排定請求的優(yōu)先級(例如,基于用戶的流量被賦予比基于機器的流量更高的優(yōu)先級)。
[0024]Web請求路由器還可被配置為執(zhí)行服務質(zhì)量(QOS)操作。該web請求路由器還可執(zhí)行許多不同的操作(例如,計量網(wǎng)絡流量;審計網(wǎng)絡流量;記錄網(wǎng)絡流量日志;對網(wǎng)絡流量計費并進行控制)。例如,web請求路由器可拒絕被確定為來自未授權(quán)源的網(wǎng)絡流量。以此方式,該后端服務器不接收該未授權(quán)流量并不花費時間處理該未授權(quán)流量。該web請求路由器還可基于該請求扼流該流量。例如,某些用戶可被限于特定的帶寬/內(nèi)容量。該web請求路由器還可被配置為用于需要對使用計費的服務。例如,該web請求路由器可被配置為記錄負載日志并測量負載(請求的數(shù)量以及兩個方向上的帶寬兩者)。Web請求路由器還可在可能僅支付了較低流量的站點具有突然的流行度尖峰時對那些站點進行扼流。
[0025]該web請求路由器 還可被配置為將請求重新路由到該web請求路由器的網(wǎng)絡之外和/或之內(nèi)的另一目的地。例如,該web請求路由器可能知道所請求的內(nèi)容已被移動到何處,而這尚未被域名系統(tǒng)(DNS)所反映出。在此情況下,該web請求路由器可訪問該內(nèi)容從高速緩存116 (或某個其他位置)所移動的位置并且在該DNS更新該內(nèi)容的位置之前將該請求重新路由到該內(nèi)容的位置。
[0026]該web請求路由器還可基于該日的時刻(time of the day)和/或被配置為接收該請求的后端服務器上的負載來路由流量。例如,在該天中規(guī)定的小時期間,滿足特定條件(例如,用戶流量)的請求被定向到第一組后端服務器,而不滿足該條件的請求被定向到第二組后端服務器。在其他時間期間,該web請求路由器可按相同方式路由流量。服務器的負載也可被web請求路由器用來確定如何路由請求。該負載可以是針對特定服務器和/或針對一組服務器的。例如,該負載可以是跨所有/部分后端服務器的平均負載。也可使用其他負載信息(例如,峰值負載、在該日內(nèi)不同時刻的平均負載……)。該WRR可被配置為向該客戶端提供負載信息或者不提供負載信息。
[0027]高速緩存116可被配置為存儲在路由請求時使用的許多不同類型的信息。例如,配置信息(其可以是數(shù)百萬個快速改變的對象)被存儲在該高速緩存中而不是被推送到web請求路由器的每一個中。web請求路由器可以簡單地從該高速緩存獲得值。高速緩存116可被配置為存儲路由表,該路由表可被用來確定要將特定請求路由到何處。
[0028]Web請求路由器可使用許多不同的因素來協(xié)助路由該請求,諸如后端服務器利用率、到服務器的連接數(shù)目和總體性能,來確定哪個后端服務器接收請求。web請求路由器還可以使用用于路由請求的應用特定邏輯。例如,可以基于文檔標識符和/或包括在已接收的請求內(nèi)的用戶信息來路由請求。
[0029]該web請求路由器還可利用若干技術(shù)中的一個或多個(例如,循環(huán)、基于負載值、基于后端對其他請求所返回的負載值、基于高速緩存中的負載、或基于感測到其他響應多快地被返回)來確定請求的目的地。
[0030]圖2示出用于在包括在線服務的前端和后端服務器的網(wǎng)絡中使用web請求路由器來路由請求的示例系統(tǒng)200。示例系統(tǒng)200包括客戶端202和204、網(wǎng)絡206、負載平衡器208、web請求路由器209、WFE服務器210、212、214、后端服務器216-219,以及可選的路由組件220??墒褂酶嗷蚋俚目蛻舳?、WFE、后端服務器、負載平衡器和網(wǎng)絡。另外,由系統(tǒng)200中的組件所提供的功能中的某些可以由其他組件來執(zhí)行。例如,負載平衡可以在WFE和/或某種其他計算設備中執(zhí)行。
[0031]在示例實施例中,客戶端202和204是諸如臺式計算機、膝上型計算機、終端計算機、個人數(shù)字助理或蜂窩電話設備的計算設備??蛻舳?02和204可包括輸入/輸出設備、中央處理單元(“CPU”)、數(shù)據(jù)存儲設備和網(wǎng)絡設備。在本申請中,術(shù)語客戶端和客戶端計算機互換地使用。
[0032]WFE210、212和214可由客戶端202和204經(jīng)由負載平衡器208和web請求路由器209通過網(wǎng)絡206訪問。一個或多個WFE可改變。例如,可隨著時間增加/刪除/改變一個或多個WFE。后端服務器216-219對WFE210、212和214是可訪問的。負載平衡器208可以是專用網(wǎng)絡設備和/或一個或多個通用服務器計算機。負載平衡器208,web請求路由器209,路由組件220,WFE210、212和214以及后端服務器216 — 219可包括輸入/輸出設備、中央處理單元(“CPU”)、數(shù)據(jù)存儲設備和網(wǎng)絡設備。在示例實施例中,網(wǎng)絡206是因特網(wǎng),并且客戶端202和204可以遠程地訪問WFE210、212和214以及連接到WFE210、212和214的資源。
[0033]在一不例實施例中,系統(tǒng)200是在線的、基于瀏覽器的基于云的系統(tǒng)。在系統(tǒng)200中,后端服務器216-219中的一個或多個是SQL服務器,例如,來自美國華盛頓州雷蒙德市的微軟公司的SQL服務器。
[0034]WFE210、212和214提供客戶端202和204與后端服務器216-219之間的接口。負載平衡器208將來自客戶端202和204的請求定向到web請求路由器。負載平衡器208可包括一個或多個專用硬件設備和/或被配置為執(zhí)行負載平衡的通用計算設備。根據(jù)實施例,負載平衡器208是在第4層TCP/IP連接處終止的專用硬件負載平衡器。如同上面討論的,硬件負載平衡器可工作在一不同層(例如第3層)。當負載平衡器不必執(zhí)行大量處理時,它通??梢月酚稍S多更多的消息。例如,處理安全套接字層(SSL)連接可顯著地減少負載平衡器可處理的多個請求。與較高層相比,負載平衡器能夠在較低層路由許多更多的請求(例如,在較低層處理多達5倍的請求)。
[0035]web請求路由器209將請求定向到WFE210、212和214,并且使用諸如WFE利用率、到WFE的連接數(shù)目和總體WFE性能的因素來確定哪個WFE服務器接收客戶端請求。類似地,web請求路由器209使用諸如后端服務器利用率、到服務器的連接數(shù)目和總體性能的因素來確定哪個后端服務器接收請求。web請求路由器209可用于從負載平衡器208卸載處理中的某些。例如,負載平衡器208可運行在較低的TCP/IP層(例如,第3、4層)以使得它可以處理更多的請求。web請求路由器209提供可運行在較高的TCP/IP層(例如,第7層)的可縮放的請求路由器。web請求路由器可以使用用于路由請求的應用特定邏輯。例如,可以基于文檔標識符和/或包括在已接收的請求內(nèi)的用戶信息來路由請求。當WFE改變發(fā)生時(例如,WFE被刪除/增加),該web請求路由器存儲關(guān)于該WFE改變的已改變信息,使得該web請求路由器停止向已經(jīng)被移除的WFE發(fā)送流量并在適當時將流量定向到新添加的WFE。[0036]客戶端請求的示例可以是訪問存儲在后端服務器之一上的文檔,編輯存儲在后端服務器(例如216-219)上的文檔,或者將文檔存儲在后端服務器上。當負載平衡器208通過網(wǎng)絡206接收客戶端請求時,負載平衡器208將請求定向到可用的web請求路由器209中的一個。web請求路由器209確定WFE服務器210、212和214中的哪一個接收客戶端請求。類似地,WFE服務器210、212、214和/或可選的路由組件220確定后端服務器216-219中的哪一個或多個從WFE服務器接收請求。后端服務器可以被配置為存儲一個或多個承租人(即顧客)的數(shù)據(jù)。
[0037]客戶端202和/或客戶端204可改變web請求路由器209的路由。例如,客戶端202可在基于客戶端的應用內(nèi)設置一選項,該選項允許該客戶端被定向到不同內(nèi)容(例如,應用的新版本)以便可對其進行測試/預覽。還可從另一計算設備(例如,應用服務器)接收設置。
[0038]web請求路由器運行在可包括內(nèi)置到硬件中的解密功能的通用計算設備(例如服務器)。例如,許多CPU已內(nèi)建了解碼能力,該解碼能力可被用來幫助解碼安全套接字層(SSL)連接。web請求路由器通常比用于大型網(wǎng)絡的專用負載平衡器(例如負載平衡器208)更便宜。可利用任意數(shù)目的web請求路由器209來處理請求。在在線服務運行期間,web請求路由器的數(shù)目也可以動態(tài)地改變。例如,取決于服務的負載,可以動態(tài)地部署/移除更多或更少的web請求路由器。
[0039]web請求路由器209可以使用用于路由請求的應用特定邏輯??梢曰谡埱髢?nèi)所包括的信息(例如,文檔標識符和/或用戶/文檔/地址信息)來路由請求。例如,請求可以是“…/wordviewer.aspx ? id=fo0.docx”形式的HTTP請求。請求與特定的應用相關(guān)聯(lián),并且包括文檔標識符“fo0.docx”作為請求的部分。不同的應用可以具有不同的請求結(jié)構(gòu)。一般而言,與應用相關(guān)聯(lián)的請求可以包括諸如以下各項:應用信息、用戶信息、承租人信息、文檔信息等。很多應用請求已經(jīng)包括可用于路由的信息,而不必修改請求以包括可用于路由的附加信息。換言之,web請求路由器具有關(guān)于應用如何創(chuàng)建請求的應用特定知識。由此,由于應用可以已經(jīng)包括請求內(nèi)的可用信息,因此附加信息不必被創(chuàng)建并被存儲在請求內(nèi)。
[0040]請求的路由可以基于所請求的內(nèi)容的名稱/類型/路徑前綴(例如,請求中的URL路徑的某個部分)/站點集合/地址(例如,fo0.docx/承租人I/、LOCI/*, doc,…)。例如,對特定文檔fo0.docx的所有請求可被定向到單一服務器以處理該請求來改善其高速緩存響應的能力,而對非常受歡迎的站點的請求可被定向到一組服務器。當單一服務器處理對一文檔的請求時,它通常能夠從經(jīng)高速緩存的內(nèi)容中檢索到所請求的內(nèi)容,由此節(jié)省時間和計算資源。一旦文檔已經(jīng)被請求,它可被高速緩存到最初處理請求的服務器上。由于可以基于文檔名稱來路由請求,則該文檔很有可能位于已確定的服務器的高速緩存中。其他應用特定信息也可用于路由請求,諸如基于應用的特定版本、文檔版本、應用類型等來路由。
[0041]對請求的路由還可以至少部分地基于其他因素,諸如:基于非用戶發(fā)起的請求來路由(機器人(bot));請求的復制(路由到多個端點用于調(diào)試目的);地理分布(跨網(wǎng)絡、跨數(shù)據(jù)中心路由以獲得DNS傳播期間的高可用性)等。
[0042]文檔還可以被高速緩存在某個其它位置,諸如高速緩存服務器(未示出)內(nèi)。高速緩存服務器通過從同一客戶端或其他客戶端進行的先前的請求中檢索已保存的內(nèi)容來加速請求。高速緩存服務器頻繁地存儲所請求的資源以使得它們可以被更快速地提供。
[0043]查找表可用于確定請求的目的地。例如,查找表可被存儲在網(wǎng)絡內(nèi)的數(shù)據(jù)存儲中和/或高速緩存(例如,高速緩存116)中。查找表由web請求路由器訪問以確定請求的目的地。例如,查找表可包括顧客名稱、文檔名稱以及該文檔所存儲的位置。web請求路由器使用來自請求的信息并在查找表內(nèi)為該文檔查找數(shù)據(jù)存儲的位置。當在線服務內(nèi)的內(nèi)容位置變化時,可更新查找表以使得web請求路由器自動地將內(nèi)容定向到已更新的位置。如所討論的,出于很多不同的理由可以改變內(nèi)容位置,諸如機器、場、數(shù)據(jù)庫的新部署,升級,分隔數(shù)據(jù)庫,碎片整理操作等。
[0044]圖3-4示出用于使用web請求路由器在在線系統(tǒng)中路由請求的過程。
[0045]在閱讀本文中給出的例程的討論時,應該理解,各個實施例的邏輯操作被實現(xiàn)為:
(I)一系列運行于計算系統(tǒng)上的計算機實現(xiàn)的動作或程序模塊;和/或(2)計算系統(tǒng)內(nèi)的互連的機器邏輯電路或電路模塊。這種實現(xiàn)是取決于實現(xiàn)本發(fā)明的計算系統(tǒng)的性能需求的選擇問題。因此,所例示并構(gòu)成本文中描述的實施例的邏輯操作被不同地稱為操作、結(jié)構(gòu)設備、動作或模塊。這些操作、結(jié)構(gòu)設備、動作和模塊可以用軟件、固件、專用數(shù)字邏輯,以及其任何組合來實現(xiàn)。
[0046]圖3示出使用web請求路由器來路由請求的概覽過程。
[0047]在開始操作之后,過程300行進至在其中接收請求的操作310。在被配置作為將請求路由到適合的目的地的web請求路由器的一組通用商品服務器處接收請求。該目的地可以在該web請求路由器所駐留的網(wǎng)絡的內(nèi)部/外部。所述請求是針對存儲在一個或多個機器上的內(nèi)容的。所請求的內(nèi)容可移動位置。例如,數(shù)據(jù)庫可被復制到新位置、承租人可被移動到一不同位置、新的場可被部署等。根據(jù)一實施例,所述請求遵守HTTP協(xié)議。
[0048]流向操作320,該請求被web請求路由器解析??山馕鲈撜埱笠垣@得不同類型的信息。例如,可解析某些請求來:確定首部內(nèi)的位置的名稱;標識與該請求相關(guān)聯(lián)的應用;標識文檔的名稱;標識用戶;確定該請求內(nèi)包含的設置(即,應用特定路由請求);標識請求的類型(例如,用戶/機器/管理);標識地址;等等??杀唤馕龅囊恍┬畔☉脴俗R信息、文檔信息、用戶信息、認證信息、安全信息、顧客信息等。
[0049]移至操作330,該web請求路由器可執(zhí)行其他操作。許多類型的操作可被編程以由web請求路由器執(zhí)行。Web請求路由器可創(chuàng)建/使用親近性。例如,可為文檔、站點集合、URL、目錄路徑等創(chuàng)建親近性。Web請求路由器還可執(zhí)行各種QOS操作(例如,計量網(wǎng)絡流量;審計網(wǎng)絡流量;記錄網(wǎng)絡流量日志;對網(wǎng)絡流量計費以及拒絕)(參見圖4和對其他操作的相關(guān)討論)。
[0050]移至操作340,確定請求的目的地。如所討論的,可使用許多不同類型的信息來確定目的地。根據(jù)一實施例,關(guān)于網(wǎng)絡中各后端服務器上有什么可用內(nèi)容的信息被存儲在查找表中,該查找表可由該web請求路由器訪問。該查找表反映了數(shù)據(jù)的當前位置。根據(jù)一實施例,只要內(nèi)容位置改變就自動更新查找表,以使得查找表包含的信息準確地反映在進行請求時具有可用內(nèi)容的服務器。根據(jù)一實施例,該查找表標識一個或多個后端服務器,該后端服務器處理特定文檔/URL/地址/用戶/站點集合。例如,一個服務器可處理第一組文檔,另一服務器處理特定站點集合,另一服務器處理包括特定地址的請求,等等。通過將對相同內(nèi)容的請求發(fā)送到相同的機器,該內(nèi)容將有可能被存儲在機器的高速緩存內(nèi)。如果請求是針對不具有被高速緩存的內(nèi)容的另一個服務器,則該服務器隨后在獲得該文檔時執(zhí)行多得多的步驟。也可基于該請求內(nèi)所包括的其他信息(例如,將web請求路由器定向到內(nèi)容的另一位置的測試請求)來確定目的地。還可禁止該請求的目的地。例如,可確定一請求與被禁止的請求者相關(guān)聯(lián)。
[0051]移至操作350,將該請求轉(zhuǎn)發(fā)到所確定的目的地,或者在該請求被禁止時拒絕該請求。該目的地可以在該web請求路由器所駐留的網(wǎng)絡的內(nèi)部/外部。在一些情況下(例如,該請求很大),該請求可被流傳輸?shù)侥康牡亍?br>
[0052]流向操作360,當該請求被轉(zhuǎn)發(fā)到目的地時,一響應被從該目的地接收并返回給客戶端。該響應可以如所接收的那樣被返回和/或在返回前被修改。例如,負載信息、健康度信息等等可被包括在該響應內(nèi)。在一些情況下(例如,該響應很大),該響應可被流傳輸?shù)娇蛻舳恕?br>
[0053]隨后該過程移至結(jié)束框并返回以處理其它動作。
[0054]圖4示出可由web請求路由器執(zhí)行的不同示例性操作。這些示例性操作是作為示例提供的,不旨在是限制性的??蓤?zhí)行過程400的操作中的O個或更多個。
[0055]操作410示出創(chuàng)建/使用親近性??舍槍σ韵赂黜梽?chuàng)建/確定親近性:個別文件、文件組、特定URL、URL的部分、特定目錄路徑、目錄路徑的部分、應用、應用類型、文件類型、站點集合、底層HTTP協(xié)議的一個或多個屬性,諸如cookies、用戶代理、HTTP版本等。親近性也可以是基于不同項目的組合的。例如,web請求路由器可將與地址“Addr I”相關(guān)聯(lián)的“文檔”類型的文件關(guān)聯(lián)為要被存儲在后端服務器I處。
[0056]操作420示出應用控制的路由。路由請求可根據(jù)從基于客戶端的應用接收的設置。用戶和/或另一計算設備可通過改變設置來臨時/永久改變一請求的路由。例如,用戶可使用基于客戶端的應用來設置測試設置,其導致web請求路由器將從一個或多個用戶接收到的請求路由到應用/內(nèi)容的不同版本以用于測試之目的。Web前端服務器或其他計算設備也可改變路由。
[0057]操作430示出使用web請求路由器來執(zhí)行QOS操作。Web請求路由器可被配置為執(zhí)行各種QOS操作(例如,計量網(wǎng)絡流量;審計網(wǎng)絡流量;記錄網(wǎng)絡流量日志;確定網(wǎng)絡健康度;監(jiān)視網(wǎng)絡流量;對網(wǎng)絡流量計費并進行控制)。健康度可與一組機器中的每一個的健康度和/或該組機器的整體健康度相關(guān)。例如,web請求路由器可確定平均健康度得分,該平均健康度得分是基于從所述機器中的每一個獲得的值。用這種方式,單一機器的健康度得分值不提供該組中的其他機器的健康度得分的錯誤解讀(例如,一個機器可以是處于高度需求,而該組中的其他機器并非如此)。
[0058]操作440示出阻擋不適當?shù)木W(wǎng)絡流量。例如,web請求路由器可拒絕被確定為來自未授權(quán)源的網(wǎng)絡流量。以此方式,該后端服務器不接收該未授權(quán)流量并不花費時間處理該未授權(quán)流量。
[0059]操作450示出基于網(wǎng)絡流量的類型的路由??扇Q于該請求何時來自用戶、機器或者該請求是管理請求來不同地路由該請求。例如,來自用戶的請求可以比來自機器的請求被排定更高的優(yōu)先級。還可基于網(wǎng)絡流量的類型來不同地路由該請求并創(chuàng)建親近性(例如,基于用戶的流量到服務器1-3、基于機器的流量到服務器3-4,而管理請求到服務器5)。根據(jù)一實施例,網(wǎng)絡流量的類型是從該請求內(nèi)的一字段確定的。
[0060]操作460示出將請求路由到多個目的地。請求可被路由到一個以上的目的地。例如,為調(diào)試之目的,請求可被路由到多個目的地。
[0061]操作470示出在DNS傳播期間重新路由請求。對于內(nèi)容被從一個位置移動到新位置之后的某個時間段,該新位置沒有被域名系統(tǒng)(DNS)反映。在此DNS傳播時間段期間,在DNS更新該內(nèi)容的位置之前,web請求路由器可確定內(nèi)容的位置(例如,從查找表(或某個其他位置))并將該請求重新路由到該新位置。所述重新路由可以跨網(wǎng)絡、跨數(shù)據(jù)中心路由,或者路由到同一網(wǎng)絡/數(shù)據(jù)中心內(nèi)的另一機器。
[0062]操作480示出基于請求的時間和/或當前網(wǎng)絡性質(zhì)(例如,負載)的路由。該web請求路由器可基于該日內(nèi)的時刻(time of the day)和/或被配置為接收該請求的后端服務器上的負載來路由流量。例如,在該天中規(guī)定的小時期間,滿足特定條件(例如,用戶流量)的請求被定向到第一組后端服務器,而不滿足該條件的請求被定向到第二組后端服務器。在其他時間期間,該web請求路由器可按相同方式路由流量。服務器的負載也可被web請求路由器用來確定如何路由請求。
[0063]現(xiàn)在參考圖5,將描述在各實施例中利用的計算機500的說明性計算機架構(gòu)。圖5所示的計算機體系結(jié)構(gòu)可被配置為服務器、臺式或移動計算機,并且包括中央處理單元5(“CPU”)、包括隨機存取存儲器9 (“RAM”)和只讀存儲器(“ROM”)10的系統(tǒng)存儲器7、以及將存儲器耦合至中央處理單元(“CPU”)5的系統(tǒng)總線12。
[0064]在R0M10中存儲基本輸入/輸出系統(tǒng),該系統(tǒng)包含有助于諸如在啟動期間在計算機內(nèi)的各元件之間傳輸信息的基本例程。計算機500還包括大容量存儲設備14,用于存儲操作系統(tǒng)16、應用程序10、數(shù)據(jù)存儲24、文件、以及與路由請求相關(guān)的路由程序26。
[0065]大容量存儲設備14通過連接至總線12的大容量存儲控制器(未示出)連接至CPU5。大容量存儲設備14及其相關(guān)聯(lián)的計算機可讀介質(zhì)為計算機500提供非易失性存儲。雖然本文中包含的對計算機可讀介質(zhì)的描述涉及諸如硬盤或CD-ROM驅(qū)動器等大容量存儲設備,但是計算機可讀介質(zhì)可以是能夠由系統(tǒng)100訪問的任何可用介質(zhì)。
[0066]作為示例而非限制,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)之類的信息的任何方法或技術(shù)來實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括,但不限于,RAM、ROM、可擦除可編程只讀存儲器(“EPROM”)、電可擦可編程只讀存儲器(“EEPR0M”)、閃存或其他固態(tài)存儲器技術(shù)、⑶-ROM、數(shù)字多功能盤(“DVD”)或其他光存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設備,或能用于存儲所需信息且可以由計算機500訪問的任何其他介質(zhì)。
[0067]根據(jù)各實施例,計算機500可以使用通過諸如因特網(wǎng)的網(wǎng)絡18至遠程計算機的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。計算機500可以通過連接至總線12的網(wǎng)絡接口單元20來連接到網(wǎng)絡18。網(wǎng)絡連接可以是無線的和/或有線的。網(wǎng)絡接口單元20也可用于連接到其他類型的網(wǎng)絡和遠程計算機系統(tǒng)。計算機500還可以包括用于接收和處理來自多個其他設備的輸入的輸入/輸出控制器22,這些設備包括鍵盤、鼠標或者電子指示筆(未在圖5中示出)。類似地,輸入/輸出控制器22可以為顯示屏28、打印機或其它類型的輸出設備提供輸出。
[0068]如上面簡要提到的,多個程序模塊和數(shù)據(jù)文件可以存儲在計算機500的大容量存儲設備14和RAM9內(nèi),包括適于控制聯(lián)網(wǎng)計算機的操作的操作系統(tǒng)16,比如華盛頓州雷蒙德市的微軟?公司的WINDOWS?操作系統(tǒng)。大容量存儲設備14和RAM9還可以存儲一個或多個程序模塊。具體而言,大容量存儲設備14和RAM9可以存儲諸如路由程序26的執(zhí)行與路由請求相關(guān)的任務的一個或多個應用程序。
[0069]以上說明、示例和數(shù)據(jù)提供了對本發(fā)明的組成部分的制造和使用的全面描述。因為可以在不背離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實施例,所以本發(fā)明落在所附權(quán)利要求的范圍內(nèi)。
【權(quán)利要求】
1.一種用于將請求路由到后端服務器的方法,包括: 在web請求路由器處接收請求,所述web請求路由器是通用計算設備; 在所述web請求路由器處,解析所述請求,解析所述請求包括解釋網(wǎng)絡協(xié)議并確定包括所述請求要被路由到的后端服務器的目的地;以及 將所述請求路由到所確定的目的地。
2.如權(quán)利要求1所述的方法,其特征在于,在所述web請求路由器處接收所述請求包括從負載平衡器接收所述請求,所述負載平衡器是專用網(wǎng)絡設備。
3.如權(quán)利要求2所述的方法,其特征在于,所述web請求路由器卸載由所述負載平衡器執(zhí)行的功能,包括卸載以下至少一項:解釋所述請求的網(wǎng)絡協(xié)議;解密與所述請求相關(guān)聯(lián)的安全;確定與所述請求相關(guān)聯(lián)的親近性以及解釋正式域名(FQDN)。
4.如權(quán)利要求1所述的方法,其特征在于,解析所述請求包括以下至少一個:確定與所述請求相關(guān)聯(lián)的親近性,其中所述親近性是與以下的至少一項相關(guān)聯(lián)的:文檔;目錄路徑;站點集合;以及統(tǒng)一資源定位符;確定何時將所述請求路由到正在運行一應用的一不同版本的后端服務器,使得從第一客戶端接收的對內(nèi)容的第一請求被定向到第一目的地而從第二客戶端接收的對所述內(nèi)容的第二請求被定向到第二位置;使用以下的至少一項來確定所述目的地:所述請求的時間以及一組后端服務器上的負載;以及確定來自用戶流量和機器流量的與所述請求相關(guān)聯(lián)的網(wǎng)絡流量的類型并且基于所確定的所述網(wǎng)絡流量的類型來路由所述請求并排定所述請求的優(yōu)先級。
5.如權(quán)利要求1所述的方法,其特征在于,還包括使用所述web請求路由器來執(zhí)行以下的至少一項:計量網(wǎng)絡流量;審計網(wǎng)絡流量;記錄網(wǎng)絡流量日志,對網(wǎng)絡流量計費以及拒絕網(wǎng)絡流量。
6.如權(quán)利要求1所述的方法,其特征在于,還包括在內(nèi)容已被移動且域名系統(tǒng)(DNS)尚未更新一不同網(wǎng)絡位置的位置時使用所述web請求路由器來將所述請求路由到所述不同網(wǎng)絡位置。
7.如權(quán)利要求1所述的方法,其特征在于,還包括基于從客戶端設備處的基于用戶的應用接收到的改變來改變所述web請求路由器的路由。
8.一種具有用于路由請求的計算機可執(zhí)行指令的計算機可讀存儲介質(zhì),其特征在于,包括: 接收對網(wǎng)絡中的內(nèi)容的請求;其中所述請求是在web請求路由器處從所述網(wǎng)絡中的專用負載平衡器接收的,其中所述web請求路由器是所述網(wǎng)絡中的一組web請求路由器的一部分,所述web請求路由器包括客戶端可配置路由邏輯; 在所述web請求路由器處,解析所述請求,包括解釋所述網(wǎng)絡協(xié)議,確定與來自用戶流量和機器流量的所述請求相關(guān)聯(lián)的網(wǎng)絡流量的類型,以及基于所確定的所述網(wǎng)絡流量的類型來調(diào)整所述請求的路由,以及確定包括所述請求要被路由到的后端服務器的目的地;以及 將所述請求路由到所確定的目的地。
9.一種用于在在線服務中路由請求的系統(tǒng),包括: 處理器和計算機可讀介質(zhì); 存儲在所述計算機可讀介質(zhì)上并在所述處理器上執(zhí)行的操作環(huán)境;被配置為存儲用于web請求路由器的狀態(tài)信息的高速緩存; Web請求路由器,所述web請求路由器卸載由負載平衡器執(zhí)行的功能,包括卸載以下至少一項:解密與所述請求相關(guān)聯(lián)的安全;解釋FQDN (正式域名)以及確定與所述請求相關(guān)聯(lián)的親近性,其中所述web請求路由器被耦合到所述網(wǎng)絡和所述高速緩存,所述網(wǎng)絡和所述高速緩存均被配置為執(zhí)行動作,所述動作包括: 接收對網(wǎng)絡中的內(nèi)容的請求;其中所述請求是在web請求路由器處從所述網(wǎng)絡中的專用負載平衡器接收的,其中所述web請求路由器是所述網(wǎng)絡中的一組web請求路由器的一部分,所述web請求路由器包括客戶端可配置路由邏輯; 在所述web請求路由器處,解析所述請求,包括解釋所述網(wǎng)絡協(xié)議,為所述網(wǎng)絡執(zhí)行質(zhì)量服務(QOS)操作,包括以下至少一項:計量網(wǎng)絡流量;審計網(wǎng)絡流量;記錄網(wǎng)絡流量日志;對網(wǎng)絡流量計費以及拒絕網(wǎng)絡流量;以及確定包括所述請求要被路由到的后端服務器的目的地;以及 將所述請求路由到所確定的目的地。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,解析所述請求包括確定與所述請求相關(guān)聯(lián)的親近性,其中所述親近性與以下至少一項相關(guān)聯(lián):文檔;目錄路徑;站點集合;以及統(tǒng)一資源定位符。
【文檔編號】H04L12/28GK103609074SQ201280029563
【公開日】2014年2月26日 申請日期:2012年6月16日 優(yōu)先權(quán)日:2011年6月17日
【發(fā)明者】A·霍普曼, E·福克斯, T·富特旺勒 申請人:微軟公司