基于物联网的异构数据动态解析系统设计

2023-12-18 18:13朱钦鸿鲍敏
计算机时代 2023年11期
关键词:模式匹配微服务

朱钦鸿 鲍敏

关键词:模式匹配;通讯协议;XML;异构数据;微服务

中图分类号:TP311.5 文献标识码:A 文章编号:1006-8228(2023)11-100-04

0 引言

工業企业的智能化改造通常跟随着设备联网,通过设备产量、质量数据的自动化上传及分析,给优化决策算法提供数据依据。我们的目标企业拥有60 条不同时期建设的自动产线,其机床设备的供应商、PLC系统、数控程序版本均有差异,通讯协议、数据地址、数据格式三项设备联网的关键内容无法统一。因此设计一个支持插拔式的协议数据解析系统是解决各采集设备与控制中心之间数据传输,降低采集模块更新成本的重要部分[1]。

本文提出一种利用软件层协议来避免直接操作底层协议的设计方案[2]。系统采用基于C 语言开发的数据结构,通过数据映射,实现动态转换模式的自适应,从而降低了开发解析系统的时间和人力成本,提高了系统的可维护性。开发者设计数据模型解析方式及其对应的模型结构,用户仅需要修改数据模型即可完成对解析系统的规则更新。

1 设计方案

本文的研究内容是异构数据动态解析系统设计。通讯协议是完成不同服务之间的数据交互的一种规则,由语法、语义、同步这三大要素构成[3]。而数据解析就是通过事先规定好的协议将可利用的数据信息从数据帧中提取出来。该解析系统依靠软件层面的通讯协议实现解析范围的动态自适应,以及对数据转换器服务进行统一的配置;最终实现异构数据动态解析系统的标准化、规模化。本章节将对解析系统的整体架构进行详细分析。

1.1 模型架构

本文提出的异构数据动态解析系统的架构如图1所示,该系统由五个部分组成:配置中心模块、模式匹配模块、数据转换模块、服务注册模块、链路追踪模块,各模块之间相互配合,完成异构数据的实时转换[4]。

⑴ 配置中心模块:集中管理系统中的配置信息,实现系统配置的集中管理、分发。

⑵ 模式匹配模块:基于自定义的哈希数据结构,建立异构数据与转换器之间的映射关系。

⑶ 数据转换模块:服务启动时完成初始化操作,通过读取XML 文件内的数据模型来创建对应的数据转换器。相应的数据转换器根据制定的转换规则对异构数据进行标准化处理。

⑷ 服务注册模块:服务注册模块会将所有的服务实例添加到注册中心,使某个微服务可以发现和调用注册中心的服务。

⑸ 链路追踪模块:对服务调用和网络连接情况进行追踪记录,当系统出现异常时能帮助维护人员很好地定位到问题所在点。

1.2 系统处理机制

步骤一:系统进行初始化操作,模式匹配器模块和数据转换器模块分别通过读取配置中心内的配置信息,生成对应的服务并注册到服务注册中心。

步骤二:系统接收到异构数据,链路追踪模块开始运行,记录数据后续的操作流程(见图2 中过程①)。系统通过服务注册中心调用模式匹配器,由模式匹配器导出异构数据和数据转换器之间的映射关系(见图2 中过程②)。

步骤三:系统根据映射关系调用数据转换器,并通过数据转换器进行数据的获取和整理,最后将标准化的数据写入到持久化数据库中(见图2 中过程③④⑤⑥)。

2 异构数据动态解析系统的实现

2.1 模式匹配器的设计

模式匹配器包含特征提取模块、映射模块和原始异构数据发送模块,其中映射模块是其核心部分。为了提高数据匹配效率,映射模块采用了哈希表数据结构,并根据目标场景中查询操作占绝大多数的特点,设计了一种高效的自定义哈希表数据结构。

哈希表的设计

