亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種分布式企業(yè)服務(wù)總線節(jié)點(diǎn)可靠性維護(hù)方法

文檔序號(hào):7663088閱讀:173來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種分布式企業(yè)服務(wù)總線節(jié)點(diǎn)可靠性維護(hù)方法
技術(shù)領(lǐng)域
本發(fā)明涉及分布式企業(yè)服務(wù)總線節(jié)點(diǎn)崩潰恢復(fù)的方法以及相應(yīng)的節(jié)點(diǎn)間信息同步的方 法,主要是一種分布式企業(yè)服務(wù)總線節(jié)點(diǎn)可靠性維護(hù)方法。
背景技術(shù)
"企業(yè)服務(wù)總線"作為應(yīng)用系統(tǒng)的連接中樞,是構(gòu)筑SOA(Service Oriented Architecture,面
向服務(wù)架構(gòu))為基礎(chǔ)的企業(yè)信息系統(tǒng)的必要元素。企業(yè)服務(wù)總線的定義可以簡(jiǎn)單的理解為由 中間件技術(shù)實(shí)現(xiàn)并支持SOA的一組基礎(chǔ)架構(gòu),支持異構(gòu)環(huán)境中的服務(wù)、消息以及基于事件的 交互,并且具有適當(dāng)?shù)姆?wù)級(jí)別和可管理性。通過(guò)企業(yè)服務(wù)總線實(shí)現(xiàn)應(yīng)用系統(tǒng)的快速接入, 并通過(guò)更高級(jí)的事件、流程處理能力,能夠很好的將企業(yè)信息系統(tǒng)與實(shí)際業(yè)務(wù)協(xié)調(diào)起來(lái),在 保證原有投資的條件下,實(shí)現(xiàn)更加靈活和敏捷的企業(yè)信息系統(tǒng)改造。
企業(yè)服務(wù)總線的實(shí)現(xiàn)模式有多種多樣,但主要包括兩大類(lèi)簡(jiǎn)單的中央輻射式企業(yè)服務(wù) 總線和全分布式企業(yè)服務(wù)總線。中央輻射模式將所有的服務(wù)都注冊(cè)到一個(gè)統(tǒng)一的中央"集線 器"中,即所有的服務(wù)消息都需要經(jīng)過(guò)一個(gè)中央服務(wù)器,該方式雖然部屬和管理比較容易, 但缺點(diǎn)也顯而易見(jiàn),企業(yè)信息系統(tǒng)的性能將受制于中央服務(wù)器消息中轉(zhuǎn)能力,當(dāng)中央服務(wù)器 出現(xiàn)故障,整個(gè)企業(yè)信息系統(tǒng)的功能將受到非常大的影響。而全分布式企業(yè)服務(wù)總線則不同, 它沒(méi)有明顯的中央服務(wù)器,總線在企業(yè)信息系統(tǒng)中是以分布式的架構(gòu)進(jìn)行部署的,每個(gè)總線 節(jié)點(diǎn)都包含完整的接入、路由、調(diào)用等功能,不再存在一個(gè)集中的瓶頸,能夠非常有效的利 用企業(yè)的硬件資源和網(wǎng)絡(luò)帶寬,在個(gè)別節(jié)點(diǎn)失效的情況下,企業(yè)信息系統(tǒng)的功能損失較小甚 至為零。
分布式企業(yè)服務(wù)總線的節(jié)點(diǎn)往往與其接入的服務(wù)運(yùn)行于同一臺(tái)物理計(jì)算機(jī)中,其運(yùn)行可 能隨時(shí)由于硬件或軟件的故障而停止,如何保證在某一節(jié)點(diǎn)失效的情況下,其他節(jié)點(diǎn)仍然能 夠正確運(yùn)行,同時(shí)在失效節(jié)點(diǎn)重新啟動(dòng)后如何保證其正確同步已有的信息,將企業(yè)信息系統(tǒng) 在故障過(guò)程中的功能損失降低到最小,正是本發(fā)明所要解決的問(wèn)題。

