一、環(huán)境準(zhǔn)備
我們首先需要準(zhǔn)備如下插件
鴻蒙開(kāi)發(fā)插件:
OHOS_MQTT
(一)插件手動(dòng)安裝部分
1、OHOS_MQTT
首先要在項(xiàng)目根目錄下的oh-package.json5 文件下,添加如下代碼。默認(rèn)dependencies為空。
"dependencies": { "@ohos/mqtt": "2.0.5-rc.0" }
二、架構(gòu)設(shè)計(jì)
1、總體架構(gòu)
首先需要注意,模塊要高度解耦。對(duì)于采集任務(wù)模塊只負(fù)責(zé)下達(dá)任務(wù)。二具體怎么通信,跟誰(shuí)通信,是通信隊(duì)列的問(wèn)題。存數(shù)據(jù)和存日志也和采集任務(wù)模塊無(wú)關(guān)。甚至說(shuō)日志任務(wù)中一旦要向數(shù)據(jù)庫(kù)中寫入日志,寫入部分也和日志任務(wù)無(wú)關(guān)。都有各自的子模塊以及統(tǒng)一調(diào)度總線的接口完成。
這個(gè)理念來(lái)自于模塊化設(shè)計(jì)。之前都用于C++的可插拔模塊庫(kù)?,F(xiàn)在第一次應(yīng)用于鴻蒙操作系統(tǒng)上。但是慶幸的是鴻蒙它本身就是高度解耦的模塊化設(shè)計(jì)。它的設(shè)計(jì)從架構(gòu)上就偏向于這種解耦設(shè)計(jì)。相信真正寫起來(lái)不會(huì)太復(fù)雜。尤其是這個(gè)任務(wù)調(diào)度總線在C++中要自己處理池,信號(hào),一步攜程,定時(shí)器。現(xiàn)在鴻蒙的任務(wù)管理模塊統(tǒng)統(tǒng)給你寫好了,這簡(jiǎn)直是節(jié)省了一大票時(shí)間。
這是之前的任務(wù)調(diào)度中硬件部分。其實(shí)從總的結(jié)構(gòu)上來(lái)說(shuō)都差不多。首先由C++部分寫好直接接口。比如說(shuō)串口,SPI,I2C的讀取。
但是注意的是,為了解耦,在C++中請(qǐng)不要寫任何任務(wù)調(diào)度,邏輯信息。C++只是為了調(diào)用底層接口。具體業(yè)務(wù)邏輯由上層鴻蒙代碼全權(quán)代理。
從邏輯上來(lái)講,通信調(diào)度還應(yīng)該包含加密,訪問(wèn)控制,以及調(diào)試接口。但是來(lái)不及做,這部分就先做一個(gè)簡(jiǎn)略。
2、采集設(shè)計(jì)
從末端設(shè)計(jì)來(lái)講,末端采集任務(wù)應(yīng)該只負(fù)責(zé)采集上傳。此刻飛騰派充當(dāng)一個(gè)邊緣計(jì)算終端的任務(wù)。高性能單片機(jī)的成本和開(kāi)發(fā)難度會(huì)飆升。所以為了單片機(jī)采集任務(wù)的穩(wěn)定和成本,推薦直接采用廉價(jià)的20P或者32P的單片機(jī)做采集。
3、上層任務(wù)
理論上完整的設(shè)計(jì)必須包括一個(gè)頂層的服務(wù)。否則你的東西給誰(shuí)看呢。這里可以直接用jetlinks等平臺(tái)。畢竟他們都做好了。但似乎記住這些開(kāi)源的嵌入式平臺(tái)它本身就承擔(dān)一個(gè)數(shù)據(jù)接收河轉(zhuǎn)接的功能。很多時(shí)候存儲(chǔ)和告警都算是額外的付費(fèi)功能。
更何況上層任務(wù)怎么可能僅僅是一個(gè)存儲(chǔ)呢。
作為一個(gè)完善的上層任務(wù),要有基本的存儲(chǔ),用戶接口,設(shè)備接口,甚至是機(jī)群接口。
你甚至還要有給客戶展示的接口。有設(shè)備的管理接口。
復(fù)雜的甚至還涉及到單點(diǎn)登錄,日志管理。畢竟你有時(shí)候日志量是驚人的。
更何況這里還是涉及到一個(gè)問(wèn)題,那就是加密平臺(tái)。任何高安全平臺(tái)都要有自己獨(dú)立的證書自動(dòng)化授權(quán)平臺(tái)。
同時(shí)這里要說(shuō)明一件事情,對(duì)于安全,要遵守一個(gè)守則。保密人才》保密制度》保密規(guī)則》保密算法
為什么保密人才最重要。因?yàn)橐坏┯袀€(gè)內(nèi)鬼你的防火墻形同虛設(shè)。一旦物理機(jī)層面被突破,你的任何安保,什么區(qū)塊鏈,什么證書,什么加密芯片,都是笑話。最簡(jiǎn)單的黑客就是拔網(wǎng)線。不管羞不羞恥,都有效。真打起來(lái),沒(méi)人在乎羞不羞恥,只在乎有不有效。
什么是保密制度?那就是從政策上杜絕泄密,比如說(shuō)密級(jí)分層。它在保密人才下面是因?yàn)槟愕母笨偤图夹g(shù)總監(jiān),安保經(jīng)理同時(shí)背叛你,啥規(guī)矩都不好使。但是人總不能這么背,大部分時(shí)候大家都是遵守規(guī)則的。
然而,一個(gè)人把一個(gè)充滿病毒的U盤扔你服務(wù)器上,啥保密算法都沒(méi)用。一旦突破了物理機(jī)層面,一切技術(shù)都是徒勞。你能保佑的僅僅是它不要入侵級(jí)別很高的物理機(jī)。保佑你的數(shù)據(jù)隔離做的很優(yōu)秀。這當(dāng)然也是政企最常用的手段。
只與什么是保密規(guī)則呢。非對(duì)稱加密相對(duì)于對(duì)稱加密就是一種規(guī)則上的提升。當(dāng)你的人和你的保密策略非常完善的時(shí)候,此時(shí)大部分事情還是應(yīng)該交給電腦。畢竟它任勞任怨還便宜。
從原理上保密。也就是你有一個(gè)完善的加密鏈,最大程度上防止你被強(qiáng)破。
最后就是算法了。有人問(wèn)證書加密是不是絕對(duì)安全。其實(shí)證書加密并非絕對(duì)安全。甚至說(shuō)即使是這樣,你大部分時(shí)候都不可能用證書加密通信,否則你的通信會(huì)癱瘓的。
有人會(huì)覺(jué)得奇怪,不對(duì)啊,我天天HTTPS。當(dāng)然,你們的證書通信其實(shí)只是交換了一個(gè)對(duì)稱密碼。真正數(shù)據(jù)傳送其實(shí)還是交給了常規(guī)的對(duì)稱加密。之是經(jīng)常換秘鑰罷了。
審核編輯 黃宇
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2900文章
44062瀏覽量
370240 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2302瀏覽量
42689
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論