一种调度方法、装置以及电子设备与流程

文档序号:13136478阅读:154来源:国知局
一种调度方法、装置以及电子设备与流程

本说明书涉及计算机软件技术领域,尤其涉及一种调度方法、装置以及电子设备。



背景技术:

在大数据技术广泛应用于人工智能领域的背景下,建模人员往往要针对千万、亿级的数据进行建模,建模过程中往往要对同一批数据进行多种机器学习算法的训练、评估和对比,每一种机器学习算法又会有多个参数的计算调优。

常见的大数据计算框架如开源社区的hadoop、spark等,以及其他各类深度学习框架如caffee、tensorflow等均提供了大规模计算能力,用户可以在其上搭建业务需要的建模流程,建模流程可能包括多个机器学习算法的组合。

在现有技术中,通常以代码或者脚本的形式开发和调试建模流程。

基于现有技术,需要一种更高效的建模流程的开发和调试方案。



技术实现要素:

本说明书实施例提供一种调度方法、装置以及电子设备,用以解决如下技术问题:需要一种更高效的建模流程的开发和调试方案。

为解决上述技术问题,本说明书实施例是这样实现的:

本说明书实施例提供的一种调度方法,包括:

获取有向无环图(directedacyclicgraph,dag)数据,所述dag数据中的节点表示预配置的算法组件,所述算法组件表示其对应节点的节点任务;

根据指定的任务执行方式,确定所述dag数据中的目标节点以及所述目标节点间依赖关系;

根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点的节点任务进行调度,以便于基于对应的所述算法组件执行所述目标节点的节点任务。

本说明书实施例提供的一种调度装置,包括:

获取模块,获取dag数据,所述dag数据中的节点表示预配置的算法组件以及对应的节点任务;

确定模块,根据指定的任务执行方式,确定所述dag数据中的目标节点以及所述目标节点间依赖关系;

调度模块,根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点的节点任务进行调度,以便于基于对应的所述算法组件执行所述目标节点的节点任务;

其中,所述算法组件通过对机器学习算法封装得到。

本说明书实施例提供的一种电子设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

获取有向无环图(directedacyclicgraph,dag)数据,所述dag数据中的节点表示预配置的算法组件,所述算法组件表示其对应节点的节点任务;

根据指定的任务执行方式,确定所述dag数据中的目标节点以及所述目标节点间依赖关系;

根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点的节点任务进行调度,以便于基于对应的所述算法组件执行所述目标节点的节点任务;

其中,所述算法组件通过对机器学习算法封装得到。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:可以以dag数据来表示建模流程,可视化展示能力较好,并且具有任务并行调度能力,因此,有利于提高建模流程的开发和调试效率。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例提供的一种调度方法的流程示意图;

图2为本说明书实施例提供的一种基于dag数据的建模流程的示意图;

图3为本说明书实施例提供的可用于实施图1中的方法的一种系统的结构示意图;

图4为本说明书实施例提供的在基于图3的系统实施图1的方式的情况下,管理框架的一种工作流程示意图;

图5为本说明书实施例提供的用于在图2的dag数据中指定任务执行方式的一种菜单界面的示意图;

图6为本说明书实施例提供的在基于图3的系统实施图1的方式的情况下,调度引擎及其对应集群的一种工作流程示意图;

图7为本说明书实施例提供的对应于图1的一种调度装置的结构示意图。

具体实施方式

本说明书实施例提供一种调度方法、装置以及电子设备。

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

为了便于理解,对本说明书的方案的思路进行说明:可以预先以组件的形式对算法或者计算逻辑进行抽象,并联通输入输出有关联的组件之间的上下游依赖;进而可以基于所述组件以可视化的dag数据来表示建模流程,以及进行任务调度,这种调度可以并行地针对建模流程中的多个组件进行,有利于提高建模效率。

本说明书的方案适用于有建模需求的各领域。尤其是在基于机器学习算法的大数据分布式的场景下,有很好的应用前景,以下各实施例主要以该场景为例进行说明。

基于以上思路,下面对本说明书的方案进行详细说明。

图1为本说明书实施例提供的一种调度方法的流程示意图。该流程的执行主体包括但不限于可作为服务器或者终端的以下至少一种设备:个人计算机、中型计算机、计算机集群、手机、平板电脑、智能可穿戴设备、车机等。

图1中的流程可以包括以下步骤:

