数据的推荐方法、装置、计算机存储介质以及电子设备与流程

文档序号:31052816发布日期:2022-08-06 08:31阅读:75来源:国知局
数据的推荐方法、装置、计算机存储介质以及电子设备与流程

1.本说明书涉及数据处理技术领域,尤其涉及一种数据的推荐方法、数据的推荐装置、计算机可读存储介质、计算机程序产品以及电子设备。


背景技术:

2.相关代码发生更改/迭代后,可能影响到的场景是代码更改/迭代所需分析的重要方面。对于代码更改/迭代后所产生的影响,相关技术对影响进行评价分析的精准度不高。
3.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本说明书的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

4.本说明书的目的在于提供一种数据的推荐方法、数据的推荐装置、计算机可读存储介质、计算机程序产品以及电子设备,对于代码更改/迭代后所影响的数据,至少在一定程度上提升了分析的精准度。
5.本说明书的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本说明书的实践而习得。
6.根据本说明书的一个方面,提供一种数据的推荐方法,该方法包括:对关于目标行为链路的源数据进行特征提取,得到包含多个代码场景特征的代码特征库;基于线上的流量数据和上述代码特征库,确定多条场景代码链路,得到链路库;将线下的流量数据对应的路径和上述链路库中的上述场景代码链路进行关联处理,得到关系图谱;以及,获取关于上述目标行为链路的变更代码特征,并从上述关系图谱中确定出与上述变更代码特征相关的目标链路和/或目标场景,其中,上述目标链路和/或上述目标场景为与上述变更代码特征相关的推荐数据。
7.根据本说明书的另一个方面,提供一种数据的推荐装置,该装置包括:代码特征库确定模块、链路库确定模块、图谱确定模块,以及推荐模块。
8.其中,上述代码特征库确定模块,用于对关于目标行为链路的源数据进行特征提取,得到包含多个代码场景特征的代码特征库;上述链路库确定模块,用于基于线上的流量数据和上述代码特征库,确定多条场景代码链路,得到链路库;上述关系库确定模块,用于将线下的流量数据对应的路径和上述链路库中的上述场景代码链路进行关联处理,得到关系图谱;以及,上述推荐模块,用于获取关于上述目标行为链路的变更代码特征,并从上述关系图谱中确定出与上述变更代码特征相关的目标链路和/或目标场景,其中,将上述目标链路和/或上述目标场景确定为与上述变更代码特征相关的推荐数据。
9.根据本说明书的再一个方面,提供一种电子设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述实施例中的数据的推荐方法。
10.根据本说明书的一个方面,提供一种计算机可读存储介质,上述计算机可读存储
介质中存储有指令,当上述指令在计算机或处理器上运行时,使得上述计算机或处理器执行如说明书上述方面所述的数据的推荐方法。
11.根据本说明书的另一个方面,提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机或处理器上运行时,使得所述计算机或处理器执行如说明书上述方面所述的数据的推荐方法。
12.本说明书的实施例所提供的数据的推荐方法与装置、计算机可读存储介质、计算机程序产品以及电子设备,具备以下技术效果:
13.本说明书示例性的实施例提供的方案适用于对目标行为链路的代码进行改/迭代后,可能影响到的场景和/或链路的推荐。具体地,先对目标行为链路的源数据进行特征提取,得到包含多个代码场景特征的代码特征库;然后,再基于线上的流量数据和上述代码特征库,确定多条场景代码链路,得到链路库;进一步地,将线下的流量数据对应的路径和上述链路库中的所述场景代码链路进行关联处理,得到关系图谱。该关系图谱可以清晰方便且全面的反映线下的流量数据与上述线上的流量数据所形成的链路之间的关系,该关系图谱有利于全面且精准地确定出受到代码变更所影响的场景,和/或具有行为语义的相关链路。
14.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
15.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本说明书一实施例提供的数据的推荐方法的流程示意图。
17.图2为本说明书另一实施例提供的数据的推荐方法的流程示意图。
18.图3为本说明书一实施例提供的特征提取方法的流程示意图。
19.图4为本说明书一实施例提供的特征提取示意图。
20.图5为本说明书另一实施例提供的特征提取方法的流程示意图。
21.图6为本说明书另一实施例提供的特征提取示意图。
22.图7为本说明书一实施例提供中根据代码特征库的示意图。
23.图8为本说明书一实施例提供中根据代码特征库确定链路库的示意图。
24.图9为本说明书一实施例提供中根据链路库确定关系图谱的方法流程示意图。
25.图10为本说明书一实施例提供中根据链路库确定关系图谱的示意图。
26.图11为本说明书一实施例提供中根据关系图谱确定关联场景和待识别链路的方法流程示意图。
27.图12a和图12b为本说明书一实施例提供中两种样式的关系图谱的示意图。
28.图13为本说明书一实施例提供的根据关系图谱确定目标场景和目标链路的方法流程示意图。
29.图14为本说明书一实施例提供的根据关系图谱确定目标场景和目标链路的示意
图。
30.图15为本说明书一实施例提供的数据的推荐装置的结构示意图。
31.图16为本说明书另一实施例提供的数据的推荐装置的结构示意图。
32.图17为本说明书实施例提供的电子设备的结构示意图。
具体实施方式
33.为使本说明书的目的、技术方案和优点更加清楚,下面将结合附图对本说明书实施例方式作进一步地详细描述。
34.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
35.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本说明书将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本说明书的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本说明书的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本说明书的各方面变得模糊。
36.此外,附图仅为本说明书的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
37.本说明书实施例能够提供一种数据的推荐方法、数据的推荐装置、计算机可读存储介质、计算机程序产品以及电子设备,至少在一定程度上提升了代码更改/迭代后所影响数据分析的精准度。具体的,以下先通过图1至图14对本说明书提供的数据的推荐方法实施例进行详细阐述:
38.示例性的,图1为本说明书一实施例提供的数据的推荐方法的流程示意图。参考图1,该实施例从整体介绍本方案:
39.参考图1,获取关于目标行为链路的多个代码场景特征,得到代码特征库110。然后,基于线上的流量数据,将上述代码特征库110中的代码场景特征进行串连,得到包含多条场景代码链路的链路库120。进一步地,将线下的流量数据对应的路径,与上述链路库120中的代码场景特征进行关联,得到包含反映线下的流量数据对应的链路与场景代码链路之间关系的关系图谱130。更进一步地,根据目标行为链路的变更代码特征以及上述关系图谱,可以确定出与变更代码特征相关的推荐数据,包括目标场景和/或目标链路。其中,上述变更代码特征可以是新增代码特征和被修改的代码特征。
40.本方案先确定出目标行为链路相关的代码场景特征,在此基础上,将线上的流量
数据的场景代码链路与线下的流量数据的路径相关联,得到上述关系图谱。该关系图谱可以清晰方便且全面的反映线下的流量数据与上述线上的流量数据所形成的链路之间的关系,该关系图谱有利于全面且精准地确定出受到代码变更所影响的场景,和/或具有行为语义的相关链路。
41.示例性的,图2为本说明书另一实施例提供的数据的推荐方法的流程示意图。参考图2,该实施例所示方法包括:s210-s240。
42.在s210中,对关于目标行为链路的源数据进行特征提取,得到包含多个代码场景特征的代码特征库。
43.本说明书实施例基于代码场景特征进行建模,进而分析代码变更/迭代所影响的场景/用例,以及代码链路等。相较于相关技术中基于数据库(data base,db)字段建模、基于接口出入参建模,或基于领域模型建模,本方案的使用范围更广。例如,对于基于db字段建模的相关技术,如果代码变更/迭代不涉及到数据库数据存储的场景,则不适用于该相关技术。又例如,对于基于接口出入参建模的相关技术,如果接口不包含相关参数,则利用该相关技术也无法进行变更分析与评估。对于基于领域建模的相关技术,如果不涉及到领域模型的变更,则利用该相关技术也无法进行变更分析与评估;另外,基于领域模型的相关技术涉及面较广,一个较小的代码改动可能会推荐出无数的变更场景,从而导致所推荐的场景不精准。
44.在示例性的实施例中,以下结合图3至图7对s210的具体实施方式进行详细介绍。其中,图3为本说明书一实施例提供的特征提取方法的流程示意图。参考图3,该图所提供的特征提取方法包括:s212-s216。
45.在s212中,采集动态链路数据和静态链路数据,得到上述目标行为链路的源数据。
46.示例性的,上述目标行为链路可以是将变更/迭代代码的任一行为链路。
47.示例性的,图4为本说明书一实施例提供的特征提取示意图。参考图4,上述动态链路数据是指对实际行为对应链路的数据,上述静态链路数据不涉及实际行为对应链路的数据,而是代码中调用关系。示例性的,上述动态链路数据可以来自上述相关技术中的模型。
48.对于上述目标行为链路相关的动态链路数据和静态链路数据,采用开发数据处理服务(open data processing service,odps),也称maxcomputer以及其他可实现的服务实现数据采集。其中,odps为针对tb/pb级数据、实时性要求不高的分布式处理服务,可以服务于批量结构化数据的存储和计算,可以提供海量数据仓库的解决方案以及针对大数据的分析建模服务。
49.在s214中,对所述源数据进行聚合处理,并针对代码调用关系构建有向图,利用目标算法从复杂有向有环图中提取出代码支配树,得到所述目标行为链路分别对应的关键要素和关键代码节点;
50.对于上述实施例所采集的关于目标行为链路的源数据,本实施例中利用数据收集和加工系统,对上述源数据进行聚合处理,并针对代码调用关系构建有向图,利用tarjan算法从复杂有向有环图中提取出代码支配树,从而得到所述目标行为链路分别对应的关键要素和关键代码节点。其中,上述tarjan算法为一种由robert tarjan提出的求解有向图强连通分量的线性时间的算法。
51.示例性的,上述聚合处理之后的数据包括以下一种或多种:关于系统调用模型的
数据(具体包括应用、接口、方法、参数、路径trace)、关于代码行模型的数据(具体包括版本、行号、行内容、行逻辑、分支)、关于数据库数据模型的数据(具体包括库、表、字段、库-表-字段的关联关系)以及关于特征模型的数据(具体包括数据、场景)等。
52.在s216中,基于上述关键要素和上述关键代码节点,确定上述多个代码场景特征,得到上述代码特征库。
53.示例性的,图6为本说明书另一实施例提供的特征提取示意图。参考图6,上述目标场景以场景a、场景b和场景c为例,基于s212和s214对应的实施例可以确定上述三个场景对应的关键要素(类型包括要素1和要素2)以及关键代码节点(类型包括节点1、节点2和节点3)。
54.在示例性的实施例中,图5为本说明书另一实施例提供的特征提取方法的流程示意图,具体结合图6对s216的具体实施方式进行详细介绍。参考图5,该实施例所示方法包括:s2162-s2168。
55.在s2162中,从多条上述目标行为链路对应的关键代码节点中识别出多条上述目标行为链路对应的必经节点和选择节点,其中,上述必经节点为多条上述目标行为链路均经过的节点。
56.示例性的,参考图6,“节点2”为图3中所有场景均经过的节点,即可以作为必经节点,“节点1”和“节点3”并非图3中所有场景均经过的节点,即可以作为选择节点。
57.示例性的,上述选择节点包括:影响接口出入参的选择节点、影响外部调用的选择节点、影响数据存储的选择节点以及影响链路分叉的选择节点中的一种或多种。
58.在s2164中,确定每个上述选择节点对应的代码链路分支行;以及,在s2166中,通过静态代码分析的方式,分析上述代码链路分支行相关的代码调用关系,得到全量的流程控制要素。
59.参考图6,基于代码行模型的数据(具体包括版本、行号、行内容、行逻辑、分支),根据上述选择节点确定出代码链路分支行。而代码链路分支行的产生必然来自控制流,控制流则对应有控制流要素。从而通过静态代码分析的方式,分析上述代码链路分支行相关的代码调用关系,得到全量的流程控制要素。
60.继续参考图5,在s2168中,根据多条上述目标行为链路对应的关键代码节点,对上述全量的流程控制要素进行筛选,得到上述关键代码节点的流程控制要素。
61.参考图6,根据上述关键要素可以确定出接口出入参、以及信息流要素(除了控制流要素以及接口出入参之外的要素)。进一步地,本实施例中,将上述必经节点、上述关键代码节点的流程控制要素、上述关键要素中的信息流要素和接口出入参,确定为关于上述多条目标行为链路的代码场景特征,而所得到的上述场景代码特征(类型包括节点与要素)则组成了关于上述多条目标行为链路的代码特征库。
62.图7为本说明书一实施例提供中根据代码特征库的示意图,参考图7,通过圆形72来表示节点,即图中示意性地示出的场景代码特征包括节点a、节点b、节点c以及节点d;通过菱形74来表示要素,即图中示意性地示出的场景代码特征包括要素e、要素f以及要素g。
63.以上通过图3至图7对应的实施例完成对s210具体实施方式的详细介绍,获取关于目标行为链路的源数据,并进行特征提取,得到包含多个代码场景特征的代码特征库。进一步地,基于上述代码特征库执行以下实施例:
64.继续参考图2,在s220中,基于线上的流量数据和上述代码特征库,确定多条场景代码链路,得到链路库。
65.示例性的,上述线上的流量数据是指关于上述目标行为链路实际发生的流量数据。例如,用户线上还款对应的流量数据。图8为本说明书一实施例提供中根据代码特征库确定链路库的示意图。参考图8,本实施例中获取多条线上的流量数据作为对于代码特征库的输入,并根据线上的流量数据的流向将上述代码特征库中的代码场景特征,从而可以实现将代码特征库中分撒的代码场景特征串连为多条场景代码链路,得到链路库如图8所示。其中,链路库中每条场景代码链路为:通过关于目标行为链路的代码场景特征来表示线上的流量数据。
66.继续参考图2,在s230中,将线下的流量数据对应的路径和上述链路库中的上述场景代码链路进行关联处理,得到关系图谱。
67.在示例性的实施例中,图9为本说明书一实施例提供中根据链路库确定关系图谱的方法流程示意图,具体的,该图所示实施例可以作为s230的一种具体实施方式。参考图9,该图所示实施例包括:s232-s234。
68.在s232中,在上述链路库中确定出与上述线下的流量数据对应的路径中的节点相同的节点,得到关联节点,和/或在上述链路库中确定出与上述线下的流量数据对应的路径中的要素相同的要素,得到关联要素。
69.示例性的,上述线下的流量数据可以是测试产生的流程/测试用例对应的路径trace。图10为本说明书一实施例提供中根据链路库确定关系图谱的示意图。参考图10,假如一条线下的流量数据s对应的路径为:要素x-节点b-节点c,则基于上述链路库,可以确定线下的流量数据s与上述链路库之间相同的节点(关联节点)为:节点b和节点c;基于上述链路库,可以确定两者之间不存在相同的要素(关联要素)。
70.在s234中,以上述关联节点和/或上述关联要素作为交集,将上述线下的流量数据对应的路径添加至上述链路库中,得到反映上述场景代码链路和上述线下的流量数据对应的路径之间关联关系的上述关系图谱。
71.示例性的,仍然参考上述图10,以上述关联节点:节点b和节点c为线下的流量数据对应的路径s与上述链路库的交集,将上述线下的流量数据对应的路径s添加至上述链路库中。
72.以此类推,将多个测试用例对应的路径添加至上述链路库之后,便可以得到反映上述场景代码链路和上述线下的流量数据对应的路径之间关联关系的上述关系图谱。
73.本说明书实施例提供的关系图谱确定方案中,通过将线下的流量数据与上述链路库进行关联的方式,可以将线下的流量数据(对应于测试人员设置的多个场景)与上述链路库(反映线上的流量数据流向的链路)之间建立关联。具体地,以下通过图11和图12a以及图12b来详细介绍上述关联关系。
74.其中,图11为本说明书一实施例提供中根据关系图谱确定关联场景和待识别链路的方法流程示意图。参考图11所示实施例,在上述线下的流量数据对应的路径为多个用例对应的路径的情况下执行。
75.参考图11,在s236中,在上述链路库中确定出与上述多个用例对应的路径中的节点相同的节点,得到第一关联节点,和/或在上述链路库中确定出与上述多个用例对应的路
径中的要素相同的要素,得到第一关联要素。
76.示例性的,上述第一关联节点与上述第一关联要素的确定方法与图9中s232对应的实施例相同,在此不再赘述。
77.在s238中,将包含上述第一关联节点和/或第一上述关联要素的目标用例,确定为上述关系图谱中的关联场景。
78.参考图12b,将包含第一关联节点(即,节点a、节点b和节点c)以及第一关联要素(即,要素e)的目标用例(即,用例1),确定为上述关系图谱中的关联场景1;以及,将包含第一关联节点(即,节点b、节点c和节点d)以及第一关联要素(即,要素f)的目标用例(即,用例2),确定为上述关系图谱中的关联场景2。
79.在s238’中,将与上述多个用例的路径之间不包含上述第一关联节点和上述第一关联要素的场景代码链路,确定为不关联场景的待识别链路。
80.参考图12b,对于关系图谱中的与用例路径无关的场景代码链路,即链路中不包含上述第一关联节点也不包含上述第一关联要素路,则将这部分链路确定为不关联场景/用例的待识别链路。
81.经过图11对应的处理之后,可以将图12a所示的关系图谱处理为如图12b所示的样,其中包含多个关联场景以及多个不关联场景的待识别链路。其中,如图12b示出样式的关系图谱更便于确定出待推荐的目标场景和/或目标链路。
82.继续参考图2,在s240中,获取关于上述目标行为链路的变更代码特征,并从上述关系图谱中确定出与上述并更代码特征相关的目标链路和/或目标场景。
83.在示例性的实施例中,图13为本说明书一实施例提供的根据关系图谱确定目标场景和目标链路的方法流程示意图,具体的,该图所示实施例可以作为s240的一种具体实施方式。参考图13,该图所示实施例包括:s242-s246。
84.在s242中,在上述关联场景对应的路径中确定出与上述并更代码特征相同的节点,得到第二关联节点,和/或在上述关联场景对应的路径中确定出与上述并更代码特征相同的要素,得到第二关联要素,其中,存在上述第二关联节点和/或上述第二关联要素的关联场景则为上述目标场景,存在上述第二关联节点和/或上述第二关联要素的待识别链路则为上述目标链路。
85.示例性的,经过静态代码分析可以得出关于目标行为链路的变更代码特征,变更的类型包括更新特征与新增特征。图14为本说明书一实施例提供的根据关系图谱确定目标场景和目标链路的示意图。参考图14,变更代码特征包括:更新的要素x、节点d;以及,新增的节点h。
86.示例性的,参考图14,则基于上述关系图谱,可以确定变更代码特征与上述链路库之间相同的节点(第二关联节点)为:节点d;基于关系图谱,可以确定变更代码特征与上述链路库之间相同的要素(第二关联要素)为:要素x。
87.从而,存在上述第二关联节点(即,节点d)的关联场景2确定为目标场景(即,节点b-节点c-节点d/要素f)。存在上述第二关联要素(即,要素x)的待识别链路/用例3确定为目标链路(即,要素x-节点c-节点b)。其中,由于线下的流量数据对应于测试人员设置的多个场景,因此上述目标场景无需再进行语义分析,相关人员也可以明确相关场景含义。而对于由包含上述第二关联要素/第二关联节点的待识别链路确定的上述目标链路(如,要素x-节
点c-节点b),可以进一步分析链路对应的代码注释,得到对应的行为语义,以使得上述目标链路具有较强的语义信息,便于相关人员对所推荐链路的理解与应用。
88.在s244中,通过静态代码分析的方式,分析上述代码特征库和新增代码特征之间的代码调用关系,根据上述代码调用关系确定中间链路。
89.其中,上述新增代码特征为上述变更代码特征中的一种。本实施例中,为了挖掘待识别链路与变更代码特征中新增代码特征之间可能存在的关系,对于上述代码特征库,通过静态代码分析的方式分析其与每个新增代码特征之间的代码调用关系。并将具有代码调用关系的代码场景特征确定为中间链路。示例性的,参考图14,经过静态代码分析,得出节点a、新增代码节点h以及节点m之间存在的代码调用关系,则可以得出中间链路:节点a-节点h-节点m。
90.在s246中,分析上述中间链路对应的代码注释,得到包含行为语义的中间链路,并将上述包含行为语义的中间链路确定为上述目标链路。
91.同前所述,由于上述中间链路是由静态代码分析代码特征库以及新增代码特征确定的,因此,为了相关人员也可以明确相关行为含义,需对中间链路进行语义分析。即进一步分析链路(如,节点a-节点h-节点m)对应的代码注释,得到对应的行为语义,从而可以使得所推荐的目标链路具有较强的语义信息,便于相关人员对所推荐链路的理解与应用。
92.本说明书实施例所提供的方案,基于关于目标行为链路的代码场景特征(包括关键代码节点的必经节点、关键代码节点的控制流要素,以及信息流要素等)确定代码特征库;基于上述代码特征库确定线上的流量数据对应的链路,并将得到的多条场景代码链路确定链路库;进一步地,还将线下的流量数据关联至上述链路库,以确定反映线下的流量数据对应的链路与场景代码链路之间关系的关系图谱。其中,该关系图谱可以清晰方便且全面的反映线下的流量数据与上述线上的流量数据所形成的链路之间的关系,有利于加速测试进程,还有利于全面且精准地确定出受到代码变更所影响的场景,和/或具有行为语义的相关链路。
93.具体的推荐内容不仅包括原有的有效用例、原有的无关联场景的代码链路(附带行为语义),还包括包含行为语义的新代码链路(对代码特征库和新增代码特征进行静态代码分析得到),从而高效率实现赋能事前推荐。
94.需要注意的是,上述附图仅是根据本说明书示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
95.下述为本说明书装置实施例,可以用于执行本说明书方法实施例。对于本说明书装置实施例中未披露的细节,请参照本说明书方法实施例。
96.其中,图15示出了可以应用本说明书一实施例的数据的推荐装置的结构示意图。请参见图15,该图所示的数据的推荐装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或一部分,还可以作为独立的模块集成于服务器上,还可以作为独立的模块集成于电子设备中。
97.本说明书实施例中的上述数据的推荐装置1500包括:代码特征库确定模块1510、链路库确定模块1520、图谱确定模块1530,以及推荐模块1540。
98.其中,上述代码特征库确定模块1510,用于对关于目标行为链路的源数据进行特
征提取,得到包含多个代码场景特征的代码特征库;上述链路库确定模块1520,用于基于线上的流量数据和上述代码特征库,确定多条场景代码链路,得到链路库;上述关系库确定模块1530,用于将线下的流量数据对应的路径和上述链路库中的上述场景代码链路进行关联处理,得到关系图谱;以及,上述推荐模块1540,用于获取关于上述目标行为链路的变更代码特征,并从上述关系图谱中确定出与上述变更代码特征相关的目标链路和/或目标场景,其中,将上述目标链路和/或上述目标场景确定为与上述变更代码特征相关的推荐数据。
99.在示例性的实施例中,图16示意性示出了根据本说明书另一示例性的实施例中数据的推荐装置的结构图。请参见图16:
100.在示例性的实施例中,基于上述方案,上述代码特征库确定模块1510,包括:数据采集单元15101、聚合处理单元15102,以及代码特征库确定单元15103。
101.其中,上述数据采集单元15101,用于:采集动态链路数据和静态链路数据,得到上述目标行为链路的源数据;上述聚合处理单元15102,用于:对所述源数据进行聚合处理,并针对代码调用关系构建有向图,利用目标算法从复杂有向有环图中提取出代码支配树,得到所述目标行为链路分别对应的关键要素和关键代码节点;以及,上述代码特征库确定单元15103,用于:基于上述关键要素和上述关键代码节点,确定上述多个代码场景特征,得到上述代码特征库。
102.在示例性的实施例中,基于上述方案,上述聚合处理之后的数据包括:关于系统调用模型的数据、关于代码行模型的数据、关于数据库数据模型的数据以及关于特征模型的数据中的一种或多种。
103.在示例性的实施例中,基于上述方案,上述目标行为链路的数量为多条;上述代码特征库确定单元,包括:识别子单元、筛选子单元,以及特征确定子单元。
104.其中,上述识别子单元,用于:从多条上述目标行为链路对应的关键代码节点中识别出多条上述目标行为链路对应的必经节点和选择节点,其中,上述必经节点为多条上述目标行为链路均经过的节点;上述筛选子单元,用于:基于上述选择节点,筛选出上述关键代码节点的控制流要素;以及,上述特征确定子单元,用于:将上述必经节点、上述关键代码节点的流程控制要素、上述关键要素中的信息流要素和接口出入参,确定为上述代码场景特征。
105.在示例性的实施例中,基于上述方案,上述筛选子单元,具体用于:确定每个上述选择节点对应的代码链路分支行;通过静态代码分析的方式,分析上述代码链路分支行相关的代码调用关系,得到全量的流程控制要素;以及,根据多条上述目标行为链路对应的关键代码节点,对上述全量的流程控制要素进行筛选,得到上述关键代码节点的流程控制要素。
106.在示例性的实施例中,基于上述方案,上述选择节点,包括:影响接口出入参的选择节点、影响外部调用的选择节点、影响数据存储的选择节点以及影响链路分叉的选择节点中的一种或多种。
107.在示例性的实施例中,基于上述方案,上述图谱确定模块1530,包括:关联特征确定单元15301和添加单元15302。
108.其中,上述关联特征确定单元15301,用于:在上述链路库中确定出与上述线下的流量数据对应的路径中的节点相同的节点,得到关联节点,和/或在上述链路库中确定出与
上述线下的流量数据对应的路径中的要素相同的要素,得到关联要素;以及,上述添加单元15302,用于:以上述关联节点和/或上述关联要素作为交集,将上述线下的流量数据对应的路径添加至上述链路库中,得到反映上述场景代码链路和上述线下的流量数据对应的路径之间关联关系的上述关系图谱。
109.在示例性的实施例中,基于上述方案,上述线下的流量数据对应的路径为多个用例对应的路径;上述图谱确定模块1530,还包括:关联场景确定单元15303和待识别链路确定单元15304。
110.其中,上述关联特征确定单元15301,还用于:在上述链路库中确定出与上述多个用例对应的路径中的节点相同的节点,得到第一关联节点,和/或在上述链路库中确定出与上述多个用例对应的路径中的要素相同的要素,得到第一关联要素;上述关联场景确定单元15303,用于:将包含上述第一关联节点和/或第一上述关联要素的目标用例,确定为上述关系图谱中的关联场景,并将上述关联场景对应的路径确定为上述关系图谱中的一部分;以及,上述待识别链路确定单元15304,用于:将与上述多个用例的路径之间不包含上述第一关联节点和上述第一关联要素的链路,确定为不关联场景的待识别链路,并将上述待识别链路作为上述关系图谱中的一部分。
111.在示例性的实施例中,基于上述方案,上述推荐模块1540,具体用于:在上述关联场景对应的路径中确定出与上述变更代码特征相同的节点,得到第二关联节点,和/或在上述关联场景对应的路径中确定出与上述变更代码特征相同的要素,得到第二关联要素,并将存在上述第二关联节点和/或上述第二关联要素的关联场景确定为上述目标场景,存在上述第二关联节点和/或上述第二关联要素的待识别链路则为上述目标链路;以及,通过静态代码分析的方式,分析上述代码特征库和新增代码特征之间的代码调用关系,并根据上述代码调用关系确定上述目标链路。
112.在示例性的实施例中,基于上述方案,上述推荐模块1540,还具体用于:根据上述代码调用关系确定中间链路;以及,分析上述中间链路对应的代码注释,得到包含行为语义的中间链路,并将上述包含行为语义的中间链路确定为上述目标链路。
113.需要说明的是,上述实施例提供的数据的推荐装置在执行数据的推荐方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
114.另外,上述实施例提供的数据的推荐装置与数据的推荐方法实施例属于同一构思,因此对于本说明书装置实施例中未披露的细节,请参照本说明书上述的数据的推荐方法的实施例,这里不再赘述。
115.上述本说明书实施例序号仅仅为了描述,不代表实施例的优劣。
116.本说明书实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例方法的步骤。
117.图17示意性示出了根据本说明书一示例性的实施例中电子设备的结构图。请参见图17所示,电子设备1700包括有:处理器1701和存储器1702。
118.本说明书实施例中,处理器1701为计算机系统的控制中心,可以是实体机的处理器,也可以是虚拟机的处理器。处理器1701可以包括一个或多个处理核心,比如4核心处理
器、8核心处理器等。处理器1701可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
119.在本说明书实施例中,上述处理器1701具体用于:
120.对关于目标行为链路的源数据进行特征提取,得到包含多个代码场景特征的代码特征库;基于线上的流量数据和上述代码特征库,确定多条场景代码链路,得到链路库;将线下的流量数据对应的路径和上述链路库中的上述场景代码链路进行关联处理,得到关系图谱;以及,获取关于上述目标行为链路的变更代码特征,并从上述关系图谱中确定出与上述变更代码特征相关的目标链路和/或目标场景,其中,上述目标链路和/或上述目标场景为与上述变更代码特征相关的推荐数据。
121.进一步地,上述对关于目标行为链路的源数据进行特征提取,得到包含多个代码场景特征的代码特征库,包括:
122.采集动态链路数据和静态链路数据,得到上述目标行为链路的源数据;以及,对上述源数据进行聚合处理,并针对代码调用关系构建有向图,利用目标算法从复杂有向有环图中提取出代码支配树,得到上述目标行为链路分别对应的关键要素和关键代码节点;以及,基于上述关键要素和上述关键代码节点,确定上述多个代码场景特征,得到上述代码特征库。
123.进一步地,上述聚合处理之后的数据包括:关于系统调用模型的数据、关于代码行模型的数据、关于数据库数据模型的数据以及关于特征模型的数据中的一种或多种。
124.进一步地,上述目标行为链路的数量为多条;上述基于上述关键要素和上述关键代码节点,确定上述多个代码场景特征,包括:
125.从多条上述目标行为链路对应的关键代码节点中识别出多条上述目标行为链路对应的必经节点和选择节点,其中,上述必经节点为多条上述目标行为链路均经过的节点;基于上述选择节点,筛选出上述关键代码节点的控制流要素;以及,将上述必经节点、上述关键代码节点的流程控制要素、上述关键要素中的信息流要素和接口出入参,确定为上述代码场景特征。
126.进一步地,上述基于上述选择节点,筛选出上述关键代码节点的控制流要素,包括:
127.确定每个上述选择节点对应的代码链路分支行;通过静态代码分析的方式,分析上述代码链路分支行相关的代码调用关系,得到全量的流程控制要素;以及,根据多条上述目标行为链路对应的关键代码节点,对上述全量的流程控制要素进行筛选,得到上述关键代码节点的流程控制要素。
128.进一步地,上述选择节点,包括:影响接口出入参的选择节点、影响外部调用的选择节点、影响数据存储的选择节点以及影响链路分叉的选择节点中的一种或多种。
129.进一步地,上述将线下的流量数据对应的路径和上述链路库中的上述场景代码链路进行关联处理,得到关系图谱,包括:
130.在上述链路库中确定出与上述线下的流量数据对应的路径中的节点相同的节点,
得到关联节点,和/或在上述链路库中确定出与上述线下的流量数据对应的路径中的要素相同的要素,得到关联要素;以及,以上述关联节点和/或上述关联要素作为交集,将上述线下的流量数据对应的路径添加至上述链路库中,得到反映上述场景代码链路和上述线下的流量数据对应的路径之间关联关系的上述关系图谱。
131.进一步地,上述线下的流量数据对应的路径为多个用例对应的路径;
132.上述将线下的流量数据对应的路径和上述链路库中的上述场景代码链路进行关联处理,得到关系图谱,包括:
133.在上述链路库中确定出与上述多个用例对应的路径中的节点相同的节点,得到第一关联节点,和/或在上述链路库中确定出与上述多个用例对应的路径中的要素相同的要素,得到第一关联要素;将包含上述第一关联节点和/或第一上述关联要素的目标用例,确定为上述关系图谱中的关联场景,并将上述关联场景对应的路径确定为上述关系图谱中的一部分;以及,将与上述多个用例的路径之间不包含上述第一关联节点和上述第一关联要素的链路,确定为不关联场景的待识别链路,并将上述待识别链路作为上述关系图谱中的一部分。
134.进一步地,上述从上述关系图谱中确定出与上述变更代码特征相关的目标链路和/或目标场景,包括:
135.在上述关联场景对应的路径中确定出与上述变更代码特征相同的节点,得到第二关联节点,和/或在上述关联场景对应的路径中确定出与上述变更代码特征相同的要素,得到第二关联要素,并将存在上述第二关联节点和/或上述第二关联要素的关联场景确定为上述目标场景,存在上述第二关联节点和/或上述第二关联要素的待识别链路则为上述目标链路;以及,通过静态代码分析的方式,分析上述代码特征库和新增代码特征之间的代码调用关系,并根据上述代码调用关系确定上述目标链路。
136.进一步地,上述根据上述代码调用关系确定上述目标链路,包括:
137.根据上述代码调用关系确定中间链路;以及,分析上述中间链路对应的代码注释,得到包含行为语义的中间链路,并将上述包含行为语义的中间链路确定为上述目标链路。
138.存储器1702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在本说明书的一些实施例中,存储器1702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1701所执行以实现本说明书实施例中的方法。
139.一些实施例中,电子设备1700还包括有:外围设备接口1703和至少一个外围设备。处理器1701、存储器1702和外围设备接口1703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1703相连。具体地,外围设备包括:显示屏1704、摄像头1705和音频电路1706中的至少一种。
140.外围设备接口1703可被用于将输入/输出(input/output,i/o)相关的至少一个外围设备连接到处理器1701和存储器1702。在本说明书的一些实施例中,处理器1701、存储器1702和外围设备接口1703被集成在同一芯片或电路板上;在本说明书的一些其他实施例中,处理器1701、存储器1702和外围设备接口1703中的任意一个或两个可以在单独的芯片或电路板上实现。本说明书实施例对此不作具体限定。
141.显示屏1704用于显示用户界面(user interface,ui)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1704是触摸显示屏时,显示屏1704还具有采集在显示屏1704的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1701进行处理。此时,显示屏1704还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在本说明书的一些实施例中,显示屏1704可以为一个,设置电子设备1700的前面板;在本说明书的另一些实施例中,显示屏1704可以为至少两个,分别设置在电子设备1700的不同表面或呈折叠设计;在本说明书的再一些实施例中,显示屏1704可以是柔性显示屏,设置在电子设备1700的弯曲表面上或折叠面上。甚至,显示屏1704还可以设置成非矩形的不规则图形,也即异形屏。显示屏1704可以采用液晶显示屏(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等材质制备。
142.摄像头1705用于采集图像或视频。可选地,摄像头1705包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备的前面板,后置摄像头设置在电子设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及虚拟现实(virtual reality,vr)拍摄功能或者其它融合拍摄功能。在本说明书的一些实施例中,摄像头1705还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
143.音频电路1706可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1701进行处理。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备1700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。
144.电源1707用于为电子设备1700中的各个组件进行供电。电源1707可以是交流电、直流电、一次性电池或可充电电池。当电源1707包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
145.本说明书实施例中示出的电子设备结构框图并不构成对电子设备1700的限定,电子设备1700可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
146.本说明书实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述实施例中的一个或多个步骤。上述数据的推荐装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取存储介质中。
147.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本说明书实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者通过上述计算机可读存储介质进行传输。上述计算机指令可以从一个网站站点、
计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(digital versatile disc,dvd))、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
148.在本说明书的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本说明书中的具体含义。此外,在本说明书的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
149.需要注意的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
150.以上所述,仅为本说明书的具体实施方式,但本说明书的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本说明书的保护范围之内。因此,依本说明书权利要求所作的等同变化,仍属本说明书所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1