一种基于DDS的数据溯源系统及方法
文献发布时间:2023-06-19 18:58:26
技术领域
本发明涉及一种基于DDS的数据溯源系统及方法,属于数据溯源技术领域。
背景技术
数据溯源是指当一个系统出现运行故障时,需要根据出错的数据项,追溯其流动过程和数据值变化过程。现有的有关数据溯源的方法大多数是基于日志分析。基于日志分析的数据溯源方法有使用入侵式的数据获取方式,不具备对数据的实时分析溯源功能,不支持系统模块动态加入等缺点。
数据分发服务(Data Distribution Service,DDS)是国际标准组织OMG于2003年制订的数据分发服务规范,参与者之间通过发布主题和订阅主题来完成数据的交互,具有时间和空间解耦的特点。其基于自动发现协议,支持节点的动态加入和退出。将DDS用于子系统之间的通信是目前的研究热点,但还未有研究将DDS用于数据的溯源。
现有技术中基于区块链的广域数据交互日志溯源技术,利用基于区块链的日志存证、溯源方法,收集多元日志数据,解析成结构化日志记录后进行异常检测分析,可避免人工干预,具有较高的可靠性及权威性。但存在如下不足:
(1)该方法需要在监测数据的地方设置埋点形成日志,其会修改运行系统的代码,属于入侵式的数据获取方式;
(2)数据来源依赖于系统日志,大型系统中的日志模块为减少对性能影响往往采用异步的实现方式,所以无法确保数据的实时性,日志的记录滞后于实际数据交互,因此文献无法支持系统在动态运行过程对数据进行实时溯源,不具备实时分析的优点;
(3)文献通过智能合约的触发开展日志上链记录,因为智能合约的不可逆转性,生成后不可撤销和更改。一旦系统模块发生调整修改,难以调整智能合约来适应动态变化的需求,可维护性较差。因此,迫切的需要一种新的方案解决上述技术问题。
发明内容
本发明正是针对现有技术中存在的问题,提供一种基于DDS的数据溯源系统及方法,该技术方案交叉使用基于主题的关联性分析算法(Topic-based Relevance AnalysisAlgorithm,TRAA)、基于本体的关联性增强分析算法(Relevance Enhancement AnalysisAlgorithm based on Ontology,REAAO)和基于广度优先遍历和数据项依赖关系的关联性增强分析算法(Relevance Enhancement Analysis Algorithm based on Breath-FirstSearch and Data Item Dependency,REAABFSDID)完成主题间数据项的关联性分析;再构建全局交互数据空间,使用数据演变序列生成算法(Data Evolution SequenceGeneration Algorithm,DESGA)生成数据演变序列,最后将数据演变序列进行可视化展示,方便运维人员的实时监控和管理。
为了实现上述目的,本发明的技术方案如下,一种基于DDS的数据溯源系统,所述系统包括监控层和终端层两层,终端层:包含子系统数据收集模块和子系统数据流上传模块,子系统数据流上传模块借助DDS将数据上传至监控层;
监控层:包含基于非入侵式的交互数据获取模块、主题间数据项关联性分析模块、基于主题的数据演变序列生成模块和可视化展示模块。
其中子系统数据收集模块收集子系统的数据(包含业务数据,发布/订阅关系数据(如果没有发生变化则为空));
其中,基于非入侵式的交互数据获取模块在采用DDS的发布/订阅机制进行基于主题的数据分发时,无需修改原有系统中的代码,也不需要设置探针,只需要在交互数据获取模块中订阅系统中所有的主题,因此这是一种完全非入侵的方式来获取交互数据,对订阅获得的主题值,在保存时打上时间戳,
主题间数据项关联性分析模块负责解析各个主题数据项之间的关联关系,具体包含三个子模块,分别为基于主题的关联性分析模块、基于主题的关联性分析模块和基于数据项依赖关系的关联性增强分析模块,
基于主题的数据演变序列生成模块,结合基于非侵入式的交互数据获取模块,主题间数据项关联性分析模块解析的结果,使用DESGA生成数据演变序列,
可视化展示模块实时展示数据演变序列,方便运维人员的监控和管理,实现对故障数据的实时溯源。
一种基于DDS的数据溯源方法,所述方法包括以下步骤:
步骤1:子系统数据收集模块收集业务数据,触发收集发布/订阅关系数据,发送至子系统数据流上传模块,
终端层由各个子系统构成,子系统的数据交互借助DDS完成。子系统数据收集模块收集业务数据,发送至子系统数据流上传模块。
如果有新节点加入或有节点退出,子系统数据收集模块触发生成发布/订阅关系数据,发送至子系统数据流上传模块。
步骤2:基于非入侵式的交互数据获取模块在子系统数据流上传模块中订阅系统中所有的主题获取交互数据,并在保存时打上时间戳,
步骤3:主题间数据项关联性分析模块先对溯源系统进行建模,再交叉使用TRAA、REAABO和REAABBFTDID完成主题间数据项的关联性分析,
步骤4:基于主题的数据演变序列生成模块构建全局交互数据空间,再使用DESGA生成数据演变序列,
步骤5:将数据演变序列进行可视化展示,方便运维人员的实时监控和管理。
其中,步骤3具体如下:
步骤3.1:对溯源系统进行建模,
设系统S由n个子系统构成,S={s
设系统S中有m个主题,主题构成的集合T={t
任意一个主题都是一个结构体,是多个数据项的组合,设有p个数据项,设各个数据项的索引集合I
设t
数据溯源是根据系统运行过程,获得指定数据项a
步骤3.2:
设已知子系统之间的主题发布和订阅关系,进行主题间数据项关联性分析。主题间数据项关联性分析是根据所获取的主题信息,建立以数据项为中心的数据项-主题集合对应关系,该项分析可以具体分为基于主题的关联性分析和关联性增强分析,关联性增强分析是通过本体和已知数据项依赖关系来进一步完善数据项-主题集合关系,从而可以挖掘隐性的关联关系,关联性增强分析具体分为基于本题的关联性增强分析和基于数据数据项依赖关系的关联性增强分析,具体步骤如下,
步骤3.2.1:对收集到的数据,使用TRAA进行关联性分析,TRAA的输入为主题集合T,输出为每个数据项关联主题集合,具体步骤如下,
步骤3.2.1.1:获取第一个主题的第一个数据项a
步骤3.2.1.2:检查a
步骤3.2.1.3:返回步骤3.2.1.2,检查下一个主题,直至T中所有主题都已经检查完成;
步骤3.2.1.4:返回步骤3.2.1.1,检查下一个数据项,直至T中所有数据项都已经检查完成。
步骤3.2.2:对收集到的数据,使用REAAO进行关联性增强分析,REAAO的输入为主题集合T,输出为每个数据项关联主题集合。REAAO相对于TRAA,修改其中的步骤3.2.1.2,增加本体库作为输入,本体库中的每个记录用一个二元组表示,即<数据项,同义词集合>,具体步骤如下,
步骤3.2.2.1:获取第一个主题的第一个数据项a
步骤3.2.2.2:在本体库中查找a
步骤3.2.2.3:检查a
步骤3.2.2.4:检查a
步骤3.2.2.5:执行步骤3.2.2.4,直至所有同义词完成检查,
步骤3.2.2.6:返回步骤3.2.2.2,检查下一个主题,直至T中所有主题都已经检查完成;
步骤3.2.2.7:返回步骤3.2.2.1,检查下一个数据项,直至T中所有数据项都已经检查完成,
步骤3.2.3:对收集到的数据,使用REAABFSDID,进行关联性增强分析,REAABFSDID的输入为主题集合T,输出为每个数据项关联主题集合。REAABFSDID在REAAO的基础上,增加数据项依赖关系表,完成基于数据项依赖关系的关联性增强分析和结果,数据项依赖关系用一张二维表来表示,每一行包括数据项1和数据项2两个字段,表示数据项2依赖于数据项1,也就是说数据项2是在获取数据项1的基础上,进行相关的数据处理后获得的结果,具体步骤如下,
步骤3.2.3.1:初始化参数deep=0,tag=deep,获取第一个主题的第一个数据项a
步骤3.2.3.2:检查a
步骤3.2.3.3:把a
步骤3.2.3.4:对a
步骤3.2.3.5:tag=deep+1,出队Q
步骤3.2.3.6:返回步骤3.2.3.2,检查下一个主题,直至T中所有主题都已经检查完成;
步骤3.2.3.7:返回步骤3.2.3.1,检查下一个数据项,直至T中所有数据项都已经检查完成。
需要说明的是,TRAA,REAAO和REAABFSDID可以交叉迭代使用。
其中,步骤4:具体步骤如下,
步骤4.1:基于接收到的所订阅的主题,根据已知的子系统间发布订阅关系,构建全局交互数据空间,形成一张全局交互数据序列Interaction,发布主题和订阅主题事件按照时间由早到晚的顺序依次排列,该序列由一组事件构成,每个事件用一个五元组表示,即(t
步骤4.2:使用DESGA生成数据演变序列,算法的输入为数据项dataitem,Interaction,主题关联集合C,输出为数据演变序列,数据演变序列是指定数据项在系统特定运行时间段内演化事件以及结果的序列,该序列由一组事件组成,每个事件用一个五元组表示,即(t
步骤4.2.1:根据dataitem,查找获得相应的主题关联集合C
步骤4.2.2:如果C
步骤4.2.3:重复步骤4.2.2,直至生成所有的序列片段;
步骤4.2.4:根据时间顺序和数据项依赖关系,拼接所有序列片段,生成数据演变序列。
相对于现有技术,本发明具有如下优点,1)该技术方案使用发布/订阅机制,采用了非入侵式的数据获取方式,这样无需修改运行系统的代码,也无需设置探针,使得数据溯源方法具有良好的灵活性和可扩展性的好处;2)该技术方案支持系统运行过程中实时的数据溯源,而非事后分析,不依赖于系统运行日志;3)使用DDS的动态订阅机制,针对运行态下的主题动态加入,可实时更新主题发布订阅关系,实时更新数据流动路径。
附图说明
图1为一种基于DDS的数据溯源系统及方法框架图;
图2为一种基于DDS的数据溯源系统及方法流程图;
图3为一种基于DDS的数据溯源系统及方法场景图;
图4为一种基于DDS的数据溯源系统及方法全局交互数据空间图。
具体实施方式
为了加深对本发明的理解,下面结合附图对本实施例做详细的说明。
实施例1:参见图1-图4,一种基于DDS的数据溯源系统,所述系统包括监控层和终端层两层,
终端层:包含子系统数据收集模块和子系统数据流上传模块,子系统数据流上传模块借助DDS将数据上传至监控层;
监控层:包含基于非入侵式的交互数据获取模块、主题间数据项关联性分析模块、基于主题的数据演变序列生成模块和可视化展示模块。
其中子系统数据收集模块收集子系统的数据(包含业务数据,发布/订阅关系数据(如果没有发生变化则为空));
其中,基于非入侵式的交互数据获取模块在采用DDS的发布/订阅机制进行基于主题的数据分发时,无需修改原有系统中的代码,也不需要设置探针,只需要在交互数据获取模块中订阅系统中所有的主题,因此这是一种完全非入侵的方式来获取交互数据,对订阅获得的主题值,在保存时打上时间戳,
主题间数据项关联性分析模块负责解析各个主题数据项之间的关联关系,具体包含三个子模块,分别为基于主题的关联性分析模块、基于主题的关联性分析模块和基于数据项依赖关系的关联性增强分析模块,
基于主题的数据演变序列生成模块,结合基于非侵入式的交互数据获取模块,主题间数据项关联性分析模块解析的结果,使用DESGA生成数据演变序列,
可视化展示模块实时展示数据演变序列,方便运维人员的监控和管理,实现对故障数据的实时溯源。
实施例2:参见图1-图4,一种基于DDS的数据溯源方法,所述方法包括以下步骤:
步骤1:子系统数据收集模块收集业务数据,触发收集发布/订阅关系数据,发送至子系统数据流上传模块,
终端层由各个子系统构成,子系统的数据交互借助DDS完成。子系统数据收集模块收集业务数据,发送至子系统数据流上传模块。
如果有新节点加入或有节点退出,子系统数据收集模块触发生成发布/订阅关系数据,发送至子系统数据流上传模块。
步骤2:基于非入侵式的交互数据获取模块在子系统数据流上传模块中订阅系统中所有的主题获取交互数据,并在保存时打上时间戳,
步骤3:主题间数据项关联性分析模块先对溯源系统进行建模,再交叉使用TRAA、REAABO和REAABBFTDID完成主题间数据项的关联性分析,
步骤4:基于主题的数据演变序列生成模块构建全局交互数据空间,再使用DESGA生成数据演变序列,
步骤5:将数据演变序列进行可视化展示,方便运维人员的实时监控和管理。
其中,步骤3具体如下:
步骤3.1:对溯源系统进行建模,
设系统S由n个子系统构成,S={s
设系统S中有m个主题,主题构成的集合T={t
任意一个主题都是一个结构体,是多个数据项的组合,设有p个数据项,设各个数据项的索引集合I
设t
数据溯源是根据系统运行过程,获得指定数据项a
步骤3.2:
设已知子系统之间的主题发布和订阅关系,进行主题间数据项关联性分析。主题间数据项关联性分析是根据所获取的主题信息,建立以数据项为中心的数据项-主题集合对应关系,该项分析可以具体分为基于主题的关联性分析和关联性增强分析,关联性增强分析是通过本体和已知数据项依赖关系来进一步完善数据项-主题集合关系,从而可以挖掘隐性的关联关系,关联性增强分析具体分为基于本题的关联性增强分析和基于数据数据项依赖关系的关联性增强分析,具体步骤如下,
步骤3.2.1:对收集到的数据,使用TRAA进行关联性分析,TRAA的输入为主题集合T,输出为每个数据项关联主题集合,具体步骤如下,
步骤3.2.1.1:获取第一个主题的第一个数据项a
步骤3.2.1.2:检查a
步骤3.2.1.3:返回步骤3.2.1.2,检查下一个主题,直至T中所有主题都已经检查完成;
步骤3.2.1.4:返回步骤3.2.1.1,检查下一个数据项,直至T中所有数据项都已经检查完成。
步骤3.2.2:对收集到的数据,使用REAAO进行关联性增强分析,REAAO的输入为主题集合T,输出为每个数据项关联主题集合。REAAO相对于TRAA,修改其中的步骤3.2.1.2,增加本体库作为输入,本体库中的每个记录用一个二元组表示,即<数据项,同义词集合>,具体步骤如下,
步骤3.2.2.1:获取第一个主题的第一个数据项a
步骤3.2.2.2:在本体库中查找a
步骤3.2.2.3:检查a
步骤3.2.2.4:检查a
步骤3.2.2.5:执行步骤3.2.2.4,直至所有同义词完成检查,
步骤3.2.2.6:返回步骤3.2.2.2,检查下一个主题,直至T中所有主题都已经检查完成;
步骤3.2.2.7:返回步骤3.2.2.1,检查下一个数据项,直至T中所有数据项都已经检查完成,
步骤3.2.3:对收集到的数据,使用REAABFSDID,进行关联性增强分析,REAABFSDID的输入为主题集合T,输出为每个数据项关联主题集合。REAABFSDID在REAAO的基础上,增加数据项依赖关系表,完成基于数据项依赖关系的关联性增强分析和结果,数据项依赖关系用一张二维表来表示,每一行包括数据项1和数据项2两个字段,表示数据项2依赖于数据项1,也就是说数据项2是在获取数据项1的基础上,进行相关的数据处理后获得的结果,具体步骤如下,
步骤3.2.3.1:初始化参数deep=0,tag=deep,获取第一个主题的第一个数据项a
步骤3.2.3.2:检查a
步骤3.2.3.3:把a
步骤3.2.3.4:对a
步骤3.2.3.5:tag=deep+1,出队Q
步骤3.2.3.6:返回步骤3.2.3.2,检查下一个主题,直至T中所有主题都已经检查完成;
步骤3.2.3.7:返回步骤3.2.3.1,检查下一个数据项,直至T中所有数据项都已经检查完成。
需要说明的是,TRAA,REAAO和REAABFSDID可以交叉迭代使用。
其中,步骤4:具体步骤如下,
步骤4.1:基于接收到的所订阅的主题,根据已知的子系统间发布订阅关系,构建全局交互数据空间,如图4示。形成一张全局交互数据序列Interaction,发布主题和订阅主题事件按照时间由早到晚的顺序依次排列,该序列由一组事件构成,每个事件用一个五元组表示,即(t
步骤4.2:使用DESGA生成数据演变序列,算法的输入为数据项dataitem,Interaction,主题关联集合C,输出为数据演变序列,数据演变序列是指定数据项在系统特定运行时间段内演化事件以及结果的序列,该序列由一组事件组成,每个事件用一个五元组表示,即(t
步骤4.2.1:根据dataitem,查找获得相应的主题关联集合C
步骤4.2.2:如果C
步骤4.2.3:重复步骤4.2.2,直至生成所有的序列片段;
步骤4.2.4:根据时间顺序和数据项依赖关系,拼接所有序列片段,生成数据演变序列。
需要说明的是上述实施例,并非用来限定本发明的保护范围,在上述技术方案的基础上所作出的等同变换或替代均落入本发明权利要求所保护的范围。
- 一种基于以太坊的农产品溯源平台数据存储查询系统及方法
- 一种基于区块链技术的员工档案数据溯源与加密方法
- 一种基于标识的跨数据溯源模型系统的数据溯源方法
- 一种基于探针的数据溯源系统及其溯源方法