面向工业物联网的分层配置差分与版本发布方法及系统与流程

摘要: 本技术涉及工业物联网,尤其涉及一种面向工业物联网的分层配置差分与版本发布方法、一种面向工业物联网的分层配置差分与版本发布系统,以及一种电子设备。背景技术:1、随...
面向工业物联网的分层配置差分与版本发布方法及系统与流程

本技术涉及工业物联网,尤其涉及一种面向工业物联网的分层配置差分与版本发布方法、一种面向工业物联网的分层配置差分与版本发布系统,以及一种电子设备。

背景技术:

1、随着工业物联网系统在电力、石化、冶金等领域的规模化部署,单个项目所管理的设备数量已从数百台扩展至数万台量级。这些设备在逻辑上呈现多层级从属关系,上层通信参数、中间采集节点参数与末端测点参数相互关联,共同构成一套完整的运行配置。在日常运维过程中,报警阈值调整、设备增减、通信参数变更等操作频繁发生,每一次变更都需要将对应的配置准确送达至现场设备。与此同时,工业现场的网络带宽有限、终端设备计算资源受限,对配置下发的数据量和频次提出了严格约束。如何在海量设备、多层级配置、高频变更的条件下实现精准且高效的配置发布,已成为工业物联网平台运维中的突出技术问题。

2、目前,工业物联网平台的配置管理普遍采用整包生成与整包下发的模式,每次配置发生变更后,平台将全部配置内容重新打包为一份完整文件,推送至所有相关设备;设备端接收后整体替换本地配置并重启加载。在版本管理方面,通常依赖全局版本号或人工标注来标识配置的更新批次。此外,设备运行所需的控制逻辑或报警处理脚本往往由开发人员独立编写和维护,与配置数据分属不同的管理流程。

3、上述方式在设备规模较小、变更频率较低时尚可维持,但在大规模工业物联网场景下暴露出明显不足。整包下发无法区分配置中真正发生变化的部分与未变化的部分,导致绝大多数未变更的配置内容被重复传输和加载,造成带宽浪费与设备端不必要的重启开销。全局版本管理粒度粗放,难以反映局部配置的变更状态,设备端无法据此判断自身是否需要执行更新。配置数据与运行脚本的分离维护则容易引发二者之间的版本失配,增加现场故障排查的难度。这些问题在设备数量增长和变更频率提高的条件下被进一步放大,制约了工业物联网平台配置运维的效率与可靠性。

技术实现思路

1、(一)要解决的技术问题

2、鉴于现有技术的上述缺点、不足,本技术提供一种面向工业物联网的分层配置差分与版本发布方法及系统,以解决现有技术中存在的整包下发无法区分变化与未变化部分、全局版本管理粒度粗放无法追踪局部变更、以及配置数据与运行脚本分离维护导致版本失配的技术问题。

3、(二)技术方案

4、为了达到上述目的,本技术采用的主要技术方案包括:

5、第一方面,本技术提供一种面向工业物联网的分层配置差分与版本发布方法,具体步骤包括:

6、s1,响应于配置发布指令,读取预设的业务配置表中的源记录及预设的映射表中的建模规则;按预设的驱动层、节点层、监测点层结构及所述建模规则将所述源记录映射为多个配置对象,得到新对象集合;

7、s2,将所述新对象集合中的每个配置对象与预先读取的历史对象集合进行比较,得到总变化标记;

8、若所述历史对象集合中存在对象键相同的配置对象,则将该配置对象与同键的历史配置对象进行内容比较;

9、若比较结果为内容发生变化,则递增该配置对象的版本字段并将总变化标记置为真;若比较结果为内容未发生变化,则该配置对象的版本字段保持不变;

10、若所述历史对象集合中不存在同键的配置对象,则将该配置对象的版本字段初始化为预设初始值,并将总变化标记置为真;

11、在完成所述新对象集合中全部配置对象的处理后,遍历所述历史对象集合的全部对象键,将不存在于所述新对象集合中的对象键判定为删除型变化,并将总变化标记置为真;

12、s3,读取所述总变化标记,若指示存在变化,则将所述新对象集合写入所述配置存储,并向下游设备发送配置更新通知;若指示不存在变化,则终止本轮发布。

13、可选的,在本技术中,所述配置对象中包含以下字段:

