耦合层:撮合物联网的理论与实践牵手的“月老”

摘要:理论与实践可以当作两个模块,本章内容就是为大家在这两个模块中间添加一个耦合层,让大家更容易将理论知识和实际开发联系到一块。

在编写一个框架时,脑海中一直在想着“如何写才能尽可能的去耦合?”去了耦合之后的模块在可移植性、可拓展性等方面都有较大的提升,模块与模块之间的联系性就降低了,这在框架中是一件好事,但是在学习理论与实践未必是一件好事。

大脑是一个很神奇的东西,直接给它一些孤立的点,比如西瓜、报纸、衣服、手机这几个词,大脑一下子是无法记住的,但是给它一张网,例如我在边吃西瓜边看报纸,突然手机响了,我吓了一跳,把衣服弄脏了,这样是不是好记多了,学习一个知识也是这样,最容易学会的方法就是找到正在学习的知识和你已经具备的知识之间的联系,本章的耦合层,就是给大家找一个理论与实践之间的联系。

理论与实践可以当作两个模块,本章内容就是为大家在这两个模块中间添加一个耦合层,让大家更容易将理论知识和实际开发联系到一块。

物联网和TCP/IP一样,都是分层的,常常将物联网分为感知层、传输层、接入层、应用层,还能更细分,可能你已经清清楚楚记得每一层是什么?作用是什么?但是在实际开发中,看到华为物联网中那么多的服务,已经头昏眼花了,无法马上得知某个服务是对应某一层的。别担心,看完本章你就能深刻理解每种服务及对应的每一层,对物联网架构分析做到庖丁解牛,对物联网开发做到游刃有余。

一、俯看全局

在教授他人一个知识的时候,最先教授的应该是全部的一个概括,而不是孤立的一个点,就好比我们看一份代码,如果你直接看.c文件中对函数的实现,那将痛苦不堪,看了前面完了后面,正确的做法是找一个Demo,看看被人如何使用这份代码的API,再去看看这份代码的.h文件,研究其API的作用,最后才看这些API分别是如何实现的。

先复习一下物联网架构,如下图:

耦合层:撮合物联网的理论与实践牵手的“月老”

每一层都是为自己上层提供支持,封装下层的数据,各大物联网云厂商几乎都遵循该架构图来设计自己的物联网体系,每一层对应不同的产品和服务。

现在我以一个智能插座的例子,给大家讲解一下每层的作用,这是一个WIFI版本的智能插座,自身并不具备接入核心网的能力,需要通过网关进行接入,智能插座主要的功能是根据手机App下发的指令/定时来控制负载的开或关、检测当前负载的功率通过手机App显示,所以其属于“感知层”的设备。

网关可以是家里面的无线路由器、手机热点等等,关于网关的定义是:连接两个或两个以上复杂网络的设备。智能插座的WIFI网络可以称为个人局域网,路由器(网关)可以将个人局域网和广域网(核心网)连接在一起,使不同网络间的设备和产品能相互通讯,所以网关处于“网络层”。

数据到了广域网之后经过多个运营商的核心交换机等网络设备的转发,最终发送到“平台层”。平台层对应的是华为云“IoTDA设备接入”服务,将数据处理后转发给“应用层”,应用层最终通过手机App等软件将命令下发和数据上报接口以图形化的方式给用户展现。

二、万物互联(设备接入服务)

华为云物联网中对应平台层的服务为:IoTDA设备接入服务和IoTDM设备管理服务。

耦合层:撮合物联网的理论与实践牵手的“月老”

上述服务主要负责将不同设备(NB-IoT、WIFI模组、2/3/4G模组等)、不同协议(CoAP、LWM2M、MQTT、HTTPS等)的数据封装为JSON格式的数据通过HTTPS接口给到应用层。

有的设备原生并不支持JSON数据格式,而是支持二进制码流,我们可以通过开发编解码插件,在平台层就将二进制码流转换为JSON格式的数据。应用层看到的所有数据的格式都是一致的,大大提高了开发效率。

设备接入服务还提供了很多安全机制,例如DTLS加密等,保障了物联网设备节点的数据安全。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfpps.html