發(fā)明內(nèi)容
本發(fā)明要解決上述技術(shù)所存在的缺陷,提供一種分布式企業(yè)服務(wù)總線節(jié)點(diǎn)可靠性維護(hù)方法。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案這種分布式企業(yè)服務(wù)總線節(jié)點(diǎn)可靠性維護(hù)方 法,步驟如下
1) 根據(jù)企業(yè)服務(wù)總線中節(jié)點(diǎn)功能和存儲(chǔ)的環(huán)境信息,將其分為四種類(lèi)型,標(biāo)準(zhǔn)節(jié)點(diǎn)、主 節(jié)點(diǎn)、候選節(jié)點(diǎn)和代理節(jié)點(diǎn)-
標(biāo)準(zhǔn)節(jié)點(diǎn)擁有企業(yè)服務(wù)總線的標(biāo)準(zhǔn)功能,包括服務(wù)接入、消息路由;
主節(jié)點(diǎn)除擁有標(biāo)準(zhǔn)節(jié)點(diǎn)的功能外,還對(duì)整個(gè)企業(yè)服務(wù)總線的環(huán)境進(jìn)行監(jiān)視,對(duì)節(jié)點(diǎn)的 加入和移除進(jìn)行控制,儲(chǔ)存所有重要的服務(wù)和環(huán)境相關(guān)信息,并對(duì)服務(wù)的接入進(jìn)行統(tǒng)一管理;
候選節(jié)點(diǎn)通過(guò)設(shè)定算法選出的標(biāo)準(zhǔn)節(jié)點(diǎn),用于備份總線內(nèi)所有的環(huán)境信息;
代理節(jié)點(diǎn)在主節(jié)點(diǎn)的失效的情況下,暫時(shí)執(zhí)行主節(jié)點(diǎn)的功能;在主節(jié)點(diǎn)恢復(fù)后,將更 改的信息傳遞給主節(jié)點(diǎn);
2) 、定義可擴(kuò)展的事件機(jī)制,當(dāng)發(fā)現(xiàn)企業(yè)服務(wù)總線內(nèi)環(huán)境變化時(shí),節(jié)點(diǎn)構(gòu)造相應(yīng)的事件 并通知主節(jié)點(diǎn),使得該信息在整個(gè)總線內(nèi)部傳播;
3) 、實(shí)時(shí)通過(guò)候選節(jié)點(diǎn)備份總線內(nèi)重要信息;當(dāng)主節(jié)點(diǎn)失效時(shí),根據(jù)候選節(jié)點(diǎn)的備份信 息形成一個(gè)功能完整的代理節(jié)點(diǎn),并且通過(guò)消息路由機(jī)制,為失效節(jié)點(diǎn)中的服務(wù)査找替代服 務(wù);當(dāng)主節(jié)點(diǎn)恢復(fù)時(shí),根據(jù)持久化存儲(chǔ)中節(jié)點(diǎn)的通訊方式査找代理節(jié)點(diǎn),并與其進(jìn)行信息同 步;順利完成之后,主節(jié)點(diǎn)將通過(guò)事件通知所有節(jié)點(diǎn),使企業(yè)服務(wù)總線恢復(fù)到正常運(yùn)行狀態(tài)。
其中企業(yè)服務(wù)總線內(nèi)環(huán)境變化包括新服務(wù)的加入、原有服務(wù)的退出、節(jié)點(diǎn)失效等等。
其中候選節(jié)點(diǎn)備份總線內(nèi)重要信息包括各節(jié)點(diǎn)通訊方式、各個(gè)服務(wù)的地址以及詳細(xì)信息 等等。
本發(fā)明有益的效果是
1、 能夠在企業(yè)服務(wù)總線任意節(jié)點(diǎn)失效的情況下,最大限度保證總線的正常運(yùn)行,減小其 對(duì)企業(yè)信息系統(tǒng)的影響;并在能夠在失效節(jié)點(diǎn)恢復(fù)后,重新接入總線環(huán)境并順利運(yùn)行。
2、 建立一個(gè)相對(duì)集中的信息注冊(cè)中心一主節(jié)點(diǎn), 一方面能夠方便企業(yè)對(duì)其信息系統(tǒng)內(nèi)部 所有的服務(wù)進(jìn)行集中管理,另一方面由于消息的傳遞并不經(jīng)過(guò)主節(jié)點(diǎn),因而不會(huì)造成結(jié)構(gòu)上 的性能瓶頸,比較適合企業(yè)相對(duì)穩(wěn)定的運(yùn)行環(huán)境,在服務(wù)管理和系統(tǒng)運(yùn)行效率之間找到一個(gè) 平衡點(diǎn);
3、由于采用了統(tǒng)一接口的事件機(jī)制,因此總線的架構(gòu)更加靈活,企業(yè)能夠通過(guò)自定義事 件,為總線本身提供更多的管理、審計(jì)、計(jì)費(fèi)等功能,更有效的實(shí)現(xiàn)企業(yè)應(yīng)用集成。


