物联网平台架构设计
现在网上讨论的有关物联网的帖子非常之多,但大部分都是介绍理论或者有关硬件,通讯相关的问题,比如物联网模块,物联网通讯协议MQTT、XMPP、NB_IOT等,个人认为这些只是物联网中一部分,而涉及到物联网的设备如何管理,用户如何管理,数据包如何解析,大数据如何展示等也是物联网模块中非常重要的部分,所以作者就根据自身工作中总结出来的建构在云端的物联网平台基本架构分享给大家,并基于此架构如何一步一步来开发一套物联网平台。
物联网平台,应该是基于现在的互联网,通讯技术来建构,而不依赖与特定的硬件模块,用户可以基于自身的设备技术架构,简单轻松接入物联网。下图是物联网的核心架构:
1. 四大核心模块
在物联网中存在4大核心模块,那就是设备管理,用户管理,数据传输管理,数据管理,只有具备了这四大核心模块,才能认为是一个完整的物联网平台,而所有其他的功能模块都是基于此四大功能模块的延展。
1.1 设备管理
? 设备类型管理:定义设备的类型,此功能一般由设备的制造商
来定义,一种设备类型最重要的是关联到一套独有的数据解析方法,数据的存储方法,已经设备规格等数据,也只有设备的制造商才可以编辑有关设备类型的数据,而设备的使用者只能浏览设备类型的相关信息
? 设备管理:设备管理定义设备相关信息,每个设备必须定义其
设备类型,设备类型有使用者属性,设备在完成销售,并被使用者激活后设备就属于设备使用者了,这时候设备使用者对设备有完全的控制权,可以控制设备的哪些数据可以被制造商查看,可以被哪些用户查看等权限
1.2 用户管理
? 组织管理:在物联网平台中一个很重要的观念就是组织,所有
的设备,用户,数据都是基于组织的管理的,设备制造商是一个组织,设备的使用者是一个组织,家庭都可以是一个组织。
? 用户管理:用户是基于一个组织下的人员构成,每个组织下面
都有管理员角色,管理员可以为其服务的组织添加不通的用户,并分配每个用户不同的权限。一个用户也可以属于多个不同的组织,并且扮演不同的组织
? 用户组:一组用户,也是基于组织的用户组管理,同一用户组
的用户拥有相同的权限
? 权限管理:同样是基于组织的权限管理,主要是针对对象级别
的权限细分,如设备的浏览权限,可以控制每个用户是否看到这个设备;设备数据浏览权限定义是否可以查看设备的运行数据
1.3 数据传输管理 1.31 基本格式
数据传输管理,定义针对一类型设备的数据传输协议,基本格式是:
? 每一个设备有厂商唯一的序列号,因为每个制造商有自己的编
码格式,固此序列号没有固定格式。
? 命令码,为此条数据的作用,比如是上传数据,或者服务器下
发给设备的命令等,一般采用2位数字编码00~99
? 数据,此部分是此条报文,所包含的数据部分,每个协议可以
定义不同的解析方式,比如服务器在收到数据包后,会根据预先定义好的解析方式解析数据字段,并按照规则存储
1.32 数据解析定义
? 每种设备类型可以定义多条命令,每个命令都有自己不同的解
析方式,组织的管理员可以为自己的设备类型定义解析方式
? 服务器接收到数据后,会自动根据预先定义的解析方式解析数
据字段
? 设备开发者要根据在
IOT平台定义的数据格式,自行开发自
己设备的解析代码
? 数据字段都按照
HEX方式收发
1.33 数据的存储
存储要支持分布式架构,可以为每个设备定义不同的存储位置,在diego iot中数据存储使用mysql数据库,实现不同的设备存储在不同的mysql数据库中
每条数据定义生命周期,在生命结束后,系统将自动删除
1.4 数据管理
? 权限管理,数据的权限在物联网平台中是至关重要,数据属于
谁是一个非常重要的概念,只有设备的拥有者才能定义数据可以给谁看
? 大数据,物联网数据本身就是海量的数据,我们可以借助一些
开源的大数据平台来实现数据的可视化分析,只有经过分析的数据才是有价值的数据
? 数据的导出,用户可以导出数据到本地做分析