14、对象键,用于唯一标识该配置对象,供内容比较时与同键历史配置对象进行定位和对齐,所述内容比较针对除版本字段以外的字段;

15、版本字段,用于记录该配置对象的当前版本号,供内容比较时判定是否发生变化并进行版本递增,以及供下游设备加载时按所述当前版本号判断是否需要更新;

16、事件字段,用于存放事件脚本,所述事件脚本由所述源记录中的点位类型及报警阈值确定,供下游设备加载后执行对应的报警或变位处理。

17、可选的,在本技术中,步骤s1中,在将所述源记录映射为监测点层的配置对象时,还包括:

18、根据所述源记录中的监测点标识对应的点位类型、报警阈值及报警描述,从预置的脚本模板集合中确定目标脚本模板;所述脚本模板集合中包含多个按点位类型分类的脚本模板片段,所述脚本模板片段用于生成不同报警类型对应的事件脚本;

19、根据所述目标脚本模板生成事件脚本,并将所述事件脚本写入所述监测点层的配置对象的事件字段中,所述事件字段用于供所述下游设备加载后执行对应的事件处理。

20、可选的,在本技术中,所述根据所述目标脚本模板生成事件脚本,包括:

21、当所述点位类型指示为模拟量且至少一个报警阈值已被配置时,从所述脚本模板集合中选取模拟量报警模板片段,并按照脚本前段、局部变量声明、脚本后段的三段式结构拼装得到所述事件脚本;其中,所述局部变量声明的内容由所述报警阈值及各自对应的报警描述字段确定;

22、当所述点位类型指示为开关量且开关量报警已被配置时,从所述源记录中获取开状态值、关状态值及各自对应的状态描述;从所述脚本模板集合中选取开关量报警模板片段,按所述三段式结构拼装得到所述事件脚本;其中,所述局部变量声明的内容由所述开状态值、关状态值及各自对应的状态描述决定;

23、当所述点位类型指示为开关量且所述源记录中包含变位事件配置时,从所述脚本模板集合中选取变位模板片段,按所述三段式结构拼装得到所述事件脚本。

24、可选的,在本技术中,步骤s2中的内容比较还包括:

25、识别所述配置对象中发生变化的字段,输出变化字段集;所述变化字段集包含所述配置对象中所有发生变化的字段名称;

26、根据预设的安全关键字段集,判断所述变化字段集中是否包含属于所述安全关键字段集的字段;

27、若包含,则将所述配置对象标记为紧急变化,触发即时推送通道向所述下游设备发送配置更新通知;所述即时推送通道的生效时延预算低于常规发布通道的生效时延预算;

28、所述下游设备接收到被标记为紧急变化的配置对象后,仅替换该监测点层配置对象的事件脚本中与所述变化字段集对应的局部变量声明,保持脚本前段和脚本后段不变。

29、可选的,在本技术中,在所述触发即时推送通道向所述下游设备发送配置更新通知之前,还包括阈值合法性校验:

30、获取所述源记录中所述监测点标识对应的报警阈值字段和传感器量程字段,所述报警阈值字段包括高位阈值、低位阈值、高高位阈值和低低位阈值;所述传感器量程字段包括量程上限和量程下限;

31、校验所述报警阈值字段与所述传感器量程字段是否满足预设的单调链约束;所述单调链约束包括以下条件:

32、高高位阈值大于等于高位阈值,高位阈值大于等于低位阈值,低位阈值大于等于低低位阈值;

33、高位阈值小于等于量程上限,低位阈值大于等于量程下限;

34、若任一条件不满足,则终止本轮发布并生成拦截审计记录;所述拦截审计记录包含被拦截的配置对象的对象键、被拦截的字段名称及拦截原因。

35、可选的,在本技术中,所述s3中,向所述下游设备发送配置更新通知时,为当前发布轮次分配唯一的发布批次标识,将所述发布批次标识写入所述新对象集合中每个配置对象的批次字段;

36、所述配置更新通知中携带所述发布批次标识;所述下游设备在接收到所述新对象集合后,以所述发布批次标识为单元校验该批次是否收齐;

37、若未收齐则不执行配置切换,继续运行旧配置;

38、若收齐,则按照预设的依赖顺序执行整批切换;

