本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體涉及一種動(dòng)態(tài)選舉方法及系統(tǒng)。
背景技術(shù):
在為同一局域網(wǎng)內(nèi)的主機(jī)進(jìn)行統(tǒng)一的軟件升級(jí)、緩存更新、證書(shū)更新等操作時(shí),需要從云端服務(wù)器同步數(shù)據(jù),且同步時(shí)主機(jī)端和云端都會(huì)產(chǎn)生互聯(lián)網(wǎng)流量。
以軟件升級(jí)為例,云端服務(wù)器在發(fā)布一個(gè)大小為10MB的新版本軟件升級(jí)包后,由于同一局域網(wǎng)內(nèi)的N個(gè)主機(jī)均需要升級(jí)到該新版本,如果按照傳統(tǒng)的軟件升級(jí)方法,則在主機(jī)端和云端均需要產(chǎn)生N*10MB的總流量。
為了節(jié)省兩端的流量開(kāi)銷,同時(shí)也能夠緩解網(wǎng)絡(luò)壓力,現(xiàn)有的方法中在局域網(wǎng)中設(shè)立一個(gè)主機(jī),專門(mén)負(fù)責(zé)該局域網(wǎng)內(nèi)統(tǒng)一的軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)。如圖1所示,為現(xiàn)有技術(shù)的系統(tǒng)架構(gòu)示意圖,其中,由主機(jī)1負(fù)責(zé)從云端服務(wù)器同步數(shù)據(jù),并分別將同步的數(shù)據(jù)下發(fā)至該局域網(wǎng)內(nèi)的其他主機(jī),完成該局域網(wǎng)內(nèi)的所有主機(jī)的數(shù)據(jù)更新。
但是,現(xiàn)有技術(shù)的方法仍然存在問(wèn)題,即如果被選定的主機(jī)出現(xiàn)單點(diǎn)故障,則整個(gè)局域網(wǎng)內(nèi)的所有主機(jī)均不能實(shí)現(xiàn)數(shù)據(jù)更新。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種動(dòng)態(tài)選舉方法及裝置,能夠在局域網(wǎng)內(nèi)的主機(jī)中動(dòng)態(tài)選舉用于專門(mén)負(fù)責(zé)該局域網(wǎng)內(nèi)統(tǒng)一的軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)的主機(jī),即在被選定的主機(jī)出現(xiàn)單點(diǎn)故障后,動(dòng)態(tài)選舉出其他主機(jī)負(fù)責(zé),有效避免了被選定的主機(jī)出現(xiàn)單點(diǎn)故障后整個(gè)局域網(wǎng)內(nèi)的主機(jī)不能進(jìn)行數(shù)據(jù)更新的情況發(fā)生。
本發(fā)明提供了一種動(dòng)態(tài)選舉方法,所述方法應(yīng)用于配置有多臺(tái)主機(jī)的局域網(wǎng),在預(yù)設(shè)的重新選舉操作被觸發(fā)后,確定廣播主機(jī),所述方法包括:
所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送備選廣播包,所述備選廣播包用于請(qǐng)求所述局域網(wǎng)內(nèi)的主機(jī)上報(bào)所述主機(jī)的系統(tǒng)信息;
接收攜帶有系統(tǒng)信息的備選應(yīng)答包,并建立所述系統(tǒng)信息與發(fā)送所述備選應(yīng)答包的主機(jī)的主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;
所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送投票廣播包,所述投票廣播包攜帶有預(yù)先建立的系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系;
所述廣播主機(jī)對(duì)接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí)進(jìn)行統(tǒng)計(jì),并根據(jù)統(tǒng)計(jì)結(jié)果確定Master主機(jī)。
優(yōu)選地,所述根據(jù)所述投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí)確定Master主機(jī)之后,還包括:
所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送攜帶有所述Master主機(jī)的主機(jī)標(biāo)識(shí)的結(jié)果廣播包,以通知所述局域網(wǎng)內(nèi)的主機(jī)。
優(yōu)選地,所述廣播主機(jī)對(duì)接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí)進(jìn)行統(tǒng)計(jì),并根據(jù)統(tǒng)計(jì)結(jié)果確定Master主機(jī),包括:
如果所述廣播主機(jī)接收到的投票應(yīng)答包的數(shù)量為0,則所述廣播主機(jī)將自身的狀態(tài)更新為Master主機(jī);
或者,所述廣播主機(jī)分別獲取接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí),并統(tǒng)計(jì)各個(gè)主機(jī)標(biāo)識(shí)的數(shù)量,將數(shù)量最多的主機(jī)標(biāo)識(shí)對(duì)應(yīng)的主機(jī)確定為Master主機(jī)。
優(yōu)選地,所述多臺(tái)主機(jī)中包括備選主機(jī),所述方法還包括:
所述備選主機(jī)在接收到所述投票廣播包后,根據(jù)所述系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系中的各個(gè)系統(tǒng)信息確定投票的主機(jī)標(biāo)識(shí);
返回?cái)y帶有所述主機(jī)標(biāo)識(shí)的投票應(yīng)答包。
優(yōu)選地,所述方法還包括:
所述Master主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送探測(cè)廣播包,并利用預(yù)設(shè)時(shí)間內(nèi)接收到的探測(cè)應(yīng)答包更新主機(jī)狀態(tài)表,所述主機(jī)狀態(tài)表中存儲(chǔ)有正常運(yùn)行的主機(jī)的地址。
優(yōu)選地,所述方法還包括:
如果所述Master主機(jī)在預(yù)設(shè)時(shí)間內(nèi)未發(fā)送探測(cè)廣播包,則觸發(fā)預(yù)設(shè)的重新選舉操作。
優(yōu)選地,所述方法還包括:
如果所述Master主機(jī)的空閑時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng),則觸發(fā)預(yù)設(shè)的重新選舉操作。
優(yōu)選地,所述方法還包括:
所述Master主機(jī)從云端服務(wù)器獲取更新數(shù)據(jù),并根據(jù)所述主機(jī)狀態(tài)表中存儲(chǔ)的正常運(yùn)行的主機(jī)的地址,下發(fā)所述更新數(shù)據(jù)。
優(yōu)選地,所述在預(yù)設(shè)的重新選舉操作被觸發(fā)后,確定廣播主機(jī),包括:
在預(yù)設(shè)的重新選舉操作被觸發(fā)后,預(yù)先將所述局域網(wǎng)內(nèi)的任一臺(tái)主機(jī)確定為廣播主機(jī)。
優(yōu)選地,所述在預(yù)設(shè)的重新選舉操作被觸發(fā)后,預(yù)先將所述局域網(wǎng)內(nèi)的任一臺(tái)主機(jī)確定為廣播主機(jī),包括:
在預(yù)設(shè)的重新選舉操作被觸發(fā)后,分別為所述局域網(wǎng)內(nèi)的各個(gè)主機(jī)設(shè)置定時(shí)器,其中各個(gè)定時(shí)器的延遲時(shí)間為隨機(jī)生成的;
將所述局域網(wǎng)內(nèi)最先啟動(dòng)的定時(shí)器對(duì)應(yīng)的主機(jī)確定為廣播主機(jī)。
本發(fā)明還提供了一種動(dòng)態(tài)選舉系統(tǒng),所述系統(tǒng)應(yīng)用于配置有多臺(tái)主機(jī)的局域網(wǎng);
所述系統(tǒng),用于在檢測(cè)到預(yù)設(shè)的重新選舉操作被觸發(fā)后,確定廣播主機(jī);
所述系統(tǒng)包括所述廣播主機(jī),所述廣播主機(jī)包括第一發(fā)送模塊,第一接收模塊,第二發(fā)送模塊和第一確定模塊;
所述第一發(fā)送模塊,用于在所述局域網(wǎng)內(nèi)發(fā)送備選廣播包,所述備選廣播包用于請(qǐng)求所述局域網(wǎng)內(nèi)的主機(jī)上報(bào)所述主機(jī)的系統(tǒng)信息;
所述第一接收模塊,用于接收攜帶有系統(tǒng)信息的備選應(yīng)答包,并建立所述系統(tǒng)信息與發(fā)送所述備選應(yīng)答包的主機(jī)的主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;
所述第二發(fā)送模塊,用于在所述局域網(wǎng)內(nèi)發(fā)送投票廣播包,所述投票廣播包攜帶有預(yù)先建立的系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系;
所述第一確定模塊,用于對(duì)接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí)進(jìn)行統(tǒng)計(jì),并根據(jù)統(tǒng)計(jì)結(jié)果確定Master主機(jī)。
優(yōu)選地,所述廣播主機(jī)還包括第三發(fā)送模塊:
所述第三發(fā)送模塊,用于在所述局域網(wǎng)內(nèi)發(fā)送攜帶有所述Master主機(jī)的主機(jī)標(biāo)識(shí)的結(jié)果廣播包,以通知所述局域網(wǎng)內(nèi)的主機(jī)。
優(yōu)選地,所述第一確定模塊包括:
第一確定子模塊,用于在確定接收到的投票應(yīng)答包的數(shù)量為0時(shí),將自身的狀態(tài)更新為Master主機(jī);
第二確定子模塊,用于分別獲取接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí),并統(tǒng)計(jì)各個(gè)主機(jī)標(biāo)識(shí)的數(shù)量,將數(shù)量最多的主機(jī)標(biāo)識(shí)對(duì)應(yīng)的主機(jī)確定為Master主機(jī)。
優(yōu)選地,所述系統(tǒng)還包括備選主機(jī),所述備選主機(jī)包括第二確定模塊和返回模塊:
所述第二確定模塊,用于在接收到所述投票廣播包后,根據(jù)所述系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系中的各個(gè)系統(tǒng)信息確定投票的主機(jī)標(biāo)識(shí);
所述返回模塊,用于返回?cái)y帶有所述主機(jī)標(biāo)識(shí)的投票應(yīng)答包。
優(yōu)選地,所述系統(tǒng)還包括所述Master主機(jī),所述Master主機(jī)包括更新模塊:
所述更新模塊,用于在所述局域網(wǎng)內(nèi)發(fā)送探測(cè)廣播包,并利用預(yù)設(shè)時(shí)間內(nèi)接收到的探測(cè)應(yīng)答包更新主機(jī)狀態(tài)表,所述主機(jī)狀態(tài)表中存儲(chǔ)有正常運(yùn)行的主機(jī)的地址。
優(yōu)選地,所述Master主機(jī)還包括第一觸發(fā)模塊:
所述第一觸發(fā)模塊,用于在預(yù)設(shè)時(shí)間內(nèi)所述更新模塊未發(fā)送探測(cè)廣播包時(shí),觸發(fā)預(yù)設(shè)的重新選舉操作。
優(yōu)選地,所述Master主機(jī)還包括第二觸發(fā)模塊:
所述第二觸發(fā)模塊,用于在所述Master主機(jī)的空閑時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng)時(shí),觸發(fā)預(yù)設(shè)的重新選舉操作。
優(yōu)選地,所述Master主機(jī)還包括數(shù)據(jù)更新模塊:
所述數(shù)據(jù)更新模塊,用于從云端服務(wù)器獲取更新數(shù)據(jù),并根據(jù)所述主機(jī)狀態(tài)表中存儲(chǔ)的正常運(yùn)行的主機(jī)的地址,下發(fā)所述更新數(shù)據(jù)。
優(yōu)選地,所述系統(tǒng)具體用于:在預(yù)設(shè)的重新選舉操作被觸發(fā)后,預(yù)先將所述局域網(wǎng)內(nèi)的任一臺(tái)主機(jī)確定為廣播主機(jī)。
優(yōu)選地,所述系統(tǒng)具體用于:在預(yù)設(shè)的重新選舉操作被觸發(fā)后,分別為所述局域網(wǎng)內(nèi)的各個(gè)主機(jī)設(shè)置定時(shí)器,其中各個(gè)定時(shí)器的延遲時(shí)間為隨機(jī)生成的;并將所述局域網(wǎng)內(nèi)最先啟動(dòng)的定時(shí)器對(duì)應(yīng)的主機(jī)確定為廣播主機(jī)。
本發(fā)明提供了一種動(dòng)態(tài)選舉方法,應(yīng)用于配置有多臺(tái)主機(jī)的局域網(wǎng),并在預(yù)設(shè)的重新選舉操作被觸發(fā)后,確定廣播主機(jī)。具體的,所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送備選廣播包,所述備選廣播包用于請(qǐng)求所述局域網(wǎng)內(nèi)的主機(jī)上報(bào)所述主機(jī)的系統(tǒng)信息。然后,接收攜帶有系統(tǒng)信息的備選應(yīng)答包,并建立所述系統(tǒng)信息與發(fā)送所述備選應(yīng)答包的主機(jī)的主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送投票廣播包,所述投票廣播包攜帶有預(yù)先建立的系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。最后,所述廣播主機(jī)對(duì)接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí)進(jìn)行統(tǒng)計(jì),并根據(jù)統(tǒng)計(jì)結(jié)果確定Master主機(jī)。本發(fā)明能夠在局域網(wǎng)內(nèi)的主機(jī)中動(dòng)態(tài)選舉出負(fù)責(zé)所述局域網(wǎng)內(nèi)統(tǒng)一的軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)的主機(jī),避免被選舉的主機(jī)出現(xiàn)單點(diǎn)故障而導(dǎo)致的整個(gè)局域網(wǎng)內(nèi)的主機(jī)不能進(jìn)行數(shù)據(jù)更新的情況發(fā)生。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)的系統(tǒng)架構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例提供的一種動(dòng)態(tài)選舉方法流程圖;
圖3為本發(fā)明實(shí)施例提供的另一種動(dòng)態(tài)選舉的方法流程圖;
圖4為本發(fā)明實(shí)施例提供的一種充電站架構(gòu)示意圖;
圖5為現(xiàn)有技術(shù)的圖1應(yīng)用于充電站的架構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例提供的一種應(yīng)用于充電站的動(dòng)態(tài)選舉方法的信令交互圖;
圖7為本發(fā)明實(shí)施例提供的一種應(yīng)用于充電站的數(shù)據(jù)更新方法的信令交互圖;
圖8為本發(fā)明實(shí)施例提供的一種用于動(dòng)態(tài)選舉的廣播主機(jī)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
以下進(jìn)行實(shí)施例具體內(nèi)容的介紹。
本發(fā)明實(shí)施例提供了一種動(dòng)態(tài)選舉方法,在局域網(wǎng)內(nèi)動(dòng)態(tài)選舉負(fù)責(zé)統(tǒng)一軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)的主機(jī),即使被選舉的主機(jī)出現(xiàn)單點(diǎn)故障,還可以重新動(dòng)態(tài)選舉出其他主機(jī)用于完成數(shù)據(jù)更新。
本發(fā)明實(shí)施例提供了一種動(dòng)態(tài)選舉方法,參考圖2,為本發(fā)明實(shí)施例提供的一種動(dòng)態(tài)選舉方法流程圖,所述方法應(yīng)用于配置有多臺(tái)主機(jī)的局域網(wǎng),所述方法具體包括:
S201:在預(yù)設(shè)的重新選舉操作被觸發(fā)后,確定廣播主機(jī)。
S202:所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送備選廣播包,所述備選廣播包用于請(qǐng)求所述局域網(wǎng)內(nèi)的主機(jī)上報(bào)所述主機(jī)的系統(tǒng)信息。
本發(fā)明實(shí)施例中,在預(yù)設(shè)的重新選舉操作被觸發(fā)后,首先確定所述局域網(wǎng)中的一臺(tái)主機(jī)為廣播主機(jī)。所述廣播主機(jī)以預(yù)設(shè)頻率在所述局域網(wǎng)內(nèi)發(fā)送備選廣播包,總共發(fā)送預(yù)設(shè)次數(shù)即可。其中,所述備選廣播包用于請(qǐng)求所述局域網(wǎng)內(nèi)的主機(jī)上報(bào)自身的系統(tǒng)信息,所述系統(tǒng)信息包括MCU主頻、空閑內(nèi)存、空閑存儲(chǔ)等信息。
本發(fā)明實(shí)施例中,用于確定廣播主機(jī)的方式較多,可以直接指定所述局域網(wǎng)內(nèi)的一臺(tái)正常運(yùn)行的主機(jī)為廣播主機(jī),也可以動(dòng)態(tài)的確定出所述局域網(wǎng)內(nèi)的一臺(tái)主機(jī)為廣播主機(jī)。具體的,動(dòng)態(tài)確定廣播主機(jī)的方法包括:
預(yù)先為所述局域網(wǎng)內(nèi)的各個(gè)主機(jī)分別配置定時(shí)器,其中各個(gè)定時(shí)器的延遲時(shí)間為隨機(jī)生成的。隨著時(shí)間的推移,各個(gè)定時(shí)器均啟動(dòng),本發(fā)明實(shí)施例將最先啟動(dòng)的定時(shí)器對(duì)應(yīng)的主機(jī)確定為廣播主機(jī)。
一種實(shí)現(xiàn)方式中,當(dāng)任一定時(shí)器啟動(dòng)后,該定時(shí)器對(duì)應(yīng)的主機(jī)在所述局域網(wǎng)內(nèi)定時(shí)的發(fā)送廣播包。相應(yīng)的,所述局域網(wǎng)內(nèi)的其他主機(jī)會(huì)接收到該廣播包。對(duì)于一個(gè)主機(jī)來(lái)說(shuō),如果該主機(jī)在發(fā)送廣播包之前,首先接收到了來(lái)自其他主機(jī)的廣播包,則該主機(jī)自動(dòng)放棄廣播主機(jī)的身份,并且停止發(fā)送廣播包。依據(jù)上述方式最終確定的廣播主機(jī)即為最先啟動(dòng)的定時(shí)器對(duì)應(yīng)的主機(jī)。
但是,由于廣播包的發(fā)送與接收存在時(shí)延,也就是說(shuō),即使是最先啟動(dòng)的定時(shí)器對(duì)應(yīng)的主機(jī)發(fā)送了廣播包,而在該廣播包被其他主機(jī)接收到之前還需要消耗時(shí)間。那么在這段時(shí)間內(nèi)很可能有其他主機(jī)也發(fā)送了廣播包,也就是說(shuō),存在發(fā)送了廣播包之后同時(shí)也接收到了其他主機(jī)發(fā)送的廣播包的主機(jī),對(duì)于這種主機(jī),在接收到廣播包后對(duì)該廣播包進(jìn)行解析,得到該廣播包的源地址,并判斷該源地址是否滿足預(yù)設(shè)條件,例如該源地址與所述主機(jī)的地址之間的大小關(guān)系。如果該源地址滿足預(yù)設(shè)條件,則所述主機(jī)放棄廣播主機(jī)的身份。也就是說(shuō),依據(jù)上述方式最終確定的廣播主機(jī)可能為最先啟動(dòng)的定時(shí)器對(duì)應(yīng)的主機(jī),具體的,可能為最先啟動(dòng)的定時(shí)器對(duì)應(yīng)的主機(jī)與次先啟動(dòng)的定時(shí)器對(duì)應(yīng)的主機(jī)之中地址相對(duì)較小或較大的主機(jī)。
值得注意的是,所述局域網(wǎng)中除了所述廣播主機(jī)之外的其他主機(jī)被稱為備選主機(jī)。
另外,對(duì)于在動(dòng)態(tài)選舉廣播主機(jī)期間新加入所述局域網(wǎng)的主機(jī)只能被確定為備選主機(jī),即直接自動(dòng)放棄廣播主機(jī)的身份。
由于所述局域網(wǎng)內(nèi)的廣播主機(jī)是動(dòng)態(tài)選舉的,所以即使當(dāng)前的廣播主機(jī)出現(xiàn)單點(diǎn)故障,也可以根據(jù)上述方式動(dòng)態(tài)選舉出新的廣播主機(jī)。
S203:接收攜帶有系統(tǒng)信息的備選應(yīng)答包,并建立所述系統(tǒng)信息與發(fā)送所述備選應(yīng)答包的主機(jī)的主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
本發(fā)明實(shí)施例中,所述廣播主機(jī)在接收到備選應(yīng)答包后,獲取所述備選應(yīng)答包中的系統(tǒng)信息,并建立所述系統(tǒng)信息和發(fā)送該備選應(yīng)答包的主機(jī)的主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。其中,所述主機(jī)標(biāo)識(shí)用于唯一標(biāo)識(shí)所述主機(jī),可以為所述主機(jī)的主機(jī)號(hào)、地址等。
由于所述廣播主機(jī)在所述局域網(wǎng)內(nèi)定時(shí)發(fā)送備選廣播包后,會(huì)接收到所述局域網(wǎng)內(nèi)正常運(yùn)行的各臺(tái)主機(jī)的備選應(yīng)答包,所以,所述廣播主機(jī)建立的主機(jī)標(biāo)識(shí)與系統(tǒng)信息的對(duì)應(yīng)關(guān)系中包括所述局域網(wǎng)內(nèi)各臺(tái)正常運(yùn)行的主機(jī)的系統(tǒng)信息,另外還包括所述廣播主機(jī)自身的主機(jī)標(biāo)識(shí)與系統(tǒng)信息的對(duì)應(yīng)關(guān)系。
S204:所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送投票廣播包,所述投票廣播包攜帶有預(yù)先建立的系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。
在動(dòng)態(tài)選舉期間,所述廣播主機(jī)收集到所述局域網(wǎng)內(nèi)各臺(tái)正常運(yùn)行的主機(jī)的主機(jī)標(biāo)識(shí)與系統(tǒng)信息的對(duì)應(yīng)關(guān)系后,在所述局域網(wǎng)內(nèi)定時(shí)發(fā)送投票廣播包,其中所述投票廣播包攜帶預(yù)先建立的主機(jī)標(biāo)識(shí)與系統(tǒng)信息的對(duì)應(yīng)關(guān)系,所述投票廣播包用于指示接收到所述投票廣播包的主機(jī)進(jìn)行投票,即選舉出一臺(tái)主機(jī)。
實(shí)際應(yīng)用中,在所述局域網(wǎng)內(nèi)的各臺(tái)備選主機(jī)接收到所述投票廣播包后,根據(jù)所述投票廣播包中攜帶的主機(jī)標(biāo)識(shí)與系統(tǒng)信息的對(duì)應(yīng)關(guān)系,選舉出一臺(tái)主機(jī)作為投票目標(biāo),并將所述主機(jī)的主機(jī)標(biāo)識(shí)加入投票應(yīng)答包中返回給所述廣播主機(jī)。
一種優(yōu)選地實(shí)現(xiàn)方式中,所述備選主機(jī)根據(jù)所述系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系中的各個(gè)系統(tǒng)信息確定投票的主機(jī)標(biāo)識(shí)。具體的,可以對(duì)各個(gè)主機(jī)標(biāo)識(shí)對(duì)應(yīng)的系統(tǒng)信息進(jìn)行計(jì)算,假設(shè)所述系統(tǒng)信息包括MCU主頻、空閑內(nèi)存和空閑存儲(chǔ)的值,本發(fā)明實(shí)施例可以計(jì)算各個(gè)系統(tǒng)信息中的MCU主頻、空閑內(nèi)存和空閑存儲(chǔ)的值之和,并將和最大的系統(tǒng)信息對(duì)應(yīng)的主機(jī)標(biāo)識(shí)確定為投票目標(biāo)。
另一種實(shí)現(xiàn)方式中,由于對(duì)于系統(tǒng)信息區(qū)別較小的主機(jī)之間無(wú)論哪個(gè)主機(jī)被選舉成功都不會(huì)造成影響,所以,為了體現(xiàn)投票選舉的特點(diǎn),避免每個(gè)備選主機(jī)的投票目標(biāo)均相同,本發(fā)明實(shí)施例針對(duì)所述系統(tǒng)信息與主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系中的每臺(tái)主機(jī),備選主機(jī)為其分別確定一個(gè)隨機(jī)數(shù)范圍。具體的,所述隨機(jī)數(shù)范圍與該主機(jī)的系統(tǒng)信息有關(guān),假設(shè)某臺(tái)主機(jī)的系統(tǒng)信息包括的MCU主頻、空閑內(nèi)存和空閑存儲(chǔ)的值分別為A、B、C,則該主機(jī)的隨機(jī)數(shù)范圍可以為[0,(A+B+C)/30],值得注意的是,所述隨機(jī)數(shù)范圍的量級(jí)最好與系統(tǒng)信息的值的量級(jí)相差較大,因?yàn)樵O(shè)置隨機(jī)數(shù)范圍的目的是弱化系統(tǒng)信息區(qū)別較小的主機(jī),但還是要體現(xiàn)系統(tǒng)信息區(qū)別較大的主機(jī)之間的差異。各個(gè)備選主機(jī)在確定各個(gè)主機(jī)的隨機(jī)數(shù)范圍后,分別在所述隨機(jī)數(shù)范圍內(nèi)隨機(jī)得到一個(gè)隨機(jī)數(shù),作為計(jì)算各個(gè)系統(tǒng)信息中的MCU主頻、空閑內(nèi)存和空閑存儲(chǔ)的值之和的附加值,即最終計(jì)算出的各個(gè)主機(jī)對(duì)應(yīng)的和為系統(tǒng)信息中的MCU主頻、空閑內(nèi)存、空閑存儲(chǔ)的值以及該隨機(jī)數(shù)的和,最終將計(jì)算得到的最大的和值對(duì)應(yīng)的主機(jī)標(biāo)識(shí)確定為投票目標(biāo)。
S205:所述廣播主機(jī)對(duì)接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí)進(jìn)行統(tǒng)計(jì),并根據(jù)統(tǒng)計(jì)結(jié)果確定Master主機(jī)。
本發(fā)明實(shí)施例中,所述廣播主機(jī)接收攜帶有主機(jī)標(biāo)識(shí)的投票應(yīng)答包,并對(duì)接收到的投票應(yīng)答包進(jìn)行統(tǒng)計(jì)計(jì)算,最終確定出一個(gè)主機(jī)作為Master主機(jī),負(fù)責(zé)所述局域網(wǎng)內(nèi)的主機(jī)統(tǒng)一的軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)。
一種情況中,所述廣播主機(jī)對(duì)接收到的投票應(yīng)答包進(jìn)行解析,得到主機(jī)標(biāo)識(shí),然后統(tǒng)計(jì)各個(gè)主機(jī)標(biāo)識(shí)的數(shù)量,即表示主機(jī)被投票的次數(shù)。最終,將數(shù)量最多的主機(jī)標(biāo)識(shí)對(duì)應(yīng)的主機(jī)確定為Master主機(jī),也就是說(shuō),將被投票次數(shù)最多的主機(jī)確定為Master主機(jī)。
另一種情況中,所述廣播主機(jī)未接收到任何投票應(yīng)答包,即沒(méi)有備選主機(jī)進(jìn)行投票,則所述廣播主機(jī)直接將本機(jī)確定為Master主機(jī)。
本發(fā)明實(shí)施例提供了一種動(dòng)態(tài)選舉方法,應(yīng)用于配置有多臺(tái)主機(jī)的局域網(wǎng),并在預(yù)設(shè)的重新選舉操作被觸發(fā)后,確定廣播主機(jī)。具體的,所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送備選廣播包,所述備選廣播包用于請(qǐng)求所述局域網(wǎng)內(nèi)的主機(jī)上報(bào)所述主機(jī)的系統(tǒng)信息。然后,接收攜帶有系統(tǒng)信息的備選應(yīng)答包,并建立所述系統(tǒng)信息與發(fā)送所述備選應(yīng)答包的主機(jī)的主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送投票廣播包,所述投票廣播包攜帶有預(yù)先建立的系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。最后,所述廣播主機(jī)對(duì)接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí)進(jìn)行統(tǒng)計(jì),并根據(jù)統(tǒng)計(jì)結(jié)果確定Master主機(jī)。本發(fā)明實(shí)施例能夠在局域網(wǎng)內(nèi)的主機(jī)中動(dòng)態(tài)選舉出負(fù)責(zé)所述局域網(wǎng)內(nèi)統(tǒng)一的軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)的主機(jī),避免被選舉的主機(jī)出現(xiàn)單點(diǎn)故障而導(dǎo)致的整個(gè)局域網(wǎng)內(nèi)的主機(jī)不能進(jìn)行數(shù)據(jù)更新的情況發(fā)生。
參考圖3,為本發(fā)明實(shí)施例提供的另一種動(dòng)態(tài)選舉的方法流程圖,其中,在上述動(dòng)態(tài)選舉方法的基礎(chǔ)上,本發(fā)明實(shí)施例提供的動(dòng)態(tài)選舉方法還包括:
S301:所述廣播主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送攜帶有所述Master主機(jī)的主機(jī)標(biāo)識(shí)的結(jié)果廣播包,以通知所述局域網(wǎng)內(nèi)的主機(jī)。
本發(fā)明實(shí)施例中,所述廣播主機(jī)在確定Master主機(jī)后,在所述局域網(wǎng)內(nèi)發(fā)送攜帶有所述Master主機(jī)的主機(jī)標(biāo)識(shí)的結(jié)果廣播包,所述結(jié)果廣播包用于通知所述局域網(wǎng)內(nèi)的備選主機(jī)所述Master主機(jī),如將所述Master主機(jī)的地址發(fā)送至各個(gè)備選主機(jī)。
實(shí)際應(yīng)用中,所述局域網(wǎng)內(nèi)的備選主機(jī)接收到來(lái)自所述廣播主機(jī)的結(jié)果廣播包后,根據(jù)所述結(jié)果廣播包中的主機(jī)標(biāo)識(shí)更新自身的狀態(tài)。具體的,對(duì)于所述局域網(wǎng)內(nèi)的任意一臺(tái)備選主機(jī),當(dāng)所述備選主機(jī)接收到所述結(jié)果廣播包后,解析所述結(jié)果廣播包得到所述主機(jī)標(biāo)識(shí),并將所述主機(jī)標(biāo)識(shí)與自身的主機(jī)標(biāo)識(shí)相比較,如果相同,則將自身的狀態(tài)更新為Master主機(jī),負(fù)責(zé)所述局域網(wǎng)內(nèi)統(tǒng)一的軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù);否則,將自身的狀態(tài)更新為Slave主機(jī),用于接收來(lái)自所述Master主機(jī)的更新數(shù)據(jù)。值得注意的是,所述局域網(wǎng)中除了Master主機(jī)之外的其他主機(jī)可以被稱為Slave主機(jī)。
S303:所述Master主機(jī)在所述局域網(wǎng)內(nèi)發(fā)送探測(cè)廣播包,并利用預(yù)設(shè)時(shí)間內(nèi)接收到的探測(cè)應(yīng)答包更新主機(jī)狀態(tài)表,所述主機(jī)狀態(tài)表中存儲(chǔ)有所述局域網(wǎng)內(nèi)正常運(yùn)行的主機(jī)的地址。
本發(fā)明實(shí)施例中,所述Master主機(jī)需要保持與所述局域網(wǎng)內(nèi)的各個(gè)Slave主機(jī)的通訊連接,以便在接收到更新數(shù)據(jù)后及時(shí)將其發(fā)送給當(dāng)前處于正常運(yùn)行狀態(tài)的Slave主機(jī)。所以,所述Master主機(jī)可以定時(shí)的在所述局域網(wǎng)內(nèi)發(fā)送探測(cè)廣播包,用于維持與其他主機(jī)的通訊連接。所述Master主機(jī)利用在預(yù)設(shè)時(shí)間內(nèi)接收到的探測(cè)應(yīng)答包更新本地的主機(jī)狀態(tài)表,其中,所述主機(jī)狀態(tài)表中存儲(chǔ)有所述局域網(wǎng)內(nèi)當(dāng)前正常運(yùn)行的主機(jī)的地址,具體的,利用在預(yù)設(shè)時(shí)間內(nèi)返回探測(cè)應(yīng)答包的Slave主機(jī)的地址更新所述主機(jī)狀態(tài)表,即刪除在預(yù)設(shè)時(shí)間內(nèi)未返回探測(cè)應(yīng)答包的Slave主機(jī)的地址。
值得注意的是,如果所述Master主機(jī)在預(yù)設(shè)時(shí)間內(nèi)未接收到任何探測(cè)應(yīng)答包,則觸發(fā)預(yù)設(shè)的重新選舉操作。
S304:如果所述Master主機(jī)在預(yù)設(shè)時(shí)間內(nèi)未發(fā)送探測(cè)廣播包,則觸發(fā)預(yù)設(shè)的重新選舉操作。
本發(fā)明實(shí)施例中,一旦Master主機(jī)發(fā)生宕機(jī)或網(wǎng)絡(luò)故障等問(wèn)題,則需要觸發(fā)重新選舉操作,即進(jìn)行重新選舉。具體的,如果任一正常運(yùn)行的Slave主機(jī)在預(yù)設(shè)時(shí)間內(nèi)未接收到所述Master主機(jī)的探測(cè)廣播包,則說(shuō)明所述Master主機(jī)在預(yù)設(shè)時(shí)間內(nèi)未發(fā)送探測(cè)廣播包,可以證明的是所述Master主機(jī)發(fā)生了單點(diǎn)故障,此時(shí)需要觸發(fā)重新選舉操作,進(jìn)行重新選舉。
S306:所述Master主機(jī)從云端服務(wù)器獲取更新數(shù)據(jù),并根據(jù)所述主機(jī)狀態(tài)表中存儲(chǔ)的正常運(yùn)行的主機(jī)的地址,下發(fā)所述更新數(shù)據(jù)。
本發(fā)明實(shí)施例中,所述Master主機(jī)建立與云端服務(wù)器的數(shù)據(jù)更新通道,從所述云端服務(wù)器獲取更新數(shù)據(jù)。然后,根據(jù)本地的主機(jī)狀態(tài)表中記載的主機(jī)的地址,下發(fā)所述更新數(shù)據(jù),完成所述局域網(wǎng)內(nèi)統(tǒng)一的數(shù)據(jù)更新。
S308:如果所述Master主機(jī)的空閑時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng),則觸發(fā)預(yù)設(shè)的重新選舉操作。
本發(fā)明實(shí)施例中,如果所述Master主機(jī)的空閑時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng),也就是說(shuō)一定時(shí)間內(nèi)沒(méi)有數(shù)據(jù)更新任務(wù),則可以觸發(fā)預(yù)設(shè)的重新選舉操作,進(jìn)行重新選舉。
本發(fā)明實(shí)施例中預(yù)先設(shè)置重新選舉操作,一旦檢測(cè)到預(yù)設(shè)的重新選舉操作被觸發(fā)后,重新選舉負(fù)責(zé)所述局域網(wǎng)內(nèi)統(tǒng)一的軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)的主機(jī),有效避免Master主機(jī)出現(xiàn)單點(diǎn)故障而導(dǎo)致的整個(gè)局域網(wǎng)內(nèi)的主機(jī)不能進(jìn)行數(shù)據(jù)更新的情況發(fā)生。
一種應(yīng)用場(chǎng)景中,本發(fā)明實(shí)施例提供的動(dòng)態(tài)選舉方法能夠應(yīng)用于電動(dòng)汽車充電站中的充電樁的軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)中。具體的,本發(fā)明實(shí)施例能夠動(dòng)態(tài)選舉充電站中的Master主機(jī),用于從充電樁云端服務(wù)器中下載更新數(shù)據(jù),進(jìn)而下發(fā)至所述充電站中的Slave主機(jī)。
參考圖4,為本發(fā)明實(shí)施例提供的一種充電站架構(gòu)示意圖,圖5為現(xiàn)有技術(shù)的圖1應(yīng)用于充電站的架構(gòu)示意圖,其中,二者相比,本發(fā)明實(shí)施例提供的圖4中的充電站架構(gòu)不包括圖5中預(yù)設(shè)的場(chǎng)站主機(jī),而是動(dòng)態(tài)的從所述充電站中的各個(gè)充電樁中選舉出負(fù)責(zé)軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)的充電樁。
參考圖6,為本發(fā)明實(shí)施例提供的一種應(yīng)用于充電站的動(dòng)態(tài)選舉方法的信令交互圖,所述方法包括:
S600:所述充電站中預(yù)設(shè)的重新選舉操作被觸發(fā)后,重新確定廣播主機(jī)。
值得注意的是,本發(fā)明實(shí)施例中的主機(jī)即為所述充電站中的充電樁。
S601:所述廣播主機(jī)在所述充電站所處的局域網(wǎng)內(nèi)定時(shí)的發(fā)送若干次備選廣播包,用于請(qǐng)求各個(gè)充電樁上報(bào)自身的系統(tǒng)信息。
S602:所述充電站內(nèi)的備選主機(jī)(除了廣播主機(jī)之外的其他主機(jī))在接收到所述備選廣播包后返回備選應(yīng)答包,包括自身的系統(tǒng)信息。
S603:所述廣播主機(jī)將預(yù)設(shè)時(shí)間內(nèi)接收到的備選應(yīng)答包內(nèi)的系統(tǒng)信息進(jìn)行整理,建立系統(tǒng)信息與發(fā)送該系統(tǒng)信息的主機(jī)的主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系。
值得注意的是,各個(gè)備選主機(jī)可以設(shè)置定時(shí)器,并在每接收到一次備選廣播包后重置所述定時(shí)器,在所述定時(shí)器被啟動(dòng)之前未收到來(lái)自廣播主機(jī)的備選廣播包,則觸發(fā)預(yù)設(shè)的重新選舉操作,進(jìn)行重新選舉,以防止廣播主機(jī)發(fā)生單點(diǎn)故障。值得注意的是,各個(gè)定時(shí)器具有預(yù)設(shè)的被重置的次數(shù)。
S604:所述廣播主機(jī)在所述充電站所處的局域網(wǎng)內(nèi)定時(shí)的發(fā)送若干次投票廣播包,用于請(qǐng)求各個(gè)備選主機(jī)進(jìn)行投票。所述投票廣播包中包括系統(tǒng)信息與主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
S605:所述充電站內(nèi)的備選主機(jī)在接收到所述投票廣播包后,根據(jù)所述系統(tǒng)信息與主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,確定一個(gè)主機(jī)進(jìn)行投票。
S606:各個(gè)備選主機(jī)返回?cái)y帶有主機(jī)標(biāo)識(shí)的投票應(yīng)答包。
S607:所述廣播主機(jī)在接收到來(lái)自各個(gè)備選主機(jī)的投票應(yīng)答包之后,統(tǒng)計(jì)并計(jì)算投票結(jié)果,確定Master主機(jī)。
S608:所述廣播主機(jī)在所述充電站所處的局域網(wǎng)內(nèi)定時(shí)的發(fā)送若干次攜帶有所述Master主機(jī)的主機(jī)標(biāo)識(shí)的結(jié)果廣播包。
參考圖7,為本發(fā)明實(shí)施例提供的一種應(yīng)用于充電站的數(shù)據(jù)更新方法的信令交互圖,其中,在確定所述充電站中的Master主機(jī)后,所述方法包括:
S701:Master主機(jī)建立與云端服務(wù)器的數(shù)據(jù)更新通道,并從所述云端服務(wù)器獲取更新數(shù)據(jù)。
S702:根據(jù)預(yù)先獲取的主機(jī)狀態(tài)表中存儲(chǔ)的正常運(yùn)行的主機(jī)的地址,下發(fā)所述更新數(shù)據(jù)。
S703:判斷Master主機(jī)的空閑時(shí)間是否達(dá)到預(yù)設(shè)時(shí)長(zhǎng),如果是,則觸發(fā)預(yù)設(shè)的重新選舉操作。
S704:Master主機(jī)定時(shí)發(fā)送探測(cè)廣播包,以便與各個(gè)Slave主機(jī)保持通訊連接。
S705:Master主機(jī)根據(jù)返回的探測(cè)應(yīng)答包維護(hù)更新所述主機(jī)狀態(tài)表,其中,所述主機(jī)狀態(tài)表中記載有所述充電站中當(dāng)前正常運(yùn)行的Slave主機(jī)的主機(jī)標(biāo)識(shí)。
本發(fā)明實(shí)施例中,為了保證數(shù)據(jù)安全性,所有的數(shù)據(jù)包(包括廣播包)的發(fā)送方在發(fā)送數(shù)據(jù)包之前均可以為該數(shù)據(jù)包添加數(shù)字簽名,該數(shù)據(jù)包的接收方在接收到該數(shù)據(jù)包后對(duì)其進(jìn)行簽名驗(yàn)證,確認(rèn)發(fā)送方的身份安全性,以防止惡意攻擊。
本發(fā)明實(shí)施例提供的動(dòng)態(tài)選舉方法應(yīng)用于充電站中,能夠動(dòng)態(tài)選舉出負(fù)責(zé)充電站內(nèi)各個(gè)充電樁統(tǒng)一的軟件升級(jí)、緩存更新、證書(shū)更新等服務(wù)的充電樁,有效避免被選舉出的充電樁出現(xiàn)單點(diǎn)故障而導(dǎo)致的整個(gè)充電站內(nèi)的充電樁均不能進(jìn)行數(shù)據(jù)更新的情況發(fā)生。
本發(fā)明實(shí)施例提供了一種動(dòng)態(tài)選舉系統(tǒng),應(yīng)用于配置有多臺(tái)主機(jī)的局域網(wǎng);所述系統(tǒng),用于在檢測(cè)到預(yù)設(shè)的重新選舉操作被觸發(fā)后,確定廣播主機(jī);所述系統(tǒng)包括所述廣播主機(jī)。
參考圖8,為本發(fā)明實(shí)施例提供的一種用于動(dòng)態(tài)選舉的廣播主機(jī)的結(jié)構(gòu)示意圖。其中,所述廣播主機(jī)包括第一發(fā)送模塊801,第一接收模塊802,第二發(fā)送模塊803和第一確定模塊804;
所述第一發(fā)送模塊,用于在所述局域網(wǎng)內(nèi)發(fā)送備選廣播包,所述備選廣播包用于請(qǐng)求所述局域網(wǎng)內(nèi)的主機(jī)上報(bào)所述主機(jī)的系統(tǒng)信息;
所述第一接收模塊,用于接收攜帶有系統(tǒng)信息的備選應(yīng)答包,并建立所述系統(tǒng)信息與發(fā)送所述備選應(yīng)答包的主機(jī)的主機(jī)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;
所述第二發(fā)送模塊,用于在所述局域網(wǎng)內(nèi)發(fā)送投票廣播包,所述投票廣播包攜帶有預(yù)先建立的系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系;
所述第一確定模塊,用于對(duì)接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí)進(jìn)行統(tǒng)計(jì),并根據(jù)統(tǒng)計(jì)結(jié)果確定Master主機(jī)。
另外,所述廣播主機(jī)還包括第三發(fā)送模塊:
所述第三發(fā)送模塊,用于在所述局域網(wǎng)內(nèi)發(fā)送攜帶有所述Master主機(jī)的主機(jī)標(biāo)識(shí)的結(jié)果廣播包,以通知所述局域網(wǎng)內(nèi)的主機(jī)。
具體的,所述第一確定模塊包括:
第一確定子模塊,用于在確定接收到的投票應(yīng)答包的數(shù)量為0時(shí),將自身的狀態(tài)更新為Master主機(jī);
第二確定子模塊,用于分別獲取接收到的投票應(yīng)答包中攜帶的主機(jī)標(biāo)識(shí),并統(tǒng)計(jì)各個(gè)主機(jī)標(biāo)識(shí)的數(shù)量,將數(shù)量最多的主機(jī)標(biāo)識(shí)對(duì)應(yīng)的主機(jī)確定為Master主機(jī)。
另外,所述系統(tǒng)還包括備選主機(jī),所述備選主機(jī)包括第二確定模塊和返回模塊:
所述第二確定模塊,用于在接收到所述投票廣播包后,根據(jù)所述系統(tǒng)信息與主機(jī)標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系中的各個(gè)系統(tǒng)信息確定投票的主機(jī)標(biāo)識(shí);
所述返回模塊,用于返回?cái)y帶有所述主機(jī)標(biāo)識(shí)的投票應(yīng)答包。
另外,所述系統(tǒng)還包括所述Master主機(jī),所述Master主機(jī)包括更新模塊:
所述更新模塊,用于在所述局域網(wǎng)內(nèi)發(fā)送探測(cè)廣播包,并利用預(yù)設(shè)時(shí)間內(nèi)接收到的探測(cè)應(yīng)答包更新主機(jī)狀態(tài)表,所述主機(jī)狀態(tài)表中存儲(chǔ)有正常運(yùn)行的主機(jī)的地址。
所述Master主機(jī)還包括第一觸發(fā)模塊:
所述第一觸發(fā)模塊,用于在預(yù)設(shè)時(shí)間內(nèi)所述更新模塊未發(fā)送探測(cè)廣播包時(shí),觸發(fā)預(yù)設(shè)的重新選舉操作。
所述Master主機(jī)還包括第二觸發(fā)模塊:
所述第二觸發(fā)模塊,用于在所述Master主機(jī)的空閑時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng)時(shí),觸發(fā)預(yù)設(shè)的重新選舉操作。
所述Master主機(jī)還包括數(shù)據(jù)更新模塊:
所述數(shù)據(jù)更新模塊,用于從云端服務(wù)器獲取更新數(shù)據(jù),并根據(jù)所述主機(jī)狀態(tài)表中存儲(chǔ)的正常運(yùn)行的主機(jī)的地址,下發(fā)所述更新數(shù)據(jù)。
實(shí)際應(yīng)用中,所述系統(tǒng)具體用于:在預(yù)設(shè)的重新選舉操作被觸發(fā)后,預(yù)先將所述局域網(wǎng)內(nèi)的任一臺(tái)主機(jī)確定為廣播主機(jī)。
另外,所述系統(tǒng)具體用于:在預(yù)設(shè)的重新選舉操作被觸發(fā)后,分別為所述局域網(wǎng)內(nèi)的各個(gè)主機(jī)設(shè)置定時(shí)器,其中各個(gè)定時(shí)器的延遲時(shí)間為隨機(jī)生成的;并將所述局域網(wǎng)內(nèi)最先啟動(dòng)的定時(shí)器對(duì)應(yīng)的主機(jī)確定為廣播主機(jī)。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對(duì)本發(fā)明實(shí)施例所提供的一種動(dòng)態(tài)選舉方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。