0、写在前面的话 坦白来讲,我对物联网行业沉淀较少。 做软件出身的我,之前也学过一些单片机的知识,还有射频,ZigBee诸如此类的无线传输协议,因为那段时间“智能家居”火了,年少无知的我也跟着疯了,然后就没有然后了…… 回想自己以前对技术的狂热,还是值得肯定的,但是那种近乎盲目的追求,就有点过犹不及了。 总之,学到的新技术或者新概念,需要及时去实践,去落地,长时间的搁置会导致最终一场空,这种到头来一无所有的感受,对自己的积极性也是一种打击。 1、背景介绍 如今,随着公司业务的不断扩大,有一批设备需要对接到我们的平台里,所以我尝试着去设计一下我司的设备网关系统架构。 目前接入的均为无线设备,设备与载体可随时移动,使用普通SIM卡流量,所以没有固定ip地址。至于设备网关1.0的核心功能,说来也简单,拢共分为三大部分: ① 设备安装/绑定。 ② 设备数据实时上报 ③ 设备运维 图1 设备网关核心功能 2、四层结构 让我们从另一个视角来看待设备网关:层次结构。 我梳理了一下整个业务过程,追踪了一遍整个数据流向,于是乎很容易就得出了如下的四层结构图: 图2 设备网关四层结构 整个层次结构自底向上依次为数据层、控制层、应用层、表现层,该层次结构也成为了我之后设计系统架构的指导思想。 现在对每个层次做一个简单的介绍:
通过上述的介绍,结合层次结构图,不难得出:数据层和控制层是业务无关的,我们可以统称为「协议层」,而应用层和表现层是业务相关的,我们可以统称为「系统层」。整个层次结构相互独立而又彼此相连,达到了弱耦合的目的。 3、架构演进(level-1) 做出整个架构也是一个很痛苦的过程,唯恐有考虑不周的地方,导致今后会不断踩坑。也非常感谢在这个过程中给我提供帮助和建议的业内人士,在他们的指点下,我才有了更多的灵感。 至于所谓的IoT体系结构,也并没有完全遵循。整个业务场景也不像是一个非常标准的物联网,所以给自己的要求不是很高,设计出来的架构堪用就行。 首先,我们从一个较高的视角去看待,整个架构是这样子的: 图3 设备网关系统架构(level-1) 从图中不难看出,整个设备网关存在4个关键角色。
以上就是设备网关架构的Level-1,紧接着我们再更深入的剖析整个架构,进入Level-2。 4、架构演进(level-2) 这部分内容,我们深入到四个角色的内部,窥探其中的结构组成。 1) 设备以及设备群组。这里我们将引入一个叫作「子设备」的概念,即一个设备对象下会再附属若干个设备,我们称之为「子设备」。当然,一个设备也可能没有子设备,依实际情况而定。 举个例子: 以一扇门作为一个设备,那么密码锁,锁舌,红外探头都可以是子设备; 再比如地震监测的探针,就是一个独立的设备,下属没有子设备。 图4 「子设备」概念 这样设计的目的是为了能够更精细化地对接入的设备进行控制,进可控制单个子设备,退可控制整个大设备。此外,对于平台内的所有大小设备,都不会直接相互进行通信,都是直接与中控平台打交道的。 2) 中控平台。我把这个角色定位为一种中间件,如下是中控平台的组件图: 图5 中控平台组件图 整个中控平台由八大组件构成,下面做一个简单的介绍。
3) 业务处理器,这个是与业务相关的角色,可以根据实际业务需求去设计。我在设计业务处理器的时候,是以设备为中心的,再去扩充其他功能。如下是一张业务处理器的拓扑图,具体的业务需求就不再展开叙述了。 图6 业务处理器拓扑图 4) 设备管理系统(Management System),这部分我认为要做到两个「可视化」:数据可视化,设备可视化。「数据可视化」比较好理解,就是数据的整合及其图形化表示,当然,数据的来源可以是实时的,也可以是离线加工过的,这个业界都有成熟的解决方案。还有一个就是「设备可视化」,这个主要是给普通用户一个比较友好的操作体验,将设备具象化,点击不同的按钮可以触发其对应的功能。当然,对于专家用户,也可以提供站内Terminal,直接使用命令与设备进行交互。 图3 设备管理系统两个「可视化」 5、总结 整篇文章阐述了设备网关的四层结构,并分两个层面深入分析设备网关的系统架构。通篇没有涉及具体技术细节,因为这是技术架构层面的内容了,定当另起新篇阐述之。 希望能对你有所帮助! THANKS! |
|