s102:获取dag数据,所述dag数据中的节点表示预配置的算法组件以及对应的节点任务,所述算法组件表示其对应节点的节点任务,所述算法组件通过对机器学习算法封装得到。

dag称为有向无环图,在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则该图是一个dag。因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。

在本说明书实施例中,所述dag数据可以表示由多个算法参与的逻辑计算流程,具体到背景技术的场景,该逻辑计算流程可以为建模流程。为了便于理解,结合图2进行说明。

图2为本说明书实施例提供的一种基于dag数据的建模流程的示意图。

图2示出了一种基于退货评论的文本分类建模流程。可以看到,该建模流程表示为一个可视化的dag,该dag中有多条路径,每条路径上有若干个节点。每个节点对应于一个步骤,该步骤可以通过一个或多个机器学习算法实现,为了便于使用机器学习算法,可以预先将每个机器学习算法分别封装为一个算法组件,并基于算法组件,构建建模流程,则该dag中节点可以表示对应的算法组件。

进一步地,可以根据当前业务数据和参数,对算法组件进行预配置,使其适配于当前业务。预配置的算法组件可以表示在一个步骤里要执行的任务(也即,所述的节点任务),以及该任务具体应当按照怎样的逻辑执行。

图2中有多条路径,其中,“训练集”和“测试集”这两条主要路径分别表示模型的训练过程,以及测试过程中的各步骤。

以“训练集”路径为例,该路径上的节点依次主要有“分词-trn”、“文档id类型转换-trn”、“词频统计-trn”、“停用词过滤-trn”、“join-1”、“特征向量生成-trn”、“join-2”等,其中,“trn”表示训练(train)。

对于“分词-trn”这个节点,其可以表示预配置的用于实现分词操作的算法组件,以及对应的分词任务。类似地,其他各节点也表示对应的算法组件以及节点任务,一般地,路径上的每个节点是依赖于上一个节点的。

s104:根据指定的任务执行方式,确定所述dag数据中的目标节点以及所述目标节点间依赖关系。

在本说明书实施例中,获得表示建模流程的dag数据后,可以通过执行该dag数据中的至少部分节点的节点任务,实施该流程。

所述任务执行方式可以指:执行哪些节点任务,和/或执行单个节点任务时的一些限定条件(如执行次数、执行时长、输入数据范围等)。

指定的任务执行方式所涉及的节点称为:目标节点。仍以图2的dag数据为例,假定指定的任务执行方式具体为:执行“训练集”路径中的“分词-trn”和“文档id类型转换-trn”这两个节点的节点任务;则这两个节点即为目标节点。

在本说明书实施例中,目标节点间依赖关系一般有两类。一类是上下依赖,也即,下一个节点依赖于上一个节点,在这种情况下,在执行节点任务时,通常要先执行完上一个节点的节点任务,再将执行结果作为下一个节点的输入,以执行下一个节点的节点任务。另一类是不依赖,相互不依赖的节点的节点任务可以并行执行。

s106:根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点的节点任务进行调度,以便于基于对应的所述算法组件执行所述目标节点的节点任务。

在本说明书实施例中,由于机器学习算法需要较高的计算能力,因此,可以采用分布式集群执行节点任务。在这种情况下,可以对所要执行的节点任务进行分布式调度。

在本说明书实施例中,可以根据算法组件,使用对应的算法计算引擎执行节点任务,为了降低成本,算法计算引擎比如可以由已有的计算框架提供。以机器学习算法为例,目前常见的计算框架有odps、spark、caffee、tensorflow等。

图1所涉及的动作的执行主体可以是同一设备或同一程序,也可以是不同设备或不同程序。比如,步骤s102~s106的执行主体均为集群的调度机;又比如,步骤s102~s104的执行主体为一管理框架,步骤s106的执行主体为调度引擎,而执行目标节点的节点任务的主体为集群中的工作机;等等。

通过图1的方法,可以以dag数据来表示建模流程,可视化展示能力较好,并且具有分布式环境下的任务并行调度能力,因此,有利于提高建模流程的开发和调试效率。更具体地,由于支持并行调度,因此,可以提高计算效率和调试效率,从工程的角度而言,可以解决大数据等技术领域建模流程的描述、执行、调优的一些问题,进而可以提高建模人员的建模效率。

基于图1的方法,本说明书实施例还提供了该方法的一些具体实施方案,以及扩展方案,下面进行说明。

