论文部分内容阅读
物联网技术是依托于互联网并对其在应用领域做了进一步拓展的新一代信息产业技术。在我国极地科考领域中无人值守的物联网设备被大量部署在严酷的自然环境中,设备的计算能力较低、电力资源有限且网络质量不高,这对远程获取和控制设备的状态提出了更高的要求。本文旨在解决极地物联网设备管理的需求,在满足高并发性能条件的前提下,提出了基于Web的Spring后端服务设计架构、消息服务器的设备身份认证和消息传输的实现,以及基于Node-Red的流式设备状态数据可视化的设计。 本文通过使用Spring组件实现B/S架构的后端服务,同时针对C/S架构也实现了对应的HTTP交互接口,并实现了数据同步、缓存一致性,负载均衡等需求。MySQL数据模块采用主从双备模式,实现数据主从同步,对数据做了读写分离操作,降低主库压力,同时优化了部分SQL语句;后端集群结构中使用Redis实现一致性缓存,使得多台服务器能够一致对外提供无差别服务;使用Nginx负载均衡技术将客户端请求进行分流,降低单点服务器压力,采用加权轮询分配请求到不同服务器;后端服务的功能含盖了系统用户登陆验证、系统状态监控模块,设备分组管理模块,设备访问控制规则管理模块,设备题目管理模块,设备属性管理模块等基本业务需求。 针对设备消息实时传输和设备身份安全认证需求,本文使用MQTT消息服务器实现消息的实时发布和订阅,并提出通过MySQL和ClientID进行设备身份认证,以及访问控制规则(ACL)的设计。设备在与消息服务器进行交互之前首先需要通过账号、密码完成设备身份认证,并利用设备的IP地址,客户端ID,账号,题目分级等方面的限制,实现了物联网设备权限分配的工作,针对每个设备都限定了其与消息服务器的交互规则,提高了平台的安全性;设备之间的消息传输支持一对多模式,订阅题目的设备可以实时获取到来自该题目的消息,同时可以指定消息的传输质量。 本文将Node-Red流式编程技术用于极地物联网设备状态的可视化场景,实现了设备状态属性在不同仪表器节点的可视化,同时支持可视化设备控制。设备状态数据是格式的,可以通过设备消息分发控制视图生成并序列化为JSON字符串,也可以通过拖动条节点和表单节点生成控制数据并进行序列化操作;mqtt-out节点和mqtt-in节点需要通过设备身份认证,才能发布或者订阅题目;利用函数块节点对控制消息进行拦截并解析,并将解析结果再封装进Message对象;最后使用Gauge节点、Donut仪表盘节等节点,实现不同设备属性的可视化;同时设备也会将自身状态属性序列化为JSON字符串进行实时发布传输。