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