本说明书实施例提供了可用于实施图1中的方法的一种系统,图3为该系统的结构示意图。

在图3的场景下,上述的算法具体为机器学习算法。在系统结构层面上,本系统主要分为管理框架和调度引擎,构建在各类异构机器学习算法计算框架之上,这些计算框架可以提供相应的算法计算引擎,计算框架可以运行在集群的机器中。

管理框架主要用于管理算法组件,以及用于执行图1的方法中调度之前的动作,调度引擎主要用于执行图1的方法中的调度动作。下面分别进行说明。

图4为本说明书实施例提供的在基于图3的系统实施图1的方式的情况下,管理框架的一种工作流程示意图。

图4中的流程主要包括以下步骤:

管理框架获取dag数据;

根据指定的任务执行方式,确定dag数据中的目标节点以及目标节点间依赖关系;

根据目标节点以及目标节点间依赖关系,对目标节点进行拓扑排序计算,得到目标节点列表;其中,所述目标节点列表中包含有通过所述拓扑排序计算,确定出的各目标节点执行顺序;

根据目标节点列表,以及目标节点的配置信息,生成调度计划;配置信息中可以包含具体的业务数据和参数,调度计划中指示了根据各目标节点执行顺序进行调度;

将调度计划发送给调度引擎用以执行。

本说明书的方案支持以多种形式执行dag数据中的子流程或者全部流程。以任务执行方式具体指执行哪些节点任务为例。

在本说明书实施例,所述指定的任务执行方式可以包括以下至少一类:

第一类,执行所述dag数据中指定的至少部分节点的节点任务,则所述目标节点为所述指定的至少部分节点;

例如下面两种:

“全部执行”:执行dag数据中全部节点,也即,执行dag数据中的全部流程。

“执行该节点”:指定一个节点,只执行该节点。

第二类,执行所述dag数据中特定路径上的至少部分节点的节点任务,其中,所述特定路径包含所述dag数据中指定的节点的上行路径和/或下行路径,则所述目标节点为所述特定路径上的至少部分节点。

例如下面两种:

“执行到此处”:指定一个节点,从该节点向上追溯到根节点,查找到第一个非成功节点(尚未执行或者执行失败的节点),开始向下执行到指定的节点。

“从此处开始执行”:指定一个节点,从该节点开始向下执行所有节点。

为了便于理解,本说明书实施例还提供了用于在图2的dag数据中指定任务执行方式的一种菜单界面的示意图,如图5所示。

在图5中,针对指定的节点“词频统计-trn”唤出了菜单,菜单中展示了可以针对该节点执行的若干种操作。其中,用方框标示出了三种指定任务执行方式的菜单项:“从此处开始执行”、“执行到此处”、“执行该节点”;通过选定菜单项即可指定任务执行方式。另外,若不单独针对节点进行指定,可以默认地采用“全部执行”的任务执行方式。

在本说明书实施例中,图4中的流程是示例性的,并非唯一方案。比如,若执行节点任务的主体并非集群而是单机,则无需分布式调度,只要将按序将各目标节点的节点任务调度给该单机用以执行;再比如,目标节点列表中的数据也未必以列表形式保存,也可以采用链表等其他形式保存;再比如,若本系统并未划分为管理框架和调度引擎,而是只有调度引擎,则也无需执行将调度计划发送给调度引擎的步骤,而是调度引擎直接进行调度即可,甚至无需生成调度计划。

在忽略系统架构差异的情况下,一般地,对于步骤s106,所述根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点的节点任务进行调度,具体可以包括:根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点进行拓扑排序计算,得到目标节点列表;根据所述目标节点列表,以及所述目标节点的配置信息,生成调度计划;根据所述调度计划,对所述目标节点的节点任务进行调度。

图6为本说明书实施例提供的在基于图3的系统实施图1的方式的情况下,调度引擎及其对应集群的一种工作流程示意图。

图6中的流程主要包括以下步骤:

调度引擎对调度计划进行解析,确定调度顺序,调度顺序包含并行调度和/或先后调度的顺序;

调度引擎按照调度顺序,根据各目标节点的节点任务,生成相应的各子任务,并分发给分布式集群中的多个工作机;

工作机提交分发到的子任务至对应的算法计算引擎执行;

分布式集群汇总算法计算结果。

在本说明书实施例中,引擎按照分布式系统的设计,保证了调度任务的一致性和容错性。

