專利名稱:分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及開放環(huán)境下Web服務(wù)動(dòng)態(tài)協(xié)同技術(shù)領(lǐng)域,尤其涉及分布式環(huán)境下服務(wù)協(xié)同 節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法。
技術(shù)背景計(jì)算機(jī)術(shù)語信息技術(shù)的發(fā)展經(jīng)歷了一個(gè)從集中到分布、從單一到多樣、從彼此獨(dú)立到 相互不斷融合的發(fā)展過程。然而,計(jì)算與信息孤島仍然存在。在目前這種開放、動(dòng)態(tài)、復(fù) 雜的計(jì)算環(huán)境下,傳統(tǒng)的計(jì)算技術(shù)難以實(shí)現(xiàn)計(jì)算能力和信息資源的充分共享,面向服務(wù)計(jì) 算(SOC)和面向服務(wù)體系結(jié)構(gòu)(SOA)己被廣泛接受,成為構(gòu)造下一代分布式應(yīng)用的計(jì) 算范型和體系結(jié)構(gòu)。SOA體現(xiàn)了分布式軟件系統(tǒng)的構(gòu)造和組成特點(diǎn),刻畫服務(wù)提供者、服 務(wù)請求者和服務(wù)代理這三種角色以及它們之間的關(guān)系,通過發(fā)布、發(fā)現(xiàn)、綁定三種基本操作描述三者之間的基本交互。Web服務(wù)是面向服務(wù)體系結(jié)構(gòu)的一種具體化技術(shù),建立在一 系列的開發(fā)標(biāo)準(zhǔn)之上,包括XML、 SOAP、 WSDL以及UDDI等。面向SOA的分布式應(yīng)用中,服務(wù)是基本構(gòu)造單元,面向服務(wù)的復(fù)雜應(yīng)用是由服務(wù)之間 的交互協(xié)同來實(shí)現(xiàn)。由于Web服務(wù)與生俱來的分布式特征,為了協(xié)調(diào)分布式環(huán)境下的大量 服務(wù)節(jié)點(diǎn)進(jìn)行協(xié)同工作,需要將協(xié)同節(jié)點(diǎn)按照其功能特征進(jìn)行組織,在節(jié)點(diǎn)間建立關(guān)聯(lián)關(guān) 系,形成一定的拓?fù)浣Y(jié)構(gòu)。在動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下,協(xié)同節(jié)點(diǎn)的穩(wěn)定性和可靠性往往不可預(yù)知,節(jié)點(diǎn)可能隨時(shí)加入或 退出甚至失效。這樣會(huì)破壞節(jié)點(diǎn)間的關(guān)聯(lián)關(guān)系以及節(jié)點(diǎn)形成的拓?fù)浣Y(jié)構(gòu)。常見的分布式結(jié) 構(gòu)維護(hù)方法有兩種。其一,分布式結(jié)構(gòu)中存在主控節(jié)點(diǎn),負(fù)責(zé)維護(hù)全局拓?fù)浣Y(jié)構(gòu)圖。當(dāng)新節(jié)點(diǎn)欲加入結(jié)構(gòu) 時(shí),將向其主控節(jié)點(diǎn)發(fā)送請求,主控節(jié)點(diǎn)接受請求后負(fù)責(zé)安置新節(jié)點(diǎn),并更新全局拓?fù)浣Y(jié) 構(gòu)圖;當(dāng)節(jié)點(diǎn)欲退出結(jié)構(gòu)時(shí),將發(fā)消息通知其主控節(jié)點(diǎn),主控節(jié)點(diǎn)負(fù)責(zé)解除退出節(jié)點(diǎn)與其 鄰節(jié)點(diǎn)的關(guān)系,根據(jù)結(jié)構(gòu)特征在相關(guān)節(jié)點(diǎn)間建立新的連接關(guān)系,并更新全局拓?fù)浣Y(jié)構(gòu)圖; 當(dāng)節(jié)點(diǎn)發(fā)現(xiàn)失效節(jié)點(diǎn)時(shí),將向其主控節(jié)點(diǎn)發(fā)送錯(cuò)誤報(bào)告,主控節(jié)點(diǎn)直接移除失效節(jié)點(diǎn)或者 尋找合適節(jié)點(diǎn)替換失效節(jié)點(diǎn),并更新全局拓?fù)浣Y(jié)構(gòu)圖。該方法中,主控節(jié)點(diǎn)的失效將導(dǎo)致 整個(gè)分布式結(jié)構(gòu)無法維護(hù),存在單點(diǎn)失效的缺點(diǎn)。其二,分布式結(jié)構(gòu)中不存在主控節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)平等地參與結(jié)構(gòu)的維護(hù),并保存一個(gè)全局拓?fù)浣Y(jié)構(gòu)圖的副本。當(dāng)新節(jié)點(diǎn)欲加入結(jié)構(gòu)時(shí),可以向任意節(jié)點(diǎn)發(fā)送請求,收到請求的 節(jié)點(diǎn)負(fù)責(zé)安置新節(jié)點(diǎn),并向結(jié)構(gòu)中的所有節(jié)點(diǎn)廣播消息,更新各節(jié)點(diǎn)的全局拓?fù)浣Y(jié)構(gòu)圖副 本;當(dāng)節(jié)點(diǎn)欲退出結(jié)構(gòu)時(shí),將發(fā)消息通知其鄰節(jié)點(diǎn),解除與鄰節(jié)點(diǎn)的關(guān)系,根據(jù)結(jié)構(gòu)特征 可能需要在其鄰節(jié)點(diǎn)間建立新的連接關(guān)系,并向結(jié)構(gòu)中的所有節(jié)點(diǎn)廣播消息,更新各節(jié)點(diǎn) 的全局拓?fù)浣Y(jié)構(gòu)圖副本;當(dāng)節(jié)點(diǎn)發(fā)現(xiàn)失效節(jié)點(diǎn)時(shí),錯(cuò)誤發(fā)現(xiàn)節(jié)點(diǎn)負(fù)責(zé)修復(fù)結(jié)構(gòu),直接移除 失效節(jié)點(diǎn)或者尋找合適節(jié)點(diǎn)替換失效節(jié)點(diǎn),并向結(jié)構(gòu)中的所有節(jié)點(diǎn)廣播消息,更新各節(jié)點(diǎn) 的全局拓?fù)浣Y(jié)構(gòu)圖副本。該方法中,結(jié)構(gòu)的每次變化都需要通知所有節(jié)點(diǎn)更新其全局拓?fù)?結(jié)構(gòu)圖副本,這樣帶來大量的消息通信,增加網(wǎng)絡(luò)負(fù)載壓力,同時(shí)由于頻繁的消息通信可 能造成更多的消息丟失,從而導(dǎo)致各節(jié)點(diǎn)的全局拓?fù)浣Y(jié)構(gòu)圖不一致等問題。 發(fā)明內(nèi)容本發(fā)明的技術(shù)解決問題克服現(xiàn)有技術(shù)的不足,提供一種分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn) 組織結(jié)構(gòu)的維護(hù)方法,該方法不存在單點(diǎn)失效問題,同時(shí)又不增加網(wǎng)絡(luò)負(fù)載壓力,不會(huì)使 通信量過大。本發(fā)明的技術(shù)解決方案分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法,步驟如下(1) 初始化,根據(jù)可維護(hù)性概率的計(jì)算方法確定每個(gè)節(jié)點(diǎn)需要維護(hù)的鄰域范圍即已知 鄰域的半徑;如圖1所示。(2) 在所述的鄰域范圍內(nèi),對(duì)新節(jié)點(diǎn)加入、節(jié)點(diǎn)主動(dòng)退出和節(jié)點(diǎn)失效進(jìn)行維護(hù)。 所述步驟(1)中對(duì)于線形結(jié)構(gòu)可維護(hù)性概率的計(jì)算方法為-線形結(jié)構(gòu)可維護(hù)性概率<formula>formula see original document page 6</formula>/t為己知鄰域的半徑即巳知鄰域節(jié)點(diǎn)中與當(dāng)前節(jié)點(diǎn)的最遠(yuǎn)距離,《為單個(gè)節(jié)點(diǎn)失效的概 率,n為線形結(jié)構(gòu)節(jié)點(diǎn)總數(shù)。所述步驟(1)中對(duì)于環(huán)形結(jié)構(gòu)可維護(hù)性概率的計(jì)算方法為'1-《"當(dāng) 0S "環(huán)形結(jié)構(gòu)可維護(hù)性概率<formula>formula see original document page 6</formula>t為巳知鄰域的半徑即已知鄰域節(jié)點(diǎn)中與當(dāng)前節(jié)點(diǎn)的最遠(yuǎn)距離,《為單個(gè)節(jié)點(diǎn)失效的概 為環(huán)形結(jié)構(gòu)節(jié)點(diǎn)總數(shù)。所述步驟(1)中對(duì)于樹形結(jié)構(gòu)可維護(hù)性概率的計(jì)算方法為-<formula>formula see original document page 7</formula>其中《(x, 為i丄"(z) |< d(^《w ,并且或者沒有子樹或者的所有子樹均是肛可維護(hù)的;丄"z)為節(jié)點(diǎn)x的失效鏈,是從x到節(jié)點(diǎn)z, zer(;o的路徑,記作x…z,并且滿足(1)路徑上的所有節(jié)點(diǎn)都失效;(2) Z是葉子節(jié)點(diǎn)或者Z的子節(jié)點(diǎn)為正常節(jié)點(diǎn); 特殊地,當(dāng)X為正常節(jié)點(diǎn)時(shí),節(jié)點(diǎn)X僅有一條空失效鏈,記作0, 一般地,節(jié)點(diǎn)x通常有 一到多條失效鏈,記節(jié)點(diǎn)X的失效鏈集合為Sj(Z)二^f(義)li^(義)是節(jié)點(diǎn)的失效鏈L其中 記最長的失效鏈為i^"(j);《(Z)為節(jié)點(diǎn)X失效的概率;P(I)為節(jié)點(diǎn)X有效的概率,; (Z)-1-;M;(;n為樹7X;r)是yfc-可維護(hù)(可靠)的概率,樹r(義)是/t-可維護(hù)的是指從根節(jié)點(diǎn)x 到r(義)葉子節(jié)點(diǎn)的所有路徑上都不會(huì)出現(xiàn)^個(gè)或^個(gè)以上連續(xù)的失效節(jié)點(diǎn); rpr)為以x為根節(jié)點(diǎn)的樹結(jié)構(gòu);C7n7&(義)為節(jié)點(diǎn)X所有子節(jié)點(diǎn)組成的集合;d是《(足^中的變量'事件《(I,")發(fā)生的條件之一是l丄r(I)l〈"W^W, Yr e c/z//&(jo , ;t為已知鄰域的半徑即己知鄰域節(jié)點(diǎn)中與當(dāng)前節(jié)點(diǎn)的最遠(yuǎn)距離,r為樹結(jié)構(gòu)的樹根節(jié)點(diǎn)。所述步驟(2)的新節(jié)點(diǎn)加入的維護(hù)方法如下第一步安置新節(jié)點(diǎn),當(dāng)某節(jié)點(diǎn)收到新節(jié)點(diǎn)的加入請求時(shí),根據(jù)節(jié)點(diǎn)功能,為新節(jié)點(diǎn) 安排一個(gè)合適的位置;第二步初始化新節(jié)點(diǎn)結(jié)構(gòu)模型,獲得其相鄰節(jié)點(diǎn)的局部結(jié)構(gòu)模型,根據(jù)這些信息, 初始化自身的局部結(jié)構(gòu)模型;第三步結(jié)構(gòu)重構(gòu),新節(jié)點(diǎn)與插入位置周圍節(jié)點(diǎn)建立關(guān)聯(lián)關(guān)系,為保持結(jié)構(gòu)特征不變, 相應(yīng)地解除原有的部分關(guān)聯(lián)關(guān)系;第四步更新受影響節(jié)點(diǎn)的局部結(jié)構(gòu)模型,新節(jié)點(diǎn)發(fā)出的加入通告,包含該節(jié)點(diǎn)局部 結(jié)構(gòu)模型信息,節(jié)點(diǎn)收到通告后,根據(jù)通告檢査自身局部結(jié)構(gòu)模型的一致性,如果不一致, 則更新模型且用自身的局部結(jié)構(gòu)模型更換通告內(nèi)容,并繼續(xù)轉(zhuǎn)發(fā)通告。所述步驟(2)的節(jié)點(diǎn)主動(dòng)退出的維護(hù)方法如下第一步結(jié)構(gòu)重構(gòu),刪除欲離開的節(jié)點(diǎn)及其與鄰節(jié)點(diǎn)的關(guān)聯(lián)關(guān)系,為保持結(jié)構(gòu)特征不 變,需要相應(yīng)地在離開節(jié)點(diǎn)的鄰節(jié)點(diǎn)中建立一些新的關(guān)聯(lián)關(guān)系;第二步更新受影響節(jié)點(diǎn)的局部結(jié)構(gòu)模型,離開節(jié)點(diǎn)發(fā)出離開通告,包含該節(jié)點(diǎn)局部 結(jié)構(gòu)模型信息,節(jié)點(diǎn)收到通告后,根據(jù)通告檢查自身局部結(jié)構(gòu)模型的一致性,如果不一致, 則更新模型且用自身的局部結(jié)構(gòu)模型更換通告內(nèi)容,并繼續(xù)轉(zhuǎn)發(fā)通告。所述步驟(2)的節(jié)點(diǎn)失效的維護(hù)方法如下-第一步節(jié)點(diǎn)狀態(tài)觀測,其中有兩種可選方式(1)采用Probe方式,每個(gè)節(jié)點(diǎn)周期 性向鄰節(jié)點(diǎn)發(fā)送問詢消息,并期待其鄰節(jié)點(diǎn)的應(yīng)答消息,如果在超時(shí)時(shí)間內(nèi)未收到某節(jié)點(diǎn) 應(yīng)答消息,則觀測到該鄰節(jié)點(diǎn)處于失效狀態(tài);否則,觀測到該鄰節(jié)點(diǎn)處于有效狀態(tài);(2) 采用Gossip方式,每個(gè)節(jié)點(diǎn)周期性的向鄰節(jié)點(diǎn)發(fā)送心跳消息,如果節(jié)點(diǎn)在一個(gè)周期時(shí)間內(nèi) 都未收到來自某鄰節(jié)點(diǎn)的心跳消息,則此節(jié)點(diǎn)觀測到該鄰節(jié)點(diǎn)處于失效狀態(tài);否則,則觀 測到該鄰節(jié)點(diǎn)處于有效狀態(tài);第二步失效節(jié)點(diǎn)判定,其中有兩類可選方法(l)獨(dú)立判定方法,即節(jié)點(diǎn)僅僅根據(jù) 自身對(duì)鄰節(jié)點(diǎn)狀態(tài)的觀測結(jié)果來判定節(jié)點(diǎn)是否失效;(2)合作判定方法,每個(gè)節(jié)點(diǎn)都對(duì)應(yīng) 一個(gè)觀測群組,由其所有或部分鄰節(jié)點(diǎn)構(gòu)成,對(duì)該目標(biāo)節(jié)點(diǎn)進(jìn)行觀測且將觀測結(jié)果部分或 全部的在群組中共享,節(jié)點(diǎn)根據(jù)自身觀測結(jié)果和群組中其他節(jié)點(diǎn)共享的觀測結(jié)果,共同判 定目標(biāo)節(jié)點(diǎn)是否失效。第三步結(jié)構(gòu)重構(gòu),當(dāng)某節(jié)點(diǎn)判定其某鄰節(jié)點(diǎn)失效后,將根據(jù)已知的局部結(jié)構(gòu)模型, 依次距離最近優(yōu)先嘗試連接它己知鄰域范圍的其他節(jié)點(diǎn),或者成功連接到一個(gè)有效節(jié)點(diǎn), 則直接執(zhí)行第四步,或者所有能被嘗試連接的點(diǎn)都失效,則無法自維護(hù),需要人工介入;第四步更新受影響節(jié)點(diǎn)的局部結(jié)構(gòu)模型,結(jié)構(gòu)重構(gòu)的發(fā)起節(jié)點(diǎn)也是失效節(jié)點(diǎn)的發(fā)現(xiàn) 者將發(fā)送重構(gòu)通告,包含該節(jié)點(diǎn)局部結(jié)構(gòu)模型信息,節(jié)點(diǎn)收到通告后,根據(jù)通告檢查自身 局部結(jié)構(gòu)模型的一致性,如果不一致,則更新模型且用自身的局部結(jié)構(gòu)模型更換通告內(nèi)容, 并繼續(xù)轉(zhuǎn)發(fā)通告。本發(fā)明的原理本發(fā)明提出了一種基于結(jié)構(gòu)的服務(wù)協(xié)同節(jié)點(diǎn)組織機(jī)制,并針對(duì)節(jié)點(diǎn)動(dòng) 態(tài)性特征,給出了基于一定成功概率的分布式結(jié)構(gòu)維護(hù)方法。為了實(shí)現(xiàn)在分布式環(huán)境下協(xié) 調(diào)各服務(wù)節(jié)點(diǎn)協(xié)同工作,本發(fā)明將分散在Internet上的大量原本相互獨(dú)立的自治服務(wù)節(jié)點(diǎn)組 織起來,根據(jù)其功能特點(diǎn)在節(jié)點(diǎn)之間建立關(guān)聯(lián)關(guān)系(如將具有相似功能的服務(wù)節(jié)點(diǎn)組織起 來),形成一系列互連的具有一定結(jié)構(gòu)(包括線形、環(huán)形、樹形)的服務(wù)組織。由于節(jié)點(diǎn) 的動(dòng)態(tài)性(加入或退出,尤其可能失效),服務(wù)節(jié)點(diǎn)的關(guān)聯(lián)關(guān)系會(huì)被破壞,于是服務(wù)組織的結(jié)構(gòu)需要被維護(hù)。由于服務(wù)組織中不存在主控節(jié)點(diǎn),同時(shí)為了避免要求所有節(jié)點(diǎn)都維護(hù) 全局結(jié)構(gòu)模型,每個(gè)節(jié)點(diǎn)維護(hù)局部結(jié)構(gòu)視圖,即己知在其一定鄰域范圍內(nèi)的節(jié)點(diǎn)信息,這 些信息稱為局部結(jié)構(gòu)模型。當(dāng)節(jié)點(diǎn)加入或主動(dòng)退出時(shí),只有鄰域內(nèi)節(jié)點(diǎn)會(huì)受到影響,需要 修改其局部結(jié)構(gòu)模型。當(dāng)出現(xiàn)若干節(jié)點(diǎn)失效時(shí),節(jié)點(diǎn)根據(jù)其掌握的局部結(jié)構(gòu)模型修復(fù)結(jié)構(gòu)。 由于節(jié)點(diǎn)只已知局部結(jié)構(gòu)模型,不是所有的失效情況都能夠被修復(fù),例如當(dāng)已知鄰域內(nèi)的 所有節(jié)點(diǎn)同時(shí)失效時(shí),節(jié)點(diǎn)無法與服務(wù)組織中其他有效節(jié)點(diǎn)建立連接,此時(shí)結(jié)構(gòu)將無法被 維護(hù)。顯然,結(jié)構(gòu)的可維護(hù)概率取決于每個(gè)節(jié)點(diǎn)已知的局部結(jié)構(gòu)模型范圍的大小,即節(jié)點(diǎn) 已知的鄰域節(jié)點(diǎn)越多,可維護(hù)概率越大,但同時(shí)各節(jié)點(diǎn)結(jié)構(gòu)模型一致性維護(hù)的開銷也越大。 本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于(1) 本發(fā)明在實(shí)現(xiàn)結(jié)構(gòu)維護(hù)過程中,不需要主控節(jié)點(diǎn),避免了單點(diǎn)失效、性能瓶頸等 集中控制模式中存在的問題。(2) 本發(fā)明采用維護(hù)局部結(jié)構(gòu)模型的方法,保證在一定概率下結(jié)構(gòu)的可維護(hù)性。與每 個(gè)節(jié)點(diǎn)均維護(hù)全局結(jié)構(gòu)模型的方法相比,犧牲了一些可維護(hù)概率,但大大降低了維護(hù)開銷。
圖1為本發(fā)明的實(shí)現(xiàn)流程圖; 圖2為本發(fā)明實(shí)施例1中樹形結(jié)構(gòu)服務(wù)組織; 圖3為本發(fā)明實(shí)施例中1新節(jié)點(diǎn)加入樹形結(jié)構(gòu)的過程; 圖4為本發(fā)明實(shí)施例中1采用父節(jié)點(diǎn)替代方式重構(gòu)后的樹形結(jié)構(gòu); 圖5為本發(fā)明實(shí)施例1中采用子節(jié)點(diǎn)替代方式重構(gòu)后的樹形結(jié)構(gòu); 圖6為本發(fā)明實(shí)施例1中節(jié)點(diǎn)失效情況下的樹形結(jié)構(gòu)重構(gòu)過程; 圖7為本發(fā)明實(shí)施例2中線形結(jié)構(gòu)服務(wù)組織; 圖8為本發(fā)明實(shí)施例2中新節(jié)點(diǎn)加入線形結(jié)構(gòu)的過程; 圖9為本發(fā)明實(shí)施例2中節(jié)點(diǎn)主動(dòng)退出線形結(jié)構(gòu)的過程; 圖10為本發(fā)明實(shí)施例2中節(jié)點(diǎn)失效情況下的線形結(jié)構(gòu)重構(gòu)過程; 圖11為本發(fā)明實(shí)施例3中環(huán)形結(jié)構(gòu)服務(wù)組織; 圖12為本發(fā)明實(shí)施例3中新節(jié)點(diǎn)加入環(huán)形結(jié)構(gòu)的過程; 圖13為本發(fā)明實(shí)施例3中節(jié)點(diǎn)主動(dòng)退出環(huán)形結(jié)構(gòu)的過程 圖14為本發(fā)明實(shí)施例3中節(jié)點(diǎn)失效情況下的環(huán)形結(jié)構(gòu)重構(gòu)過程。
具體實(shí)施方式
實(shí)施例1如圖2所示,下面以樹形結(jié)構(gòu)為例給出上述技術(shù)路線的具體實(shí)施方式
。協(xié)同節(jié)點(diǎn)形成如圖2所示的樹形結(jié)構(gòu),樹中每個(gè)節(jié)點(diǎn)完成向其上級(jí)節(jié)點(diǎn)(父節(jié)點(diǎn))上報(bào)數(shù)據(jù)的功能,設(shè)任意節(jié)點(diǎn)X的級(jí)別為L(X),且有L(B)>L(N)> L(D)^L(C)。設(shè)單個(gè)節(jié)點(diǎn)失效的概率均為q=0.01,且要求整個(gè)結(jié)構(gòu)的可維護(hù)概率不小于0.99。計(jì)算圖2所示以A為根的樹結(jié)構(gòu)分別在k-l, 2,...時(shí)的可維護(hù)概率如下<formula>formula see original document page 10</formula>因?yàn)锳4(^)〈0.99〈M;G4),因此k取2便滿足可維護(hù)概率不小于0.99。因此,在該例 的節(jié)點(diǎn)局部結(jié)構(gòu)模型中,除子節(jié)點(diǎn)、父節(jié)點(diǎn)之外還記錄其祖父節(jié)點(diǎn)(如果有的話)信息。 下面列舉三種情形分別描述該樹形結(jié)構(gòu)的維護(hù)過程。 (1)新節(jié)點(diǎn)N加入第一步節(jié)點(diǎn)B收到節(jié)點(diǎn)N的加入請求(包含節(jié)點(diǎn)N的地址、級(jí)別等信息)后,比較 其與N等級(jí)關(guān)系,由于L(N)〈L(B),節(jié)點(diǎn)B將N與其所有子節(jié)點(diǎn)進(jìn)行比較,由于L(N)〉L(C) 且L(N)〉L(D),所以,將N安排在B節(jié)點(diǎn)之下,C、 D節(jié)點(diǎn)之上。第二步節(jié)點(diǎn)N從節(jié)點(diǎn)B獲得B的局部結(jié)構(gòu)模型,則N可以獲知其祖父節(jié)點(diǎn)A的.信 息。從而完成自身局部結(jié)構(gòu)模型的初始化,即N.grandparent=A,N.parent=B,N.childs={C,D}。第三步節(jié)點(diǎn)N作為子節(jié)點(diǎn)與B建立連接,作為父節(jié)點(diǎn)與C、 D建立連接,同時(shí)解除 B與C、 D間的父子關(guān)系,如圖3所示。同時(shí)修改B、 C、 D的局部結(jié)構(gòu)模型的部分信息 (B.childs={N}, C.parent=N, D.parent=N)。第四步節(jié)點(diǎn)N向B、 C、 D發(fā)送加入通告(包含N的局部結(jié)構(gòu)模型信息),根據(jù)通 告,B節(jié)點(diǎn)判斷其局部結(jié)構(gòu)模型無需更新,于是無需執(zhí)行任何操作;C節(jié)點(diǎn)檢査出其局部結(jié) 構(gòu)模型的不一致性,于是更新模型(C.grandparent=B),但由于C沒有子節(jié)點(diǎn),它無需轉(zhuǎn)發(fā) 通告;D節(jié)點(diǎn)檢査出其局部結(jié)構(gòu)模型的不一致性,更新模型(D.grandparent=B),且轉(zhuǎn)發(fā) 通告(包含D的局部結(jié)構(gòu)模型)給E: E節(jié)點(diǎn)同樣檢查出其局部結(jié)構(gòu)模型的不一致性,更 新模型(E.grandparent-N),且不再轉(zhuǎn)發(fā)通告。(2) 節(jié)點(diǎn)B主動(dòng)退出第一步如果L(D^L(C), B選擇父節(jié)點(diǎn)替代方式,C、 D節(jié)點(diǎn)連接到A節(jié)點(diǎn)之下,刪 除B與A、 C、 D間的關(guān)聯(lián)關(guān)系,同時(shí)修改A、 C、 D的局部結(jié)構(gòu)模型的部分信息 (A.childs={C,D,...}, C.parent=A, D.parent=A),如圖4所示;否則L(D)> L(C), B選擇子 節(jié)點(diǎn)替代方式,D節(jié)點(diǎn)連接到A節(jié)點(diǎn)之下,C節(jié)點(diǎn)連接到D節(jié)點(diǎn)之下,刪除B與A、 C、 D 間的關(guān)聯(lián)關(guān)系,同時(shí)修改B、C、D的局部結(jié)構(gòu)模型的部分信息(A.childs^D,…),C.parei^D,D. parent=A),如圖5所示。第二步節(jié)點(diǎn)B向A、 C、 D發(fā)送退出通告,當(dāng)L(D)-L(C)時(shí),根據(jù)通告,A節(jié)點(diǎn)判斷 其局部結(jié)構(gòu)模型無需更新,于是無需執(zhí)行任何操作;C節(jié)點(diǎn)檢查出其局部結(jié)構(gòu)模型的不一 致性,于是更新模型(C的祖父節(jié)點(diǎn)置為空即C.grandparent=NULL),但由于C沒有子節(jié)點(diǎn), 它無需轉(zhuǎn)發(fā)通告;D節(jié)點(diǎn)檢査出其局部結(jié)構(gòu)模型的不一致性,更新模型(D的祖父節(jié)點(diǎn)置 為空即D.grandparent=NULL),且轉(zhuǎn)發(fā)通告(包含D的局部結(jié)構(gòu)模型)給E; E節(jié)點(diǎn)同樣 檢査出其局部結(jié)構(gòu)模型的不一致性,更新模型(E.gmndparent-A),且不再轉(zhuǎn)發(fā)通告。當(dāng)L(D)> L(C)時(shí),類似地更新受影響節(jié)點(diǎn)D、 E的局部結(jié)構(gòu)模型(D.grandparent-NULL ,E. grandparent-A)。(3) 節(jié)點(diǎn)B失效第一步節(jié)點(diǎn)狀態(tài)觀測。采用Probe方式,每個(gè)節(jié)點(diǎn)每隔Tperi。d時(shí)間向鄰節(jié)點(diǎn)發(fā)送問詢消息("Are you alive "),并期待其鄰節(jié)點(diǎn)的應(yīng)答消息("Yes, I am"),如果在Ttime。ut 時(shí)間內(nèi)未收到某節(jié)點(diǎn)應(yīng)答消息,則觀測到該鄰節(jié)點(diǎn)處于失效狀態(tài);否則,觀測到該鄰節(jié)點(diǎn) 處于有效狀態(tài)。第二步失效節(jié)點(diǎn)判定。采用合作判定方法,.每個(gè)節(jié)點(diǎn)為其每個(gè)鄰節(jié)點(diǎn)(下文稱為巨 標(biāo)節(jié)點(diǎn))設(shè)置一個(gè)計(jì)數(shù)器Cfail記錄目標(biāo)節(jié)點(diǎn)被觀測處于失效狀態(tài)的次數(shù),初始值為0,當(dāng) Cfai產(chǎn)M時(shí),則判定目標(biāo)節(jié)點(diǎn)失效,取消對(duì)應(yīng)計(jì)數(shù)器Cfai,,并執(zhí)行第三步。當(dāng)觀測群組(例如,B的觀測群組可以由節(jié)點(diǎn)A、 C、 D組成)中某節(jié)點(diǎn)觀測到目標(biāo)節(jié)點(diǎn)處于失效,它將通 告群組中的其他所有節(jié)點(diǎn)(這樣可以加速群組中其他節(jié)點(diǎn)對(duì)目標(biāo)節(jié)點(diǎn)失效狀態(tài)的判定); 當(dāng)觀測到目標(biāo)節(jié)點(diǎn)處于有效狀態(tài),且CfaU不為O時(shí),它將其觀測結(jié)果通告群組中的其他所 有節(jié)點(diǎn)(因?yàn)镃加不為0說明群組中某些節(jié)點(diǎn)可能錯(cuò)誤地觀測到目標(biāo)節(jié)點(diǎn)失效,此時(shí)需要共享觀測到的目標(biāo)節(jié)點(diǎn)有效的信息,避免錯(cuò)誤判定)。節(jié)點(diǎn)根據(jù)自身觀測結(jié)果和群組中其 他節(jié)點(diǎn)共享的觀測結(jié)果,共同判定百標(biāo)節(jié)點(diǎn)是否失效。當(dāng)某節(jié)點(diǎn)觀測到目標(biāo)節(jié)點(diǎn)處于失效狀態(tài)或者收到來自群組中其他節(jié)點(diǎn)的失效通知,則將C細(xì)加1;當(dāng)觀測到目標(biāo)節(jié)點(diǎn)處于失效狀態(tài)或收到自群組中其他節(jié)點(diǎn)的有效通知,則重置Cfei,為o。第三步結(jié)構(gòu)重構(gòu)。當(dāng)節(jié)點(diǎn)D發(fā)現(xiàn)B失效后,D嘗試連接其祖父節(jié)點(diǎn)A,如果A有效, 則D申請作為子節(jié)點(diǎn)連接到A節(jié)點(diǎn)之下,修改A、 D局部結(jié)構(gòu)模型的部分信息 (A.childs={D,...},D.parent={A}, D.grandparent=A.parent=NULL),如圖6所示。第四步更新受影響節(jié)點(diǎn)的局部結(jié)構(gòu)模型。節(jié)點(diǎn)D發(fā)送重構(gòu)通告(包含該節(jié)點(diǎn)局部結(jié) 構(gòu)模型信息),節(jié)點(diǎn)E收到通告后,檢查到自身局部結(jié)構(gòu)模型的不一致性,更新模型 (E.grandparent=D)但無需繼續(xù)轉(zhuǎn)發(fā)通告。 實(shí)施例2下面以線形結(jié)構(gòu)為例給出上述技術(shù)路線的具體實(shí)施方式
。協(xié)同節(jié)點(diǎn)形成如圖7所示的線形結(jié)構(gòu),線上每個(gè)節(jié)點(diǎn)向其右鄰節(jié)點(diǎn)傳遞消息。設(shè)單個(gè)節(jié)點(diǎn)失效的概率均為q=0.01,且要求整個(gè)結(jié)構(gòu)的可維護(hù)概率不小于0.99。根據(jù)可維護(hù)性概率的計(jì)算方法確定每個(gè)節(jié)點(diǎn)需要維護(hù)的鄰域范圍k。計(jì)算圖7所示節(jié)點(diǎn)總數(shù)11=4的線結(jié)構(gòu)分別在1^1, 2,...時(shí)的可維護(hù)概率如下-Af(4,0.01) = 0.99. M) (3,0.01) =0.96059601M丄(1,0.01) = 0.99 M丄(0,0.01) = 0.99M丄(2,0.01) = 0.99 M丄(1,0.01) = 0.9801M(3,0.01) = 0.99. M丄(2,0.01) = 0.970299M(4,0.01) = 0.99 (M丄(3,0.0)+ 0.01 M丄(2,0.01)) =0.999702M〗(1,0.01) = 1M〗(2,0.01) = 0.99. (M丄2 (l,O.01) + 0.0 l-M丄(0,0.01)) = 0.9999 Mf (3,0.01) = 0.99 (M(2,0.01)十0.01. Mf(1,0.01)) = 0.999801因?yàn)镸i(4,0.01)< 0.99 <Mf (4,0.01),因此k取2便滿足可維護(hù)概率不小于0.99。因此,在該例的節(jié)點(diǎn)局部結(jié)構(gòu)模型中,除節(jié)點(diǎn)的直接相連節(jié)點(diǎn)之外,還記錄其右鄰節(jié)點(diǎn)的右鄰節(jié) 點(diǎn)(如果有的話)信息。下面列舉三種情形分別描述該線形結(jié)構(gòu)的維護(hù)過程。(1) 新節(jié)點(diǎn)N加入第一步節(jié)點(diǎn)B收到節(jié)點(diǎn)N的加入請求(包含節(jié)點(diǎn)N的地址)后,節(jié)點(diǎn)B將N作為 右鄰節(jié)點(diǎn)加入。第二步節(jié)點(diǎn)N從節(jié)點(diǎn)B獲得B的局部結(jié)構(gòu)模型,則N可以獲知B的原左、右鄰節(jié) 點(diǎn)的信息。從而完成自身局部結(jié)構(gòu)模型的初始化,艮卩N.left =B, N.right=B.right=C, N.right.right= B.right.right=D。第三步節(jié)點(diǎn)N與B和B的原右鄰節(jié)點(diǎn)C建立關(guān)聯(lián)關(guān)系,同時(shí)解除B、 C間的關(guān)聯(lián)關(guān) 系,如圖8所示。同時(shí)修改B、 C的局部結(jié)構(gòu)模型的部分信息(B.right=N,C.left=N)。第四步節(jié)點(diǎn)N向B、 C發(fā)送加入通告(包含N的局部結(jié)構(gòu)模型信息),根據(jù)通告, C節(jié)點(diǎn)判斷其局部結(jié)構(gòu)模型無需更新,于是無需執(zhí)行任何操作;B節(jié)點(diǎn)檢查出其局部結(jié)構(gòu)模 型的不一致性,于是更新模型(B.right.right=N.right=C),并將通告轉(zhuǎn)發(fā)給其左鄰節(jié)點(diǎn)A; A 節(jié)點(diǎn)檢査出其局部結(jié)構(gòu)模型的不一致性,更新模型(A.right.right=N),由于A無左鄰節(jié)點(diǎn), 無需再轉(zhuǎn)發(fā)通告。(2) 節(jié)點(diǎn)B主動(dòng)退出第一步解除B與A、 C間的關(guān)聯(lián)關(guān)系,同時(shí)修改A、 C的局部結(jié)構(gòu)模型的部分信息 (A.right=C, C.left-A),如圖9所示。第二步節(jié)點(diǎn)B向A、 C發(fā)送退出通告,根據(jù)通告,A節(jié)點(diǎn)檢查出其局部結(jié)構(gòu)模型的 不一致性,更新模型(A.right.right=B.right.right=D),由于A無左鄰節(jié)點(diǎn),故無需再轉(zhuǎn)發(fā)通 告;C節(jié)點(diǎn)判斷其局部結(jié)構(gòu)模型無需更新,于是無需執(zhí)行任何操作。(3) 節(jié)點(diǎn)B失效第一步節(jié)點(diǎn)狀態(tài)觀測。采用Probe方式,每個(gè)節(jié)點(diǎn)每隔Tperi。d時(shí)間向鄰節(jié)點(diǎn)發(fā)送問詢 消息("Are you alive "),并期待其鄰節(jié)點(diǎn)的應(yīng)答消息("Yes, I am"),如果在Ttimeout 時(shí)間內(nèi)未收到某節(jié)點(diǎn)應(yīng)答消息,則觀測到該鄰節(jié)點(diǎn)處于失效狀態(tài);否則,觀測到該鄰節(jié)點(diǎn) 處于有效狀態(tài)。第二步失效節(jié)點(diǎn)判定。采用合作判定方法,每個(gè)節(jié)點(diǎn)為其每個(gè)鄰節(jié)點(diǎn)C下文稱為目 標(biāo)節(jié)點(diǎn))設(shè)置一個(gè)計(jì)數(shù)器Cfail記錄目標(biāo)節(jié)點(diǎn)被觀測處于失效狀態(tài)的次數(shù),初始值為0,當(dāng) Cfai尸M時(shí),則判定目標(biāo)節(jié)點(diǎn)失效,取消對(duì)應(yīng)計(jì)數(shù)器Cfai,,并執(zhí)行第三步。當(dāng)觀測群組(例 如,B的觀測群組可以由節(jié)點(diǎn)A、 C組成)中某節(jié)點(diǎn)觀測到目標(biāo)節(jié)點(diǎn)處于失效,它將通告群 組中的其他所有節(jié)點(diǎn)(這樣可以加速群組中其他節(jié)點(diǎn)對(duì)目標(biāo)節(jié)點(diǎn)失效狀態(tài)的判定);當(dāng)觀 測到目標(biāo)節(jié)點(diǎn)處于有效狀態(tài),且Cfan不為O時(shí),它將其觀測結(jié)果通告群組中的其他所有節(jié)點(diǎn)(因?yàn)镃fai!不為0說明群組中某些節(jié)點(diǎn)可能錯(cuò)誤地觀測到目標(biāo)節(jié)點(diǎn)失效,此時(shí)需要共享觀測到的目標(biāo)節(jié)點(diǎn)有效的信息,避免錯(cuò)誤判定)。節(jié)點(diǎn)根據(jù)自身觀測結(jié)果和群組中其他節(jié) 點(diǎn)共享的觀測結(jié)果,共同判定目標(biāo)節(jié)點(diǎn)是否失效。當(dāng)某節(jié)點(diǎn)觀測到目標(biāo)節(jié)點(diǎn)處于失效狀態(tài)或者收到來自群組中其他節(jié)點(diǎn)的失效通知,則將Cf^加l;當(dāng)觀測到目標(biāo)節(jié)點(diǎn)處于失效狀態(tài)或收到自群組中其他節(jié)點(diǎn)的有效通知,則重置c加為o。第三步結(jié)構(gòu)重構(gòu)。當(dāng)節(jié)點(diǎn)A發(fā)現(xiàn)B失效后,A嘗試連接節(jié)點(diǎn)C (A.rightright=C), 如果C有效,則A申請作為左鄰節(jié)點(diǎn)連接到C節(jié)點(diǎn)地的左邊,修改A、 C局部結(jié)構(gòu)模型的 部分信息(A.right=C,A.right.right=D, C.left=A),如圖IO所示。第四步更新受影響節(jié)點(diǎn)的局部結(jié)構(gòu)模型。節(jié)點(diǎn)A發(fā)送重構(gòu)通告(包含該節(jié)點(diǎn)局部結(jié) 構(gòu)模型信息)。節(jié)點(diǎn)C判斷其局部結(jié)構(gòu)模型無需更新。實(shí)施例3下面以環(huán)形結(jié)構(gòu)為例給出上述技術(shù)路線的具體實(shí)施方式
。協(xié)同節(jié)點(diǎn)形成如圖11所示的 環(huán)形結(jié)構(gòu),環(huán)上每個(gè)節(jié)點(diǎn)向其順時(shí)針方向鄰節(jié)點(diǎn)傳遞消息。設(shè)單個(gè)節(jié)點(diǎn)失效的概率均為 q=0.01,且要求整個(gè)結(jié)構(gòu)的可維護(hù)概率不小于0.99。根據(jù)可維護(hù)性概率的計(jì)算方法確定每個(gè)節(jié)點(diǎn)需要維護(hù)的鄰域范圍k。計(jì)算圖11所示節(jié)點(diǎn)總數(shù)n-4的環(huán)結(jié)構(gòu)分別在k-l, 2,...時(shí)的可維護(hù)概率如下-l-《"當(dāng) OS"""1(1-《).2>'.M》—-1,《)當(dāng)^A: + 1(4,0.01) = 0.99. M(3,0.01) =0.96059601M侖(l,O.Ol) = 0.99. M侖(0,0.01) = 0.99(2,0.01) = 0.99 - M丄(I,O.01) = 0.9801(3,0.01) = 0.99' (2,0.01) = 0.970299A/g (4,0.01) = 0.99 04 (3,0.01) + 0.01 il^ (2,0.01)) =0.99960399A^(l,0.01) = 1-0.01 = 0.99尨^(2》.01) = 1-0.012 =0.9999(3,0.01) = 0.99 (M, (2,0.01) + 0.01. Mg(1,0.01)) = 0,999702因?yàn)镴l4(4,0.01) < 0.99 <A^(4,0.01),因此k取2便滿足可維護(hù)概率不小于0.99。因此,在該例的節(jié)點(diǎn)局部結(jié)構(gòu)模型中,除節(jié)點(diǎn)的直接相連節(jié)點(diǎn)之外,還記錄其順時(shí)針鄰節(jié)點(diǎn)的順 時(shí)針鄰節(jié)點(diǎn)。下面列舉三種情形分別描述該環(huán)形結(jié)構(gòu)的維護(hù)過程。(1) 新節(jié)點(diǎn)N加入第一步節(jié)點(diǎn)B收到節(jié)點(diǎn)N的加入請求(包含節(jié)點(diǎn)N的地址)后,節(jié)點(diǎn)B將N作為 順時(shí)針鄰節(jié)點(diǎn)加入。第二步節(jié)點(diǎn)N從節(jié)點(diǎn)B獲得B的局部結(jié)構(gòu)模型,完成自身局部結(jié)構(gòu)模型的初始化, 艮卩N.untiClockwise=B,N.clockwise=B.clockwise=C,N.clockwise.clockwise =B. clockwise.clockwise=D 。第三步節(jié)點(diǎn)N與B和B的原順時(shí)針鄰節(jié)點(diǎn)C建立關(guān)聯(lián)關(guān)系,同時(shí)解除B、 C間的關(guān) 聯(lián)關(guān)系,如圖12所示。同時(shí)修改B、 C的局部結(jié)構(gòu)模型的部分信息(B. cl0CkwiSe=N ,C. untiClockwise=N) ?!觥龅谒牟焦?jié)點(diǎn)N向B、 C發(fā)送加入通告(包含N的局部結(jié)構(gòu)模型信息),C節(jié)點(diǎn)判斷 其局部結(jié)構(gòu)模型無需更新,于是無需執(zhí)行任何操作;B節(jié)點(diǎn)檢查出其局部結(jié)構(gòu)模型的不一 致性,于是更新模型(B. clockwise.clockwise=N.clockwise=C),并將通告轉(zhuǎn)發(fā)給其逆時(shí)針鄰 節(jié)點(diǎn)A; A節(jié)點(diǎn)檢査出其局部結(jié)構(gòu)模型的不一致性,更新模型(A. clockwise.clockWise=N), 且A將通告轉(zhuǎn)發(fā)給D, D節(jié)點(diǎn)判斷其局部結(jié)構(gòu)模型無需更新,不執(zhí)行任何操作。(2) 節(jié)點(diǎn)B主動(dòng)退出第一步解除B與A、 C間的關(guān)聯(lián)關(guān)系,同時(shí)修改A、 C的局部結(jié)構(gòu)模型的部分信息 (A.clockwise=C, C.untiClockwise=A),如圖I3所示。第二步節(jié)點(diǎn)B向A、 C發(fā)送退出通告,根據(jù)通告,C節(jié)點(diǎn)判斷其局部結(jié)構(gòu)模型無需 更新,于是無需執(zhí)行任何操作;A節(jié)點(diǎn)檢查出其局部結(jié)構(gòu)模型的不一致性,更新模型 (A.clockwise.clockwise =B.cIockwise.clockwise=D),且A將通告轉(zhuǎn)發(fā)給節(jié)點(diǎn)D,節(jié)點(diǎn)D更 新局部模型(D.clockwise.cIockwise=C);(3) 節(jié)點(diǎn)B失效第一步節(jié)點(diǎn)狀態(tài)觀測。采用Probe方式,每個(gè)節(jié)點(diǎn)每隔T^i。d時(shí)間向鄰節(jié)點(diǎn)發(fā)送問詢 消息("Are you alive "),并期待其鄰節(jié)點(diǎn)的應(yīng)答消息("Yes, I am"),如果在Ttime。ut 時(shí)間內(nèi)未收到某節(jié)點(diǎn)應(yīng)答消息,則觀測到該鄰節(jié)點(diǎn)處于失效狀態(tài);否則,觀測到該鄰節(jié)點(diǎn) 處于有效狀態(tài)。第二步失效節(jié)點(diǎn)判定。采用合作判定方法,每個(gè)節(jié)點(diǎn)為其每個(gè)鄰節(jié)點(diǎn)(下文稱為目標(biāo)節(jié)點(diǎn))設(shè)置一個(gè)計(jì)數(shù)器C加記錄目標(biāo)節(jié)點(diǎn)被觀測處于失效狀態(tài)的次數(shù),初始值為0,當(dāng)Cfai尸M時(shí),則判定目標(biāo)節(jié)點(diǎn)失效,取消對(duì)應(yīng)計(jì)數(shù)器C加,并執(zhí)行第三步。當(dāng)觀測群組(例如,B的觀測群組可以由節(jié)點(diǎn)A、 C組成)中某節(jié)點(diǎn)觀測到目標(biāo)節(jié)點(diǎn)處于失效,它將通告群 組中的其他所有節(jié)點(diǎn)(這樣可以加速群組中其他節(jié)點(diǎn)對(duì)目標(biāo)節(jié)點(diǎn)失效狀態(tài)的判定);當(dāng)觀 測到目標(biāo)節(jié)點(diǎn)處于有效狀態(tài),且Cfai,不為O時(shí),它將其觀測結(jié)果通告群組中的其他所有節(jié) 點(diǎn)(因?yàn)镃M不為O說明群組中某些節(jié)點(diǎn)可能錯(cuò)誤地觀測到目標(biāo)節(jié)點(diǎn)失效,此時(shí)需要共享 觀測到的目標(biāo)節(jié)點(diǎn)有效的信息,避免錯(cuò)誤判定)。節(jié)點(diǎn)根據(jù)自身觀測結(jié)果和群組中其他節(jié) 點(diǎn)共享的觀測結(jié)果,共同判定目標(biāo)節(jié)點(diǎn)是否失效。當(dāng)某節(jié)點(diǎn)觀測到目標(biāo)節(jié)點(diǎn)處于失效狀態(tài) 或者收到來自群組中其他節(jié)點(diǎn)的失效通知,則將C加加h當(dāng)觀測到目標(biāo)節(jié)點(diǎn)處于失效狀態(tài)或收到自群組中其他節(jié)點(diǎn)的有效通知,則重置c加為o。第三步結(jié)構(gòu)重構(gòu)。當(dāng)節(jié)點(diǎn)A發(fā)現(xiàn)B失效后,A嘗試連接節(jié)點(diǎn)C (A.clockwise.clockwise=C),如果C有效,則A申請作為逆時(shí)針鄰節(jié)點(diǎn)連接C節(jié)點(diǎn),修改 A、 C局部結(jié)構(gòu)模型的部分信息 (A.clockwise=C, A.clockwise.clockwise=D, C.untiClockwise=A),如圖14所示。第四步更新受影響節(jié)點(diǎn)的局部結(jié)構(gòu)模型。節(jié)點(diǎn)A發(fā)送重構(gòu)通告(包含該節(jié)點(diǎn)局部結(jié) 構(gòu)模型信息)。節(jié)點(diǎn)C判斷其局部結(jié)構(gòu)模型無需更新;節(jié)點(diǎn)D檢查出其局部結(jié)構(gòu)模型的不 一致性,更新模型(D.clockwise.clockwise=C),且轉(zhuǎn)發(fā)通告給C,由于C的局部結(jié)構(gòu)模型 無需更新,C收到通告后不執(zhí)行任何操作。
權(quán)利要求
1、分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法,其特征在于步驟如下(1)初始化,根據(jù)可維護(hù)性概率的計(jì)算方法確定每個(gè)節(jié)點(diǎn)可維護(hù)的鄰域范圍;(2)在所述的鄰域范圍內(nèi),對(duì)新節(jié)點(diǎn)加入、節(jié)點(diǎn)主動(dòng)退出和節(jié)點(diǎn)失效進(jìn)行維護(hù)。
2、 根據(jù)權(quán)利要求l所述的分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法,其特征在 于所述步驟(1)中對(duì)于線形結(jié)構(gòu)可維護(hù)性概率的計(jì)算方法為線形結(jié)構(gòu)可維護(hù)性概率^^<formula>formula see original document page 2</formula>it為已知鄰域的半徑即己知鄰域節(jié)點(diǎn)中與當(dāng)前節(jié)點(diǎn)的最遠(yuǎn)距離,《為單個(gè)節(jié)點(diǎn)失效的概率,"為線形結(jié)構(gòu)節(jié)點(diǎn)總數(shù),n為線形結(jié)構(gòu)節(jié)點(diǎn)總數(shù)。
3、根據(jù)權(quán)利要求l所述的分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法,其特征在于所述步驟(1)中對(duì)于環(huán)形結(jié)構(gòu)可維護(hù)性概率的計(jì)算方法為<formula>formula see original document page 2</formula>環(huán)形結(jié)構(gòu)可維護(hù)性概率<formula>formula see original document page 2</formula>t為已知鄰域的半徑即己知鄰域節(jié)點(diǎn)中與當(dāng)前節(jié)點(diǎn)的最遠(yuǎn)距離,《為單個(gè)節(jié)點(diǎn)失效的概 率,n為環(huán)形結(jié)構(gòu)節(jié)點(diǎn)總數(shù)。
4、根據(jù)權(quán)利要求1所述的分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法,其特征在 于所述步驟(1)中對(duì)于樹形結(jié)構(gòu)可維護(hù)性概率的計(jì)算方法為<formula>formula see original document page 2</formula>其中^(x,勻?yàn)橐粋€(gè)事件,事件發(fā)生的條件是i丄r(x)h:"w"),并且或者r(x)沒 有子樹或者r(;r)的所有子樹均是^可維護(hù)的;丄jz)為節(jié)點(diǎn)x的失效鏈,是從x到節(jié)點(diǎn)z,Ze7XiT)的路徑,記作義…Z,并且滿足(1)路徑上的所有節(jié)點(diǎn)都失效;(2) Z是葉子節(jié) 點(diǎn)或者Z的子節(jié)點(diǎn)為正常節(jié)點(diǎn);特殊地,當(dāng)X為正常節(jié)點(diǎn)時(shí),節(jié)點(diǎn)X僅有一條空失效鏈, 記作-, 一般地,節(jié)點(diǎn)X通常有一到多條失效鏈,記節(jié)點(diǎn)X的失效鏈集合為^(z)-[^(;ni^(z)是節(jié)點(diǎn)的失效鏈L其中記最長的失效鏈為i^(義);.^X)為節(jié)點(diǎn)X失效的概率;p(;n為節(jié)點(diǎn)x有效的概率,/ (%) = 1-M"z)為樹r(;n是fc-可維護(hù)(可靠)的概率,樹r(義)是A-可維護(hù)的是指從根節(jié)點(diǎn)x到r(;n葉子節(jié)點(diǎn)的所有路徑上都不會(huì)出現(xiàn)A個(gè)或A個(gè)以上連續(xù)的失效節(jié)點(diǎn); r(z)為以x為根節(jié)點(diǎn)的樹結(jié)構(gòu);CMA(X)為節(jié)點(diǎn)x所有子節(jié)點(diǎn)組成的集合;d是五5(X,c )中的變量,事件《(U)發(fā)生的條件之一是l丄,(Z)KrfO^A:), Y y e Cfe7A(幻,A為已知鄰域的半徑即已知鄰域節(jié)點(diǎn)中與當(dāng)前節(jié)點(diǎn)的最遠(yuǎn)距離,R為樹結(jié)構(gòu)的樹根節(jié)點(diǎn)。
5、 根據(jù)權(quán)利要求l所述的分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法,其特征在 于所述步驟(2)的新節(jié)點(diǎn)加入的維護(hù)方法如下第一步安置新節(jié)點(diǎn),當(dāng)某節(jié)點(diǎn)收到新節(jié)點(diǎn)的加入請求時(shí),根據(jù)節(jié)點(diǎn)功能,為新節(jié)點(diǎn) 安排一個(gè)合適的位置;第二步初始化新節(jié)點(diǎn)結(jié)構(gòu)模型,獲得其相鄰節(jié)點(diǎn)的局部結(jié)構(gòu)模型,根據(jù)這些信息, 初始化自身的局部結(jié)構(gòu)模型;第三步結(jié)構(gòu)重構(gòu),新節(jié)點(diǎn)與插入位置周圍節(jié)點(diǎn)建立關(guān)聯(lián)關(guān)系,為保持結(jié)構(gòu)特征不變, 相應(yīng)地解除原有的部分關(guān)聯(lián)關(guān)系;第四步更新受影響節(jié)點(diǎn)的局部結(jié)構(gòu)模型,新節(jié)點(diǎn)發(fā)出的加入通告,包含該節(jié)點(diǎn)局部 結(jié)構(gòu)模型信息,節(jié)點(diǎn)收到通告后,根據(jù)通告檢査自身局部結(jié)構(gòu)模型的一致性,如果不一致, 則更新模型且用自身的局部結(jié)構(gòu)模型更換通告內(nèi)容,并繼續(xù)轉(zhuǎn)發(fā)通告。
6、 根據(jù)權(quán)利要求1所述的分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法,其特征在 于所述步驟(2)的節(jié)點(diǎn)主動(dòng)退出的維護(hù)方法如下第一步結(jié)構(gòu)重構(gòu),刪除欲離開的節(jié)點(diǎn)及其與鄰節(jié)點(diǎn)的關(guān)聯(lián)關(guān)系,為保持結(jié)構(gòu)特征不 變,需要相應(yīng)地在離開節(jié)點(diǎn)的鄰節(jié)點(diǎn)中建立一些新的關(guān)聯(lián)關(guān)系;第二步更新受影響節(jié)點(diǎn)的局部結(jié)構(gòu)模型,離開節(jié)點(diǎn)發(fā)出離開通告,包含該節(jié)點(diǎn)局部 結(jié)構(gòu)模型信息,節(jié)點(diǎn)收到通告后,根據(jù)通告檢查自身局部結(jié)構(gòu)模型的一致性,如果不一致, 則更新模型且用自身的局部結(jié)構(gòu)模型更換通告內(nèi)容,并繼續(xù)轉(zhuǎn)發(fā)通告。
7、 根據(jù)權(quán)利要求1所述的分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法,其特征在 于所述步驟(2)的節(jié)點(diǎn)失效的維護(hù)方法如下第一步節(jié)點(diǎn)狀態(tài)觀測,其中有兩種可選方式(1)采用Probe方式,每個(gè)節(jié)點(diǎn)周期 性向鄰節(jié)點(diǎn)發(fā)送問詢消息,并期待其鄰節(jié)點(diǎn)的應(yīng)答消息,如果在超時(shí)時(shí)間內(nèi)未收到某節(jié)點(diǎn) 應(yīng)答消息,則觀測到該鄰節(jié)點(diǎn)處于失效狀態(tài);否則,觀測到該鄰節(jié)點(diǎn)處于有效狀態(tài);(2) 采用Gossip方式,每個(gè)節(jié)點(diǎn)周期性的向鄰節(jié)點(diǎn)發(fā)送心跳消息,如果節(jié)點(diǎn)在一個(gè)周期時(shí)間內(nèi) 都未收到來自某鄰節(jié)點(diǎn)的心跳消息,則此節(jié)點(diǎn)觀測到該鄰節(jié)點(diǎn)處于失效狀態(tài);否則,則觀 測到該鄰節(jié)點(diǎn)處于有效狀態(tài);第二步失效節(jié)點(diǎn)判定,其中有兩類可選方法(1)獨(dú)立判定方法,即節(jié)點(diǎn)僅僅根據(jù) 自身對(duì)鄰節(jié)點(diǎn)狀態(tài)的觀測結(jié)果來判定節(jié)點(diǎn)是否失效;(2)合作判定方法,每個(gè)節(jié)點(diǎn)都對(duì)應(yīng) 一個(gè)觀測群組,由其所有或部分鄰節(jié)點(diǎn)構(gòu)成,對(duì)該目標(biāo)節(jié)點(diǎn)進(jìn)行觀測且將觀測結(jié)果部分或 全部的在群組中共享,節(jié)點(diǎn)根據(jù)自身觀測結(jié)果和群組中其他節(jié)點(diǎn)共享的觀測結(jié)果,共同判 定目標(biāo)節(jié)點(diǎn)是否失效。第三步結(jié)構(gòu)重構(gòu),當(dāng)某節(jié)點(diǎn)判定其某鄰節(jié)點(diǎn)失效后,將根據(jù)已知的局部結(jié)構(gòu)模型, 依次距離最近優(yōu)先嘗試連接它已知鄰域范圍的其他節(jié)點(diǎn),或者成功連接到一個(gè)有效節(jié)點(diǎn), 則直接執(zhí)行第四步,或者所有能被嘗試連接的點(diǎn)都失效,則無法自維護(hù),需要人工介入;第四步更新受影響節(jié)點(diǎn)的局部結(jié)構(gòu)模型,結(jié)構(gòu)重構(gòu)的發(fā)起節(jié)點(diǎn)也是失效節(jié)點(diǎn)的發(fā)現(xiàn) 者將發(fā)送重構(gòu)通告,包含該節(jié)點(diǎn)局部結(jié)構(gòu)模型信息,節(jié)點(diǎn)收到通告后,根據(jù)通告檢査自身 局部結(jié)構(gòu)模型的一致性,如果不一致,則更新模型且用自身的局部結(jié)構(gòu)模型更換通告內(nèi)容, 并繼續(xù)轉(zhuǎn)發(fā)通告。
全文摘要
分布式環(huán)境下服務(wù)協(xié)同節(jié)點(diǎn)組織結(jié)構(gòu)的維護(hù)方法,步驟如下(1)初始化,根據(jù)可維護(hù)性概率的計(jì)算方法確定每個(gè)節(jié)點(diǎn)可維護(hù)的鄰域范圍;(2)在所述的鄰域范圍內(nèi),對(duì)新節(jié)點(diǎn)加入、節(jié)點(diǎn)主動(dòng)退出和節(jié)點(diǎn)失效進(jìn)行維護(hù);所述步驟(1)中有根據(jù)協(xié)同結(jié)構(gòu)可以有三種可維護(hù)性概率的計(jì)算方法,分別為線形、環(huán)形、樹形結(jié)構(gòu)。本發(fā)明不存在單點(diǎn)失效問題,同時(shí)又不增加網(wǎng)絡(luò)負(fù)載壓力,不會(huì)使通信量過大。
文檔編號(hào)H04L12/24GK101247273SQ20081010098
公開日2008年8月20日 申請日期2008年2月27日 優(yōu)先權(quán)日2008年2月27日
發(fā)明者敏 劉, 博 趙, 趙永望, 軍 韓, 馬殿富, 黃永剛 申請人:北京航空航天大學(xué)