一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于资源树的资源查询方法、装置、设备和介质与流程

2022-02-20 12:39:46 来源:中国专利 TAG:


1.本发明实施例涉及大数据技术领域,尤其涉及一种基于资源树的资源查询方法、装置、设备和介质。


背景技术:

2.资源树是指将资源以树形结构进行展示的一种控件,能够为用户提供资源导航或者资源查询等功能。对于不同的资源树系统,资源树的查询需求可能不同,所以常采用的查询方式是根据用户需求定义查询条件,然后根据定义的查询条件进行资源查询。当用户的需求发生变化时,往往需要新增或者修改已定义的查询条件,从而影响资源树的查询健壮性。


技术实现要素:

3.本发明实施例提供一种基于资源树的资源查询方法、装置、设备和介质,提高了资源树的资源查询健壮性。
4.第一方面,本发明实施例提供了一种基于资源树的资源查询方法,该方法包括:
5.在获取到资源查询请求时,将所述资源查询请求划分为资源节点获取请求和资源子树构建请求;
6.根据所述资源节点获取请求,从资源树中获取至少一个目标资源节点;
7.根据所述资源子树构建请求,从所述资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点;
8.根据所述每个目标资源节点和所述每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。
9.第二方面,本发明实施例还提供了一种基于资源树的资源查询装置,该装置包括:
10.查询请求划分模块,用于在获取到资源查询请求时,将所述资源查询请求划分为资源节点获取请求和资源子树构建请求;
11.第一节点获取模块,用于根据所述资源节点获取请求,从资源树中获取至少一个目标资源节点;
12.第二节点获取模块,用于根据所述资源子树构建请求,从所述资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点;
13.资源子树构建模块,用于根据所述每个目标资源节点和所述每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。
14.第三方面,本发明实施例还提供了一种电子设备,包括:
15.一个或多个处理器;
16.存储装置,用于存储一个或多个程序,
17.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例中任一所述的基于资源树的资源查询方法。
18.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例中任一所述的基于资源树的资源查询方法。
19.本发明实施例公开的技术方案,具有如下有益效果:
20.通过将获取的资源查询请求,划分为资源节点获取请求和资源子树构建请求,以根据资源节点获取请求,从资源树中获取至少一个目标资源节点,并根据资源子树构建请求,从资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点,然后根据每个目标资源节点和每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。由此,通过将资源查询请求划分为资源节点获取请求和资源子树构建请求,以实现对资源树的任意资源子树查询的目的,从而满足用户的资源查询需求,提高了资源树的资源查询健壮性。
附图说明
21.图1是本发明实施例提供的一种基于资源树的资源查询方法的流程示意图;
22.图2是本发明实施例提供的另一种基于资源树的资源查询方法的流程示意图;
23.图2(a)是本发明实施例提供的一种资源树的示意图;
24.图2(b)是本发明实施例提供的第一种基于资源树构建的目标资源子树的示意图;
25.图2(c)是本发明实施例提供的第二种基于资源树构建的目标资源子树的示意图;
26.图2(d)是本发明实施例提供的第三种基于资源树构建的目标资源子树的示意图;
27.图2(e)是本发明实施例提供的第四种基于资源树构建的目标资源子树的示意图;
28.图2(f)是本发明实施例提供的第五种基于资源树构建的目标资源子树的示意图;
29.图3是本发明实施例提供的再一种基于资源树的资源查询方法的流程示意图;
30.图3(a)是本发明实施例提供的另一种资源树的示意图;
31.图3(b)是本发明实施例提供的一种基于资源树构建的目标资源子树的示意图;
32.图4是本发明实施例提供的一种基于资源树的资源查询装置的结构示意图;
33.图5是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
34.下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
35.下面参考附图对本发明实施例提供的基于资源树的资源查询方法、装置、设备和介质。
36.图1是本发明实施例提供的一种基于资源树的资源查询方法的流程示意图,本实施例可适用于在资源树中进行资源查询的情况,该方法可以由基于资源树的资源查询装置来执行,该装置可由硬件和/或软件组成,并一般可集成于电子设备中。如图1所示,该方法具体包括如下:
37.s101,在获取到资源查询请求时,将所述资源查询请求划分为资源节点获取请求和资源子树构建请求。
38.在本实施例中,资源查询请求是指用户根据业务需求,向具有资源树的设备发送的资源查询请求。通常,用户可通过不同方式发送资源查询请求,例如在查询框中输入查询关键词,或者语音等方式,此处对其不做具体限定。
39.示例性的,获取到用户发送的资源查询请求后,可对该资源查询请求进行解析,以获取资源查询请求中携带的资源查询参数。根据资源查询参数,按照预设的划分规则将该资源查询请求划分为资源节点获取请求和资源子树构建请求。其中,预设的划分规则可以是根据资源查询需求设置的一种通用规则。
40.其中,资源查询请求携带的资源查询参数可包括:目标资源标识、目标资源类型或者目标资源父节点标识,以及所述目标资源的祖先遍历标识值、所述目标资源祖先遍历深度值、所述目标资源子孙遍历标识值和/或所述目标资源子孙遍历深度值。
41.在本实施例中,目标资源标识是指能够唯一确定目标资源身份的信息。例如,资源名称或者资源id等。目标资源父节点标识是指能够唯一确定目标资源父节点身份的信息,例如父节点名称或者父节点id等。目标资源的祖先遍历标识值代表是否对目标资源的祖先节点进行遍历;目标资源的祖先遍历深度值代表对目标资源的祖先节点进行遍历时的遍历深度;目标资源的子孙遍历标识值代表是否对资源的子孙节点进行遍历;目标资源的子孙遍历深度值代表对目标资源的子孙节点进行遍历时的遍历深度。
42.可以理解的是,本实施例中目标资源的祖先遍历标识值、目标资源祖先遍历深度值、目标资源子孙遍历标识值和/或目标资源子孙遍历深度值,可以是指:目标资源的祖先遍历标识值;或者,是指目标资源的祖先遍历标识值和目标资源祖先遍历深度值;或者,是指目标资源的子孙遍历标识值;或者,是指目标资源的子孙遍历标识值和目标资源的子孙遍历深度值;或者,是指目标资源的祖先遍历标识值和目标资源的子孙遍历标识值;或者,是指目标资源的祖先遍历标识值、目标资源的祖先遍历深度值和目标资源的子孙遍历标识值;或者,是指目标资源的祖先遍历标识值、目标资源的子孙遍历标识值和目标资源的子孙遍历深度值;或者,是指目标资源的祖先遍历标识值、目标资源的祖先遍历深度值、目标资源的子孙遍历标识值和目标资源的子孙遍历深度值等等,此处对其不做具体限定。
43.s102,根据所述资源节点获取请求,从资源树中获取至少一个目标资源节点。
44.在本实施例中,资源树可以是应用于任一业务场景下的树。其中,资源树中的节点为资源节点。任一资源节点连同其所有前继节点和/或后继节点所组成的集合成为一个资源子树。
45.例如,如果把一个局域网作为树的根节点,则它的子节点可以是局域网中的各台主机,每台主机的子节点则为主机上的文件系统或者数据库系统,进而每个文件系统的子节点是根目录下的子目录,以此类推,最终的叶子节点可能是文件,或者是一个数据块,又或者一个字节等,具体根据划分粒度来确定。
46.可选的,本实施例中资源节点获取请求中携带目标资源信息。其中,目标资源信息可以为目标资源标识、目标资源类型或者目标资源父节点标识等,此处对其不做具体限定。
47.具体实现时,如果确定资源节点获取请求中携带有目标资源信息,则根据目标资源信息,从资源树中获取与目标资源信息对应的至少一个目标资源节点。
48.s103,根据所述资源子树构建请求,从所述资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点。
49.可选的,获取到至少一个目标资源节点之后,本发明实施例可根据资源子树构建请求,确定每个目标资源节点是否具有获取对应祖先节点和/或子孙节点的需求。若任意目标资源节点具有获取自身对应祖先节点和/或子孙节点的需求,则根据资源子树构建请求,从资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点。
50.可以理解的是,本实施例中,获取每个目标资源节点的目标祖先节点和/或目标子孙节点,可以是指获取每个目标资源节点的目标祖先节点;或者,是指获取每个目标资源节点的目标子孙节点;或者,是指获取每个目标资源节点的目标祖先节点和目标子孙节点,此处对其不做具体限定。
51.s104,根据所述每个目标资源节点和所述每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。
52.可选的,获取到目标资源节点及目标资源节点的目标祖先节点和/或目标子孙节点之后,即可根据目标资源节点连同其目标祖先节点和/或目标子孙节点构建目标资源子树。
53.进而,将构建的目标资源子树进行展示,使得用户基于展示的目标资源子树,得到资源查询结果。
54.本发明实施例提供的技术方案,通过将获取的资源查询请求,划分为资源节点获取请求和资源子树构建请求,以根据资源节点获取请求,从资源树中获取至少一个目标资源节点,并根据资源子树构建请求,从资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点,然后根据每个目标资源节点和每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。由此,通过将资源查询请求划分为资源节点获取请求和资源子树构建请求,以实现对资源树的任意子树查询的目的,从而满足了用户的资源查询需求,提高了资源树的资源查询健壮性。
55.基于上述实施例,可选的本发明实施例中,资源树的数量可以为多个,那么获取到的资源查询请求中携带的资源查询参数还包括:目标资源树标识。
56.在本实施例中,目标资源树标识是指能够唯一确定资源树身份的信息。例如,资源树id或者资源树名称等,此处对其不做具体限定。
57.也就是说,当获取到资源查询请求时,可通过对该资源查询请求进行解析。若确定解析结果中包括目标资源树标识,则根据目标资源树标识,从多个资源树中获取目标资源树,并在目标资源树中进行资源查询。
58.图2是本发明实施例提供的另一种基于资源树的资源查询方法的流程示意图,本实施例在上述实施例的基础上进行进一步优化。如图2所示,该方法具体包括如下:
59.s201,在获取到资源查询请求时,对所述资源查询请求进行解析,以获取资源查询请求携带的资源查询参数。
60.其中,资源查询参数包括:目标资源标识、目标资源类型或者目标资源父节点标识,以及所述目标资源的祖先遍历标识、所述目标资源祖先遍历深度、所述目标资源子孙遍历标识和/或所述目标资源子孙遍历深度。
61.s202,根据所述资源查询请求中的目标资源标识、目标资源类型或者目标资源父节点标识,构建所述资源节点获取请求。
62.s203,根据所述资源查询请求中的所述目标资源的祖先遍历标识、所述目标资源
的祖先遍历深度、所述目标资源子孙遍历标识和/或所述目标资源子孙遍历深度,构建所述资源子树构建请求。
63.为了方便对资源节点获取请求和资源子树构建请求进行说明,本实施例可通过集合c表示资源节点获取请求,集合d表示资源子树构建请求。
64.s204,根据所述资源节点获取请求,从资源树中获取至少一个目标资源节点。
65.可选的,可通过以下方式,从资源树中获取至少一个目标资源节点。
66.方式一
67.根据所述资源节点获取请求中携带的目标资源标识、目标资源类型或者目标资源父节点标识,对所述资源树进行遍历,以获取至少一个目标资源节点。
68.方式二
69.根据所述资源节点获取请求中携带的目标资源标识、目标资源类型或者目标资源父节点标识,查询所述资源树的资源节点列表,以获取至少一个目标资源节点。
70.其中,资源节点列表可以是预先基于资源树创建的,并且该资源节点列表中包括:资源节点标识、资源类型和资源父节点标识。
71.需要说明的是,上述两种方式仅作为对本发明实施例的示例性说明,不作为对本发明实施例的具体限定。
72.例如,若目标资源标识为:id2,则根据id2遍历资源树,以获取标识为id2的资源节点,作为目标资源节点。
73.又例如,若目标资源标识包括:车辆研判和分析业务,则根据车辆研判和分析业务,分别从资源树的资源节点列表中查询车辆研判的资源节点和分析业务的资源节点,并将查询到的车辆研判的资源节点作为第一目标资源节点,将分析业务的资源节点作为第二目标资源节点。
74.s205,所述根据所述资源子树构建请求,从所述资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点。
75.可选的,可根据所述资源子树构建请求携带的所述目标资源的祖先遍历标识值、所述目标资源的祖先遍历深度值、所述目标资源子孙遍历标识值和/或所述目标资源子孙遍历深度值,对所述资源树进行遍历,以获取每个目标资源节点的目标祖先节点和/或目标子孙节点。
76.s206,根据所述每个目标资源节点和所述每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。
77.为了清楚的说明本发明实施例,下面通过以下具体示例进行说明。
78.例如,假设资源树如图2(a)所示,其中资源类型可包括:目录(dir)、作业(job)、工作流(flow)、交互式(sql)、文件(file)、调度(schedule);资源的资源名称包括:研判业务、分析业务、过车查询、时间查询、车辆研判、人脸、检索、流量分析、凌晨调度、按时间检索、按车牌检索和spark jar(spark应用依赖jar包);资源的资源id包括:rootid0、研判业务id1、分析业务id2、过车查询id3、时间查询id4、车辆研判id5、人脸id6、检索id7、流量分析id8、凌晨调度id9、按时间检索id10、按车牌检索id11和spark jar(spark应用依赖jar包)id12。
79.如果资源查询请求中未携带资源查询参数,即c=null,表示查询资源树的所有节点,则整个资源树即为目标资源子树。
80.如果资源查询请求中携带有目标资源父节点标识,且该目标资源父节点标识为:p_id=0,即c={p_id=0},表示查询父节点id为0的资源节点,如图2(a)可知根节点(root)的id为0,那么确定根节点的后继节点(研判业务、分析业务、过车查询和时间查询)为目标资源节点。进一步,如果资源查询请求中除了携带目标资源父节点标识之外,未携带其它资源查询参数,则确定资源子树构建请求中未携带目标资源节点的祖先节点和子孙节点遍历参数,即d={null}或者d={p_recursive=false,s_recursive=false},表示无需遍历该目标资源节点的祖先节点和子孙节点。其中,p_recursive=false表示目标资源祖先遍历标识值为false,s_recursive表示目标资源子孙遍历标识值为false。由此,基于图2(a)可得到4个目标资源子树,分别为:子树0:研判业务,子树1:分析业务,子树2:过车查询,子树3:时间查询,参见图2(b)。本示例中,根据该4个子树可得到目标资源子树集合:{子树0:研判业务,子树1:分析业务,子树2:过车查询,子树3:时间查询}。
81.如果资源查询请求中携带有目标资源父节点标识,且该目标资源父节点标识为:p_id=1,即c={p_id=1},表示查询父节点id为1的资源节点,如图2(a)可知研判业务节点的id为1,那么确定研判业务节点的后继节点(车辆研判和人脸)为目标资源节点。进一步,如果资源查询请求中除了携带目标资源父节点标识之外,还携带有目标资源节点的子孙节点遍历参数,则确定资源子树构建请求对应的集合d={s_recursive=true},其中,s_recursive为目标资源子孙遍历标识值为true,表示遍历目标资源节点的所有子孙节点。由此,基于目标资源节点的子孙节点遍历参数和图2(a),可得到目标资源节点“车辆研判”的所有子孙节点为:流量分析、凌晨调度和spark jar,以及目标资源节点“人脸”的所有子孙节点为:无。相应的,根据目标资源节点:“车辆研判”和“人脸”,以及“车辆研判”的所有子孙节点,得到目标资源子树有2个,分别为:子树4和子树5,具体参见图2(c)。本示例中,根据该2个子树可得到目标资源子树集合:{子树4,子树5}。
82.如果资源查询请求中携带有目标资源类型,且该目标资源类型为:job,即c={type=job},表示查询类型为job的资源节点,如图2(a)可知类型为job的资源节点包括:分析业务、人脸、流量分析和按车牌检索,那么确定分析业务、人脸、流量分析和按车牌检索为目标资源节点。进一步,如果资源查询请求中除了携带目标资源类型之外,未携带其它资源查询参数,则确定资源子树构建请求中未携带目标资源节点的祖先节点和子孙节点遍历参数,即d={null}或者d={p_recursive=false,s_recursive=false},表示无需遍历目标资源节点的祖先节点和子孙节点。由此,可得到目标资源子树有4个,分别为:子树6:分析业务,子树7:人脸,子树8:流量分析,子树9:按车牌检索,参见图2(d)。本示例中,根据该4个子树可得到目标资源子树集合:{子树6:分析业务,子树7:人脸,子树8:流量分析,子树9:按车牌检索}。
83.如果资源查询请求中携带有目标资源类型,且该目标资源类型为:flow,即c={type=flow},表示查询类型为flow的资源节点,如图2(a)可知类型为flow的资源节点包括:车辆研判,那么确定车辆研判为目标资源节点。进一步,如果资源查询请求中除了携带目标资源类型之外,还携带目标资源节点的祖先节点和子孙节点遍历参数,则确定资源子树构建请求对应的集合d={p_recursive=true,s_recursive=true},表示需要遍历目标资源节点的所有祖先节点和所有子孙节点。由此,基于目标资源节点的祖先节点和子孙节点遍历参数和图2(a),可得到目标资源节点“车辆研判”的所有祖先节点为:研判业务和
root,以及所有子孙节点为:流量分析、凌晨调度和spark jar。进而,根据“车辆研判”、“研判业务”、“root”、“流量分析”、“凌晨调度”和“spark jar”,得到目标资源子树10,具体参见图2(e)。
84.如果资源查询请求中携带有目标资源类型,且该目标资源类型为:flow,即c={type=flow},表示查询类型为flow的资源节点,如图2(a)可知类型为flow的资源节点包括:车辆研判,那么确定车辆研判为目标资源节点。进一步,如果资源查询请求中除了携带目标资源类型之外,还携带目标资源节点的祖先节点和子孙节点遍历参数,则确定资源子树构建请求对应的集合d={p_recursive=true,s_recursive=true,p_depth=1,s_depth=1},表示需要遍历目标资源节点的祖先节点和子孙节点,且遍历目标资源节点的祖先节点和子孙节点的深度值为1。由此,基于目标资源节点的祖先节点和子孙节点遍历参数和图2(a),可得到目标资源节点“车辆研判”的祖先节点为:研判业务,以及子孙节点为:流量分析和凌晨调度。进而,根据“车辆研判”、“研判业务”、“流量分析”和“凌晨调度”,得到目标资源子树11,具体参见图2(f)。
85.本发明实施例提供的技术方案,通过将获取的资源查询请求,划分为资源节点获取请求和资源子树构建请求,以根据资源节点获取请求,从资源树中获取至少一个目标资源节点,并根据资源子树构建请求,从资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点,然后根据每个目标资源节点和每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。由此,通过将资源查询请求划分为资源节点获取请求和资源子树构建请求,以实现对资源树的任意子树查询的目的,从而满足了用户的资源查询需求,提高了资源树的资源查询健壮性。
86.图3是本发明实施例提供的再一种基于资源树的资源查询方法的流程示意图,本实施例在上述实施例的基础上进行进一步优化,具体为:若所述目标资源节点的数量为多个,则根据每个目标资源节点和每个资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树之前,还包括:确定多个目标资源节点的目标祖先节点和/或目标子孙节点中是否存在重复节点;若存在,则对重复的目标祖先节点和/或目标子孙节点进行去重处理。如图3所示,该方法具体包括:
87.s301,在获取到资源查询请求时,将所述资源查询请求划分为资源节点获取请求和资源子树构建请求。
88.s302,根据所述资源节点获取请求,从资源树中获取多个目标资源节点。
89.s303,根据所述资源子树构建请求,从所述资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点。
90.s304,确定多个目标资源节点的目标祖先节点和/或目标子孙节点中是否存在重复节点。
91.s305,若存在,则对重复的目标祖先节点和/或目标子孙节点进行去重处理。
92.s306,根据多个目标资源节点和去重后的各目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。
93.下面结合图3(a),对本实施例提供的基于资源树的资源查询方法进行举例说明。
94.假设资源树如图3(a)所示,其中资源类型可包括:目录(dir)、作业(job)、工作流(flow)、交互式(sql)、文件(file)、调度(schedule);资源的资源名称包括:业务1、业务2、
业务3、业务4、业务5、业务6、业务7、业务8、业务9、业务10、业务11;资源的资源id包括:rootid0、业务id1、业务id2、业务id3、业务id4、业务id5、业务id6、业务id7、业务id8、业务id9、业务id10、业务id11。
95.如果资源查询请求中携带有目标资源类型,且该目标资源类型为:flow,即c={type=flow},表示查询类型为flow的资源节点,如图3(a)可知类型为flow的资源节点包括:业务1和业务2,那么确定“业务1和业务2”为目标资源节点。进一步,如果资源子树构建请求中携带目标资源节点的祖先节点和子孙节点遍历参数,即d={p_recursive=true,s_recursive=true,p_depth=1,s_depth=2},表示需要遍历目标资源节点的祖先节点和子孙节点,且遍历目标资源节点的祖先节点的深度值为1,遍历目标资源节点的子孙节点的深度值为2。由此,基于目标资源节点的祖先节点和子孙节点遍历参数和图3(a),可得到目标资源节点“业务1”的祖先节点为:“root”;子孙节点为:“业务5、业务6、业务9和业务10”,和目标资源节点“业务2”的祖先节点为:“root”,;子孙节点为:“业务6、业务7和业务11”。根据目标资源节点“业务1”和“业务2”的祖先节点和子孙节点,确定“业务1”和“业务2”的祖先节点“root”和子孙节点“业务6和业务11”为重复节点,则对“root”、“业务6和业务11”进行去重处理。然后,根据去重后的祖先节点、子孙节点和目标资源节点,构建目标资源子树,具体参见图3(b)。
96.本发明实施例提供的技术方案,通过将获取的资源查询请求,划分为资源节点获取请求和资源子树构建请求,以根据资源节点获取请求,从资源树中获取多个目标资源节点,并根据资源子树构建请求,从资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点,确定多个目标资源节点的目标祖先节点和/或目标子孙节点中是否存在重复节点,若存在,则对重复的目标祖先节点和/或目标子孙节点进行去重处理,然后根据多个目标资源节点和去重后的各目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。由此,通过将资源查询请求划分为资源节点获取请求和资源子树构建请求,以实现对资源树的任意子树查询的目的,从而满足了用户的资源查询需求,提高了资源树的资源查询健壮性。此外,通过对重复祖先节点和/或子孙节点进行去重处理,避免后续构建目标资源子树时,对相同祖先节点和/或子孙节点进行重复构建,降低构建资源子树的处理负担,提高资源子树构建速度。
97.为了实现上述目的,本发明实施例还提出了一种基于资源树的资源查询装置。图4是本发明实施例提供的一种基于资源树的资源查询装置的结构示意图。如图4所示,该装置400包括:查询请求划分模块410、第一节点获取模块420、第二节点获取模块430和资源子树构建模块440。
98.其中,查询请求划分模块410,用于在获取到资源查询请求时,将所述资源查询请求划分为资源节点获取请求和资源子树构建请求;
99.第一节点获取模块420,用于根据所述资源节点获取请求,从资源树中获取至少一个目标资源节点;
100.第二节点获取模块430,用于根据所述资源子树构建请求,从所述资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点;
101.资源子树构建模块440,用于根据所述每个目标资源节点和所述每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。
102.作为本发明实施例的一种可选的实现方式,所述资源查询请求中携带有资源查询参数;
103.所述资源查询参数包括:目标资源标识、目标资源类型或者目标资源父节点标识,以及所述目标资源的祖先遍历标识值、所述目标资源祖先遍历深度值、所述目标资源子孙遍历标识值和/或所述目标资源子孙遍历深度值。
104.作为本发明实施例的一种可选的实现方式,查询请求划分模块410,包括:第一请求构建单元和第二请求构建单元;
105.其中,第一请求构建单元,用于根据所述资源查询请求中的目标资源标识、目标资源类型或者目标资源父节点标识,构建所述资源节点获取请求;
106.第二请求构建单元,用于根据所述资源查询请求中的所述目标资源的祖先遍历标识值、所述目标资源的祖先遍历深度值、所述目标资源子孙遍历标识值和/或所述目标资源子孙遍历深度值,构建所述资源子树构建请求。
107.作为本发明实施例的一种可选的实现方式,第一节点获取模块420,具体用于:
108.根据所述资源节点获取请求中携带的目标资源标识、目标资源类型或者目标资源父节点标识,对所述资源树进行遍历,以获取至少一个目标资源节点;
109.或者,根据所述资源节点获取请求中携带的目标资源标识、目标资源类型或者目标资源父节点标识,查询所述资源树的资源节点列表,以获取至少一个目标资源节点。
110.作为本发明实施例的一种可选的实现方式,第二节点获取模块430,具体用于:
111.根据所述资源子树构建请求携带的所述目标资源的祖先遍历标识值、所述目标资源的祖先遍历深度值、所述目标资源子孙遍历标识值和/或所述目标资源子孙遍历深度值,对所述资源树进行遍历,以获取每个目标资源节点的目标祖先节点和/或目标子孙节点。
112.作为本发明实施例的一种可选的实现方式,若所述目标资源节点的数量为多个,则所述装置400,还包括:重复节点确定模块和去重处理模块;
113.其中,重复节点确定模块,用于确定多个目标资源节点的目标祖先和/或目标子孙节点中是否存在重复节点;
114.去重处理模块,用于若存在,则对重复的目标祖先节点和/或目标子孙节点进行去重处理。
115.作为本发明实施例的一种可选的实现方式,资源子树构建模块440,具体用于:
116.根据多个目标资源节点和去重后的各目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。
117.作为本发明实施例的一种可选的实现方式,所述查询请求划分模块410具体用于:
118.若资源树的数量为多个,则获取到的资源查询请求还包括:目标资源树标识。
119.需要说明的是,前述对基于资源树的资源查询方法实施例的解释说明也适用于该实施例的基于资源树的资源查询装置,其实现原理类似,此处不再赘述。
120.本发明实施例提供的技术方案,通过将获取的资源查询请求,划分为资源节点获取请求和资源子树构建请求,以根据资源节点获取请求,从资源树中获取至少一个目标资源节点,并根据资源子树构建请求,从资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点,然后根据每个目标资源节点和每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。由此,通过将资源查询请求划分为资源节点获取请求和
资源子树构建请求,以实现对资源树的任意子树查询的目的,从而满足了用户的资源查询需求,提高了资源树的资源查询健壮性。
121.为了实现上述目的,本发明实施例还提出了一种电子设备。
122.图5是本发明实施例提供的一种电子设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性电子设备500的框图。图5显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
123.如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:一个或者多个处理器或者处理单元510,系统存储器520,连接不同系统组件(包括系统存储器520和处理单元510)的总线530。
124.总线530表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
125.电子设备500典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备500访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
126.系统存储器520可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)521和/或高速缓存存储器522。电子设备500可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统523可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线530相连。存储器520可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
127.具有一组(至少一个)程序模块525的程序/实用工具524,可以存储在例如存储器520中,这样的程序模块525包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块525通常执行本发明所描述的实施例中的功能和/或方法。
128.电子设备500也可以与一个或多个外部设备540(例如键盘、指向设备、显示器541等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口550进行。并且,电子设备500还可以通过网络适配器560与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器560通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
129.处理单元510通过运行存储在系统存储器520中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的基于资源树的资源查询方法,包括:
130.在获取到资源查询请求时,将所述资源查询请求划分为资源节点获取请求和资源子树构建请求;
131.根据所述资源节点获取请求,从资源树中获取至少一个目标资源节点;
132.根据所述资源子树构建请求,从所述资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点;
133.根据所述每个目标资源节点和所述每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。
134.需要说明的是,前述对基于资源树的资源查询方法实施例的解释说明也适用于该实施例的电子设备,其实现原理类似,此处不再赘述。
135.本发明实施例提供的技术方案,通过将获取的资源查询请求,划分为资源节点获取请求和资源子树构建请求,以根据资源节点获取请求,从资源树中获取至少一个目标资源节点,并根据资源子树构建请求,从资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点,然后根据每个目标资源节点和每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。由此,通过将资源查询请求划分为资源节点获取请求和资源子树构建请求,以实现对资源树的任意子树查询的目的,从而满足了用户的资源查询需求,提高了资源树的资源查询健壮性。
136.为了实现上述目的,本发明还提出了一种计算机可读存储介质。
137.本发明实施例提供的计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所述的基于资源树的资源查询方法,该方法包括:
138.在获取到资源查询请求时,将所述资源查询请求划分为资源节点获取请求和资源子树构建请求;
139.根据所述资源节点获取请求,从资源树中获取至少一个目标资源节点;
140.根据所述资源子树构建请求,从所述资源树中获取每个目标资源节点的目标祖先节点和/或目标子孙节点;
141.根据所述每个目标资源节点和所述每个目标资源节点的目标祖先节点和/或目标子孙节点,构建目标资源子树。
142.本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
143.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于
由指令执行系统、装置或者器件使用或者与其结合使用的程序。
144.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
145.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
146.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献