结合图4中的流程,更具体地,所述根据所述调度计划,对所述目标节点的节点任务进行调度,可以包括:将所述调度计划发送给调度引擎;所述调度引擎对所述调度计划进行解析,确定调度顺序,所述调度顺序包含并行调度和/或先后调度的顺序;所述调度引擎按照所述调度顺序,对所述目标节点的节点任务进行调度。

进一步地,所述调度引擎按照所述调度顺序,对所述目标节点的节点任务进行调度,具体可以包括:所述调度引擎按照所述调度顺序,分别针对每个所述目标节点执行:根据该目标节点表示的预配置的算法组件以及对应的节点任务,生成相应的各子任务,并分发给分布式集群中的多个工作机用以执行。

上面为本说明书实施例提供的一种调度方法,基于同样的思路,本说明书实施例还提供了对应的装置,如图7所示。

图7为本说明书实施例提供的对应于图1的一种调度装置的结构示意图,该装置可以位于图1中流程的执行主体上,包括:

获取模块701,获取有向无环图dag数据,所述dag数据中的节点表示预配置的算法组件,所述算法组件表示其对应节点的节点任务;

确定模块702,根据指定的任务执行方式,确定所述dag数据中的目标节点以及所述目标节点间依赖关系;

调度模块703,根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点的节点任务进行调度,以便于基于对应的所述算法组件执行所述目标节点的节点任务;

其中,所述算法组件通过对机器学习算法封装得到。

可选地,所述指定的任务执行方式包括以下至少一种:

执行所述dag数据中指定的至少部分节点的节点任务,则所述目标节点为所述指定的至少部分节点;

执行所述dag数据中特定路径上的至少部分节点的节点任务,其中,所述特定路径包含所述dag数据中指定的节点的上行路径和/或下行路径,则所述目标节点为所述特定路径上的至少部分节点。

可选地,所述调度模块703根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点的节点任务进行调度,具体包括:

所述调度模块703根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点进行拓扑排序计算,得到目标节点列表;

根据所述目标节点列表,以及所述目标节点的配置信息,生成调度计划;

根据所述调度计划,对所述目标节点的节点任务进行调度。

可选地,所述调度模块703包含调度引擎,所述调度模块703根据所述调度计划,对所述目标节点的节点任务进行调度,具体包括:

所述调度模块703将所述调度计划发送给所述调度引擎;

所述调度引擎对所述调度计划进行解析,确定调度顺序,所述调度顺序包含并行调度和/或先后调度的顺序;

所述调度引擎按照所述调度顺序,对所述目标节点的节点任务进行调度。

可选地,所述调度引擎按照所述调度顺序,对所述目标节点的节点任务进行调度,具体包括:

所述调度引擎按照所述调度顺序,分别针对每个所述目标节点执行:

根据该目标节点表示的预配置的算法组件以及对应的节点任务,生成相应的各子任务,并分发给分布式集群中的多个工作机用以执行。

可选地,所述调度引擎分发给分布式集群中的多个工作机后,所述工作机根据分发到的所述子任务,确定所述子任务对应的算法组件,将所述子任务通过所述确定的算法组件对应的算法计算引擎执行,得到所述执行的结果,用以汇总为该目标节点的节点任务执行结果。

基于同样的思路,本说明书实施例还提供了对应的一种电子设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

获取有向无环图dag数据,所述dag数据中的节点表示预配置的算法组件,所述算法组件表示其对应节点的节点任务;

根据指定的任务执行方式,确定所述dag数据中的目标节点以及所述目标节点间依赖关系;

根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点的节点任务进行调度,以便于基于对应的所述算法组件执行所述目标节点的节点任务;

其中,所述算法组件通过对机器学习算法封装得到。

基于同样的思路,本说明书实施例还提供了对应的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:

获取有向无环图dag数据,所述dag数据中的节点表示预配置的算法组件,所述算法组件表示其对应节点的节点任务;

根据指定的任务执行方式,确定所述dag数据中的目标节点以及所述目标节点间依赖关系;

根据所述目标节点以及所述目标节点间依赖关系,对所述目标节点的节点任务进行调度,以便于基于对应的所述算法组件执行所述目标节点的节点任务;

其中,所述算法组件通过对机器学习算法封装得到。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书实施例提供的装置、电子设备、非易失性计算机存储介质与方法是对应的,因此,装置、电子设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、电子设备、非易失性计算机存储介质的有益技术效果。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1