发明内容
鉴于此,本申请实施例的目的在于提供一种信息管理方法、装置、电子设备及存储介质,以解决用户在某个作业结束后,无法查询该作业运行期间所使用的资源信息。
第一方面,本申请实施例提供一种信息管理方法,所述方法包括:在作业运行期间,获取运行该作业所使用的资源信息;将所述资源信息存储至数据库。
在上述实现过程中,在作业运行期间获取该作业所使用的资源信息,并将所述资源信息存储至数据库,继而能在该作业运行结束后,也能保证用户能够随时查询到该作业运行期间所使用的资源信息,不再受时间的约束,提高用户体验。
基于第一方面,在一种可能的设计中,所述将所述资源信息存储至数据库,包括:基于预先确定的该作业的标识,将该作业的标识和所述资源信息的对应关系存储至所述数据库。
在数据库中存储有多个作业所使用的资源信息的情况下,为了避免用户在对A作业所使用的资源信息进行查询时,错误地将B作业所使用的资源信息发给该用户的问题,在上述实现过程中,通过将作业的标识和该作业运行期间所使用的资源信息的对应关系存储至数据库,继而能够保证用户能准确地查询到各个作业在运行期间所使用的资源信息,提高用户体验。
基于第一方面,在一种可能的设计中,所述获取运行该作业所使用的资源信息,包括:获取存储有各个作业运行期间所使用的资源信息的作业链表;基于该作业的标识,从所述作业链表中获取与该作业的标识对应的资源信息。
在上述实现过程中,通过预先将各个作业的标识和作业运行期间所使用的资源信息存储在作业链表中,继而能够基于作业的标识,从作业链表中准确地获取与该作业的标识对应的资源信息。
基于第一方面,在一种可能的设计中,所述资源信息包括:多个节点的标识,以及与所述多个节点的标识中的各个节点的标识对应的CPU的标识;在所述获取运行该作业所使用的资源信息之后,所述方法还包括:为该作业分配一个位图;所述位图中包括:多个值全为0的位;针对每个节点的标识,基于预先确定的节点的标识与所述位图中的位的对应关系,确定出与该节点的标识对应的位;针对与该节点的标识对应的每个CPU的标识,基于预先确定的CPU的标识与所述对应的位中的位的对应关系,从所述对应的位中确定出与该CPU的标识对应的目标位;将所述目标位的值置为1;将所述位图解析成字符串;其中,所述将所述资源信息存储至数据库,包括:将所述字符串存储至所述数据库。
在所述资源信息包括多个节点的标识,以及与所述多个节点的标识中的各个节点的标识对应的CPU的标识时,由于直接存储节点的标识和CPU的标识所需存储空间比较大,特别地,在节点的标识和CPU的标识比较多的情况下,所需存储空间更大,因此,为了节约资源存储空间,在上述实现过程中,为该作业分配一个位图,由于位图中的位与节点的标识和CPU的标识对应,一个节点的标识对应位图中的多个目标位,属于该节点中的多个CPU的标识与所述多个目标位分别一一对应,因此,利用所述位图中的各个位的值来表征所述对应的资源信息,便于后期能准确地查询到该作业在运行期间所使用的各个节点的信息,以及所使用的CPU的信息;其次,由于字符串所占存储空间小,因此,通过将所述位图转换成字符串来进行存储,能够极大地节约存储资源。基于第一方面,在一种可能的设计中,在所述将该作业的标识和所述资源信息的对应关系存储至所述数据库之后,所述方法还包括:接收终端设备发送的资源使用信息的查询请求;其中,所述查询请求中包括:该作业的标识;响应所述查询请求,从预先存储的作业的标识和资源信息的对应关系中,查找出与该作业的标识对应的资源信息;将所述对应的资源信息发送给所述终端设备。
在上述实现过程中,通过预先将作业的标识和该作业运行期间所使用的资源信息的对应关系存储至数据库,继而能在接收到查询请求之后,基于查询请求中的作业的标识,从所述对应关系中,快速、准确地查找出与该作业的标识对应的资源信息,并将所述对应的资源信息发送给所述终端设备。
基于第一方面,在一种可能的设计中,在所述获取运行该作业所使用的资源信息之前,所述方法还包括:接收表征需要运行该作业的请求;其中,所述请求中包括:该作业的运行时长;基于所述运行时长和预先确定的运行开始时间,确定该作业的运行结束时间;其中,所述在作业运行期间,获取运行该作业所使用的资源信息,包括:在该作业运行期间,且在所述结束时间之前的预设时长内,获取运行该作业所使用的资源信息。
在上述实现过程中,在接收到表征需要运行该作业的请求之后,基于预先确定的运行开始时间和所述请求中的运行时长,准确地确定出该作业运行结束时间,继而通过在该作业运行期间,且在所述结束时间之前的预设时长内,才获取运行该作业所使用的资源信息,避免由于频繁获取该作业所使用的资源信息而增加服务器的压力。
第二方面,本申请实施例提供一种信息管理装置,所述装置包括:资源信息获取单元,用于在作业运行期间,获取运行该作业所使用的资源信息;资源信息存储单元,用于将所述资源信息存储至数据库。
基于第二方面,在一种可能的设计中,所述资源信息存储单元,具体用于基于预先确定的该作业的标识,将该作业的标识和所述资源信息的对应关系存储至所述数据库。
基于第二方面,在一种可能的设计中,所述资源信息存储单元,还用于获取存储有各个作业运行期间所使用的资源信息的作业链表;基于该作业的标识,从所述作业链表中获取与该作业的标识对应的资源信息。
基于第二方面,在一种可能的设计中,所述对应的资源信息包括:多个节点的标识,以及与所述多个节点的标识中的各个节点的标识对应的CPU的标识;所述装置还包括:解析单元,用于为该作业的标识分配一个位图;所述位图中包括:多个值全为0的位;以及针对每个节点的标识,基于预先确定的节点的标识与所述位图中的位的对应关系,确定出与该节点的标识对应的位;针对与该节点的标识对应的每个CPU的标识,基于预先确定的CPU的标识与所述对应的位中的位的对应关系,从所述对应的位中确定出与该CPU的标识对应的目标位;将所述目标位的值置为1;将所述位图解析成字符串;其中,资源信息存储单元,还用于将该作业标识和所述字符串的对应关系存储至所述数据库。
基于第二方面,在一种可能的设计中,所述装置还包括:查询单元,用于接收终端设备发送的资源使用信息的查询请求;其中,所述查询请求中包括:该作业的标识;以及响应所述查询请求,从预先存储的作业的标识和资源信息的对应关系中,查找出与该作业的标识对应的资源信息;将所述对应的资源信息发送给所述终端设备。
基于第二方面,在一种可能的设计中,所述装置还包括:运行结束时间确定单元,用于接收表征需要运行该作业的请求;其中,所述请求中包括:该作业的运行时长;以及基于所述运行时长和预先确定的运行开始时间,确定该作业的运行结束时间;其中,所述资源信息获取单元,还用于在该作业运行期间,且在所述结束时间之前的预设时长内,获取运行该作业所使用的资源信息。
第三方面,本申请实施例提供一种电子设备,包括处理器以及与所述处理器连接的存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述终端设备执行第一方面所述的方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面所述的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1为本申请实施例提供的一种信息管理方法的流程图,下面将对图1所示的流程进行详细阐述,所述方法包括步骤:S11和S12。
S11:在作业运行期间,获取运行该作业所使用的资源信息。
S12:将所述资源信息存储至数据库。
下面对上述方法进行详细介绍。
作为一种实施方式,在S11之前,所述方法还包括:接收表征需要运行该作业的请求;其中,所述请求中包括:该作业的运行时长;基于所述运行时长和预先确定的运行开始时间,确定该作业的运行结束时间。实时或者不定时地接收用户通过第一终端设备发送的表征需要运行该作业的请求;响应所述请求,从所述请求中提取出该作业的运行时长,并基于所述运行时长和预先确定的运行开始时间,确出该作业的运行结束时间。
其中,所述运行开始时间可以是在接收到所述请求之前确定的,在本实施例中,所述运行开始时间为用户为该作业申请节点时确定的,可以理解的是,针对每个作业,用户都会为该作业预先申请节点,以用于后期运行该作业。
例如:该作业的运行时长为1小时,所述运行开始时间为2020年7月5号上午9点,那么该作业的运行结束时间为2020年7月5号上午10点。
作业的运行开始时间可以由用户通过终端设备设置,因此,作为一种实施方式,所述请求中还可以包括:运行开始时间。
作为一种实施方式,所述请求中还可以包括:该作业的标识。其中,作业的标识具有唯一性,以便于区分各个作业。
S11:在作业运行期间,获取运行该作业所使用的资源信息。其中,所述资源信息包括:节点的标识。
所述资源信息还可以包括:与各个节点标识对应的CPU的标识、GPU的标识、内存大小等信息。在作业只有一个的情况下,无需为该作业分配标识,S11可以按照如下方式实施,在作业运行期间,直接获取运行该作业所使用的资源信息,无需确定该作业的标识。
在作业存在多个的情况下,为了区分各个作业,会为每个作业预先分配好一个唯一标识,作为一种实施方式,S11可以按照如下方式实施,在作业运行期间,基于预先确定的该作业的标识,获取运行该作业所使用的资源信息。
针对每个作业,在该作业结束之前的最后一段时间内,获取到的运行该作业所使用的资源信息最具有代表性,因此,作为一种实施方式,在确定出该作业的运行结束时间之后,S11包括:在该作业运行期间,且在所述结束时间之前的预设时长内,获取运行该作业所使用的资源信息。
例如:所述预设时长为10分钟,作业运行开始时间为2020年7月5号上午9点,作业运行结束的时间为2020年7月5号上午10点,在2020年7月5号上午9点50开始至2020年7月5号上午10点期间,才会获取运行该作业所使用的资源信息。
可以理解的是,通过在作业结束之前的最后一段时间内才获取运行该作业所使用的资源信息,可以避免多次频繁获取运行该作业所使用的资源信息而增加服务器的压力。
由于该作业在整个运行期间所使用的资源信息可能相同,因此,在该作业运行期间,且在所述结束时间之前的预设时长内,获取一次运行该作业所使用的资源信息,继而避免频繁获取运行该作业所使用的资源信息而增加服务器的压力。
由于该作业在整个运行期间所使用的资源信息可能不相同,在该作业运行期间,且在所述结束时间之前的预设时长内,基于第一预设时间间隔不断获取运行该作业所使用的资源信息,不仅能够避免频繁获取运行该作业所使用的资源信息而增加服务器的压力,而且能够更准确地获取该作业在整个运行期间的资源使用情况。
其中,所述预设时长和所述第一预设时间间隔可以根据实际需求设定。
例如,所述预设时长为10分钟,所述第一预设时间间隔为1分钟,作业运行结束的时间为2020年7月5号上午10点,那么从2020年7月5号上午9点50开始至2020年7月5号上午10点,每隔1分钟获取一次当前时间运行该作业所使用的资源信息。
作为一种实施方式,S11可以按照如下方式实施,在该作业运行开始至该作业运行结束期间,基于第二预设时间间隔获取该作业所使用的资源信息。
其中,所述第二预设时间间隔根据实际需求设定,所述第二预设时间间隔可以和所述第一预设时间间隔相同,也可以不同。
由于该作业在整个运行期间所使用的资源信息可能差别不大,因此,为了避免频繁获取运行该作业所使用的资源信息,作为一种实施方式,S11可以按照如下方式实施,在作业运行期间,获取一次运行该作业所使用的资源信息。
由于Slurm系统在作业运行期间,会将各个作业所使用的资源信息存储在作业链表中,因此,作为一种实施方式,S11包括步骤:A1和A2。
A1:获取存储有各个作业运行期间所使用的资源信息的作业链表。
其中,针对该作业链表中的每个作业,该作业在运行期间所使用的资源信息每隔第一预设时间间隔被更新一次(即该作业对应的资源信息会不断地被覆盖),直到该作业运行结束,该作业链表停止存储与该作业对应的资源使用信息。其中,所述第一预设时间间隔根据实际需求设定。因此,为了能够获取到该作业在整个运行期间所使用的资源信息,A1可以按照如下方式实施,针对该作业链表中的每个作业,在作业链表中记录的该作业在运行期间所使用的资源信息被更新时,获取存储有各个作业运行期间所使用的资源信息的作业链表。
作为一种实施方式,在该作业运行期间,不定时地或者基于第二预设时间间隔获取存储有各个作业运行期间所使用的资源信息的作业链表,该作业链表中存储有作业的标识、与该作业的标识对应的该作业运行所使用的资源信息。其中,所述第二预设时间间隔根据实际需求设定。
其中,值得一提的是,各个作业在运行期间所使用的资源信息可能会发生变化,也可能不会发生变化。
在获取到所述作业链表之后,执行步骤A2。
A2:基于该作业的标识,从所述作业链表中获取与该作业的标识对应的资源信息。
在获取到所述资源信息之后,执行步骤S12。
S12:将所述资源信息存储至数据库。
在实施过程中,S12可以按照如下方式实施,将所述资源信息实时或者不定时地存储至数据库。
为了便于用户能够更全面地了解到作业在运行期间的不同时间点所使用的资源信息,因此,作为一种实施方式,S12可以按照如下方式实施,将所述资源信息和获取所述资源信息的时间的对应关系存储至数据库。
为了区分数据库中的各个作业所对应的资源信息,因此,作为一种实施方式,S12包括:基于预先确定的该作业的标识,将该作业的标识和所述资源信息的对应关系存储至所述数据库。
在所述资源信息中包括的节点的标识,以及与各个节点的标识所对应的CPU的标识的数量比较多的情况下,直接存储各个节点的标识所对应的CPU的标识所需存储空间会较大,因此,为了解决该问题,作为一种实施方式,在步骤A2之后,所述方法还包括步骤:C1、C2、C3、C4和C5。
C1:为该作业分配一个位图;所述位图中包括:多个值全为0的位。
可以理解的是,针对每个作业,均会为该作业分配一个位图,一个作业对应一个位图。
可以理解的是,所述位图中的位的值均为0。
所述位图中的位的数量大于等于运行该作业的集群中的全部节点中的全部CPU的标识的数量,以保证不同的节点中的不同的CPU的标识能够对应所述位图中的不同的位,继而保证后期能根据位图中的位在所述位图中的位置来确定该位所表征的节点的标识和CPU的标识。
C2:针对每个节点的标识,基于预先确定的节点的标识与所述位图中的位的对应关系,确定出与该节点的标识对应的位。
其中,所述对应的位的数量与该节点中包括的CPU的标识的数量相同,以保证该节点中的各个CPU的标识与所述对应的位中的位一一对应。
例如,假设集群中包括:节点A和节点B;节点A包括的CPU的标识为CPU1和CPU2;节点B包括的CPU的标识为CPU3、CPU4和CPU5;所述位图中的第一位和第二位均与节点A对应,所述位图中的第三位、第四位和第五位均与节点B对应。
那么,在获取到节点B的标识之后,基于预先确定的节点的标识与所述位图中的位的对应关系,确定出与节点B的标识对应的位包括第三位、第四位和第五位。
在确定出与该节点的标识对应的位之后,执行步骤C3。
C3:针对与该节点的标识对应的每个CPU的标识,基于预先确定的CPU的标识与所述对应的位中的位的对应关系,从所述对应的位中确定出与该CPU的标识对应的目标位。
可以理解的是,所述对应的位中的各个位与属于该节点中的CPU标识是一一对应的关系。
例如:假设节点B包括的CPU标识为CPU3、CPU4和CPU5;与节点B的标识对应的位包括第三位、第四位和第五位;其中,CPU3和第三位对应,CPU4与第四位对应,CPU5和第六位对应;
若所述资源信息中与节点B对应的CPU标识包括:CPU3和CPU5;那么,针对CPU3,基于预先确定的CPU的标识与所述对应的位中的位的对应关系,从所述对应的位中确定出与该CPU的标识对应的目标位为第三位。
在确定出所述目标位之后,执行步骤C4。
C4:将所述目标位的值置为1。
将所述资源信息中的各个节点对应的CPU的标识所对应的目标位的值设置为1之后,执行步骤C5。
C5:将所述位图解析成字符串。
其中,值得一提的是,步骤C5中的位图为将所述对应的资源信息中的各个节点对应的CPU的标识所对应的目标位的值设置为1之后,所得到的位图。
其中,所述将所述资源信息的对应关系存储至所述数据库,包括:将所述字符串的对应关系存储至所述数据库。
可以理解的是,所述字符串为所述资源信息中的一种。
可以理解的是,利用所述字符串能够表征所述对应的资源信息中的多个节点的标识,以及与所述多个节点的标识中的各个节点的标识对应的CPU的标识。
可以理解的是,由于字符串仅有0和1构成,因此,存储所述字符串所用存储空间远比存储CPU的标识所用存储空间小,继而利用上述实施方式能够极大地节约存储资源。
作为一种实施方式,在所述将该作业的标识和所述资源信息的对应关系存储至所述数据库之后,所述方法还包括步骤:D1、D2和D3。
D1:接收终端设备发送的资源使用信息的查询请求;其中,所述查询请求中包括:该作业的标识。
D2:响应所述查询请求,从预先存储的作业的标识和资源信息的对应关系中,查找出与该作业的标识对应的资源信息。
响应所述查询请求,从所述查询请求中提取出该作业的标识,继而基于该作业的标识,从预先存储的作业的标识和资源信息的对应关系中,查找出与该作业的标识对应的资源信息。
若预先将所述对应的资源信息和获取所述对应的资源信息的时间的对应关系存储至数据库中,那么作为一种实施方式,基于该作业的标识,从预先存储的作业的标识、资源信息和获取所述资源信息的时间的对应关系中,查找出与该作业的标识对应的资源信息,以及与所述对应的资源信息对应的时间。
D3:将所述对应的资源信息发送给所述终端设备。
将所述对应的资源信息以表格、word或者其他形式发送给所述终端设备。
值得一提的是,若所述对应的资源信息中包括:所述字符串;那么D3可以按照如下方式实施,从所述对应的资源信息中提取出所述字符串,并根据预先确定的字符串中的各个位置与各个节点中的CPU的标识的对应关系,以及所述字符串中的1在所述字符串中的位置,确定出与所述字符串对应的节点的标识,以及与所述对应的节点的标识所对应的CPU的标识;并将所述对应的节点的标识,以及与所述对应的节点的标识所对应的CPU的标识发送给所述终端设备。
由于该作业在整个作业运行期间所使用的资源信息可能不同,因此,作为一种实施方式,将所述对应的资源信息,以及与所述对应的资源信息对应的时间发送给所述终端设备,以便用户能够更全面地了解到该作业在整个运行期间的资源使用情况,提高用户体验。
若数据库中仅存储有一个作业在运行期间所使用的资源信息,作为一种实施方式,在S12之后,所述方法还包括:E1、E2和E3。
E1:接收第一终端设备发送的资源使用信息的第一查询请求。
E2:响应所述第一查询请求,从所述数据库中提取出所述资源信息。
E3:将所述资源信息发送给所述第一终端设备。
请参照图2,图2是本申请实施例提供的一种信息管理装置200的结构框图。下面将对图2所示的结构框图进行阐述,所示装置包括:
资源信息获取单元210,用于在作业运行期间,获取运行该作业所使用的资源信息;
资源信息存储单元220,用于将所述资源信息存储至数据库。
作为一种实施方式,所述资源信息存储单元220,具体用于基于预先确定的该作业的标识,将该作业的标识和所述资源信息的对应关系存储至所述数据库。
作为一种实施方式,所述资源信息存储单元220,还用于获取存储有各个作业运行期间所使用的资源信息的作业链表;基于该作业的标识,从所述作业链表中获取与该作业的标识对应的资源信息。
作为一种实施方式,所述资源信息包括:多个节点的标识,以及与所述多个节点的标识中的各个节点的标识对应的CPU的标识;所述装置还包括:解析单元,用于为该作业分配一个位图;所述位图中包括:多个值全为0的位;以及针对每个节点的标识,基于预先确定的节点的标识与所述位图中的位的对应关系,确定出与该节点的标识对应的位;针对与该节点的标识对应的每个CPU的标识,基于预先确定的CPU的标识与所述对应的位中的位的对应关系,从所述对应的位中确定出与该CPU的标识对应的目标位;将所述目标位的值置为1;将所述位图解析成字符串;其中,资源信息存储单元,还用于将所述字符串的对应关系存储至所述数据库。
作为一种实施方式,所述装置还包括:查询单元,用于接收终端设备发送的资源使用信息的查询请求;其中,所述查询请求中包括:该作业的标识;以及响应所述查询请求,从预先存储的作业的标识和资源信息的对应关系中,查找出与该作业的标识对应的资源信息;将所述对应的资源信息发送给所述终端设备。
作为一种实施方式,所述装置还包括:运行结束时间确定单元,用于接收表征需要运行该作业的请求;其中,所述请求中包括:该作业的运行时长;以及基于所述运行时长和预先确定的运行开始时间,确定该作业的运行结束时间;其中,所述资源信息获取单元,还用于在该作业运行期间,且在所述结束时间之前的预设时长内,获取运行该作业所使用的资源信息。
本实施例对的各功能单元实现各自功能的过程,请参见上述图1所示实施例中描述的内容,此处不再赘述。
请参照图3,图3为本申请实施例提供的一种电子设备300的结构示意图,电子设备300可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等。
电子设备300可以包括:存储器302、处理301、通信接口303和通信总线,通信总线用于实现这些组件的连接通信。
所述存储器302用于存储本申请实施例提供的信息管理方法和装置对应的计算程序指令等各种数据,其中,存储器302可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。
处理器301用于在作业运行期间,获取运行该作业所使用的资源信息;将所述资源信息存储至数据库。
其中,处理器301可能是一种集成电路芯片,具有信号的处理能力。上述的处理器301可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信接口303,用于接收或者发送数据。
此外,本申请实施例还提供了一种存储介质,在该存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行本申请任一项实施方式所提供的方法。
综上所述,本申请各实施例提出的信息管理方法、装置、电子设备及存储介质,在作业运行期间获取该作业所使用的资源信息,并将所述资源信息存储至数据库,继而能在该作业运行结束后,保证用户能够查询到该作业运行期间所使用的资源信息。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。