39、所述依赖顺序为驱动层配置对象先于节点层配置对象、节点层配置对象先于监测点层配置对象生效。

40、可选的,在本技术中,所述s3中,所述配置更新通知用于指示所述下游设备从服务侧拉取所述新对象集合;

41、所述下游设备拉取成功后,向服务侧返回送达确认;所述服务侧维护每个下游设备的送达确认标记;

42、在下一轮配置发布周期启动时,检查所述送达确认标记,若所述送达确认标记指示上一轮配置更新通知未送达,则触发补偿重发,所述补偿重发为重新向所述下游设备发送所述配置更新通知;

43、所述配置存储中的历史对象集合与版本字段值持久化于归档文件,所述服务侧进程重启后自所述归档文件恢复所述历史对象集合与版本字段值;

44、所述下游设备离线后重新上线时,向所述服务侧上报本地当前运行的各配置对象的版本字段值列表;所述服务侧根据所述版本字段值列表与所述配置存储中对应配置对象的当前版本字段值进行比对,将版本字段值低于当前值的配置对象纳入所述新对象集合,并发送至所述下游设备。

45、可选的,在本技术中,还包括审计记录生成步骤:

46、在所述s2中,将所述变化字段集同步写入审计记录;所述审计记录包含以下字段:对象键、变更字段名称、变更前值、变更后值、发布时间及变更原因标识;

47、每条审计记录中包含前一条审计记录的哈希摘要值,并根据本条审计记录的内容与所述前一条审计记录的哈希摘要值计算本条审计记录的哈希摘要值,形成用于校验审计记录完整性的哈希链。

48、可选的,在本技术中,在所述s1之后,所述s2之前,还包括:

49、响应于回滚指令,从所述历史对象集合中提取目标历史版本的完整快照作为回滚对象集合,将所述回滚对象集合中每个回滚对象的版本字段设置为高于所述配置存储中对应配置对象的当前版本字段的新值;

50、以所述回滚对象集合替换所述新对象集合,继续执行所述s2至s3的流程;

51、执行回滚前,输出受影响对象清单并等待确认指令,确认后方可执行;连续回滚时记录回滚链,当回滚链长度超过预设阈值或检测到循环回滚时,生成告警并终止回滚。

52、第二方面,本技术提供一种面向工业物联网的分层配置差分与版本发布系统,具体包括:

53、配置映射模块,用于响应于配置发布指令,从预设的业务配置表中读取源记录,并从预设的映射表中读取建模规则;按照预设的驱动层、节点层、监测点层结构,根据所述建模规则将所述源记录映射为多个配置对象,得到新对象集合;每个所述配置对象由唯一的对象键标识,且包含独立的版本字段;

54、差分比较模块,用于从预设的配置存储中读取历史对象集合;针对所述新对象集合中的每个配置对象,若所述历史对象集合中存在对象键相同的配置对象,则将该配置对象与同键的历史配置对象进行内容比较,所述内容比较针对除所述版本字段以外的对象字段;在完成所述新对象集合中全部配置对象的处理后,遍历所述历史对象集合的全部对象键,将不存在于所述新对象集合中的对象键判定为删除型变化,并将总变化标记置为真;

55、发布决策模块,用于读取所述总变化标记;若所述总变化标记指示存在变化,则将所述新对象集合写入所述配置存储,并向下游设备发送配置更新通知;若所述总变化标记指示无变化,则终止本轮发布。

56、第三方面,本技术还提供一种电子设备,包括存储器和处理器,所述存储器存储计算机程序,所述处理器执行所述存储器中存储的计算机程序,具体执行上述面向工业物联网的分层配置差分与版本发布方法的步骤。

57、(三)有益效果

58、本技术的一种面向工业物联网的分层配置差分与版本发布方法,通过按驱动层、节点层、监测点层三层结构将源记录映射为配置对象,并以单个配置对象为粒度进行内容比较和版本递增,只下发内容发生变化的配置对象,从而避免整包下发带来的带宽浪费和设备端不必要的重启开销;通过为每个配置对象设置独立的版本字段,使局部配置变更可被精确追踪和版本化管理;通过在生成监测点配置对象的同一过程中,根据点位类型和报警阈值同步拼装事件脚本并写入事件字段,保证了配置数据与运行脚本的版本一致性,避免了二者分开维护导致的版本失配问题。