專利名稱:用于動(dòng)態(tài)客戶端/服務(wù)器網(wǎng)絡(luò)管理的方法以及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使用代理服務(wù)器進(jìn)行客戶端/服務(wù)器網(wǎng)絡(luò)管理的計(jì)算 機(jī)編程。
背景技術(shù):
分布式計(jì)算的客戶端/服務(wù)器模型操作以通過將由各種計(jì)算機(jī)硬 件和軟件資源執(zhí)行的"客戶端"任務(wù)和"服務(wù)器"任務(wù)之間的功能 進(jìn)行拆分(split)來滿足用戶的需要,該各種計(jì)算機(jī)硬件和軟件資源 組織成為用于彼此通信的"網(wǎng)絡(luò)",諸如局域網(wǎng)("LAN")或廣 域網(wǎng)("WAN")或互聯(lián)網(wǎng)。使用這種模型,"客戶端,,程序向"服 務(wù)器"程序發(fā)送消息請(qǐng)求以便根據(jù)某些通信"協(xié)議"(即,確定如 何經(jīng)過網(wǎng)絡(luò)傳輸信息的一組標(biāo)準(zhǔn)規(guī)則)獲得數(shù)據(jù)和/或處理動(dòng)作,并 且服務(wù)器通過執(zhí)行請(qǐng)求或通過將其延遲至另一時(shí)間、或者通過指示 其無法履行來完成處理事務(wù)。這種模型允許客戶端和服務(wù)器在計(jì)算 機(jī)網(wǎng)絡(luò)中彼此獨(dú)立地定位(并操作),其中該客戶端和服務(wù)器通常 使用適合于各自功能的不同硬件和操作系統(tǒng)。
"代理服務(wù)器(或網(wǎng)關(guān))"通常用于解決客戶端請(qǐng)求,該請(qǐng)求 針對(duì)將由其他網(wǎng)絡(luò)"應(yīng)用服務(wù)器"完成的事務(wù),該"應(yīng)用服務(wù)器" 能夠執(zhí)行事務(wù)所要求的數(shù)據(jù)處理動(dòng)作,但不能直接由客戶端訪問。 在消息的初始傳輸時(shí)如果沒有成功完成處理事務(wù),則客戶端可以使 用代理服務(wù)器的"陣列化集群"(或組)向應(yīng)用服務(wù)器發(fā)送消息的 重傳。在該情況下,使用RFC 3261標(biāo)準(zhǔn),代理服務(wù)器集群必須將(多 個(gè))重傳路由至與原始傳輸相同的應(yīng)用服務(wù)器,使得重傳與原始傳 輸相一致。目前的代理服務(wù)器技術(shù)(諸如,與IBM WebSphere —并 使用)提供了通過將消息尋址(即"哈希變換(hash)")至應(yīng)用服務(wù)器陣列來部分解決此問題。這種解決方案將一直工作直到每個(gè)集
群化的應(yīng)用服務(wù)器的數(shù)量(以及相關(guān)處理負(fù)載或"負(fù)重(weight)") 不再變化。然而,如果服務(wù)器開始(或停止)消息重傳之間的功能 (或者其中一個(gè)服務(wù)器的"負(fù)重"發(fā)生變化),則已重傳的代理消 息可能被路由至不同于原始期望的應(yīng)用服務(wù)器。
發(fā)明內(nèi)容
本發(fā)明提供了使用代理服務(wù)器的動(dòng)態(tài)客戶端/服務(wù)器網(wǎng)絡(luò)管理。 尤其是,使用了一種編程方法以及系統(tǒng)以允許陣列化集群中的每個(gè) 有效代理服務(wù)器維護(hù)該集群(稱為"代理集群陣列,,)中所有其他 操作中的代理服務(wù)器的更新列表。當(dāng)由集群的代理服務(wù)器接收到客 戶端消息(對(duì)網(wǎng)絡(luò)化應(yīng)用服務(wù)器的訪問請(qǐng)求)時(shí),可以將該消息轉(zhuǎn) 發(fā)至(集群內(nèi)的)另一代理服務(wù)器,使得消息(重)傳輸可以通過 與原始消息相同的代理服務(wù)器,以允許代理服務(wù)器做出關(guān)于該消息 的一致的路由(以及其他)決策。
當(dāng)代理服務(wù)器從用戶客戶端接收到請(qǐng)求訪問應(yīng)用服務(wù)器以便實(shí) 施處理事務(wù)的消息時(shí),代理服務(wù)器將該消息"哈希變換"(通過對(duì) 其尋址)至"目的地,,代理服務(wù)器。如果該目的地代理服務(wù)器并不 是初始接收到消息的那個(gè)代理服務(wù)器,則將該消息轉(zhuǎn)發(fā)至原始(目 的地)代理服務(wù)器,其在足夠長(zhǎng)的時(shí)間段內(nèi),(在本地)維護(hù)處理
"狀態(tài)"信息,以確定該消息是否為重傳(并且如果該消息是重傳, 則該目的地代理服務(wù)器可以作出與針對(duì)原始消息所作出的相同的處 理決策)。例如,目的地代理服務(wù)器可以標(biāo)識(shí)(或"記住,,)原始 消息所尋址(或"路由,,)的應(yīng)用服務(wù)器,以便將(多個(gè))重傳消 息路由至相同的應(yīng)用服務(wù)器。每個(gè)代理服務(wù)器在消息重傳之間的指 定(即最大可能)時(shí)間間隔期間(稱為"MAX—STATE (最大狀態(tài))") 維護(hù)這種狀態(tài)信息,該狀態(tài)信息用于指示針對(duì)該代理服務(wù)器已處理
(包括消息已被路由所至的應(yīng)用服務(wù)器的標(biāo)識(shí))的所有消息做出的 處理決策,其中為了潛在網(wǎng)絡(luò)傳輸延遲的考慮而調(diào)整該時(shí)間間隔。
這種方法允許代理服務(wù)器在動(dòng)態(tài)變化的客戶端/服務(wù)器網(wǎng)絡(luò)處理環(huán)境 中針對(duì)消息(重)傳輸做出一致的決策。
本發(fā)明提供使用代理服務(wù)器的動(dòng)態(tài)客戶端/服務(wù)器網(wǎng)絡(luò)管理,其 通過允許陣列化集群中的每個(gè)有效代理服務(wù)器維護(hù)該集群中所有其 他操作中的代理服務(wù)器的更新列表來實(shí)現(xiàn)。
本發(fā)明提供 一 種方法和系統(tǒng),其允許用戶客戶端發(fā)送請(qǐng)求經(jīng)由 集群代理服務(wù)器訪問應(yīng)用服務(wù)器的消息,這通過使用代理服務(wù)器以 提供消息的哈希變換,所述消息的哈希標(biāo)識(shí)維護(hù)該消息的狀態(tài)信息 的代理服務(wù)器。
在說明書的結(jié)論部分中特別指出并且清楚要求了作為本發(fā)明的 主題。然而,通過參考以下內(nèi)容并結(jié)合附圖可以更好地理解本發(fā)明 及其進(jìn)一步的目的和有益效果。
圖1示出了根據(jù)本發(fā)明的客戶端/服務(wù)器網(wǎng)絡(luò)操作的示意圖; 圖2示出了根據(jù)本發(fā)明的客戶端/服務(wù)器網(wǎng)絡(luò)操作的示意流程圖。
具體實(shí)施例方式
圖l示出了客戶端/服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò)的優(yōu)選操作的示意圖,該
計(jì)算機(jī)網(wǎng)絡(luò)利用SIP/UDP (用戶數(shù)據(jù)報(bào)協(xié)議上的會(huì)話發(fā)起協(xié)議)作 為傳輸協(xié)議,使得所示出的連接拓樸可以用于在位于網(wǎng)絡(luò)上的應(yīng)用 服務(wù)器和客戶端之間傳輸經(jīng)代理的消息(包含用于待處理事務(wù)的指 令和/或數(shù)據(jù));即用戶客戶端1/2/3向代理服務(wù)器集群11/22/33中 的一個(gè)發(fā)送消息,代理服務(wù)器集群11/22/33將該消息路由至應(yīng)用服 務(wù)器集群111/222/333中的一個(gè)。在圖l所示的示例中,(a)代理 服務(wù)器22從客戶端1直接接收消息Ml;以及(b)代理服務(wù)器11 接收消息RMl (Ml的重傳)并將其轉(zhuǎn)發(fā)至代理服務(wù)器22,繼而(無 論上述哪種情況下)將消息路由(即,負(fù)載均衡)至應(yīng)用服務(wù)器111。
如圖2所示出的流程圖,在步驟(i)中,當(dāng)(對(duì)話-發(fā)起)客戶端 消息M1/RM1使用SIP/UDP (或類似的)傳輸協(xié)議到達(dá)代理服務(wù)器 11時(shí),優(yōu)選地針對(duì)每個(gè)有效代理集群陣列實(shí)例來將<消息呼叫ID> 進(jìn)行"哈希變換"以及"取模,,(即,使用由選擇的陣列長(zhǎng)度除以 哈希值的余數(shù))以確定代理服務(wù)器22和/或33的潛在列表(每個(gè)都 稱為"潛在代理"),該潛在列表可能具有涉及擁有所述呼叫ID的 消息的處理狀態(tài)信息,如在圖2的步驟(ii)中示出。如果當(dāng)前有效代 理服務(wù)器11處于潛在代理的列表中,則針對(duì)涉及消息的處理狀態(tài)信 息檢查其本地存儲(chǔ)器高速緩存,以便確定該消息是否正被重傳,以 及(如果找到)通過直接將消息轉(zhuǎn)發(fā)至原始消息路由所至的應(yīng)用服 務(wù)器111來本地處理該消息。否則,將重傳的消息RM1轉(zhuǎn)發(fā)至尚未 被查詢的(如從在私有消息報(bào)頭中保持的"已訪問"潛在代理列表 來確定)潛在代理服務(wù)器,直到定位負(fù)責(zé)原始處理(并因此維持) 該消息的狀態(tài)信息的代理服務(wù)器22并將其用于將該消息(重)路由 至原始消息Ml路由所至的應(yīng)用服務(wù)器111 (由此去除私有報(bào)頭), 如在圖2的步驟(iii)中示出。如果潛在代理列表中的任何代理服務(wù)器 均未擁有該消息的狀態(tài)信息,則由最新代理集群陣列所確定的當(dāng)前 代理服務(wù)器11來創(chuàng)建狀態(tài)信息并直接處理使用該呼叫ID的消息(如 上文所述,并如在圖2的步驟(iv)中示出)。這創(chuàng)造了不太可能的情 況,即消息可能兩次通過同一代理服務(wù)器。
無論何時(shí)新的代理服務(wù)器33被激活(或去激活),均激活新的 代理集群陣列(并且代理集群陣列變?yōu)?最新"),并且(先前最 新)陣列隨即被視為"過期"(在下一 MAX—STATE間隔之后)。 因此可以將消息在代理服務(wù)器之間轉(zhuǎn)發(fā)多次用于檢查以確定消息是 否正在重傳。然而,在一般情況下,僅考慮在代理集群陣列中列出 的單一服務(wù)器,并且客戶端消息中的(N-l ) /N (其中N是代理服務(wù) 器的數(shù)量)將被一次轉(zhuǎn)發(fā)至另一代理服務(wù)器。在結(jié)合WebSphere使 用本發(fā)明的優(yōu)選示例中,使用了 一種"HAGroup"(高可用性組) 的處理機(jī)制(基于"虛擬同步,,技術(shù))用于追蹤有效的以及過期的
代理集群陣列的列表。當(dāng)被激活時(shí),每個(gè)代理服務(wù)器加入對(duì)應(yīng)于其
作為其中成員的集群的HAGroup,使得虛擬同步可以確保向每個(gè)有 效代理服務(wù)器提供有代理集群陣列的相同更新列表。如果代理服務(wù) 器有意停止其處理活動(dòng),則該代理服務(wù)器向(當(dāng)前有效)代理集群 陣列中列出的其他代理服務(wù)器廣播其狀態(tài)信息;然而,如果代理服 務(wù)器異常終止操作,則其處理的狀態(tài)信息丟失。(有可能通過復(fù)制 該狀態(tài)信息來解決這種情況,盡管這需要處理性能的開銷。)
真實(shí)精神,將按照法律的規(guī)定盡可能寬泛地進(jìn)行解釋從而覆蓋本發(fā) 明的完整范圍,包括所有與其等同的方案。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),其包括至少以下組件(a). 配置在陣列化集群中的兩個(gè)或多個(gè)代理服務(wù)器,用于通過網(wǎng)絡(luò)將傳輸?shù)南目蛻舳寺酚傻接伤龃矸?wù)器集群選擇的應(yīng)用服務(wù)器;其中每個(gè)有效代理服務(wù)器維護(hù)代理集群陣列中所有其他有效代理服務(wù)器的更新列表,用以允許將消息重傳/傳輸經(jīng)過所述代理集群陣列,以便遞送到正確的所述應(yīng)用服務(wù)器。
2. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中進(jìn)行路由的代理服 務(wù)器臨時(shí)存儲(chǔ)涉及所路由消息的處理狀態(tài)信息。
3. 根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中將所述消息進(jìn)行哈 希變換以確定存儲(chǔ)所述消息的臨時(shí)狀態(tài)信息的所述代理服務(wù)器。
4. 根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中將重傳/傳輸?shù)南?轉(zhuǎn)發(fā)至所述集群中的 一 個(gè)或多個(gè)代理服務(wù)器,以標(biāo)識(shí)擁有所述消息 的狀態(tài)信息的代理服務(wù)器。
5. 根據(jù)權(quán)利要求4所述的計(jì)算機(jī)系統(tǒng),其中將重傳/傳輸?shù)南?路由至擁有所述消,包、的狀態(tài)信息的代理服務(wù)器。
6. 根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中在消息重傳之間的 指定時(shí)間間隔內(nèi)維護(hù)消息狀態(tài)信息。
7. 根據(jù)權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其中當(dāng)新的代理服務(wù)器 被激活或去激活時(shí),更新代理集群陣列列表,并且在下一指定間隔 期間所述先前陣列列表過期。
8. 根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中去激活的代理服務(wù)器向所述代理集群陣列中的所述其他有效代理服務(wù)器廣播狀態(tài)信 自、
9. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中所述網(wǎng)絡(luò)使用在用 戶數(shù)據(jù)報(bào)協(xié)議上的會(huì)話發(fā)起協(xié)議(SIP/UDP)用于傳輸消息。
10. —種使用計(jì)算機(jī)系統(tǒng)的方法,包括由下列組件實(shí)現(xiàn)的至少以 下步驟(a).配置在陣列化集群中的兩個(gè)或多個(gè)代理服務(wù)器,用于通過網(wǎng)絡(luò)將傳輸?shù)南目蛻舳寺酚傻接伤龃矸?wù)器集群選擇的應(yīng)用服務(wù)器;其中每個(gè)有效代理服務(wù)器維護(hù)代理集群陣列中所有其他有效代 理服務(wù)器的更新列表,用以允許將消息重傳/傳輸經(jīng)過所述代理集群 陣列,以便遞送到正確的所述應(yīng)用服務(wù)器。
11. 根據(jù)權(quán)利要求10所述的方法,其中進(jìn)行路由的代理服務(wù)器臨時(shí)存儲(chǔ)涉及所路由消息的處理狀態(tài)信息。
12. 根據(jù)權(quán)利要求11所述的方法,其中將所述消息進(jìn)行哈希變 換以用于確定存儲(chǔ)所述消息的臨時(shí)狀態(tài)信息的所述代理服務(wù)器。
13. 根據(jù)權(quán)利要求11所述的方法,其中將重傳/傳輸?shù)南⑥D(zhuǎn)發(fā) 至所述集群中的 一個(gè)或多個(gè)代理服務(wù)器,以標(biāo)識(shí)擁有所述消息的狀 態(tài)信息的代理服務(wù)器。
14. 根據(jù)權(quán)利要求13所述的方法,其中將重傳/傳輸?shù)南⒙酚?至擁有所述消息的狀態(tài)信息的代理服務(wù)器。
15. 根據(jù)權(quán)利要求11所述的方法,其中在消息重傳之間的指定 時(shí)間間隔內(nèi)維護(hù)消息的狀態(tài)信息。
16. 根據(jù)權(quán)利要求15所述的方法,其中當(dāng)新的代理服務(wù)器被激 活或去激活時(shí),更新代理集群陣列列表,并且在下一指定間隔期間 所述先前陣列列表過期。
17. 根據(jù)權(quán)利要求11所述的方法,其中去激活的代理服務(wù)器向 所述代理集群陣列中的所述其他有效代理服務(wù)器廣播狀態(tài)信息。
18. 根據(jù)權(quán)利要求IO所述的方法,其中所述網(wǎng)絡(luò)使用在用戶數(shù) 據(jù)報(bào)協(xié)議上的會(huì)話發(fā)起協(xié)議(SIP/UDP)用于傳輸消息。
全文摘要
本發(fā)明公開了一種使用代理服務(wù)器的動(dòng)態(tài)客戶端/服務(wù)器網(wǎng)絡(luò)管理的編程方法以及系統(tǒng),其通過允許在陣列化集群中的每個(gè)有效代理服務(wù)器來維護(hù)該集群中所有其他操作中的代理服務(wù)器的更新列表來實(shí)現(xiàn)。當(dāng)集群的代理服務(wù)器接收到客戶端消息請(qǐng)求訪問應(yīng)用服務(wù)器時(shí),可以將該消息轉(zhuǎn)發(fā)到(集群內(nèi)的)的另一代理服務(wù)器,使得消息(重)傳輸可以通過與原始消息相同的代理服務(wù)器,這允許代理服務(wù)器作出關(guān)于該消息的一致的路由決策(以及其他決策)。
文檔編號(hào)G06F15/16GK101370035SQ200810210420
公開日2009年2月18日 申請(qǐng)日期2008年8月15日 優(yōu)先權(quán)日2007年8月16日
發(fā)明者B·K·史密斯, B·普利托, M·J·施普賴澤爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司