圖1流程分類(lèi)圖2服務(wù)信息同步流程圖3標(biāo)準(zhǔn)節(jié)點(diǎn)啟動(dòng)流程圖4標(biāo)準(zhǔn)節(jié)點(diǎn)關(guān)閉流程圖5主節(jié)點(diǎn)正常啟動(dòng)流程圖6主節(jié)點(diǎn)正常關(guān)閉流程圖7標(biāo)準(zhǔn)節(jié)點(diǎn)失效后信息同步流程圖8主節(jié)點(diǎn)失效后信息同步流程圖9主節(jié)點(diǎn)恢復(fù)時(shí)的信息同步具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步介紹
可擴(kuò)展事件機(jī)制
JTang Synergy是一個(gè)遵循JBI規(guī)范的分布式企業(yè)服務(wù)總線實(shí)現(xiàn),它包含了一套基于動(dòng)態(tài) 代理的可擴(kuò)展事件機(jī)制,該事件機(jī)制主要由兩部分組成事件、事件分發(fā)機(jī)制和監(jiān)聽(tīng)器。
事件用以描述當(dāng)前系統(tǒng)中的信息變化,包含事件類(lèi)型、事件報(bào)告者(該事件由誰(shuí)構(gòu)造)、 事件源頭(信息發(fā)生變化的主體)以及其他事件本身相關(guān)信息。事件均是可序列化的,也就 是說(shuō)可以轉(zhuǎn)化為字節(jié)流通過(guò)網(wǎng)絡(luò)進(jìn)行傳輸。在JTang Synergy中,事件主要分為以下三類(lèi)服 務(wù)事件,用以描述服務(wù)的接入、退出等;節(jié)點(diǎn)事件,用以描述標(biāo)準(zhǔn)節(jié)點(diǎn)的啟動(dòng)、關(guān)閉、失效 等;環(huán)境事件,用以描述主節(jié)點(diǎn)的啟動(dòng)、關(guān)閉、恢復(fù)以及代理節(jié)點(diǎn)的啟動(dòng)等。
監(jiān)聽(tīng)器則用以監(jiān)聽(tīng)特定類(lèi)型的事件,通過(guò)實(shí)現(xiàn)定義好的回調(diào)方法,對(duì)該事件做出相應(yīng)處 理。監(jiān)聽(tīng)器在節(jié)點(diǎn)內(nèi)部是以哈希表和鏈表的結(jié)構(gòu)保存的,節(jié)點(diǎn)在接到某事件后,首先根據(jù)哈 希表找到該類(lèi)型事件的監(jiān)聽(tīng)器鏈表,然后以該事件為參數(shù),逐一調(diào)用所有相關(guān)類(lèi)型監(jiān)聽(tīng)器的 回調(diào)方法,實(shí)現(xiàn)對(duì)該事件的處理。
事件分發(fā)機(jī)制包含兩部分傳遞和分發(fā)。事件的傳遞通過(guò)動(dòng)態(tài)代理的方式實(shí)現(xiàn),動(dòng)態(tài)代理 是JDK中基本功能,能夠?yàn)樘囟ǖ膶?duì)象生成特殊的代理,用以在調(diào)用對(duì)象不直接可達(dá)時(shí),通過(guò)代理實(shí)現(xiàn)方法調(diào)用和返回值的傳遞。在JTang Synergy中,每個(gè)節(jié)點(diǎn)都會(huì)產(chǎn)生一個(gè)相應(yīng)的代 理,該代理底層通過(guò)RMI遠(yuǎn)程調(diào)用實(shí)現(xiàn),因此事件通過(guò)Java本身的遠(yuǎn)程調(diào)用通訊協(xié)議傳遞 到目的地。事件的分發(fā),在JTang Synergy中事件的流向是特定的,在主節(jié)點(diǎn)(或代理節(jié)點(diǎn))存在 的情況下,在標(biāo)準(zhǔn)節(jié)點(diǎn)之間事件的直接發(fā)送是不容許的。如果某節(jié)點(diǎn)需要更新環(huán)境信息,必 須先通知主節(jié)點(diǎn)(或代理節(jié)點(diǎn)),然后由主節(jié)點(diǎn)(或代理節(jié)點(diǎn))分發(fā)給總線內(nèi)部的其他節(jié)點(diǎn)。該分 發(fā)方式既能防止總線內(nèi)部各節(jié)點(diǎn)的環(huán)境信息混亂,同時(shí)也能夠在節(jié)點(diǎn)環(huán)境信息發(fā)生沖突和不 一致時(shí),通過(guò)主節(jié)點(diǎn)進(jìn)行同步與協(xié)調(diào)。
此外,事件機(jī)制正常運(yùn)行還與企業(yè)服務(wù)總線的狀態(tài)有關(guān)系。簡(jiǎn)單的說(shuō),在總線異常的時(shí) 候(包括節(jié)點(diǎn)首次同步,代理節(jié)點(diǎn)啟動(dòng)、遷移,主節(jié)點(diǎn)關(guān)閉),查詢(xún)總線狀態(tài),若總線狀態(tài) 為"READ一WRITE"時(shí),將該事件傳遞給主節(jié)點(diǎn),否則,服務(wù)接入會(huì)等待1秒,再次查詢(xún)總線 狀態(tài),如果5次查詢(xún)后總線狀態(tài)仍為"READJ)NLY",則通過(guò)控制臺(tái)輸出告訴用戶(hù)事件處理 失敗。
Synergy同步狀態(tài)分類(lèi)
Synergy是建立在事件系統(tǒng)的基礎(chǔ)上,通過(guò)事件的傳遞以及各節(jié)點(diǎn)針對(duì)不同事件和 Synergy當(dāng)前所處不同狀態(tài)所采取的流程,實(shí)現(xiàn)環(huán)境信息同步以及故障恢復(fù)。因此,我們可以 根據(jù)不同主要有兩種狀態(tài)正常運(yùn)行時(shí)的信息同步、節(jié)點(diǎn)失效時(shí)的信息同步以及主節(jié)點(diǎn)恢復(fù) 后的信息同步。
正常運(yùn)行時(shí)的信息同步是指所有節(jié)點(diǎn)均正常運(yùn)行時(shí),服務(wù)接入(或退出)節(jié)點(diǎn)接入(或退出) 的事件在所有節(jié)點(diǎn)中傳遞的過(guò)程,主要包括5個(gè)流程,分別為服務(wù)信息同步、標(biāo)準(zhǔn)節(jié)點(diǎn)啟 動(dòng)、標(biāo)準(zhǔn)節(jié)點(diǎn)關(guān)閉、主節(jié)點(diǎn)正常啟動(dòng)、主節(jié)點(diǎn)正常關(guān)閉。
節(jié)點(diǎn)失效時(shí)的信息同步是指節(jié)點(diǎn)出現(xiàn)異常時(shí),各不同類(lèi)型節(jié)點(diǎn)所需要進(jìn)行的事件確認(rèn)、 傳遞與同步過(guò)程,主要包括標(biāo)準(zhǔn)節(jié)點(diǎn)失效后信息同步、主節(jié)點(diǎn)失效后信息同步兩個(gè)流程。
主節(jié)點(diǎn)恢復(fù)時(shí)的信息同步則是指主節(jié)點(diǎn)意外失效后,恢復(fù)至正常運(yùn)行環(huán)境所需采取的措 施。該狀態(tài)存在的時(shí)間非常短暫,因此只包含一個(gè)流程,即主節(jié)點(diǎn)回復(fù)時(shí)信息同步。
具體分類(lèi)可參見(jiàn)圖1,下面將分狀態(tài)詳細(xì)闡述各個(gè)流程的具體步驟。
正常運(yùn)行時(shí)的信息同步
該狀態(tài)下的信息同步主要包含三方面服務(wù)信息注冊(cè)及注銷(xiāo)、標(biāo)準(zhǔn)節(jié)點(diǎn)啟動(dòng)和關(guān)閉、主節(jié)點(diǎn)啟動(dòng)和關(guān)閉。
圖2服務(wù)信息同步是指在服務(wù)接入或退出節(jié)點(diǎn)時(shí),通過(guò)服務(wù)事件將該信息在整個(gè)總線內(nèi)
部傳遞。具體步驟可描述為
當(dāng)節(jié)點(diǎn)發(fā)現(xiàn)新的服務(wù)接入(或已有服務(wù)退出)時(shí),節(jié)點(diǎn)構(gòu)造服務(wù)接入(或服務(wù)退出)事件。
主節(jié)點(diǎn)在接到該事件后,首先驗(yàn)證相應(yīng)的服務(wù)信息是否與已有的信息沖突,例如新接入
服務(wù)的地址信息是否唯一、命名是否符合規(guī)范、需要注銷(xiāo)的服務(wù)是否存在等。如果驗(yàn)證成功,
則在服務(wù)信息注冊(cè)表中加入(或注銷(xiāo))該服務(wù),并將該事件放入待處理事件列表,等待事件分
發(fā)線程進(jìn)行分發(fā);否則,通知接入節(jié)點(diǎn)事件處理失敗。
該事件分發(fā)至各個(gè)節(jié)點(diǎn)后,各節(jié)點(diǎn)的服務(wù)事件監(jiān)聽(tīng)器負(fù)責(zé)響應(yīng)該事件,將相應(yīng)的服務(wù)信
息注冊(cè)表中進(jìn)行注冊(cè)(或注銷(xiāo))。
標(biāo)準(zhǔn)節(jié)點(diǎn)信息同步是指在標(biāo)準(zhǔn)節(jié)點(diǎn)啟動(dòng)或關(guān)閉時(shí),通過(guò)節(jié)點(diǎn)事件將該信息在整個(gè)總線內(nèi) 部傳遞。
圖3標(biāo)準(zhǔn)節(jié)點(diǎn)啟動(dòng)的具體步驟可描述為
當(dāng)新的標(biāo)準(zhǔn)節(jié)點(diǎn)啟動(dòng)時(shí),首先根據(jù)配置文件中遠(yuǎn)程RMI注冊(cè)表信息,查找主節(jié)點(diǎn)的代理。 然后,構(gòu)造相應(yīng)的節(jié)點(diǎn)啟動(dòng)事件,包含本節(jié)點(diǎn)名稱(chēng)、IP地址、代理以及其他相關(guān)信息。
主節(jié)點(diǎn)接到該事件后,為該節(jié)點(diǎn)產(chǎn)生一個(gè)UID (Universal ID,唯一標(biāo)識(shí)符),將該事件放 入待處理事件列表,等待事件分發(fā)線程進(jìn)行分發(fā)。同時(shí),主節(jié)點(diǎn)將新加入節(jié)點(diǎn)放入節(jié)點(diǎn)列表 的最后一位,將該列表進(jìn)行序列化至JTang Synergy工作目錄的"succlist"文件中。
主節(jié)點(diǎn)將總線狀態(tài)設(shè)置為"READ—ONLY",并將服務(wù)注冊(cè)表傳遞給該標(biāo)準(zhǔn)節(jié)點(diǎn),完成之 后,最后將總線狀態(tài)設(shè)置為"READ—WRITE"。
如果該節(jié)點(diǎn)是除主節(jié)點(diǎn)外的唯一節(jié)點(diǎn),則該節(jié)點(diǎn)被設(shè)置為候選節(jié)點(diǎn)。
該事件分發(fā)至各個(gè)節(jié)點(diǎn)后,各節(jié)點(diǎn)的節(jié)點(diǎn)事件監(jiān)聽(tīng)器負(fù)責(zé)響應(yīng)該事件,將相應(yīng)的節(jié)點(diǎn)信 息進(jìn)行注冊(cè)。如果候選節(jié)點(diǎn)接到該事件,則將新加入節(jié)點(diǎn)放入節(jié)點(diǎn)列表的最后一位,同時(shí)對(duì) 該列表進(jìn)行序列化至JTang Synergy工作目錄的"succlist"文件中。
圖4標(biāo)準(zhǔn)節(jié)點(diǎn)關(guān)閉的具體步驟可描述為
當(dāng)已有的標(biāo)準(zhǔn)節(jié)點(diǎn)關(guān)閉時(shí),該節(jié)點(diǎn)構(gòu)造相應(yīng)的節(jié)點(diǎn)關(guān)閉事件,包含本節(jié)點(diǎn)UID以及其他 相關(guān)信息。
主節(jié)點(diǎn)接到該事件后,在服務(wù)信息注冊(cè)表中注銷(xiāo)所有通過(guò)該節(jié)點(diǎn)接入的服務(wù),并從節(jié)點(diǎn)
列表中將該節(jié)點(diǎn)去除,同時(shí)將該列表進(jìn)行序列化至JTang Synergy工作目錄的"succlist"文件中。 如果該節(jié)點(diǎn)是候選節(jié)點(diǎn),則選擇節(jié)點(diǎn)列表的第一位,將其作為新的候選節(jié)點(diǎn)。
該事件分發(fā)至各個(gè)節(jié)點(diǎn)后,各節(jié)點(diǎn)的節(jié)點(diǎn)事件監(jiān)聽(tīng)器負(fù)責(zé)響應(yīng)該事件,將所有通過(guò)該節(jié) 點(diǎn)接入的服務(wù)從服務(wù)信息注冊(cè)表中注銷(xiāo)。如果候選節(jié)點(diǎn)接到該事件,則還要將該節(jié)點(diǎn)從節(jié)點(diǎn) 列表中將該節(jié)點(diǎn)去除,同時(shí)將該列表進(jìn)行序列化至JTang Synergy工作目錄的"succlist"文件中。
主節(jié)點(diǎn)信息同步是指在標(biāo)準(zhǔn)節(jié)點(diǎn)啟動(dòng)或關(guān)閉時(shí),通過(guò)節(jié)點(diǎn)事件將該信息在整個(gè)總線內(nèi)部 傳遞。
當(dāng)主節(jié)點(diǎn)啟動(dòng)時(shí),首先判斷工作目錄中的".running"文件是否存在,如果存在則判定此 次啟動(dòng)為崩潰后恢復(fù),否則為正常啟動(dòng)。圖5主節(jié)點(diǎn)正常啟動(dòng)的具體步驟可描述為
在工作目錄中查找"succlist"文件和"registry"文件,如果存在則將其中信息反序列化,分 別作為節(jié)點(diǎn)列表和服務(wù)信息注冊(cè)表;否則,創(chuàng)建空的節(jié)點(diǎn)列表和服務(wù)信息注冊(cè)表。
檢査節(jié)點(diǎn)列表中所有的節(jié)點(diǎn)通訊是否正常,如果發(fā)現(xiàn)節(jié)點(diǎn)意外退出,則將該節(jié)點(diǎn)從列表 中去除,并注銷(xiāo)所有通過(guò)該節(jié)點(diǎn)接入的服務(wù)。檢査結(jié)束后,將節(jié)點(diǎn)列表序列化至工作目錄中 的"succlist"文件。
構(gòu)造環(huán)境事件,通知其他節(jié)點(diǎn)主節(jié)點(diǎn)啟動(dòng),并將總線的狀態(tài)設(shè)置為"READ一WRITE",使 總線可以進(jìn)行服務(wù)和節(jié)點(diǎn)的信息同步。 在工作目錄中創(chuàng)建".running"文件。 圖6主節(jié)點(diǎn)正常關(guān)閉的具體步驟可描述為
將總線的狀態(tài)設(shè)置為"READJ3NLY",使總線無(wú)法進(jìn)行服務(wù)和節(jié)點(diǎn)的信息同步。 將服務(wù)信息注冊(cè)表序列化至工作目錄中的"registry"文件中,將節(jié)點(diǎn)列表序列化至工作目 錄中的"succlist"文件。
刪除工作目錄中".running"文件。
構(gòu)造環(huán)境事件,通知其他節(jié)點(diǎn)主節(jié)點(diǎn)關(guān)閉。
節(jié)點(diǎn)失效后信息同步
企業(yè)服務(wù)總線中的節(jié)點(diǎn)往往與服務(wù)運(yùn)行在同一臺(tái)虛擬器或物理機(jī)器中,因此在機(jī)器發(fā)生 異常宕機(jī)后,節(jié)點(diǎn)也相應(yīng)失效,需要對(duì)已有的總線信息進(jìn)行修正同步,以補(bǔ)償節(jié)點(diǎn)的失效。 該狀態(tài)下信息同步主要包括三方面節(jié)點(diǎn)異常檢測(cè);普通節(jié)點(diǎn)失效后信息同步;主節(jié)點(diǎn)失效
后的信息同步。
JTang Synergy中的節(jié)點(diǎn)異常檢測(cè)僅說(shuō)明節(jié)點(diǎn)通訊過(guò)程中產(chǎn)生,并不等價(jià)于該節(jié)點(diǎn)失效, 需要進(jìn)一步確認(rèn)后,才能判定某一節(jié)點(diǎn)失效。異常節(jié)點(diǎn)的發(fā)現(xiàn)可能在兩個(gè)過(guò)程中產(chǎn)生, 一是 定期輪詢(xún)線程,該線程隨主節(jié)點(diǎn)(或代理節(jié)點(diǎn))啟動(dòng),每隔5秒嘗試連接各個(gè)節(jié)點(diǎn),獲取節(jié)點(diǎn) 的狀態(tài)信息;二是在事件分發(fā)過(guò)程中。在以上兩個(gè)過(guò)程中,若發(fā)現(xiàn)某節(jié)點(diǎn)連接超時(shí)或被拒絕, 則判定某一節(jié)點(diǎn)異常。
圖7標(biāo)準(zhǔn)節(jié)點(diǎn)失效后信息同步的具體步驟可描述為
若異常節(jié)點(diǎn)為標(biāo)準(zhǔn)節(jié)點(diǎn),則構(gòu)造節(jié)點(diǎn)異常事件,包含異常節(jié)點(diǎn)的UID以及自身的UID等 信息,并將該事件發(fā)送給主節(jié)點(diǎn)。
主節(jié)點(diǎn)接到節(jié)點(diǎn)失效事件后,將嘗試連接異常節(jié)點(diǎn),若能正常聯(lián)系則忽略該事件;若無(wú) 法聯(lián)系該異常節(jié)點(diǎn),則判定該節(jié)點(diǎn)失效。
主判定節(jié)點(diǎn)失效后,將失效節(jié)點(diǎn)從節(jié)點(diǎn)列表中刪除,并序列化節(jié)點(diǎn)列表。
注銷(xiāo)服務(wù)信息表中所有通過(guò)失效節(jié)點(diǎn)接入的服務(wù)。
若失效節(jié)點(diǎn)同時(shí)還是候選節(jié)點(diǎn),則將節(jié)點(diǎn)列表中第一位的節(jié)點(diǎn)列為候選節(jié)點(diǎn)。 將該事件分發(fā)至其他節(jié)點(diǎn)。
標(biāo)準(zhǔn)節(jié)點(diǎn)在接到節(jié)點(diǎn)失效事件后,注銷(xiāo)服務(wù)信息表中所有通過(guò)該容器接入的服務(wù)。 圖8主節(jié)點(diǎn)失效后信息同步的具體步驟可描述為
若異常節(jié)點(diǎn)為主節(jié)點(diǎn),則構(gòu)造環(huán)境事件,包含主節(jié)點(diǎn)的UID以及自身的UID等信息,并 將該事件發(fā)送給候選節(jié)點(diǎn)。
候選節(jié)點(diǎn)接到節(jié)點(diǎn)失效事件后,將嘗試連接主節(jié)點(diǎn),若能正常聯(lián)系則忽略該事件;若無(wú) 法聯(lián)系該異常節(jié)點(diǎn),則判定主節(jié)點(diǎn)失效。
候選節(jié)點(diǎn)判定主節(jié)點(diǎn)失效后,將總線狀態(tài)設(shè)置為"READ—ONLY"。
注銷(xiāo)服務(wù)信息表中所有通過(guò)主節(jié)點(diǎn)接入的服務(wù)。
將自身升級(jí)為代理節(jié)點(diǎn),并構(gòu)造環(huán)境事件(主節(jié)點(diǎn)失效)通知其他節(jié)點(diǎn)。 將位于節(jié)點(diǎn)列表第二位的節(jié)點(diǎn)設(shè)置為候選節(jié)點(diǎn)。 將總線狀態(tài)設(shè)置為"READ—WRITE"。
其余節(jié)點(diǎn)在接到某節(jié)點(diǎn)失效的事件后,注銷(xiāo)服務(wù)信息表中所有通過(guò)主節(jié)點(diǎn)接入的服務(wù)。 主節(jié)點(diǎn)恢復(fù)時(shí)的信息同步
圖9主節(jié)點(diǎn)恢復(fù)時(shí)的信息同步的具體步驟可描述為
主節(jié)點(diǎn)啟動(dòng)時(shí),在工作目錄中查找"succlist"文件,如果存在則將其中信息反序列化,作 為節(jié)點(diǎn)列表;否則,創(chuàng)建空的節(jié)點(diǎn)列表和服務(wù)信息注冊(cè)表,剩余步驟按照正常啟動(dòng)的2 4步。
檢查節(jié)點(diǎn)列表中所有的節(jié)點(diǎn)通訊是否正常,如果發(fā)現(xiàn)節(jié)點(diǎn)意外退出,則將該節(jié)點(diǎn)從列表 中去除。檢查結(jié)束后,將節(jié)點(diǎn)列表序列化至工作目錄中的"succlist"文件。
構(gòu)造環(huán)境事件(包含主節(jié)點(diǎn)的UID、代理、IP地址以及其他相關(guān)信息),通知其他節(jié)點(diǎn) 主節(jié)點(diǎn)啟動(dòng),并將總線的狀態(tài)設(shè)置為"READJ)NLY",等待代理節(jié)點(diǎn)與主節(jié)點(diǎn)聯(lián)系。
代理節(jié)點(diǎn)接到該環(huán)境事件后,通過(guò)事件內(nèi)部的代理與主節(jié)點(diǎn)取得聯(lián)系,并將所有的環(huán)境 信息返回給主節(jié)點(diǎn),然后將自身降級(jí)為候選節(jié)點(diǎn)。
主節(jié)點(diǎn)獲取更新后的服務(wù)信息注冊(cè)表之后,將總線的狀態(tài)設(shè)置為"READ一WRITE",并在 工作目錄中創(chuàng)建".running"文件。
上述實(shí)施例用來(lái)解釋說(shuō)明本發(fā)明,而不是對(duì)本發(fā)明進(jìn)行限制,在本發(fā)明的精神和權(quán)利要 求的保護(hù)范圍內(nèi),對(duì)本發(fā)明作出的任何修改和改變,都落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種分布式企業(yè)服務(wù)總線節(jié)點(diǎn)可靠性維護(hù)方法,其特征在于步驟如下1)根據(jù)企業(yè)服務(wù)總線中節(jié)點(diǎn)功能和存儲(chǔ)的環(huán)境信息,將其分為四種類(lèi)型,標(biāo)準(zhǔn)節(jié)點(diǎn)、主節(jié)點(diǎn)、候選節(jié)點(diǎn)和代理節(jié)點(diǎn)標(biāo)準(zhǔn)節(jié)點(diǎn)擁有企業(yè)服務(wù)總線的標(biāo)準(zhǔn)功能,包括服務(wù)接入、消息路由;主節(jié)點(diǎn)除擁有標(biāo)準(zhǔn)節(jié)點(diǎn)的功能外,還對(duì)整個(gè)企業(yè)服務(wù)總線的環(huán)境進(jìn)行監(jiān)視,對(duì)節(jié)點(diǎn)的加入和移除進(jìn)行控制,儲(chǔ)存所有重要的服務(wù)和環(huán)境相關(guān)信息,并對(duì)服務(wù)的接入進(jìn)行統(tǒng)一管理;候選節(jié)點(diǎn)通過(guò)設(shè)定算法選出的標(biāo)準(zhǔn)節(jié)點(diǎn),用于備份總線內(nèi)所有的環(huán)境信息;代理節(jié)點(diǎn)在主節(jié)點(diǎn)的失效的情況下,暫時(shí)執(zhí)行主節(jié)點(diǎn)的功能;在主節(jié)點(diǎn)恢復(fù)后,將更改的信息傳遞給主節(jié)點(diǎn);2)、定義可擴(kuò)展的事件機(jī)制,當(dāng)發(fā)現(xiàn)企業(yè)服務(wù)總線內(nèi)環(huán)境變化時(shí),節(jié)點(diǎn)構(gòu)造相應(yīng)的事件并通知主節(jié)點(diǎn),使得該信息在整個(gè)總線內(nèi)部傳播;3)、實(shí)時(shí)通過(guò)候選節(jié)點(diǎn)備份總線內(nèi)重要信息;當(dāng)主節(jié)點(diǎn)失效時(shí),根據(jù)候選節(jié)點(diǎn)的備份信息形成一個(gè)功能完整的代理節(jié)點(diǎn),并且通過(guò)消息路由機(jī)制,為失效節(jié)點(diǎn)中的服務(wù)查找替代服務(wù);當(dāng)主節(jié)點(diǎn)恢復(fù)時(shí),根據(jù)持久化存儲(chǔ)中節(jié)點(diǎn)的通訊方式查找代理節(jié)點(diǎn),并與其進(jìn)行信息同步;順利完成之后,主節(jié)點(diǎn)將通過(guò)事件通知所有節(jié)點(diǎn),使企業(yè)服務(wù)總線恢復(fù)到正常運(yùn)行狀態(tài)。
2、 根據(jù)權(quán)利要求1所述的分布式企業(yè)服務(wù)總線節(jié)點(diǎn)可靠性維護(hù)方法,其特征在于企 業(yè)服務(wù)總線內(nèi)環(huán)境變化包括新服務(wù)的加入、原有服務(wù)的退出、節(jié)點(diǎn)失效。
3、 根據(jù)權(quán)利要求1所述的分布式企業(yè)服務(wù)總線節(jié)點(diǎn)可靠性維護(hù)方法,其特征在于候 選節(jié)點(diǎn)備份總線內(nèi)重要信息包括各節(jié)點(diǎn)通訊方式、各個(gè)服務(wù)的地址以及詳細(xì)信息。
全文摘要
本發(fā)明涉及一種分布式企業(yè)服務(wù)總線節(jié)點(diǎn)可靠性維護(hù)方法,步驟如下根據(jù)企業(yè)服務(wù)總線中節(jié)點(diǎn)功能和存儲(chǔ)的環(huán)境信息,將其分為四種類(lèi)型,標(biāo)準(zhǔn)節(jié)點(diǎn)、主節(jié)點(diǎn)、候選節(jié)點(diǎn)和代理節(jié)點(diǎn)定義可擴(kuò)展的事件機(jī)制,當(dāng)發(fā)現(xiàn)企業(yè)服務(wù)總線內(nèi)環(huán)境變化時(shí),節(jié)點(diǎn)構(gòu)造相應(yīng)的事件并通知主節(jié)點(diǎn),使得該信息在整個(gè)總線內(nèi)部傳播,實(shí)時(shí)通過(guò)候選節(jié)點(diǎn)備份總線內(nèi)重要信息。本發(fā)明有益的效果是能夠在企業(yè)服務(wù)總線任意節(jié)點(diǎn)失效的情況下,最大限度保證總線的正常運(yùn)行,減小其對(duì)企業(yè)信息系統(tǒng)的影響;并在能夠在失效節(jié)點(diǎn)恢復(fù)后,重新接入總線環(huán)境并順利運(yùn)行。建立一個(gè)相對(duì)集中的信息注冊(cè)中心—主節(jié)點(diǎn);采用了統(tǒng)一接口的事件機(jī)制。
文檔編號(hào)H04L12/24GK101207517SQ20071016475
公開(kāi)日2008年6月25日 申請(qǐng)日期2007年12月12日 優(yōu)先權(quán)日2007年12月12日
發(fā)明者健 吳, 吳朝暉, 瑩 李, 鄧水光, 路 金, 陳韓偉 申請(qǐng)人:浙江大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1