專利名稱:用于應(yīng)用實(shí)例級(jí)工作負(fù)荷分配親合性的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)之間的工作負(fù)荷分配,更具體地說(shuō),涉及在一個(gè)應(yīng)用的多個(gè)實(shí)例之間的工作負(fù)荷分配。
背景技術(shù):
因特網(wǎng)協(xié)議(“IP”)被設(shè)計(jì)成無(wú)連接協(xié)議。所以,IP工作負(fù)荷平衡解決方案把對(duì)一個(gè)特定的目的地IP地址和端口號(hào)組合所標(biāo)識(shí)的特定應(yīng)用的每個(gè)傳輸控制協(xié)議(“TCP”)連接請(qǐng)求看作是獨(dú)立于所有其他這樣的TCP連接請(qǐng)求。這種IP工作負(fù)荷平衡系統(tǒng)的實(shí)例包括來(lái)自國(guó)際商業(yè)機(jī)器公司(“IBM”)的Sysplex分配器,其被包括在IBM的z/OS和OS/390TCP/IP實(shí)現(xiàn)中,以及來(lái)自Cisco Systems公司的多節(jié)點(diǎn)負(fù)荷平衡器(“MNLB”)。諸如這些工作負(fù)荷平衡解決方案使用相對(duì)的服務(wù)器能力(在Sysplex分配器的情況中還使用網(wǎng)絡(luò)策略信息和服務(wù)質(zhì)量考慮)來(lái)動(dòng)態(tài)選擇服務(wù)器以處置每個(gè)到來(lái)的連接請(qǐng)求。然而,某些應(yīng)用要求一個(gè)特定客戶機(jī)和一個(gè)特定服務(wù)器之間的關(guān)系持續(xù)到超過(guò)單個(gè)交互作用的存在期(即超出連接請(qǐng)求及其相關(guān)響應(yīng)消息)。
Web應(yīng)用是要求持續(xù)存在的關(guān)系的應(yīng)用的一個(gè)實(shí)例。例如,假定有一個(gè)Web購(gòu)物應(yīng)用,其中在一個(gè)客戶機(jī)瀏覽器處的用戶可把他的用戶標(biāo)識(shí)(“用戶ID”)和口令提供給在一特定服務(wù)器上執(zhí)行的該Web應(yīng)用的一個(gè)特定實(shí)例,然后購(gòu)買商品。在使用這一Web應(yīng)用時(shí),該用戶的瀏覽器可傳送若干個(gè)單獨(dú)的但相關(guān)的超文本傳輸協(xié)議(“HTTP”)請(qǐng)求消息,其中每個(gè)消息被承載在一個(gè)單獨(dú)的TCP連接請(qǐng)求中。當(dāng)用戶瀏覽在線目錄,選擇一個(gè)或多個(gè)商品項(xiàng)目,下訂單,提供付款和發(fā)貨信息以及最后確認(rèn)或取消該訂單的時(shí)候,可傳送若干單獨(dú)的請(qǐng)求消息。為了匯集和處理該用戶的訂單,必須保持狀態(tài)信息(如用戶ID、所請(qǐng)求的商品項(xiàng)目等)直至購(gòu)物事務(wù)完成為止。所以必須把所有這些相關(guān)的連接請(qǐng)求路由到同一個(gè)應(yīng)用實(shí)例,因?yàn)樵摖顟B(tài)信息只存在于該特定的Web應(yīng)用實(shí)例。這樣,工作負(fù)荷平衡的實(shí)現(xiàn)必須考慮這一類持續(xù)存在的關(guān)系并且只使第一個(gè)連接請(qǐng)求經(jīng)歷工作負(fù)荷平衡過(guò)程。
要求在特定客戶機(jī)和特定服務(wù)器之間有持續(xù)關(guān)系的應(yīng)用的另一例子是客戶機(jī)訪問(wèn)安全敏感或訪問(wèn)受限的網(wǎng)頁(yè)的應(yīng)用。通常,對(duì)于這些應(yīng)用,用戶在一個(gè)早期連接請(qǐng)求(例如“l(fā)og on(登錄)”請(qǐng)求)上提供他的ID和口令。這一信息必須由該應(yīng)用記憶,并在所有相關(guān)請(qǐng)求到來(lái)時(shí)該應(yīng)用攜帶著這一信息而無(wú)需用戶重新輸入它。所以必須把其后的連接請(qǐng)求路由到記憶該客戶機(jī)信息的服務(wù)器應(yīng)用實(shí)例。所以,工作負(fù)荷平衡實(shí)現(xiàn)必須對(duì)除初始的一個(gè)連接請(qǐng)求之外的全部這些連接請(qǐng)求跳過(guò)它的正常選擇過(guò)程,以便持續(xù)其進(jìn)行關(guān)系。
提供這些持續(xù)性關(guān)系的這種需求往往被稱作“服務(wù)器親合性”或“粘性路由選擇問(wèn)題”,在現(xiàn)有技術(shù)中已用于解決Web應(yīng)用的這一問(wèn)題的一項(xiàng)技術(shù)是“cookie(點(diǎn)心文件)”的使用。一個(gè)“cookie”是一個(gè)在HTTP請(qǐng)求和響應(yīng)標(biāo)頭內(nèi)以可變長(zhǎng)度字段傳送的數(shù)據(jù)對(duì)象。一個(gè)cookie存儲(chǔ)該服務(wù)器應(yīng)用想要記憶的關(guān)于一個(gè)特定客戶機(jī)的某些數(shù)據(jù)。這能包括客戶機(jī)標(biāo)識(shí)、正在持續(xù)的事務(wù)中使用的參數(shù)和狀態(tài)信息、用戶偏好、或一個(gè)應(yīng)用的編寫者能想到要包括的幾乎任何其他信息。cookie通常存儲(chǔ)在客戶機(jī)設(shè)備上,或者在一個(gè)事務(wù)的進(jìn)行期間(例如,經(jīng)由單個(gè)瀏覽器實(shí)例,一個(gè)顧客與一個(gè)在線商人進(jìn)行的電子購(gòu)物交互的整個(gè)過(guò)程)中被保存,或者被永久地保存。一個(gè)Web應(yīng)用可在cookie中提供標(biāo)識(shí)信息,這些cookie在響應(yīng)消息中由Web應(yīng)用傳送給客戶機(jī),然后客戶機(jī)在其后的請(qǐng)求消息中在那些cookie中返回那個(gè)信息。以這種方式,客戶機(jī)和服務(wù)器應(yīng)用利用面向連接的信息,而不是在其上設(shè)計(jì)了HTTP的無(wú)連接的模型。
然而,使用cookie有若干缺點(diǎn)。首先,傳送cookie信息可能增加包的大小,從而可能增加網(wǎng)絡(luò)通信量。其次,人們不能在多個(gè)Web事務(wù)之間依靠cookie作為保持應(yīng)用狀態(tài)信息(如客戶機(jī)標(biāo)識(shí))的手段。某些客戶機(jī)設(shè)備沒(méi)有能力存儲(chǔ)cookie;這些設(shè)備包括無(wú)線應(yīng)用設(shè)備(如Web電話、個(gè)人數(shù)字助理(或稱“PDA”)等),它們通常使用無(wú)線會(huì)話協(xié)議(“WSP”)通過(guò)無(wú)線應(yīng)用協(xié)議(“WAP”)網(wǎng)關(guān)訪問(wèn)因特網(wǎng)。WSP不支持cookie,而且即使使用另一個(gè)協(xié)議,這些設(shè)備中許多設(shè)備有嚴(yán)格限制的存儲(chǔ)器和存儲(chǔ)容量,因此沒(méi)有足夠的容量存儲(chǔ)cookie。再有,cookie的使用已引起對(duì)保密性和安全性的關(guān)注,因此許多用戶或者在他們的設(shè)備上打開(kāi)“cookie提示”特性(使他們有選擇地接受cookie,如果不是根本不接受的話)或者完全禁用對(duì)cookie的支持。
其他類型的應(yīng)用可使用諸如唯一特定于應(yīng)用的協(xié)議等技術(shù)在相繼的連接存在期之間保持和傳送關(guān)系狀態(tài)信息,以此為依靠客戶機(jī)和服務(wù)器應(yīng)用合作的粘性路由選擇問(wèn)題提供解決方案。例如,來(lái)自Lotus開(kāi)發(fā)公司的Lotus Notes軟件產(chǎn)品要求客戶機(jī)應(yīng)用與服務(wù)器應(yīng)用一起參與定位一個(gè)服務(wù)器應(yīng)用的適當(dāng)實(shí)例的過(guò)程,該特定客戶機(jī)用戶的電子郵件消息被存儲(chǔ)在該適當(dāng)實(shí)例上。(“Lotus Notes”是Lotus開(kāi)發(fā)公司的注冊(cè)商標(biāo))。在另一項(xiàng)合作技術(shù)中,服務(wù)器應(yīng)用可把一個(gè)特殊的返回地址傳送給客戶機(jī),然后該客戶機(jī)把它用于其后的消息。
通常,一個(gè)客戶機(jī)和服務(wù)器應(yīng)用能知道一個(gè)持續(xù)存在的關(guān)系(即需要多個(gè)連接的關(guān)系)何時(shí)開(kāi)始和何時(shí)結(jié)束。然而,對(duì)于普及的應(yīng)用(如Web應(yīng)用),客戶機(jī)的數(shù)量比服務(wù)器的數(shù)量大許多個(gè)數(shù)量級(jí)。這樣,盡管服務(wù)器應(yīng)用有可能被重新設(shè)計(jì)以明確考慮持續(xù)存在的關(guān)系,但是期望現(xiàn)有的客戶機(jī)軟件會(huì)被類似地重新設(shè)計(jì)和重新布置是不切實(shí)際的(除非在很有限的情形中),所以,這一方法對(duì)于一般情況不是一個(gè)可行的解決方案。
粘性路由選擇問(wèn)題由于下列事實(shí)而被進(jìn)一步復(fù)雜化有時(shí)從單個(gè)客戶機(jī)并行建立多個(gè)TCP連接,從而能并行地做出相關(guān)請(qǐng)求和處理這些請(qǐng)求(例如,為更快地分發(fā)由多個(gè)元素構(gòu)成的Web文檔)。一個(gè)典型的瀏覽器在四個(gè)同時(shí)的TCP連接上并發(fā)地加載多達(dá)四個(gè)對(duì)象。當(dāng)處理并行請(qǐng)求時(shí),需要或希望有狀態(tài)信息的那些應(yīng)用中,不能允許工作負(fù)荷平衡實(shí)現(xiàn)去獨(dú)立地選擇服務(wù)器以處理每個(gè)連接請(qǐng)求。
在網(wǎng)絡(luò)環(huán)境中進(jìn)行工作負(fù)荷平衡的對(duì)粘性路由選擇問(wèn)題的一個(gè)現(xiàn)有技術(shù)解決方案是通過(guò)對(duì)工作負(fù)荷平衡實(shí)現(xiàn)進(jìn)行配置以對(duì)來(lái)自預(yù)定客戶機(jī)IP地址(或者或許是用子網(wǎng)地址指定的一組客戶機(jī)IP地址)的連接請(qǐng)求進(jìn)行特殊處置,從而建立客戶機(jī)和服務(wù)器之間的親合性。工作負(fù)荷平衡器的這一配置通常是一個(gè)手工過(guò)程而且需要大量管理性工作。因?yàn)樗蔷唧w地針對(duì)已知的客戶機(jī)IP地址或子網(wǎng),所以這一方法不能很好地?cái)U(kuò)展為一個(gè)通用的解決方案,也不能很好地適應(yīng)于動(dòng)態(tài)確定的客戶機(jī)IP地址,這些IP地址不能事先被準(zhǔn)確地預(yù)測(cè)。再有,這一配置方案是靜態(tài)的,為改變特殊定義的處置,需要對(duì)工作負(fù)荷平衡器重新配置。這種靜態(tài)的對(duì)定要向其提供特殊處置的特定客戶機(jī)地址的指定可能會(huì)隨著時(shí)間的流逝造成顯著的工作負(fù)荷不平衡,因此這不是一個(gè)最佳解決方案。
在另一解決方案中,可以對(duì)客戶機(jī)群靜態(tài)地賦予不同的目標(biāo)服務(wù)器名(它們被解析為服務(wù)器IP地址)。這一方案被許多全國(guó)性因特網(wǎng)服務(wù)提供商(“ISP”)使用,它要求配置客戶機(jī)而不是配置服務(wù)器。
在網(wǎng)絡(luò)環(huán)境中進(jìn)行工作負(fù)荷平衡的對(duì)粘性路由選擇問(wèn)題的另一個(gè)現(xiàn)有技術(shù)方案是使用“定時(shí)的”親合性。一旦一個(gè)服務(wù)器已被選定用于來(lái)自一個(gè)特定客戶機(jī)IP地址(或者或許來(lái)自一個(gè)特定子網(wǎng))的請(qǐng)求,在預(yù)定的固定時(shí)間段(它可以是可配置的)內(nèi)到達(dá)的全部后續(xù)請(qǐng)求被自動(dòng)發(fā)送到該同一個(gè)服務(wù)器。然而,網(wǎng)絡(luò)通信量的動(dòng)態(tài)性質(zhì)使得很難準(zhǔn)確地預(yù)測(cè)一個(gè)最佳的親合性持續(xù)時(shí)間,所以使用定時(shí)的親合性可能造成低效率和工作負(fù)荷不平衡。如果親合性持續(xù)時(shí)間太短,則可能會(huì)過(guò)早地結(jié)束關(guān)系。如果親合性持續(xù)時(shí)間太長(zhǎng),則會(huì)失去工作負(fù)荷平衡的目的。此外,當(dāng)親合性在不再需要時(shí)還在持續(xù),則大量資源會(huì)被浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例用于指派從一個(gè)客戶機(jī)到多個(gè)應(yīng)用實(shí)例中各個(gè)實(shí)例的連接,這些應(yīng)用實(shí)例從一個(gè)共享通信協(xié)議棧接收數(shù)據(jù)。該客戶機(jī)與該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)實(shí)例之間的親合性被定義。如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)實(shí)例之間定義了親合性,則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)實(shí)例。如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)實(shí)例之間沒(méi)有定義親合性,則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給該多個(gè)應(yīng)用實(shí)例中選定的一些實(shí)例。
在本發(fā)明的又一些實(shí)施例中,根據(jù)收到的來(lái)自該客戶機(jī)的先前的連接請(qǐng)求動(dòng)態(tài)地定義親合性,以此提供定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例的相應(yīng)一個(gè)實(shí)例之間的親合性。再有,還可通過(guò)接收來(lái)自該多個(gè)應(yīng)用實(shí)例中一個(gè)實(shí)例的指示,該指示指出對(duì)來(lái)自該客戶機(jī)的連接請(qǐng)求的親合性,以此提供該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)實(shí)例之間的親合性。
在本發(fā)明的特定實(shí)施例中,根據(jù)客戶機(jī)的源標(biāo)識(shí)和來(lái)自該客戶機(jī)的連接請(qǐng)求的目的地標(biāo)識(shí)來(lái)定義親合性。該客戶機(jī)的源標(biāo)識(shí)可以是該客戶機(jī)的因特網(wǎng)協(xié)議(IP)地址,而來(lái)自該客戶機(jī)的連接請(qǐng)求的目的地標(biāo)識(shí)可以是該連接請(qǐng)求的一IP地址和端口。
在本發(fā)明的又一些實(shí)施例中,通過(guò)向該多個(gè)應(yīng)用實(shí)例的相應(yīng)一個(gè)應(yīng)用實(shí)例所關(guān)聯(lián)的偵聽(tīng)套接口(listening socket)提供從該客戶機(jī)接收的連接請(qǐng)求,而將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例,如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性被定義的話。通過(guò)向該多個(gè)應(yīng)用實(shí)例中的一個(gè)選定實(shí)例所關(guān)聯(lián)的偵聽(tīng)套接口提供從該客戶機(jī)接收的連接請(qǐng)求,而將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給這多個(gè)應(yīng)用實(shí)例中的一些選定實(shí)例,如果沒(méi)有定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性的話。
在本發(fā)明的另一些實(shí)施例中,該共享通信協(xié)議棧是在一個(gè)系統(tǒng)復(fù)合體(sysplex)中的一個(gè)目標(biāo)通信協(xié)議棧。在這樣一些實(shí)施例中,對(duì)于該系統(tǒng)復(fù)合體的一個(gè)路由選擇通信協(xié)議棧,與這多個(gè)應(yīng)用實(shí)例的一個(gè)實(shí)例關(guān)聯(lián)的親合性定義可以被識(shí)別,以便其后的與該親合性定義關(guān)聯(lián)的連接請(qǐng)求被提供給該目標(biāo)通信協(xié)議棧。
如本領(lǐng)域技術(shù)人員將進(jìn)一步理解的那樣,盡管上文的描述主要針對(duì)方法方面,但本發(fā)明可以實(shí)現(xiàn)為方法、裝置/系統(tǒng)和/或計(jì)算機(jī)程序產(chǎn)品。
圖1是根據(jù)本發(fā)明的實(shí)施例引入應(yīng)用實(shí)例級(jí)親合性的系統(tǒng)的方框圖;圖2是流程圖,其顯示根據(jù)本發(fā)明實(shí)施例的操作;圖3是根據(jù)本發(fā)明的又一些實(shí)施例引入應(yīng)用級(jí)親合性的系統(tǒng)復(fù)合體的方框圖;圖4是流程圖,其顯示根據(jù)本發(fā)明特定實(shí)施例的操作;以及圖5是流程圖,其顯示根據(jù)本發(fā)明特定實(shí)施例的進(jìn)一步操作。
具體實(shí)施例方式
現(xiàn)在將參考附圖更充分地描述本發(fā)明,在這些附圖中顯示本發(fā)明的示例性實(shí)施。然而,本發(fā)明可以以許多不同的形式實(shí)現(xiàn),不能被認(rèn)作是限定于這里舉出的實(shí)施例;相反,提供這些實(shí)施例以便使這一公開(kāi)是徹底的和完全的,并將向本領(lǐng)域技術(shù)人員充分地傳達(dá)本發(fā)明的范圍。各圖中相同的標(biāo)號(hào)代表相同的部件。
如本領(lǐng)域技術(shù)人員將會(huì)理解的那樣,本發(fā)明可以作為方法、數(shù)據(jù)處理系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品來(lái)實(shí)現(xiàn)。因此,本發(fā)明可以采取完全硬件實(shí)施例、完全軟件實(shí)施例或把軟件和硬件方面組合起來(lái)的實(shí)施例等形式,在這里所有這些都被通稱為“電路”或“模塊”。再有,本發(fā)明可采取計(jì)算機(jī)可用存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可用介質(zhì)具有包括在該介質(zhì)中的計(jì)算機(jī)可用程序代碼。任何適當(dāng)?shù)挠?jì)算機(jī)可讀介質(zhì)都可利用,包括硬盤、CD-ROM、光存儲(chǔ)設(shè)備、諸如支持因特網(wǎng)或內(nèi)聯(lián)網(wǎng)的傳輸介質(zhì)或磁存儲(chǔ)設(shè)備。
用于實(shí)現(xiàn)本發(fā)明操作的計(jì)算機(jī)程序代碼可以以面向?qū)ο蟮木幊陶Z(yǔ)言,如Java、Smalltalk或C++來(lái)編寫。然而,用于實(shí)現(xiàn)本發(fā)明操作的計(jì)算機(jī)程序代碼也可以以傳統(tǒng)的過(guò)程編程語(yǔ)言,如“C”編程語(yǔ)言來(lái)編寫。該程序代碼可以完全在用戶計(jì)算機(jī)上執(zhí)行,部分地在用戶計(jì)算機(jī)上執(zhí)行,作為獨(dú)立的軟件包,部分地在用戶計(jì)算機(jī)上和部分地在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行或者完全地在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行。在后一種情況中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)連接到用戶計(jì)算機(jī),或者這是要與一外部計(jì)算機(jī)的連接(例如,使用因特網(wǎng)服務(wù)提供商通過(guò)因特網(wǎng)的連接)。
下面參考根據(jù)本發(fā)明實(shí)施例的方法,裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖描述本發(fā)明。將會(huì)理解,流程圖和/或方框圖的每一塊以及流程圖和/或方框圖的塊組合能以計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)該計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的這些指令創(chuàng)建實(shí)現(xiàn)在這些流程圖和/或方框圖塊中指定的功能/動(dòng)作的手段。
這些計(jì)算機(jī)程序指令還可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)器中,它們能指引計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置以特定方式發(fā)揮其功能,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令構(gòu)成一個(gè)包括指令單元的制造物,該指令單元實(shí)現(xiàn)在這些流程圖和/或方框圖塊中指定的功能/動(dòng)作。
這些計(jì)算機(jī)程序指令還可以加載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置上,以使在該計(jì)算機(jī)或其他可編程裝置上執(zhí)行一系列操作步驟以產(chǎn)生一個(gè)計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,使得在該計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)在這些流程圖和/或方框圖塊中指定的功能/動(dòng)作的步驟。
現(xiàn)在將參考附圖描述本發(fā)明的各種實(shí)施例。然而,本發(fā)明不應(yīng)被認(rèn)為是限定于用在諸如圖1和圖3中顯示的那些系統(tǒng)中,而是可以用于采用應(yīng)用實(shí)例級(jí)工作負(fù)荷分配的任何系統(tǒng)之中。
本發(fā)明的實(shí)施例可以利用諸如在共同被轉(zhuǎn)讓的美國(guó)專利公開(kāi)US2002/0143965A1和US2002/0143953A1中描述的親合性技術(shù),這二者在2002年10月3日公開(kāi),它們所公開(kāi)的內(nèi)容在這里被納入,如同它們被整體列出那樣,這些技術(shù)用于單個(gè)數(shù)據(jù)處理系統(tǒng)上的多個(gè)應(yīng)用實(shí)例。
本發(fā)明的實(shí)施例可提供在網(wǎng)絡(luò)環(huán)境中改進(jìn)對(duì)相關(guān)的連接請(qǐng)求消息的處置的技術(shù),該網(wǎng)絡(luò)環(huán)境使用工作負(fù)荷分配,如工作負(fù)荷平衡(其可以等效地被稱作“負(fù)荷平衡”)以在數(shù)據(jù)處理系統(tǒng)(如服務(wù)器)的多個(gè)應(yīng)用實(shí)例之間分配工作負(fù)荷。因?yàn)槔@過(guò)工作負(fù)荷平衡功能可能導(dǎo)致在其中工作負(fù)荷分配失去平衡的整個(gè)系統(tǒng),所以所公開(kāi)的技術(shù)被定義為只當(dāng)特定應(yīng)用實(shí)例需要時(shí)才能發(fā)生這種繞過(guò)。這樣,到來(lái)的不需這種特殊處置的連接請(qǐng)求都經(jīng)歷工作負(fù)荷平衡,從而以對(duì)變化的網(wǎng)絡(luò)環(huán)境作出動(dòng)態(tài)反應(yīng)的方式在服務(wù)器上的各應(yīng)用實(shí)例之間分擔(dān)工作負(fù)荷。
在本發(fā)明的特定實(shí)施例中,一個(gè)特定應(yīng)用的多個(gè)實(shí)例中的各個(gè)實(shí)例可在運(yùn)行時(shí)間動(dòng)態(tài)地確定是否期望與一特定源(例如,一個(gè)特定客戶機(jī)或子網(wǎng))的關(guān)系要包含多個(gè)相繼的連接請(qǐng)求,然后指定那些相繼的請(qǐng)求應(yīng)被引導(dǎo)到該數(shù)據(jù)處理系統(tǒng)上的該同一個(gè)應(yīng)用實(shí)例。在本發(fā)明的某些實(shí)施例中,親合性有一最長(zhǎng)持續(xù)時(shí)間,在這一持續(xù)時(shí)間之后該親合性結(jié)束,于是用于保持該親合性的資源被釋放。為此目的,可使用一種超時(shí)機(jī)制。多個(gè)應(yīng)用實(shí)例中的一個(gè)特定實(shí)例也可被允許使用特定于應(yīng)用的考慮,明確地取消一親合性或延長(zhǎng)一親合性。在若干情形下延長(zhǎng)親合性是有用的。例如,一個(gè)應(yīng)用實(shí)例可能意識(shí)到已經(jīng)發(fā)生了對(duì)于一特定關(guān)系的大量處理,而且很可能對(duì)于這一關(guān)系的處理接近結(jié)束。通過(guò)延長(zhǎng)親合性,有可能完成該處理(從而避免使用固定持續(xù)時(shí)間親合性的現(xiàn)有技術(shù)系統(tǒng)中遇到的低效率)。在與一客戶機(jī)的正持續(xù)的關(guān)系出乎意料地結(jié)束這種情況下(例如,因?yàn)樵摽蛻魴C(jī)應(yīng)用失敗或該用戶改變了關(guān)于繼續(xù)運(yùn)行的想法),取消一親合性的能力(或者明確地取消,或者因?yàn)樗淖铋L(zhǎng)持續(xù)時(shí)間已超過(guò))是特別有好處的。還可能希望根據(jù)從該客戶機(jī)接收的消息來(lái)取消一親合性,該消息指示不再需要該持續(xù)性關(guān)系。
在本發(fā)明的另一些實(shí)施例中,一個(gè)特定服務(wù)器應(yīng)用的各實(shí)例能指定發(fā)自一個(gè)特定客戶機(jī)(以及可選地,發(fā)自那臺(tái)客戶機(jī)的指定端口)的連接請(qǐng)求要被自動(dòng)地路由到這一服務(wù)器應(yīng)用的同一實(shí)例,如果那個(gè)實(shí)例當(dāng)前正在處置來(lái)自這同一客戶機(jī)的其他這類請(qǐng)求的話。如先前描述的本發(fā)明的實(shí)施例中的情況那樣,相關(guān)連接請(qǐng)求中的第一個(gè)請(qǐng)求要經(jīng)歷正常的工作負(fù)荷平衡。
圖1顯示引入本發(fā)明實(shí)施例的一個(gè)示例系統(tǒng)。如圖1中所見(jiàn),多個(gè)客戶機(jī)處理器110、110’和110”建立與服務(wù)器120的通信協(xié)議棧121的通信連接。服務(wù)器120包括同一應(yīng)用的多個(gè)實(shí)例124、124’和124”,它們共享通信協(xié)議棧121;以及工作負(fù)荷分配功能122,它在應(yīng)用實(shí)例124、124’和124”之間分配從這些連接到共享通信協(xié)議棧121的通信??蛻魴C(jī)處理器110、110’和110”可以是能建立與另一數(shù)據(jù)處理系統(tǒng)的通信連接的任何類型數(shù)據(jù)處理系統(tǒng),包括例如通用數(shù)據(jù)處理系統(tǒng),如個(gè)人計(jì)算機(jī)、膝上計(jì)算機(jī)等、個(gè)人數(shù)字助理、數(shù)據(jù)使能電話或其他普及計(jì)算設(shè)備,以及定制數(shù)據(jù)處理系統(tǒng),如銷售終端點(diǎn)、測(cè)試設(shè)備、監(jiān)視設(shè)備等。類似地,服務(wù)器120可以是能支持同一應(yīng)用的多個(gè)實(shí)例和能執(zhí)行這里描述的為客戶機(jī)連接提供親合性的操作的任何類型數(shù)據(jù)處理系統(tǒng)。
盡管對(duì)本發(fā)明實(shí)施例的描述是參考圖1所示特定系統(tǒng)配置,但如本領(lǐng)域技術(shù)人員將理解的那樣,其他配置也能采用,而得益于本發(fā)明的教導(dǎo)。這樣,本發(fā)明不應(yīng)被認(rèn)為是限定于圖1的配置,而是要包括能執(zhí)行這里所述操作的任何配置。
根據(jù)本發(fā)明實(shí)施例的服務(wù)器120的操作示于圖2中。當(dāng)一個(gè)客戶機(jī)(如客戶機(jī)110)利用通信協(xié)議棧121向服務(wù)器120請(qǐng)求一個(gè)連接時(shí),該連接被建立起來(lái),并且工作負(fù)荷分配功能122確定用于該連接的通信應(yīng)被提供給綁定在共享通信協(xié)議棧121的應(yīng)用實(shí)例124、124’或124”中的哪一個(gè)。這樣,如在圖2中所見(jiàn),工作負(fù)荷分配功能122確定該連接請(qǐng)求是否來(lái)自一個(gè)先前的客戶機(jī)(塊200)。一個(gè)先前的客戶機(jī)可以是已經(jīng)存在與通信協(xié)議棧121的連接的客戶機(jī)或者最近曾存在連接的客戶機(jī)(例如先前曾建立連接并在一個(gè)預(yù)定時(shí)間段內(nèi)終止)。
如果該連接請(qǐng)求不是來(lái)自一個(gè)先前的客戶機(jī)(塊200),則常規(guī)的工作負(fù)荷平衡技術(shù),如循環(huán)(round-robin)技術(shù)或更復(fù)雜的技術(shù)可用于把該連接指派給應(yīng)用實(shí)例124、124’和124”中的一個(gè)特定實(shí)例(塊206)。例如,可通過(guò)維護(hù)一個(gè)連接路由選擇表并更新該連接路由選擇表以反映從客戶機(jī)源地址到目標(biāo)地址和端口的連接要被引導(dǎo)到與一特定應(yīng)用實(shí)例關(guān)聯(lián)的唯一偵聽(tīng)套接口,來(lái)提供該連接的這類通信路由選擇。
工作負(fù)荷分配功能121在應(yīng)用于該客戶機(jī)正與之通信的應(yīng)用時(shí)還可檢驗(yàn)客戶機(jī)親合性是否已被定義(塊208)。對(duì)一客戶機(jī)親合性的適用性的這樣一種標(biāo)識(shí)可以預(yù)先定義或者動(dòng)態(tài)建立。例如,對(duì)于一個(gè)特定應(yīng)用,可對(duì)全部客戶機(jī)對(duì)全部后續(xù)連接建立親合性,或者對(duì)到特定端口或端口組的連接建立親合性。替代或附加的作法是,一旦已接收一個(gè)特定的通信,則可由一個(gè)應(yīng)用向工作負(fù)荷分配功能指定親合性。例如,可在從客戶機(jī)接收一個(gè)“登錄”通信之前使用工作負(fù)荷分配功能分配來(lái)自這同一客戶機(jī)的連接請(qǐng)求,然后為在成功“登錄”通信序列之后的連接建立親合性。在任何情況下,如果為該客戶機(jī)指定了客戶機(jī)親合性(塊208),則例如通過(guò)維護(hù)一個(gè)親合性表并向該親合性表添加客戶機(jī)標(biāo)識(shí)信息,來(lái)為其后的連接標(biāo)識(shí)出該客戶機(jī)的親合性(塊210)??蛻魴C(jī)親合性表也可以與前述連接路由選擇表合并。否則,由工作負(fù)荷分配功能122以常規(guī)的方式繼續(xù)進(jìn)行處理連接的操作。
如果該連接請(qǐng)求是來(lái)自一個(gè)先前的客戶機(jī)(塊200),則確定對(duì)于請(qǐng)求該連接的客戶機(jī)是否定義了客戶機(jī)親合性(塊202)。如果尚未定義客戶機(jī)親合性(塊202),則可使用常規(guī)的工作負(fù)荷平衡把該連接指派給應(yīng)用實(shí)例124、124’和124”中的一個(gè)特定實(shí)例(塊206)。如果已對(duì)該客戶機(jī)連接請(qǐng)求定義了客戶機(jī)親合性(塊202),則可繞過(guò)常規(guī)的工作負(fù)荷平衡,將該連接指派給該客戶機(jī)親合性所指定的特定應(yīng)用實(shí)例。如前文討論的那樣,可以按逐個(gè)客戶機(jī)的方式或按逐個(gè)連接請(qǐng)求的方式定義客戶機(jī)親合性,而且可以靜態(tài)地或動(dòng)態(tài)地定義。再有,可以對(duì)預(yù)先定義的可延長(zhǎng)的時(shí)間段,對(duì)預(yù)定數(shù)量的連接請(qǐng)求和/或?qū)λ械暮罄m(xù)連接請(qǐng)求來(lái)定義客戶機(jī)親合性。這樣,例如工作負(fù)荷分配功能122可以詢問(wèn)一個(gè)客戶機(jī)親合性表以根據(jù)客戶機(jī)源標(biāo)識(shí)(如源地址)確定對(duì)一客戶機(jī)是否存在一個(gè)條目,以及確定是否存在與該連接的目的地標(biāo)識(shí)(如目的地地址和/或連接端口)對(duì)應(yīng)的條目。該工作負(fù)荷分配功能122還可以確定該連接請(qǐng)求是否落入一個(gè)預(yù)先定義的時(shí)間和/或連接個(gè)數(shù)之中以便該客戶機(jī)親合性是有效的?;蛘呖梢灾芷谛缘卦u(píng)估客戶機(jī)親合性信息并去掉無(wú)效的客戶機(jī)親合性信息,以使客戶機(jī)親合性表只包含關(guān)于有效親合性的客戶機(jī)親合性信息。
作為舉例,參考圖1,如果客戶機(jī)110向服務(wù)器120發(fā)出一個(gè)初始連接請(qǐng)求,則共享通信協(xié)議棧121接收該連接請(qǐng)求,且工作負(fù)荷分配功能122確定應(yīng)用實(shí)例124、124’或124”中哪一個(gè)要接收與所請(qǐng)求的連接關(guān)聯(lián)的通信。因?yàn)樗且粋€(gè)初始連接請(qǐng)求,工作負(fù)荷分配功能122采用常規(guī)的工作負(fù)荷分配技術(shù)選擇應(yīng)用實(shí)例124、124’或124”中之一。這樣,可選擇應(yīng)用實(shí)例124。一個(gè)連接路由選擇表可被更新,以反映用于該連接的通信要被路由到與應(yīng)用實(shí)例124關(guān)聯(lián)的偵聽(tīng)套接口。當(dāng)收到來(lái)自客戶機(jī)110的一個(gè)后續(xù)連接請(qǐng)求時(shí),如果對(duì)客戶機(jī)110指定了客戶機(jī)親合性,則工作負(fù)荷分配功能122將繞過(guò)對(duì)該連接的通信的常規(guī)分配,并將根據(jù)對(duì)客戶機(jī)110指定的客戶機(jī)親合性將該連接指派給應(yīng)用實(shí)例124。這樣,便可為在單處理器上執(zhí)行和/或共享一個(gè)通信協(xié)議棧的一個(gè)應(yīng)用的多個(gè)實(shí)例提供工作負(fù)荷分配和親合性。
本發(fā)明的又一些實(shí)施例可在例如圖3描繪的聯(lián)網(wǎng)環(huán)境中工作。多個(gè)數(shù)據(jù)處理系統(tǒng)20、24、28、32和36被顯示為互連。這一互連在這里稱作“系統(tǒng)復(fù)合體(sysplex)”,并表示為單元10。圖3中的示例環(huán)境說(shuō)明本發(fā)明如何可以與IBM的系統(tǒng)復(fù)合體分配器一起使用。然而,這里公開(kāi)的教導(dǎo)也可以有利地應(yīng)用于其他網(wǎng)絡(luò)環(huán)境,而且這些教導(dǎo)如何適應(yīng)于這些其他環(huán)境對(duì)于本領(lǐng)域普通技術(shù)人員是顯然的。
數(shù)據(jù)處理系統(tǒng)20、24、28、32和36可以是在一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)上執(zhí)行的操作系統(tǒng)映像,如MVSFTM映像。(“MVS”是IBM的一個(gè)商標(biāo))。盡管將主要參考在OS/390和/或z/OS環(huán)境中執(zhí)行的MVS操作系統(tǒng)來(lái)描述本發(fā)明,但數(shù)據(jù)處理系統(tǒng)20、24、28、32和36可以是大型計(jì)算機(jī)、中型計(jì)算機(jī)、服務(wù)器或能支持這里公開(kāi)的親合性技術(shù)的其他系統(tǒng)。因此,本發(fā)明不應(yīng)被認(rèn)為是限定于系統(tǒng)復(fù)合體分配器環(huán)境或限定于執(zhí)行MVS或使用OS/390的數(shù)據(jù)處理系統(tǒng)。
如圖3中進(jìn)一步顯示的那樣,數(shù)據(jù)處理系統(tǒng)20、24、28、32和36有與其關(guān)聯(lián)的通信協(xié)議棧22、26、30、34和38,為優(yōu)選實(shí)施例的目的,優(yōu)選地,它們是TCP/IP棧。如在圖3中進(jìn)一步看到的那樣,一個(gè)數(shù)據(jù)處理系統(tǒng),如系統(tǒng)32,可以引入多個(gè)通信協(xié)議棧(在本例中顯示為棧34和38)。通信協(xié)議棧22、26、30、34和38已被修改以引入這里描述的親合性管理邏輯。
盡管圖3中所示的每個(gè)通信協(xié)議棧22、26、30、34和38被假定為引入親合性處置邏輯70,但并不嚴(yán)格要求在一個(gè)系統(tǒng)復(fù)合體或網(wǎng)絡(luò)環(huán)境中的所有這類棧都引入這一邏輯。這樣,本發(fā)明的優(yōu)點(diǎn)可以以向后兼容的方式實(shí)現(xiàn),藉此使不認(rèn)識(shí)這里定義的親合性消息的任何??梢院雎阅切┫?。
如在圖3中進(jìn)一步看到的那樣,通信協(xié)議棧22、26、30、34和38可通過(guò)系統(tǒng)復(fù)合體10的耦合機(jī)制40彼此通信。通過(guò)一個(gè)耦合機(jī)制進(jìn)行通信的實(shí)例是在System/390 Parallel Sysplex中由MVS操作系統(tǒng)提供的機(jī)制,稱作“MVS XCF消息傳送”,這里“XCF”代表“交叉耦合機(jī)制(Cross-Coupling Facility)”。MVS XCF消息傳送提供支持一個(gè)系統(tǒng)復(fù)合體內(nèi)運(yùn)行的各授權(quán)程序之間的合作的功能。當(dāng)使用XCF作為協(xié)作機(jī)制時(shí),棧優(yōu)選地使XCF消息傳送技術(shù)彼此通信。這類技術(shù)在本領(lǐng)域是公知的,這里將不詳細(xì)描述。通信協(xié)議棧22、26、30、34和38還可與外部網(wǎng)絡(luò)44,如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)或外聯(lián)網(wǎng)、局域網(wǎng)(LAN)和/或廣域網(wǎng)(WAN)進(jìn)行通信。在一個(gè)MVS系統(tǒng)中,企業(yè)系統(tǒng)連接(“ESCON”)42或其他機(jī)制可用于動(dòng)態(tài)連接多個(gè)數(shù)據(jù)處理系統(tǒng)20、24、28、32和36。所以,客戶機(jī)46可利用網(wǎng)絡(luò)44通過(guò)通信協(xié)議棧22、26、30、34和38與系統(tǒng)復(fù)合體10中一個(gè)MVS映像上的一個(gè)應(yīng)用通信。
在本發(fā)明的特定實(shí)施例中,每個(gè)通信協(xié)議棧22、26、30、34和38有與其關(guān)聯(lián)的由該棧負(fù)責(zé)的地址(如IP地址)列表。還有,每個(gè)數(shù)據(jù)處理系統(tǒng)20、24、28、32和36或MVS映像可以在系統(tǒng)復(fù)合體10內(nèi)有與其關(guān)聯(lián)的唯一標(biāo)識(shí)符。優(yōu)選地,在對(duì)通信協(xié)議棧22、26、30、34和38初始化時(shí),對(duì)這些棧配置該棧將負(fù)責(zé)的地址并向這些棧提供該數(shù)據(jù)處理系統(tǒng)的MVS映像的標(biāo)識(shí)符。
應(yīng)該指出,盡管在系統(tǒng)復(fù)合體內(nèi)的目的地地址在這里被稱作“IP”地址,但優(yōu)選地,這些地址是某種虛擬IP地址,如在美國(guó)專利(序列號(hào)09/640,409)中描述的動(dòng)態(tài)虛擬IP地址(“DVIPV”),該專利被轉(zhuǎn)讓給IBM,且其標(biāo)題為“Methods,Systems and Computer Program Products forCluster Workload Distribution(用于集群工作負(fù)荷分配的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品)”,該專利公開(kāi)的內(nèi)容在這里被全文引入作為參考,或者一個(gè)等效于DVIPA的回環(huán)(loopback),藉此使該地址看起來(lái)在不只一個(gè)棧上有效,盡管該網(wǎng)絡(luò)只知道向一個(gè)地方發(fā)送以那個(gè)IP地址為目的地的IP包。如在DVIPA專利中教導(dǎo)的那樣,一個(gè)IP地址不是以DEVICE(設(shè)備)、LINK(鏈路)和HOME(主機(jī))語(yǔ)句的正常組合在配置簡(jiǎn)檔中被靜態(tài)定義的,而是代之以在需要時(shí)被創(chuàng)建(例如當(dāng)系統(tǒng)復(fù)合體分配器需要時(shí))。
一個(gè)工作負(fù)荷平衡功能,如工作負(fù)荷管理(“WLM”),可用于提供輸入,該輸入當(dāng)使用工作負(fù)荷平衡技術(shù)為一個(gè)客戶機(jī)請(qǐng)求選擇一個(gè)初始目的地時(shí)被使用,WLM用于OS/390和/或z/OS TCP/IP實(shí)現(xiàn)中以獲得關(guān)于系統(tǒng)負(fù)荷和系統(tǒng)容量的運(yùn)行時(shí)信息。這種工作負(fù)荷平衡功能可由路由選擇協(xié)議棧提供,如美國(guó)專利(序列號(hào)09/640,409)中描述的那樣。
如圖3中進(jìn)一步顯示的那樣,一個(gè)MVS映像的單個(gè)協(xié)議??梢杂袌?zhí)行和利用該公用協(xié)議棧的同一應(yīng)用的多個(gè)實(shí)例。例如,MVS2的協(xié)議棧26被顯示為向APP A的兩個(gè)實(shí)例提供該協(xié)議棧。類似地,MVS3的協(xié)議棧30被顯示為向APP B的三個(gè)實(shí)例提供該協(xié)議棧。在這種情況中,工作負(fù)荷分配功能70可與該協(xié)議棧關(guān)聯(lián)并可利用客戶機(jī)親合性信息72,從而有選擇地利用該工作負(fù)荷分配功能為來(lái)自客戶機(jī)如客戶機(jī)46的連接請(qǐng)求選擇應(yīng)用實(shí)例。
再有,在管理親合性時(shí),可在路由選擇棧上和在宿主目標(biāo)棧上的連接路由選擇散列表(CRHT)中添加一個(gè)條目。該條目可指定客戶機(jī)(在連接請(qǐng)求中的源IP地址)和服務(wù)器之間的親合性。在路由選擇棧中,親合性以唯一IP地址指定宿主目標(biāo)棧,如同使用常規(guī)的連接平衡系統(tǒng),如CiscoMNLB或WebSphere邊緣服務(wù)器網(wǎng)絡(luò)調(diào)度器那樣。在目標(biāo)棧上,該條目指定一個(gè)特定應(yīng)用實(shí)例偵聽(tīng)套接口隊(duì)列。當(dāng)一個(gè)連接請(qǐng)求到達(dá)目標(biāo)棧時(shí),首先CRHT被檢索以尋找一個(gè)匹配條目,這一匹配條目通常在正常情況下不會(huì)找到。然后CRHT被檢索以尋找一個(gè)親合性條目,且不考慮客戶機(jī)(源)端口。如果發(fā)生親合性匹配,該連接請(qǐng)求被指派給指定的實(shí)例偵聽(tīng)套接口。如果沒(méi)有發(fā)生匹配,則該連接請(qǐng)求被指派給偵聽(tīng)服務(wù)器實(shí)例之一,以平衡各實(shí)例之間的有效連接。一個(gè)親合性條目可存儲(chǔ)在該目標(biāo)棧CRHT中。即使當(dāng)只有一個(gè)有效偵聽(tīng)服務(wù)器應(yīng)用實(shí)例時(shí),也可在目標(biāo)棧上保持這樣的親合性信息。這樣,允許另一實(shí)例在任何時(shí)刻啟動(dòng)。即使一個(gè)新的實(shí)例啟動(dòng)之后,仍保持對(duì)現(xiàn)有實(shí)例的客戶機(jī)親合性。
當(dāng)路由選擇棧發(fā)生中斷故障時(shí),該目標(biāo)棧把它的整個(gè)CRHT傳送給備用路由選擇棧,包括親合性。該接收備用棧將有效連接和親合性條目存儲(chǔ)在它的整個(gè)路由選擇CRHT中,指定連接條目和親合性二者為指向把該條目發(fā)送到該備用路由選擇棧的宿主目標(biāo)棧。以這種方式,即使當(dāng)存在路由選擇棧故障時(shí)也能保持親合性。
如上所述,本發(fā)明的實(shí)施例可提供對(duì)通信協(xié)議棧,如TCP棧的協(xié)作,這一協(xié)作以兩個(gè)階段的方式保持對(duì)一個(gè)應(yīng)用的特定實(shí)例的親合性首先,把連接請(qǐng)求路由到適當(dāng)?shù)哪繕?biāo)棧,然后把來(lái)自客戶機(jī)的連接請(qǐng)求路由到適當(dāng)?shù)膫陕?tīng)服務(wù)器實(shí)例。這允許該服務(wù)器應(yīng)用的多個(gè)實(shí)例被容納在單個(gè)操作系統(tǒng)和TCP/IP棧中。通過(guò)保持特定客戶機(jī)和相應(yīng)的特定服務(wù)器實(shí)例之間的親合性,這樣的系統(tǒng)可以更有效地使用系統(tǒng)資源同時(shí)保證正常的應(yīng)用功能。
圖4顯示根據(jù)本發(fā)明特定實(shí)施例的操作,這些操作用于根據(jù)親合性信息的應(yīng)用描述和/或親合性信息的路由選擇通信協(xié)議棧描述,動(dòng)態(tài)管理與一通信協(xié)議棧關(guān)聯(lián)的親合性信息。例如,這樣的操作可由通信協(xié)議棧26、30和/或工作負(fù)荷分配功能70來(lái)完成。如圖4中所見(jiàn),管理親合性信息72的協(xié)議棧26、30或工作負(fù)荷分配功能70從應(yīng)用實(shí)例(如APP A或APP B)接收一個(gè)消息,或者可從路由選擇通信協(xié)議棧接收一個(gè)消息(塊400)。這種消息傳送可以是基于美國(guó)公開(kāi)的專利申請(qǐng)US2002/0143965A1和US2002/0143953A1中描述的消息傳送。該消息被評(píng)估,以確定該消息是否創(chuàng)建與一客戶機(jī)關(guān)聯(lián)的親合性(塊402)。如果該消息是要?jiǎng)?chuàng)建一親合性(塊402),則在該通信協(xié)議棧的連接路由選擇散列表(CRHT)中的親合性信息被更新,以反映來(lái)自一個(gè)客戶機(jī)的連接的親合性(塊408)。在CRHT中可生成一個(gè)條目,其指出該客戶機(jī)親合性應(yīng)用于一個(gè)特定的源IP地址、目的地IP地址和目的地端口。這樣,該條目指出來(lái)自同一個(gè)源IP地址、目的地IP地址和目的地端口三元組的后續(xù)連接請(qǐng)求將被路由到這同一應(yīng)用實(shí)例。該親合性指示可以指定一個(gè)時(shí)間限制、該親合性的連接請(qǐng)求數(shù)和/或?qū)ζ涫褂迷撚H合性的連接請(qǐng)求的特定特性。再有,該親合性信息還可應(yīng)用于來(lái)自一個(gè)客戶機(jī)的多個(gè)連接請(qǐng)求,并可例如使用通配符來(lái)指定該親合性信息,如用于目的地端口標(biāo)識(shí)的指定。
如果該消息不要?jiǎng)?chuàng)建一個(gè)親合性(塊402),則該消息被評(píng)估以確定它是否要修改已存在的親合性信息(塊404)。如果該消息是要修改已存在的親合性信息(塊404),則CRHT被以修改后的信息更新(塊410)。如果該消息不是要修改已存在的親合性信息(塊404),則該消息被評(píng)估以確定它是否要?jiǎng)h除已存在的親合性信息(塊406)。如果該消息是要?jiǎng)h除已存在的親合性信息(塊406),則該親合性信息從CRHT中被移除(塊412)。
圖4所示操作可提供親合性的動(dòng)態(tài)創(chuàng)建和/或管理。也可提供靜態(tài)親合性。
圖5是流程圖,其顯示引入本發(fā)明實(shí)施例的通信協(xié)議棧的操作。如圖5中所見(jiàn),當(dāng)由通信協(xié)議棧接收來(lái)自一客戶機(jī)的通信時(shí),該通信被評(píng)估以確定它是否是一個(gè)連接請(qǐng)求(塊500)。如果該通信不是一個(gè)連接請(qǐng)求(塊500),則在CRHT中已經(jīng)存在用于該通信的一個(gè)條目,且該通信被轉(zhuǎn)發(fā)到由對(duì)應(yīng)于該客戶機(jī)源地址和該目的地IP地址和端口的CRHT條目所指定的應(yīng)用買例(塊506)。
如果該通信是一個(gè)連接請(qǐng)求(塊500),則確定是否對(duì)來(lái)自該客戶機(jī)的連接請(qǐng)求指定了親合性(塊502)。這一確定可通過(guò)檢索CRHT以查找親合性條目來(lái)完成,不考慮該客戶機(jī)(源)端口。如果存在一個(gè)條目,則對(duì)該連接請(qǐng)求指定了親合性。如果對(duì)該連接請(qǐng)求指定了親合性(塊502),則該連接被指派給該應(yīng)用實(shí)例的指定偵聽(tīng)套接口,而CRHT可被更新以反映為未來(lái)通信的這一指派(塊508)。該連接請(qǐng)求被轉(zhuǎn)發(fā)到指定的應(yīng)用實(shí)例(塊506)。
如果對(duì)該連接請(qǐng)求沒(méi)有指定親合性(塊502),則根據(jù)工作負(fù)荷分配選擇一個(gè)應(yīng)用實(shí)例,且該連接被指派給所選定的應(yīng)用實(shí)例的偵聽(tīng)套接口(塊504)。CRHT還可被更新以反映為未來(lái)通信的這一指派(塊504)。可選地,如果為該應(yīng)用指定了親合性,則也可在CRHT中生成一個(gè)親合性條目。該連接請(qǐng)求被轉(zhuǎn)發(fā)到指定的應(yīng)用實(shí)例(塊506)。
盡管已參考在工作負(fù)荷分配功能內(nèi)對(duì)客戶機(jī)親合性的維持和利用描述了本發(fā)明的實(shí)施例,但是,考慮了本公開(kāi)的本領(lǐng)域技術(shù)人員將會(huì)理解,可以與工作負(fù)荷分配功能分開(kāi)而單獨(dú)提供對(duì)連接進(jìn)行分配的這種客戶機(jī)親合性控制。再有,盡管工作負(fù)荷分配功能70和客戶機(jī)親合性信息72被顯示為通信協(xié)議棧的一部分,但這些功能和/或信息可以與通信協(xié)議棧分開(kāi)而單獨(dú)提供。
圖1至圖5的流程圖和方框圖顯示了根據(jù)本發(fā)明各種實(shí)施例的用于應(yīng)用實(shí)例級(jí)親合性的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的各種可能的實(shí)現(xiàn)的體系結(jié)構(gòu)、功能和操作。在這方面,流程圖或方框圖中的每一塊可以代表代碼的模塊、片段或部分,其包含一個(gè)或多個(gè)用于實(shí)現(xiàn)指定的邏輯功能的可執(zhí)行指令。還應(yīng)該指出,在某些可選的實(shí)現(xiàn)中,在塊中標(biāo)明的功能發(fā)生順序可能不同于圖中所示順序。例如,相繼顯示的兩個(gè)塊可能在事實(shí)上基本上并發(fā)執(zhí)行,或者它們有時(shí)可能以相反的順序執(zhí)行,這取決于所涉及的功能。還會(huì)理解,在方框圖和/或流程圖中的每個(gè)塊,及在方框圖和/或流程圖中的塊組合,能由專用的基于硬件的系統(tǒng)實(shí)現(xiàn),這些系統(tǒng)完成指定的功能或動(dòng)作,或者由專用硬件和計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
在附圖和說(shuō)明中,已經(jīng)公開(kāi)了本發(fā)明的典型示例性實(shí)施例,盡管利用了專用術(shù)語(yǔ),但它們只是在普通的和描述性的意義上被使用而不是為了進(jìn)行限制,本發(fā)明的范圍由下文中的權(quán)利要求提出。
權(quán)利要求
1.一種指派從一客戶機(jī)到多個(gè)應(yīng)用實(shí)例中各個(gè)應(yīng)用實(shí)例的連接的方法,這些應(yīng)用實(shí)例從一個(gè)共享通信協(xié)議棧接收數(shù)據(jù),該方法包括以下步驟定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性;如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間定義了親合性,則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例;以及如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間沒(méi)有定義親合性,則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給該多個(gè)應(yīng)用實(shí)例中的選定的一個(gè)應(yīng)用實(shí)例。
2.權(quán)利要求1的方法,其中定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性包括根據(jù)從該客戶機(jī)接收的先前的連接請(qǐng)求動(dòng)態(tài)地定義親合性。
3.權(quán)利要求1的方法,其中定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性包括從該多個(gè)應(yīng)用實(shí)例中的一個(gè)實(shí)例接收一指示,該指示指出對(duì)來(lái)自該客戶機(jī)的連接請(qǐng)求的親合性。
4.權(quán)利要求1的方法,其中所述親合性是根據(jù)該客戶機(jī)的源標(biāo)識(shí)和來(lái)自該客戶機(jī)的連接請(qǐng)求的目的地標(biāo)識(shí)定義的。
5.權(quán)利要求4的方法,其中所述客戶機(jī)的源標(biāo)識(shí)包括該客戶機(jī)的因特網(wǎng)協(xié)議(IP)地址,并且所述來(lái)自該客戶機(jī)的連接請(qǐng)求的目的地標(biāo)識(shí)包括該連接請(qǐng)求的IP地址和端口。
6.權(quán)利要求1的方法,其中如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間定義了親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例,包括將從該客戶機(jī)接收的連接請(qǐng)求提供給與該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例關(guān)聯(lián)的偵聽(tīng)套接口;以及其中如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間沒(méi)有定義親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給該多個(gè)應(yīng)用實(shí)例中的選定的一個(gè)應(yīng)用實(shí)例,包括將從該客戶機(jī)接收的連接請(qǐng)求提供給與該多個(gè)應(yīng)用實(shí)例中的選定的一個(gè)應(yīng)用實(shí)例關(guān)聯(lián)的偵聽(tīng)套接口。
7.權(quán)利要求1的方法,其中所述共享通信協(xié)議棧包括在一系統(tǒng)復(fù)合體內(nèi)的一目標(biāo)通信協(xié)議棧,該方法進(jìn)一步包括將與該多個(gè)應(yīng)用實(shí)例之一關(guān)聯(lián)的親合性定義標(biāo)識(shí)到該系統(tǒng)復(fù)合體的路由選擇通信協(xié)議棧,從而使與該親合性定義關(guān)聯(lián)的后續(xù)連接請(qǐng)求提供給該目標(biāo)通信協(xié)議棧。
8.一種用于指派從一客戶機(jī)到多個(gè)應(yīng)用實(shí)例中各個(gè)實(shí)例的連接的系統(tǒng),這多個(gè)應(yīng)用實(shí)例從共享通信協(xié)議棧接收數(shù)據(jù),該系統(tǒng)包括用于定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性的裝置;用于如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間定義了親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例的裝置;以及用于如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間沒(méi)有定義親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給該多個(gè)應(yīng)用實(shí)例中的選定的一個(gè)應(yīng)用實(shí)例的裝置。
9.權(quán)利要求8的系統(tǒng),其中所述用于定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性的裝置包括根據(jù)從該客戶機(jī)接收的先前的連接請(qǐng)求動(dòng)態(tài)地定義親合性的裝置。
10.權(quán)利要求8的系統(tǒng),其中所述用于定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性的裝置包括從該多個(gè)應(yīng)用實(shí)例中的一個(gè)實(shí)例接收一指示的裝置,該指示指出對(duì)來(lái)自該客戶機(jī)的連接請(qǐng)求的親合性。
11.權(quán)利要求8的系統(tǒng),其中所述親合性是根據(jù)該客戶機(jī)的源標(biāo)識(shí)和來(lái)自該客戶機(jī)的連接請(qǐng)求的目的地標(biāo)識(shí)定義的。
12.權(quán)利要求11的系統(tǒng),其中所述客戶機(jī)的源標(biāo)識(shí)包括該客戶機(jī)的因特網(wǎng)協(xié)議(IP)地址,并且所述來(lái)自該客戶機(jī)的連接請(qǐng)求的目的地標(biāo)識(shí)包括該連接請(qǐng)求的IP地址和端口。
13.權(quán)利要求8的系統(tǒng),其中所述用于如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)實(shí)例之間定義了親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)實(shí)例的裝置包括用于將從該客戶機(jī)接收到的連接請(qǐng)求提供給與該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例關(guān)聯(lián)的偵聽(tīng)套接口的裝置;以及其中所述用于如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間沒(méi)有定義親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給該多個(gè)應(yīng)用實(shí)例中的選定的一個(gè)應(yīng)用實(shí)例包括將從該客戶機(jī)接收的連接請(qǐng)求提供給與該多個(gè)應(yīng)用實(shí)例中的選定的一個(gè)應(yīng)用實(shí)例關(guān)聯(lián)的偵聽(tīng)套接口的裝置。
14.權(quán)利要求8的系統(tǒng),其中所述共享通信協(xié)議棧包括在一系統(tǒng)復(fù)合體內(nèi)的一目標(biāo)通信協(xié)議棧,該系統(tǒng)進(jìn)一步包括用于將與該多個(gè)應(yīng)用實(shí)例之一關(guān)聯(lián)的親合性定義標(biāo)識(shí)到該系統(tǒng)復(fù)合體的路由選擇通信協(xié)議棧,從而使與該親合性定義關(guān)聯(lián)的后續(xù)連接請(qǐng)求提供給該目標(biāo)通信協(xié)議棧的裝置。
15.一種用于指派從一客戶機(jī)到多個(gè)應(yīng)用實(shí)例中各個(gè)應(yīng)用實(shí)例的連接的計(jì)算機(jī)程序產(chǎn)品,這多個(gè)應(yīng)用實(shí)例從共享通信協(xié)議棧接收數(shù)據(jù),該計(jì)算機(jī)程序產(chǎn)品包括在其中具有計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀程序代碼包括被配置成定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性的計(jì)算機(jī)可讀程序代碼;被配置成如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間定義了親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例的計(jì)算機(jī)可讀程序代碼;以及被配置成如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間沒(méi)有定義親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給該多個(gè)應(yīng)用實(shí)例選定的一個(gè)應(yīng)用實(shí)例的計(jì)算機(jī)可讀程序代碼。
16.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中所述被配置成定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性的計(jì)算機(jī)可讀程序代碼包括被配置成根據(jù)從該客戶機(jī)接收的先前的連接請(qǐng)求動(dòng)態(tài)地定義親合性的計(jì)算機(jī)可讀程序代碼。
17.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中所述被配置成定義該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性的計(jì)算機(jī)可讀程序代碼包括被配置成從多個(gè)應(yīng)用實(shí)例中的一個(gè)實(shí)例接收一指示的計(jì)算機(jī)程序代碼,該指示指出對(duì)來(lái)自該客戶機(jī)的連接請(qǐng)求的親合性。
18.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中所述親合性是根據(jù)該客戶機(jī)的源標(biāo)識(shí)和來(lái)自該客戶機(jī)的連接請(qǐng)求的目的地標(biāo)識(shí)定義的。
19.權(quán)利要求18的計(jì)算機(jī)程序產(chǎn)品,其中所述客戶機(jī)的源標(biāo)識(shí)包括該客戶機(jī)的因特網(wǎng)協(xié)議(IP)地址,并且所述來(lái)自該客戶機(jī)的連接請(qǐng)求的目的地標(biāo)識(shí)包括該連接請(qǐng)求的IP地址和端口。
20.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中所述被配置成如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間定義了親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例的計(jì)算機(jī)可讀程序代碼包括被配置成將從該客戶機(jī)接收的連接請(qǐng)求提供給與該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例關(guān)聯(lián)的偵聽(tīng)套接口的計(jì)算機(jī)可讀程序代碼;以及其中所述被配置成如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間沒(méi)有定義親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給該多個(gè)應(yīng)用實(shí)例中的選定的一個(gè)應(yīng)用實(shí)例的計(jì)算機(jī)可讀程序代碼包括被配置成將從該客戶機(jī)接收的連接請(qǐng)求提供給與該多個(gè)應(yīng)用實(shí)例中的選定的一個(gè)應(yīng)用實(shí)例關(guān)聯(lián)的偵聽(tīng)套接口的計(jì)算機(jī)可讀程序代碼。
21.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中所述共享通信協(xié)議棧包括在一系統(tǒng)復(fù)合體內(nèi)的目標(biāo)通信協(xié)議棧,該計(jì)算機(jī)程序產(chǎn)品進(jìn)一步包括,被配置成將與該多個(gè)應(yīng)用實(shí)例之一關(guān)聯(lián)的親合性定義標(biāo)識(shí)到該系統(tǒng)復(fù)合體的路由選擇通信協(xié)議棧的計(jì)算機(jī)可讀程序代碼,從而使與該親合性定義關(guān)聯(lián)的后續(xù)連接請(qǐng)求提供給該目標(biāo)通信協(xié)議棧。
22.一種用于指派從一客戶機(jī)到多個(gè)應(yīng)用實(shí)例中各個(gè)應(yīng)用實(shí)例的連接的系統(tǒng),這多個(gè)應(yīng)用實(shí)例從共享通信協(xié)議棧接收數(shù)據(jù),該系統(tǒng)包括一工作負(fù)荷分配電路,被配置成存儲(chǔ)該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性定義,如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間定義了親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例,如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間沒(méi)有定義親合性則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給該多個(gè)應(yīng)用實(shí)例中選定的一個(gè)應(yīng)用實(shí)例。
全文摘要
本發(fā)明提供了一種通過(guò)定義客戶機(jī)和從共享通信協(xié)議棧接收數(shù)據(jù)的多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間的親合性,來(lái)指派從客戶機(jī)到該多個(gè)應(yīng)用實(shí)例中各個(gè)應(yīng)用實(shí)例的連接的方法和系統(tǒng)。如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間定義了親合性,則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求指派給該多個(gè)應(yīng)用實(shí)例中的該相應(yīng)一個(gè)應(yīng)用實(shí)例。如果在該客戶機(jī)和該多個(gè)應(yīng)用實(shí)例中的相應(yīng)一個(gè)應(yīng)用實(shí)例之間沒(méi)有定義親合性,則將在共享通信協(xié)議棧從該客戶機(jī)接收的連接請(qǐng)求分配給該多個(gè)應(yīng)用實(shí)例中的選定的一個(gè)應(yīng)用實(shí)例。
文檔編號(hào)H04L29/06GK1592303SQ200410048058
公開(kāi)日2005年3月9日 申請(qǐng)日期2004年6月10日 優(yōu)先權(quán)日2003年8月28日
發(fā)明者J·A·小艾肯, 廖素珠, M·W·麥克林托克 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司