哈希表是通过应用哈希函数将键值转换为哈希值,并使用索引转换计算出对应的一维数组索引来实现高效数据访问的数据结构。由于哈希函数存在哈希碰撞的可能性,并且索引转换可能会缩小哈希值的范围,因此可能会发生索引冲突的情况。为了生成分布均匀的哈希值,本文采用了MurmurHash3 算法作为哈希函数,该算法具有快速计算和哈希值均匀分布的特点。在出现索引冲突情况下,通常可以采用以下两种常见的解决方案[5-7]。

⑴ 开放地址法:当哈希冲突发生时,通过寻找数组中下一个空闲位置将该键值对数据插入空槽中。线性探测法、双重哈希法是常见的开放地址法的实现方法。

⑵ 链地址法:数组每一个槽内都存放一个哈希桶的内存地址哈希桶由链表、数组等数据结构构成。当哈希冲突发生时,将多个键值对放入同一个哈希桶中。

本文采用链地址法作为一种解决哈希冲突的方法。相比于开放地址法,链地址法在代码设计上更加简单明了,而开放地址法则需要考虑更多的冲突处理细节。鉴于特殊的目标场景,查询操作在其中占据了非常高的比例。因此,为了保证系统具有良好的性能表现,自定义哈希表采用了数组作为哈希桶的数据结构,以保证查询操作的时间复杂度较低。哈希表的自定义结构如图3 所示。

2.2 数据转换器的设计

2.2.1 数据转换器转换流程设计

数据转换器利用预加载模式,将通信协议信息提前加载到内存中,该协议描述了数据的校验规则和解析流程。数据转换器会先获取协议中的标识符,并与原始异构数据中的标识符进行比较。若两者匹配,则进行校验码验证[8]。如果校验失败,则转换器会要求模式匹配器进行重发(见图4 中过程①②)。通过校验后,数据转换器会读取数据区中的数据,并按照协议规定的解析流程,将其转换成标准数据(参见图4 中过程③)。

2.2.2 XML 协议文档的制定

按照通讯协议规范,本文中提出的XML 协议文档由多个标签构成,表1 详细列出了各个标签的名称与功能描述。

XML 协议文档的标签层级图如图5 所示。

3 实例测试

本实验采用数据采集软件,对原始异构数据进行封装处理,并传输到异构数据动态解析系统,模拟现实工厂场景的运行情况。为使测试数据清晰呈现,实验采用看板对相关实验结果进行展示。

实验设备:三台64 位计算机、一台无线路由器。

实验设计:主服务器启动解析系统,通过配置中心读取XML 文件完成各个微服务的初始化。数据模拟软件将异构数据传递给解析系统,从而完成数据标准化。在实验过程中,需要对主服务器解析系统中的部分微服务进行启停操作。通过数据看板观察解析系统是否符合设计要求。

3.1 实验环境搭建

针对工厂现场数据采集,本实验开发了模拟数据采集软件,如图6 所示。异构数据来源于数据库中的真实工厂数据,并且可以灵活地调节异构数据的采集比例和发送速率。

遵循本文提出的XML 协议文档标签定义和层级关系,编写了如下XML 协议文档,其中节选内容如图7 所示。

3.2 实验

根据实验流程,用模拟软件向异构数据动态解析系统发送异构数据,在实验过程中进行了部分服务的启停操作,并最终通过看板系统展示相关实验数据。异构数据标准化实验结果如图8 所示,验证了异构数据动态解析系统的数据转换能力和可靠性。

4 结论

本文提出了一种目标工厂异构数据转换问题的解决方案,即工业设备联网场景下的异构数据动态解析系统。该系统采用微服务架构,包括模式匹配器、数据转换器、服务注册中心等组件,并通过添加或修改XML 文件数据来实现转换对象的增加与修改,从而体现了系统的通用性和标准化特点。实验结果表明,该解析系统能够正确、高效地标准化异构数据,这项技术方案在制造业领域具有推广和参考价值。

猜你喜欢
模式匹配微服务
基于模式匹配的计算机网络入侵防御系统
具有间隙约束的模式匹配的研究进展
OIP-IOS运作与定价模式匹配的因素、机理、机制问题
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
微服务视角下高职图书馆数字资源使用分析
从单一模式系统架构往微服务架构迁移转化技术研究
基于散列函数的模式匹配算法