專利名稱:群集系統(tǒng)、服務(wù)器群集、群集成員、群集成員的冗余化方法、負(fù)荷分散方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種作為網(wǎng)絡(luò)設(shè)備起作用的群集(cluster)系統(tǒng),特別地 涉及一種作為在內(nèi)部運(yùn)行應(yīng)用程序的網(wǎng)絡(luò)設(shè)備起作用的群集系統(tǒng)。
背景技術(shù):
到目前為止,群集系統(tǒng)一直被利用為
(a) 構(gòu)筑提供單一功能的大規(guī)模裝置的手段
(b) 構(gòu)筑可用性高的裝置的手段。
通常,群集系統(tǒng)即使是單一系統(tǒng),也通過設(shè)置多個(gè)實(shí)現(xiàn)規(guī)定功能的裝 置(群集成員)、同時(shí)設(shè)置用于協(xié)調(diào)各群集成員使其工作的附加機(jī)構(gòu)來構(gòu)成。
(利用負(fù)荷平衡器的群集系統(tǒng))
雖然作為群集系統(tǒng)結(jié)構(gòu)法已知有各種各樣的方法,但比較廣泛地利用
在與其它系統(tǒng)的邊界處設(shè)置負(fù)荷平衡器的結(jié)構(gòu)。在圖30中示出了利用負(fù) 荷平衡器的群集系統(tǒng)1的結(jié)構(gòu)實(shí)例。群集系統(tǒng)1包括多個(gè)群集成員11-1 1 l-n、和負(fù)荷平衡器12。利用負(fù)荷平衡器12將通過網(wǎng)絡(luò)2從各節(jié)點(diǎn)(node) 31 3m傳送過來的IP包(packet)(通信數(shù)據(jù)),分配給各群集成員11-1 ll匿n。
圖30所示的群集系統(tǒng)1,具有利用負(fù)荷平衡器12,能夠相對其它的 系統(tǒng)隱蔽后段的裝置結(jié)構(gòu)和跳過故障(7 二 < A才一"',feu over)等的 事件、容易進(jìn)行負(fù)荷平衡等控制的優(yōu)點(diǎn)。另一方面,存在所謂負(fù)荷平衡器 12有可能成為瓶頸(bottleneck)的問題點(diǎn)。此外,為了避免負(fù)荷平衡器 12成為單一障礙點(diǎn),在冗余化負(fù)荷平衡器12的情況下,產(chǎn)生所謂結(jié)構(gòu)變 復(fù)雜的問題。(廣播*調(diào)度方式(broadcast* dispatch)的群集系統(tǒng)) 為了解決這些問題,提出一種不設(shè)置負(fù)荷平衡器的方式(廣播《調(diào)度 方式)的群集系統(tǒng)(例如參照特表2003-517221號(hào)公報(bào))。
圖31是表示廣播,調(diào)度方式的群集系統(tǒng)la的結(jié)構(gòu)實(shí)例的方框圖。群 集系統(tǒng)la由n臺(tái)群集成員13-l 13-n構(gòu)成。各群集成員13-l 13-n并列 連接到可多址通信的數(shù)據(jù)鏈路(data link) 4。各群集成員13-l 13-n分別 包括分配濾波器(filter) 14-l 14-n。
從其它節(jié)點(diǎn)31 3m向群集系統(tǒng)la傳送過來的IP包,通過數(shù)據(jù)鏈路 4對各群集成員13-l 13-n進(jìn)行多址通信。各群集系統(tǒng)13-l 13-n利用分 配濾波器14-l 14-n,計(jì)算多址通信的IP包的哈希(hash)值(例如,相 對于首(head)部中所含的發(fā)送源地址的哈希值),僅在計(jì)算出的哈希值 與分配給自群集成員的運(yùn)行哈希值相等的情況下進(jìn)行對已接收的IP包的 接收處理。像這樣,在廣播,調(diào)度方式的群集系統(tǒng)la中,向全部群集成 員13-l 13-n多址通信從其它節(jié)點(diǎn)31 3m傳送過來的IP包。各群集成員 13-l 13-n僅處理對應(yīng)于分配給自群集成員的運(yùn)行哈希值的IP包。由此實(shí) 現(xiàn)負(fù)荷分散。
并且,在廣播,調(diào)度方式的群集系統(tǒng)中,如果對2臺(tái)以上的群集成員 分配相同的運(yùn)行哈希值,則將會(huì)利用多個(gè)群集成員冗余地處理相同的IP 包。由此,不明示地進(jìn)行狀態(tài)復(fù)制就能進(jìn)行通信的冗余處理。由此,能夠 提高可量測性(scalability)和可用性。
可是,廣播'調(diào)度方式的群集系統(tǒng)以轉(zhuǎn)接包的路由器等的裝置作為開 發(fā)對象。這些裝置中,大多是如下這種裝置,特點(diǎn)是對包的處理一直都停 留在比較低的協(xié)議(protocol)階段,由于不進(jìn)行包內(nèi)的應(yīng)用層的處理等, 所以通過比較單純的處理能夠高速地轉(zhuǎn)接包。
圖32是表示圖31所示的群集成員13-1的結(jié)構(gòu)實(shí)例的方框圖,圖33A、 圖33B是用于說明圖31所示的群集系統(tǒng)la的動(dòng)作的圖。
參照圖32,群集成員13-1包括用于連接到與鄰接節(jié)點(diǎn)通信的數(shù)據(jù) 鏈路4的接收接口 141及發(fā)送接口 142;進(jìn)行包的處理及傳輸?shù)膮f(xié)議處理 部121、 122、、 12k;兩個(gè)包濾波器,即接收側(cè)分配濾波器131和發(fā)送 側(cè)分配濾波器132;以及設(shè)定濾波器13K 132的濾波器控制部133。
26各個(gè)濾波器131、 132,基于包首等利用哈希函數(shù)計(jì)算整數(shù)值,僅在通 過濾波器控制部133分配給相應(yīng)的濾波器131、 132的整數(shù)值與計(jì)算結(jié)果 的整數(shù)值相等的情況下,使包通過。在圖33A、 33B的例子中,有4臺(tái)群 集成員,為了簡便,使用1 4四種哈希值。
當(dāng)利用此結(jié)構(gòu)時(shí),如果對不同的群集成員的接收側(cè)分配濾波器設(shè)定相 伺哈希值的話,則在這些群集成員中會(huì)冗余地處理相同的包。由此,冗余 地處理對應(yīng)于相應(yīng)哈希值的通信量(traffic)。并且,為了防止將相同的 包傳送到多個(gè)系統(tǒng)外,僅就上述群集成員中的1臺(tái)群集成員對發(fā)送側(cè)分配 濾波器設(shè)定相應(yīng)哈希值。例如,在圖33A的例子中,應(yīng)當(dāng)清楚,利用左端 及其右邊相鄰的群集成員冗余地處理相當(dāng)于哈希值2的通信量,復(fù)制流動(dòng) (flow)狀態(tài)。
此外,如果將符合哈希函數(shù)數(shù)值范圍的值的集合分配給接收側(cè)分配濾 波器以使各群集成員無空隙、不重復(fù)地運(yùn)行,就能夠?qū)崿F(xiàn)通信量的負(fù)荷分 散。例如,雖然圖33A和33B的結(jié)構(gòu)相同,但利用基于處理對象包所計(jì) 算出的哈希值,切換處理群集成員,實(shí)現(xiàn)負(fù)荷分散。通過組合利用它們, 就能夠?qū)崿F(xiàn)廣播,路由群集。
另外,作為相關(guān)技術(shù),列舉以下文獻(xiàn)。在日本特開2000-83045號(hào)公報(bào) 中,記載了一種用于提供對應(yīng)于因網(wǎng)絡(luò)的大規(guī)?;鴮?dǎo)致的路由器線路增 強(qiáng)的需求、擴(kuò)張性高的路由器構(gòu)成技術(shù)的路徑控制技術(shù)。在日本特開平 3-36853號(hào)公報(bào)中,記載了一種以簡化應(yīng)用業(yè)務(wù)部的軟件結(jié)構(gòu)并且能進(jìn)行 高性能的調(diào)出及調(diào)入的呼叫控制為目的的ISDN終端裝置及ISDN終端的 呼叫控制方法。在日本特開平7-87536號(hào)公報(bào)中,記載了一種交換機(jī)的集 線虛擬化系統(tǒng)。此系統(tǒng)結(jié)構(gòu)為將處于同一交換機(jī)內(nèi)或交換機(jī)外的加入者 集線裝置的控制功能隱蔽在公用功能內(nèi),不會(huì)感覺到在呼叫控制應(yīng)用中有 無集線功能。
發(fā)明內(nèi)容
另一方面,在作為主節(jié)點(diǎn)(hostnode)進(jìn)行終端通信的服務(wù)器等裝置 中,處理普通應(yīng)用程序發(fā)送接收的包。即,在如圖34所示的主節(jié)點(diǎn)H中, 利用應(yīng)用程序110,處理通過接收接口 141、發(fā)送接口 142、協(xié)議處理部121、 122、…、12k、讀取API(Application Programming Interface)部151、 寫入API部152收發(fā)的包。過去,在群集化運(yùn)行這種應(yīng)用程序110的裝置 的情況下,采用以下這種方式,即利用負(fù)載平衡器按照應(yīng)用程序110的策 略(policy)進(jìn)行負(fù)荷分散,應(yīng)用程序110獨(dú)自地進(jìn)行狀態(tài)的冗余化。但 是,如果使用負(fù)載平衡器,就會(huì)如上所述,發(fā)生負(fù)載平衡器變成瓶頸等的 問題。
因此,應(yīng)當(dāng)考慮,利用廣播,調(diào)度方式群集化運(yùn)行應(yīng)用程序的裝置。 但是,在利用廣播,調(diào)度方式群集化運(yùn)行應(yīng)用程序的裝置的情況下,會(huì)產(chǎn) 生以下課題。
(1) 在應(yīng)用業(yè)務(wù)處理和協(xié)議處理中存在負(fù)荷分散、冗余化策略不同 的情況。
(2) 應(yīng)用業(yè)務(wù)必須一面保證一致性、 一面冗余化其具有的復(fù)雜狀態(tài)。 艮口,在廣播,調(diào)度方式中,由于在接收IP包之后對其首部附加哈希
值,所以存在不能將上位層的數(shù)據(jù)利用在通信量的分配中的情形。原因在 于,例如,通過TLS (參照RFC 2246, The TLS Protocol Version 1.0. T.Dierks, C.Allen. January 1999.)、禾卩IPsec ESP (參照RFC 4303, IP Encapsulating Security Payload(ESP). S.Kent. December 2005.)力瞎數(shù)據(jù), 通過IP碎片(fragmentation)分割上位層數(shù)據(jù)。因此,在這種情況下,存 在即使想按照上位層的數(shù)據(jù)分配通信量,其實(shí)現(xiàn)也困難的情形。
例如,利用廣播,調(diào)度方式的群集系統(tǒng)構(gòu)成Web服務(wù)器(HTTP)的 情況下,如果在所有群集成員中保持所有的內(nèi)容,就需要大量的資源。作 為此問題的對策,應(yīng)當(dāng)考慮根據(jù)內(nèi)容的識(shí)別信息向各群集成員分配內(nèi)容。 但是,由于在HTTP請求內(nèi)內(nèi)容的識(shí)別信息被描述為URL,所以根據(jù)內(nèi)容 的識(shí)別信息就不能分配通信量。由此,就必須在各群集成員中事先保持所 有的內(nèi)容。
此外,在協(xié)議處理中,考慮傳送通路中的數(shù)據(jù)的損失等,進(jìn)行送達(dá)確 認(rèn)和再發(fā)送。由此,即使用不同的群集成員獨(dú)立地處理多址的包,多數(shù)情 況下在各個(gè)群集成員的協(xié)議狀態(tài)中也不會(huì)產(chǎn)生大的差錯(cuò)。基于這種事實(shí), 廣播*調(diào)度方式與協(xié)議處理的兼容性好。
相對于此,應(yīng)用業(yè)務(wù)處理狀態(tài)復(fù)雜,此外,在UNIX (登記商標(biāo))等的多處理(multiprocess)執(zhí)行環(huán)境中,因進(jìn)程調(diào)度等而容易產(chǎn)生處理時(shí)鐘 的偏移。由此,即使輸入相同的數(shù)據(jù),也容易產(chǎn)生狀態(tài)錯(cuò)誤。此外, 一般 來說,與協(xié)議處理相比,應(yīng)用業(yè)務(wù)處理的執(zhí)行更復(fù)雜,很有可能以特定的 接收數(shù)據(jù)為起因而產(chǎn)生不適合。這種情況下,即便利用冗余系統(tǒng)處理多址 的數(shù)據(jù),因?yàn)椴荒芴岣呖煽啃裕詮V播*調(diào)度方式也是不合適的。
因此,希望實(shí)現(xiàn)可有效支持應(yīng)用業(yè)務(wù)處理和協(xié)議處理的廣播,調(diào)度方 式的群集系統(tǒng)。
可是,圖32、圖34所示的協(xié)議處理部121、 122、…、12k,接收側(cè) 分配濾波器131等,通常由OS(operating system,操作系統(tǒng))的核心(kernel) 來實(shí)現(xiàn),此外,應(yīng)用程序110也需要通過系統(tǒng)調(diào)用對OS收發(fā)IP包。由此, 為了滿足上述愿望,例如,就需要在OS中組裝用于滿足上述愿望的新功 能。但是,假如在OS中組裝新的功能,就會(huì)產(chǎn)生需要進(jìn)行大規(guī)模變更這 樣的問題。
因此,本發(fā)明的目的在于,提供一種不對OS增加大規(guī)模的變更、且 能有效支持應(yīng)用業(yè)務(wù)處理和協(xié)議處理的廣播,調(diào)度方式的群集系統(tǒng)。
本發(fā)明的一實(shí)施例的群集系統(tǒng)或服務(wù)器群集,包括多個(gè)群集成員,并 且,多個(gè)群集成員分別包括執(zhí)行協(xié)議處理的協(xié)議處理部;按照呼叫的種 類從協(xié)議處理部讀取數(shù)據(jù)或在協(xié)議處理部中寫入數(shù)據(jù)的通信API部;以及 捕捉部,捕捉來自在本群集成員上動(dòng)作的應(yīng)用程序的對通信API部的呼 叫、替代應(yīng)用程序呼叫通信API部,對根據(jù)此呼叫、通信API部從協(xié)議處 理部讀取的數(shù)據(jù)或根據(jù)此呼叫、通信API部在協(xié)議處理部中寫入的數(shù)據(jù)進(jìn) 行對應(yīng)于呼叫的種類的處理,同時(shí),對從其它的群集成員傳送過來的數(shù)據(jù) 進(jìn)行對應(yīng)于此數(shù)據(jù)的種類的處理。
本發(fā)明的其它實(shí)施例的群集系統(tǒng)或服務(wù)器群集包括多個(gè)群集成員,并 且,多個(gè)群集成員之內(nèi)的作為現(xiàn)用系統(tǒng)進(jìn)行工作的群集成員包括執(zhí)行協(xié) 議處理的現(xiàn)用系統(tǒng)協(xié)議處理部;現(xiàn)用系統(tǒng)通信API部,對讀取呼叫進(jìn)行應(yīng) 答、從現(xiàn)用系統(tǒng)協(xié)議處理部讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將按照此寫 入呼叫指示寫入的數(shù)據(jù)寫入現(xiàn)用系統(tǒng)協(xié)議處理部中;現(xiàn)用系統(tǒng)呼叫捕捉 部,捕捉來自在本群集成員上動(dòng)作的應(yīng)用程序的讀取呼叫或?qū)懭牒艚?,?捕捉到讀取呼叫的情況下替代應(yīng)用程序?qū)ΜF(xiàn)用系統(tǒng)通信API部進(jìn)行讀取呼叫,將對此讀取呼叫進(jìn)行應(yīng)答、現(xiàn)用系統(tǒng)通信API部從現(xiàn)用系統(tǒng)協(xié)議處 理部讀取的數(shù)據(jù)提交給應(yīng)用程序,在捕捉到寫入呼叫的情況下替代應(yīng)用程 序?qū)ΜF(xiàn)用系統(tǒng)通信API部進(jìn)行寫入呼叫;以及現(xiàn)用系統(tǒng)傳輸部,在現(xiàn)用系 統(tǒng)呼叫捕捉部捕捉到寫入呼叫的情況下,對成為本群集成員的備用系統(tǒng)的 群集成員傳輸寫入數(shù)據(jù)的復(fù)制數(shù)據(jù)。多個(gè)群集成員之內(nèi)作為備用系統(tǒng)迸行 工作的群集成員包括執(zhí)行協(xié)議處理的備用系統(tǒng)協(xié)議處理部;備用系統(tǒng)通 信API部,對讀取呼叫進(jìn)行應(yīng)答、從備用系統(tǒng)協(xié)議處理部中讀取數(shù)據(jù),對 寫入呼叫進(jìn)行應(yīng)答、將數(shù)據(jù)寫入備用系統(tǒng)協(xié)議處理部中;備用系統(tǒng)寫入部, 當(dāng)從現(xiàn)用系統(tǒng)傳輸部傳送過來復(fù)制數(shù)據(jù)時(shí),對備用系統(tǒng)通信API部進(jìn)行寫 入呼叫,將復(fù)制數(shù)據(jù)寫入備用系統(tǒng)協(xié)議處理部中;以及廢棄部,廢棄由備 用系統(tǒng)協(xié)議處理部己完成協(xié)議處理的接收數(shù)據(jù)及發(fā)送數(shù)據(jù)。
本發(fā)明的另一個(gè)實(shí)施例的群集系統(tǒng)或服務(wù)器群集包括多個(gè)群集成員。 多個(gè)群集成員分別包括執(zhí)行協(xié)議處理的協(xié)議處理部;接收側(cè)分配濾波器, 根據(jù)預(yù)定的協(xié)議處理用分配規(guī)則,在判斷為接收包是需要由本群集成員處 理的接收包的情況下,將接收包提交給協(xié)議處理部;通信API部,應(yīng)答讀 取呼叫、從協(xié)議處理部讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將按照該寫入呼 叫指示寫入的數(shù)據(jù)寫入?yún)f(xié)議處理部中;呼叫捕捉部,捕捉來自在本群集成 員上動(dòng)作的應(yīng)用程序的讀取呼叫或?qū)懭牒艚?,在捕捉到讀取呼叫的情況下 替代應(yīng)用程序?qū)νㄐ臕PI部進(jìn)行讀取呼叫,在對該讀取呼叫進(jìn)行應(yīng)答、通 信API部從協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的接收 數(shù)據(jù)的情況下,將該接收數(shù)據(jù)提交給應(yīng)用程序,在對該讀取呼叫進(jìn)行應(yīng)答、 通信API部從協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員送過來的發(fā)送 數(shù)據(jù)的情況下,將此發(fā)送數(shù)據(jù)提交給協(xié)議處理部,除此之外的情況下,將 數(shù)據(jù)提交給應(yīng)用業(yè)務(wù)處理分配部,在捕捉到寫入呼叫的情況下,將按照捕 捉到的寫入呼叫而指示寫入的發(fā)送數(shù)據(jù)提交給協(xié)議處理分配部;應(yīng)用業(yè)務(wù) 處理分配部,按照預(yù)定的應(yīng)用業(yè)務(wù)處理用分配規(guī)則決定擔(dān)當(dāng)對呼叫捕捉部 提交的數(shù)據(jù)的應(yīng)用業(yè)務(wù)處理的群集成員,在決定的群集成員是本群集成員 的情況下、將數(shù)據(jù)提交給本群集成員上的應(yīng)用程序,在決定的群集成員是 其它的群集成員的情況下、將數(shù)據(jù)提交給傳輸部;協(xié)議處理分配部,按照 預(yù)定的協(xié)議處理用分配規(guī)則決定擔(dān)當(dāng)對呼叫捕捉部提交的數(shù)據(jù)的協(xié)議處200
理的群集成員,在決定的群集成員是本群集成員的情況下、將數(shù)據(jù)提交給 本群集成員上的協(xié)議處理部,在決定的群集成員是其它的群集成員的情況 下、將數(shù)據(jù)提交給傳輸部;以及傳輸部,將應(yīng)用業(yè)務(wù)處理分配部及協(xié)議處
理分配部提交的數(shù)據(jù)向相應(yīng)的群集成員進(jìn)行傳送。
本發(fā)明的另一個(gè)實(shí)施例的群集系統(tǒng)或服務(wù)器群集包括多個(gè)群集成員, 其中從在所有群集成員中多址通信的通信量中,各群集成員篩選自己的運(yùn)
行部分,除此之外進(jìn)行廢棄,由此分配通信量。群集系統(tǒng)或服務(wù)器群集(a) 在各群集成員的接收接口和協(xié)議處理部之間包括接收側(cè)分配濾波器,其保 持根據(jù)包首等計(jì)算整數(shù)值的計(jì)算規(guī)則和分配給自己的整數(shù)值。在接收側(cè)分 配濾波器中,按照計(jì)算規(guī)則對每一包計(jì)算整數(shù)值,僅在計(jì)算結(jié)果等于分配 給自己的整數(shù)值的情況下,將包接交給協(xié)議處理部的接收處理,并且在現(xiàn) 用系統(tǒng)和備用系統(tǒng)將相同數(shù)值分配給接收側(cè)分配濾波器,并且分配整數(shù)值 以便在各群集成員中無縫分擔(dān)根據(jù)計(jì)算規(guī)則得到的計(jì)算結(jié)果的整數(shù)值的 集合,由此就能夠進(jìn)行通信量的分配和協(xié)議的冗余處理。群集系統(tǒng)或服務(wù) 器群集(b)在各群集成員的協(xié)議處理部和應(yīng)用程序之間還包括分配*冗 余處理部,其保持根據(jù)含接收包的應(yīng)用業(yè)務(wù)數(shù)據(jù)計(jì)算整數(shù)值的計(jì)算規(guī)則、 和根據(jù)分配給各群集成員的整數(shù)值的整體的分配規(guī)則。在分配*冗余處理 部中,將相應(yīng)數(shù)據(jù)傳送給按照分配規(guī)則分配了基于接收數(shù)據(jù)計(jì)算出的整數(shù) 值的群集成員,傳送對象群集成員的應(yīng)用程序執(zhí)行讀取處理時(shí),執(zhí)行相應(yīng) 數(shù)據(jù)的讀取處理。并且,分配*冗余處理部,對于應(yīng)用程序?qū)懭氲臄?shù)據(jù), 保持基于在其發(fā)送處理中利用的首信息、以與接收側(cè)分配濾波器相同的規(guī) 則計(jì)算整數(shù)值的計(jì)算規(guī)則、和分配給各群集成員的整數(shù)值的整體,對于應(yīng) 用程序?qū)懭氲臄?shù)據(jù)按照計(jì)算規(guī)則計(jì)算整數(shù)值,對分配了整數(shù)值的多個(gè)群集 成員傳送寫入數(shù)據(jù),由此群集系統(tǒng)或服務(wù)器群集就能夠獨(dú)立地控制應(yīng)用業(yè) 務(wù)處理和冗余化的協(xié)議處理成員的分配。群集系統(tǒng)或服務(wù)器群集(c)在 各群集成員的發(fā)送側(cè)接口和協(xié)議處理部之間還包括發(fā)送側(cè)包濾波器,廢棄 作為備用成員處理了的包。
本發(fā)明的另一個(gè)實(shí)施例的群集系統(tǒng)或服務(wù)器群集包括多個(gè)群集成員, 其中從在所有群集成員中多址通信的通信量中,各群集成員篩選自己的擔(dān) 當(dāng)部分,除此之外進(jìn)行廢棄,由此分配通信量。在群集系統(tǒng)、或各群集成
31員的收發(fā)接口和協(xié)議處理部之間包括發(fā)送側(cè)分配濾波器和接收側(cè)分配濾 被器,它們保持根據(jù)包首等計(jì)算整數(shù)值的計(jì)算規(guī)則和分配給自己的整數(shù) 值。在接收側(cè)分配濾波器中,按照計(jì)算規(guī)則對每一包計(jì)算整數(shù)值,僅在計(jì) 算結(jié)果等于分配給自己的整數(shù)值的情況下,將該包接交給協(xié)議處理部的接 收處理。在發(fā)送側(cè)分配濾波器中,通過對協(xié)議處理部接交的每一發(fā)送包按 照計(jì)算規(guī)則計(jì)算整數(shù)值,僅在計(jì)算結(jié)果與分配給自己的整數(shù)值相等的情況 下,從發(fā)送接口輸出包,并且對現(xiàn)用系統(tǒng)和備用系統(tǒng)分配給接收側(cè)分配濾 波器相同數(shù)值,僅在現(xiàn)用系統(tǒng)內(nèi)分配給發(fā)送側(cè)分配濾波器數(shù)值,就能進(jìn)行
冗余處理;并且,通過分配整數(shù)值以便在各群集成員中無縫分擔(dān)根據(jù)計(jì)算
規(guī)則得到的計(jì)算結(jié)果的整數(shù)值的集合,就能夠進(jìn)行通信量的分配和冗余處理。
(作用)
在群集成員中設(shè)置有捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)
用程序的對通信API部的呼叫。此捕捉部捕捉到呼叫時(shí),就替代應(yīng)用程序 呼叫通信API部。捕捉部針對按照此呼叫、通信API部從協(xié)議處理部讀取 的數(shù)據(jù)或按照此呼叫、通信API部在協(xié)議處理部中寫入的數(shù)據(jù),進(jìn)行對應(yīng) 呼叫的種類的處理。捕捉部還針對從其它群集成員發(fā)送過來的數(shù)據(jù)進(jìn)行對 應(yīng)此數(shù)據(jù)的種類的處理。捕捉部能夠設(shè)置在構(gòu)成協(xié)議處理部的OS的外部。 由此,能夠提供一種不對OS增加大規(guī)模的變更、可有效地支持應(yīng)用業(yè)務(wù) 處理和協(xié)議處理的廣播"調(diào)度方式的群集系統(tǒng)。
例如,在冗余化群集成員的情況下,作為進(jìn)行上述處理的捕捉部,可 在現(xiàn)用系統(tǒng)的群集成員上設(shè)置現(xiàn)用系統(tǒng)呼叫捕捉部和現(xiàn)用系統(tǒng)傳輸部?,F(xiàn) 用系統(tǒng)呼叫捕捉部捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的讀取 呼叫或?qū)懭牒艚小T诓蹲降阶x取呼叫的情況下,現(xiàn)用系統(tǒng)呼叫捕捉部,替 代應(yīng)用程序?qū)ΜF(xiàn)用系統(tǒng)通信API部進(jìn)行讀取呼叫,對此讀取呼叫進(jìn)行應(yīng) 答,將現(xiàn)用系統(tǒng)通信API部從現(xiàn)用系統(tǒng)協(xié)議處理部讀取的數(shù)據(jù)提交給應(yīng)用 程序。在捕捉到寫入呼叫的情況下,現(xiàn)用系統(tǒng)呼叫捕捉部就替代應(yīng)用程序 對現(xiàn)用系統(tǒng)通信API部進(jìn)行寫入呼叫。現(xiàn)用系統(tǒng)呼叫捕捉部還在捕捉到寫 入呼叫的情況下,針對作為本群集成員的備用系統(tǒng)的群集成員,利用現(xiàn)用 系統(tǒng)傳輸部傳送寫入數(shù)據(jù)的復(fù)制數(shù)據(jù)。另一方面,在備用系統(tǒng)的群集成員上,作為捕捉部設(shè)置備用系統(tǒng)寫入 部和廢棄部。備用系統(tǒng)寫入部在現(xiàn)用系統(tǒng)傳輸部傳送來復(fù)制數(shù)據(jù)時(shí),對備 用系統(tǒng)通信API部進(jìn)行寫入呼叫,將復(fù)制數(shù)據(jù)寫入備用系統(tǒng)協(xié)議處理部。 廢棄部廢棄通過備用系統(tǒng)協(xié)議處理部已完成協(xié)議處理的接收數(shù)據(jù)及發(fā)送 數(shù)據(jù)。
通過采取這種結(jié)構(gòu),就會(huì)如圖29A所示,在現(xiàn)用系統(tǒng)、備用系統(tǒng)的協(xié) 議處理部中處理相同的發(fā)送通信量、接收通信量,并且僅在現(xiàn)用系統(tǒng)的群 集成員中,進(jìn)行數(shù)據(jù)發(fā)送并向應(yīng)用程序接收并提交接收數(shù)據(jù)。由于現(xiàn)用系 統(tǒng)的協(xié)議處理部和備用系統(tǒng)的協(xié)議處理部處理相同的接收通信量、發(fā)送通 信量,所以其狀態(tài)也就相同。
再有,應(yīng)用程序能夠以獨(dú)自的方法進(jìn)行應(yīng)用程序所具有的復(fù)雜的狀態(tài) 的冗余化。例如,可以用以下方法進(jìn)行冗余化。
1、 現(xiàn)用系統(tǒng)應(yīng)用程序從通信對方接收任何數(shù)據(jù)
2、 現(xiàn)用系統(tǒng)應(yīng)用程序基于接收數(shù)據(jù)決定管理數(shù)據(jù)的更新內(nèi)容,使用 進(jìn)程(process)間通信和公用存儲(chǔ)器等將相應(yīng)更新內(nèi)容通知給備用系統(tǒng)應(yīng) 用程序。
3、 備用系統(tǒng)應(yīng)用程序,根據(jù)來自現(xiàn)用系統(tǒng)的通知更新自己的管理數(shù) 據(jù),向現(xiàn)用系統(tǒng)應(yīng)用程序應(yīng)答更新成功與否。
4、 現(xiàn)用系統(tǒng)應(yīng)用處理程序,在備用系統(tǒng)應(yīng)用程序的數(shù)據(jù)更新成功之 后,更新自己的管理數(shù)據(jù)。
5、 在正確進(jìn)行以上處理后,向通信對方反饋應(yīng)答。
另一方面,在迸行負(fù)荷分散的情況下,在群集成員上作為捕捉部設(shè)置 呼叫捕捉部、應(yīng)用業(yè)務(wù)處理分配部、協(xié)議處理分配部和傳輸部。
呼叫捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的讀取呼 叫或?qū)懭牒艚小?br>
在捕捉到讀取呼叫的情況下,呼叫捕捉部替代應(yīng)用程序?qū)νㄐ臕PI部 進(jìn)行讀取呼叫。在應(yīng)答此讀取呼叫通信API部從協(xié)議處理部讀取的數(shù)據(jù)是 從其它的群集成員發(fā)送過來的接收數(shù)據(jù)的情況下,呼叫捕捉部將讀取的數(shù) 據(jù)提交給應(yīng)用程序。在通信API部讀取的數(shù)據(jù)是從其它的群集發(fā)送過來的 發(fā)送數(shù)據(jù)的情況下,呼叫捕捉部將讀取的數(shù)據(jù)提交給協(xié)議處理部。除此之
33外的情況下,呼叫捕捉部將上述數(shù)據(jù)提交給應(yīng)用業(yè)務(wù)處理分配部。
此外,在捕捉到寫入呼叫的情況下,將按照捕捉到的寫入呼叫而指示 寫入的發(fā)送數(shù)據(jù)提供給協(xié)議處理分配部。
應(yīng)用業(yè)務(wù)處理分配部按照預(yù)定的應(yīng)用業(yè)務(wù)處理用分配規(guī)則決定擔(dān)當(dāng) 對從呼叫捕捉部提交的數(shù)據(jù)的應(yīng)用業(yè)務(wù)處理的群集成員。而且,在決定的 群集成員是本群集成員的情況下,將數(shù)據(jù)提交給本群集成員上的應(yīng)用程 序,在決定的群集成員是其它的群集成員的情況下,將數(shù)據(jù)提交給傳輸部。
此外,協(xié)議處理分配部按照預(yù)定的協(xié)議處理用分配規(guī)則決定擔(dān)當(dāng)對從 呼叫捕捉部提交的數(shù)據(jù)的協(xié)議處理的群集成員。而且,在決定的群集成員 是本群集成員的情況下,將數(shù)據(jù)提交給本群集成員上的協(xié)議處理部,在決 定的群集成員是其它的群集成員的情況下,將數(shù)據(jù)提交給傳輸部。
傳輸部將從應(yīng)用業(yè)務(wù)處理分配部及協(xié)議處理分配部提交的數(shù)據(jù)傳送 給相應(yīng)的群集成員。
通過釆用這種結(jié)構(gòu),就如圖29B所示,能夠用不同的群集成員進(jìn)行對
通信量的協(xié)議處理和應(yīng)用業(yè)務(wù)處理。
根據(jù)本發(fā)明能夠得到這種效果,即能夠提供一種不對OS增加大規(guī)模 的變更、可有效地支持應(yīng)用業(yè)務(wù)處理和協(xié)議處理的廣播'調(diào)度方式的群集 系統(tǒng)。其理由如下。群集成員所包括的捕捉部,捕捉來自在本群集成員上 進(jìn)行工作的應(yīng)用程序的對通信API部的呼叫,替代此應(yīng)用程序呼叫通信 API部。捕捉部針對按照此呼叫、通信API部從協(xié)議處理部讀取的數(shù)據(jù)或 按照上述呼叫、通信API部在協(xié)議處理部中寫入的數(shù)據(jù),進(jìn)行對應(yīng)上述呼 叫的種類的處理。捕捉部還針對從其它群集成員發(fā)送過來的數(shù)據(jù)進(jìn)行對應(yīng) 此數(shù)據(jù)的種類的處理。由于此捕捉部能夠設(shè)置在構(gòu)成協(xié)議處理部的OS的 外部,所以能夠提供一種不對OS增加大規(guī)模的變更、可有效地支持應(yīng)用 業(yè)務(wù)處理和協(xié)議處理的廣播,調(diào)度方式的群集系統(tǒng)。
根據(jù)本發(fā)明,能夠冗余化要求高度可靠性的基礎(chǔ)業(yè)務(wù)用服務(wù)器裝置和 在網(wǎng)絡(luò)上通信量集中的應(yīng)用業(yè)務(wù)級(jí)網(wǎng)關(guān)(applicationlevel gateway)裝置。 此外,例如,關(guān)于用通信載體進(jìn)行電話的呼叫控制的服務(wù)器裝置等,使用 即使作為單一裝置也進(jìn)行動(dòng)作的上述服務(wù)器裝置,作為增設(shè)任意臺(tái)數(shù)的服 務(wù)器裝置進(jìn)行負(fù)荷分散的群集裝置,能夠非常大規(guī)模地構(gòu)筑處理能力大的服務(wù)器。
圖1示出在本發(fā)明相關(guān)的實(shí)施例1中使用的群集成員100的結(jié)構(gòu)實(shí)例。
圖2是用于說明實(shí)施例1的現(xiàn)用系統(tǒng)、備用系統(tǒng)的圖。 圖3A示出比較例的主節(jié)點(diǎn)H的接收讀取處理(協(xié)議處理)的流程圖。 圖3B示出比較例的主節(jié)點(diǎn)H的接收讀取處理(應(yīng)用業(yè)務(wù)處理)的流 程圖。
圖4A示出實(shí)施例1中的現(xiàn)用系統(tǒng)的接收讀取處理(協(xié)議處理)的一 個(gè)實(shí)例的流程圖。
圖4B示出實(shí)施例1中的現(xiàn)用系統(tǒng)的接收讀取處理(應(yīng)用業(yè)務(wù)處理) 的一個(gè)實(shí)例的流程圖。
圖5A示出實(shí)施例1中的備用系統(tǒng)的接收讀取處理的一個(gè)實(shí)例的流程圖。
圖5B示出實(shí)施例1中的備用系統(tǒng)的接收讀取處理的一個(gè)實(shí)例的流程圖。
圖6示出實(shí)施例1的接收讀取指令序列(s叫uence)圖。
圖7示出比較例的主節(jié)點(diǎn)H的寫入發(fā)送處理的圖。
圖8A示出實(shí)施例1中的現(xiàn)用系統(tǒng)的寫入發(fā)送處理的一個(gè)實(shí)例的圖。
圖8B示出實(shí)施例1中的現(xiàn)用系統(tǒng)的寫入發(fā)送處理的一個(gè)實(shí)例的圖。
圖9是實(shí)施例1中的備用系統(tǒng)的寫入發(fā)送處理的一個(gè)實(shí)例的圖。
圖IO示出實(shí)施例1中的寫入發(fā)送指令序列圖。
圖11示出實(shí)施例1中的服務(wù)器側(cè)的通話(session)建立指令序列圖。
圖12示出實(shí)施例1中的客戶側(cè)的通話建立指令序列圖。
圖13A是用于說明本發(fā)明的實(shí)施例2的概況圖。
圖13B是用于說明本發(fā)明的實(shí)施例2的概況圖。
圖14示出本發(fā)明相關(guān)的群集系統(tǒng)的實(shí)施例2的結(jié)構(gòu)實(shí)例的方框圖。
圖15示出在實(shí)施例2中使用的群集成員100a-l的結(jié)構(gòu)實(shí)例的方框圖。
圖16A示出實(shí)施例2中的接收讀取處理的一個(gè)實(shí)例的圖。
圖16B示出實(shí)施例2中的接收讀取處理的一個(gè)實(shí)例的圖。
35圖17A示出實(shí)施例2中的讀取改址(redirect)處理的一個(gè)實(shí)例的圖。
圖17B示出實(shí)施例2中的讀取改址處理的一個(gè)實(shí)例的圖。
圖18A示出實(shí)施例2中的寫入發(fā)送處理的一個(gè)實(shí)例的圖。
圖18B示出實(shí)施例2中的寫入發(fā)送處理的一個(gè)實(shí)例的圖。
圖19示出實(shí)施例2中的服務(wù)器側(cè)的通話建立指令序列圖。
圖20示出實(shí)施例2中的服務(wù)器側(cè)的通話建立指令序列圖。
圖21示出實(shí)施例2中的客戶側(cè)的通話建立指令序列圖。
圖22是用于說明本發(fā)明相關(guān)的群集系統(tǒng)的實(shí)施例3的概況圖。
圖23是用于說明本發(fā)明相關(guān)的群集系統(tǒng)的實(shí)施例3的概況圖。
圖24示出在實(shí)施例3中使用的群集成員100b的結(jié)構(gòu)實(shí)例的方框圖。
圖25A示出實(shí)施例3中的接收讀取處理的一個(gè)實(shí)例的流程圖。
圖25B示出實(shí)施例3中的接收讀取處理的一個(gè)實(shí)例的流程圖。
圖26A示出實(shí)施例3中的讀取處理的一個(gè)實(shí)例的流程圖。
圖26B示出實(shí)施例3中的讀取處理的一個(gè)實(shí)例的流程圖。
圖26C示出實(shí)施例3中的讀取處理的一個(gè)實(shí)例的流程圖。
圖26D示出實(shí)施例3中的讀取處理的一個(gè)實(shí)例的流程圖。
圖27A示出實(shí)施例3中的API側(cè)的寫入發(fā)送處理的一個(gè)實(shí)例的流程圖。
圖27B示出實(shí)施例3中的API側(cè)的寫入發(fā)送處理的一個(gè)實(shí)例的流程圖。
圖28示出實(shí)施例3中的協(xié)議處理側(cè)的寫入發(fā)送處理的一個(gè)實(shí)例的流 程圖。
圖29A是用于說明本發(fā)明的作用的圖。 圖29B是用于說明本發(fā)明的作用的圖。 圖30是用于說明使用負(fù)荷平衡器的技術(shù)的圖。 圖31是廣播,調(diào)度方式的群集系統(tǒng)的方框圖。 圖32示出廣播,調(diào)度方式的群集成員13-1結(jié)構(gòu)的方框圖。 圖33A是用于說明廣播'調(diào)度方式的群集系統(tǒng)的工作的圖。 圖33B是用于說明廣播'調(diào)度方式的群集系統(tǒng)的工作的圖。 圖34示出應(yīng)用程序工作的主節(jié)點(diǎn)H的結(jié)構(gòu)的方框圖。
36圖35示出在本發(fā)明的實(shí)施例4中使用的群集成員100c的結(jié)構(gòu)實(shí)例的 方框圖。
圖36示出在本發(fā)明的實(shí)施例4中使用的備用系統(tǒng)的接收分配濾波器
1031及發(fā)送側(cè)分配濾波器1032的結(jié)構(gòu)實(shí)例的方框圖。
圖37示出在本發(fā)明的實(shí)施例4中使用的現(xiàn)用系統(tǒng)的接收側(cè)分配濾波
器1021的結(jié)構(gòu)實(shí)例的方框圖。
圖38示出實(shí)施例4的備用系統(tǒng)的處理例的流程表。
圖39A示出實(shí)施例4的現(xiàn)用系統(tǒng)的處理例的流程表。
圖39B示出實(shí)施例4的現(xiàn)用系統(tǒng)的處理例的流程表。
圖39C示出實(shí)施例4的現(xiàn)用系統(tǒng)的處理例的流程表。
圖40是用于說明本發(fā)明相關(guān)的實(shí)施例5中所解決的問題點(diǎn)的圖。
圖41示出在實(shí)施例5中使用的群集成員的結(jié)構(gòu)實(shí)例的方框圖。
圖42A示出實(shí)施例5的處理例的流程圖。
圖42B示出實(shí)施例5的處理例的流程圖。
具體實(shí)施例方式
接著,參照附圖,詳細(xì)地說明用于實(shí)施發(fā)明的最佳方式。 [本發(fā)明的實(shí)施例1]
在本發(fā)明的實(shí)施例l中,其中廣播,調(diào)度方式的群集系統(tǒng)進(jìn)行搭載了 應(yīng)用程序的群集成員的冗余化。通過在圖31示出的這種廣播*調(diào)度方式 的群集系統(tǒng)中,替代群集成員13-l 13-n,使用圖1所示的群集成員100 來實(shí)現(xiàn)本實(shí)施例。例如,本實(shí)施例的群集系統(tǒng)具有服務(wù)器(服務(wù)器群集) 的功能。
參照圖1,本實(shí)施例相關(guān)的群集成員100包括應(yīng)用程序110,協(xié)議 處理部121、 122、…、12k,接收側(cè)分配濾波器131,發(fā)送側(cè)分配濾波器 132,濾波器控制部133,接收接口 141,發(fā)送接口 142,作為通信API部 的讀取API部151,作為通信API部的寫入API部152,讀取API呼叫捕 捉部161,寫入API呼叫捕捉部162,復(fù)制部/核對部171,復(fù)制部/寫入部 172,控制部173,和傳輸部174。如以下所示,群集成員ioo能夠用計(jì)算機(jī)來實(shí)現(xiàn)。準(zhǔn)備記錄用于使計(jì) 算機(jī)作為群集成員100起作用的程序的磁盤(disk)、半導(dǎo)體存儲(chǔ)器、其
它的記錄介質(zhì)。使計(jì)算機(jī)上讀取上述程序。計(jì)算機(jī)通過根據(jù)讀取的程序來
控制自身的動(dòng)作,就在本計(jì)算機(jī)上實(shí)現(xiàn)協(xié)議處理部121、 122、…、12k, 接收側(cè)分配濾波器131,發(fā)送側(cè)分配濾波器132,濾波器控制部133,接收 接口 141,發(fā)送接口 142,讀取API部151,寫入API部152,讀取API 呼叫捕捉部161,寫入API呼叫捕捉部162,復(fù)制部/核對部171,復(fù)制部/ 寫入部172,控制部173,和傳輸部174。
群集成員100能夠具有現(xiàn)用群集成員、備用群集成員的任意一種功能。 圖2示出了群集成員IOO具有現(xiàn)用群集成員、備用群集成員的功能時(shí)的結(jié) 構(gòu)和收發(fā)數(shù)據(jù)的流程。圖2僅抽取示出本發(fā)明的主要部分。附圖中省略了 協(xié)議處理部121、 122、…、12k,接收側(cè)分配濾波器131,發(fā)送側(cè)分配濾 波器132,濾波器控制部133,接收接口141,發(fā)送接口 142。
備用群集成員在讀取API部151及寫入API部152與應(yīng)用程序110之 間包括核對部171 (在具有備用群集成員功能的情況下,圖1的復(fù)制部/ 核對部171具有圖2的核對部171的功能)、寫入部172 (在具有備用群 集成員功能的情況下,圖1的復(fù)制部/寫入部172具有圖2的寫入部172 的功能)、讀取API呼叫捕捉部161、寫入API呼叫捕捉部162、控制部 173、和傳輸部174??刂撇?73在其內(nèi)部包括切換通知部1731、切換控 制部1732、現(xiàn)用監(jiān)視部1733。
讀取API呼叫捕捉部161、寫入API呼叫捕捉部162、傳輸部174的 功能按現(xiàn)用群集成員時(shí)的說明。
使用復(fù)制部/寫入部172是為了使從現(xiàn)用群集成員傳送來的寫入用數(shù) 據(jù)經(jīng)過備用群集成員的寫入API部152而返回到備用群集成員的發(fā)送處 理。
核對部171收取在由現(xiàn)用群集成員讀取的接收數(shù)據(jù),通過經(jīng)過備用群 集成員自身的讀取API部151進(jìn)行讀取處理,并進(jìn)行是否讀取相同內(nèi)容的 核對處理。
控制部173執(zhí)行通話管理等通信的控制處理的群集化、與現(xiàn)用系統(tǒng)的 系統(tǒng)切換的操作。
使用切換通知部1731是為了從進(jìn)行現(xiàn)用群集成員的死活監(jiān)視的程序 (未圖示)中收取現(xiàn)用群集成員的故障檢測的信息、并根據(jù)需要將其與應(yīng) 用程序110—起向切換控制部1732傳送。
切換控制部1732包括在現(xiàn)用群集成員發(fā)生故障、備用成員跳過故障 (fail over)時(shí),切換核對部171、寫入API部152的動(dòng)作、備用系統(tǒng)的應(yīng) 用程序110進(jìn)行發(fā)送接收的功能。
現(xiàn)用監(jiān)視部1733具有根據(jù)另外決定的順序監(jiān)視現(xiàn)有系統(tǒng)(現(xiàn)用群集
39成員)死活的功能。但是,此功能可以獨(dú)自地安裝應(yīng)用程序等,此情況下
也可以省略現(xiàn)用監(jiān)視部1733。
在此,群集成員由多處理用操作系統(tǒng)實(shí)現(xiàn)的情況下,通常按以下這種 對應(yīng)來實(shí)現(xiàn)。讀取API部151、寫入API部152典型地作為系統(tǒng)調(diào)用的 API實(shí)現(xiàn)。協(xié)議處理部121、 122、…、12k以下作為OS的核心等的一部 分實(shí)現(xiàn)。應(yīng)用程序作為客戶處理(userprocess)實(shí)現(xiàn)。
在這種結(jié)構(gòu)中,夾在讀取API呼叫捕捉部161及寫入API呼叫捕捉 部162、讀取API部151及寫入API部152之間的部分,能夠作為庫實(shí)現(xiàn)。 如此這樣,在追加本發(fā)明的群集功能的情況下,能夠減少到目前為止安裝 存在的OS的核心部分和應(yīng)用業(yè)務(wù)的變更。OS的核心部分和應(yīng)用程序,通 常作為各自獨(dú)立的文件(file)被管理,原因在于,在執(zhí)行應(yīng)用程序時(shí),庫 多數(shù)是能動(dòng)態(tài)地鏈接的系統(tǒng)。
到此為止,為了方便,雖然說明了在群集成員中僅一個(gè)應(yīng)用程序工作 的情形,但也可以運(yùn)行多個(gè)應(yīng)用程序。此情況下,按每一應(yīng)用程序分別準(zhǔn) 備前面已說明的結(jié)構(gòu)部分。
由于為了冗余化現(xiàn)用系統(tǒng)和備用系統(tǒng)的傳輸部174而進(jìn)行通信,所以 在傳輸部174中預(yù)先設(shè)定現(xiàn)用系統(tǒng)的哪一個(gè)應(yīng)用程序與備用系統(tǒng)的哪一個(gè) 應(yīng)用程序?qū)?yīng)。具體地,假設(shè)通過設(shè)定等預(yù)知相互冗余化通信用通話的端 口 (port)號(hào)碼等。
接著,詳細(xì)地說明本實(shí)施例的動(dòng)作。
首先,為了說明本實(shí)施例的特征,參照圖3A、 3B的流程圖,說明不 包括讀取API呼叫捕捉部161、寫入API呼叫捕捉部162等、未群集化的 主節(jié)點(diǎn)H (參照圖34)的接收讀取處理。
參照圖3A、 3B,讀取處理由2組一系列處理構(gòu)成。 一個(gè)是圖3A所 示的以包接收為契機(jī)的處理(協(xié)議處理)。另一個(gè)是圖3B所示的以應(yīng)用 程序的讀取處理為契機(jī)的處理(應(yīng)用業(yè)務(wù)處理)。雖然前者和后者使用相同的接收數(shù)據(jù),但由于一度處理流程中斷,所 以如此劃分。
一旦從數(shù)據(jù)鏈路4給主節(jié)點(diǎn)H的IP包到達(dá),接收接口 141就接收該 IP包(步驟S301)。 一面按從低層(layer)的協(xié)議處理部121到高層的 協(xié)議處理部12k的順序處理接收數(shù)據(jù), 一面進(jìn)行提交(步驟S302、 S303)。 例如在TCP/IP網(wǎng)絡(luò)中,層是典型的以太網(wǎng)(登記商標(biāo))、IP、 TCP等的 組合。
最上位層的協(xié)議處理部12k,在本層的協(xié)議處理結(jié)束時(shí),就通知可對 讀取API部151進(jìn)行讀取(步驟S304)。此通知通過事先準(zhǔn)備例如由協(xié) 議處理部12k和讀取API部151公用的狀態(tài)變量,將狀態(tài)變量的值變更為 表示是可讀取的值。
當(dāng)應(yīng)用程序110對讀取API部151請求接收數(shù)據(jù)的讀取時(shí)(步驟 S305),讀取API部151就通知可以從協(xié)議處理部12k讀取的情況下(步 驟S306YES),讀取接收數(shù)據(jù)、提交給應(yīng)用程序110(步驟S307、 S308)。 相對于此,在沒有通知可以讀取的情況下(步驟S306NO),直到通知可 被讀取為止,停止(block)讀取處理(步驟S309)。
接著,說明本實(shí)施例的處理。圖4A、 4B示出本實(shí)施例中的接收讀取 處理中的現(xiàn)用系統(tǒng)側(cè)的動(dòng)作流程圖。
接收讀取處理與用于比較而說明的主節(jié)點(diǎn)H的情形相同,分為圖4A 所示的協(xié)議處理(步驟S401 S404)和圖4B所示的應(yīng)用業(yè)務(wù)處理(S405 S416)。其中,協(xié)議處理(步驟S401 S404)中,由步驟S401進(jìn)行的處 理與由圖3A的步驟S301進(jìn)行的處理有一些不同,由步驟S402 S404進(jìn) 行的處理與由圖3A的步驟S302 S304進(jìn)行的處理相同。在步驟S401中, 與由步驟S301進(jìn)行的處理的不同之處在于,僅接收用接收側(cè)分配濾波器 131計(jì)算出的哈希值等于執(zhí)行哈希值的包。
接著,說明應(yīng)用業(yè)務(wù)處理。在本實(shí)施例中,讀取API呼叫捕捉部161 捕捉根據(jù)應(yīng)用程序110的讀取API部151的呼叫(步驟S405、 S406)。 讀取API呼叫捕捉部161 —旦捕捉到上述呼叫,就替代應(yīng)用程序110呼叫 讀取API部151 (步驟S407)。由此,如果在協(xié)議處理部12k中準(zhǔn)備有接 收數(shù)據(jù)的話,讀取API部151就讀取它,如果沒有準(zhǔn)備,就直到完成接收數(shù)據(jù)的準(zhǔn)備之前,停止讀取處理(步驟S408 S409)。
接著,用復(fù)制部171'復(fù)制讀取API部151讀取的接收數(shù)據(jù)并提交給傳 輸部H4,傳輸部174將提交的數(shù)據(jù)傳送給備用群集成員(步驟S411)。 利用群集成員間的專用通信機(jī)構(gòu)、公用存儲(chǔ)器、或應(yīng)用程序在通信中使用 的讀寫用API部來迸行此復(fù)制數(shù)據(jù)的發(fā)送。
并且,為了從備用群集成員把核對數(shù)據(jù)的結(jié)果發(fā)送過來,所以進(jìn)行來 自讀取API部151的讀取處理,等待相應(yīng)數(shù)據(jù)的接收(步驟S412)。 一 旦核對結(jié)果發(fā)送過來,傳輸部174就從讀取API部151中讀取相應(yīng)數(shù)據(jù), 將其提交給復(fù)制部171 (步驟S413)。復(fù)制部171在核對結(jié)果顯示核對成 功的情況下(步驟S414, YES),通過讀取API呼叫捕捉部161將由步驟 S410讀取的數(shù)據(jù)提交給應(yīng)用程序110 (步驟S415),在核對結(jié)果表示核 對失敗的情況下(步驟S414, NO),廢棄由步驟S410讀取的數(shù)據(jù),將錯(cuò) 誤反饋給應(yīng)用程序110 (步驟S416)。
接著,說明備用系統(tǒng)中的動(dòng)作。圖5A、 5B示出本實(shí)施例中的接收讀 取處理內(nèi)的備用系統(tǒng)側(cè)的動(dòng)作流程圖。
參照同一附圖,與現(xiàn)用系統(tǒng)相同,備用系統(tǒng)的讀取處理也由2組一系 列處理構(gòu)成。
在本實(shí)施例中,由于接收數(shù)據(jù)向所有群集成員進(jìn)行多址通信,所以與 現(xiàn)用群集相同的包也被傳送到備用群集成員。再有,規(guī)定備用群集成員的 執(zhí)行哈希值與現(xiàn)用群集成員的執(zhí)行哈希值相同。
在步驟S501 S504中,進(jìn)行與圖4A所示的步驟S401 S404相同的
接收處理。
另一方面,在備用系統(tǒng)中,讀取處理不由應(yīng)用程序驅(qū)動(dòng),而由群集處 理自身驅(qū)動(dòng)。
在備用系統(tǒng)的群集成員內(nèi)部,核對部171經(jīng)過傳輸部174讀取來自現(xiàn) 用系統(tǒng)的接收數(shù)據(jù)(復(fù)制數(shù)據(jù))。傳輸部174等待來自現(xiàn)用系統(tǒng)的復(fù)制數(shù) 據(jù)的到達(dá), 一旦復(fù)制數(shù)據(jù)到達(dá),就將其向核對部171提交(步驟S505、 S506)。以此為契機(jī),核對部171經(jīng)過讀取API部151讀取接收數(shù)據(jù)(步 驟S507 S510)。此時(shí),在能夠指定讀取的接收數(shù)據(jù)長度的情況下,讀 取僅與從現(xiàn)用系統(tǒng)收取的接收數(shù)據(jù)的復(fù)制相同的長度。此后,核對部171比較由步驟S510讀取的接收數(shù)據(jù)、和自現(xiàn)用系統(tǒng) 收取的接收數(shù)據(jù)的復(fù)制數(shù)據(jù),在內(nèi)容一致的情況下,將表示核對成功的核 對結(jié)果發(fā)送給現(xiàn)用系統(tǒng);在內(nèi)容不一致的情況下,將表示核對失敗的核對 結(jié)果發(fā)送給現(xiàn)用系統(tǒng)(步驟S511)。此后,核對部171廢棄接收數(shù)據(jù)(步 驟S512)。再有,在步驟S510自己讀取的數(shù)據(jù)比從現(xiàn)用系統(tǒng)收取的接收 數(shù)據(jù)的復(fù)制數(shù)據(jù)少的情況下,僅直到使數(shù)據(jù)一致為止,持續(xù)讀取。但是, 即使持續(xù)預(yù)先指定的時(shí)間的讀取,數(shù)據(jù)也能不一致時(shí),也可以停止讀取并 假設(shè)核對失敗。在以上的處理結(jié)束后,廢棄備用系統(tǒng)自己的接收數(shù)據(jù)。
再有,核對結(jié)果的發(fā)送與復(fù)制數(shù)據(jù)的發(fā)送一樣,利用群集成員間的專 用通信機(jī)構(gòu)、公用存儲(chǔ)器、或應(yīng)用程序在通信中使用的讀寫用的API來進(jìn) 行。但是,在利用應(yīng)用程序在通信中使用的讀寫用API的情況下,作為后 述的寫入處理結(jié)果,由于在從備用系統(tǒng)輸出之前就廢棄了 IP包,所以就 不能與現(xiàn)用系統(tǒng)進(jìn)行通信。由此,針對給現(xiàn)用系統(tǒng)的包,進(jìn)行不廢棄而實(shí) 際輸出這樣的例外處理。
圖6示出匯總以上的現(xiàn)用系統(tǒng)和備用系統(tǒng)的動(dòng)作的指令序列的圖。在 現(xiàn)用系統(tǒng)和備用系統(tǒng)中進(jìn)行多址通信的包,通過雙方系統(tǒng)的協(xié)議處理部, 被進(jìn)行冗余處理。在備用系統(tǒng)中核對現(xiàn)用系統(tǒng)和備用系統(tǒng)的接收數(shù)據(jù)。僅 在接收了相同的數(shù)據(jù)的情況下,提交給現(xiàn)用系統(tǒng)的應(yīng)用業(yè)務(wù)。由此,實(shí)現(xiàn) 協(xié)議的冗余處理。
此外,在現(xiàn)用系統(tǒng)和備用系統(tǒng)中,直到數(shù)據(jù)的讀取結(jié)束為止,都不結(jié) 束應(yīng)用業(yè)務(wù)的讀取處理。如此這樣,就能夠防止僅在現(xiàn)用系統(tǒng)或備用系統(tǒng) 的單方面系統(tǒng)讀取處理前進(jìn)這種處理的同步差異。
除讀取、寫入外,在通信API群中,準(zhǔn)備有終點(diǎn)(endpoint)產(chǎn)生和 通話建立等通信控制用API。
在此,說明作為主要的通信用API之一的巴克利("'一夕^ < , Berkeley)端口 (socket) API中的、上述控制用API的冗余化方法。socket API當(dāng)中、示出在終點(diǎn)產(chǎn)生和通話建立所使用的主要的系統(tǒng)調(diào)用。
"connect"
"bind"
"listen"accept"
其中,特別地,進(jìn)行通話等待的服務(wù)器側(cè)利用bind、 listen、 accept, 主動(dòng)建立通話的客戶側(cè)利用connect。使用這些API的通信程序的產(chǎn)生方 法,例如,在"W. Ii千亇一 卜、7X < —々、、乂7 (著),W.Richard Stevens(原 著),篠田陽一 (翻譯)、UNIX (登記商標(biāo))網(wǎng)絡(luò)編程〈VoU〉網(wǎng)絡(luò)API: 端口和XTI,匕。f y >工亍"-少一〉s >, 2000."中進(jìn)行了詳細(xì)地說明。
在下文中,關(guān)注它們的用途,根據(jù)指令序列圖說明客戶側(cè)和服務(wù)器側(cè) 的通話建立的順序。
就除以下說明以外的API而言,基本上當(dāng)調(diào)用現(xiàn)用側(cè)的API時(shí),就復(fù) 制此調(diào)用內(nèi)容,在備用側(cè)也調(diào)用相同的API,僅在現(xiàn)用、備用兩方中的API 呼叫成功的情況下,在應(yīng)用業(yè)務(wù)中通知API呼叫成功。
在服務(wù)器側(cè),典型地,通話建立順序如下。
(1) 通過bind固定本節(jié)點(diǎn)的端點(diǎn)。
(2) 發(fā)行l(wèi)isten系統(tǒng)調(diào)用,表示在相應(yīng)端點(diǎn)準(zhǔn)備好等待接收。
(3) 由accept系統(tǒng)調(diào)用,等待在與客戶端(client)之間確立通話。 當(dāng)確立與客戶端的通話時(shí),就按每一通話新生成端口描述符并向呼叫側(cè)返 回。以后用由(3)得到的端口描述符進(jìn)行通信。
在此,應(yīng)用業(yè)務(wù)典型地分別發(fā)行用于上述三個(gè)順序的系統(tǒng)調(diào)用。在本 發(fā)明的方式中,此呼叫順序保持原樣不變,與讀寫的情形相同,捕捉各系 統(tǒng)調(diào)用的呼叫,進(jìn)行用于冗余化的追加處理。
圖11示出服務(wù)器側(cè)的通話建立的指令序列的指令序列圖。參照同一 附圖,首先就bind、 listen系統(tǒng)調(diào)用而言,進(jìn)行現(xiàn)用系統(tǒng)的應(yīng)用業(yè)務(wù)呼叫 時(shí),控制部進(jìn)行捕捉并委托向備用系統(tǒng)的相同處理。在備用系統(tǒng)中也發(fā)行 同樣的系統(tǒng)調(diào)用,收取結(jié)果。在此,在由備用系統(tǒng)正常地完成了相應(yīng)處理 的情況下,在現(xiàn)用系統(tǒng)也發(fā)行相同的系統(tǒng)調(diào)用。假如現(xiàn)用系統(tǒng)、備用系統(tǒng) 的任何一個(gè)系統(tǒng)的系統(tǒng)調(diào)用異常結(jié)束的情況下,就對來自現(xiàn)用系統(tǒng)中的應(yīng) 用業(yè)務(wù)的相應(yīng)調(diào)用通知已經(jīng)失敗的情況。通過以上的處理,就能由現(xiàn)用/ 備用雙方的系統(tǒng)接收來自客戶端節(jié)點(diǎn)的通話建立請求。
接著,就accept系統(tǒng)調(diào)用而言,現(xiàn)用系統(tǒng)的應(yīng)用業(yè)務(wù)進(jìn)行呼叫時(shí),控
47制部進(jìn)行捕捉并首先由現(xiàn)用系統(tǒng)發(fā)行該系統(tǒng)調(diào)用。于是,在現(xiàn)用系統(tǒng)中, 確立通話之后接著賦予與等待用不同的另一通信用端口描述符,返回呼叫 源(此情況為控制部)。
僅限于上述處理成功了的情形,控制部向備用系統(tǒng)委托進(jìn)行相應(yīng)處 理。在備用系統(tǒng),也發(fā)行該系統(tǒng)調(diào)用,同樣地收取通信用端口描述符,將 結(jié)果傳達(dá)給現(xiàn)用系統(tǒng)。由此,現(xiàn)用、備用系統(tǒng)都能形成與客戶端的通信用 的端口。最后,向應(yīng)用程序通知現(xiàn)用側(cè)的通信用端口描述符作為系統(tǒng)調(diào)用 的結(jié)果,結(jié)束通話建立的處理。
在此,僅accept由現(xiàn)用系統(tǒng)首先發(fā)行系統(tǒng)調(diào)用的原因在于,由備用系 統(tǒng)記錄現(xiàn)用系統(tǒng)的通信端口描述符與自身通信用端口描述符的對應(yīng)。
此外,協(xié)議進(jìn)行的通話建立,即使在accept的發(fā)行前也能進(jìn)行通話建 立。假如accept被調(diào)用前確立通話,則在通過listen形成的等待隊(duì)列(queue) 中保持通話信息。此情況下, 一旦發(fā)行accept就能立即得到通信用端口描 述符。此外,如果在發(fā)行accept的時(shí)刻還未建立通話,則直到建立通話為 止,停止accept的呼叫。
通過這種方式,即使是利用多個(gè)端口描述符的應(yīng)用業(yè)務(wù),在現(xiàn)用系統(tǒng) 和備用系統(tǒng)進(jìn)行通信時(shí),也能通過提交處理對象的端口 API來進(jìn)行無混亂 的冗余處理。而且,即使在備用系統(tǒng)accept的呼叫存在延遲,也能夠在現(xiàn) 用/備用雙方確立通話。
此外,上述順序是在TCP(參照RFC 793.Transmission Control Protocol. J.Postel. Sept,1981.)和SCTP (參照RFC 2960、 Stream Control Transmission Protocol. R.Stewart, Q.Xie、 K.Momeault, C.Sharp、 H.Schwarzbauer, T.Taylor, I.Rytina, M.Kalla, L.Zhang, V.Paxson. October 2000.)等的連接取向協(xié)議下 的通話確立的情形,在UDP(參照RFC 768,User Datagram Protocol. J.Postel. Aug, 1980,)等的無連接協(xié)議(connectionless protocol)的情況下,在進(jìn)行 上述(1)的順序后開始讀取處理。此情況下,僅bind的處理按上述的順 序冗余化。
在客戶端側(cè),典型地,通過connect系統(tǒng)調(diào)用的發(fā)行來進(jìn)行通話建立。 當(dāng)發(fā)行同一系統(tǒng)調(diào)用時(shí),固定本節(jié)點(diǎn)側(cè)端點(diǎn),向協(xié)議委托在與對方端點(diǎn)之伺進(jìn)行通話確立,就能保持通話建立的結(jié)果并返回呼叫。
要冗余化客戶端側(cè)的通話建立,就要冗余化connect系統(tǒng)調(diào)用的處理。 圖12是表示客戶端側(cè)的通話建立指令序列的序列圖。參照同一附圖,
首先,當(dāng)現(xiàn)用系統(tǒng)的應(yīng)用程序進(jìn)行connect系統(tǒng)調(diào)用的呼叫時(shí),控制部就
捕捉此呼叫。
在此,首先進(jìn)行固定本節(jié)點(diǎn)側(cè)的端點(diǎn)的處理。這是因?yàn)椋诔R?guī)connect 的調(diào)用中,雖然不指定本節(jié)點(diǎn)側(cè)的端點(diǎn),由協(xié)議側(cè)選擇適當(dāng)端點(diǎn)的端口號(hào) 碼,但本實(shí)施例的冗余結(jié)構(gòu)的情形,為了在現(xiàn)用系統(tǒng)和備用系統(tǒng)中,形成 相同的端點(diǎn),所以需要分配相同的端口號(hào)碼。
在本節(jié)點(diǎn)側(cè)端點(diǎn)的固定中,使用在服務(wù)器側(cè)說明過的bind系統(tǒng)調(diào)用。 由此,先進(jìn)行于bind系統(tǒng)調(diào)用的冗余化處理相同的處理,使現(xiàn)用、備用雙 方的本節(jié)點(diǎn)側(cè)端點(diǎn)的狀態(tài)相同。
當(dāng)上述固定成功后,接著針對對方端點(diǎn)確立通話。首先,在備用系統(tǒng) 側(cè)以非同步模式發(fā)行connect系統(tǒng)調(diào)用。在非同步模式中,即使沒有結(jié)束 連接的確立,也一度結(jié)束connect系統(tǒng)調(diào)用的處理。由此,備用系統(tǒng)的協(xié) 議變?yōu)橥ㄔ捊⒅械臓顟B(tài),在協(xié)議是TCP的情況下,進(jìn)行設(shè)定了SYN標(biāo) 識(shí)(flag)的段(segment)的輸出處理等(但是,輸出前廢棄包)。設(shè)為 非同步模式是因?yàn)樵趥溆孟到y(tǒng)中由于實(shí)際中不輸出包,所以不進(jìn)行通話確 立處理,connect系統(tǒng)調(diào)用通常不結(jié)束。
接著,在現(xiàn)用系統(tǒng)側(cè)發(fā)行connect系統(tǒng)調(diào)用,實(shí)際進(jìn)行通話確立處理。 當(dāng)在現(xiàn)用系統(tǒng)中進(jìn)行通話確立處理時(shí),實(shí)際上就輸出包,并確立通話。此 時(shí),由于在備用系統(tǒng)中是等待來自對方端點(diǎn)的應(yīng)答的狀態(tài),所以如果從對 方端點(diǎn)有應(yīng)答的話,就進(jìn)行備用系統(tǒng)的通話確立處理。根據(jù)以上方式,就 在現(xiàn)用/備用雙方的系統(tǒng)中冗余地確立通話。
說明在現(xiàn)有系統(tǒng)故障的情況下,將處理切換到備用系統(tǒng)的跳過故障處理。
按照另外設(shè)定的順序監(jiān)視現(xiàn)用系統(tǒng)的死活。作為監(jiān)視順序的具體例, 考慮例如以下這種方式。再有,下面說明的方式是實(shí)現(xiàn)的一個(gè)實(shí)例,除此 之外,只要是能夠監(jiān)視現(xiàn)用系統(tǒng)的運(yùn)行的方式,則也可以采用。
49首先,在現(xiàn)有系統(tǒng)裝置內(nèi)部,設(shè)置監(jiān)視現(xiàn)用系統(tǒng)的各部分的動(dòng)作是否正常的現(xiàn)用監(jiān)視部。接著,相應(yīng)監(jiān)視部按固定間隔向備用群集成員的現(xiàn)用監(jiān)視部發(fā)送該動(dòng)作信息。
現(xiàn)用監(jiān)視部在相應(yīng)動(dòng)作信息中表示出檢測到異常、或最后接收該動(dòng)作信息后,即使僅經(jīng)過規(guī)定的時(shí)間也沒有下一該動(dòng)作信息到達(dá)時(shí)等情形下,判斷為現(xiàn)用系統(tǒng)發(fā)生了故障。
接著,當(dāng)現(xiàn)用監(jiān)視部檢測到故障時(shí),切換通知部就通知備用系統(tǒng)的應(yīng)用程序和切換控制部發(fā)生了故障。由此,正待機(jī)的備用系統(tǒng)的應(yīng)用程序替代現(xiàn)用系統(tǒng)的應(yīng)用程序而開始工作。
此外,切換控制部改變寫入部和核對部的動(dòng)作。寫入部進(jìn)行動(dòng)作,以便將經(jīng)過寫入API呼叫捕捉部應(yīng)用程序發(fā)行的寫入API呼叫原樣傳送給寫
入API。核對部也針對讀入進(jìn)行相同的處理。根據(jù)以上方式,備用系統(tǒng)就會(huì)進(jìn)行與獨(dú)立(standalone)的主節(jié)點(diǎn)相同的動(dòng)作。
此外,現(xiàn)用監(jiān)視部的功能也可以獨(dú)立地安裝應(yīng)用程序等。此情況下,就可以省略現(xiàn)用監(jiān)視部,在切換通知部中,進(jìn)行通知來自應(yīng)用程序的當(dāng)前使用故障的動(dòng)作。
根據(jù)本實(shí)施例,就能夠不用大幅度地變更OS,冗余化應(yīng)用程序工作的廣播,調(diào)度方式的群集成員,提高可靠性。其理由在于,因?yàn)椴捎昧嗽趹?yīng)用程序110和讀取、寫入API部151、 152之間包括讀取API呼叫捕捉部161、寫入API呼叫捕捉部162,復(fù)制部/核對部171、復(fù)制部/寫入部172、控制部173、傳輸部174的結(jié)構(gòu)。g卩,由于上述各部能夠設(shè)置在OS的外部,所以不用變更OS,就能冗余化應(yīng)用程序工作的群集成員。
本發(fā)明的實(shí)施例2的特征在于,在包括多個(gè)應(yīng)用程序運(yùn)行的群集成員的廣播*調(diào)度方式的群集系統(tǒng)中,能以不同的策略進(jìn)行對協(xié)議處理的負(fù)荷分散和對應(yīng)用業(yè)務(wù)處理的負(fù)荷分散。
在圖13A、 13B中示出本實(shí)施例的概況結(jié)構(gòu)和動(dòng)作的一個(gè)實(shí)例。參照圖13A、 13B,群集系統(tǒng)由4臺(tái)群集成員構(gòu)成,分別包括與現(xiàn)有的廣播*
50調(diào)度方式的群集成員相同的利用哈希的濾波器。并且,各個(gè)群集成員包括應(yīng)用程序,在協(xié)議處理部和應(yīng)用程序之間包括使用哈希的分配部。
在分配部中,使用協(xié)議處理用和應(yīng)用業(yè)務(wù)處理用的2個(gè)哈希函數(shù),再次計(jì)算應(yīng)該處理發(fā)送方向、接收方向的通信量的群集成員,根據(jù)需要對其它的群集成員進(jìn)行發(fā)送修正通信量的作業(yè)。由此,協(xié)議處理部和應(yīng)用程序就能管理用不同的分散方法所分散的通信量。
就接收側(cè)而言,到協(xié)議處理為止,進(jìn)行與現(xiàn)有的廣播"調(diào)度方式的群集系統(tǒng)相同的處理。在將接收數(shù)據(jù)提交給應(yīng)用程序前,分配部決定應(yīng)用業(yè)務(wù)處理的執(zhí)行群集成員。這通過將應(yīng)用業(yè)務(wù)處理用的、不同于協(xié)議用的另
一哈希函數(shù)應(yīng)用在包中所含的應(yīng)用業(yè)務(wù)用數(shù)據(jù)(通常以有效負(fù)荷(payload)的方式含有)中,計(jì)算出哈希值,判斷相應(yīng)哈希值被分配的群集成員來執(zhí)行動(dòng)作。
在圖13A的例子中,由于包接收群集成員和應(yīng)用業(yè)務(wù)處理群集成員不同,所以用分配部傳送接收數(shù)據(jù),并提交給應(yīng)用程序。由此,應(yīng)用程序能夠?qū)τ赡膫€(gè)群集成員執(zhí)行協(xié)議處理無意識(shí)地接收包。
關(guān)于發(fā)送方向,進(jìn)行處理以便使應(yīng)用程序發(fā)送的數(shù)據(jù)直達(dá)正確的協(xié)議執(zhí)行群集成員。由于分配部決定協(xié)議處理執(zhí)行群集成員,所以使用與在包接收之后使用的接收側(cè)濾波器相同的哈希函數(shù),計(jì)算處理群集成員。在圖13B的例子中,應(yīng)用程序?qū)懭氚l(fā)送數(shù)據(jù),在提交給協(xié)議處理部之前,由分配部傳送接收數(shù)據(jù)。由此,在協(xié)議處理部中,能夠執(zhí)行對與其它群集成員的應(yīng)用程序進(jìn)行通信無意識(shí)地的發(fā)送處理。
圖14示出本發(fā)明相關(guān)的群集系統(tǒng)的實(shí)施例2的方框圖。參照同一附圖,本實(shí)施例的群集系統(tǒng)la由與多個(gè)數(shù)據(jù)鏈路41、 42、…、4m連接的多臺(tái)群集成員100a-l 100a-n構(gòu)成。在各數(shù)據(jù)鏈路41、 42、…、4m上連接有群集系統(tǒng)la的所有群集成員100a-l 100a-n和多臺(tái)節(jié)點(diǎn)31-l 3m-z。
在此,在連接到同一數(shù)據(jù)鏈路的所有群集成員中分配有同一代表MAC地址。如果鄰接節(jié)點(diǎn)給此MAC地址發(fā)送包的話,則設(shè)定到達(dá)所有群集成員方式的各群集成員的接收接口。另一方面,為了在群集成員間進(jìn)行通信等,還分配給各群集成員唯一的MAC地址。如果利用此地址,確定群集系統(tǒng)la之中的群集成員也能夠進(jìn)行一對一的通信。
在圖15中示出了群集成員100a-l的結(jié)構(gòu)實(shí)例。本實(shí)施例的群集成員 100a-l與圖1所示的實(shí)施例1的群集成員100的不同之處在于,包括替代 復(fù)制部/核對部171的應(yīng)用業(yè)務(wù)處理分配部181,以及包括替代復(fù)制部/寫入 部172的協(xié)議處理分配部182。再有,其它群集成員100a-2 100a-n也具 有與群集成員100a-l同樣的結(jié)構(gòu)。
其中,協(xié)議處理分配部182根據(jù)協(xié)議數(shù)據(jù)的內(nèi)容進(jìn)行判定發(fā)送數(shù)據(jù)的 處理對象群集成員的處理。在協(xié)議處理分配部182內(nèi)部,包括按照與接收 側(cè)分配濾波器同樣的分配規(guī)則來計(jì)算發(fā)送數(shù)據(jù)的哈希值的單元(未圖示)。 而且除此之外,還包括向哈希值的各群集成員的分配表(未圖示)。艮口, 不僅能夠判定單獨(dú)分配給自己的哈希值,而且也能夠判定分配給其它群集 成員中任意一個(gè)群集成員的哈希值。
應(yīng)用業(yè)務(wù)處理分配部181根據(jù)應(yīng)用業(yè)務(wù)數(shù)據(jù)(完成根據(jù)最上位的協(xié)議 處理部12k的處理的、提交給應(yīng)用程序UO的數(shù)據(jù))的內(nèi)容,進(jìn)行判定接 收數(shù)據(jù)的處理對象群集成員的處理。與協(xié)議處理分配部182相同,應(yīng)用業(yè) 務(wù)處理分別配部181在其內(nèi)部也包括能夠根據(jù)應(yīng)用業(yè)務(wù)用分配規(guī)則判定應(yīng) 該用哪個(gè)群集成員處理接收數(shù)據(jù)的裝置。
具有這種功能的群集成員100a-l,可由計(jì)算機(jī)來實(shí)現(xiàn),在由計(jì)算機(jī)實(shí) 現(xiàn)的情況下,例如按如下方式進(jìn)行。準(zhǔn)備計(jì)算機(jī)和記錄具有群集成員 100a-l功能的程序的磁盤、半導(dǎo)體存儲(chǔ)器、以及其它記錄介質(zhì),在計(jì)算機(jī) 中讀取上述程序。計(jì)算機(jī)根據(jù)讀取的程序,通過控制自己的動(dòng)作,就在本 計(jì)算機(jī)上實(shí)現(xiàn)協(xié)議處理部121、 122、…、12k,接收側(cè)分配濾波器131, 發(fā)送側(cè)分配濾波器132,濾波器控制部133,接收接口 141,發(fā)送接口 142, 讀取API部151,寫入API部152,讀取API呼叫捕捉部161,寫入API 呼叫捕捉部162,控制部173,傳輸部174、應(yīng)用業(yè)務(wù)處理分配部181,和 協(xié)議處理分配部182。
接著,詳細(xì)地說明本實(shí)施例的動(dòng)作。
首先,參照圖16A、 16B說明協(xié)議的包接收處理和應(yīng)用程序的接收數(shù)據(jù)讀取處理。將在此后描述讀取的群集處理部分。
在本實(shí)施例中,由于接收數(shù)據(jù)向所有群集成員100a-l 100a-n多址通 信,所以無論是不是處理對象,群集系統(tǒng)la的處理對象包都到達(dá)所有群 集成員100a-l 100a-n。
參照圖16A,接收側(cè)分配濾波器131通過接收接口 141接收包時(shí),首 先按照是否為群集系統(tǒng)la的代表MAC地址來分配包(步驟S160K S1602)。在此,有接收可能性的包是以下3種。
*從通信對象直接接收的、地址為群集系統(tǒng)la的代表MAC地址的包。
從其它群集成員發(fā)送過來的、地址為本群集成員的MAC地址且含 接收數(shù)據(jù)的包。
從其它群集成員發(fā)送過來的、地址為本群集成員的MAC地址且含 發(fā)送數(shù)據(jù)的包。
并且,由于不是給群集系統(tǒng)la的代表MAC地址的包不需要進(jìn)行群集 處理,所以跳過步驟S1603、 S1604的分配處理,而轉(zhuǎn)到協(xié)議處理(步驟 S1605 1607)。
關(guān)于給群集系統(tǒng)la的代表MAC地址的包,在接收側(cè)分配濾波器131 中,通過在包首等中使用規(guī)定的哈希函數(shù),來計(jì)算哈希值(步驟S1603)。
典型地,哈希函數(shù)為以下處理例如,將IP首的發(fā)送源和目的地址 分別看作4字節(jié)(byte)整數(shù)值,取它們的和,并計(jì)算規(guī)定的正數(shù)的余數(shù)。 但是,如果是在群集的各群集成員中可以無縫分配所有通信量的這樣的計(jì) 算方法,哈希函數(shù)就可以是任意的。
接著,利用接收側(cè)分配濾波器131,判定通過上述計(jì)算出的哈希值是 否等于預(yù)先分配給此群集成員的整數(shù)值(步驟S1604)。此整數(shù)值的分配 與現(xiàn)有的廣播*路由器群集相同。廢棄成為與分配哈希值不同的計(jì)算結(jié)果 的包(步驟S1608),僅使分配哈希值和計(jì)算結(jié)果一致的包通過接收側(cè)分 配濾波器131 (步驟S1605)。
一面從低層的協(xié)議處理部121到高層的協(xié)議處理部12k按順序處理通 過接收側(cè)分配濾波器131的包, 一面進(jìn)行提交(步驟S1605、 S1606)。
最上位層的協(xié)議處理部12k結(jié)束協(xié)議處理時(shí),為了經(jīng)過讀取API部 151應(yīng)用程序IIO收取接收數(shù)據(jù),通知可以對讀取API部151進(jìn)行讀取(步驟S1607)。
另一方面,如圖16B所示,應(yīng)用程序110為了經(jīng)過讀取API部151 讀取接收數(shù)據(jù)而呼叫讀取API部151。在本實(shí)施例中,通過讀取API呼叫 捕捉部161捕捉此呼叫(步驟S1609、 S1610),進(jìn)行讀取'改址處理(步 驟S1611)。
在此,參照圖17A、 17B的流程圖,詳細(xì)說明由步驟S1611進(jìn)行的讀 取'改址處理。首先,讀取API呼叫捕捉部161從讀取API部151讀取接 收數(shù)據(jù)。但是,如果沒有接收數(shù)據(jù),則也與從前一樣直到能夠準(zhǔn)備接收數(shù) 據(jù)為止,停止讀取處理(步驟S1701、 S1702)。
讀取接收數(shù)據(jù)后,就將其提交給應(yīng)用業(yè)務(wù)處理分配部181。應(yīng)用業(yè)務(wù) 處理分配部181根據(jù)數(shù)據(jù)的發(fā)送源等判斷其是不是從其它的群集成員經(jīng)改 址發(fā)送過來的數(shù)據(jù)(步驟S1703)。
如果不是已被改址的數(shù)據(jù),則就是從應(yīng)用程序110的通信對方直接收 取的接收數(shù)據(jù)。此數(shù)據(jù)是協(xié)議處理結(jié)束、原樣通過讀取API部151提升的 值,由于作為對應(yīng)用程序的分散方法使用不同于協(xié)議的其它分配方法,所 以應(yīng)用業(yè)務(wù)處理分配部181就使用自應(yīng)用程序110賦予的哈希函數(shù),計(jì)算、 修改接收數(shù)據(jù)的哈希值(步驟S1705)。
如果計(jì)算結(jié)果與分配給本群集成員的哈希值相等,則會(huì)成為處理對象 應(yīng)用程序在本群集成員中進(jìn)行動(dòng)作,所以就經(jīng)過讀取API呼叫捕捉部161, 將包提交給應(yīng)用程序110 (步驟S1706YES、步驟S1707)。
如果計(jì)算結(jié)果與分配值不同,則會(huì)成為處理對象應(yīng)用程序在其它的群 集成員中進(jìn)行動(dòng)作。哈希值分配給哪個(gè)群集成員被預(yù)先賦予,參照此分配, 向處理對象群集成員發(fā)送、修改相應(yīng)的接收數(shù)據(jù)(步驟S1706 NO,S1708)。
為此,將接收數(shù)據(jù)提交給傳輸部174,傳輸部174以處理對象應(yīng)用程 序進(jìn)行動(dòng)作的群集成員為地址,在UDP數(shù)據(jù)群集等中打包(capsule)接 收數(shù)據(jù),并且添加是接收數(shù)據(jù)意思的信息,進(jìn)行相應(yīng)數(shù)據(jù)的寫入處理(步 驟S1709 S1714)。并且,最終,將含接收數(shù)據(jù)的包從發(fā)送接口 142輸 出給數(shù)據(jù)鏈路(步驟S1715)。通過以上方式,就能夠進(jìn)行從應(yīng)用程序110 的通信對方直接收取接收數(shù)據(jù)的處理。
在接收數(shù)據(jù)是從其它群集成員改址過來的情況下,進(jìn)一步分為其原是
54接收數(shù)據(jù)的情形和原是發(fā)送數(shù)據(jù)的情形。能夠用在改址時(shí)添加有接收數(shù)據(jù) 意思的信息來判斷是不是接收數(shù)據(jù)。
如果是接收數(shù)據(jù)(步驟S1704, YES),則其它群集成員計(jì)算的對該 數(shù)據(jù)的哈希值的結(jié)果、由于會(huì)判斷為此群集成員執(zhí)行應(yīng)用業(yè)務(wù)處理,所以 經(jīng)過讀取API呼叫捕捉部161,將收取的接收數(shù)據(jù)提交給應(yīng)用程序IOO(步 驟S1707)。
在是發(fā)送數(shù)據(jù)的情況下(步驟S1704, NO),執(zhí)行上述步驟S1709 S1715。再有,如后所述,由于改址的發(fā)送數(shù)據(jù)中,附加改址時(shí)是發(fā)送數(shù) 據(jù)意思的信息,所以能夠根據(jù)此信息來判斷是不是發(fā)送數(shù)據(jù)。
接著,參照圖18A、 18B的流程圖,說明寫入發(fā)送處理。當(dāng)應(yīng)用程序 IIO呼叫寫入API部152,寫入API呼叫捕捉部162捕捉此呼叫,將來自 應(yīng)用程序110的發(fā)送數(shù)據(jù)提交給協(xié)議處理分配部182(步驟S1801、S1802)。
由此,協(xié)議處理分配部182針對從寫入API呼叫捕捉部162提交的發(fā) 送數(shù)據(jù)適用協(xié)議處理用的哈希函數(shù),計(jì)算哈希值(步驟S1803)。
而且,如果計(jì)算結(jié)果與分配給本群集成員的值相等的話,則由于發(fā)送 數(shù)據(jù)的協(xié)議處理執(zhí)行群集成員是本群集成員,所以經(jīng)過寫入API部152, 將發(fā)送數(shù)據(jù)提交給協(xié)議處理部12k (步驟S1804YES、 S1806 S1808)。 再有,在協(xié)議處理部12k為未變?yōu)榭蓪懭霠顟B(tài)的情況下,等待變?yōu)榭蓪懭?狀態(tài)后提交發(fā)送數(shù)據(jù)。此后,從最上位層的協(xié)議處理部12k起順序執(zhí)行協(xié) 議處理,最終,通過發(fā)送接口 142將包輸出給數(shù)據(jù)鏈路(步驟S1809 S1812)。
相對于此,如果計(jì)算結(jié)果與分配值不同(步驟S1804 NO),則發(fā)送 協(xié)議處理的執(zhí)行群集成員不是此群集成員自己。與接收的情形相同,哈希 值分配給哪個(gè)群集成員被預(yù)先賦予,參照此分配,向處理對象群集成員發(fā) 送相應(yīng)的分送數(shù)據(jù)。
為此,協(xié)議處理分配部182將發(fā)送數(shù)據(jù)提交給傳輸部174,傳輸部174 以處理對象群集成員為地址,在UDP數(shù)據(jù)群集等中打包(capsule)發(fā)送 數(shù)據(jù),并且添加是發(fā)送數(shù)據(jù)意思的信息,進(jìn)行相應(yīng)數(shù)據(jù)的寫入處理(步驟 S1805 S1811)。并且,最終,通過發(fā)送接口 142向數(shù)據(jù)鏈路輸出包(步驟S1812)。 [其它處理]
與實(shí)施例l相同,說明讀取、寫入外的API的動(dòng)作。在此,說明用本 實(shí)施例的方法群集化作為主要的通信用API之一的巴克利端口 API中的、 上述控制用API的方法。與實(shí)施例1相同,根據(jù)巴克利端口 API的、服 務(wù)器側(cè)及客戶端側(cè)中的典型用法、根據(jù)通話建立處理的指令序列圖說明順 序。
在服務(wù)器側(cè)的通話建立中,主要使用bind、 listen、 accept三個(gè)系統(tǒng)調(diào) 用。按順序說明這些系統(tǒng)調(diào)用的群集化處理。
圖19是表示服務(wù)器側(cè)的通話建立處理中、到bind、 listen止的處理流 程的指令序列圖。參照同一附圖,無論bind、 listen,當(dāng)任意群集成員的應(yīng) 用程序最初進(jìn)行呼叫時(shí),此呼叫就被傳達(dá)給所有群集成員,發(fā)行系統(tǒng)調(diào)用 (在圖19中,群集成員l最初發(fā)行bind、 listen)。由此,就能在所有群 集成員中形成端點(diǎn),接受來自客戶端的通話建立請求。在第2以后進(jìn)行 API呼叫的應(yīng)用程序中,只通知成功意思的結(jié)果。這是因?yàn)閬碜云渌膽?yīng) 用程序的指示中已經(jīng)進(jìn)行了該處理。
圖20是表示服務(wù)器側(cè)的通話建立處理中accepte處理的流程的指令序 列圖。參照同一附圖,accept系統(tǒng)調(diào)用,當(dāng)任意群集成員的應(yīng)用程序最初 進(jìn)行呼叫時(shí),此呼叫就被傳達(dá)給所有群集成員,發(fā)行系統(tǒng)調(diào)用。(在圖20 中,群集成員1最初呼叫accept)由此,無論在哪一個(gè)群集成員的協(xié)議處 理部建立通話,都能形成通信用的端口描述符,成為由相應(yīng)群集成員的協(xié) 議處理部能夠通信的狀態(tài)。
由于一旦可以進(jìn)行通信、實(shí)際上接收數(shù)據(jù)就已到達(dá),所以就向各群集 成員的應(yīng)用程序分配已到達(dá)的通信量、并進(jìn)行讀取處理。
但是此時(shí)刻,對于群集成員而言,存在應(yīng)用程序還未呼叫accept的情 形。這是因?yàn)閼?yīng)用程序在互不相同的機(jī)器中工作,存在處理進(jìn)度不一致的 情形。由于未呼叫accept的應(yīng)用程序還沒有進(jìn)行通話建立的等待,所以即 使向此群集成員分配接收數(shù)據(jù)處理,也不能進(jìn)行讀取處理。
為了避免此情況,在哈希值的向群集成員的分配表中,在應(yīng)用程序執(zhí)
56行accept的時(shí)刻,追加該應(yīng)用程序進(jìn)行動(dòng)作的群集成員的項(xiàng)目(entry)。 其它群集成員的應(yīng)用程序進(jìn)行第2個(gè)以后的accept呼叫時(shí),為了只向 此哈希值分配表追加項(xiàng)目,則對其它群集成員通知該呼叫(在圖20中, 相當(dāng)于群集成員2和群集成員N呼叫accept的情形)。根據(jù)以上方式,如 果建立了通話,則從等待的應(yīng)用程序中選擇處理執(zhí)行群集成員,向相應(yīng)群 集成員傳送通信量。
此外,上述順序是在連接取向協(xié)議下的通話確立的情形,在無連接協(xié) 議的情況下,僅bind的處理按上述順序冗余化。由于Bind結(jié)束后的應(yīng)用 程序變?yōu)榭芍苯咏邮諗?shù)據(jù),所以在使用無連接協(xié)議的應(yīng)用程序中,在bind 結(jié)束之后,向哈希值的群集成員分配表追加該應(yīng)用程序進(jìn)行動(dòng)作的群集成 員的項(xiàng)目。
在客戶端側(cè),典型地,通過connect系統(tǒng)調(diào)用的發(fā)行來進(jìn)行通話建立。 當(dāng)發(fā)行同一系統(tǒng)調(diào)用時(shí),固定本節(jié)點(diǎn)側(cè)端點(diǎn),依賴于協(xié)議以在與對方端點(diǎn) 之間進(jìn)行通話確立,從而保持通話建立的結(jié)果、并返回呼叫。
圖21是表示客戶端側(cè)的通話建立指令序列的序列圖。參照同一附圖, 首先,當(dāng)進(jìn)行通話建立的應(yīng)用程序進(jìn)行connect系統(tǒng)調(diào)用的呼叫時(shí),控制 部就捕捉此呼叫。
在此,首先進(jìn)行固定本節(jié)點(diǎn)側(cè)端點(diǎn)的處理。這是因?yàn)?,在常?guī)connect 呼叫中,雖然不指定本節(jié)點(diǎn)側(cè)的端點(diǎn),由協(xié)議側(cè)選擇適當(dāng)端點(diǎn)的端口號(hào)碼, 但本實(shí)施例的情形下,如果不固定端點(diǎn),就會(huì)存在執(zhí)行計(jì)算協(xié)議處理的執(zhí) 行群集成員時(shí)所需的哈希函數(shù)的自變量不一致的可能性。
典型地,協(xié)議處理分配用的哈希函數(shù)利用協(xié)議首(protocol head)等 中含有的地址和端口號(hào)碼。雖然作為connect呼叫的自變量從應(yīng)用程序賦 予對方端點(diǎn),但由于如果不固定端點(diǎn),就不能獲得上述信息,所以首先由 控制部決定本節(jié)點(diǎn)側(cè)端點(diǎn)。
接著,決定協(xié)議處理執(zhí)行群集成員,向相應(yīng)群集成員傳達(dá)通話建立請 求。在圖21的例子中,群集成員1的應(yīng)用程序呼叫connect,在群集成員 2中決定協(xié)議處理的執(zhí)行。在協(xié)議處理執(zhí)行群集成員中,首先通過bind系 統(tǒng)調(diào)用固定本節(jié)點(diǎn)側(cè)端點(diǎn),接著發(fā)行connect系統(tǒng)調(diào)用,實(shí)際中進(jìn)行通話
57建立。把上述處理結(jié)果通知給connect呼叫源的群集成員,結(jié)束通話建立 的處理。
根據(jù)本實(shí)施例,在應(yīng)用程序進(jìn)行動(dòng)作的廣播,調(diào)度方式的群集系統(tǒng)中, 進(jìn)行負(fù)荷分散時(shí),就能在不同的群集成員中進(jìn)行對相同通信量的應(yīng)用業(yè)務(wù) 處理和協(xié)議處理。其理由在于,采用在應(yīng)用程序110和讀取、寫入API部 151、 152之間包括讀取API呼叫捕捉部161、寫入API呼叫捕捉部162、 控制部173、傳輸部174、應(yīng)用業(yè)務(wù)處理分配部181、協(xié)議處理分配部182 的結(jié)構(gòu)。
本實(shí)施例的特征在于,組合實(shí)施例1和2,通過根據(jù)通信量使處理負(fù) 荷分散給多個(gè)群集成員來提高系統(tǒng)整體的性能,并且通過冗余地處理通信 量還提高了可靠性。
在圖22、 23中示出了本實(shí)施例的概況結(jié)構(gòu)和動(dòng)作的一個(gè)實(shí)例。圖22 是接收動(dòng)作、圖23是發(fā)送動(dòng)作的例子。
參照圖22,與實(shí)施例2的情形相同,群集成員包括包濾波器和分配* 冗余處理部。但是,分配*冗余處理部只使用哈希值,不僅決定應(yīng)用業(yè)務(wù) 處理的執(zhí)行群集成員,還進(jìn)行冗余處理。
當(dāng)分配決定協(xié)議處理執(zhí)行的哈希值時(shí),在本實(shí)施例中每個(gè)群集成員為 2個(gè)。 一方是現(xiàn)用處理用的哈希值,另一方是備用處理用的哈希值。關(guān)于 某一哈希值,現(xiàn)用處理執(zhí)行和備用處理執(zhí)行的群集成員各存在一臺(tái)群集成 員。
廣播的通信量由所有群集成員接收后,根據(jù)由首等計(jì)算的哈希值,由 現(xiàn)用和備用2臺(tái)群集成員進(jìn)行處理。冗余地執(zhí)行協(xié)議處理后,在向應(yīng)用程 序提交接收數(shù)據(jù)之前進(jìn)行數(shù)據(jù)的核對處理。此后,應(yīng)用程序根據(jù)定義的哈 希函數(shù)來決定應(yīng)用業(yè)務(wù)處理群集成員,如果必要,則向執(zhí)行群集成員改址 接收數(shù)據(jù)。由此,應(yīng)用程序就能夠不會(huì)注意到協(xié)議處理由哪個(gè)群集成員進(jìn) 行、且是否進(jìn)行冗余化協(xié)議處理,都能夠接收數(shù)據(jù)。
圖23的結(jié)構(gòu)與圖22的情形相同,僅通信量的方向不同。應(yīng)用程序通過API寫入發(fā)送數(shù)據(jù)時(shí),首先為了在分配處理中決定協(xié)議處理執(zhí)行的群集 成員而計(jì)算哈希值。在此,由于具有一個(gè)哈希值的群集成員有2臺(tái)群集成 員(現(xiàn)用執(zhí)行和備用執(zhí)行),所以包被復(fù)制并按照請求對各個(gè)群集成員改 址。通過以上方式,應(yīng)用程序就不會(huì)注意到發(fā)送數(shù)據(jù)由哪個(gè)群集成員執(zhí)行 協(xié)議處理、且是否進(jìn)行冗余化協(xié)議處理,都能夠發(fā)送數(shù)據(jù)。
在圖14所示的群集系統(tǒng)中,通過替代具有圖15所示結(jié)構(gòu)的群集成員 100a-l 100-n,使用具有圖24所示結(jié)構(gòu)的群集成員100b來實(shí)現(xiàn)本實(shí)施例。
本實(shí)施例中使用的群集成員100b和圖15中示出的群集成員100a-l 的不同點(diǎn)在于,替代應(yīng)用業(yè)務(wù)處理分配部181,包括應(yīng)用業(yè)務(wù)處理分配及 復(fù)制核對部191;以及替代協(xié)議處理分配部182,而包括協(xié)議處理分配及 復(fù)制寫入部192。
應(yīng)用業(yè)務(wù)處理分配及復(fù)制核對部191進(jìn)行相當(dāng)于實(shí)施例1中的接收側(cè) 冗余處理、和實(shí)施例2中的接收側(cè)分配處理的處理。
此外,協(xié)議處理分配及復(fù)制寫入部192進(jìn)行相當(dāng)于實(shí)施例1中的發(fā)送 側(cè)冗余處理、和實(shí)施例2中的發(fā)送側(cè)分配處理的處理。
應(yīng)用業(yè)務(wù)處理的備用處理具有如下所述的分配方法。
(1) 所有群集成員作為應(yīng)用業(yè)務(wù)處理的現(xiàn)用來工作,所有群集成員 執(zhí)行任意的其它群集成員的備用。任意群集成員產(chǎn)生故障的情況下,備用 執(zhí)行群集成員接管故障群集成員的應(yīng)用業(yè)務(wù)處理。
(2) 準(zhǔn)備與現(xiàn)用群集成員不同的備用執(zhí)行群集成員。此群集成員作 為所有應(yīng)用業(yè)務(wù)處理的備用群集成員進(jìn)行工作。通常,除備用處理所需的 狀態(tài)的等待等之外,不進(jìn)行處理。
由于上述結(jié)構(gòu)部分以外的功能與第1及實(shí)施例2相同,所以省略其說明。
再有,群集成員100b是可用計(jì)算機(jī)來實(shí)現(xiàn),在由計(jì)算機(jī)實(shí)現(xiàn)的情況 下,例如,按如下方式進(jìn)行。準(zhǔn)備記錄其具有使計(jì)算機(jī)作為群集成員100b 功能的程序的磁盤、半導(dǎo)體存儲(chǔ)器、其它記錄介質(zhì)。在計(jì)算機(jī)上讀取上述 程序。計(jì)算機(jī)通過根據(jù)讀取的程序來控制自己的動(dòng)作,就在本計(jì)算機(jī)上實(shí) 現(xiàn)協(xié)議處理部121、 122、…、12k,接收側(cè)分配濾波器131,發(fā)送側(cè)分配濾波器132,濾波器控制部133,接收接口 141,發(fā)送接口 142,讀取API 部151,寫入API部152,讀取API呼叫捕捉部161,寫入API呼叫捕捉 部162,應(yīng)用業(yè)務(wù)處理分配復(fù)制核對部191,協(xié)議處理分配復(fù)制寫入部192, 控制部173,和傳輸部174。
接著,詳細(xì)地說明本實(shí)施例的動(dòng)作。
圖25A、 25B是表示本實(shí)施例中的、協(xié)議的包接收處理,和應(yīng)用程序 的接收數(shù)據(jù)讀取處理的動(dòng)作流程圖。在后面說明讀取的群集處理部分。
首先,說明圖25A的步驟S2501 S2509。在圖25A的步驟S2501 S2504中,進(jìn)行與實(shí)施例2中的圖16A的步驟S1601 S1604相同的處理。 在步驟S2506 S2509中,進(jìn)行與圖16A的步驟S1605 S1608相同的處 理。與圖16A的不同點(diǎn)在于在給群集系統(tǒng)的代表MAC地址的包中、且由 接收側(cè)分配部濾波器131求出的哈希值與本群集成員的運(yùn)行哈希值相等的 情況下(步驟S2502、 S2504同時(shí)YES),接收的包進(jìn)行步驟S2505的處 理。在步驟S2505中,為了將一個(gè)哈希值分配給現(xiàn)用處理得當(dāng)群集成員和 備用處理執(zhí)行群集成員,而基于哈希值分配表來判斷接收包對應(yīng)于哪一 方,并將此信息添加到包中進(jìn)行處理。
另一方面,如圖25B所示,應(yīng)用程序110為了經(jīng)過讀取API部151 讀取接收數(shù)據(jù)而呼叫讀取API部151。在本實(shí)施例中,由讀取API呼叫捕 捉部161捕捉此呼叫(步驟S2510、 S2511),進(jìn)行讀取'改址處理(步 驟S2512)。
圖26A-26D是表示讀取時(shí)的群集追加處理的動(dòng)作的流程圖。首先,與 現(xiàn)有的讀取處理相同,進(jìn)行從讀取API部151讀取接收數(shù)據(jù)的處理。但是, 如果無接收數(shù)據(jù),也與原來一樣,直到能夠準(zhǔn)備接收數(shù)據(jù)為止,停止讀取 處理(步驟S2601、 S2602)。
讀取接收數(shù)據(jù)后,首先,判斷其是與哪一處理對應(yīng)的數(shù)據(jù)(步驟 S2603)。在本實(shí)施例中,接收數(shù)據(jù)有以下7種數(shù)據(jù)。
1.直接來自通信對方的接收數(shù)據(jù) 1.1現(xiàn)用處理對象的接收數(shù)據(jù)1.2備用處理對象的接收數(shù)據(jù)
2. 核對處理的數(shù)據(jù)
2.1現(xiàn)用執(zhí)行群集成員向備用執(zhí)行群集成員發(fā)送的核對用數(shù)據(jù) 2.2備用執(zhí)行群集成員向現(xiàn)用執(zhí)行群集成員發(fā)送的核對結(jié)果
3. 改址的數(shù)據(jù)
3.1協(xié)議處理執(zhí)行群集成員向應(yīng)用業(yè)務(wù)處理執(zhí)行群集成員發(fā)送的接 收數(shù)據(jù)
3.2應(yīng)用業(yè)務(wù)處理執(zhí)行群集成員向協(xié)議處理執(zhí)行群集成員發(fā)送的發(fā) 送數(shù)據(jù)
3.3協(xié)議處理執(zhí)行群集成員向應(yīng)用業(yè)務(wù)處理執(zhí)行群集成員發(fā)送的寫 入通知
包在UDP等中被打包,如果附加表示核對用數(shù)據(jù)或改址數(shù)據(jù)的標(biāo)識(shí), 就能夠判斷是哪種數(shù)據(jù)。如果是除此以外的數(shù)據(jù)的話,則是直接從通信對 方接收的數(shù)據(jù),如果是備用處理對象數(shù)據(jù)的話,則添加表示該備用處理對 象數(shù)據(jù)的信息。根據(jù)以上方式,就能夠判斷上述7類數(shù)據(jù)。
在下文中,說明各種情形的處理。
從通信對方直接接收的數(shù)據(jù)中,如果是現(xiàn)用處理對象,則進(jìn)行核對備 用處理執(zhí)行群集成員和接收數(shù)據(jù)的處理。具體地,首先復(fù)制接收數(shù)據(jù)(步 驟S2608),以復(fù)制數(shù)據(jù)為核對用數(shù)據(jù),經(jīng)過傳輸部174向備用處理執(zhí)行 群集成員傳送(步驟S2609)。在此,直到收取核對結(jié)果為止,現(xiàn)用執(zhí)行 群集成員都保持接收數(shù)據(jù)。
從通信對方直接接收的數(shù)據(jù)中,如果是備用處理對象,則核對現(xiàn)用群 集成員發(fā)送過來的核對數(shù)據(jù)和接收數(shù)據(jù)。具體地,首先收取接收數(shù)據(jù)的情 況下(步驟S2613, NO),仍舊保持該接收數(shù)據(jù)不變,在核對用數(shù)據(jù)到達(dá) 之前執(zhí)行等待(步驟S1624)。由于接收數(shù)據(jù)和核對用數(shù)據(jù)能夠按照傳送 相應(yīng)數(shù)據(jù)的連接的端點(diǎn)的信息(發(fā)送源及目的的地址和端口號(hào)碼等)來對 應(yīng),所以也同時(shí)保持此信息。如果數(shù)據(jù)一致了,就核對內(nèi)容(步驟S2615), 使用傳輸部174向現(xiàn)用系統(tǒng)反饋核對結(jié)果(步驟S2616)。
核對處理用的數(shù)據(jù)中,收取核對用數(shù)據(jù)的情況下,應(yīng)該接收對應(yīng)其的 備用處理對象數(shù)據(jù)。如果已經(jīng)接收了的話(步驟S2613, YES),則進(jìn)行
61步驟S2615、 S2616的處理,如果還未接收的話,則一直等到被接收后, 進(jìn)行相同處理。
核對處理用的數(shù)據(jù)中,收取核對結(jié)果的情況下,確認(rèn)其是否成功核對。 在核對失敗的情況下,廢棄接收數(shù)據(jù),結(jié)束處理(未圖示。在步驟S2604 前進(jìn)行)。在核對成功的情況下,為了決定需要處理保存的接收數(shù)據(jù)的應(yīng) 用程序進(jìn)行動(dòng)作的群集成員,使用自應(yīng)用程序賦予的哈希函數(shù),計(jì)算并修 正接收數(shù)據(jù)的哈希值(步驟S2604)。
如果計(jì)算結(jié)果等于分配給此群集成員的值(步驟S2605 YES),則變 成處理對象應(yīng)用程序在此群集成員中的動(dòng)作,因此經(jīng)過讀取API呼叫捕捉 部161將包提交給應(yīng)用程序IIO (步驟S2606)。
如果計(jì)算結(jié)果與分配值不同(步驟S2605 NO),則變成處理對象應(yīng) 用程序在其它的群集成員中的動(dòng)作。預(yù)先確定哈希值分配給哪個(gè)群集成 員,參照此分配,向處理對象群集成員發(fā)送、修改相應(yīng)的接收數(shù)據(jù)(步驟 S2607)。由此,將接收數(shù)據(jù)提交給傳輸部174,傳輸部174以處理對象應(yīng) 用業(yè)務(wù)進(jìn)行動(dòng)作的群集成員為地址,在UDP數(shù)據(jù)群集等中打包接收數(shù)據(jù), 并且添加是接收數(shù)據(jù)意思的信息,進(jìn)行相應(yīng)數(shù)據(jù)的寫入處理。
如果從其它群集成員改址的數(shù)據(jù)是接收數(shù)據(jù),則其它群集成員計(jì)算對 該數(shù)據(jù)的哈希值的結(jié)果、由于判斷為此群集成員執(zhí)行應(yīng)用業(yè)務(wù)處理,所以 經(jīng)過讀取API呼叫捕捉部161,將收取的接收數(shù)據(jù)提交給應(yīng)用程序(步驟 S2606)。
在寫入處理的項(xiàng)目,說明發(fā)送數(shù)據(jù)及寫入通知的情形的處理。 [寫入和發(fā)送處理]
圖27A、 27B是表示本實(shí)施例中的寫入處理的動(dòng)作的流程圖。參照同 一附圖,寫入處理通過應(yīng)用程序110調(diào)用寫入API部152來進(jìn)行驅(qū)動(dòng)(步 驟S2701)。
在本發(fā)明的結(jié)構(gòu)中,由寫入API呼叫捕捉部162捕捉寫入API部152 的呼叫,作為寫入處理進(jìn)行以下的處理(步驟S2702)。
首先,在從應(yīng)用程序UO寫入的發(fā)送數(shù)據(jù)中應(yīng)用協(xié)議處理用的哈希函 數(shù)計(jì)算修改接收數(shù)據(jù)的哈希值。使用相應(yīng)哈希值檢索哈希值分配表,決定 相應(yīng)哈希值的執(zhí)行群集成員(步驟S2703)。在協(xié)議處理中,由于每一個(gè)哈希值分配現(xiàn)用、備用2臺(tái)群集成員,所
以為向它們提交包,首先復(fù)制包(步驟S2704)。
接著,為了冗余地執(zhí)行協(xié)議處理,由現(xiàn)用/備用各自的執(zhí)行群集成員進(jìn) 行發(fā)送處理。與實(shí)施例l相同,首先備用處理群集成員進(jìn)行發(fā)送處理。如
果本群集成員自己是備用處理執(zhí)行群集成員的話(步驟S2705 YES),則 經(jīng)過寫入API部152直接寫入發(fā)送數(shù)據(jù)(步驟S2706)。寫入/發(fā)送處理的 詳情根據(jù)圖28后述。如果寫入成功的話,則向現(xiàn)用執(zhí)行群集成員(必須 在本群集成員外分配)發(fā)送復(fù)制的發(fā)送數(shù)據(jù)(步驟S2707、 S2708)。
如果本群集成員不是備用群集成員的話(步驟S2705 YES),則由于 首先對備用執(zhí)行群集成員執(zhí)行發(fā)送處理,所以向同一群集成員改址復(fù)制數(shù) 據(jù)(步驟S2709)。
一旦復(fù)制數(shù)據(jù)改址到其它群集成員,則收取該復(fù)制數(shù)據(jù)的群集成員作 為改址數(shù)據(jù)接收處理的延伸進(jìn)行發(fā)送處理(圖26A-D的、接收了改址的發(fā) 送數(shù)據(jù)的情形)。此情況下,由于已經(jīng)決定相應(yīng)群集處理協(xié)議處理發(fā)送數(shù) 據(jù),所以只經(jīng)過寫入API部152寫入發(fā)送數(shù)據(jù)(步驟S2610)。如果完成 寫入,就將此結(jié)果作為寫入通知,向改址源(應(yīng)用程序呼叫寫入API部 152的群集成員)反饋(步驟S2611)。
接著,說明寫入通知接收契機(jī)的處理。首先,看寫入通知的結(jié)果,如 果寫入通知失敗的話(圖27B ,步驟S2710, NO),則作為此數(shù)據(jù)的寫 入失敗向應(yīng)用程序的寫入處理反饋錯(cuò)誤(步驟S2715)。
接著,在寫入成功的情況下(步驟S2710, YES),判斷現(xiàn)用處理的 必要性(步驟S2711)。在改址源不是備用處理執(zhí)行的情況下,雖然備用 處理后還需要現(xiàn)用側(cè)的發(fā)送處理,但判斷此發(fā)送處理是否己經(jīng)進(jìn)行,如果 還未進(jìn)行(步驟S2711, YES)則執(zhí)行發(fā)送處理。如果已經(jīng)達(dá)到這里(步 驟S2711,NO),則廢棄發(fā)送數(shù)據(jù),向應(yīng)用程序110通知錯(cuò)誤(步驟S2716)。
如果本群集成員是現(xiàn)用執(zhí)行的話(步驟S1712 YES),則呼叫寫入 API直接進(jìn)行寫入(步驟S2714)。在此,如果寫入成功,則正常結(jié)束應(yīng) 用程序110呼叫寫入API部152的處理。
如果其它群集成員是現(xiàn)用執(zhí)行的話(步驟S2712 NO),則向相應(yīng)群 集成員改址發(fā)送數(shù)據(jù)(步驟S2713)。并且,如果收取此寫入通知,就確
63認(rèn)是否成功,將結(jié)果通知給應(yīng)用程序IIO,結(jié)束寫入處理。
按圖28的順序進(jìn)行協(xié)議發(fā)送處理。在步驟S2801 步驟S2805中, 進(jìn)行與實(shí)施例1中說明的寫入處理(例如圖7的步驟S702 S706)相同 的處理。在步驟S2806種,判斷是不是備用處理對象的包。而且,在是備 用處理對象的包的情況下(步驟S2806, YES),廢棄包,在不是備用處理 對象的包的情況下(步驟S2806, NO),通過發(fā)送接口 142輸出包。
在此,按如下方式就能夠?qū)崿F(xiàn)步驟S2806 S2008的處理。在發(fā)送數(shù) 據(jù)中,在圖27A的步驟S2704,在復(fù)制的包上附加表示是備用處理用的附 加信息,在發(fā)送側(cè)分配濾波器132中,僅在是備用處理用的情況下,廢棄 包。
或者,也可以按如下方式。利用發(fā)送側(cè)分配濾波器132,分別事先保 持本群集成員執(zhí)行現(xiàn)用協(xié)議處理的哈希值和執(zhí)行備用處理的哈希值。針對 從協(xié)議處理部121提交給發(fā)送側(cè)分配濾波器132的包,首先檢查發(fā)送源地 址是不是代表地址。由于群集的代表地址不是發(fā)送源的包,不是群集成員 間的通信等、冗余處理對象的包,所以保持原樣不變進(jìn)行輸出。對于群集 的代表地址是發(fā)送源地址的包,與接收側(cè)分配濾波器131中處理(步驟 S2503 S2505)相同,基于包首等計(jì)算哈希值,給包附加上現(xiàn)用、備用處 理用的標(biāo)識(shí)。如果附加有備用處理用的標(biāo)識(shí)的話,就廢棄相應(yīng)包。
其它處理大致分為通話管理和死活監(jiān)視。由于通話建立基本上僅是實(shí) 施例2的情形的指令序列中accept及connect的執(zhí)行群集成員成為現(xiàn)用/備 用2臺(tái),所以省略其詳細(xì)說明。
就死活監(jiān)視而言,按如下方式處理。各群集成員公用協(xié)議處理用和應(yīng) 用業(yè)務(wù)處理用的哈希值分配表。在同一分配表中,按每一哈希值分配執(zhí)行 群集成員。通過運(yùn)行確認(rèn)通信管理各群集成員的死活狀況,在同一分配表 中反映運(yùn)行狀況,由此就在群集處理中反映死活狀況。
首先,說明運(yùn)行確認(rèn)順序的一個(gè)實(shí)例。各群集成員按規(guī)定的間隔(設(shè) 為tl)在數(shù)據(jù)鏈路上廣播運(yùn)行確認(rèn)通知信息。各群集成員以發(fā)送源的群集 成員為關(guān)鍵字(key)管理來自其它的群集成員的運(yùn)行通知,對于規(guī)定的 時(shí)間(設(shè)為t2。但是t2〉tl),未能接收到新的運(yùn)行通知的群集成員判斷
64為故障。
接著,說明哈希值分配表的更新方法。在哈希值分配表中,以哈希值 為關(guān)鍵字,按每一哈希值分配運(yùn)行群集成員。在判斷為某個(gè)群集成員故障 的情況下,從分配表中刪除相應(yīng)群集成員。
按照上述的順序,分配表可以為以下方式。在協(xié)議處理用哈希值分配 表中,由于分配有現(xiàn)用、備用2臺(tái)群集成員,所以如果故障群集成員僅為 1臺(tái),則不會(huì)產(chǎn)生執(zhí)行群集成員的缺失。另一方面,在應(yīng)用業(yè)務(wù)處理用的 分配表中通常僅登記現(xiàn)用群集成員。在出現(xiàn)故障群集成員的情況下,在相 應(yīng)的哈希值的項(xiàng)目中登記預(yù)先分配的備用群集成員。
本實(shí)施例的讀取處理也可以按以下這種順序執(zhí)行。在本實(shí)施例的說明 中,在協(xié)議的備用處理執(zhí)行群集成員接收數(shù)據(jù)的情況下,結(jié)束核對時(shí)就會(huì) 廢棄接收數(shù)據(jù)。但是,如果相應(yīng)群集成員是應(yīng)用業(yè)務(wù)處理執(zhí)行的話,則在 此就不廢棄數(shù)據(jù),直接向應(yīng)用程序提交效率更好。因此,備用處理執(zhí)行群 集成員在核對成功時(shí)不廢棄數(shù)據(jù),即使自己也根據(jù)從應(yīng)用程序賦予的哈希 函數(shù)計(jì)算哈希值,如果應(yīng)用業(yè)務(wù)處理執(zhí)行是本群集成員的話,則也可以照 原樣不變,將數(shù)據(jù)提交給應(yīng)用程序。此情況下,在現(xiàn)用群集成員中,計(jì)算 哈希值,應(yīng)用業(yè)務(wù)處理執(zhí)行群集成員如果等于協(xié)議處理執(zhí)行的備用群集成 員,則不改址而廢棄接收數(shù)據(jù),結(jié)束處理。
此外,也可以按如下方式。雖然上述順序在所謂不傳送無意義的數(shù)據(jù)
的意義上效率好,但在對核對成功的所有數(shù)據(jù)計(jì)算2次哈希值這點(diǎn)上存在 浪費(fèi)。為此,現(xiàn)用群集成員計(jì)算哈希值,在應(yīng)用業(yè)務(wù)處理執(zhí)行群集成員等 于協(xié)議處理的備用群集成員的情況下,可以將其通知給備用群集成員。協(xié) 議處理的備用執(zhí)行群集成員,不計(jì)算哈希值只保持核對成功的接收數(shù)據(jù), 根據(jù)來自現(xiàn)用群集成員的上述通知,本群集成員如果是應(yīng)用業(yè)務(wù)處理執(zhí)行 的話,則將數(shù)據(jù)提交給應(yīng)用程序,如果處理群集成員不同的話,則廢棄數(shù) 據(jù)。由此,沒有接收數(shù)據(jù)的無用的傳送,僅l次就完成哈希值的計(jì)算。 [實(shí)施例3的效果]
根據(jù)本實(shí)施例,通過根據(jù)通信量使處理負(fù)荷分散在多個(gè)群集成員中,
65來提高系統(tǒng)整體的性能,并且,通過冗余地處理通信量,就能夠提高可靠
性。其理由在于,采用了在應(yīng)用程序110和讀取API部151、寫入API部 152之間包括讀取API呼叫捕捉部161、寫入API呼叫捕捉部162、控制 部173、傳輸部174、應(yīng)用業(yè)務(wù)處理分配及復(fù)制核對部191、協(xié)議處理分配 及復(fù)制寫入部192的結(jié)構(gòu)。
接著,詳細(xì)地說明本發(fā)明的實(shí)施例4。本實(shí)施例4特征在于,即使在 現(xiàn)用系統(tǒng)及備用系統(tǒng)的群集成員內(nèi)的一個(gè)群集成員中,在發(fā)送處理發(fā)生顯 著延遲的情形、和/或現(xiàn)用系統(tǒng)及備用系統(tǒng)的群集成員內(nèi)的一個(gè)群集成員不 能接收從對方裝置傳送過來的包的情形下,在兩系統(tǒng)的群集成員中也能進(jìn) 行相同的協(xié)議處理。
根據(jù)前述的實(shí)施例1,使用現(xiàn)用系統(tǒng)及備用系統(tǒng)2臺(tái)群集成員冗余化 協(xié)議處理,就能夠提高其可靠性。此時(shí),在現(xiàn)用系統(tǒng)和備用系統(tǒng)的群集成 員中,必須進(jìn)行相同的協(xié)議處理。但是,現(xiàn)實(shí)中,由于以下這種現(xiàn)象,存 在繼續(xù)不執(zhí)行相同的協(xié)議處理的狀態(tài)、并失去協(xié)議狀態(tài)的冗余性的情形。
艮P,在冗余化進(jìn)行送達(dá)確認(rèn)的協(xié)議處理(TCP等)的情況下,在以下 各情形下就不能在一個(gè)系統(tǒng)中繼續(xù)協(xié)議處理
(O包僅到達(dá)現(xiàn)用系統(tǒng)/備用系統(tǒng)的一個(gè)系統(tǒng),同一包沒有達(dá)到另一 個(gè)系統(tǒng)的情形?;蛟谝粋€(gè)系統(tǒng)中由于任意的不適合而漏掉上述包的情形。 (2)在現(xiàn)用系統(tǒng)/備用系統(tǒng)的一個(gè)系統(tǒng)的發(fā)送處理中產(chǎn)生顯著延遲, 包發(fā)送前執(zhí)行送達(dá)確認(rèn)包的接收的情形。
其中,關(guān)于(1)情形存在2種情形 (l-a)包僅到達(dá)現(xiàn)用系統(tǒng)。 (l-b)包僅到達(dá)備用系統(tǒng)。
在(l-a)包僅到達(dá)現(xiàn)用系統(tǒng)的情況下,現(xiàn)用系統(tǒng)的協(xié)議處理部收取包, 輸出確認(rèn)應(yīng)答包。雖然備用系統(tǒng)產(chǎn)生漏掉相應(yīng)接收包意思的確認(rèn)應(yīng)答包, 但沒有輸出到系統(tǒng)外。由此,在對方裝置中僅有來自現(xiàn)用系統(tǒng)的確認(rèn)應(yīng)答 包到達(dá),對方裝置會(huì)輸出后續(xù)的包。當(dāng)繼續(xù)此動(dòng)作時(shí),由于備用系統(tǒng)不能 接收漏掉的包,所以就永遠(yuǎn)不能恢復(fù)成與現(xiàn)用系統(tǒng)相同的狀態(tài)。
66在(l-b)包僅到達(dá)備用系統(tǒng)的情況下,備用系統(tǒng)的協(xié)議處理部收取包, 產(chǎn)生確認(rèn)應(yīng)答包。但是,此應(yīng)答包不輸出到系統(tǒng)外。由于先用系統(tǒng)輸出漏 掉上述接收包意思的確認(rèn)應(yīng)答,所以對方裝置判斷為發(fā)送包消失,再次發(fā) 送相應(yīng)包。再送包即使達(dá)到備用系統(tǒng)也只能廢棄,僅在現(xiàn)用系統(tǒng)收取。由 此,在(l-b)的情況下就沒有包的消失的問題。
接著,關(guān)于(2)情形存在2種情形
(2-a)在現(xiàn)用系統(tǒng)中發(fā)送處理延遲。
(2-b)在備用系統(tǒng)中發(fā)送處理延遲。 在(2-a)在現(xiàn)用系統(tǒng)中發(fā)送處理延遲的情況下沒有產(chǎn)生不適合。這是 因?yàn)椋词辜僭O(shè)備用系統(tǒng)先進(jìn)行輸出處理,實(shí)際中包也不輸出到系統(tǒng)外, 因此相對于現(xiàn)用系統(tǒng)的未發(fā)送包,來自對方裝置的確認(rèn)應(yīng)答包就沒有達(dá) 到。
在(2-b)在備用系統(tǒng)發(fā)送處理延遲的情況下,就成為在備用系統(tǒng)開始 發(fā)送處理之前,現(xiàn)用系統(tǒng)進(jìn)行發(fā)送處理。并且,當(dāng)從現(xiàn)用系統(tǒng)輸出的包到 達(dá)對方裝置時(shí),就從對方裝置直接輸出確認(rèn)應(yīng)答包。實(shí)際中,確認(rèn)應(yīng)答包 從對發(fā)放裝置送到時(shí),不僅到達(dá)現(xiàn)用系統(tǒng)還到達(dá)備用系統(tǒng)。在備用系統(tǒng)中, 雖然有關(guān)未發(fā)送包的確認(rèn)應(yīng)答包到達(dá),但通常卻廢棄這種確認(rèn)應(yīng)答包。以 后,由于即使備用系統(tǒng)執(zhí)行包的發(fā)送處理,也不輸出到系統(tǒng)外,所以得不 到收取來自對方的確認(rèn)應(yīng)答包的機(jī)會(huì),備用系統(tǒng)必須繼續(xù)再次發(fā)送上述 包,不久再次發(fā)送計(jì)時(shí)器超時(shí)(timeout),從而切斷連接。
在本實(shí)施例中,說明具有能夠解決上述備用系統(tǒng)的包漏掉及發(fā)送時(shí)刻 偏移引起的不適合的附加功能的冗余化功能。
在圖31所示的廣播*調(diào)度方式的群集系統(tǒng)中,替代群集成員13-1 13-n,通過使用圖35所示結(jié)構(gòu)的群集成員100c來實(shí)現(xiàn)本實(shí)施例。本實(shí)施 例的群集系統(tǒng),例如具有服務(wù)器(服務(wù)器群集)的功能。
圖35所示的本實(shí)施例的群集成員100c和圖1中示出的實(shí)施例1的群 集成員100的不同點(diǎn)在于,替代接收側(cè)分配濾波器131及發(fā)送側(cè)分配濾波 器132包括接收側(cè)分配濾波器131c及發(fā)送側(cè)濾波器132c。在此,在使群集成員100c作為現(xiàn)用系統(tǒng)而工作的情況下和作為備用系統(tǒng)而工作的情況 下,規(guī)定接收側(cè)分配濾波器131c及發(fā)送側(cè)濾波器132c結(jié)構(gòu)不同。再有, 本實(shí)施例的群集成員100c也與實(shí)施例1的群集成員相同,能用計(jì)算機(jī)來 實(shí)現(xiàn)。
在使群集成員100c作為備用系統(tǒng)而工作的情況下,接收側(cè)分配濾波 器131c及發(fā)送側(cè)分配濾波器132c,分別為與圖36所示的接收側(cè)分配濾波 器1031及發(fā)送側(cè)分配濾波器1032相同的結(jié)構(gòu)。
參照圖36,接收側(cè)分配濾波器1031包括分配部10311、接收通知發(fā) 送部10312、和濾波器處理部10313。
分配部10311具有如下功能,在通過接收接口 141接收的包是給群集 系統(tǒng)的代表地址的包的情況下(是多址通信的包的情形),將其分配給接 收通知部10312,在不是這種情況下,將其分配給協(xié)議處理部121。
接收通知發(fā)送部10312具有在每當(dāng)從分配部10311提交包時(shí)產(chǎn)生用于 識(shí)別此包的標(biāo)識(shí)符、并且將含已產(chǎn)生的標(biāo)識(shí)符的接收通知包發(fā)送給現(xiàn)用系 統(tǒng)的群集成員的功能。
濾波器處理部10313進(jìn)行濾波處理。
發(fā)送側(cè)分配濾波器1032包括分配處理部10321、發(fā)送通知發(fā)送部 10322和濾波器處理部10323。
分配部10321具有在從協(xié)議處理部121提交的包為冗余化對象的包的 情況下將其分配給發(fā)送通知發(fā)送部10322、將除此之外的包分配給發(fā)送接 口 142的功能。
發(fā)送通知發(fā)送部10322具有在每當(dāng)從分配部10321提交包時(shí)獲取此包 中所含的發(fā)送數(shù)據(jù)的序列號(hào)碼并將含序列號(hào)碼的發(fā)送通知包發(fā)送給現(xiàn)用 系統(tǒng)的群集成員的功能。
濾波器處理部10323進(jìn)行濾波處理。
在使群集成員100c作為現(xiàn)用系統(tǒng)而工作的情況下,發(fā)送側(cè)分配濾波 器132c結(jié)構(gòu)為與實(shí)施例1中使用的發(fā)送側(cè)分配濾波器132相同結(jié)構(gòu),接 收側(cè)分配濾波器131c結(jié)構(gòu)為圖37所示的接收側(cè)分配濾波器1021相同結(jié)構(gòu)。
參照圖37,在現(xiàn)用系統(tǒng)的群集成員中使用的接收側(cè)分配濾波器1021包括分配部10211、接收包控制部10212、接收包緩沖器10213、備用系統(tǒng)接收履歷存儲(chǔ)部10214、接收通知接收部10215、確認(rèn)應(yīng)答緩沖器10216、備用系統(tǒng)發(fā)送履歷存儲(chǔ)部10217、和發(fā)送通知接收部10218。
分配部10211具有將通過接收接口 141接收的來自對方裝置的包、來自備用系統(tǒng)的接收通知包及發(fā)送通知包分配給接收包控制部10212、接收通知接收部10215及發(fā)送通知接收部10218的功能。
接收通知接收部10215具有在備用系統(tǒng)接收履歷存儲(chǔ)部10214中保存從備用系統(tǒng)發(fā)送過來的接收通知包中所含的標(biāo)識(shí)符的功能。
發(fā)送通知接收部10218具有在備用系統(tǒng)發(fā)送履歷存儲(chǔ)部10217中保存從備用系統(tǒng)發(fā)送過來的發(fā)送通知包中所含的序列號(hào)碼的功能。
接收包控制部10212具有以下功能將含數(shù)據(jù)的常規(guī)包保存在接收包緩沖器10213中的功能,將含確認(rèn)應(yīng)答數(shù)據(jù)的確認(rèn)應(yīng)答包保存在確認(rèn)應(yīng)答緩沖器10216中的功能,將接收的包提交給協(xié)議處理部121的功能,將保存在接收包緩沖器10213中的包發(fā)送給備用系統(tǒng)的群集成員的功能,和將保存在確認(rèn)應(yīng)答緩沖器10216中的確認(rèn)應(yīng)答包發(fā)送給備用系統(tǒng)的群集成員
的功能等。
接著,分為現(xiàn)用系統(tǒng)和備用系統(tǒng)來說明本實(shí)施例的動(dòng)作。再有,由于冗余化本體的動(dòng)作與實(shí)施例1相同,所以省略關(guān)于冗余化處理的說明。
首先,說明備用系統(tǒng)的動(dòng)作。圖38示出備用系統(tǒng)中的動(dòng)作的流程圖。首先,說明備用系統(tǒng)的包接收時(shí)的動(dòng)作。通過接收接口 141接收來自對方裝置的包時(shí),分配部10311,根據(jù)包的地址MAC地址判斷此包是否給代表地址(是不是對現(xiàn)用系統(tǒng)、備用系統(tǒng)雙方多址通信的包)(步驟S1048、 S1049)。
而且,在判斷為不是給代表地址的情況下(步驟S1049 NO),分配部10311將接收包提交給協(xié)議處理部121。由此,進(jìn)行協(xié)議接收處理。相對于此,在判斷為是給代表地址的情況下(步驟S1049YES),將接收包提交給接收通知發(fā)送部10312。
由此,接收通知發(fā)送部10312產(chǎn)生用于識(shí)別接收包的標(biāo)識(shí)符(步驟S104A)。標(biāo)識(shí)符是可將相應(yīng)包與其它包區(qū)別開來的信息,在此,使用包的校驗(yàn)和(checksum)。但是,即使不是校驗(yàn)和,如果是能夠識(shí)別包的信息的話也可以使用其它值作為標(biāo)識(shí)符。例如,也可以對包使用哈希函數(shù)計(jì)算出哈希值,以此為標(biāo)識(shí)符。
此后,接收通知發(fā)送部10312形成含上述標(biāo)識(shí)符的接收通知包,發(fā)送到現(xiàn)用系統(tǒng)的群集成員的地址(步驟S104B)。由于此處理含通常協(xié)議發(fā)送處理,在同一附圖中,在協(xié)議發(fā)送處理(步驟S1042)后繼續(xù)。上述處理之后,接收包通過濾波器處理部10313進(jìn)行濾波器處理后(步驟S104C),提交給協(xié)議處理部121,進(jìn)行接收處理(步驟S104D)。
接著,說明備用系統(tǒng)中的發(fā)送處理。發(fā)送側(cè)分配濾波器1032內(nèi)的分配部10321,當(dāng)從協(xié)議處理部121提交發(fā)送包時(shí),就判定此包是不是冗余化對象包(步驟1042、 S1043)。例如,根據(jù)包的首部的內(nèi)容和/或發(fā)送源地址來進(jìn)行此判定。再有,從協(xié)議處理部121向分配部10321中提交寫入API部152的寫入API呼叫(步驟S1041)所產(chǎn)生的包、接收通知包或發(fā)送通知包。
然后,在不是冗余化對象的發(fā)送包的情況下(步驟S1043, NO),分配部10321通過發(fā)送接口 142發(fā)送發(fā)送包(步驟S1047)。
相對于此,在是冗余化對象的發(fā)送包的情況下(步驟S1043, YES),分配部10321將發(fā)送包提交給發(fā)送通知發(fā)送部10322。
由此,發(fā)送通知發(fā)送部10322首先從發(fā)送包的首部取得序列號(hào)碼(發(fā)送序列號(hào)碼)(步驟S1044)。接著,形成含上述序列號(hào)碼的發(fā)送通知包,發(fā)送給現(xiàn)用系統(tǒng)的群集成員地址(步驟S1045)。此處理也與接收通知包的情形相同,在協(xié)議發(fā)送處理(步驟S1042)后繼續(xù)。
上述處理后,在濾波器處理部10323中,進(jìn)行由發(fā)送側(cè)分配濾波器1032定義的濾波處理(步驟S1046)。在備用系統(tǒng)的上述濾波器處理中,至少進(jìn)行廢棄冗余化對象的發(fā)送包的處理。
由此,每次執(zhí)行冗余化對象的發(fā)送/接收包的發(fā)送/接收處理,都向現(xiàn)用系統(tǒng)的群集成員發(fā)送此通知。
70[現(xiàn)用系統(tǒng)的動(dòng)作]
接著,說明現(xiàn)用系統(tǒng)的動(dòng)作。在圖39A、 39B、 39C中示出現(xiàn)用系統(tǒng)中的動(dòng)作的流程。
通過圖37示出的接收側(cè)分配濾波器1021內(nèi)的分配部10211,當(dāng)通過接收接收141接收包時(shí),就根據(jù)目的MAC地址判斷是不是代表地址(步驟S1051)。
然后,如果是給代表地址的包(步驟S1051, YES),則分配部10211將接收包提交給接收部控制部10212。由此,接收包控制部10212按照請求進(jìn)行由接收側(cè)分配濾波器1021定義的濾波處理(步驟S1052)。
此后,接收包控制部10212判斷接收包是不是含確認(rèn)應(yīng)答數(shù)據(jù)的來自對方裝置的確認(rèn)應(yīng)答包(步驟S1053)。
然后,如果是來自對方裝置的確認(rèn)應(yīng)答包(步驟S1053, YES),則從此首部取出確認(rèn)應(yīng)答號(hào)碼(正常接收的包的序列號(hào)碼),以此確認(rèn)應(yīng)答號(hào)碼為關(guān)鍵字檢索備用系統(tǒng)發(fā)送履歷存儲(chǔ)部10217,由此核查備用系統(tǒng)是否完成相當(dāng)于上述確認(rèn)應(yīng)答包的包的發(fā)送(步驟S1054) 。 g卩,在備用系統(tǒng)發(fā)送履歷存儲(chǔ)部10217中保存有與確認(rèn)應(yīng)答號(hào)碼相同的序列號(hào)碼的情況下,判斷為已完成發(fā)送,如果未保存,則判定為未發(fā)送。
然后,在判定為備用系統(tǒng)是對未發(fā)送的包的確認(rèn)應(yīng)答包的情況下(步驟S1055, YES),將上述確認(rèn)應(yīng)答包保存在確認(rèn)應(yīng)答緩沖器10216中,保留這以后的接收處理(步驟S1056)。
相對于此,在判定為備用系統(tǒng)是對已完成發(fā)送的包的確認(rèn)應(yīng)答包的情況下(步驟S1055, NO),將確認(rèn)應(yīng)答包提交給協(xié)議處理部121 (步驟S105A)。
此外,在上述步驟S1053中,在判斷為由分配部10211提交的包是含來自對方裝置的數(shù)據(jù)的常規(guī)包的情況下(判斷結(jié)果NO),接收包控制部10212通過檢索備用系統(tǒng)接收履歷存儲(chǔ)部10214,來判定備用系統(tǒng)是否已經(jīng)接收相同的包(步驟S1057) 。 g卩,在備用系統(tǒng)發(fā)送履歷存儲(chǔ)部10214中保存有與接收包的標(biāo)識(shí)符相同的標(biāo)識(shí)符的情況下,判定為備用系統(tǒng)已經(jīng)接收相同的包,在未保存的情況下判定為未接收。
然后,在判定為備用系統(tǒng)已完成接收的情況下(步驟S1058, YES),
71接收包控制部10212,將接收的包提交給協(xié)議處理部121,并且從備用系統(tǒng)接收履歷存儲(chǔ)部10214中刪除上述包的標(biāo)識(shí)符(步驟S105A)。
相對于此,在判定為備用系統(tǒng)未接收的情況下(步驟S1058, NO),由于存在必須向備用系統(tǒng)發(fā)送上述包的情形,所以將其復(fù)制保存在接收包緩沖器10213中,并且將上述包提交給協(xié)議處理部121 (步驟S1059、S105A)。
以上說明是成為冗余化對象的包(給代表地址的包)的接收處理。接著,說明接收包不是給代表地址的情形。
分配部10211在通過接收接口 141接收的包不是給代表地址的包的情況下(步驟S1051 NO),核查上述包是不是來自備用系統(tǒng)的發(fā)送通知包(步驟S105C)。
然后,在是發(fā)送通知包的情況下(步驟S105CYES),將上述包提交給發(fā)送通知接收部10218。由此,發(fā)送通知接收部10218從上述發(fā)送通知包中取出序列號(hào)碼,保存在備用系統(tǒng)發(fā)送履歷存儲(chǔ)部10217中(步驟S105D)。通常,由于序列號(hào)碼是連續(xù)的,所以可以在備用系統(tǒng)發(fā)送履歷存儲(chǔ)部10217中僅保持最后發(fā)送的包的序列號(hào)碼。
一旦在備用系統(tǒng)發(fā)送履歷存儲(chǔ)部10217中保存序列號(hào)碼,接收包控制部10212就從確認(rèn)應(yīng)答緩沖器10216中檢索帶有與上述新保存的系列號(hào)碼相同序列號(hào)碼的確認(rèn)應(yīng)答包(步驟S105E) 。 g卩,由于備用系統(tǒng)是未發(fā)送上述序列號(hào)碼的包,所以在步驟S1056中檢索保存(保留)在確認(rèn)應(yīng)答緩沖器10216中的確認(rèn)應(yīng)答包。
然后,在不能檢索這種確認(rèn)應(yīng)答包的情況下,接收包控制部10212就結(jié)束此處理。相對于此,在能夠檢索相應(yīng)的確認(rèn)應(yīng)答包的情況下,將檢索出的確認(rèn)應(yīng)答包提交給協(xié)議處理部121并進(jìn)行現(xiàn)用相同的接收處理,同時(shí)通過協(xié)議處理部121、 122、…、12k,讀取API部151、復(fù)制部/核對部171,傳輸部174向備用群集成員發(fā)送上述確認(rèn)應(yīng)答包(步驟S105F、 S105A、S105B)。在此,向備用系統(tǒng)的群集成員發(fā)送確認(rèn)應(yīng)答包的原因在于,假設(shè)備用系統(tǒng)接收此確認(rèn)應(yīng)答包,由于是對未發(fā)送包的確認(rèn)應(yīng)答包,所以進(jìn)行廢棄的可能性就高。
如此這樣,對備用系未發(fā)送的包的確認(rèn)應(yīng)答包,在現(xiàn)用系統(tǒng)中必定滯留在確認(rèn)應(yīng)答緩沖器10216中, 一直未提升到協(xié)議處理部121。并且,如 果從備用系統(tǒng)發(fā)送通知包到達(dá)的話,滯留在確認(rèn)應(yīng)答緩沖器10216中的確 認(rèn)應(yīng)答包則向協(xié)議處理部121傳送。通過以上處理,在備用系統(tǒng)中,就能 夠解決因?qū)ξ窗l(fā)送包的確認(rèn)應(yīng)答包的發(fā)送失敗而產(chǎn)生的問題(2-b)。 如上所述處理是接收來自備用系統(tǒng)的發(fā)送通知包時(shí)的動(dòng)作。 接著,說明接收來自備用系統(tǒng)的接收通知包時(shí)的動(dòng)作。 分配部10211在判斷為通過接收接口 141接收的包是來自備用系統(tǒng)的 接收通知包的情況下(步驟S105G YES),將其提交給接收通知接收部 10215及接收包控制部10212。
由此,接收包控制部10212參照備用系統(tǒng)接收履歷存儲(chǔ)部10214及接 收包緩沖器10213(步驟S105H、S105I),核查此狀態(tài)是否成為下述的(x-l)、 (x-2) 、 (y-l) 、 (y-2) 、 (z)的任何一個(gè)狀態(tài)。
(x-l)在備用系統(tǒng)接收履歷存儲(chǔ)部10214中保存有接收通知包中所含 的標(biāo)識(shí)符,并且在接收包緩沖器10213中保存有對應(yīng)上述標(biāo)識(shí)符的包的狀 態(tài)。
(x-2)在備用系統(tǒng)接收履歷存儲(chǔ)部10214中保存有接收通知包中所含 的標(biāo)識(shí)符,并且在接收包緩沖器10213中未保存有對應(yīng)上述標(biāo)識(shí)符的包的 狀態(tài)。
(y-l)在備用系統(tǒng)接收履歷存儲(chǔ)部10214中未保存有接收通知包中所 含的標(biāo)識(shí)符,并且在接收包緩沖器10213中保存有對應(yīng)上述標(biāo)識(shí)符的包(設(shè) 為包P1)、和相比于包P1接收順序在前的包,在接收順序在前的包之中 存在在備用系統(tǒng)接收履歷存儲(chǔ)部10214中未保存著相應(yīng)的標(biāo)識(shí)符的包(設(shè) 為包P2)的狀態(tài)。
(y-2)在備用系統(tǒng)接收履歷存儲(chǔ)部10214中未保存有接收通知包中所 含的標(biāo)識(shí)符,并且在接收包緩沖器10213中保存有對應(yīng)上述標(biāo)識(shí)符的包 Pl、和相比于包P1接收順序在前的包,接收順序在前的包在所有備用系 統(tǒng)接收履歷存儲(chǔ)部10214中保存著相應(yīng)的標(biāo)識(shí)符的狀態(tài)。
(z)在備用系統(tǒng)接收履歷存儲(chǔ)部10214中未保存有接收通知包中所 含的標(biāo)識(shí)符,并且在接收包緩沖器10213中未保存有對應(yīng)上述標(biāo)識(shí)符的包 (設(shè)為P3)的狀態(tài)。
73此后,接收包控制部10212根據(jù)當(dāng)前的備用系統(tǒng)接收履歷存儲(chǔ)部 10214及接收包緩沖器10213的狀態(tài),進(jìn)行步驟S105J 105L的處理。
在是(x-l)狀態(tài)的情況下,由于備用系統(tǒng)接收包,所以判斷為不需要 再發(fā)送(步驟S105J, NO)。此外,在此狀態(tài)下,由于現(xiàn)用系統(tǒng)也接收同 一包,所以從接收包緩沖器10213及備用接收履歷存儲(chǔ)部10214中刪除相 應(yīng)包的項(xiàng)目(步驟S105L)。
在是(x-2)狀態(tài)的情況下,由于備用系統(tǒng)接收包,所以判斷為不需要 再發(fā)送(步驟S105J, NO)。此外,在此狀態(tài)下,由于存在現(xiàn)用系統(tǒng)還未 收取相應(yīng)包、或漏掉包的可能性,所以保持備用系統(tǒng)接收履歷存儲(chǔ)部10214 的內(nèi)容不變。但是,如果即使經(jīng)過一定時(shí)間相應(yīng)包也未到達(dá),則為了防止 存儲(chǔ)器泄漏(memory leak),而要?jiǎng)h除相應(yīng)標(biāo)識(shí)符,給相應(yīng)標(biāo)識(shí)符加標(biāo)識(shí)。
在(y-l)狀態(tài)的情況下,雖然包P2由現(xiàn)有系統(tǒng)接收,但在備用系統(tǒng) 中漏掉的可能性高。這是因?yàn)椋捎诂F(xiàn)用系統(tǒng)和備用系統(tǒng)從同一數(shù)據(jù)鏈路 接收包,所以認(rèn)為交換順序罕見。因此,此情況下判斷為需要再發(fā)送(步 驟S105J, YES),將保存在接收包緩沖器10213中的包P2發(fā)送給備用系 統(tǒng)(步驟S105K、 S105B)。此外,此情況下,在步驟S105L,指示接收 通知接收部10215保存標(biāo)識(shí)符。由此,接受通知接收部10215,將在上述 步驟S105G中由分配部10211提交的接收通知包中所含的標(biāo)識(shí)符保存在備 用接收履歷存儲(chǔ)部10214中。
在(y-2)狀態(tài)的情況下,由于現(xiàn)用和備用中包的接收履歷一致,所以 判斷為不需要再發(fā)送(步驟S105JNO)。而且,從接收履歷存儲(chǔ)部10214 及接收包緩沖器10213中刪除所有項(xiàng)目(步驟S105L)。
在(z)狀態(tài)的情況下,由于在備用系統(tǒng)接收包,所以判斷為不需要 再發(fā)送(步驟S105J, NO)。此外,由于存在現(xiàn)用系統(tǒng)還未接收備用系統(tǒng) 已接收了的包的可能性,所以在步驟S105L,對接收通知接收部10215指 示保存標(biāo)識(shí)符。由此,接受通知接收部10215,將在上述步驟S105G中由 分配部10211提交的接收通知包中所含的標(biāo)識(shí)符保存在備用接收履歷存儲(chǔ) 部10214中。但是,如果即使經(jīng)過一定時(shí)間相應(yīng)包也未到達(dá),則為了防止 存儲(chǔ)器泄漏,而要?jiǎng)h除相應(yīng)標(biāo)識(shí)符,給相應(yīng)標(biāo)識(shí)符加標(biāo)識(shí)。
根據(jù)上述的理由,如果包雖然己到達(dá)現(xiàn)用系統(tǒng)、卻未到達(dá)備用系統(tǒng),20078
則根據(jù)備用系統(tǒng)接收履歷存儲(chǔ)部10214的確認(rèn)從現(xiàn)用系統(tǒng)再次進(jìn)行發(fā)送。 因此,就能夠解決因僅在備用系統(tǒng)中漏掉接收包而產(chǎn)生的問題(l-a)。 [實(shí)施例4的效果]
如上所述,根據(jù)本實(shí)施例,就能夠避免包的漏掉和發(fā)送延遲引起的協(xié) 議狀態(tài)偏移的繼續(xù)。其理由在于,備用系統(tǒng)的群集成員包括發(fā)送通知發(fā)送 部10322,向現(xiàn)用系統(tǒng)的群集成員發(fā)送表示根據(jù)協(xié)議處理部121、 122、…、 12k完成協(xié)議處理的發(fā)送包;現(xiàn)用系統(tǒng)的群集成員包括確認(rèn)應(yīng)答緩沖器 10216和接收包控制部10212,當(dāng)從發(fā)送包的地址的對方裝置發(fā)送過來相 對于上述發(fā)送包的確認(rèn)應(yīng)答包時(shí),以沒有從備用系統(tǒng)的群集成員中發(fā)送過 來表示上述發(fā)送包的發(fā)送通知包為條件,將確認(rèn)應(yīng)答包保存在確認(rèn)應(yīng)答緩 沖器10216中;當(dāng)從備用系統(tǒng)的群集成員中發(fā)送過來發(fā)送通知包時(shí),以在 確認(rèn)應(yīng)答緩沖器10216中保存有相對于此發(fā)送通知包表示發(fā)送包的確認(rèn)應(yīng) 答包為條件,向備用系統(tǒng)的群集成員發(fā)送上述確認(rèn)應(yīng)答包。
實(shí)施例1及實(shí)施例4中,前提在于,在現(xiàn)用系統(tǒng)和備用系統(tǒng)中,至少 產(chǎn)生相同的發(fā)送數(shù)據(jù),進(jìn)行含相同數(shù)據(jù)的包的發(fā)送處理。
在SCTP這種保存信息境界的協(xié)議中,雖然應(yīng)用程序?qū)懭胂嗤瑪?shù)據(jù), 則產(chǎn)生相同數(shù)據(jù),但在TCP這種未保存信息境界的協(xié)議中,即使寫入相同 數(shù)據(jù),如果發(fā)送時(shí)鐘不同,就存在信息的切痕偏移產(chǎn)生不同的包的情形。
圖40中示出具體例。同一附圖示出了本系統(tǒng)和它系統(tǒng)的協(xié)議發(fā)送緩 沖器內(nèi)容的時(shí)間變化。最初兩系統(tǒng)協(xié)議發(fā)送緩沖器都是空的(S1081)。
例如,假設(shè)包中所含的數(shù)據(jù)長為1460字節(jié)時(shí),應(yīng)用程序?qū)懭?000字 節(jié)的數(shù)據(jù)(S1082)。此情況下,如果沒有后續(xù)的數(shù)據(jù),則會(huì)輸出含1460 字節(jié)的數(shù)據(jù)的2個(gè)包、和含80字節(jié)的數(shù)據(jù)的1個(gè)包(S1083 S1085)。 直到來自對方裝置的確認(rèn)應(yīng)答包達(dá)到為止,都在協(xié)議發(fā)送緩沖器中保持發(fā) 送數(shù)據(jù)。
在此,僅在本系統(tǒng)僅最后的數(shù)據(jù)(80字節(jié))未進(jìn)行確認(rèn)應(yīng)答的狀態(tài)下, 執(zhí)行下一發(fā)送數(shù)據(jù)的寫入處理,在它系統(tǒng)中執(zhí)行此寫入處理之前如果對最 后的包的確認(rèn)應(yīng)答包達(dá)到,則本系統(tǒng)的協(xié)議發(fā)送緩沖器成為混有2次的寫
75入數(shù)據(jù)的狀態(tài),它系統(tǒng)的協(xié)議發(fā)送緩沖器成為僅保持第2次寫入數(shù)據(jù)的情
形(S1086)。
此狀態(tài)下,進(jìn)行下一包的輸出處理時(shí),雖然本系統(tǒng)中舊的數(shù)據(jù)80字 節(jié)和新的數(shù)據(jù)1380字節(jié)相加,但其它系統(tǒng)中僅輸出新的數(shù)據(jù)1460字節(jié) (S1087)。這樣一來,包中所含的發(fā)送數(shù)據(jù)的境界就會(huì)發(fā)生偏移。
這種情況下,如果全部確認(rèn)應(yīng)答放置在協(xié)議發(fā)送緩沖器中的發(fā)送數(shù)據(jù) 的話,則由于協(xié)議發(fā)送緩沖器變空,而在下次寫入時(shí)再次將相同數(shù)據(jù)放置 在協(xié)議發(fā)送緩沖器中,由于每一包的發(fā)送數(shù)據(jù)的分割塊一致,所以通常不 會(huì)引起不適合。
但是,如實(shí)施例4所述,在發(fā)送包的序列號(hào)碼和確認(rèn)應(yīng)答號(hào)碼相對應(yīng) 進(jìn)行確認(rèn)應(yīng)答的發(fā)送時(shí)期的控制的情況下,如果發(fā)送數(shù)據(jù)的境界偏移,就 難于確認(rèn)應(yīng)答和發(fā)送數(shù)據(jù)的相對應(yīng)。為了解決這種問題,在本實(shí)施例中, 在不同寫入中不混有發(fā)送緩沖器的數(shù)據(jù)。
圖41是表示本實(shí)施例相關(guān)的群集成員的結(jié)構(gòu)實(shí)例的方框圖。本實(shí)施 例的群集成員和圖35所示的實(shí)施例4的群集成員100c的不同點(diǎn)在于,在 復(fù)制部/寫入部172和寫入API部152之間包括寫入控制部1065、發(fā)送緩 沖器監(jiān)視部1066、總量應(yīng)答通知接收部1063、和寫入量通知部1064這點(diǎn), 以及替代接收側(cè)分配濾波器131c及發(fā)送側(cè)分配濾波器132c包括接收側(cè)分 配濾波器1061及發(fā)送側(cè)分配濾波器1062。再有,在圖41中,省略讀取 API呼叫捕捉部161、復(fù)制部/核對部171、讀取API部151、控制部173 及傳輸部174的圖示。此外,與圖35相同的符號(hào)表示相同部分。此外, 本實(shí)施例的群集成員也與實(shí)施例4的群集成員一樣能由程序來實(shí)現(xiàn)。
寫入控制部1065具有按照請求使發(fā)送數(shù)據(jù)的寫入延遲的功能。
發(fā)送緩沖器監(jiān)視部1066具有檢查協(xié)議處理部121、 122、…、12k的 協(xié)議發(fā)送緩沖器1020是不是空的的功能。
總量應(yīng)答通知接收部1063具有收取發(fā)送側(cè)分配濾波器1062發(fā)行的總 量應(yīng)答通知的功能。
寫入量通知部1064具有向發(fā)送側(cè)分配濾波器1062通知作為發(fā)送數(shù)據(jù) 寫入的數(shù)據(jù)的量的功能。發(fā)送側(cè)分配濾波器1062特征為包括寫入量通知接收部10624、發(fā)送量 計(jì)量部10622及總量應(yīng)答通知部10623。再有,在圖41中,示出發(fā)送側(cè)分 配濾波器132、 132c所包括的其它構(gòu)成要素內(nèi)、僅濾波器處理部10621, 除此之外省略圖示。
此外,接收側(cè)分配濾波器1061特征在于,包括應(yīng)答捕捉部10612。在 圖41中,示出接收側(cè)分配濾波器131、 131c所包括的其它構(gòu)成要素內(nèi)、 濾波器處理部10611,除此以外省略圖示。
寫入量通知接收部10624具有收取寫入時(shí)從寫入量通知部1064發(fā)行 的寫入量通知的功能。
發(fā)送量計(jì)量部10622具有計(jì)量從濾波器1062發(fā)送的包中所含的數(shù)據(jù) 的量的功能。
總量應(yīng)答通知部10623具有向API側(cè)的總量應(yīng)答通知接收部1063通 知寫入數(shù)據(jù)的總量發(fā)送、應(yīng)答的情形的功能。
應(yīng)答捕捉部10612具有捕捉帶規(guī)定的序列號(hào)碼的確認(rèn)應(yīng)答包的功能。
在圖42A、 42B中示出了本實(shí)施例的動(dòng)作。
應(yīng)用程序110呼叫寫入API部152時(shí),寫入API呼叫捕捉部162就在 實(shí)際的呼叫寫入API部152前進(jìn)行冗余化處理(步驟S1071)。此冗余化 處理后,在寫入處理前還進(jìn)行以下處理。
首先,寫入API呼叫捕捉部162利用發(fā)送緩沖器監(jiān)視部1066核査在 協(xié)議發(fā)送緩沖器1020中是否存在剩余數(shù)據(jù),即協(xié)議發(fā)送緩沖器1020是不 是空的(步驟S1072)。然后,如果有剩余數(shù)據(jù)(步驟S1072, NO),就 結(jié)束此發(fā)送, 一直到無剩余數(shù)據(jù)為止進(jìn)行待機(jī)(步驟S1073)。
雖然通常通過對協(xié)議發(fā)送緩沖器1020的固定間隔的輪詢(polling)來 進(jìn)行剩余數(shù)據(jù)的檢查,但為了提高性能而縮短上述固定間隔時(shí),就需要頻 繁地進(jìn)行檢查,而浪費(fèi)計(jì)算資源。由于存在等到協(xié)議發(fā)送緩沖器1020變 空花費(fèi)長時(shí)間的情形,所以這種監(jiān)視不是有效的。因此,在本發(fā)明中,直 到收取總量應(yīng)答通知前都不進(jìn)行剩余數(shù)據(jù)的檢查。
當(dāng)總量應(yīng)答通知部1063接收總量應(yīng)答通知時(shí)(步驟S1074),寫入 API呼叫捕捉部162就指示發(fā)送緩沖器監(jiān)視部1066開始檢查,由此,發(fā)
77送緩沖器監(jiān)視部1066 —直到無剩余數(shù)據(jù)為止,進(jìn)行協(xié)議發(fā)送緩沖器1020 的檢查(步驟S1075、 S1076)。
然后,當(dāng)由發(fā)送緩沖器監(jiān)視部1066檢測出無剩余數(shù)據(jù)時(shí)(步驟S1075, YES),寫入API呼叫捕捉部162就通過寫入量通知部1064將寫入對象 數(shù)據(jù)的數(shù)據(jù)量(寫入量)傳遞給發(fā)送側(cè)分配濾波器1062 (步驟S1077)。 此后,呼叫寫入API部152,執(zhí)行寫入(步驟S1078、 S107B)。
當(dāng)寫入量通知接收部10624接收寫入量時(shí)(步驟S1079),發(fā)送側(cè)分 配濾波器1062內(nèi)的發(fā)送量計(jì)量部10622,就從此刻起開始發(fā)送數(shù)據(jù)量的計(jì) 量(步驟S107A)。
每當(dāng)從最下位層的協(xié)議處理部121提交冗余化對象的包時(shí),發(fā)送量計(jì) 量部10622,就將其所含的數(shù)據(jù)量累計(jì)在發(fā)送量中(步驟S107C、 S107D)。
此后,發(fā)送量計(jì)量部10622通過核査累計(jì)的發(fā)送量是否為由寫入量通 知接收部10624接收的寫入量,來判斷本次從協(xié)議處理部121提交的發(fā)送 包是不是發(fā)送寫入對象數(shù)據(jù)的最后的發(fā)送包(步驟S107E)。
然后,在不是發(fā)送寫入對象數(shù)據(jù)的最后發(fā)送包的情況下(步驟S107E, NO),發(fā)送量計(jì)量部10622將上述發(fā)送包提交給濾波器處理部10621。由 此,濾波器處理部10612則按照請求對上述發(fā)送包進(jìn)行濾波處理,此后, 通過發(fā)送接口 142進(jìn)行發(fā)送(步驟S107H、 S107I)。
相對于此,在是發(fā)送寫入對象數(shù)據(jù)的最后發(fā)送包的情況下(步驟 S107E, YES),發(fā)送量計(jì)量部10622對應(yīng)答捕捉部10612輸出指示對上 述最后發(fā)送包捕捉來自對方裝置的確認(rèn)應(yīng)答包的確認(rèn)應(yīng)答監(jiān)視指示(步驟 S107F)。再有,在確認(rèn)應(yīng)答監(jiān)視指示中,含有上述最后的包的序列號(hào)碼。 此后,發(fā)送量計(jì)量部10622結(jié)束發(fā)送量的計(jì)量處理,將上述最后的包提交 給濾波器處理部10621 (步驟S107G)。由此,濾波器處理部10621按照 請求進(jìn)行濾波處理,此后,通過發(fā)送接口 142發(fā)送最后的發(fā)送包(步驟 S107H、 S107I)。
另一方面,當(dāng)從發(fā)送量計(jì)量部10622輸入確認(rèn)應(yīng)答監(jiān)視指示時(shí),應(yīng)答 捕捉部10612,每接收計(jì)量發(fā)送量的連接(connection)的確認(rèn)應(yīng)答包,都 核查接收的確認(rèn)應(yīng)答包是不是對最后的發(fā)送包的確認(rèn)應(yīng)答包(步驟S107J、 S107K)。具體地,通過核查接收的確認(rèn)應(yīng)答包中所含的確認(rèn)應(yīng)答號(hào)碼和確認(rèn)應(yīng)答監(jiān)視指示中所含的序列號(hào)碼是否一致,來判斷是不是對最后的發(fā) 送包的確認(rèn)應(yīng)答包。
然后,在不是對最后的發(fā)送包的確認(rèn)應(yīng)答包的情況下(步驟S107K, NO),應(yīng)答捕捉部10612,等待接收下一確認(rèn)應(yīng)答包,進(jìn)行與上述處理相 同的處理(步驟S107J)。
相對于此,在是對最后的發(fā)送包的確認(rèn)應(yīng)答包的情況下(步驟S107K, YES),就成為保存在協(xié)議發(fā)送緩沖器1020中的所有發(fā)送對象數(shù)據(jù)由對 方裝置確認(rèn)了應(yīng)答,由于協(xié)議發(fā)送緩沖器1020應(yīng)該是空的,所以應(yīng)答捕 捉部10612向總量應(yīng)答通知部10623通知此意思。由此,總量應(yīng)答通知部 10623對總量應(yīng)答通知接收部1063發(fā)行總量應(yīng)答通知(步驟S107L)。
當(dāng)總量應(yīng)答通知接收部1063接收總量應(yīng)答通知時(shí)(步驟S1074),寫 入API呼叫捕捉部162則直到協(xié)議發(fā)送緩沖器1020變空為止進(jìn)行等待(步 驟S1075、 S1076), 一旦協(xié)議發(fā)送緩沖器1020變空,就進(jìn)行上述的步驟 S1077以后的處理。
如上所述,在本實(shí)施例中,由于必須在協(xié)議發(fā)送緩沖器1020變空后 進(jìn)行寫入處理,所以多次寫入的發(fā)送數(shù)據(jù)不發(fā)送進(jìn)一個(gè)包中,發(fā)送數(shù)據(jù)的 包化時(shí)的境界在現(xiàn)用和備用中沒有偏移。
權(quán)利要求
1、一種群集系統(tǒng),包括多個(gè)群集成員,并且,上述多個(gè)群集成員分別包括協(xié)議處理部,執(zhí)行協(xié)議處理;通信API部,按照呼叫的種類從上述協(xié)議處理部讀取數(shù)據(jù)或?qū)?shù)據(jù)寫入上述協(xié)議處理部中;以及捕捉部,捕捉來自在本群集成員上工作的應(yīng)用程序的對上述通信API部的呼叫、替代上述應(yīng)用程序而呼叫上述通信API部,對根據(jù)該呼叫、上述通信API部從上述協(xié)議處理部讀取的數(shù)據(jù)或根據(jù)上述呼叫、上述通信API部在上述協(xié)議處理部中寫入的數(shù)據(jù)進(jìn)行對應(yīng)于上述呼叫的種類的處理,同時(shí),對從其它群集成員發(fā)送過來的數(shù)據(jù)進(jìn)行對應(yīng)于此數(shù)據(jù)種類的處理。
2、 一種群集系統(tǒng),包括多個(gè)群集成員,并且,上述多個(gè)群集成員之內(nèi)作為現(xiàn)用系統(tǒng)進(jìn)行工作的群集成員,包括 現(xiàn)用系統(tǒng)協(xié)議處理部,執(zhí)行協(xié)議處理;現(xiàn)用系統(tǒng)通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述現(xiàn)用系統(tǒng)協(xié)議處 理部讀取數(shù)據(jù),應(yīng)答寫入呼叫、將按照該寫入呼叫指示寫入的數(shù)據(jù)寫入上 述現(xiàn)用系統(tǒng)協(xié)議處理部中;現(xiàn)用系統(tǒng)呼叫捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序 的讀取呼叫或?qū)懭牒艚校诓蹲降阶x取呼叫的情況下替代上述應(yīng)用程序?qū)?上述現(xiàn)用系統(tǒng)通信API部進(jìn)行讀取呼叫,將對該讀取呼叫進(jìn)行應(yīng)答的上述 現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理部讀取的數(shù)據(jù)提交給上述 應(yīng)用程序,在捕捉到寫入呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜霈F(xiàn)用系統(tǒng) 通信API部進(jìn)行寫入呼叫;以及現(xiàn)用系統(tǒng)傳輸部,在該現(xiàn)用系統(tǒng)呼叫捕捉部捕捉到寫入呼叫的情況 下,對成為本群集成員的備用系統(tǒng)的群集成員傳送寫入數(shù)據(jù)的復(fù)制數(shù)據(jù);上述多個(gè)群集成員之內(nèi)作為備用系統(tǒng)進(jìn)行工作的群集成員包括-備用系統(tǒng)協(xié)議處理部,執(zhí)行協(xié)議處理;備用系統(tǒng)通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述備用系統(tǒng)協(xié)議處理部中讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將數(shù)據(jù)寫入上述備用系統(tǒng)協(xié)議處 理部中;備用系統(tǒng)寫入部,當(dāng)從上述現(xiàn)用系統(tǒng)傳輸部傳送過來復(fù)制數(shù)據(jù)時(shí),對上述備用系統(tǒng)通信API部進(jìn)行寫入呼叫,將上述復(fù)制數(shù)據(jù)寫入上述備用系 統(tǒng)協(xié)議處理部中;以及廢棄部,廢棄由上述備用系統(tǒng)協(xié)議處理部已完成協(xié)議處理的接收數(shù)據(jù) 及發(fā)送數(shù)據(jù)。
3、 根據(jù)權(quán)利要求2所述的群集系統(tǒng),其特征在于, 上述現(xiàn)用系統(tǒng)傳輸部向成為本群集成員的備用系統(tǒng)的群集成員發(fā)送上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理部已讀取的讀取數(shù)據(jù) 的復(fù)制數(shù)據(jù),作為上述備用系統(tǒng)進(jìn)行工作的群集成員包括備用系統(tǒng)核對部,核對 從上述現(xiàn)用系統(tǒng)傳送過來的讀取數(shù)據(jù)的復(fù)制數(shù)據(jù)和通過上述備用系統(tǒng)協(xié) 議處理部接收的數(shù)據(jù),對上述復(fù)制數(shù)據(jù)的傳輸源的群集成員通知核對結(jié) 果,并且,上述現(xiàn)用系統(tǒng)呼叫捕捉部在從上述備用系統(tǒng)核對部通知的核對結(jié)果 表示不一致的情況下,廢棄上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議 處理部己讀取的數(shù)據(jù)。
4、 根據(jù)權(quán)利要求3所述的群集系統(tǒng),其特征在于, 上述備用系統(tǒng)寫入部對上述復(fù)制數(shù)據(jù)的傳輸源的群集成員通知表示在上述備用系統(tǒng)協(xié)議處理部中對上述寫入數(shù)據(jù)的復(fù)制數(shù)據(jù)的協(xié)議處理是 否正常結(jié)束的寫入結(jié)果;上述現(xiàn)用系統(tǒng)呼叫捕捉部在從上述備用系統(tǒng)寫入部通知的寫入結(jié)果 表示異常結(jié)束的情況下,廢棄通過寫入呼叫而指示寫入的數(shù)據(jù)。
5、 根據(jù)權(quán)利要求2所述的群集系統(tǒng),其特征在于, 上述備用系統(tǒng)的群集成員包括發(fā)送通知發(fā)送部,向上述現(xiàn)用系統(tǒng)的群集成員發(fā)送表示由上述備用系 統(tǒng)協(xié)議處理部已完成協(xié)議處理的發(fā)送包的發(fā)送通知; 上述現(xiàn)用系統(tǒng)的群集成員包括 確認(rèn)應(yīng)答緩沖器,以及接收包控制部,當(dāng)從發(fā)送包的目的地址的對方裝置對上述發(fā)送包發(fā)送 過來確認(rèn)應(yīng)答時(shí),以沒有從上述備用系統(tǒng)的群集成員中發(fā)送過來表示上述 發(fā)送包的發(fā)送通知為條件,將上述確認(rèn)應(yīng)答保存在上述確認(rèn)應(yīng)答緩沖器 中;當(dāng)從上述備用系統(tǒng)的群集成員中發(fā)送過來發(fā)送通知時(shí),以在上述確認(rèn) 應(yīng)答緩沖器中保存有相對于該發(fā)送通知所表示的發(fā)送包的確認(rèn)應(yīng)答為條 件,向上述備用系統(tǒng)的群集成員發(fā)送上述確認(rèn)應(yīng)答。
6、 根據(jù)權(quán)利要求5所述的群集系統(tǒng),其特征在于,上述發(fā)送通知包含由上述備用系統(tǒng)協(xié)議處理部已完成協(xié)議處理的發(fā) 送包的序列號(hào)碼,上述現(xiàn)用系統(tǒng)的群集成員包括 備用系統(tǒng)發(fā)送履歷存儲(chǔ)部,以及發(fā)送通知接收部,將從上述備用系統(tǒng)的群集成員發(fā)送過來的發(fā)送通知中所含有的序列號(hào)碼保存在上述備用系統(tǒng)發(fā)送履歷存儲(chǔ)部中;當(dāng)從發(fā)送包的目的地址的對方裝置發(fā)送過來己含有上述發(fā)送包的序 列號(hào)碼的確認(rèn)應(yīng)答時(shí),上述接收包控制部就以沒有在上述備用系統(tǒng)通信履 歷存儲(chǔ)部保存上述序列號(hào)碼為條件,將上述確認(rèn)應(yīng)答保存在上述確認(rèn)應(yīng)答緩沖器中;當(dāng)在上述備用系統(tǒng)發(fā)送履歷存儲(chǔ)部中登記了序列號(hào)碼時(shí),上述 接收包控制部就以在上述確認(rèn)應(yīng)答緩沖器中保存有對應(yīng)該上述序列號(hào)碼 的確認(rèn)應(yīng)答為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述確認(rèn)應(yīng)答。
7、 根據(jù)權(quán)利要求2所述的群集系統(tǒng),其特征在于, 上述備用系統(tǒng)的群集成員包括-接收通知發(fā)送部,將表示已接收的包的接收通知向上述現(xiàn)用系統(tǒng)的群 集成員進(jìn)行發(fā)送;上述現(xiàn)用系統(tǒng)的群集成員包括-接收包緩沖器,以及接收包控制部,當(dāng)接收包時(shí),以從上述備用系統(tǒng)的群集成員沒有發(fā)送 過來表示上述包的接收通知為條件,在上述接收包緩沖器中登記上述包; 當(dāng)從上述備用系統(tǒng)的群集成員發(fā)送過來接收通知時(shí),以在上述接收包緩沖 器中登記了比上述接收通知所表示的包更以前接收的包為條件,向上述備 用系統(tǒng)的群集成員發(fā)送上述以前接收的包。
8、 根據(jù)權(quán)利要求7所述的群集系統(tǒng),其特征在于, 上述接收通知包含已接收的包的標(biāo)識(shí)符,上述現(xiàn)用系統(tǒng)的群集成員包括 備用系統(tǒng)接收履歷存儲(chǔ)部,以及接收通知接收部,將從上述備用系統(tǒng)的群集成員發(fā)送過來的接收通知中所含有的標(biāo)識(shí)符保存在上述備用系統(tǒng)接收履歷存儲(chǔ)部中;當(dāng)接收包時(shí),上述接收包控制部就以未在上述備用系統(tǒng)接收履歷存儲(chǔ)部中保存上述包的標(biāo)識(shí)符為條件,在上述接收包緩沖器中存儲(chǔ)上述包;當(dāng) 在上述備用系統(tǒng)接收履歷存儲(chǔ)部中保存了包的標(biāo)識(shí)符時(shí),上述接收包控制 部就以在上述接收包緩沖器中登記了比上述接收通知所表示的包更以前 接收的包為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述以前接收的包。
9、 根據(jù)權(quán)利要求5所述的群集系統(tǒng),其特征在于, 上述現(xiàn)用系統(tǒng)的群集成員及上述備用系統(tǒng)的群集成員具有監(jiān)視協(xié)議處理的發(fā)送緩沖器并直到發(fā)送緩沖器變空為止使下一寫入處理延遲的結(jié) 構(gòu)。 1
10、 一種群集系統(tǒng),包括多個(gè)群集成員;并且, 上述多個(gè)群集成員分別包括協(xié)議處理部,執(zhí)行協(xié)議處理;接收側(cè)分配濾波器,根據(jù)預(yù)定的協(xié)議處理用分配規(guī)則,在判斷為接收 包是應(yīng)該由本群集成員處理的接收包的情況下,將上述接收包提交給上述 協(xié)議處理部;通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述協(xié)議處理部讀取數(shù)據(jù),對 寫入呼叫進(jìn)行應(yīng)答、將按照該寫入呼叫指示寫入的數(shù)據(jù)寫入上述協(xié)議處理 部中;呼叫捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的讀取呼 叫或?qū)懭牒艚小⒃诓蹲降阶x取呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜鐾ㄐ?API部進(jìn)行讀取呼叫;在對該讀取呼叫進(jìn)行應(yīng)答、上述通信API部從上述 協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的接收數(shù)據(jù)的情況 下,將該接收數(shù)據(jù)提交給上述應(yīng)用程序;在對該讀取呼叫進(jìn)行應(yīng)答、上述 通信API部從上述協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的發(fā)送數(shù)據(jù)的情況下,將該發(fā)送數(shù)據(jù)提交給上述協(xié)議處理部;除此之外的情況下,將上述數(shù)據(jù)提交給應(yīng)用業(yè)務(wù)處理分配部,在捕捉到寫入呼叫的情 況下,將按照該捕捉到的寫入呼叫指示寫入的發(fā)送數(shù)據(jù)提交給協(xié)議處理分配部;應(yīng)用業(yè)務(wù)處理分配部,按照預(yù)定的應(yīng)用業(yè)務(wù)處理用分配規(guī)則決定擔(dān)當(dāng) 對自該呼叫捕捉部提交的數(shù)據(jù)的應(yīng)用業(yè)務(wù)處理的群集成員,在該決定的群 集成員是本群集成員的情況下、將上述數(shù)據(jù)提交給本群集成員上的應(yīng)用程 序,在上述決定的群集成員是其它的群集成員的情況下、將上述數(shù)據(jù)提交 給傳輸部;協(xié)議處理分配部,按照預(yù)定的協(xié)議處理用分配規(guī)則決定擔(dān)當(dāng)對自上述 呼叫捕捉部提交的數(shù)據(jù)的協(xié)議處理的群集成員,在該決定的群集成員是本 群集成員的情況下、將上述數(shù)據(jù)提交給本群集成員上的協(xié)議處理部,在上 述決定的群集成員是其它的群集成員的情況下、將上述數(shù)據(jù)提交給傳輸 部;以及傳輸部,將自上述應(yīng)用業(yè)務(wù)處理分配部及協(xié)議處理分配部提交的數(shù)據(jù) 向相應(yīng)的群集成員傳送。
11、 根據(jù)權(quán)利要求10所述的群集系統(tǒng),其特征在于, 上述應(yīng)用業(yè)務(wù)處理用分配規(guī)則根據(jù)針對應(yīng)用業(yè)務(wù)數(shù)據(jù)的哈希值,決定分配目的地,上述協(xié)議處理用分配規(guī)則根據(jù)基于構(gòu)成包首的參數(shù)所計(jì)算出的哈希 值,決定分配目的地。
12、 一種群集系統(tǒng),包括多個(gè)群集成員,其中從廣播給所有群集成員 的通信量中,各群集成員篩選自己的擔(dān)當(dāng)部分,除此之外進(jìn)行廢棄,由此 分配通信量;(a)各群集成員,在接收接口和協(xié)議處理部之間,包括接收側(cè)分配 濾波器,其保持根據(jù)包的規(guī)定部分計(jì)算整數(shù)值的計(jì)算規(guī)則和分配給自己的 整數(shù)值;在上述接收側(cè)分配濾波器中,按照上述計(jì)算規(guī)則對每一包計(jì)算整數(shù) 值,僅在計(jì)算結(jié)果等于上述分配給自己的整數(shù)值的情況下,將該包提交給 協(xié)議處理部的接收處理,并且,在現(xiàn)用系統(tǒng)和備用系統(tǒng)中分配給上述接收側(cè)分配濾波器相同數(shù)值,并且,按照在各群集成員中無縫分擔(dān)根據(jù)計(jì)算規(guī)則得到的計(jì)算結(jié)果的 整數(shù)值的集合的方式,分配整數(shù)值,由此就能夠進(jìn)行通信量的分配和協(xié)議的冗余處理;(b) 各群集成員,在協(xié)議處理部和應(yīng)用程序之間還包括分配/冗余處 理部,其保持根據(jù)接收包所含的應(yīng)用業(yè)務(wù)數(shù)據(jù)計(jì)算整數(shù)值的計(jì)算規(guī)則、和 根據(jù)分配給各群集成員的整數(shù)值的一覽的分配規(guī)則;在上述分配/冗余處理部中,將相應(yīng)數(shù)據(jù)傳送給按照上述分配規(guī)則分配 了基于接收數(shù)據(jù)計(jì)算出的整數(shù)值的群集成員,傳送目的地群集成員的應(yīng)用 程序執(zhí)行讀取處理時(shí),執(zhí)行相應(yīng)數(shù)據(jù)的讀取處理,并且,上述分配/冗余處理部,對應(yīng)用程序所寫入的數(shù)據(jù),保持基于在 其發(fā)送處理中利用的首信息以與接收側(cè)分配濾波器相同的規(guī)則計(jì)算整數(shù) 值的計(jì)算規(guī)則和分配給各群集成員的整數(shù)值的一覽,對于應(yīng)用程序?qū)懭氲?數(shù)據(jù)按照上述計(jì)算規(guī)則計(jì)算整數(shù)值,對分配了相應(yīng)整數(shù)值的多個(gè)群集成員 傳送寫入數(shù)據(jù),由此,能夠獨(dú)立地控制應(yīng)用業(yè)務(wù)處理和冗余化的協(xié)議處理 成員的分配;(c) 在各群集成員的發(fā)送側(cè)接口和協(xié)議處理部之間還包括發(fā)送側(cè)包 濾波器,其廢棄作為備用成員處理了的包。
13、 一種服務(wù)器群集,包括多個(gè)群集成員,并且,上述多個(gè)群集成員分別包括協(xié)議處理部,執(zhí)行協(xié)議處理;通信API部,按照呼叫的種類從上述協(xié)議處理部讀取數(shù)據(jù)或在上述協(xié) 議處理部中寫入數(shù)據(jù);以及捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的對上述通信 API部的呼叫、替代上述應(yīng)用程序呼叫上述通信API部,對于根據(jù)該呼叫、 上述通信API部從上述協(xié)議處理部讀取的數(shù)據(jù),或根據(jù)上述呼叫、上述通 信API部在上述協(xié)議處理部中寫入的數(shù)據(jù)進(jìn)行對應(yīng)于上述呼叫的種類的 處理,同時(shí),對于從其它的群集成員發(fā)送過來的數(shù)據(jù)進(jìn)行對應(yīng)于此數(shù)據(jù)的 種類的處理。
14、 一種服務(wù)器群集,包括多個(gè)群集成員,并且,上述多個(gè)群集成員之內(nèi)作為現(xiàn)用系統(tǒng)進(jìn)行工作的群集成員,包括 現(xiàn)用系統(tǒng)協(xié)議處理部,執(zhí)行協(xié)議處理;現(xiàn)用系統(tǒng)通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述現(xiàn)用系統(tǒng)協(xié)議處 理部讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將按照該寫入呼叫指示寫入的數(shù)據(jù) 寫入上述現(xiàn)用系統(tǒng)協(xié)議處理部中;現(xiàn)用系統(tǒng)呼叫捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序 的讀取呼叫或?qū)懭牒艚?,在捕捉到讀取呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜霈F(xiàn)用系統(tǒng)通信API部進(jìn)行讀取呼叫,將對該讀取呼叫進(jìn)行應(yīng)答、上述 現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理部讀取的數(shù)據(jù)提交給上述應(yīng)用程序,在捕捉到寫入呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜霈F(xiàn)用系統(tǒng)通信API部進(jìn)行寫入呼叫;以及現(xiàn)用系統(tǒng)傳輸部,在該現(xiàn)用系統(tǒng)呼叫捕捉部捕捉到寫入呼叫的情況下,對成為本群集成員的備用系統(tǒng)的群集成員傳送寫入數(shù)據(jù)的復(fù)制數(shù)據(jù);上述多個(gè)群集成員之內(nèi)作為備用系統(tǒng)進(jìn)行工作的群集成員包括 備用系統(tǒng)協(xié)議處理部,執(zhí)行協(xié)議處理;備用系統(tǒng)通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述備用系統(tǒng)協(xié)議處 理部中讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將數(shù)據(jù)寫入上述備用系統(tǒng)協(xié)議處 理部中;備用系統(tǒng)寫入部,當(dāng)從上述現(xiàn)用系統(tǒng)傳輸部傳送過來復(fù)制數(shù)據(jù)時(shí),對 上述備用系統(tǒng)通信API部進(jìn)行寫入呼叫,將上述復(fù)制數(shù)據(jù)寫入上述備用系 統(tǒng)協(xié)議處理部中;以及廢棄部,廢棄由上述備用系統(tǒng)協(xié)議處理部己完成協(xié)議處理的接收數(shù)據(jù) 及發(fā)送數(shù)據(jù)。
15、 根據(jù)權(quán)利要求14所述的服務(wù)器群集,其特征在于, 上述現(xiàn)用系統(tǒng)傳輸部向成為本群集成員的備用系統(tǒng)的群集成員發(fā)送上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理部已讀取的讀取數(shù)據(jù) 的復(fù)制數(shù)據(jù),作為上述備用系統(tǒng)進(jìn)行工作的群集成員,包括備用系統(tǒng)核對部,核對 從上述現(xiàn)用系統(tǒng)傳送過來的讀取數(shù)據(jù)的復(fù)制數(shù)據(jù)和通過上述備用系統(tǒng)協(xié)議處理部已接收的數(shù)據(jù),對上述復(fù)制數(shù)據(jù)的傳輸源的群集成員通知核對結(jié) 果,并且,上述現(xiàn)用系統(tǒng)呼叫捕捉部在自上述備用系統(tǒng)核對部通知的核對結(jié)果 表示不一致的情況下,廢棄上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議 處理部己讀取的數(shù)據(jù)。
16、 根據(jù)權(quán)利要求15所述的服務(wù)器群集,其特征在于, 上述備用系統(tǒng)寫入部對上述復(fù)制數(shù)據(jù)的傳輸源的群集成員通知表示在上述備用系統(tǒng)協(xié)議處理部中對上述寫入數(shù)據(jù)的復(fù)制數(shù)據(jù)的協(xié)議處理是 否正常結(jié)束的寫入結(jié)果;上述現(xiàn)用系統(tǒng)呼叫捕捉部在從上述備用系統(tǒng)寫入部通知的寫入結(jié)果 表示異常結(jié)束的情況下,廢棄通過寫入呼叫而指示寫入的數(shù)據(jù)。
17、 根據(jù)權(quán)利要求14所述的服務(wù)器群集,其特征在于, 上述備用系統(tǒng)的群集成員包括發(fā)送通知發(fā)送部,向上述現(xiàn)用系統(tǒng)的群集成員發(fā)送表示由上述備用系統(tǒng)協(xié)議處理部已完成協(xié)議處理的發(fā)送包的發(fā)送通知; 上述現(xiàn)用系統(tǒng)的群集成員包括確認(rèn)應(yīng)答緩沖器,以及接收包控制部,當(dāng)從發(fā)送包的目的地址的對方裝置發(fā)送過來相對于上 述發(fā)送包的確認(rèn)應(yīng)答時(shí),以沒有從上述備用系統(tǒng)的群集成員中發(fā)送過來表 示上述發(fā)送包的發(fā)送通知為條件,將上述確認(rèn)應(yīng)答保存在上述確認(rèn)應(yīng)答緩沖器中;當(dāng)從上述備用系統(tǒng)的群集成員中發(fā)送過來發(fā)送通知時(shí),以在上述 確認(rèn)應(yīng)答緩沖器中保存有相對于該發(fā)送通知所表示的發(fā)送包的確認(rèn)應(yīng)答 為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述確認(rèn)應(yīng)答。
18、 根據(jù)權(quán)利要求17所述的服務(wù)器群集,其特征在于,上述發(fā)送通知包含由上述備用系統(tǒng)協(xié)議處理部已完成協(xié)議處理的發(fā) 送包的序列號(hào)碼,上述現(xiàn)用系統(tǒng)的群集成員包括 備用系統(tǒng)發(fā)送履歷存儲(chǔ)部,以及發(fā)送通知接收部,將從上述備用系統(tǒng)的群集成員發(fā)送過來的發(fā)送通知中所含有的序列號(hào)碼保存在上述備用系統(tǒng)發(fā)送履歷存儲(chǔ)部中;當(dāng)從發(fā)送包的目的地址的對方裝置發(fā)送過來含上述發(fā)送包的序列號(hào)碼的確認(rèn)應(yīng)答時(shí),上述接收包控制部就以沒有在上述備用系統(tǒng)通信履歷存儲(chǔ)部保存上述序列號(hào)碼為條件,將上述確認(rèn)應(yīng)答保存在上述確認(rèn)應(yīng)答緩沖器中;當(dāng)在上述備用系統(tǒng)發(fā)送履歷存儲(chǔ)部中登記了序列號(hào)碼時(shí),上述接收包控制部就以在上述確認(rèn)應(yīng)答緩沖器中保存有對應(yīng)該上述序列號(hào)碼的確認(rèn)應(yīng)答為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述確認(rèn)應(yīng)答。
19、 根據(jù)權(quán)利要求14所述的服務(wù)器群集,其特征在于,上述備用系統(tǒng)的群集成員包括接收通知發(fā)送部,將表示接收的包的接收通知向上述現(xiàn)用系統(tǒng)的群集成員發(fā)送;上述現(xiàn)用系統(tǒng)的群集成員包括接收包緩沖器,以及接收包控制部,當(dāng)接收包時(shí),以從上述備用系統(tǒng)的群集成員沒有發(fā)送過來表示上述包的接收通知為條件,在上述接收包緩沖器中登記上述包;當(dāng)從上述備用系統(tǒng)的群集成員發(fā)送過來接收通知時(shí),以在上述接收包緩沖器中登記了比上述接收通知所表示的包更以前接收的包為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述以前接收的包。
20、 根據(jù)權(quán)利要求19所述的服務(wù)器群集,其特征在于,上述接收通知包含接收的包的標(biāo)識(shí)符,上述現(xiàn)用系統(tǒng)的群集成員包括-備用系統(tǒng)接收履歷存儲(chǔ)部,以及接收通知接收部,將從上述備用系統(tǒng)的群集成員發(fā)送過來的接收通知中所含有的標(biāo)識(shí)符保存在上述備用系統(tǒng)接收履歷存儲(chǔ)部中;當(dāng)接收包時(shí),上述接收包控制部就以未在上述備用系統(tǒng)接收履歷存儲(chǔ)部中保存上述包的標(biāo)識(shí)符為條件,在上述接收包緩沖器中存儲(chǔ)上述包;當(dāng)在上述備用系統(tǒng)接收履歷存儲(chǔ)部中保存了包的標(biāo)識(shí)符時(shí),上述接收包控制部就以在上述接收包緩沖器中登記了比上述接收通知所表示的包更以前接收的包為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述以前接收的包。
21、 根據(jù)權(quán)利要求17所述的服務(wù)器群集,其特征在于,上述現(xiàn)用系統(tǒng)的群集成員及上述備用系統(tǒng)的群集成員具有監(jiān)視協(xié)議處理的發(fā)送緩沖器并直到發(fā)送緩沖器變空為止使下一寫入處理延遲的結(jié)構(gòu)。
22、 一種服務(wù)器群集,包括多個(gè)群集成員;并且,上述多個(gè)群集成員,分別包括協(xié)議處理部,執(zhí)行協(xié)議處理;接收側(cè)分配濾波器,根據(jù)預(yù)定的協(xié)議處理用分配規(guī)則,在判斷為接收包是應(yīng)該由本群集成員處理的接收包的情況下,將上述接收包提交給上述協(xié)議處理部;通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述協(xié)議處理部讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將按照該寫入呼叫指示寫入的數(shù)據(jù)寫入上述協(xié)議處理部中;呼叫捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的讀取呼叫或?qū)懭牒艚?、在捕捉到讀取呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜鐾ㄐ臕PI部進(jìn)行讀取呼叫,在對該讀取呼叫進(jìn)行應(yīng)答、上述通信API部從上述協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的接收數(shù)據(jù)的情況下,將該接收數(shù)據(jù)提交給上述應(yīng)用程序,在對該讀取呼叫進(jìn)行應(yīng)答、上述通信API部從上述協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的發(fā)送數(shù)據(jù)的情況下,將該發(fā)送數(shù)據(jù)提交給上述協(xié)議處理部,除此之外的情況下,將上述數(shù)據(jù)提交給應(yīng)用業(yè)務(wù)處理分配部,在捕捉到寫入呼叫的情況下,將按照該捕捉到的寫入呼叫指示寫入的發(fā)送數(shù)據(jù)提交給協(xié)議處理分配部;應(yīng)用業(yè)務(wù)處理分配部,按照預(yù)定的應(yīng)用業(yè)務(wù)處理用分配規(guī)則決定擔(dān)當(dāng)對自該呼叫捕捉部提交的數(shù)據(jù)的應(yīng)用業(yè)務(wù)處理的群集成員,在該決定的群集成員是本群集成員的情況下、將上述數(shù)據(jù)提交給本群集成員上的應(yīng)用程序,在上述決定的群集成員是其它的群集成員的情況下、將上述數(shù)據(jù)提交給傳輸部;協(xié)議處理分配部,按照預(yù)定的協(xié)議處理用分配規(guī)則決定擔(dān)當(dāng)對自上述呼叫捕捉部提交的數(shù)據(jù)的協(xié)議處理的群集成員,在該決定的群集成員是本群集成員的情況下、將上述數(shù)據(jù)提交給本群集成員上的協(xié)議處理部,在上述決定的群集成員是其它的群集成員的情況下、將上述數(shù)據(jù)提交給傳輸部;以及傳輸部,將自上述應(yīng)用業(yè)務(wù)處理分配部及協(xié)議處理分配部提交的數(shù)據(jù)向相應(yīng)的群集成員進(jìn)行傳送。
23、 根據(jù)權(quán)利要求22所述的服務(wù)器群集,其特征在于,上述應(yīng)用業(yè)務(wù)處理用分配規(guī)則根據(jù)針對應(yīng)用業(yè)務(wù)數(shù)據(jù)的哈希值,決定分配目的地,上述協(xié)議處理用分配規(guī)則根據(jù)基于構(gòu)成包首的參數(shù)所計(jì)算出的哈希值,決定分配目的地。
24、 一種服務(wù)器群集,包括多個(gè)群集成員,其中從廣播給所有群集成員的通信量中,各成員篩選自己的擔(dān)當(dāng)部分,除此之外進(jìn)行廢棄,由此分配通信量;各群集成員,在收發(fā)接口和協(xié)議處理部之間包括發(fā)送側(cè)分配濾波器和接收側(cè)分配濾波器,它們保持根據(jù)包的規(guī)定部分計(jì)算整數(shù)值的計(jì)算規(guī)則和分配給自己的整數(shù)值;在上述接收側(cè)分配濾波器中,按照上述計(jì)算規(guī)則對每一包計(jì)算整數(shù)值,僅在計(jì)算結(jié)果等于上述分配給自己的整數(shù)值的情況下,將該包提交給協(xié)議處理部的接收處理;在上述發(fā)送側(cè)分配濾波器中,通過對從協(xié)議處理部接交的每一發(fā)送包按照上述計(jì)算規(guī)則計(jì)算整數(shù)值,僅在計(jì)算結(jié)果與上述分配給自己的整數(shù)值相等的情況下,從發(fā)送接口輸出包,并且,通過在現(xiàn)用系統(tǒng)和備用系統(tǒng)中分配給上述接收側(cè)分配濾波器相同數(shù)值,僅在現(xiàn)用系統(tǒng)內(nèi)分配給上述發(fā)送側(cè)分配濾波器上述數(shù)值,就能進(jìn)行冗余處理;并且,通過按照在各群集成員中無縫分擔(dān)根據(jù)計(jì)算規(guī)則得到的計(jì)算結(jié)果的整數(shù)值的集合的方式分配整數(shù)值,就能夠進(jìn)行通信量的分配和冗余處理。
25、 一種群集成員,包括協(xié)議處理部,執(zhí)行協(xié)議處理;通信API部,按照呼叫的種類從上述協(xié)議處理部讀取數(shù)據(jù)或在上述協(xié)議處理部中寫入數(shù)據(jù);以及捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的對上述通信API部的呼叫、替代上述應(yīng)用程序呼叫上述通信API部,對于根據(jù)該呼叫、上述通信API部從上述協(xié)議處理部讀取的數(shù)據(jù),或根據(jù)上述呼叫、上述通信API部在上述協(xié)議處理部中寫入的數(shù)據(jù)進(jìn)行對應(yīng)于上述呼叫的種類的處理,同時(shí),對于從其它的群集成員發(fā)送過來的數(shù)據(jù)進(jìn)行對應(yīng)于此數(shù)據(jù)的種類的處理。
26、 一種群集成員,包括現(xiàn)用系統(tǒng)協(xié)議處理部,執(zhí)行協(xié)議處理;現(xiàn)用系統(tǒng)通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述現(xiàn)用系統(tǒng)協(xié)議處理部讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將按照該寫入呼叫指示寫入的數(shù)據(jù)寫入上述現(xiàn)用系統(tǒng)協(xié)議處理部中;現(xiàn)用系統(tǒng)呼叫捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的讀取呼叫或?qū)懭牒艚校诓蹲降阶x取呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜霈F(xiàn)用系統(tǒng)通信API部進(jìn)行讀取呼叫,將對該讀取呼叫進(jìn)行應(yīng)答、上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理部讀取的數(shù)據(jù)提交給上述應(yīng)用程序,在捕捉到寫入呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜霈F(xiàn)用系統(tǒng)通信API部進(jìn)行寫入呼叫;以及現(xiàn)用系統(tǒng)傳輸部,在該現(xiàn)用系統(tǒng)呼叫捕捉部捕捉到寫入呼叫的情況下,對成為本群集成員的備用系統(tǒng)的群集成員傳送寫入數(shù)據(jù)的復(fù)制數(shù)據(jù);
27、 根據(jù)權(quán)利要求26所述的群集成員,其特征在于,上述現(xiàn)用系統(tǒng)傳輸部向成為本群集成員的備用系統(tǒng)的群集成員發(fā)送上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理部讀取的讀取數(shù)據(jù)的復(fù)制數(shù)據(jù);上述現(xiàn)用系統(tǒng)呼叫捕捉部在自備用系統(tǒng)核對部通知的核對結(jié)果表示不一致的情況下,廢棄上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理部讀取的數(shù)據(jù)。
28、 根據(jù)權(quán)利要求27所述的群集成員,其特征在于,上述現(xiàn)用系統(tǒng)呼叫捕捉部在從備用系統(tǒng)寫入部通知的寫入結(jié)果表示異常結(jié)束的情況下,廢棄通過寫入呼叫而指示寫入的數(shù)據(jù)。
29、 根據(jù)權(quán)利要求26所述的群集成員,其特征在于,包括確認(rèn)應(yīng)答緩沖器,以及接收包控制部,當(dāng)從發(fā)送包的目的地址的對方裝置發(fā)送過來相對于上述發(fā)送包的確認(rèn)應(yīng)答時(shí),以沒有從上述備用系統(tǒng)的群集成員中發(fā)送過來表示上述發(fā)送包的發(fā)送通知為條件,將上述確認(rèn)應(yīng)答保存在上述確認(rèn)應(yīng)答緩沖器中;當(dāng)從上述備用系統(tǒng)的群集成員中發(fā)送過來發(fā)送通知時(shí),以在上述確認(rèn)應(yīng)答緩沖器中保存有相對于該發(fā)送通知所表示的發(fā)送包的確認(rèn)應(yīng)答為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述確認(rèn)應(yīng)答。
30、 根據(jù)權(quán)利要求26所述的群集成員,其特征在于,包括備用系統(tǒng)發(fā)送履歷存儲(chǔ)部,確認(rèn)應(yīng)答緩沖器,發(fā)送通知接收部,將從上述備用系統(tǒng)的群集成員發(fā)送過來的發(fā)送通知中所含有的序列號(hào)碼保存在上述備用系統(tǒng)發(fā)送履歷存儲(chǔ)部中;以及接收包控制部,當(dāng)從發(fā)送包的目的地址的對方裝置發(fā)送過來含上述發(fā)送包的序列號(hào)碼的確認(rèn)應(yīng)答時(shí),以沒有在上述備用系統(tǒng)通信履歷存儲(chǔ)部保存上述序列號(hào)碼為條件,將上述確認(rèn)應(yīng)答保存在上述確認(rèn)應(yīng)答緩沖器中;當(dāng)在上述備用系統(tǒng)發(fā)送履歷存儲(chǔ)部中登記了序列號(hào)碼時(shí),以在上述確認(rèn)應(yīng)答緩沖器中保存有對應(yīng)該上述序列號(hào)碼的確認(rèn)應(yīng)答為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述確認(rèn)應(yīng)答。
31、 根據(jù)權(quán)利要求26所述的群集成員,其特征在于,包括接收包緩沖器,以及接收包控制部,當(dāng)接收包時(shí),以從上述備用系統(tǒng)的群集成員沒有發(fā)送過來表示上述包的接收通知為條件,在上述接收包緩沖器中登記上述包;當(dāng)從上述備用系統(tǒng)的群集成員發(fā)送過來接收通知時(shí),以在上述接收包緩沖器中登記了比上述接收通知所表示的包更以前接收的包為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述以前接收的包。
32、 根據(jù)權(quán)利要求26所述的群集成員,其特征在于,包括備用系統(tǒng)接收履歷存儲(chǔ)部,接收包緩沖器,接收通知接收部,將從上述備用系統(tǒng)的群集成員發(fā)送過來的接收通知中所含有的標(biāo)識(shí)符保存在上述備用系統(tǒng)接收履歷存儲(chǔ)部中,以及接收包控制部,當(dāng)接收包時(shí),以未在上述備用系統(tǒng)接收履歷存儲(chǔ)部中保存上述包的標(biāo)識(shí)符為條件,在上述接收包緩沖器中存儲(chǔ)上述包;當(dāng)在上述備用系統(tǒng)接收履歷存儲(chǔ)部中保存了包的標(biāo)識(shí)符時(shí),以在上述接收包緩沖器中登記了比上述接收通知所表示的包更以前接收的包為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述以前接收的包。
33、 根據(jù)權(quán)利要求29所述的群集成員,其特征在于,具有監(jiān)視協(xié)議處理的發(fā)送緩沖器并直到發(fā)送緩沖器變空為止使下一寫入處理延遲的結(jié)構(gòu)。
34、 一種群集成員,包括.-備用系統(tǒng)協(xié)議處理部,執(zhí)行協(xié)議處理;備用系統(tǒng)通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述備用系統(tǒng)協(xié)議處理部中讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將數(shù)據(jù)寫入上述備用系統(tǒng)協(xié)議處理部中;備用系統(tǒng)寫入部,當(dāng)從上述現(xiàn)用系統(tǒng)的群集成員傳送過來復(fù)制數(shù)據(jù)時(shí),對上述備用系統(tǒng)通信API部進(jìn)行寫入呼叫,將上述復(fù)制數(shù)據(jù)寫入上述備用系統(tǒng)協(xié)議處理部中;以及廢棄部,廢棄由上述備用系統(tǒng)協(xié)議處理部己完成協(xié)議處理的接收數(shù)據(jù)及發(fā)送數(shù)據(jù)。
35、 根據(jù)權(quán)利要求34所述的群集成員,其特征在于,包括備用系統(tǒng)核對部,核對從上述現(xiàn)用系統(tǒng)的群集成員傳送過來的讀取數(shù)據(jù)的復(fù)制數(shù)據(jù)和通過上述備用系統(tǒng)協(xié)議處理部接收的數(shù)據(jù),對上述復(fù)制數(shù)據(jù)的傳輸源的群集成員通知核對結(jié)果。
36、 根據(jù)權(quán)利要求35所述的群集成員,其特征在于,上述備用系統(tǒng)寫入部對上述復(fù)制數(shù)據(jù)的傳輸源的群集成員通知表示在上述備用系統(tǒng)協(xié)議處理部中對上述寫入數(shù)據(jù)的復(fù)制數(shù)據(jù)的協(xié)議處理是否正常結(jié)束的寫入結(jié)果。
37、 根據(jù)權(quán)利要求34所述的群集成員,其特征在于,包括發(fā)送通知發(fā)送部,向上述現(xiàn)用系統(tǒng)的群集成員發(fā)送表示由上述備用系統(tǒng)協(xié)議處理部已完成協(xié)議處理的發(fā)送包的發(fā)送通知;
38、 根據(jù)權(quán)利要求34所述的群集成員,其特征在于,包括接收通知發(fā)送部,將表示接收的包的接收通知向上述現(xiàn)用系統(tǒng)的群集成員發(fā)送。
39、 根據(jù)權(quán)利要求37所述的群集成員,其特征在于,上述備用系統(tǒng)的群集成員具有監(jiān)視協(xié)議處理的發(fā)送緩沖器并直到發(fā)送緩沖器變空為止使下一寫入處理延遲的結(jié)構(gòu)。
40、 一種群集成員,包括協(xié)議處理部,執(zhí)行協(xié)議處理;接收側(cè)分配濾波器,根據(jù)預(yù)定的協(xié)議處理用分配規(guī)則,在判斷為接收包是應(yīng)該由本群集成員處理的接收包的情況下,將上述接收包提交給上述協(xié)議處理部;通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述協(xié)議處理部讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將按照該寫入呼叫指示寫入的數(shù)據(jù)寫入上述協(xié)議處理部中;呼叫捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的讀取呼叫或?qū)懭牒艚小⒃诓蹲降阶x取呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜鐾ㄐ臕PI部進(jìn)行讀取呼叫,在對該讀取呼叫進(jìn)行應(yīng)答、上述通信API部從上述協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的接收數(shù)據(jù)的情況下,將該接收數(shù)據(jù)提交給上述應(yīng)用程序,在對該讀取呼叫進(jìn)行應(yīng)答、上述通信API部從上述協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的發(fā)送數(shù)據(jù)的情況下,將該發(fā)送數(shù)據(jù)提交給上述協(xié)議處理部,在這之外的情況下,將上述數(shù)據(jù)提交給應(yīng)用業(yè)務(wù)處理分配部,在捕捉到寫入呼叫的情況下,將按照該捕捉寫入呼叫指示寫入的發(fā)送數(shù)據(jù)提交給協(xié)議處理分配部;應(yīng)用業(yè)務(wù)處理分配部,按照預(yù)定的應(yīng)用業(yè)務(wù)處理用分配規(guī)則決定擔(dān)當(dāng)對自該呼叫捕捉部提交的數(shù)據(jù)的應(yīng)用業(yè)務(wù)處理的群集成員,在該決定的群集成員是本群集成員的情況下、將上述數(shù)據(jù)提交給本群集成員上的應(yīng)用程序,在上述決定的群集成員是其它的群集成員的情況下、將上述數(shù)據(jù)提交給傳輸部;協(xié)議處理分配部,按照預(yù)定的協(xié)議處理用分配規(guī)則決定擔(dān)當(dāng)對自上述呼叫捕捉部提交的數(shù)據(jù)的協(xié)議處理的群集成員,在該決定的群集成員是本群集成員的情況下、將上述數(shù)據(jù)提交給本群集成員上的協(xié)議處理部,在上述決定的群集成員是其它的群集成員的情況下、將上述數(shù)據(jù)提交給傳輸 部;以及傳輸部,將自上述應(yīng)用業(yè)務(wù)處理分配部及協(xié)議處理分配部提交的數(shù)據(jù) 向相應(yīng)的群集成員進(jìn)行傳送。
41、 根據(jù)權(quán)利要求40所述的群集成員,其特征在于,上述應(yīng)用業(yè)務(wù)處理用分配規(guī)則根據(jù)針對應(yīng)用業(yè)務(wù)數(shù)據(jù)的哈希值,決定 分配目的地,上述協(xié)議處理用分配規(guī)則根據(jù)基于構(gòu)成包首的參數(shù)所計(jì)算出的哈希 值,決定分配目的地。
42、 一種群集成員,其中,在收發(fā)接口和協(xié)議處理部之間包括發(fā)送側(cè)分配濾波器和接收側(cè)分配 濾波器,它們保持根據(jù)包的規(guī)定部分計(jì)算整數(shù)值的計(jì)算規(guī)則和分配給自己 的整數(shù)值;在上述接收側(cè)分配濾波器中,按照上述計(jì)算規(guī)則對每一包計(jì)算整數(shù) 值,僅在計(jì)算結(jié)果等于上述分配給自己的整數(shù)值的情況下,將該包提交給 協(xié)議處理部的接收處理;在上述發(fā)送側(cè)分配濾波器中,通過對從協(xié)議處理部接交的每一發(fā)送包 按照上述計(jì)算規(guī)則計(jì)算整數(shù)值,僅在計(jì)算結(jié)果與上述分配給自己的整數(shù)值 相等的情況下,從發(fā)送接口輸出包,并且,通過在現(xiàn)用系統(tǒng)和備用系統(tǒng)中分配給上述接收側(cè)分配濾波器相 同數(shù)值,僅在現(xiàn)用系統(tǒng)內(nèi)分配給上述發(fā)送側(cè)分配濾波器上述數(shù)值,就能進(jìn) 行冗余處理;并且,通過按照在各群集成員中無縫分擔(dān)根據(jù)計(jì)算規(guī)則得到的計(jì)算結(jié) 果的整數(shù)值的集合的方式分配整數(shù)值,就能夠進(jìn)行通信量的分配和冗余處 理。
43、 一種群集成員的冗余化方法,包括現(xiàn)用系統(tǒng)呼叫捕捉步驟,作為現(xiàn)用系統(tǒng)進(jìn)行工作的現(xiàn)用系統(tǒng)群集成 員,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的讀取呼叫或?qū)懭牒?叫、在捕捉到讀取呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜霈F(xiàn)用系統(tǒng)通信 API部進(jìn)行讀取呼叫,將應(yīng)答該讀取呼叫、上述現(xiàn)用系統(tǒng)通信API部從現(xiàn)用系統(tǒng)協(xié)議處理部讀取的數(shù)據(jù)提交給上述應(yīng)用程序,在捕捉到寫入呼叫的 情況下替代上述應(yīng)用程序?qū)ι鲜霈F(xiàn)用系統(tǒng)通信API部進(jìn)行寫入呼叫;現(xiàn)用系統(tǒng)傳輸步驟,上述現(xiàn)用系統(tǒng)群集成員,在通過現(xiàn)用系統(tǒng)呼叫捕 捉步驟捕捉到寫入呼叫的情況下,對成為本群集成員的備用系統(tǒng)的群集成 員傳送寫入數(shù)據(jù)的復(fù)制數(shù)據(jù);備用系統(tǒng)寫入步驟,作為備用系統(tǒng)進(jìn)行工作的備用系統(tǒng)群集成員,當(dāng) 從上述現(xiàn)用系統(tǒng)群集成員傳送過來復(fù)制數(shù)據(jù)時(shí),對備用系統(tǒng)通信API部進(jìn) 行寫入呼叫,將上述復(fù)制數(shù)據(jù)寫入備用系統(tǒng)協(xié)議處理部中;以及廢棄步驟,上述備用系統(tǒng)群集成員,廢棄由上述備用系統(tǒng)協(xié)議處理部 己完成協(xié)議處理的接收數(shù)據(jù)及發(fā)送數(shù)據(jù)。
44、 根據(jù)權(quán)利要求43所述的群集成員冗余化方法,其特征在于,包括發(fā)送通知發(fā)送步驟,上述備用系統(tǒng)群集成員,向上述現(xiàn)用系統(tǒng)的群集 成員發(fā)送表示由上述備用系統(tǒng)協(xié)議處理部己完成協(xié)議處理的發(fā)送包的發(fā) 送通知;以及接收包控制步驟,上述現(xiàn)用系統(tǒng)群集成員,當(dāng)從發(fā)送包的目的地址的 對方裝置發(fā)送過來相對于上述發(fā)送包的確認(rèn)應(yīng)答時(shí),以沒有從上述備用系 統(tǒng)群集成員中發(fā)送過來表示上述發(fā)送包的發(fā)送通知為條件,將上述確認(rèn)應(yīng) 答保存在確認(rèn)應(yīng)答緩沖器中;當(dāng)從上述備用系統(tǒng)群集成員中發(fā)送過來發(fā)送 通知時(shí),以在上述確認(rèn)應(yīng)答緩沖器中保存有相對于該發(fā)送通知所表示的發(fā) 送包的確認(rèn)應(yīng)答為條件,向上述備用系統(tǒng)群集成員發(fā)送上述確認(rèn)應(yīng)答。
45、 根據(jù)權(quán)利要求43所述的群集成員冗余化方法,其特征在于,包括接收通知發(fā)送步驟,上述備用系統(tǒng)群集成員,將表示接收的包的接收 通知向上述現(xiàn)用系統(tǒng)的群集成員發(fā)送;以及接收包控制步驟,當(dāng)上述現(xiàn)用系統(tǒng)群集成員接收包時(shí),就以從上述備 用系統(tǒng)群集成員沒有發(fā)送過來表示上述包的接收通知為條件,在接收包緩 沖器中登記上述包;當(dāng)上述現(xiàn)用系統(tǒng)群集成員從上述備用系統(tǒng)群集成員發(fā) 送過來接收通知時(shí),就以在上述接收包緩沖器中登記了比上述接收通知所 表示的包更以前接收的包為條件,向上述備用系統(tǒng)的群集成員發(fā)送上述以前接收的包。
46、 根據(jù)權(quán)利要求44所述的群集成員冗余化方法,其特征在于,包括現(xiàn)用系統(tǒng)側(cè)延遲步驟,上述現(xiàn)用系統(tǒng)的群集成員監(jiān)視協(xié)議處理的發(fā)送 緩沖器,直到發(fā)送緩沖器變空為止,使下一寫入處理延遲,以及備用系統(tǒng)側(cè)延遲步驟,上述備用系統(tǒng)的群集成員監(jiān)視協(xié)議處理的發(fā)送 緩沖器,直到發(fā)送緩沖器變空為止,使下一寫入處理延遲。
47、 一種負(fù)荷分散方法,包括接收側(cè)分配步驟,群集成員根據(jù)預(yù)定的協(xié)議處理用分配規(guī)則,在判斷 為接收包是應(yīng)該由本群集成員處理的接收包的情況下,將上述接收包提交 給協(xié)議處理部;呼叫捕捉步驟,上述群集成員捕捉來自在本群集成員上進(jìn)行工作的應(yīng) 用程序的讀取呼叫或?qū)懭牒艚校诓蹲降阶x取呼叫的情況下替代上述應(yīng)用 程序?qū)νㄐ臕PI部進(jìn)行讀取呼叫;在應(yīng)答該讀取呼叫、上述通信API部從 協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的接收數(shù)據(jù)的情況 下,將該接收數(shù)據(jù)提交給上述應(yīng)用程序;在應(yīng)答該讀取呼叫、上述通信 API部從協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的發(fā)送數(shù)據(jù) 的情況下,將該發(fā)送數(shù)據(jù)提交給上述協(xié)議處理部;除此之外的情況下,將 上述數(shù)據(jù)提交給應(yīng)用業(yè)務(wù)處理分配步驟,在捕捉到寫入呼叫的情況下,將 按照該捕捉到的寫入呼叫指示寫入的發(fā)送數(shù)據(jù)提交給協(xié)議處理分配步驟;應(yīng)用業(yè)務(wù)處理分配步驟,上述群集成員按照預(yù)定的應(yīng)用業(yè)務(wù)處理用分 配規(guī)則決定擔(dān)當(dāng)對從呼叫捕捉步驟提交的數(shù)據(jù)的應(yīng)用業(yè)務(wù)處理的群集成 員,在該決定的群集成員是本群集成員的情況下、將上述數(shù)據(jù)提交給本群 集成員上的應(yīng)用程序,在上述決定的群集成員是其它的群集成員的情況 下、將上述數(shù)據(jù)提交給傳輸步驟;協(xié)議處理分配步驟,上述群集成員按照預(yù)定的協(xié)議處理用分配規(guī)則決 定擔(dān)當(dāng)對從上述呼叫捕捉步驟提交的數(shù)據(jù)的協(xié)議處理的群集成員,在該決 定的群集成員是本群集成員的情況下、將上述數(shù)據(jù)提交給本群集成員上的 協(xié)議處理部,在上述決定的群集成員是其它的群集成員的情況下、將上述 數(shù)據(jù)提交給傳輸步驟;以及傳輸步驟,將從上述應(yīng)用業(yè)務(wù)處理分配步驟及協(xié)議處理分配步驟提交 的數(shù)據(jù)向相應(yīng)的群集成員傳送。
48、 一種群集系統(tǒng)中的冗余化負(fù)荷分散方法,該群集系統(tǒng)包括多個(gè)群 集成員,其中從廣播給所有群集成員的通信量中,各成員篩選自己的擔(dān)當(dāng) 部分,除此之外進(jìn)行廢棄,由此分配通信量;其中,各群集成員,在收發(fā)接口和協(xié)議處理部之間設(shè)置發(fā)送側(cè)分配濾波器和 接收側(cè)分配濾波器,它們保持根據(jù)包的規(guī)定部分計(jì)算整數(shù)值的計(jì)算規(guī)則和分配給自己的整數(shù)值;在上述接收側(cè)分配濾波器中,按照上述計(jì)算規(guī)則對每一包計(jì)算整數(shù) 值,僅在計(jì)算結(jié)果等于上述分配給自己的整數(shù)值的情況下,將該包提交給 協(xié)議處理部的接收處理;在上述發(fā)送側(cè)分配濾波器中,通過對從協(xié)議處理部接交的每一發(fā)送包 按照上述計(jì)算規(guī)則計(jì)算整數(shù)值,僅在計(jì)算結(jié)果與上述分配給自己的整數(shù)值 相等的情況下,從發(fā)送接口輸出包,并且,通過在現(xiàn)用系統(tǒng)和備用系統(tǒng)中分配給上述接收側(cè)分配濾波器相 同數(shù)值,僅在現(xiàn)用系統(tǒng)內(nèi)分配給上述發(fā)送側(cè)分配濾波器上述數(shù)值,就能進(jìn) 行冗余處理;并且,通過按照在各群集成員中無縫分擔(dān)根據(jù)計(jì)算規(guī)則得到的計(jì)算結(jié) 果的整數(shù)值的集合的方式分配整數(shù)值,就能夠進(jìn)行通信量的分配和冗余處 理。
49、 一種程序,用于使計(jì)算機(jī)具有以下各部的功能, 協(xié)議處理部,執(zhí)行協(xié)議處理;通信API部,按照呼叫的種類從上述協(xié)議處理部讀取數(shù)據(jù)或在上述協(xié) 議處理部中寫入數(shù)據(jù);以及捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的對上述通信 API部的呼叫,替代上述應(yīng)用程序呼叫上述通信API部,對于根據(jù)該呼叫、 上述通信API部從上述協(xié)議處理部讀取的數(shù)據(jù),或根據(jù)上述呼叫、上述通 信API部在上述協(xié)議處理部中寫入的數(shù)據(jù)進(jìn)行對應(yīng)于上述呼叫的種類的 處理,同時(shí),對于從其它的群集成員發(fā)送過來的數(shù)據(jù)進(jìn)行對應(yīng)于此數(shù)據(jù)的 種類的處理。
50、 一種程序,用于使計(jì)算機(jī)具有以下各部的功能, 現(xiàn)用系統(tǒng)協(xié)議處理部,執(zhí)行協(xié)議處理;現(xiàn)用系統(tǒng)通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述現(xiàn)用系統(tǒng)協(xié)議處理部讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將按照該寫入呼叫指示寫入的數(shù)據(jù)寫入上述現(xiàn)用系統(tǒng)協(xié)議處理部中;現(xiàn)用系統(tǒng)呼叫捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序 的讀取呼叫或?qū)懭牒艚?,在捕捉到讀取呼叫的情況下替代上述應(yīng)用程序?qū)?上述現(xiàn)用系統(tǒng)通信API部進(jìn)行讀取呼叫,將對該讀取呼叫進(jìn)行應(yīng)答、上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理部讀取的數(shù)據(jù)提交給上述應(yīng)用程序,在捕捉到寫入呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜霈F(xiàn)用系統(tǒng)通信API部進(jìn)行寫入呼叫;以及現(xiàn)用系統(tǒng)傳輸部,在該現(xiàn)用系統(tǒng)呼叫捕捉部捕捉到寫入呼叫的情況 下,對成為本群集成員的備用系統(tǒng)的群集成員傳送寫入數(shù)據(jù)的復(fù)制數(shù)據(jù);
51、 根據(jù)權(quán)利要求50所述的程序,其特征在于, 上述現(xiàn)用系統(tǒng)傳輸部向成為本群集成員的備用系統(tǒng)的群集成員發(fā)送上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理部讀取的讀取數(shù)據(jù)的 復(fù)制數(shù)據(jù);上述現(xiàn)用系統(tǒng)呼叫捕捉部在自備用系統(tǒng)核對部通知的核對結(jié)果表示 不一致的情況下,廢棄上述現(xiàn)用系統(tǒng)通信API部從上述現(xiàn)用系統(tǒng)協(xié)議處理 部讀取的數(shù)據(jù)。
52、 根據(jù)權(quán)利要求51所述的程序,其特征在于,上述現(xiàn)用系統(tǒng)呼叫捕捉部在從備用系統(tǒng)寫入部通知的寫入結(jié)果表示 異常結(jié)束的情況下,廢棄通過寫入呼叫指示寫入的數(shù)據(jù)。
53、 根據(jù)權(quán)利要求50所述的程序,其中, 上述計(jì)算機(jī)包括確認(rèn)應(yīng)答緩沖器,并且,使上述計(jì)算機(jī)具有接收包控制部的功能,當(dāng)從發(fā)送包的目的地址的對 方裝置發(fā)送過來相對于上述發(fā)送包的確認(rèn)應(yīng)答時(shí),該接收包控制部就以沒 有從上述備用系統(tǒng)的群集成員中發(fā)送過來表示上述發(fā)送包的發(fā)送通知為 條件,將上述確認(rèn)應(yīng)答保存在上述確認(rèn)應(yīng)答緩沖器中;當(dāng)從上述備用系統(tǒng) 的群集成員中發(fā)送過來發(fā)送通知時(shí),該接收包控制部就以在上述確認(rèn)應(yīng)答緩沖器中保存有相對于該發(fā)送通知所表示的發(fā)送包的確認(rèn)應(yīng)答為條件,向 上述備用系統(tǒng)的群集成員發(fā)送上述確認(rèn)應(yīng)答。
54、 根據(jù)權(quán)利要求50所述的程序,其中, 上述計(jì)算機(jī)包括接受包緩沖器,并且,使上述計(jì)算機(jī)具有接收包控制部的功能,當(dāng)接收包時(shí),該接收包控制 部就以從上述備用系統(tǒng)的群集成員沒有發(fā)送過來表示上述包的接收通知 為條件,在上述接收包緩沖器中登記上述包;當(dāng)從上述備用系統(tǒng)的群集成 員發(fā)送過來接收通知時(shí),該接收包控制部就以在上述接收包緩沖器中登記 了比上述接收通知所表示的包更以前接收的包為條件,向上述備用系統(tǒng)的 群集成員發(fā)送上述以前接收的包。
55、 根據(jù)權(quán)利要求53所述的程序,其中使上述計(jì)算機(jī)具有延遲部的功能,該延遲部監(jiān)視協(xié)議處理的發(fā)送緩沖 器并直到發(fā)送緩沖器變空為止使下一寫入處理延遲。
56、 一種程序,用于使計(jì)算機(jī)具有以下各部的功能 備用系統(tǒng)協(xié)議處理部,執(zhí)行協(xié)議處理;備用系統(tǒng)通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述備用系統(tǒng)協(xié)議處 理部中讀取數(shù)據(jù),對寫入呼叫進(jìn)行應(yīng)答、將數(shù)據(jù)寫入上述備用系統(tǒng)協(xié)議處 理部中;備用系統(tǒng)寫入部,當(dāng)從上述現(xiàn)用系統(tǒng)的群集成員傳送過來復(fù)制數(shù)據(jù) 時(shí),對上述備用系統(tǒng)通信API部進(jìn)行寫入呼叫,將上述復(fù)制數(shù)據(jù)寫入上述 備用系統(tǒng)協(xié)議處理部中;以及廢棄部,廢棄由上述備用系統(tǒng)協(xié)議處理部已完成協(xié)議處理的接收數(shù)據(jù) 及發(fā)送數(shù)據(jù)。
57、 根據(jù)權(quán)利要求56所述的程序,其中,使上述計(jì)算機(jī)具有備用系統(tǒng)核對部的功能,該備用系統(tǒng)核對部核對從 上述現(xiàn)用系統(tǒng)的群集成員傳送過來的讀取數(shù)據(jù)的復(fù)制數(shù)據(jù)和通過上述備 用系統(tǒng)協(xié)議處理部接收的數(shù)據(jù),對上述復(fù)制數(shù)據(jù)的傳輸源的群集成員通知 核對結(jié)果。
58、 根據(jù)權(quán)利要求57所述的程序,其特征在于, 上述備用系統(tǒng)寫入部對上述復(fù)制數(shù)據(jù)的傳輸源的群集成員通知表示在上述備用系統(tǒng)協(xié)議處理部中對上述寫入數(shù)據(jù)的復(fù)制數(shù)據(jù)的協(xié)議處理是 否正常結(jié)束的寫入結(jié)果。
59、 根據(jù)權(quán)利要求56所述的程序,其中,使上述計(jì)算機(jī)具有發(fā)送通知發(fā)送部的功能,該發(fā)送通知發(fā)送部向上述 現(xiàn)用系統(tǒng)的群集成員發(fā)送表示由上述備用系統(tǒng)協(xié)議處理部已完成協(xié)議處 理的發(fā)送包的發(fā)送通知;
60、 根據(jù)權(quán)利要求56所述的程序,其中,使上述計(jì)算機(jī)具有接收通知發(fā)送部的功能,該接收通知發(fā)送部將表示 接收的包的接收通知向上述現(xiàn)用系統(tǒng)的群集成員進(jìn)行發(fā)送。
61、 根據(jù)權(quán)利要求59所述的程序,其中,使上述計(jì)算機(jī)具有延遲部的功能,該延遲部監(jiān)視協(xié)議處理的發(fā)送緩沖 器并直到發(fā)送緩沖器變空為止使下一寫入處理延遲。
62、 一種程序,用于使計(jì)算機(jī)具有以下各部的功能 協(xié)議處理部,執(zhí)行協(xié)議處理,接收側(cè)分配濾波器,根據(jù)預(yù)定的協(xié)議處理用分配規(guī)則,在判斷為接收 包是應(yīng)該由本群集成員處理的接收包的情況下,將上述接收包提交給上述 協(xié)議處理部;通信API部,對讀取呼叫進(jìn)行應(yīng)答、從上述協(xié)議處理部讀取數(shù)據(jù),對 寫入呼叫進(jìn)行應(yīng)答、將按照該寫入呼叫指示寫入的數(shù)據(jù)寫入上述協(xié)議處理 部中;呼叫捕捉部,捕捉來自在本群集成員上進(jìn)行工作的應(yīng)用程序的讀取呼 叫或?qū)懭牒艚?,在捕捉到讀取呼叫的情況下替代上述應(yīng)用程序?qū)ι鲜鐾ㄐ?API部進(jìn)行讀取呼叫,在對該讀取呼叫進(jìn)行應(yīng)答、上述通信API部從上述 協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來的接收數(shù)據(jù)的情況 下,將該接收數(shù)據(jù)提交給上述應(yīng)用程序,在對該讀取呼叫進(jìn)行應(yīng)答、上述 通信API部從上述協(xié)議處理部讀取的數(shù)據(jù)是從其它的群集成員發(fā)送過來 的發(fā)送數(shù)據(jù)的情況下,將該發(fā)送數(shù)據(jù)提交給上述協(xié)議處理部,在這之外的 情況下,將上述數(shù)據(jù)提交給應(yīng)用業(yè)務(wù)處理分配部,在捕捉到寫入呼叫的情 況下,將按照該捕捉寫入呼叫指示寫入的發(fā)送數(shù)據(jù)提交給協(xié)議處理分配 部;應(yīng)用業(yè)務(wù)處理分配部,按照預(yù)定的應(yīng)用業(yè)務(wù)處理用分配規(guī)則決定擔(dān)當(dāng) 對自該呼叫捕捉部提交的數(shù)據(jù)的應(yīng)用業(yè)務(wù)處理的群集成員,在該決定的群 集成員是本群集成員的情況下、將上述數(shù)據(jù)提交給本群集成員上的應(yīng)用程序,在上述決定的群集成員是其它的群集成員的情況下、將上述數(shù)據(jù)提交 給傳輸部;協(xié)議處理分配部,按照預(yù)定的協(xié)議處理用分配規(guī)則決定擔(dān)當(dāng)對自上述 呼叫捕捉部提交的數(shù)據(jù)的協(xié)議處理的群集成員,在該決定的群集成員是本 群集成員的情況下、將上述數(shù)據(jù)提交給本群集成員上的協(xié)議處理部,在上 述決定的群集成員是其它的群集成員的情況下、將上述數(shù)據(jù)提交給傳輸部;以及傳輸部,將自上述應(yīng)用業(yè)務(wù)處理分配部及協(xié)議處理分配部提交的數(shù)據(jù) 向相應(yīng)的群集成員傳送。
全文摘要
本發(fā)明提供一種群集系統(tǒng),利用現(xiàn)用系統(tǒng)和備用系統(tǒng)雙方的群集成員進(jìn)行對接收通信量的協(xié)議處理。備用系統(tǒng)廢棄完成協(xié)議處理的接收通信量,只有現(xiàn)用系統(tǒng)將接收通信量提交給AP。AP以自己的方法進(jìn)行應(yīng)用業(yè)務(wù)處理的冗余化。使用下位層的數(shù)據(jù)決定擔(dān)當(dāng)對接收通信量的協(xié)議處理的群集成員,使用完成協(xié)議處理后的上位層的數(shù)據(jù),決定進(jìn)行應(yīng)用業(yè)務(wù)處理的群集成員。
文檔編號(hào)G06F11/20GK101484879SQ20078002560
公開日2009年7月15日 申請日期2007年7月4日 優(yōu)先權(quán)日2006年7月6日
發(fā)明者地引昌弘, 狩野秀一 申請人:日本電氣株式會(huì)社