一種基于Alljoyn協(xié)議的Master網(wǎng)關(guān)自適應(yīng)競(jìng)爭(zhēng)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及物聯(lián)網(wǎng)技術(shù),特別涉及一種局域網(wǎng)下多設(shè)備聯(lián)網(wǎng)時(shí)的網(wǎng)關(guān)自適應(yīng)方法。
【背景技術(shù)】
[0002]隨著物聯(lián)網(wǎng)技術(shù)、云計(jì)算、大數(shù)據(jù)的發(fā)展,互聯(lián)互通技術(shù)顯得尤為重要。在人們對(duì)智能需求有限的情況下,早前的智能家居即便很簡(jiǎn)單依然讓人覺(jué)得“高大上”,并且基本不會(huì)出現(xiàn)問(wèn)題,但是隨著生活水平的提高,早前的智能家居逐漸變得落后,甚至淪為“偽智能”。智能家居單品的功能雖有提升,但智能效果所覆蓋的范圍十分有限,難以迎合消費(fèi)者整體智能的需求。即便智能家居發(fā)生了有線向無(wú)線的轉(zhuǎn)變,也只是安裝等方式的改變,不能實(shí)現(xiàn)所謂的真正的智能。現(xiàn)在的主要問(wèn)題是,智能家居不但要“連”,而且還靈活地“互連”,實(shí)現(xiàn)設(shè)備之間互通互控。
[0003]智能家居由原來(lái)的“設(shè)備端+移動(dòng)終端”的模式(傳統(tǒng)模式)向“設(shè)備端+云端+移動(dòng)終端”(新模式,包括物聯(lián)傳感等不少企業(yè)已是這種模式)轉(zhuǎn)變。隨之所帶來(lái)的最大變化是數(shù)據(jù)量增加、設(shè)備端與云端的連接數(shù)增加以及數(shù)據(jù)處理能力的增強(qiáng)。在這個(gè)過(guò)程中,設(shè)備端與云端的連接數(shù)增加,會(huì)直接增加消息云服務(wù)器的負(fù)荷,影響整個(gè)系統(tǒng)的通訊穩(wěn)定性。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中,智能家居多設(shè)備聯(lián)網(wǎng)時(shí)云服務(wù)器負(fù)荷過(guò)重,影響系統(tǒng)通訊穩(wěn)定性的問(wèn)題。
[0005]為達(dá)到上述目的,本發(fā)明提供一種基于Alljoyn協(xié)議的Master網(wǎng)關(guān)自適應(yīng)競(jìng)爭(zhēng)方法,包括如下步驟:
[0006]新設(shè)備入網(wǎng)后,通過(guò)Alljoyn網(wǎng)絡(luò)協(xié)議獲取局域網(wǎng)內(nèi)所有設(shè)備的競(jìng)爭(zhēng)信息,所述競(jìng)爭(zhēng)信息包括設(shè)備能力等級(jí)DeviCe_Flag、設(shè)備角色Role及設(shè)備IP,所述設(shè)備能力等級(jí)包括A、
B、C三級(jí),A、B為強(qiáng)終端,C為弱終端,所述設(shè)備角色包括Master、Slave及Normal ,Master表示與服務(wù)器進(jìn)行長(zhǎng)連接的設(shè)備,Slave表示與Master進(jìn)行長(zhǎng)連接的設(shè)備,當(dāng)局域網(wǎng)內(nèi)無(wú)Master設(shè)備時(shí),局域網(wǎng)內(nèi)的所有設(shè)備的設(shè)備角色Role為Normal ;
[0007]新設(shè)備根據(jù)所獲取的局域網(wǎng)內(nèi)所有設(shè)備的競(jìng)爭(zhēng)信息進(jìn)行競(jìng)爭(zhēng),若新設(shè)備競(jìng)爭(zhēng)勝出,貝lJ通過(guò)All joyn網(wǎng)絡(luò)協(xié)議將當(dāng)前局域網(wǎng)內(nèi)Master網(wǎng)關(guān)的設(shè)備Role值修改為Slave,并設(shè)置自己的設(shè)備角色Role值為Master,同時(shí)發(fā)出Al I joyn網(wǎng)絡(luò)協(xié)議廣播,宣告自己為新的Master網(wǎng)關(guān),局域網(wǎng)內(nèi)所有其它設(shè)備收到廣播后,將自身設(shè)備的當(dāng)前mastername修改為所述新Master網(wǎng)關(guān)的servicename,所述mastername用于標(biāo)記局域網(wǎng)內(nèi)的當(dāng)前Master,所述servicename用于標(biāo)記局域網(wǎng)內(nèi)設(shè)備服務(wù)名。
[0008]進(jìn)一步地,若新設(shè)備競(jìng)爭(zhēng)失敗且此時(shí)若局域網(wǎng)內(nèi)有Master網(wǎng)關(guān),則新設(shè)備通過(guò)調(diào)用Al I joyn網(wǎng)絡(luò)協(xié)議修改自己的設(shè)備角色RoIe為Slave,同時(shí)修改自身mastername的值為當(dāng)前Master網(wǎng)關(guān)的servicename;若新設(shè)備競(jìng)爭(zhēng)失敗且新設(shè)備的設(shè)備能力等級(jí)Device_Flag為C級(jí),此時(shí)局域網(wǎng)內(nèi)若沒(méi)有Master網(wǎng)關(guān),則新設(shè)備通過(guò)調(diào)用All joyn網(wǎng)絡(luò)協(xié)議修改自己的設(shè)備角色Role為Normal。
[0009]進(jìn)一步地,若局域網(wǎng)內(nèi)設(shè)備通過(guò)Al I joyn網(wǎng)絡(luò)協(xié)議監(jiān)聽(tīng)到之前存儲(chǔ)的mastername掉線,則啟動(dòng)競(jìng)爭(zhēng),競(jìng)爭(zhēng)具體流程如下:若該設(shè)備的設(shè)備能力等級(jí)DeviCe_Flag為A或B級(jí),首先獲取網(wǎng)內(nèi)其它所有設(shè)備的競(jìng)爭(zhēng)信息;如果改設(shè)備競(jìng)爭(zhēng)勝出,首先通過(guò)調(diào)用All joyn網(wǎng)絡(luò)協(xié)議修改自己的設(shè)備角色Role為Master,同時(shí)發(fā)出All joyn網(wǎng)絡(luò)協(xié)議廣播Name_ChangedSignal,宣告自己為Mas ter;若該設(shè)備競(jìng)爭(zhēng)失敗,該設(shè)備在收到新的Mas ter發(fā)出的Name_Changed Signal后,修改mastername的值為新Master網(wǎng)關(guān)的servicename,若自身設(shè)備能力等級(jí)為C級(jí),等待I秒后,如果收到Mas ter發(fā)出的NameChanged Signal,則修改自己的MasterName為當(dāng)前Master的servicename;若沒(méi)收到Master發(fā)出的NameChanged Signal,則與云服務(wù)器進(jìn)行長(zhǎng)連接。
[0010]具體地,新設(shè)備入網(wǎng)后,若局域網(wǎng)內(nèi)只有本設(shè)備一個(gè),且該設(shè)備的能力級(jí)別Device_Flag為A或B級(jí),則該設(shè)備成為Master網(wǎng)關(guān),若該設(shè)備的能力級(jí)別Device_Flag為C級(jí)則該設(shè)備的設(shè)備角色修改為NORMAL。
[0011]具體地,新設(shè)備入網(wǎng)后,若局域網(wǎng)內(nèi)有兩個(gè)以上設(shè)備且已有Master網(wǎng)關(guān),若此Master網(wǎng)關(guān)的Device_f lag為B,且本設(shè)備Device_f lag為A,則本設(shè)備成為Master網(wǎng)關(guān),否則成為Slave;
[0012]若局域網(wǎng)內(nèi)有兩個(gè)以上設(shè)備且沒(méi)有Master,對(duì)局域網(wǎng)內(nèi)所有設(shè)備的Device_Flag按照A、B、C進(jìn)行排序,對(duì)局域網(wǎng)內(nèi)所有設(shè)備的IP進(jìn)行降序排序,分別存儲(chǔ)在flag[]和IP[]兩個(gè)數(shù)組之中,并進(jìn)入如下流程:
[0013]a若本設(shè)備的Device_flag與flag[0]相等,且若flag[0]和flag[l]不相等,即本設(shè)備Device_flag等級(jí)最高,則本設(shè)備成為Master ;
[0014]b若本設(shè)備的 Device_f lag與f ]^8[0]相等且;1^138[0]不為(],且若;1^138[0]和;1^1&區(qū)
[1]也相等,若1?_肪1:;^6與1?[0]相等,貝1|本設(shè)備成為1&18七61.;
[0015]若a、b均不滿足:
[0016]則c.若本設(shè)備的DeviCe_flag與flag[0]不相等且flag[0]不為C,則本設(shè)備成為Slave;
[0017]若c不滿足:
[0018]則d.若flag[0]為C級(jí),則本設(shè)備成為Normal;
[0019]其中,自身設(shè)備的能力標(biāo)記記為flag_native;自身設(shè)備的IP記為IP_native;局域網(wǎng)內(nèi)所有設(shè)備的能力標(biāo)記按照A、B、C進(jìn)行排序,用數(shù)組flag[]存儲(chǔ),其中A用2描述、B用I描述、C用O描述;局域網(wǎng)內(nèi)所有設(shè)備的IP信息按照降序排序,用數(shù)組IP[]來(lái)表示。
[0020]本發(fā)明的有益效果是:本發(fā)明應(yīng)用于智能終端硬件實(shí)體中,在一個(gè)局域網(wǎng)內(nèi)可自適應(yīng)競(jìng)爭(zhēng)出一個(gè)Master網(wǎng)關(guān)與云服務(wù)器進(jìn)行長(zhǎng)連接,局域網(wǎng)內(nèi)其它設(shè)備與手機(jī)端進(jìn)行遠(yuǎn)程通訊可通過(guò)該智能終端進(jìn)行中轉(zhuǎn),因此大大減少了局域網(wǎng)內(nèi)所有設(shè)備與服務(wù)器的長(zhǎng)連接數(shù)量,降低了云服務(wù)器的負(fù)荷,從而提升了整個(gè)系統(tǒng)的穩(wěn)定性。
【附圖說(shuō)明】
[0021]圖1為本發(fā)明實(shí)施例的通過(guò)AUjoyn Bus獲取設(shè)備能力集的過(guò)程示意圖。
[0022]圖2為本發(fā)明實(shí)施例的局域網(wǎng)內(nèi)有Master網(wǎng)關(guān)時(shí)的競(jìng)爭(zhēng)流程圖示意圖;
[0023]圖3為本發(fā)明實(shí)施例的網(wǎng)關(guān)掉線時(shí)A級(jí)和B級(jí)設(shè)備競(jìng)爭(zhēng)的流程圖;
[0024]圖4為本發(fā)明實(shí)施例的競(jìng)爭(zhēng)邏輯流程示意圖。
【具體實(shí)施方式】
[0025]以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步詳細(xì)描述。
[0026]本發(fā)明設(shè)計(jì)了一種基于Alljoyn技術(shù)的網(wǎng)關(guān)自適應(yīng)競(jìng)爭(zhēng)算法。通過(guò)該競(jìng)爭(zhēng)算法可以保證局域網(wǎng)內(nèi)只有一個(gè)網(wǎng)關(guān)與云服務(wù)器保持長(zhǎng)連接,降低心跳連接數(shù),從而降低云服務(wù)器負(fù)荷。在云服務(wù)器架構(gòu)不變的情況下,長(zhǎng)連接數(shù)固定、在新設(shè)備入網(wǎng)以及Master網(wǎng)關(guān)連接斷掉之后,該自適應(yīng)競(jìng)爭(zhēng)邏輯會(huì)自動(dòng)啟動(dòng)。
[0027]新設(shè)備入網(wǎng)時(shí),如果局域網(wǎng)中已存在網(wǎng)關(guān),則新入網(wǎng)設(shè)備與已有網(wǎng)關(guān)進(jìn)行競(jìng)爭(zhēng);若局域網(wǎng)內(nèi)不存在網(wǎng)關(guān),則根據(jù)新設(shè)備的設(shè)備能力集判定該設(shè)備是否可作為網(wǎng)關(guān);如果網(wǎng)關(guān)連接突然斷掉,局域網(wǎng)內(nèi)部設(shè)備會(huì)自動(dòng)組網(wǎng),通過(guò)自適應(yīng)競(jìng)爭(zhēng)邏輯自動(dòng)從其它從網(wǎng)關(guān)里面競(jìng)爭(zhēng)出一個(gè)新的網(wǎng)關(guān)與云服務(wù)器保持長(zhǎng)連接;如果局域網(wǎng)內(nèi)均是弱終端(CPU為弱單片機(jī)),此時(shí)局域網(wǎng)內(nèi)不能競(jìng)爭(zhēng)出Master網(wǎng)關(guān),則分別與云端進(jìn)行長(zhǎng)連接。
[0028]主要包含以下幾個(gè)過(guò)程:(I)通過(guò)Alljoyn網(wǎng)絡(luò)協(xié)議獲取設(shè)備自身相關(guān)信息;(2)新設(shè)備入網(wǎng)競(jìng)爭(zhēng)邏輯;(3)網(wǎng)關(guān)掉線競(jìng)爭(zhēng)邏輯;(4)競(jìng)爭(zhēng)算法邏輯實(shí)現(xiàn)。
[0029]實(shí)施例
[0030]網(wǎng)關(guān)自適應(yīng)競(jìng)爭(zhēng)啟動(dòng)主要體現(xiàn)在兩個(gè)流程中:一是在新設(shè)備入網(wǎng)過(guò)程中;二是在網(wǎng)關(guān)掉線后。這兩個(gè)流程均會(huì)觸發(fā)網(wǎng)關(guān)自適應(yīng)競(jìng)爭(zhēng),自適應(yīng)競(jìng)爭(zhēng)同時(shí)需要兩方面內(nèi)容:一是通過(guò)AU joyn網(wǎng)絡(luò)協(xié)議獲取設(shè)備相關(guān)能力集信息;另一個(gè)方面涉及競(jìng)爭(zhēng)算法邏輯。下面分別詳細(xì)介紹上述四個(gè)過(guò)程:
[0031 ] 1、下面詳細(xì)描述本發(fā)明的技術(shù)方案:
[0032]首先通過(guò)411如711網(wǎng)絡(luò)協(xié)議獲取設(shè)備的相關(guān)能力等級(jí)0^1(^_?1&8、設(shè)備1?、設(shè)備角色ROLE等相關(guān)信息;其中設(shè)備的能力等級(jí)Device_Flag分為A(強(qiáng)終端一網(wǎng)關(guān),包含Wifi,Zigbee,藍(lán)牙等接口);B(強(qiáng)終端,包含Wifi等接口,具有Linux操作系統(tǒng)等);C(弱終端,含Wifi接口,CPU為弱單片機(jī)等)。見(jiàn)圖1。
[0033]競(jìng)爭(zhēng)勝出的強(qiáng)終端的設(shè)備角色ROLE記為MASTER(與云服務(wù)器進(jìn)行長(zhǎng)連接);失敗的終端記為SLAVE(與Master建立連接);若局域網(wǎng)內(nèi)無(wú)MASTER,終端每個(gè)設(shè)備的設(shè)備角色ROLE均為NORMAL(每個(gè)設(shè)備的能力等級(jí)均為C),均與云服務(wù)器進(jìn)行長(zhǎng)連接。
[0034]能力等級(jí)只有為A或者為B的設(shè)備經(jīng)過(guò)競(jìng)爭(zhēng)后才可能成為Master網(wǎng)關(guān);能力等級(jí)為C的設(shè)備經(jīng)過(guò)競(jìng)爭(zhēng)后可能成為SLAVE或者為NORMAL。
[0035]2、新設(shè)備入網(wǎng)邏輯流程
[0036]新設(shè)備入網(wǎng)后,新設(shè)備通過(guò)Alljoyn網(wǎng)絡(luò)協(xié)議獲取局域網(wǎng)內(nèi)所有設(shè)備的設(shè)備能力等級(jí)Device_Flag、設(shè)備角色R0LE、設(shè)備IP等信息進(jìn)行競(jìng)爭(zhēng)。新設(shè)備競(jìng)爭(zhēng)勝出后,通過(guò)調(diào)用Al I joyn網(wǎng)絡(luò)協(xié)議將當(dāng)前Master網(wǎng)關(guān)的ROLE值修改為SLAVE,并設(shè)置自己的ROLE值為MASTER,同時(shí)發(fā)出All joyn網(wǎng)絡(luò)協(xié)議廣播,宣告自己為Master,告訴局域網(wǎng)內(nèi)所