摘 要 隨著人工智能的日臻成熟,越來越多的技術(shù)從實驗室走向市場,逐步實現(xiàn)產(chǎn)品化、工業(yè)化。而計算設(shè)備小型化、移動化也是當下一大趨勢,這些分布式的智能終端有著強大的邊緣計算能力,然而,支撐這些設(shè)備運算的軟件需要不定期地升級、更新,以便更好地提供服務(wù)。由于這些設(shè)備的地域分布、部署位置等原因,如果人為升級,將會非常費時費力,十分不便。本文提出一種基于HFS的分布式智能終端升級系統(tǒng),采用C/S架構(gòu),使用MQTT協(xié)議提供通信支持,實現(xiàn)分布式智能終端的在線升級。
關(guān)鍵詞 MQTT;HFS;在線升級
1背景及現(xiàn)狀
智能終端一般具有比較強大的計算、通信能力,可對實時采集的不同信號源進行自主分析、并與服務(wù)器主機進行通信。支撐起這些功能的是一些基于移動端架構(gòu)的軟件,根據(jù)軟件架構(gòu)的不同,一般可分為安卓、IOS架構(gòu),以及arm架構(gòu),X86架構(gòu)由于無法滿足一些工業(yè)場景需求,一般用作服務(wù)器端軟件構(gòu)架。隨著神經(jīng)網(wǎng)絡(luò)的輕量化,許多支持安卓、IOS架構(gòu)的硬件平臺可實現(xiàn)一些人工智能技術(shù)的落地,如人臉識別技術(shù),而使用這一軟件構(gòu)架的終端設(shè)備,由于軟件構(gòu)架中存在系統(tǒng)固件升級的流程策略,程序包,使版本升級工作變得十分便捷,只需按照相關(guān)步驟進行,即可完成程序包的推送、更新,就像我們手機中的app更新一樣,成熟穩(wěn)定[1]。
還有很多的智能終端,為了搭載計算能力更加強大的設(shè)備,采用arm軟件架構(gòu),雖然arm架構(gòu)的設(shè)備與安卓、IOS設(shè)備在性能上差距不是非常明顯,但其穩(wěn)定性、經(jīng)濟性上的優(yōu)勢,在很多分布式智能場景中還是終端軟件構(gòu)架的首選。然而,這些arm架構(gòu)設(shè)備的軟件升級由于沒有系統(tǒng)自帶的升級策略、程序包,給應(yīng)用軟件的升級帶來極大的不便,這就需要用戶自己通過現(xiàn)有網(wǎng)絡(luò)通信,結(jié)合自身實際,自主開發(fā)一套分布式智能終端在線升級系統(tǒng)。
2基于HFS的分布式智能終端在線升級系統(tǒng)
在基于arm架構(gòu)的實際項目中,終端上的應(yīng)用軟件是通過python語言編寫的,以腳本方式運行。由于終端分布在不同的位置,每次應(yīng)用軟件升級如果人工執(zhí)行的話,費時費力,并且不易維護軟件版本,效率低下。通過采用C/S架構(gòu)模式的基于HFS的分布式智能終端升級系統(tǒng),借助HFS成熟的文件傳輸體系,以及mqtt通信,實現(xiàn)了分布式終端的狀態(tài)監(jiān)測、程序文件傳輸、終端內(nèi)部升級等一套完整的在線升級流程[2]。
2.1 基本概念
HFS: Http File Server,是基于http協(xié)議的文件服務(wù)器,比FTP簡單,只需一句命令即可將指定文件夾設(shè)置為文件服務(wù)器,其他機器訪問指定端口即可訪問該文件夾,選擇其下的不同文件可進行下載。
MQTT:Message Queuing Telemetry Transport,消息隊列遙測傳輸,是ISO 標準(ISO/IEC PRF 20922)下基于發(fā)布/訂閱范式、客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸?shù)南f(xié)議,它工作在TCP/IP協(xié)議族上,為硬件性能低下的遠程設(shè)備以及網(wǎng)絡(luò)狀況糟糕的情況下而設(shè)計,具有輕量、簡單、開放和易于實現(xiàn)等特點。
2.2 系統(tǒng)構(gòu)架
系統(tǒng)采用C/S(客戶端/服務(wù)器)構(gòu)架模式,其中,服務(wù)器主要進行HFS服務(wù)器的生成,以及升級包的維護,客戶端主要通過MQTT協(xié)議發(fā)送狀態(tài)信息,服務(wù)器通過HTPP協(xié)議將升級包的相關(guān)信息(地址、校驗值等)發(fā)送給客戶端,客戶端接收并下載、校驗后,將下載狀態(tài)反饋服務(wù)器,完成升級包的分發(fā),客戶端再通過程序升級策略進行升級包的部署。系統(tǒng)構(gòu)架圖如圖1。系統(tǒng)接口信息表如表1。
2.3 升級包的分發(fā)
升級包的分發(fā)是升級工作的關(guān)鍵,只有升級包能夠從服務(wù)器下載到指定終端,才能進一步進行系統(tǒng)的升級。與普通的IP地址點到點傳輸不同,MQTT協(xié)議通過訂閱/發(fā)布消息模式,無須具體知道客戶端IP地址,只需根據(jù)訂閱信息即可找到客戶端,這樣一來,極大方便了相關(guān)信息的傳送與交互,只要發(fā)送、接收的是同一主題的訂閱信息,即可形成消息傳輸。在公網(wǎng)通信中,獲取單機公網(wǎng)IP地址有時不是那么容易,而采用MQTT協(xié)議進行通信,提高了效率和準確度。
升級包的分發(fā)分為服務(wù)器端和服務(wù)器、智能終端交互兩部分。服務(wù)器負責HFS服務(wù)器的搭建以及升級包的維護,智能終端主要負責實時上報自身狀態(tài),主動連接服務(wù)器,一旦接收到服務(wù)器下發(fā)的升級包信息,立即下載,并通過校驗,反饋下載結(jié)果,形成與服務(wù)器的交互[3]。
服務(wù)器端操作主要步驟可分為:
(1)HFS服務(wù)器端配置并啟動服務(wù),生成指定目錄下的http server。
(2)升級包維護,選擇升級包并上傳到HFS服務(wù)器,為下發(fā)做準備。
(3)文件MD5值計算,提供通信校驗。
服務(wù)器、智能終端的交互,是升級包下載的關(guān)鍵,通過MQTT的信息交互,完成下載工作的準備,再讓智能終端通過升級包地址下載,并通過計算MD5值與源升級包進行校驗,完成下載過程。整體過程如圖2,可概括如下。
服務(wù)器:
(1)通過MQTT協(xié)議實時接收智能終端發(fā)出的各種信息,包括連接信息、下載反饋信息等。
(2)選擇能夠連接的智能終端,向其發(fā)送升級包地址、版本、MD5等信息。
智能終端:
(1)實時接收服務(wù)器下發(fā)的升級包信息,包括地址、版本等。
(2)按照接收到的地址下載升級包,保存并計算MD5值。
(3)MD5校驗后,將下載結(jié)果發(fā)送服務(wù)器。
(4)維護版本配置文件。為執(zhí)行升級操作,創(chuàng)建一個版本配置文件,每次下載成功后,將“最新版本”字段維護為下載到的升級包版本。
(5)根據(jù)升級包替代策略,重新啟動程序。
圖2 服務(wù)器、智能終端交互流程圖
2.3 智能終端自主升級
每次智能終端上電開機,系統(tǒng)都要自動讀取版本配置文件,通過比較“當前版本”與“最新版本”,并查看是否存在最新版本升級包,來執(zhí)行升級包的替換工作。主要流程可概括以下步驟:
(1)每次開機讀取配置文件,比較版本。
(2)若當前版本比下載的升級包版本小,則首先查看下載保存路徑中是否有最新版升級包。
(3)若存在最新升級包,則將升級包拷貝到主程序運行目錄下,解壓,并重命名文件,使之替換原有主程序。
(4)啟動主程序,若能夠正常啟動,則替換成功;若啟動異常,則在主程序運行目錄下刪除升級包,再啟動原有主程序[4]。
3結(jié)束語
智能終端越來越廣泛的應(yīng)用,給我們的工作、生活帶來了極大便利,也讓人工智能技術(shù)在不同領(lǐng)域中落地開花,承載這些技術(shù)的軟件需要不斷升級更新,而為了滿足場景需要,這些智能終端通常都部署在不同的位置,這樣的分布式部署給軟件的升級帶來極大不便,雖然基于安卓系統(tǒng)的軟件構(gòu)架能夠滿足OTA遠程升級的要求,但是同樣廣泛應(yīng)用的嵌入式軟件構(gòu)架的終端沒有現(xiàn)成的升級策略及架構(gòu),這使得很多情況下,需要根據(jù)自身項目實際,自主開發(fā)一套適應(yīng)項目的分布式升級系統(tǒng)。
本文描述的分布式智能終端升級系統(tǒng),是面向arm架構(gòu)、嵌入式軟件的一種分布式升級系統(tǒng),它采用C/S的模式,通過MQTT通信協(xié)議傳輸狀態(tài)信息,服務(wù)器端可根據(jù)狀態(tài)信息選擇向指定終端發(fā)布升級包的下載信息,再通過服務(wù)器生成HFS服務(wù),智能終端可自動下載升級包,并進行MD5校驗,通過后完成升級包的下載。在每次終端上電啟動時,通過讀取配置文件信息,執(zhí)行主程序升級包的替換策略,保證了主程序的及時更新,極大提高了升級效率,壓縮了成本,有著極大的應(yīng)用前景和價值。同時,還有幾點不足,可在后續(xù)項目工作中不斷提高,讓該系統(tǒng)在實際應(yīng)用中更加靈活、有效。
(1)主動式升級包分發(fā)機制?,F(xiàn)有系統(tǒng)是服務(wù)器通過查看終端在線情況,人為選擇向指定終端分發(fā)升級包,屬于被動行為,后續(xù)系統(tǒng)可向終端主動上報程序版本,服務(wù)器端有升級包更新時,自動向終端分發(fā)升級包的方向改進,這樣可減少遺漏,也把升級包分發(fā)的策略交給服務(wù)器端,減輕了終端的計算量,讓有限的計算資源在主業(yè)務(wù)中起到最大作用。
(2)斷點續(xù)傳機制。在實際應(yīng)用中,很多情況下是都是基于公網(wǎng)通信的,通信質(zhì)量有時受基站信號影響不是很好,斷網(wǎng)現(xiàn)象時常發(fā)生,需要在網(wǎng)絡(luò)斷點續(xù)傳、通信重聯(lián)等機制上不斷改進完善,為升級工作提供有力保障[5]。
以上,是針對本系統(tǒng)的全面論述,在今后的工作中,還會根據(jù)應(yīng)用中的不足不斷改善,以做到更好、更高效地實現(xiàn)人工智能技術(shù)的落地。
參考文獻
[1] 張航.MQTT協(xié)議擴展與協(xié)議優(yōu)化的研究與應(yīng)用[D].北京:北京郵電大學(xué),2019.
[2] 李娜.MQTT數(shù)據(jù)交換協(xié)議的分析與優(yōu)化[J].網(wǎng)絡(luò)空間安全,2019 (9):49-58.
[3] 徐健.基于Winhex的HFS+文件提取方法研究[J].計算機時代,2019(8):59-62.
[4] 施慶國,尚海立,馬婕,等.智能網(wǎng)聯(lián)汽車的OTA升級方案[C].中國汽車工程學(xué)會.2018中國汽車工程學(xué)會年會論文集.北京:北京汽車股份有限公司汽車研究院,2018:49-55.
[5] 魯亞凱.基于Linux系統(tǒng)智能電視OTA差分升級模式的改進與實現(xiàn)[D].重慶:重慶郵電大學(xué),2018.
作者簡介
王經(jīng)緯(1987-),男,河北滄州人;學(xué)歷:碩士研究生學(xué)歷,職稱:工程師,現(xiàn)就職單位:中車研究院,研究方向:智能軟件研究。