專利名稱:將虛擬統(tǒng)一資源定位器用于加載均衡的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及計(jì)算機(jī)網(wǎng)絡(luò)中的信息檢索。更具體地,本發(fā)明涉及用于在每個(gè)對(duì)話而不是在每個(gè)連接的基礎(chǔ)上對(duì)一組服務(wù)器的HTTP請(qǐng)求進(jìn)行均衡的方法和系統(tǒng)。
萬(wàn)維網(wǎng)是因特網(wǎng)的多媒體信息檢索系統(tǒng)。在網(wǎng)絡(luò)環(huán)境中,客戶機(jī)采用超文本傳輸協(xié)議(HTTP)與網(wǎng)絡(luò)服務(wù)器進(jìn)行事務(wù)處理,其中HTTP是一種公知的應(yīng)用協(xié)議,采用一種標(biāo)準(zhǔn)的網(wǎng)頁(yè)描述語(yǔ)言、即超文本鏈接標(biāo)示語(yǔ)言(HTML)向用戶提供對(duì)文件(例如,文本、圖形、圖像、聲音、視頻等)的訪問(wèn)。HTML提供基本文檔格式化,并允許開(kāi)發(fā)者規(guī)定到其他服務(wù)器和文件的“鏈接”。在因特網(wǎng)范例中,到一個(gè)服務(wù)器的網(wǎng)絡(luò)路徑由所謂的統(tǒng)一資源定位器(URL)來(lái)識(shí)別,所述URL具有一個(gè)定義網(wǎng)絡(luò)連接的專門(mén)語(yǔ)法。HTML可兼容瀏覽器(例如,Netscape Navigator或MicrosoftInternet Explorer)在客戶機(jī)的使用,涉及通過(guò)URL進(jìn)行的鏈接說(shuō)明。作為響應(yīng),客戶機(jī)作出對(duì)在鏈接中識(shí)別出的服務(wù)器的請(qǐng)求,隨即接收根據(jù)HTML格式化的文檔或其他對(duì)象。在網(wǎng)絡(luò)服務(wù)器上支持的文檔集合有時(shí)被稱為網(wǎng)站(web site)。
在許多流行的網(wǎng)站,容量需求遠(yuǎn)大于一個(gè)服務(wù)器所能夠提供的容量。因此,映射一個(gè)網(wǎng)站并合并一個(gè)加載均衡例程以便在一池(pool)服務(wù)器上分布連接請(qǐng)求是本領(lǐng)域所公知的。一般地,這種加載均衡是以循環(huán)方式實(shí)現(xiàn)的。每個(gè)服務(wù)器最好包括相同的數(shù)據(jù),這樣則任何請(qǐng)求都可以由該池中的多個(gè)服務(wù)器中的任何一個(gè)來(lái)處理。這以均勻的方式分布加載。
雖然這種已知的加載均衡方案有利,但特定類型的網(wǎng)絡(luò)服務(wù)器事務(wù)處理不能有助于這種方式的加載均衡。于是,例如假設(shè)網(wǎng)站是一個(gè)金融機(jī)構(gòu)或銀行。一般地,用戶訪問(wèn)這樣一個(gè)網(wǎng)站來(lái)進(jìn)行一組一個(gè)或多個(gè)交易、例如帳戶余額查詢、資金在一組帳戶對(duì)之間的傳輸?shù)?。?dāng)為加載均衡目的而映射這種類型的網(wǎng)站時(shí),則用戶的HTTP請(qǐng)求有可能會(huì)由服務(wù)器池中的不同服務(wù)器來(lái)進(jìn)行服務(wù)。這是不希望的,并且可能強(qiáng)迫用戶不得不重復(fù)地進(jìn)行登錄,以便完成所要求的所有交易。在提供電子商業(yè)交易的鏡像站點(diǎn)中也會(huì)遇到類似的問(wèn)題。
這個(gè)問(wèn)題的出現(xiàn)是因?yàn)楝F(xiàn)有技術(shù)中的加載均衡技術(shù)是在每個(gè)連接的基礎(chǔ)上實(shí)現(xiàn)的。因此,如果一個(gè)處理HTTP請(qǐng)求的給定服務(wù)器由于過(guò)多的連接而突然變得過(guò)載,則加載均衡例程自動(dòng)將下一個(gè)連接請(qǐng)求發(fā)送給池中的另一個(gè)服務(wù)器,即使該請(qǐng)求來(lái)自于同一個(gè)客戶機(jī)也是如此。
本發(fā)明解決了這個(gè)問(wèn)題。
本發(fā)明的一個(gè)主要目的是提供一種在每個(gè)對(duì)話基礎(chǔ)上在一組服務(wù)器中合理地分布客戶請(qǐng)求的方法。在該組中的一給定服務(wù)器最好被分配一給定數(shù)目的對(duì)話,而不是分配給定數(shù)目的連接,因此,用戶的HTTP連接請(qǐng)求在整個(gè)對(duì)話期中最好由該組中的同一服務(wù)器進(jìn)行服務(wù)。
本發(fā)明的另一個(gè)主要目的是在一組服務(wù)器中實(shí)施一個(gè)加載均衡例程,其中,來(lái)自客戶機(jī)的給定的連接請(qǐng)求由該組中的同一服務(wù)器進(jìn)行服務(wù)。
本發(fā)明的又一個(gè)目的是采用定義一個(gè)用戶對(duì)話的所謂的虛擬URL來(lái)管理來(lái)自客戶機(jī)的HTTP連接請(qǐng)求。然后通知該客戶機(jī)已經(jīng)將所請(qǐng)求的URL移到一個(gè)特定服務(wù)器上。
本發(fā)明的又一個(gè)目的是在對(duì)話的基礎(chǔ)上對(duì)一池服務(wù)器均衡其連接請(qǐng)求,使每個(gè)服務(wù)器具有預(yù)定數(shù)目的、可以對(duì)在該服務(wù)器上支持的文檔獲得訪問(wèn)的用戶。
本發(fā)明的另一個(gè)目的是在一個(gè)對(duì)話期間將來(lái)自一給定客戶機(jī)的用戶的HTTP連接請(qǐng)求,重新定向到一個(gè)特定的服務(wù)器。
在用于對(duì)由一給定URL識(shí)別的一池服務(wù)器管理其連接請(qǐng)求的方法、計(jì)算機(jī)程序產(chǎn)品和服務(wù)器方面,提供了本發(fā)明的這些和其他目的。在一個(gè)實(shí)施例中,該方法開(kāi)始于對(duì)來(lái)自一給定客戶機(jī)的連接請(qǐng)求進(jìn)行響應(yīng),啟動(dòng)一個(gè)用戶對(duì)話。響應(yīng)該請(qǐng)求,該方法將一個(gè)對(duì)話標(biāo)識(shí)符與池中的一給定服務(wù)器聯(lián)系起來(lái)。然后用該對(duì)話標(biāo)識(shí)符產(chǎn)生一個(gè)“虛擬”URL,該“虛擬”URL將連接請(qǐng)求改發(fā)(redirect)到所給定的服務(wù)器。此后,在該用戶對(duì)話期間從所給定客戶機(jī)發(fā)出的任何另外的連接請(qǐng)求都被改發(fā)到給定服務(wù)器,以便將所有內(nèi)容從同一位置提供給客戶。當(dāng)用戶對(duì)話結(jié)束時(shí),虛擬URL失效,將給定服務(wù)器返回池中,以便可以將其分配給一個(gè)要進(jìn)行管理的新的用戶對(duì)話。
因此,依據(jù)本發(fā)明,用于對(duì)一池服務(wù)器管理其連接請(qǐng)求的方法,響應(yīng)于來(lái)自啟動(dòng)用戶對(duì)話的客戶機(jī)的連接請(qǐng)求,將來(lái)自客戶機(jī)的每個(gè)用戶對(duì)話與池中的一給定服務(wù)器聯(lián)系起來(lái)。根據(jù)加載均衡協(xié)議將用戶對(duì)話與池中的服務(wù)器聯(lián)系起來(lái)。在每個(gè)用戶對(duì)話期間,則將來(lái)自一給定客戶機(jī)的任何另外的連接請(qǐng)求改發(fā)到正在管理著該對(duì)話的服務(wù)器。通過(guò)產(chǎn)生一個(gè)包括唯一的對(duì)話標(biāo)識(shí)符的虛擬URL,將用戶對(duì)話與一給定服務(wù)器聯(lián)系起來(lái),然后將該標(biāo)識(shí)符與從服務(wù)器返回的所有數(shù)據(jù)一起提供給客戶機(jī)。在完成用戶對(duì)話之后,虛擬URL失效。
本發(fā)明還描述了一種用于在由一給定URL識(shí)別的網(wǎng)站管理一池服務(wù)器的服務(wù)器。該服務(wù)器包括處理器、操作系統(tǒng)、加載均衡例程以及用于管理到該網(wǎng)站的HTTP連接請(qǐng)求的改發(fā)例程。改發(fā)例程是在服務(wù)器中運(yùn)行的前端過(guò)程,包括對(duì)來(lái)自啟動(dòng)用戶對(duì)話的客戶機(jī)的連接請(qǐng)求進(jìn)行響應(yīng)、將來(lái)自客戶機(jī)的每個(gè)用戶對(duì)話通過(guò)一個(gè)唯一的對(duì)話標(biāo)識(shí)符與一給定服務(wù)器聯(lián)系起來(lái)的裝置。在每個(gè)對(duì)話期間,將來(lái)自客戶機(jī)的對(duì)給定URL的連接請(qǐng)求改發(fā)到給定服務(wù)器。
上述說(shuō)明已經(jīng)概述了本發(fā)明的一些更相關(guān)的目的和特征。這些目的僅僅顯示了本發(fā)明的一些更相關(guān)的特征和應(yīng)用。以不同方式應(yīng)用所公開(kāi)的發(fā)明或者如下所述地修改發(fā)明可以獲得許多其他有益的結(jié)果。因此,通過(guò)參考下面對(duì)最佳實(shí)施例的詳細(xì)說(shuō)明,可以得出本發(fā)明的其他目的和更全面的理解。
為了更全面地理解本發(fā)明及其優(yōu)點(diǎn),下面應(yīng)當(dāng)參考結(jié)合附圖進(jìn)行的詳細(xì)說(shuō)明,其中
圖1是實(shí)施本發(fā)明的典型系統(tǒng);圖2是顯示與來(lái)自網(wǎng)絡(luò)客戶的對(duì)圖1所示網(wǎng)絡(luò)服務(wù)器的HTTP請(qǐng)求相聯(lián)系的常規(guī)處理的流程圖;圖3是連接到包括一個(gè)服務(wù)器池的網(wǎng)站的客戶機(jī)的方框圖;圖4是顯示改發(fā)例程的發(fā)明功能的狀態(tài)圖;以及圖5是顯示改發(fā)例程的功能的流程圖。
已知的因特網(wǎng)客戶機(jī)-服務(wù)器系統(tǒng)如圖1所示。客戶機(jī)10通過(guò)網(wǎng)絡(luò)14與網(wǎng)絡(luò)服務(wù)器12相連。出于例示的目的,網(wǎng)絡(luò)14是因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)或其他任何已知網(wǎng)絡(luò)。網(wǎng)絡(luò)服務(wù)器12是客戶機(jī)可訪問(wèn)的多個(gè)服務(wù)器中的一個(gè),其中一個(gè)客戶機(jī)顯示為10。典型的客戶機(jī)包括瀏覽器16,瀏覽器16是已知的用于訪問(wèn)網(wǎng)絡(luò)的服務(wù)器的軟件工具。網(wǎng)絡(luò)服務(wù)器支持超文本文檔和對(duì)象形式的文件(被共同稱為一個(gè)“網(wǎng)”站)。在因特網(wǎng)示范中,到服務(wù)器的網(wǎng)絡(luò)路徑是由所謂的統(tǒng)一資源定位器(URL)識(shí)別的。
一個(gè)典型的網(wǎng)絡(luò)服務(wù)器12是包括基于RISC的處理器18、AIX操作系統(tǒng)20和網(wǎng)絡(luò)服務(wù)器程序22的IBM Netfinity服務(wù)器,例如Netscape Enterprise服務(wù)器。服務(wù)器12還包括支持用于管理和經(jīng)營(yíng)的圖形用戶界面(GUI)的顯示器24、以及應(yīng)用程序設(shè)計(jì)界面(API)23,其中API 23提供擴(kuò)展以使得應(yīng)用開(kāi)發(fā)者能夠通過(guò)軟件程序而擴(kuò)展和/或定制其核心功能,其中軟件程序包括公共網(wǎng)關(guān)接口(CGI)程序、插件程序、小服務(wù)程序(servlet)、活動(dòng)服務(wù)器頁(yè)、服務(wù)器方包括(SSI)(server side include)功能等。
一個(gè)典型的網(wǎng)絡(luò)客戶機(jī)是一臺(tái)基于x-86、PowerPC或RISC的個(gè)人計(jì)算機(jī),包括諸如IBM、OS/2或Microsoft Windows 95的操作系統(tǒng),還包括一個(gè)網(wǎng)絡(luò)瀏覽器、例如Netscape Navigator 4.0(或更高版本),它具有Java虛擬機(jī)(JVM)并支持應(yīng)用插件程序或助手應(yīng)用程序。
網(wǎng)絡(luò)服務(wù)器接受一個(gè)客戶機(jī)請(qǐng)求,并返回一個(gè)響應(yīng)。服務(wù)器程序22的操作由多個(gè)服務(wù)器應(yīng)用功能(SAF)來(lái)管理,每個(gè)SAF被構(gòu)造為執(zhí)行一個(gè)序列的特定步驟。如圖2中的背景所示,該序列開(kāi)始于授權(quán)翻譯(AuthTrans)30,在授權(quán)翻譯期間,服務(wù)器將由客戶機(jī)發(fā)送的任何授權(quán)信息翻譯成一個(gè)用戶和一個(gè)組。如果需要,AuthTrans步驟可以對(duì)一個(gè)消息譯碼,以獲得實(shí)際的客戶機(jī)請(qǐng)求。在步驟32、即姓名翻譯(NameTrans)步驟,與該請(qǐng)求相聯(lián)系的URL可以保持不被觸動(dòng),或者可以將其翻譯成一個(gè)依賴于系統(tǒng)的文件名、改發(fā)URL或鏡像網(wǎng)站URL。在步驟34、即路徑檢查(PathCheck)步驟,服務(wù)器在所得到的路徑上執(zhí)行各種測(cè)試,以確保所給定客戶機(jī)可以檢索該文檔。在有時(shí)被稱為對(duì)象類型(ObjectType)的步驟36,識(shí)別出給定文檔的MIME(多用途網(wǎng)際郵件擴(kuò)展)類型信息(例如,文本/html,圖像/gif,等等)。在步驟38、即服務(wù)(Service)步驟,網(wǎng)絡(luò)服務(wù)器例程選擇一個(gè)內(nèi)部服務(wù)器功能將結(jié)果發(fā)送回客戶機(jī)。這個(gè)功能可以運(yùn)行正常的服務(wù)器服務(wù)例程(來(lái)返回一個(gè)文件)、一些其他的服務(wù)器功能(例如返回一個(gè)常規(guī)文檔的程序)或一個(gè)CGI程序。在步驟40、即增加記錄(AddLog)步驟,記錄關(guān)于事務(wù)處理的信息。
圖3是顯示實(shí)施本發(fā)明的環(huán)境的方框圖。在這個(gè)例示中,客戶機(jī)42向一個(gè)網(wǎng)站發(fā)出HTTP請(qǐng)求,該網(wǎng)站包括管理服務(wù)器44和由該管理服務(wù)器管理的一組鏡像服務(wù)器46a-46n。管理服務(wù)器44可以包含鏡像服務(wù)器中的一個(gè)。管理服務(wù)器44包括一個(gè)加載均衡例程48,用于跟蹤每個(gè)鏡像服務(wù)器上的加載,并根據(jù)一個(gè)加載均衡算法將服務(wù)請(qǐng)求指向服務(wù)器。依據(jù)本發(fā)明,管理服務(wù)器還包括一個(gè)提供本發(fā)明的增強(qiáng)功能性的改發(fā)器例程50。
下面將要看到,改發(fā)器例程50充當(dāng)一個(gè)前端過(guò)程,用于對(duì)客戶請(qǐng)求進(jìn)行語(yǔ)法分析,并確定一給定請(qǐng)求是否表示一個(gè)“對(duì)話”的開(kāi)始或結(jié)束。如同這里所使用的,一個(gè)對(duì)話表示在一給定用戶(在客戶機(jī))與網(wǎng)站之間的一組無(wú)連接事務(wù)處理。例如,如果管理服務(wù)器是一個(gè)銀行網(wǎng)站,則對(duì)話涉及從用戶對(duì)服務(wù)器的一組查詢,以及從服務(wù)器提供的響應(yīng)。在這個(gè)例子中,用戶聯(lián)接主機(jī),并被認(rèn)可為被授權(quán)訪問(wèn)給定信息(例如,銀行帳戶余額)。依據(jù)本發(fā)明,在一給定“對(duì)話”期間,改發(fā)器使來(lái)自客戶機(jī)的到站點(diǎn)的所有請(qǐng)求,和傳送到客戶機(jī)的所有信息能夠提供給和提供自同一服務(wù)器。本領(lǐng)域普通技術(shù)人員因此將會(huì)理解,這使得加載是在每個(gè)對(duì)話的基礎(chǔ)上被均衡,而不是象在現(xiàn)有技術(shù)中的在每個(gè)連接的基礎(chǔ)上被均衡。
下面參考圖4的狀態(tài)圖以及圖5的流程圖說(shuō)明這個(gè)操作。在狀態(tài)圖中將順序步驟進(jìn)行了標(biāo)號(hào)。該例程開(kāi)始于步驟52,客戶提出一個(gè)請(qǐng)求來(lái)啟動(dòng)一個(gè)對(duì)話。這一般是一個(gè)登錄請(qǐng)求,例如可以通過(guò)使用戶訪問(wèn)網(wǎng)站(通過(guò)其URL)來(lái)進(jìn)行,然后將信息輸入一個(gè)基于CGI的表單。這是因特網(wǎng)上的常規(guī)登錄事務(wù)處理。返回流程圖,在步驟52,客戶機(jī)因此向管理服務(wù)器發(fā)出一個(gè)HTTP請(qǐng)求(例如,http//www.bank.com//login.html)。在步驟54,改發(fā)器截取該請(qǐng)求,并認(rèn)可該用戶已經(jīng)請(qǐng)求啟動(dòng)一個(gè)對(duì)話。在用戶標(biāo)識(shí)和口令的輸入和確認(rèn)(可選)之后,例程繼續(xù)到步驟56,在此,改發(fā)器查詢加載均衡例程,以確定該組中的哪一個(gè)服務(wù)器將服務(wù)該對(duì)話。這個(gè)測(cè)試的輸出取決于所實(shí)施的特定的加載均衡算法。如上所述,本發(fā)明使HTTP連接請(qǐng)求,和相關(guān)的服務(wù)器的響應(yīng),能夠在整個(gè)對(duì)話期間通過(guò)該組中的一個(gè)服務(wù)器進(jìn)行管理。
在步驟58,改發(fā)器將一個(gè)對(duì)話標(biāo)識(shí)符與該對(duì)話聯(lián)系起來(lái),然后通知已經(jīng)被選定管理該對(duì)話標(biāo)識(shí)符的對(duì)話的服務(wù)器(在這個(gè)例子中是服務(wù)器S4)。對(duì)話標(biāo)識(shí)符最好是一個(gè)唯一的標(biāo)號(hào)(例如,漸增的順序號(hào)碼)。在步驟60,服務(wù)器S4將對(duì)話標(biāo)識(shí)符記錄在一個(gè)對(duì)話表55中。服務(wù)器池中的每個(gè)服務(wù)器最好具有一個(gè)相關(guān)的對(duì)話表55,用于存儲(chǔ)由該服務(wù)器管理的對(duì)話的對(duì)話標(biāo)識(shí)符。改發(fā)器同樣包括一個(gè)適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)57,用于保存關(guān)于哪個(gè)服務(wù)器正在管理哪個(gè)對(duì)話的信息。在步驟62,改發(fā)器將一個(gè)適當(dāng)?shù)母陌l(fā)響應(yīng)(例如,“302URL已經(jīng)移動(dòng)”)返回客戶機(jī)。這個(gè)響應(yīng)還識(shí)別服務(wù)器的URL,并包括對(duì)話標(biāo)識(shí)符,例如“http//server 4 URL/sessionidentifier/login.html”。這有時(shí)被稱為“虛擬”URL。這完成了改發(fā)功能。
客戶機(jī)然后繼續(xù)進(jìn)行到步驟64,采用在步驟62從管理服務(wù)器傳送出的URL發(fā)出一個(gè)新的HTTP連接請(qǐng)求。這個(gè)改發(fā)過(guò)程一般是由瀏覽器響應(yīng)于302響應(yīng)而實(shí)現(xiàn)的自動(dòng)功能。該例程然后繼續(xù)進(jìn)行到步驟66,服務(wù)器S4提供所請(qǐng)求的數(shù)據(jù)。返回到客戶機(jī)的所有數(shù)據(jù)包含對(duì)話標(biāo)識(shí)符,用作URL基礎(chǔ)的一部分。在對(duì)話的整個(gè)剩余部分,來(lái)自該特定客戶機(jī)的所有HTTP連接請(qǐng)求通過(guò)服務(wù)器S4管理。這在流程圖的步驟68進(jìn)行了顯示。
在步驟70重復(fù)執(zhí)行測(cè)試,以確定對(duì)話是否結(jié)束。這個(gè)請(qǐng)求一般由改發(fā)器識(shí)別,因?yàn)橛脩粢呀?jīng)采取了一些產(chǎn)生一給定下網(wǎng)(logoff)請(qǐng)求的行動(dòng)。因此,例如,改發(fā)器對(duì)輸入HTML流進(jìn)行語(yǔ)法分析,并識(shí)別下列請(qǐng)求“http//server 4 URL/sessionidentifier/logoff.html”。在例程中的這一點(diǎn),即在步驟72,服務(wù)器S4從對(duì)話表55中刪去該對(duì)話標(biāo)識(shí)符,并執(zhí)行所請(qǐng)求的下網(wǎng)活動(dòng)。刪去對(duì)話標(biāo)識(shí)符有時(shí)被稱為“無(wú)效”標(biāo)識(shí)符,因?yàn)橐坏?duì)話標(biāo)識(shí)符被從表中刪除,則客戶機(jī)此時(shí)不再明確地與一直在用戶對(duì)話期間處理來(lái)自該客戶機(jī)的連接請(qǐng)求的服務(wù)器相連。
例程然后繼續(xù)進(jìn)行到步驟74,向客戶機(jī)返回一個(gè)下網(wǎng)屏幕。服務(wù)器然后通知改發(fā)器與對(duì)話標(biāo)識(shí)符相聯(lián)系的用戶已經(jīng)下網(wǎng)。在步驟76,改發(fā)器使服務(wù)器S4不再對(duì)話,從而使得該服務(wù)器可用于處理來(lái)自另一個(gè)用戶的新的對(duì)話。
因此,改發(fā)器保存由池中的每個(gè)服務(wù)器管理的對(duì)話的數(shù)目的運(yùn)行計(jì)數(shù)值,和由每個(gè)服務(wù)器管理的實(shí)際對(duì)話標(biāo)識(shí)符的標(biāo)識(shí)。在用戶完成他或她的對(duì)話時(shí),已經(jīng)管理了該對(duì)話的服務(wù)器變得可由改發(fā)器(并且因此可由加載均衡例程)使用,以便為來(lái)自另一個(gè)用戶的另一組連接請(qǐng)求進(jìn)行服務(wù)。因此,加載均衡是在每個(gè)對(duì)話的基礎(chǔ)上、而不是在每個(gè)連接的基礎(chǔ)上實(shí)現(xiàn)的。這比現(xiàn)有技術(shù)提供了顯著的進(jìn)步。
特別地,一給定用戶現(xiàn)在可以著手一組事務(wù)處理,并被確保所有這樣的事務(wù)處理都由同一服務(wù)器管理。通過(guò)實(shí)施改發(fā)功能,確保用戶在不需要重復(fù)登錄到服務(wù)器上的情況下就能夠?qū)崿F(xiàn)一組事務(wù)處理。這是非常有利的,因?yàn)槭聞?wù)處理是在無(wú)連接(即,“無(wú)狀態(tài)”)操作環(huán)境中傳送的連接請(qǐng)求。通過(guò)將虛擬URL增加到改發(fā)請(qǐng)求,目標(biāo)服務(wù)器具有對(duì)實(shí)際用戶對(duì)話計(jì)數(shù)、因而利用用戶的上限而不是連接的上限的性能。另一個(gè)益處是用戶不能在一個(gè)對(duì)話的中間對(duì)網(wǎng)頁(yè)作書(shū)簽,因?yàn)樘摂MURL是短期的(即,它只持續(xù)與對(duì)話一樣長(zhǎng)的時(shí)間)。這確保用戶不得不返回開(kāi)始的URL來(lái)開(kāi)始一個(gè)新的對(duì)話,從而防止在一特定對(duì)話的中間重新啟動(dòng)。改發(fā)器提供了一個(gè)一致的對(duì)話流。
上述功能最好以在管理服務(wù)器上運(yùn)行的軟件實(shí)施。因?yàn)閷?duì)虛擬URL的改發(fā)是自動(dòng)發(fā)生的,因此不需要修改客戶端的軟件。因此,改發(fā)器可以是插件程序使能代碼,最好是一個(gè)Java小服務(wù)程序(servlet)。因此,這些功能由處理器中的可執(zhí)行軟件實(shí)現(xiàn),即由駐留在計(jì)算機(jī)的隨機(jī)存取存儲(chǔ)器中的碼模塊中的一組指令(程序碼)實(shí)現(xiàn)。在計(jì)算機(jī)需要之前,該組指令可以存儲(chǔ)在另一個(gè)計(jì)算機(jī)存儲(chǔ)器中,例如硬盤(pán)驅(qū)動(dòng)器或諸如光盤(pán)(最后使用在CD ROM中)或軟盤(pán)(最后使用在軟盤(pán)驅(qū)動(dòng)器中)之類的可移動(dòng)存儲(chǔ)器中,或者通過(guò)因特網(wǎng)或其他計(jì)算機(jī)網(wǎng)絡(luò)下載。
另外,雖然所述各種方法在常規(guī)上是在由軟件有選擇地激活或重設(shè)的通用計(jì)算機(jī)中實(shí)施的,但本領(lǐng)域普通技術(shù)人員還會(huì)認(rèn)識(shí)到,這些方法可以在構(gòu)成執(zhí)行所需方法步驟的硬件、固件和更專門(mén)化的裝置中實(shí)施。
此外,如同這里所用的,網(wǎng)絡(luò)“客戶機(jī)”應(yīng)該在廣義上被解釋為表示直接或間接連接到計(jì)算機(jī)網(wǎng)絡(luò)、例如因特網(wǎng)上的,或者可以以任何已知或以后開(kāi)發(fā)的方式連接到計(jì)算機(jī)網(wǎng)絡(luò)上的,任何計(jì)算機(jī)或其部件。術(shù)語(yǔ)網(wǎng)絡(luò)“服務(wù)器”也應(yīng)該在廣義上被解釋為表示計(jì)算機(jī)、計(jì)算機(jī)平臺(tái)、計(jì)算機(jī)或平臺(tái)的附件或其任何部件。當(dāng)然,“客戶”應(yīng)該在廣義上被解釋為表示請(qǐng)求或獲得文件的個(gè)人,“服務(wù)器”是下載文件的實(shí)體。
因此,已經(jīng)描述了本發(fā)明,所希望保護(hù)的范圍由下面的權(quán)利要求書(shū)所限定。
權(quán)利要求
1.一種管理對(duì)由一給定URL識(shí)別的一池服務(wù)器的連接請(qǐng)求的方法,包括下列步驟響應(yīng)來(lái)自一個(gè)啟動(dòng)對(duì)話的給定客戶機(jī)的連接請(qǐng)求,將一個(gè)對(duì)話標(biāo)識(shí)符與池中的一給定服務(wù)器聯(lián)系起來(lái);采用所述對(duì)話標(biāo)識(shí)符改發(fā)對(duì)給定服務(wù)器的連接請(qǐng)求;以及在對(duì)話期間,向給定服務(wù)器改發(fā)來(lái)自給定客戶機(jī)的任何另外的連接請(qǐng)求。
2.如權(quán)利要求1所述的方法,其中,采用對(duì)話標(biāo)識(shí)符的步驟包括產(chǎn)生一個(gè)虛擬URL。
3.如權(quán)利要求2所述的方法,其中,虛擬URL包括在連接請(qǐng)求中的一個(gè)被修改為包括對(duì)話標(biāo)識(shí)符的URL。
4.如權(quán)利要求1所述的方法,其中,對(duì)話標(biāo)識(shí)符被包含在從給定服務(wù)器向客戶機(jī)返回的數(shù)據(jù)中。
5.如權(quán)利要求1所述的方法,還包括下列步驟響應(yīng)來(lái)自結(jié)束所述對(duì)話的給定客戶機(jī)的連接請(qǐng)求,使對(duì)話標(biāo)識(shí)符無(wú)效。
6.如權(quán)利要求1所述的方法,其中,給定客戶機(jī)包括一個(gè)瀏覽器。
7.如權(quán)利要求1所述的方法,其中,池中的每個(gè)服務(wù)器支持類似的一組對(duì)象。
8.如權(quán)利要求1所述的方法,其中,對(duì)話標(biāo)識(shí)符作為加載均衡協(xié)議的函數(shù)與一給定服務(wù)器相聯(lián)系。
9.一種管理對(duì)一池服務(wù)器的連接請(qǐng)求的方法,包括下列步驟響應(yīng)來(lái)自啟動(dòng)用戶對(duì)話的客戶機(jī)的連接請(qǐng)求,根據(jù)一個(gè)加載平衡協(xié)議將來(lái)自客戶機(jī)的每個(gè)用戶對(duì)話與池中的一給定服務(wù)器聯(lián)系起來(lái);以及在用戶對(duì)話期間,向給定服務(wù)器改發(fā)來(lái)自客戶機(jī)的任何另外的連接請(qǐng)求。
10.如權(quán)利要求9所述的方法,其中,聯(lián)系步驟包括通過(guò)修改一個(gè)給定的URL使其包括一個(gè)對(duì)話標(biāo)識(shí)符,產(chǎn)生一個(gè)虛擬URL;采用虛擬URL改發(fā)對(duì)給定服務(wù)器的連接請(qǐng)求。
11.如權(quán)利要求10所述的方法,還包括下列步驟在完成用戶對(duì)話時(shí)使虛擬URL無(wú)效。
12.如權(quán)利要求10所述的方法,其中,從給定服務(wù)器返回給客戶機(jī)的所有數(shù)據(jù)包括對(duì)話標(biāo)識(shí)符。
13.如權(quán)利要求9所述的方法,其中,池中的每個(gè)服務(wù)器支持類似的一組給定對(duì)象。
14.如權(quán)利要求9所述的方法,其中,每個(gè)客戶機(jī)包括一個(gè)網(wǎng)絡(luò)瀏覽器。
15.一種在計(jì)算機(jī)可讀介質(zhì)中的用于管理對(duì)一池服務(wù)器的連接請(qǐng)求的計(jì)算機(jī)程序產(chǎn)品,包括響應(yīng)來(lái)自啟動(dòng)用戶對(duì)話的客戶機(jī)的連接請(qǐng)求、根據(jù)一個(gè)加載平衡協(xié)議將來(lái)自客戶機(jī)的每個(gè)用戶對(duì)話與池中的一給定服務(wù)器聯(lián)系起來(lái)的裝置;以及在每個(gè)用戶對(duì)話期間用于向給定服務(wù)器改發(fā)來(lái)自客戶機(jī)的任何另外的連接請(qǐng)求的裝置。
16.如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,其中,聯(lián)系裝置包括通過(guò)修改一給定的URL使其包括一個(gè)對(duì)話標(biāo)識(shí)符而產(chǎn)生一個(gè)虛擬URL的裝置;以及采用虛擬URL改發(fā)對(duì)給定服務(wù)器的給定連接請(qǐng)求的裝置。
17.如權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,還包括在完成用戶對(duì)話時(shí)使虛擬URL無(wú)效的裝置。
18.一種用于管理在由一給定URL識(shí)別的網(wǎng)站的一池服務(wù)器的服務(wù)器,包括一個(gè)處理器;一個(gè)操作系統(tǒng);一個(gè)加載均衡例程;以及一個(gè)改發(fā)器例程,用于管理對(duì)所述網(wǎng)站的HTTP連接請(qǐng)求,包括響應(yīng)來(lái)自啟動(dòng)用戶對(duì)話的客戶機(jī)的連接請(qǐng)求、根據(jù)加載平衡例程將來(lái)自客戶機(jī)的每個(gè)用戶對(duì)話與池中的一給定服務(wù)器聯(lián)系起來(lái)的的裝置;以及在每個(gè)用戶對(duì)話期間用于向給定服務(wù)器改發(fā)來(lái)自客戶機(jī)的任何另外的連接請(qǐng)求的裝置。
19.如權(quán)利要求18所述的服務(wù)器,其中,聯(lián)系裝置包括通過(guò)修改給定的URL使其包括一個(gè)對(duì)話標(biāo)識(shí)符而產(chǎn)生一個(gè)虛擬URL的裝置;以及采用虛擬URL改發(fā)對(duì)給定服務(wù)器的給定連接請(qǐng)求的裝置。
20.如權(quán)利要求19所述的服務(wù)器,其中,改發(fā)器還包括在完成用戶對(duì)話時(shí)使虛擬URL無(wú)效的裝置。
21.一種用于管理在由一給定URL識(shí)別的網(wǎng)站的一池服務(wù)器的方法,包括下列步驟響應(yīng)來(lái)自啟動(dòng)用戶對(duì)話的客戶機(jī)的連接請(qǐng)求,將來(lái)自客戶機(jī)的每個(gè)用戶對(duì)話與池中的一個(gè)服務(wù)器聯(lián)系起來(lái);根據(jù)一個(gè)加載均衡協(xié)議將用戶對(duì)話分布在該池服務(wù)器上;以及在由一給定客戶機(jī)啟動(dòng)的一給定用戶對(duì)話期間,只從給定客戶機(jī)的相關(guān)服務(wù)器向所述給定客戶機(jī)提供內(nèi)容。
22.一種用于管理在由一給定URL識(shí)別的網(wǎng)站的一池服務(wù)器的方法,包括下列步驟在由一給定客戶機(jī)啟動(dòng)的每個(gè)用戶對(duì)話期間,將來(lái)自所述客戶機(jī)的所有連接請(qǐng)求臨時(shí)改發(fā)給池中的一給定服務(wù)器;以及根據(jù)一個(gè)加載均衡協(xié)議將用戶對(duì)話分布在該池服務(wù)器上。
全文摘要
這里公開(kāi)了用于管理對(duì)由一給定URL識(shí)別的一池服務(wù)器的連接請(qǐng)求的方法、計(jì)算機(jī)程序產(chǎn)品和服務(wù)器。該方法開(kāi)始于對(duì)來(lái)自一給定客戶機(jī)的連接請(qǐng)求進(jìn)行響應(yīng),啟動(dòng)一個(gè)用戶對(duì)話,將一個(gè)對(duì)話標(biāo)識(shí)符與池中的一給定服務(wù)器聯(lián)系起來(lái)。然后用該對(duì)話標(biāo)識(shí)符產(chǎn)生一個(gè)“虛擬”URL,以便將連接請(qǐng)求改發(fā)到所給定的服務(wù)器。此后,在該用戶對(duì)話期間從所給定客戶機(jī)發(fā)出的任何另外的連接請(qǐng)求都被改發(fā)到給定服務(wù)器,以便將所有內(nèi)容從同一位置提供給客戶。
文檔編號(hào)G06F9/46GK1268700SQ0010438
公開(kāi)日2000年10月4日 申請(qǐng)日期2000年3月23日 優(yōu)先權(quán)日1999年3月31日
發(fā)明者克里斯蒂安·利塔 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司