时间:2024-09-03
(湖南联智科技股份有限公司 湖南 410073)
针对目前各物联网相关领域对于数据接入的多元化需求且单一传感器数据很难满足服务的现状,本文主要在阐述了物联网数据接入的基本概念、原理和方法的基础上,介绍了在数据接入架构设计中使用的相关技术;分析了在数据接入链路及数据清洗、解析过程的应用需求,分别利用系统架构图和数据流程图及平台部署结构图对系统的数据和过程进行设计;给出了基于微服务的数据接入架构设计,设计了系统多个不同的子系统和模块与各种常用传输协议下不同解析协议的通用方法,且使用多种设计模式,形成可自定义扩展的数据方法;实现了兼容各类型感知设备,自动配置配合可视化,自定义配置自动接入数据的数据中心架构。
在传统的软件技术架构系统中,基本上将业务功能集中在单一应用内,或者是单一进程中。尽管现代化的软件架构理论以及设计原则已推广多年,但实际技术衍化的速度迟缓并且变革动力不足。
微服务是用模块化分解系统功能,通过模块内部通讯来构建一个应用,服务独立运行在不同的进程中,服务之间通过轻量的通讯机制进行交互。
每个服务模块根据功能划分,服务只需要关注自身需要解决的问题。传统的整体风格的架构在构建部署和扩展伸缩方面有很大的局限性,笨重且不可拆分。微服务架构将系统以组件化的方式分解为多个服务,服务之间相对独立且松耦合,单一功能的改变只需要重新构建部署相应的服务即可。
微服务架构抛弃了传统单体服务一体化开发部署方式,微服务架构是高内聚的,每个服务处理相应的业务,所有的业务逻辑应该尽量在服务内部处理,且服务间的通信尽可能轻量化,比如使用Restful的方式。
每个微服务只会关注特定的业务功能,所以服务的业务清晰、代码量较少。开发和维护单个微服务相对简单。一般来说,对某个微服务进行修改,只需要重新部署这个服务即可。
数据中心系统,在上层物联网应用中的作用越来越重要,该系统是应用系统的数据支持,也是设备与应用平台之间的桥梁。因此,支持多协议并支持自定义扩展的系统设计就变得至关重要,一是能提供统一数据接入中心,只需要根据需求选择内置接入协议和使用通用解析策略和自定义解析策略就能快速接入感知设备;二是提供数据统一管理中心,上层应用再也不用关注平台数据存储,传输,解析等问题;三是系统提供所有过程数据链路存储以及日志记录,应用开发人员能在快速定位问题后通过问题排除策略解决数据接入问题。
综上所述,对数据中心系统的总体分析,可以清晰理解为,数据系统主要是作为应用平台整体架构的核心部分,不仅对数据进行接入、解析、清晰等工作,同时为物联网应用平台解决数据存储及提供稳定的数据服务功能。底层感知设备以及网络传输层具有协议类型多、设备种类多、设备数据协议不一、设备边缘计算能力有限及存储空间小的特点,所以对于平台设计兼容多种主流通讯协议,且整合封装行业中大量使用的传感器解析协议,确保数据流转通稳定通畅,且接入设备简单方便。
数据中心系统具有数据接入服务、数据解析服务、数据清洗分析服务、数据存储服务、数据输入输出服务等功能模块。
数据中心系统应用架构如图1 所示。展现层主要为上层物联网应用平台,其中可为安全监测平台、智慧城市、智慧交通等其他物联网平台。服务层与基础设施层为上层应用平台提供数据支撑。服务层为本系统的核心基础,包括外部协议接入,数据处理两部分。数据层主要包含本系统中的数据存储服务,根据业务情况分库进行存储;通过统一数据出入库接口进行管理;避免数据库切换导致系统重新开发。且整个系统在设计中考虑系统安全、数据安全、服务安全、网络传输安全多项安全因素;系统开发遵循各项技术规范,数据格式、数据库设计、数据接口设计均遵守标准化信息体系。
图1 数据中心整体架构
系统技术架构拟采用微服务架构,将配置中心和分布式服务均纳入Nacos 管理,可集中管理服务和系统配置;在数据输入输出端采用Spring-Cloud-Gateway 提供数据接口,内置负载均衡机制和熔断、重试机制,保障服务稳定运行。在数据中心系统中每项子服务均可分布式部署,解决系统性能瓶颈。数据库存储可考虑采用非关系型数据库存储大量传感器数据,其他业务、配置相关可采用关系型数据库;服务过程中使用高效缓存提升系统整体效率;另外文件服务器可用于数据文件备份,原始数据存档等。具体技术结构如下图2 所示:
图2 数据中心技术架构
数据接入服务,主要负责接入感知设备通过网络协议接入到平台,进行初步的数据校验和过滤功能。目前主要集成TCP、Mqtt、LoRa、NB-Iot 四种协议,且支持协议扩展,可自定义协议接入模块。多种协议配置均存入数据库,上层应用可根据需求通过接口形式配置自身使用的不同协议。另外,每种协议内置自动数据处理器,同时开发者可扩展自定义后置数据处理器。该模块仅负责接受传感器上报的原始数据,并将原始数据进行存储后将数据压入数据处理队列,交给下游服务进行解析处理;在数据处理各项过程中都有节点日志记录以及设备上下线日志记录。根据设备需求,如果有需要命令下发的情况,该服务启动获取命令下发队列,根据传感器策略中的采集策略配置自动下发系统采集命令。
数据解析服务,系统模块通过监听数据处理队列,采用多线程技术将数据接入服务接收回来的数据进行解析;主要根据系统配置的不同类型传感器的解析策略进行数据分解;根据不同情况可分为字节码解析、Json 体等解析,同时根据配置要求解析后对数据进行数据解密且校验数据校验码是否正确,最后存储解析后的数据,然后将数据压入解析数据处理队列,交给下游服务进行清洗分析处理;在数据解析过程中各节点进行日志记录以及数据异常日志记录。该模块仅负责数据解析转换及存储部分,根据设备解析策略中的采集策略部分,根据采集策略生产设备数据采集命令,根据采集下发采集命令到命令下发队列,供数据接入层使用;该模块为数据中心系统的核心模块,是上下服务之间的纽带。
数据清洗分析服务,系统模块通过监听解析数据处理队列,采用多线程技术处理经过解析服务处理后的数据,根据数据清洗策略,对数据进行清洗,过滤掉超限或异常数据,然后根据以往的数据进行分析,判断当前数据是否是噪声数据;根据相关设备数据进一步来判断相关数据是否存在异常,如有异常,根据数据修复策略来修复异常点数据,避免噪声数据、设备采集异常等情况导致出现的调变影响上层应用决策分析;最后将正确的数据压入数据存储队列,供下游服务进行统一存储;同样该服务所有节点均记录处理日志以及存在的异常日志。该模块主要负责数据清洗和分析服务,与上下游服务关系松耦合。
数据存储服务,系统模块监听数据存储队列,将数据存入数据库中;该模块主要功能是集成多样化存储数据库,如Mongodb、Kafka、Hbase、Hive 等,开发者可根据应用需求扩展不同存储服务。
数据输入输出服务,该模块是处理与外部应用对接的角色,通过标准Restful 接口,向外暴露数据。主要数据接口类型包括:解析策略相关接口、数据清洗、分析策略相关接口、数据相关接口、日志查询相关接口及各项参数模块使用配置相关接口等,通过上述接口向外部应用提供数据服务和管理配置数据中心服务等。同样,该服务有详细的调用日志记录。
现存物联网技术的核心数据来源于感知层,随着物联网技术和网络传输技术的高速发展,以后会出现更多的物联网平台应用,所有的日常设备,基础设施,地标都会上线,做到万物互联;这些应用都需要大量设备来为其提供数据支撑,而在物联网高速发展节点,当下环境也存在很多问题,比如说层出不穷的网络传输协议,各厂家自主研发的感知设备没有任何标准,且在传输过程中有很多不确定影响因素等等。因此本文在经过多个项目的实践及参考已有的研究成果之后;设计实现了一套兼容各类协议和大部分传感器设备数据协议的数据中心系统;集数据接入、解析、存储为一体,整体封装打包进行封闭管理;统一数据出入口,解决数据接入难点和适配各种不标准的问题,为上层业务逻辑应用开发提供核心基础服务。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!