本發(fā)明涉及一種物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置方法及系統(tǒng)。
背景技術(shù):
越來越多的物聯(lián)網(wǎng)終端設(shè)備在朝著智能化方向的發(fā)展,物聯(lián)網(wǎng)終端設(shè)備上加載的組件越來越多、運(yùn)行的業(yè)務(wù)邏輯越來越復(fù)雜,與用戶的交互也越來越豐富。物聯(lián)網(wǎng)系統(tǒng)中經(jīng)常需要更新終端設(shè)備的配置,如:計(jì)劃任務(wù)、告警、場景模式、邏輯規(guī)則等。這些配置通常有三種存儲(chǔ)方式:終端設(shè)備的主存儲(chǔ)器、終端設(shè)備的外部存儲(chǔ)器,如閃存以及云平臺(tái)。
物聯(lián)網(wǎng)終端設(shè)備通常運(yùn)行內(nèi)存較小,不能保存所有配置;而頻繁訪問外部存儲(chǔ)則會(huì)造成程序運(yùn)行效率降低;配置保存在云平臺(tái)上的缺點(diǎn)是訪問速度慢,不能滿足實(shí)時(shí)性要求高的處理場景,而且一旦網(wǎng)絡(luò)故障,則會(huì)直接影響終端設(shè)備的運(yùn)行。
現(xiàn)有物聯(lián)網(wǎng)設(shè)備的配置的舉例:
中國專利申請《一種物聯(lián)網(wǎng)配置信息處理方法》申請?zhí)枺篊N201310444460.9,該申請主要解決的是物聯(lián)網(wǎng)中的終端設(shè)備如何方便、快捷地獲取必要的配置信息、完成初始化的問題。該專利申請包括以下步驟,步驟一:接收物聯(lián)網(wǎng)終端設(shè)備發(fā)送的配置請求信息;步驟二:驗(yàn)證所述物聯(lián)網(wǎng)終端設(shè)備發(fā)送的配置請求信息;步驟三:獲取經(jīng)過驗(yàn)證后的物聯(lián)網(wǎng)終端設(shè)備發(fā)送的配置請求信息;步驟四:執(zhí)行反饋后的物聯(lián)網(wǎng)終端設(shè)備的配置請求信息。所述配置請求信息包括物聯(lián)網(wǎng)終端設(shè)備所屬環(huán)境分類的標(biāo)識(shí)。驗(yàn)證所述物聯(lián)網(wǎng)終端設(shè)備發(fā)送的配置請求信息的方法為將物聯(lián)網(wǎng)終端設(shè)備發(fā)送過來的配置請求信息與預(yù)設(shè)的物聯(lián)網(wǎng)終端設(shè)備所屬環(huán)境分類的標(biāo)識(shí)進(jìn)行對比,得到與預(yù)設(shè)的物聯(lián)網(wǎng)終端設(shè)備所屬環(huán)境分類的標(biāo)識(shí)相匹配的配置信息。在所述物聯(lián)網(wǎng)配置信息的處理過程中,增加了驗(yàn)證所述物聯(lián)網(wǎng)終端設(shè)備發(fā)送的配置請求信息這一步驟,提高了物聯(lián)網(wǎng)配置信息處理的精確度。
中國專利《實(shí)現(xiàn)物聯(lián)網(wǎng)終端設(shè)備快速配置的方法、用戶終端設(shè)備和系統(tǒng)》申請?zhí)枺篊N201310205878.4,該專利申請包括以下步驟,采集需要進(jìn)行部署的物聯(lián)網(wǎng)終端設(shè)備上攜帶的二維碼圖片;從二維碼圖片中解析出需要進(jìn)行部署的物聯(lián)網(wǎng)終端設(shè)備的標(biāo)識(shí)信息和相關(guān)參數(shù)信息;向系統(tǒng)服務(wù)器發(fā)送配置信息,其中配置信息中包括所述標(biāo)識(shí)信息和相關(guān)參數(shù)信息,以便系統(tǒng)服務(wù)器將所述標(biāo)識(shí)信息和參數(shù)信息寫入到配置數(shù)據(jù)庫中,從而實(shí)現(xiàn)需要進(jìn)行部署的物聯(lián)網(wǎng)終端設(shè)備的快速配置。
上述專利申請無論是采用手動(dòng)的條形碼、二維碼、圖片、搖一搖,還是自動(dòng)化的廣播、網(wǎng)絡(luò)嗅探,其宗旨都是在終端設(shè)備初始化時(shí)快速完成配置。
中國專利申請《一種智能協(xié)作式配置方法和設(shè)備》申請?zhí)枺篊N201410275862.5,主要解決了終端設(shè)備配置的快速復(fù)制和選擇技術(shù)。該專利申請包括以下步驟:(1)變動(dòng)節(jié)點(diǎn)將代表自已身份的唯一的識(shí)別碼作為信息,發(fā)送協(xié)作配置請求;(2)相關(guān)節(jié)點(diǎn)接收到所述協(xié)作配置請求后,通過協(xié)作關(guān)系判斷,回送協(xié)助回復(fù)信息;(3)變動(dòng)節(jié)點(diǎn)接收所述協(xié)助回復(fù)信息,更新協(xié)作關(guān)系,并發(fā)送需要協(xié)助內(nèi)容信息;(4)相關(guān)節(jié)點(diǎn)根據(jù)協(xié)助內(nèi)容信息,通過協(xié)同配置邏輯,更新節(jié)點(diǎn)關(guān)系表,提取相關(guān)配置信息,回送給發(fā)出請求的變動(dòng)節(jié)點(diǎn);(5)變動(dòng)節(jié)點(diǎn)接收所述相關(guān)配置信息,進(jìn)行自動(dòng)配置,完成自動(dòng)部署。
中國專利申請《智能終端設(shè)備工作場景的設(shè)置方法及系統(tǒng)》申請?zhí)枺篊N201510318795.5,該專利申請包括以下步驟:組建物聯(lián)網(wǎng);其中,組建的所述物聯(lián)網(wǎng)包括一個(gè)用于進(jìn)行場景設(shè)置的設(shè)置終端設(shè)備;啟動(dòng)物聯(lián)網(wǎng)中所述設(shè)置終端設(shè)備的場景設(shè)置功能,選擇對應(yīng)的物聯(lián)網(wǎng)節(jié)點(diǎn)作為對應(yīng)場景的執(zhí)行對象;配置所述物聯(lián)網(wǎng)節(jié)點(diǎn)對應(yīng)的工作狀態(tài)并保存,得到創(chuàng)建的工作場景。
上述技術(shù)側(cè)重于物聯(lián)網(wǎng)終端設(shè)備更換或配置信息更換時(shí)的處理優(yōu)化問題。
基于上述可知:現(xiàn)有技術(shù)都是用在終端設(shè)備初始化階段,或者終端設(shè)備更換時(shí),而不是終端設(shè)備正常運(yùn)行過程中的配置更新。現(xiàn)有技術(shù)針對的是終端設(shè)備的整體配置更新,而很少考慮終端設(shè)備的局部配置更新,僅更新某些、甚至某一項(xiàng)配置。現(xiàn)有技術(shù)沒有綜合利用云平臺(tái)、終端設(shè)備的主存儲(chǔ)器以及終端設(shè)備的外部存儲(chǔ)器,配置更新效率不高。
有鑒于上述的缺陷,本設(shè)計(jì)人積極加以研究創(chuàng)新,以期創(chuàng)設(shè)一種物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置方法及系統(tǒng),使其更具有產(chǎn)業(yè)上的利用價(jià)值。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明的目的是提供一種有效利用云平臺(tái)、終端設(shè)備內(nèi)存及終端設(shè)備外部存儲(chǔ),實(shí)現(xiàn)高效率更新終端設(shè)備配置的物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置方法及系統(tǒng)。
本發(fā)明物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置方法,包括:
終端設(shè)備進(jìn)入運(yùn)行狀態(tài);
終端設(shè)備與云平臺(tái)通訊連接,接收云平臺(tái)/用戶端輸出的更新配置指令,當(dāng)終端設(shè)備收到配置更新命令,則對該更新命令進(jìn)行解析,更新終端設(shè)備的配置命令隊(duì)列;
所述方法還包括:
以第一預(yù)定時(shí)間間掃描命令隊(duì)列,修改運(yùn)行環(huán)境;
以第二預(yù)定時(shí)間間隔將終端設(shè)備主存儲(chǔ)配置信息同步到外部存儲(chǔ);
如果云平臺(tái)與終端設(shè)備連接終端,當(dāng)終端檢測設(shè)備與云平臺(tái)連接恢復(fù)后,以預(yù)定的延時(shí)時(shí)間與云平臺(tái)進(jìn)行同步配置信息。
進(jìn)一步地,所述終端設(shè)備進(jìn)入運(yùn)行狀態(tài)的過程具體包括:
終端設(shè)備啟動(dòng);
檢測終端設(shè)備與云平臺(tái)連接是否正常,
若正常,則終端設(shè)備與云平臺(tái)同步配置信息,批量更新配置信息至外部存儲(chǔ),外部存儲(chǔ)器加載更新后的配置信息至主存儲(chǔ),根據(jù)配置信息生成運(yùn)行環(huán)境,終端進(jìn)入運(yùn)行狀態(tài);
若不正常,則外部存儲(chǔ)器加載原存儲(chǔ)的配置信息至主存儲(chǔ)根據(jù)配置信息生成運(yùn)行環(huán)境,終端進(jìn)入運(yùn)行環(huán)境。
進(jìn)一步地,所述的第一預(yù)定時(shí)間間隔為毫秒級,所述第二預(yù)定時(shí)間間隔為秒級,所述第三時(shí)間間隔為分鐘級。
進(jìn)一步地,配置信息結(jié)構(gòu)包括:操作指令、已執(zhí)行標(biāo)記、保存標(biāo)記、配置項(xiàng)ID和配置信息。其中,操作指令遵照Restful規(guī)范,包括讀取(GET)、新增(POST)、修改(PUT)和刪除(DELETE)四種操作指令;一個(gè)操作指令可以包括一項(xiàng)或者多項(xiàng)配置信息。保存標(biāo)記表示該配置是否已經(jīng)在外部存儲(chǔ)保存(UNSAVED或SAVED),已執(zhí)行標(biāo)記表示該配置是否已經(jīng)在運(yùn)行環(huán)境中生效(UNEXECUTED或EXECUTED),配置項(xiàng)ID類型為無符號整數(shù),配置信息為變長數(shù)據(jù)塊,上述配置信息結(jié)構(gòu),在消息和接口中以JSON格式表示,在程序內(nèi)部轉(zhuǎn)化為結(jié)構(gòu)體保存在配置命令隊(duì)列中。
進(jìn)一步地,所述配置同步具體包括:終端設(shè)備向云平臺(tái)發(fā)送配置同步請求,并攜帶外部存儲(chǔ)的配置時(shí)間戳及設(shè)備標(biāo)識(shí)(ID);云平臺(tái)收到請求后,讀取平臺(tái)數(shù)據(jù)庫中該終端設(shè)備的配置信息及時(shí)間戳,與接收到的設(shè)備端時(shí)間戳比較,如果平臺(tái)端時(shí)間戳較新,則下發(fā)配置;如果設(shè)備端時(shí)間戳較新,則要求設(shè)備上傳配置,同步完成后,云平臺(tái)和終端設(shè)備分別更新時(shí)間戳。
進(jìn)一步地,還包括:當(dāng)終端設(shè)備進(jìn)行硬件升級或更換后,在云平臺(tái)上將硬件升級或更新的新設(shè)備的設(shè)備標(biāo)識(shí)(ID)與原設(shè)備的設(shè)備標(biāo)識(shí)(ID)關(guān)聯(lián)起來,云平臺(tái)收到配置同步請求消息后將下發(fā)全部配置。
進(jìn)一步地,用戶通過客戶端發(fā)送更新配置指令至云平臺(tái),通過云平臺(tái)輸出配置更新指令至終端設(shè)備或用戶通過客戶端輸出配置指令至終端設(shè)備的外存儲(chǔ);
所述終端設(shè)備的外存儲(chǔ)包括終端設(shè)備的外存儲(chǔ)器、與終端設(shè)備連接的移動(dòng)終端。
本發(fā)明物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置系統(tǒng),通訊連接的終端設(shè)備、云平臺(tái)、客戶端,
客戶端通過云平臺(tái)向終端設(shè)備輸出配置更新指令,或客戶直接向終端設(shè)備輸出配置更新指令;
所述終端設(shè)備包括配置更新模塊,用于接收云平臺(tái)輸出的更新配置指令,當(dāng)終端設(shè)備收到配置更新命令,則對該更新命令進(jìn)行解析,更新終端設(shè)備的配置命令隊(duì)列;
所述終端設(shè)備還包括:第一定時(shí)模塊,用于以第一預(yù)定時(shí)間間掃描命令隊(duì)列,修改運(yùn)行環(huán)境;
第二定時(shí)模塊,用于以第二預(yù)定時(shí)間間隔將終端設(shè)備主存儲(chǔ)配置信息同步到外部存儲(chǔ);
第三定時(shí)模塊,用于如果云平臺(tái)與終端設(shè)備連接終端,當(dāng)終端檢測設(shè)備與云平臺(tái)連接恢復(fù)后,以預(yù)定的延時(shí)時(shí)間與云平臺(tái)進(jìn)行同步配置信息。
進(jìn)一步地,所述終端設(shè)備還包括運(yùn)行啟動(dòng)模塊,具體用于當(dāng)終端設(shè)備啟動(dòng)后,檢測終端設(shè)備與云平臺(tái)連接是否正常,
若正常,則終端設(shè)備與云平臺(tái)同步配置信息,批量更新配置信息至外部存儲(chǔ),外部存儲(chǔ)器加載更新后的配置信息至主存儲(chǔ),根據(jù)配置信息生成運(yùn)行環(huán)境,終端進(jìn)入運(yùn)行狀態(tài);
若不正常,則外部存儲(chǔ)器加載原存儲(chǔ)的配置信息至主存儲(chǔ)根據(jù)配置信息生成運(yùn)行環(huán)境,終端進(jìn)入運(yùn)行環(huán)境。
進(jìn)一步地,所述終端設(shè)備還包括配置恢復(fù)模塊,用于當(dāng)終端設(shè)備進(jìn)行硬件升級或更換后,在云平臺(tái)上將硬件升級或更新的新設(shè)備的設(shè)備標(biāo)識(shí)(ID)與原設(shè)備的設(shè)備標(biāo)識(shí)(ID)關(guān)聯(lián)起來,云平臺(tái)收到配置同步請求消息后將下發(fā)全部配置。
借由上述方案,本發(fā)明至少具有以下優(yōu)點(diǎn):
1.本發(fā)明一種方法能夠綜合利用云平臺(tái)、終端設(shè)備的主存儲(chǔ)器以及終端設(shè)備的外部存儲(chǔ)器,實(shí)現(xiàn)終端設(shè)備配置項(xiàng)的實(shí)時(shí)更新;
2.本發(fā)明能夠支持終端設(shè)備上局部配置更新,即僅更新某些、甚至某一項(xiàng)配置;
3.本發(fā)明用在終端設(shè)備運(yùn)行過程中,配置更新不影響終端設(shè)備的正常運(yùn)行,新的配置參數(shù)實(shí)時(shí)生效;
4.本發(fā)明有一定容錯(cuò)能力,當(dāng)網(wǎng)絡(luò)或云平臺(tái)出現(xiàn)問題時(shí),終端設(shè)備仍能夠加載最近一次的正確配置;
5.本發(fā)明通過終端設(shè)備與云平臺(tái)的配置同步,實(shí)現(xiàn)糾錯(cuò)機(jī)制。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實(shí)施,以下以本發(fā)明的較佳實(shí)施例并配合附圖詳細(xì)說明如后。
附圖說明
圖1是本發(fā)明物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置方法的終端設(shè)備啟動(dòng)、初始化設(shè)備啟動(dòng)、初始化配置信息及更新配置的流程圖;
圖2是本發(fā)明物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例,對本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
實(shí)施例1
本實(shí)施例物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置方法,包括:
終端設(shè)備進(jìn)入運(yùn)行狀態(tài);
終端設(shè)備與云平臺(tái)通訊連接,接收云平臺(tái)/用戶端輸出的更新配置指令,當(dāng)終端設(shè)備收到配置更新命令,則對該更新命令進(jìn)行解析,更新終端設(shè)備的配置命令隊(duì)列;
所述方法還包括:
以第一預(yù)定時(shí)間間掃描命令隊(duì)列,修改運(yùn)行環(huán)境;
以第二預(yù)定時(shí)間間隔將終端設(shè)備主存儲(chǔ)配置信息同步到外部存儲(chǔ);
如果云平臺(tái)與終端設(shè)備連接終端,當(dāng)終端檢測設(shè)備與云平臺(tái)連接恢復(fù)后,以預(yù)定的延時(shí)時(shí)間與云平臺(tái)進(jìn)行同步配置信息。
如圖1所示,本實(shí)施例中,所述終端設(shè)備進(jìn)入運(yùn)行狀態(tài)的過程具體包括:
終端設(shè)備啟動(dòng);
檢測終端設(shè)備與云平臺(tái)連接是否正常,
若正常,則終端設(shè)備與云平臺(tái)同步配置信息,批量更新配置信息至外部存儲(chǔ),外部存儲(chǔ)器加載更新后的配置信息至主存儲(chǔ),根據(jù)配置信息生成運(yùn)行環(huán)境,終端進(jìn)入運(yùn)行狀態(tài);
若不正常,則外部存儲(chǔ)器加載原存儲(chǔ)的配置信息至主存儲(chǔ)根據(jù)配置信息生成運(yùn)行環(huán)境,終端進(jìn)入運(yùn)行環(huán)境。
本實(shí)施例中,所述的第一預(yù)定時(shí)間間隔為毫秒級,所述第二預(yù)定時(shí)間間隔為秒級,所述第三時(shí)間間隔為分鐘級。所述配置同步具體包括:終端設(shè)備向云平臺(tái)發(fā)送配置同步請求,并攜帶外部存儲(chǔ)的配置時(shí)間戳及設(shè)備標(biāo)識(shí)(ID);云平臺(tái)收到請求后,讀取平臺(tái)數(shù)據(jù)庫中該終端設(shè)備的配置信息及時(shí)間戳,與接收到的設(shè)備端時(shí)間戳比較,如果平臺(tái)端時(shí)間戳較新,則下發(fā)配置;如果設(shè)備端時(shí)間戳較新,則要求設(shè)備上傳配置,同步完成后,云平臺(tái)和終端設(shè)備分別更新時(shí)間戳。
用戶通過客戶端發(fā)送更新配置指令至云平臺(tái),通過云平臺(tái)輸出配置更新指令至終端設(shè)備或用戶通過客戶端輸出配置指令至終端設(shè)備的外存儲(chǔ);
所述終端設(shè)備的外存儲(chǔ)包括終端設(shè)備的外存儲(chǔ)器、與終端設(shè)備連接的移動(dòng)終端。
實(shí)施例2
本實(shí)施例物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置方法,在實(shí)施例1的基礎(chǔ)上,還包括:當(dāng)終端設(shè)備進(jìn)行硬件升級或更換后,在云平臺(tái)上將硬件升級或更新的新設(shè)備的設(shè)備標(biāo)識(shí)(ID)與原設(shè)備的設(shè)備標(biāo)識(shí)(ID)關(guān)聯(lián)起來,云平臺(tái)收到配置同步請求消息后將下發(fā)全部配置。
實(shí)施例3
本實(shí)施例物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置方法,在實(shí)施例1或2的基礎(chǔ)上還包括物聯(lián)網(wǎng)設(shè)備與控制器智能綁定過程:
匿名綁定:包括終端設(shè)備為初始狀態(tài),終端設(shè)備與唯一客戶端建立匿名綁定,其中該唯一客戶端為主客戶端,其他客戶端為子客戶端;
用戶靜態(tài)綁定:包括在云平臺(tái)上注冊用戶賬號,用戶賬號在主客戶端上登錄,該用戶賬號驗(yàn)證通過,終端設(shè)備與該用戶賬號建立用戶靜態(tài)綁定,其中第一個(gè)與主客戶端完成用戶靜態(tài)綁定的用戶賬號為終端設(shè)備的主用戶賬號,其他用戶賬戶為普通用戶賬號;
用戶動(dòng)態(tài)綁定:包括主用戶賬號在子客戶端上登錄,云平臺(tái)向該子客戶端下發(fā)終端設(shè)備列表,子客戶端與終端設(shè)備進(jìn)行用戶動(dòng)態(tài)綁定;
用戶授權(quán)綁定:包括系統(tǒng)管理員賬號或主用戶賬號登錄云平臺(tái),在云平臺(tái)上授權(quán)某些用戶賬號與其權(quán)限內(nèi)的終端設(shè)備或設(shè)備組進(jìn)行綁定,被授權(quán)的用戶賬號登錄子客戶端時(shí)云平臺(tái)下發(fā)該用戶已授權(quán)的終端設(shè)備列表,完成用戶賬號與終端設(shè)備或終端設(shè)備組的用戶授權(quán)綁定;和/或
用戶申請綁定:包括主用戶賬號登錄云平臺(tái),通過云平臺(tái)生成綁定二維碼,用戶賬戶登錄子客戶端識(shí)別綁定二維碼,子客戶端與終端設(shè)備進(jìn)行用戶邀請綁定。
進(jìn)一步地,所述匿名綁定具體包括:對終端設(shè)備進(jìn)行復(fù)位,使終端設(shè)備處于初始狀態(tài),在限定的時(shí)間周期內(nèi),建立終端設(shè)備與主控器的通訊連接關(guān)系,通過終端設(shè)備記錄主控器的唯一標(biāo)示,主客戶端記錄終端設(shè)備唯一標(biāo)示,完成主客戶端與終端設(shè)備的匿名綁定。
進(jìn)一步地,用戶申請綁定過程中生成的綁定二維碼的屬性包括:指定用戶賬號或不指定用戶賬號、有效次數(shù)為單次或多次、有效期、復(fù)制綁定關(guān)系或轉(zhuǎn)移綁定關(guān)系、終端設(shè)備列表;
其中,指定用戶的綁定二維碼只對指定的用戶賬號有效,不指定用戶的綁定二維碼對所有用戶賬號有效;
單次有效綁定二維碼被使用一次后即時(shí)效;
如果主用戶為綁定二維碼設(shè)定了有效期,則超過有效期無論是否使用過,該二維碼即失效;
如果綁定二維碼設(shè)定為復(fù)制綁定關(guān)系,則成功使用此二維碼的用戶會(huì)獲得與主用戶賬號相同的終端設(shè)備列表;
如果綁定二維碼設(shè)定為轉(zhuǎn)移綁定關(guān)系,則成功使用此二維碼的用戶賬號會(huì)獲得與主用戶賬號相同的終端設(shè)備列表,同時(shí)成為新的主用戶賬號,原主用戶賬號則變?yōu)槠胀ㄓ脩糍~號,主用戶賬號選擇部分或全部終端設(shè)備生成綁定二維碼。
本實(shí)施例中,終端設(shè)備初始化過程具體包括:
對終端設(shè)備進(jìn)行復(fù)位操作;
確定在預(yù)定時(shí)間周期內(nèi)客戶端與終端設(shè)備是否匿名綁定成功,
若不成功或綁定超時(shí),則終端設(shè)備恢復(fù)正常工作狀態(tài);
若成功,則原有綁定失效,記錄該綁定至云平臺(tái),用戶靜態(tài)綁定;
云平臺(tái)判斷新綁定的用戶是否是原有綁定用戶,
如果不是,則解除所有原有用戶對此終端設(shè)備的綁定;
如果是,則恢復(fù)原有綁定或讓用戶選擇是否恢復(fù)原有綁定,并將此次完成用戶靜態(tài)綁定的帳號設(shè)置為主用戶。
實(shí)施例4
本實(shí)施例物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置方法,在實(shí)施例3的基礎(chǔ)上,還包括普通用戶賬號登錄主控器或云平臺(tái)解除該普通用戶賬號與終端設(shè)備或終端設(shè)備組的綁定;主用戶賬號或系統(tǒng)管理員賬號登錄云平臺(tái)解除所轄區(qū)用戶賬號與終端設(shè)備或設(shè)備組的綁定。
實(shí)施例5
參見圖2,本實(shí)施例物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置系統(tǒng),包括物聯(lián)網(wǎng)終端設(shè)備、云平臺(tái)和多個(gè)客戶端三部分組成??蛻舳送ㄟ^云平臺(tái)遠(yuǎn)程連接終端設(shè)備,連接建立后,客戶端能夠修改終端設(shè)備的配置。
客戶端通過云平臺(tái)向終端設(shè)備輸出配置更新指令,或客戶直接向終端設(shè)備輸出配置更新指令;
所述終端設(shè)備包括配置更新模塊,用于接收云平臺(tái)輸出的更新配置指令,當(dāng)終端設(shè)備收到配置更新命令,則對該更新命令進(jìn)行解析,更新終端設(shè)備的配置命令隊(duì)列;
所述終端設(shè)備還包括:第一定時(shí)模塊,用于以第一預(yù)定時(shí)間間掃描命令隊(duì)列,修改運(yùn)行環(huán)境;
第二定時(shí)模塊,用于以第二預(yù)定時(shí)間間隔將終端設(shè)備主存儲(chǔ)配置信息同步到外部存儲(chǔ);
第三定時(shí)模塊,用于如果云平臺(tái)與終端設(shè)備連接終端,當(dāng)終端檢測設(shè)備與云平臺(tái)連接恢復(fù)后,以預(yù)定的延時(shí)時(shí)間與云平臺(tái)進(jìn)行同步配置信息。
本實(shí)施例中,所述終端設(shè)備還包括運(yùn)行啟動(dòng)模塊,具體用于當(dāng)終端設(shè)備啟動(dòng)后,檢測終端設(shè)備與云平臺(tái)連接是否正常,
若正常,則終端設(shè)備與云平臺(tái)同步配置信息,批量更新配置信息至外部存儲(chǔ),外部存儲(chǔ)器加載更新后的配置信息至主存儲(chǔ),根據(jù)配置信息生成運(yùn)行環(huán)境,終端進(jìn)入運(yùn)行狀態(tài);
若不正常,則外部存儲(chǔ)器加載原存儲(chǔ)的配置信息至主存儲(chǔ)根據(jù)配置信息生成運(yùn)行環(huán)境,終端進(jìn)入運(yùn)行環(huán)境。
本實(shí)施例中,所述終端設(shè)備還包括配置恢復(fù)模塊,用于當(dāng)終端設(shè)備進(jìn)行硬件升級或更換后,在云平臺(tái)上將硬件升級或更新的新設(shè)備的設(shè)備標(biāo)識(shí)(ID)與原設(shè)備的設(shè)備標(biāo)識(shí)(ID)關(guān)聯(lián)起來,云平臺(tái)收到配置同步請求消息后將下發(fā)全部配置。
本實(shí)施例中,終端設(shè)備包括兩級存儲(chǔ):第一級存儲(chǔ)為主存儲(chǔ),即微客戶端上的內(nèi)存;第二級存儲(chǔ)為外部存儲(chǔ),比如終端設(shè)備自帶的閃存。第一級存儲(chǔ)速度快,可以直接被微客戶端的程序使用,但容量有限。第二級存儲(chǔ)容量大,但需要加載到主存儲(chǔ),才能被微客戶端的程序使用?;谏鲜鱿到y(tǒng)構(gòu)成,終端設(shè)備啟動(dòng)、初始化配置信息及更新配置信息的流程如圖1所示。
啟動(dòng)和初始化階段完成三項(xiàng)主要工作:從外部存儲(chǔ)加載配置信息、與云平臺(tái)進(jìn)行配置同步,以及根據(jù)配置信息生成運(yùn)行環(huán)境。
在終端設(shè)備重啟時(shí),終端設(shè)備需要從外部存儲(chǔ)加載配置信息,外部存儲(chǔ)中的配置信息為終端設(shè)備最近一次正常運(yùn)行情況下的全部配置,因而具有容錯(cuò)能力,即使終端設(shè)備之前突然異常死機(jī),或者與云平臺(tái)連接中斷,外部存儲(chǔ)保存的配置信息都足夠讓終端設(shè)備啟動(dòng),并恢復(fù)到正常狀態(tài)。
配置信息加載完成后,終端設(shè)備嘗試與云平臺(tái)進(jìn)行配置同步。終端設(shè)備向云平臺(tái)發(fā)送配置同步請求,并攜帶外部存儲(chǔ)的配置時(shí)間戳及設(shè)備標(biāo)識(shí)(ID);云平臺(tái)收到請求后,讀取平臺(tái)數(shù)據(jù)庫中該終端設(shè)備的配置信息及時(shí)間戳,與接收到的設(shè)備端時(shí)間戳比較,如果平臺(tái)端時(shí)間戳較新,則下發(fā)配置;如果設(shè)備端時(shí)間戳較新,則要求設(shè)備上傳配置。同步完成后,云平臺(tái)和終端設(shè)備分別更新時(shí)間戳。
配置同步結(jié)束后,終端設(shè)備將最新配置寫入外部存儲(chǔ),并根據(jù)配置信息生成運(yùn)行環(huán)境。
實(shí)施例6
本實(shí)施例物聯(lián)網(wǎng)系統(tǒng)中終端設(shè)備的高效更新配置系統(tǒng),在實(shí)施例5的基礎(chǔ)上,所述終端設(shè)備還包括用于將終端設(shè)備與不同的控制器進(jìn)行綁定的綁定模塊;
所述終端設(shè)備復(fù)位為初始狀態(tài),終端設(shè)備與唯一控制器建立匿名綁定,其中該唯一控制器為主控制器,其他控制器為子控制器;
用戶在云平臺(tái)上注冊用戶賬號,用戶利用用戶賬號在主控制器上登錄,用戶賬號驗(yàn)證通過,終端設(shè)備與該用戶賬號建立用戶靜態(tài)綁定,其中第一個(gè)與主控制器完成用戶靜態(tài)綁定的用戶賬號為終端設(shè)備的主用戶賬號,其他用戶賬戶為普通用戶賬號;
用戶利用主用戶賬號在子控制器上登錄,云平臺(tái)向該子控制器下發(fā)終端設(shè)備列表,子控制器與終端設(shè)備進(jìn)行用戶動(dòng)態(tài)綁定;
用戶利用系統(tǒng)管理員賬號或主用戶賬號登錄云平臺(tái),在云平臺(tái)上授權(quán)某些用戶賬號與其權(quán)限內(nèi)的終端設(shè)備或設(shè)備組進(jìn)行綁定,被授權(quán)的用戶賬號登錄子控制器時(shí)云平臺(tái)下發(fā)該用戶已授權(quán)的終端設(shè)備列表,完成用戶賬號與終端設(shè)備或終端設(shè)備組的用戶授權(quán)綁定;
用戶利用主用戶賬號登錄云平臺(tái),通過云平臺(tái)生成綁定二維碼,用戶利用普通用戶賬戶登錄子控制器識(shí)別綁定二維碼,子控制器與終端設(shè)備進(jìn)行用戶邀請綁定。
本實(shí)施例中,所述終端設(shè)備、控制器均包括匿名綁定模塊,所述終端設(shè)備的匿名綁定模塊,用戶獲取控制器的唯一標(biāo)示;所述控制器的匿名綁定模塊,用于獲取終端設(shè)備的唯一標(biāo)示;終端設(shè)備、控制器分別成功獲取對方的唯一標(biāo)示,也即完成主控制器與終端設(shè)備的匿名綁定。
云平臺(tái)包括綁定二位碼生成模塊,用于根據(jù)用戶指令生成相應(yīng)屬性的綁定二維碼,其中綁定二維碼的屬性包括:指定用戶賬號或不指定用戶賬號、有效次數(shù)為單次或多次、有效期、復(fù)制綁定關(guān)系或轉(zhuǎn)移綁定關(guān)系、終端設(shè)備列表;
其中,指定用戶的綁定二維碼只對指定的用戶賬號有效,不指定用戶的綁定二維碼對所有用戶賬號有效;
單次有效綁定二維碼被使用一次后即時(shí)效;
如果主用戶為綁定二維碼設(shè)定了有效期,則超過有效期無論是否使用過,該二維碼即失效;
如果綁定二維碼設(shè)定為復(fù)制綁定關(guān)系,則成功使用此二維碼的用戶會(huì)獲得與主用戶賬號相同的終端設(shè)備列表;
如果綁定二維碼設(shè)定為轉(zhuǎn)移綁定關(guān)系,則成功使用此二維碼的用戶賬號會(huì)獲得與主用戶賬號相同的終端設(shè)備列表,同時(shí)成為新的主用戶賬號,原主用戶賬號則變?yōu)槠胀ㄓ脩糍~號,主用戶賬號選擇部分或全部終端設(shè)備生成綁定二維碼。
本實(shí)施例中,所述云平臺(tái)還包括:用戶賬戶注冊/解除模塊,用于普通用戶進(jìn)行用戶賬戶的注冊和解除,以及主用戶賬號或系統(tǒng)管理員賬號所轄區(qū)用戶賬號與終端設(shè)備或設(shè)備組綁定的解除
上述各實(shí)施例中:在終端設(shè)備進(jìn)行硬件升級或更換的情況下,新設(shè)備無需重新配置,只需要在云平臺(tái)上將新設(shè)備的設(shè)備標(biāo)識(shí)(ID)與原設(shè)備的設(shè)備標(biāo)識(shí)(ID)關(guān)聯(lián)起來即可。當(dāng)新設(shè)備啟動(dòng)時(shí),云平臺(tái)收到配置同步請求消息后將下發(fā)全部配置,因?yàn)槠脚_(tái)端的時(shí)間戳必然比設(shè)備端新。
上述同步機(jī)制,可確保系統(tǒng)具有糾錯(cuò)能力,即使終端設(shè)備與云平臺(tái)失去連接,并各自對配置做過更新,在下次設(shè)備重啟并連接建立后,終端設(shè)備與云平臺(tái)的配置能夠一致。
運(yùn)行和配置更新階段主要完成:配置更新命令的接收和處理以及三個(gè)定時(shí)操作。配置更新命令遵照Restful規(guī)范,包括讀取(GET)、新增(POST)、修改(PUT)和刪除(DELETE)四種操作指令。一個(gè)操作指令可以包括一項(xiàng)或者多項(xiàng)配置信息。每項(xiàng)配置信息的結(jié)構(gòu)如下圖所示:
結(jié)構(gòu)體的前三個(gè)數(shù)據(jù)為標(biāo)記位,分別為操作指令、已執(zhí)行標(biāo)記和保存標(biāo)記。
操作指令的定義為:enum OP_FLAG{GET,POST,PUT,DELETE};
保存標(biāo)記表示該配置是否已經(jīng)在外部存儲(chǔ)保存,其定義為:
enum FLASH_FLAG{UNSAVED,SAVED};
已執(zhí)行標(biāo)記表示該配置是否已經(jīng)在運(yùn)行環(huán)境中生效,其定義為:
enum RUN_FLAG{UNEXECUTED,EXECUTED};
三個(gè)標(biāo)記位后面是具體的配置項(xiàng)ID和配置信息,配置項(xiàng)ID類型為無符號整數(shù),可以表示最多65535個(gè)配置項(xiàng)。
上述配置信息結(jié)構(gòu),在消息和接口中以JSON格式表示,在程序內(nèi)部轉(zhuǎn)化為結(jié)構(gòu)體保存在配置命令隊(duì)列中。
配置命令隊(duì)列是程序在微客戶端的主存儲(chǔ)器中分配的一個(gè)鏈表數(shù)據(jù)結(jié)構(gòu),配置命令隊(duì)列的最大長度根據(jù)主存儲(chǔ)器的可用空間設(shè)置,例如:25%的可用空間。
當(dāng)終端設(shè)備收到一個(gè)配置更新命令:
1.如果是讀取(GET)命令,則在配置命令隊(duì)列中增加一條記錄,并設(shè)置標(biāo)記位:
op_flag=GET;executed=UNEXECUTED;saved=SAVED;
2.如果是新增(POST)命令,則在配置命令隊(duì)列中增加一條記錄,并設(shè)置標(biāo)記位:
op_flag=POST;executed=UNEXECUTED;saved=UNSAVED;
如果是刪除(DELETE)命令,則掃描主存儲(chǔ)中的配置命令隊(duì)列,如果找到相同配置項(xiàng)ID的記錄,則用收到的信息替換原有信息;如果沒有找到,則增加一條記錄。而后設(shè)置標(biāo)記位:
op_flag=DELETE;executed=UNEXECUTED;saved=UNSAVED;
3.如果是修改(PUT)命令,則掃描主存儲(chǔ)中的配置命令隊(duì)列,如果找到相同配置項(xiàng)ID的記錄,則用收到的信息替換原有信息;如果沒有找到,則增加一條記錄。而后設(shè)置標(biāo)記位:
op_flag=PUT;executed=UNEXECUTED;saved=UNSAVED;
4.如果配置命令隊(duì)列達(dá)到最大長度,則從配置命令隊(duì)列開始查找第一條已執(zhí)行、且已保存(executed==EXECUTED&&saved==SAVED)的記錄,將其從隊(duì)列中刪除。
上述隊(duì)列處理流程能夠避免在極短時(shí)間內(nèi)對某個(gè)配置項(xiàng)的重復(fù)更新。
定時(shí)操作1:定時(shí)掃描主存儲(chǔ)中的配置命令隊(duì)列,尋找executed標(biāo)記為UNEXECUTED的配置命令、執(zhí)行相應(yīng)操作,修改運(yùn)行環(huán)境。定時(shí)操作周期為毫秒級(如:50ms),既能保證命令被及時(shí)執(zhí)行,也不會(huì)過多占用微客戶端的處理資源。每條記錄執(zhí)行完成后將記錄的executed標(biāo)記設(shè)為已執(zhí)行(EXECUTED)。
定時(shí)操作2:定時(shí)掃描主存儲(chǔ)中的配置命令隊(duì)列,尋找saved標(biāo)記為UNSAVED的配置命令,將主存儲(chǔ)配置信息保存到外部存儲(chǔ)。定時(shí)操作周期為秒級(如:5秒),以避免對外部存儲(chǔ)的頻繁讀寫。每條記錄保持完畢后將記錄的saved標(biāo)記設(shè)為已執(zhí)行(SAVED)。
快速讀取(緩存機(jī)制):當(dāng)處理讀取(GET)命令時(shí),或者程序其他部分需要獲取沒有實(shí)例化的特定配置信息時(shí),系統(tǒng)將根據(jù)配置項(xiàng)ID,首先檢索配置命令隊(duì)列,如果找到則直接返回配置信息。如果沒有找到,則訪問外部存儲(chǔ)、提取配置信息。因此,在讀取配置信息時(shí),配置命令隊(duì)列相當(dāng)于快速緩存,由于配置命令隊(duì)列保存的數(shù)據(jù)都是最近更新的,因此該緩存機(jī)制具有較高的讀取命中率。
定時(shí)操作3:如果終端設(shè)備與云平臺(tái)的連接中斷,當(dāng)終端設(shè)備檢測到與云平臺(tái)連接恢復(fù)后,會(huì)主動(dòng)執(zhí)行配置信息同步操作,同步消息流程與“配置同步消息流程”圖示和描述一致。云平臺(tái)連接恢復(fù)后通常需要處理很多積壓的關(guān)鍵業(yè)務(wù),因此,配置信息同步操作被設(shè)置為延遲定時(shí)操作,延遲時(shí)間為分鐘級(如:120秒),這樣既可以避免與關(guān)鍵業(yè)務(wù)處理搶占資源,又能夠避免網(wǎng)絡(luò)頻繁閃斷引發(fā)短時(shí)間內(nèi)多次同步。
一款智能燈具產(chǎn)品,微客戶端有16K字節(jié)主存儲(chǔ)空間,以及512K外部閃存。智能燈具與云平臺(tái)連接,同時(shí)也可以被本地的遙控器和墻面開關(guān)控制。根據(jù)本專利的方法,微客戶端為配置命令隊(duì)列分配4K字節(jié)空間,假定每項(xiàng)配置信息的平均長度為32字節(jié),則配置命令隊(duì)列最多可保存128條配置。
例如:客戶端需要讀取某項(xiàng)配置,智能燈具收到命令后查詢配置命令隊(duì)列,找到后返回結(jié)果;如果沒有找到,則訪問外部閃存獲取結(jié)果。
例如:客戶端通過云平臺(tái)更新某項(xiàng)配置,智能燈具收到命令后查詢配置命令隊(duì)列,找到后更新隊(duì)列中的記錄;如果沒有找到,則在隊(duì)列中增加一條記錄。約50ms后,定時(shí)操作1執(zhí)行,更新的配置項(xiàng)生效;約5秒后,定時(shí)操作2執(zhí)行,該配置項(xiàng)被寫入外部存儲(chǔ)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,并不用于限制本發(fā)明,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和變型,這些改進(jìn)和變型也應(yīng)視為本發(fā)明的保護(hù)范圍。