耦合层:撮合物联网的理论与实践牵手的“月老”
摘要:理论与实践可以当作两个模块,本章内容就是为大家在这两个模块中间添加一个耦合层,让大家更容易将理论知识和实际开发联系到一块。
在编写一个框架时,脑海中一直在想着“如何写才能尽可能的去耦合?”去了耦合之后的模块在可移植性、可拓展性等方面都有较大的提升,模块与模块之间的联系性就降低了,这在框架中是一件好事,但是在学习理论与实践未必是一件好事。
大脑是一个很神奇的东西,直接给它一些孤立的点,比如西瓜、报纸、衣服、手机这几个词,大脑一下子是无法记住的,但是给它一张网,例如我在边吃西瓜边看报纸,突然手机响了,我吓了一跳,把衣服弄脏了,这样是不是好记多了,学习一个知识也是这样,最容易学会的方法就是找到正在学习的知识和你已经具备的知识之间的联系,本章的耦合层,就是给大家找一个理论与实践之间的联系。
理论与实践可以当作两个模块,本章内容就是为大家在这两个模块中间添加一个耦合层,让大家更容易将理论知识和实际开发联系到一块。
物联网和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加密等,保障了物联网设备节点的数据安全。
设备接入服务中,可以配置规则,数据转发规则是将符合特定规则的数据进行转发,起到了数据过滤的作用;设备联动规则是M2M的实例化,比如可以配置当温度大于30度时,启动空调或电风扇,从而实现设备之间的互联和智能化控制。
我们在研发一个产品时,面临的痛点是真实设备传输数据有太多的不可控因素和南向开发与北向开发无法并行进行,设备接入服务中针对这两个个痛点提供了“虚拟设备”以及“在线调试功能”,极大的提升了开发效率,缩短了产品研发周期。
在LiteOS操作系统中深度定制了一系列可在资源受限设备中使用的通讯协议,例如MQTT、LWM2M等,真正做到让研发人员可以集中精力关心产品逻辑。
三、是智慧?还是智能?(数据分析服务、应用开发服务)
数据分析服务基于物联网资产模型,整合物联网数据集成,清洗,存储,分析,可视化,为开发者提供一站式服务,降低开发门槛,缩短开发周期,快速实现物联网数据价值变现。
将感知层设备的数据先通过存储服务按天或者按大小存储起来,通过数据分析服务进行分析,经常用于预测,比如淘宝,可以通过分析你搜索的关键词之类的信息,从而推算出你需要购买的商品,给你进行推送。所以在今天这个世界,最值钱的东西是“数据”。
IoT Studio应用开发服务基于物联网平台开放给北向应用的接口能力,配合华为云其他产品,提供第三方应用推荐、Web在线开发和微服务开发等功能帮助快速构建物联网应用。
通过该服务可以快速开发一款App用于为你的各类物联网节点提供图形化控制、数据展示等功能。
目前大部分的技术只能做到智能,跟随预先设定的规则让设备之间产生联动,相互控制,通过后面的机器学习等等技术慢慢的就能让设备被变得“智慧”,会自己去学习用户的习惯等等,让用户处于一个舒适的环境。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏
摘要:通过把所需建立的工具库做成云容器化应用,用CCE引擎,通过API网关调用云容器引擎中的容器应用。不仅顺应了云原生的发展趋势,还能随时弹性扩容,满足公司规模化发展的需求。 公司开完年中会后,大家的工作都开始恢复正常,我们也继续按部就班地撸代码(写bug)~偶尔透过办公室的玻璃看到老大跟老板在喝茶,感觉自从上次我影响了公司的战略方向,老板找老大“聊天”的次数越来越多了,看起来像是在“密谋”什么。 正想着呢,老大突然转头看向我,四目相对还是有些尴尬的,更尴尬的是老大示意我过去。 老大说:“公司想成立一个技术委员会,我挂名主席,你担任副主席,负责管理,核心的职责是沉淀公司的技术资产,提升所有研发人员的能力,你去想想该怎么行动。” “啥?我这就是技术委员会副主席了?沉淀公司技术资产...这事儿该咋整呢?啥叫技术资产?”回到座位以后,我仿佛又变回了曾经那个会怦然心动的少年,随手点开硬盘,看到了我这么多年积累下来的资源。 在我的硬盘里存储了这么多年来写过的各种程序、应用、工具,啥叫技术资产,这就叫技术资产呀,如果把公司存储的资料和大家硬盘里的宝藏都拿出来,做成一个可复用且随时可调用的工具库,那...
- 下一篇
深入理解JavaScript函数式编程
❝ 函数式编程的思维方式是把现实世界的事物和事物之间的联系抽象到程序世界(对运算过程进行抽象). (本篇文章内容输出来源:《拉钩教育大前端训练营》部分参考书籍:《JavaScript忍者秘籍》《你不知道的JavaScript 卷一》关于函数部分的讲解 进行总结) ❞ 本章重点掌握Javascript中的高阶函数知识以及函数式编程. 为什么要学习函数式编程? vue/react 开始拥抱函数式编程 函数式编程可以抛弃this 打包过程中可以更好的利用tree shaking过滤无用的代码 方便测试、方便并行处理 有很多库可以帮助我们进行函数式开发:loadsh、underscore、ramda 「什么是函数式编程」 什么是函数式编程(Functional Programming, FP):FP 是编程范式之一.(还有面向过程编程、面向对象编程) 面向对象编程的思维方式: 把现实世界中的事物抽象成程序世界中的类和对象,通过封装、继承和多态来演示事物事件的联系 函数式编程的思维方式是把现实世界的事物和事物之间的联系抽象到程序世界(对运算过程进行抽象). 程序的本质:根据输入通过某种运算获得相...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装