一、环境准备
我们首先需要准备如下插件
鸿蒙开发插件:
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。当然,你们的证书通信其实只是交换了一个对称密码。真正数据传送其实还是交给了常规的对称加密。之是经常换秘钥罢了。
审核编辑 黄宇
-
物联网
+关注
关注
2909文章
44557浏览量
372745 -
鸿蒙
+关注
关注
57文章
2339浏览量
42804
发布评论请先 登录
相关推荐
评论