專利名稱:在網(wǎng)絡中獲取信息的方法和裝置的制作方法
背景技術:
網(wǎng)絡一般包括多個網(wǎng)絡節(jié)點,其通過通信介質彼此相連接。網(wǎng)絡節(jié)點可包括例如交換機、路由器、個人計算機、服務器、網(wǎng)絡器件或任意其他網(wǎng)絡設備。諸如服務器的網(wǎng)絡節(jié)點可以用根據(jù)各種格式而創(chuàng)建的文件的形式來存儲信息,例如超文本置標語言(HTML)文件、可擴展置標語言(XML)文件等等。文件也可稱為“頁面”(page)或“網(wǎng)頁”(webpage)。如果用戶希望得到某個文件,則該用戶可以使用多種網(wǎng)絡協(xié)議來請求訪問該文件。協(xié)議可以是一個預定的過程,通過該過程在網(wǎng)絡節(jié)點之間交換信息。
由于某些應用的高性能需求,可能需要實現(xiàn)這樣一種技術,其確保用戶可以非常可信而又具有很小延遲地訪問所期望的文件。為了實現(xiàn)這一目標,相同的文件可以存儲在多個不同的服務器上。無論何時用戶發(fā)送了訪問存儲在服務器上的文件的請求,該請求都可由網(wǎng)絡訪問設備截獲,例如“負載平衡器”或“網(wǎng)絡交換機”(web switch)。該網(wǎng)絡訪問設備可操作來協(xié)調并控制怎樣存儲和訪問信息,以最優(yōu)化整體網(wǎng)絡性能。優(yōu)化的性能例如可以實現(xiàn)為對服務器上所存儲信息的較少訪問時間。由于對較少的訪問時間的越來越強烈的需求,可以認識到,存在對這些技術的強烈的需求,即通過網(wǎng)絡從服務器更快地獲取信息。
在本說明書的結論部分具體地指出并清楚地要求了被視為本發(fā)明的實施例的主題物。然而,通過結合附圖參考下述詳細的描述,可最佳地理解本發(fā)明的實施例(包括其組織和操作方法)及其目的、特征和優(yōu)點,其中圖1是適于實施本發(fā)明的一個實施例的系統(tǒng);
圖2是根據(jù)本發(fā)明一個實施例的訪問設備的框圖;圖3是由根據(jù)本發(fā)明一個實施例的信息管理組件執(zhí)行的程序設計邏輯的方框流程圖;以及圖4圖示了根據(jù)本發(fā)明一個實施例的消息流。
具體實施例方式
在下面的詳細描述中,給出了大量具體細節(jié),以提供對本發(fā)明的實施例的透徹理解。然而,本領域內的技術人員應該理解到,沒有這些具體細節(jié)也可實施本發(fā)明的實施例。在其他情形下,未詳細示出公知方法、過程、組件和電路,以免混淆本發(fā)明的實施例。
本發(fā)明的一個實施例可以提高從服務器獲取信息的速度。服務器可連接到訪問設備,例如負載平衡器、網(wǎng)絡交換機、虛擬專用網(wǎng)網(wǎng)關等等。該訪問設備可管理怎樣存儲信息以及怎樣從服務器獲取信息。例如,負載平衡器可操作用來使得多個服務器對于那些訪問所述服務器陣列的用戶而言,看起來像是單個非常強大的網(wǎng)絡資源。它通過下述方式來實現(xiàn)這一目標,即根據(jù)諸如服務器的運行健康狀況、查詢的屬性等因素來以一種均衡的方式將連接轉發(fā)給排列在它之后的許多服務器。負載平衡器可通過下述方式來檢查服務器的運行健康狀況用人工客戶端來測試服務器,或者向它發(fā)送一系列腳本并查看響應,其中所述腳本可訪問一些關鍵頁面。
用戶一般可使用位于客戶計算機例如個人計算機(PC)上的瀏覽器來嘗試訪問服務器上的信息。所述信息可包括例如網(wǎng)頁。用戶可通過輸入該網(wǎng)頁的信息標識符來啟動所述動作。信息標識符的示例可以是統(tǒng)一資源定位符(URL)。然后,使用傳統(tǒng)的網(wǎng)絡協(xié)議,瀏覽器可以使用URL來嘗試建立客戶計算機和其中存儲有網(wǎng)頁的服務器之間的連接。這種協(xié)議的示例可包括超文本傳輸協(xié)議(HTTP)1.1版,如在因特網(wǎng)工程工作組(IETF)1999年6月的草案標準RFC 2616中所定義的那樣,并可從“www.ietf.org”獲得(“HTTP規(guī)范”),盡管本發(fā)明的實施例并不局限在這一上下文中。
網(wǎng)絡訪問設備例如負載平衡器可代表服務器來截獲并處理所述連接請求。如果所請求的網(wǎng)頁駐留在網(wǎng)絡中一個以上的服務器中,則負載平衡器可基于各種參數(shù)例如上面討論的那些參數(shù)來選擇特定的服務器。然后,負載平衡器嘗試與所選擇的服務器建立連接。與合適的服務器建立連接后,服務器可向負載平衡器發(fā)送所請求的網(wǎng)頁。負載平衡器然后可將該網(wǎng)頁發(fā)送到客戶計算機,在其處瀏覽器可為用戶顯示該網(wǎng)頁。
如果在訪問網(wǎng)頁時出現(xiàn)嚴重的延遲,則可能會產(chǎn)生問題。用戶可能變得不耐煩并取消了請求,并且在之后立即遞交了另一個請求以獲得同一個網(wǎng)頁。所述取消可能導致客戶計算機和負載平衡器之間的連接以及負載平衡器和服務器之間的連接的終止。用戶遞交其他的請求后,在獲取所請求的信息之前必須重新建立兩個連接。這可能導致網(wǎng)絡資源的低效率的使用。
為了避免這一問題和其它潛在的問題,盡管取消了客戶計算機和負載平衡器之間的連接,但一個實施例中的用戶仍然保持了負載平衡器和服務器之間的連接。負載平衡器接收到所請求的信息之后,可將所請求的信息連同客戶計算機的源地址和所述信息的信息地址(例如URL)存儲在信息表中。如果客戶計算機嘗試建立新的連接以請求相同信息,則負載平衡器可以從信息表中獲取所述信息,并將它發(fā)送到客戶計算機,而無需向服務器打開(open)新的連接。
本發(fā)明的這一實施例提供了幾個優(yōu)點。例如,本發(fā)明的這一實施例避免了重建負載平衡器和服務器之間的連接所引起的延遲。負載平衡器還可以避免以下操作,即不得不經(jīng)歷選擇過程以從一組服務器或服務器集群中選擇特定服務器。另外,服務器將不需要兩次獲取所述信息,從而釋放了資源以用于其他方面。
值得注意的是,在本說明書中,對“一個實施例”或“實施例”的引用意味著與該實施例相聯(lián)系而描述的某項特征、結構或特性至少包括在本發(fā)明的一個實施例中。短語“在一個實施例中”在說明書不同位置的出現(xiàn)未必指同一個實施例。
現(xiàn)在詳細地參考附圖,其中相似的部件通篇都用相似的標號表示,圖1圖示了適于實現(xiàn)本發(fā)明一個實施例的系統(tǒng)。圖1是網(wǎng)絡100的框圖。網(wǎng)絡100可包括客戶計算機102、網(wǎng)絡104、訪問設備106和服務器108。在本發(fā)明的一個實施例中,服務器108例如可以是通過網(wǎng)絡而連接到一起的服務器陣列的一部分。
圖2是根據(jù)本發(fā)明一個實施例的系統(tǒng)的框圖。圖2圖示了系統(tǒng)200,其表示訪問設備,例如訪問設備106。如圖2所示,系統(tǒng)200可包括處理器202、輸入/輸出(I/O)適配器204、操作員接口206、存儲器210和磁盤存儲設備218。存儲器210可存儲計算機程序指令和數(shù)據(jù)。術語“計算機指令”可以包括計算機代碼段,其包含來自預定計算機語言的字、值和符號,當所述代碼段根據(jù)預定方式或語法而組合放置時,可使得處理器執(zhí)行特定功能。計算機語言的示例可包括C、C++和匯編語言。處理器202執(zhí)行存儲在存儲器210中的程序指令并處理其中的數(shù)據(jù)。磁盤存儲設備218存儲將要傳輸?shù)酱鎯ζ?10以及從其處傳輸過來的數(shù)據(jù)。通過連接224,I/O適配器204與其他設備進行通信,并將數(shù)據(jù)傳入以及傳出計算機系統(tǒng)。其他設備的示例可包括麥克風或顯示器,例如分別是麥克風106和顯示器102。通過接收命令并提供狀態(tài)信息,操作員接口206可與系統(tǒng)操作員相接口。所有這些元件都通過總線208互連,總線208使得數(shù)據(jù)可在各個元件之間相互發(fā)送。
處理器202可以是能夠提供本發(fā)明實施例所需求的速度和功能的任何類型的處理器。例如,處理器202可以是來自英特爾公司、摩托羅拉公司、太陽微系統(tǒng)公司、康柏計算機公司和其他公司制造的處理器系列的處理器。處理器202還可包括數(shù)字信號處理器(DSP)和伴隨體系結構,例如來自德克薩斯儀器公司的DSP。
在本發(fā)明的一個實施例中,存儲器210和磁盤存儲設備218可包括機器可讀介質,并且可包括能夠存儲可由處理器執(zhí)行的指令的任何介質。這種介質的一些示例包括但不局限于只讀存儲器(ROM)、隨機訪問存儲器(RAM)、可編程ROM、可擦除可編程ROM、電可擦除可編程ROM、動態(tài)RAM、磁盤(例如軟盤和硬盤)、光盤(例如CD-ROM)以及可存儲數(shù)字信息的任何其他介質。在本發(fā)明的一個實施例中,以壓縮和/或加密格式將指令存儲在介質上。如在此所使用的,短語“可由處理器執(zhí)行”意味著包含(encompass)以壓縮和/或加密格式存儲的指令以及在由處理器執(zhí)行之前需要由安裝程序編譯或安裝的指令。而且,客戶端200可以包含通過各種I/O控制器而實現(xiàn)的多個機器可讀存儲設備的各種組合,所述存儲設備可由處理器202訪問,并且能夠存儲計算機程序指令和數(shù)據(jù)的組合。
存儲器210可由處理器202通過總線208訪問,并包括操作系統(tǒng)216、程序分區(qū)212和數(shù)據(jù)分區(qū)214。在本發(fā)明的一個實施例中,操作系統(tǒng)216可包括由微軟公司出售的操作系統(tǒng),例如Microsoft Windows95、98、2000和NT。程序分區(qū)212存儲實現(xiàn)了在此描述的各系統(tǒng)的功能的程序指令,并允許處理器202來執(zhí)行。數(shù)據(jù)分區(qū)214可由處理器202訪問,并存儲在程序指令執(zhí)行期間所使用的數(shù)據(jù)。
在本發(fā)明的一個實施例中,程序分區(qū)212包含可在此統(tǒng)稱為信息管理組件的程序指令。盡管本發(fā)明的這一實施例使用了一個組件,但是可以認識到,這一組件執(zhí)行的功能可以與其他組件相結合,或者分解到附加的組件中,而仍然落在本發(fā)明的范圍內。
I/O適配器204可包括網(wǎng)絡適配器或網(wǎng)絡接口卡(NIC),其被配置成與任何合適的技術一同來使用,以使用例如所期望的一組通信協(xié)議、業(yè)務和操作過程來控制計算機或網(wǎng)絡設備之間的通信信號。在本發(fā)明的一個實施例中,I/O適配器204例如可根據(jù)傳輸控制協(xié)議(TCP)和因特網(wǎng)協(xié)議(IP)來操作,如分別在1981年9月采用的IETF標準7 RFC 793和1981年9月采用的IETF標準5 RFC 791中定義的那樣,二者都可從“www.ietf.org”處獲得,盡管本發(fā)明的實施例并不局限于這一上下文。I/O適配器204還包括用于將I/O適配器204與合適的通信介質相連接的合適的連接器。I/O適配器204可通過任意合適的介質來接收通信信號,所述介質例如是銅線、雙絞線、同軸電纜、光纖、無線電頻率等等。
下面將參考圖3及其附屬示例來進一步描述系統(tǒng)100和系統(tǒng)200的操作。盡管在此提供的圖3可包括特定處理邏輯,但是應該認識到該處理邏輯僅僅提供了可以怎樣實現(xiàn)在此描述的通用功能的一個示例。而且,給定的處理邏輯中的每一個操作都不必以給出的順序來執(zhí)行,除非另有說明。
圖3是由根據(jù)本發(fā)明一個實施例的信息管理組件執(zhí)行的程序設計邏輯的方框流程圖。如圖3所示,在方框302,通過第一連接接收獲得信息的第一請求。獲得信息的第一請求例如可以是使用根據(jù)HTTP規(guī)范的HTTP“Get”命令的獲得網(wǎng)頁的請求。第一連接例如可以是在客戶計算機和訪問設備例如訪問設備106之間的連接。在方框304,可通過第二連接獲取信息。第二連接例如可以是訪問設備和包含所請求信息的服務器例如服務器108之間的連接。在方框306,訪問設備可檢測到第一連接已終止。第一連接可由于各種原因而終止,例如用戶主動地通過從客戶計算機處的瀏覽器發(fā)送的取消或刷新請求、客戶計算機和訪問設備之間的物理或邏輯連接的斷開等等。在方框308,訪問設備可通過第三連接接收獲得信息的第二請求。第三連接例如可包括客戶計算機和訪問設備之間用于取代已終止的第一連接的新連接。在方框310,訪問設備可確定第二請求是否與第一請求相匹配。在方框312,根據(jù)方框310處的確定,訪問設備可通過第三連接而發(fā)送所述信息。
在方框304處獲取信息之后,訪問設備可將所述信息存儲在存儲器中,例如存儲器210或磁盤存儲設備218。在本發(fā)明的一個實施例中,第一請求可包括第一源地址和第一信息地址。訪問設備可將第一源地址、第一信息地址和所述信息存儲在信息表中。訪問設備可在方框308處接收第二請求。第二請求可包含第二源地址和第二信息地址。訪問設備可搜索信息表,以確定第二源地址和第一源地址是否匹配,以及確定第一信息地址與第二信息地址是否匹配。如果二者都匹配,則訪問設備可獲取對應于第一源地址和第一信息地址的信息,并將所述信息通過第三連接發(fā)送到客戶計算機。
在本發(fā)明的一個實施例中,源地址可包括IP地址,信息地址可包括URL,而所述信息可包括網(wǎng)頁,例如HTML或XML文件。然而可以理解,源地址、信息地址和信息可以是根據(jù)一組所期望協(xié)議的其它格式,而仍落在本發(fā)明的范圍之內。
客戶計算機接收所請求的信息之后,客戶計算機可發(fā)送請求以終止客戶計算機和訪問設備之間的第三連接。訪問設備然后可根據(jù)所使用的特定協(xié)議來終止訪問設備和服務器之間的第二連接以及第三連接。
圖4圖示了根據(jù)本發(fā)明一個實施例的消息流。如圖4所示,在客戶計算機和訪問設備之間以及訪問設備和服務器之間建立了TCP會話。訪問設備例如可以是網(wǎng)絡交換機。網(wǎng)絡交換機可類似于負載平衡器而操作。
在第一段中,在客戶計算機和網(wǎng)絡交換機之間建立TCP會話。在消息流的這一示例中,網(wǎng)絡交換機和服務器之間還沒有建立TCP連接。在第一段期間,客戶計算機可發(fā)送所期望的網(wǎng)頁的URL。
訪問設備已接收并存儲所請求的URL之后,網(wǎng)絡交換機可進入第二段。第二段例如可包括選擇具有所請求網(wǎng)頁的服務器。網(wǎng)絡交換機可向所選擇的服務器建立TCP連接,并將URL請求通過所打開的連接而傳遞給該服務器。
在第三段中,在從服務器接收所請求的信息之前,終止從客戶計算機到網(wǎng)絡交換機的TCP連接。然而,網(wǎng)絡交換機將到服務器的TCP連接保持為打開的,以接收所請求的信息。
在第四段中,在客戶計算機和網(wǎng)絡交換機之間建立新的TCP會話??蛻粲嬎銠C發(fā)送獲得URL的請求。由于網(wǎng)絡交換機和服務器之間的TCP連接仍然是打開的,因此不在網(wǎng)絡交換機和服務器之間打開新的TCP連接。
在第五段中,網(wǎng)絡交換機檢查它的信息表,以確定是否已存在該源IP地址指向所述服務器的未完結的URL請求。如果存在所述URL請求,則將先前的URL請求與新的URL請求相銜接。結果,網(wǎng)絡交換機可避免下述操作選擇服務器,打開新連接,以及將新的URL請求發(fā)送到所選擇的服務器。
在第六段中,網(wǎng)絡交換機可接收與先前的URL請求相關聯(lián)的網(wǎng)頁。網(wǎng)絡交換機可執(zhí)行一個驗證過程,以確保所接收的網(wǎng)頁與在新的URL請求中所請求的網(wǎng)頁相同、網(wǎng)頁是最新的等等。如果所述網(wǎng)頁是有效的,則網(wǎng)絡交換機將該網(wǎng)頁發(fā)送到客戶計算機。如果所述網(wǎng)頁是無效的,則可以選擇一個新的服務器,向該服務器打開連接,并將新的URL請求發(fā)送到所選擇的服務器。
在第七段中,網(wǎng)絡交換機可以接收終止客戶計算機和網(wǎng)絡交換機之間連接的請求。它接收這一請求后,網(wǎng)絡交換機可以終止網(wǎng)絡交換機和服務器之間打開的連接。
網(wǎng)絡交換機已將網(wǎng)頁發(fā)送到客戶計算機之后,網(wǎng)絡交換機可從信息表中刪除該網(wǎng)頁和對應的條目。或者,網(wǎng)絡交換機例如可類似于緩存器件那樣保持所述信息,并在一段時間過去后刪除它。在這一示例中,網(wǎng)絡交換機可將一個老化定時器(aging timer)與所述源地址、URL和信息相關聯(lián),并且周期性地或以預定的時間間隔刪除特定條目。這可以實現(xiàn)來避免超過存儲器閾值,也可避免保持無效信息。在本發(fā)明的一個實施例中,網(wǎng)絡交換機可以使用先進先出(FIFO)的思想,其中,如果達到了存儲器的最大使用率,則可刪除最早存儲的信息。
在本發(fā)明的一個實施例中,服務器可能不使用源IP地址來發(fā)送所請求的信息。例如,在使用自然地址翻譯(NAT)技術的網(wǎng)絡中可能會發(fā)生這一情形。在本發(fā)明的這一實施例中,網(wǎng)絡交換機可能不需要將源IP地址和URL一起存儲在它的信息表中。
雖然已如在此所描述的那樣說明了本發(fā)明的實施例的某些特征,但是,對本領域內的技術人員來說可做出許多修正、替換、改變和等同。因此應理解到,所附權利要求應覆蓋所有這種落在本發(fā)明實施例的真正精神之內的修正和改變。
權利要求
1.一種獲取信息的方法,包括通過第一連接接收獲得信息的第一請求;通過第二連接獲取所述信息;檢測到所述第一連接被終止;通過第三連接接收獲得所述信息的第二請求;確定所述第二請求是否與所述第一請求相匹配;以及根據(jù)所述確定,通過所述第三連接發(fā)送所述信息。
2.如權利要求1所述的方法,其中,所述第一請求包括第一源地址和第一信息地址,所述方法還包括,在接收所述第二請求之前,將所述信息與所述第一源地址和所述第一信息地址一起存儲在信息表中。
3.如權利要求2所述的方法,其中,所述第二請求包括第二源地址和第二信息地址,并且所述確定包括搜索所述信息表,以確定所述第二源地址與所述第一源地址是否相匹配;以及確定所述第一信息地址與所述第二信息地址是否相匹配。
4.如權利要求3所述的方法,其中,所述源地址包括因特網(wǎng)地址,并且所述信息地址包括統(tǒng)一資源定位符。
5.如權利要求1所述的方法,其中,所述信息包括超文本置標語言文件。
6.如權利要求1所述的方法,其中,所述信息包括可擴展置標語言文件。
7.如權利要求1所述的方法,還包括接收終止所述第三連接的請求;以及終止所述第二和第三連接。
8.一種在網(wǎng)絡中獲取信息的方法,包括通過第一連接,在第二網(wǎng)絡節(jié)點處接收第一網(wǎng)絡節(jié)點獲得信息的第一請求;通過第二連接,將所述第一請求發(fā)送到第三網(wǎng)絡節(jié)點;接收所述第一連接被終止的通知;在所述第二網(wǎng)絡節(jié)點處,通過所述第二連接接收所述信息;在所述第二網(wǎng)絡節(jié)點處,通過第三連接接收獲得所述信息的第二請求;以及通過所述第三連接,將所述信息發(fā)送到所述第一網(wǎng)絡節(jié)點。
9.如權利要求8所述的方法,其中,所述第一請求包括第一源地址和第一信息地址,所述方法還包括,在接收所述第二請求之前,將所述信息與所述第一源地址和所述第一信息地址一起存儲在所述第二網(wǎng)絡節(jié)點處的信息表中。
10.如權利要求9所述的方法,其中,所述第二請求包括第二源地址和第二信息地址,并且所述發(fā)送包括搜索所述信息表,以確定所述第二源地址與所述第一源地址是否相匹配;以及確定所述第一信息地址與所述第二信息地址是否相匹配;以及根據(jù)所述確定,發(fā)送所述信息。
11.如權利要求9所述的方法,其中,所述源地址包括因特網(wǎng)地址,并且所述信息地址包括統(tǒng)一資源定位符。
12.如權利要求8所述的方法,其中,所述信息包括超文本置標語言文件。
13.如權利要求8所述的方法,其中,所述信息包括可擴展置標語言文件。
14.如權利要求8所述的方法,還包括接收終止所述第三連接的請求;以及終止所述第二和第三連接。
15.一種制品,包括存儲介質;所述存儲介質包括所存儲的指令,所述指令在由處理器執(zhí)行時導致執(zhí)行下述步驟通過第一連接接收獲得信息的第一請求,通過第二連接獲取所述信息,檢測到所述第一連接被終止,通過第三連接接收獲得所述信息的第二請求,確定所述第二請求是否與所述第一請求相匹配,以及根據(jù)所述確定,通過所述第三連接發(fā)送所述信息。
16.如權利要求15所述的制品,其中,所述第一請求包括第一源地址和第一信息地址,并且,所述所存儲的指令在由處理器執(zhí)行時還導致執(zhí)行下述步驟在接收所述第二請求之前,將所述信息與所述第一源地址和所述第一信息地址一起存儲在在信息表中。
17.如權利要求16所述的制品,其中,所述第二請求包括第二源地址和第二信息地址,并且,所述所存儲的指令在由處理器執(zhí)行時還導致執(zhí)行下述操作通過搜索所述信息表,以確定所述第二源地址與所述第一源地址是否相匹配,以及確定所述第一信息地址與所述第二信息地址是否相匹配,從而確定所述第二請求是否與所述第一請求相匹配。
18.如權利要求15所述的制品,其中,所述所存儲的指令在由處理器執(zhí)行時,還導致執(zhí)行下述操作接收終止所述第三連接的請求,以及終止所述第二和第三連接。
全文摘要
本發(fā)明公開了一種方法,盡管取消了客戶計算機和負載平衡器之間的連接,但仍保持負載平衡器和服務器之間的連接。接收到所請求的信息之后,負載平衡器可將所請求的信息與客戶計算機的源地址和所述信息的信息地址(例如URL)一起存儲在信息表中。如果客戶計算機嘗試建立請求相同信息的新連接,則負載平衡器可從信息表中獲取所述信息,并將它發(fā)送到客戶計算機,而無需打開到服務器的新連接。
文檔編號H04L29/08GK1631018SQ02814204
公開日2005年6月22日 申請日期2002年5月23日 優(yōu)先權日2001年6月7日
發(fā)明者亞歷克斯·阿格霍爾姆, 凱爾·邁克爾·詹森 申請人:英特爾公司