网络模型业务执行方法、装置、SDN控制器及可读存储介质与流程

文档序号:16847833发布日期:2019-02-12 22:28阅读:128来源:国知局
本发明涉及通信领域,尤其涉及一种网络模型业务执行方法、装置、sdn(softwaredefinednetwork,网络架构中软件定义网络)控制器及可读存储介质。
背景技术
::在云计算、分布式数据存储和计算等技术的推动下,网络架构正在发生变化,由之前的分散式逐渐更新为集中式,而在集中式网络架构中软件定义网络表现最为耀眼,在sdn集中式网络架构中,需要把各种网络模型业务集成到sdn中。为了适应这样的需求,需要开发一种网络模型业务执行方法,该方法需要适应不同网络模型业务的执行需求,让多种网络模型业务在工作流引擎的作用下运行。技术实现要素:本发明实施例提供一种网络模型业务执行方法、装置、sdn控制器及可读存储介质,主要解决的技术问题是提供一种适用于不同网络模型业务的网络模型业务执行方案。为解决上述技术问题,本发明实施例提供一种网络模型业务执行方法,包括:获取待执行网络模型业务之识别标识;根据所述识别标识在业务配置文件库中查找所述待执行网络模型业务对应的业务配置文件;所述业务配置文件库存储有至少一个网络模型业务的业务配置文件,所述业务配置文件包括网络模型业务的识别标识;执行查找到的业务配置文件。本发明实施例还提供一种网络模型业务执行装置,包括:任务获取模块,用于获取待执行网络模型业务之识别标识;任务匹配模块,用于根据所述识别标识在业务配置文件库中查找所述待执行网络模型业务对应的业务配置文件;所述业务配置文件库存储有至少一个网络模型业务的业务配置文件,所述业务配置文件包括网络模型业务的识别标识以及组成网络模型业务的各子业之子业务配置文件;任务执行模块,用于执行查找到的业务配置文件中的子业务配置文件。本发明实施例还提供一种软件定义网络控制器,包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现如上所述的网络模型业务执行方法的步骤。本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的网络模型业务执行方法的步骤。本发明的有益效果是:根据本发明实施例提供的网络模型业务执行方法、装置、sdn控制器及可读存储介质,预先将网络模型业务配置成对应的业务配置文件存储在业务配置文件库中,得到的业务配置文件包括网络模型业务的识别标识,且业务配置文件可以被调用执行以实现对应的网络模型业务的功能;在业务运行过程中,获取到当前待执行网络模型业务之识别标识,然后就可根据获取的识别标识在业务配置文件库中查找到该待执行网络模型业务对应的业务配置文件然后进行运行即可。本发明提供的上述方案可适用于不同网络模型业务的需求,能兼容不同网络模型业务,使不同网络模型业务可更好的集成到各种网络结构(例如sdn)中。本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。附图说明图1为本发明实施例一的网络模型业务执行方法流程示意图;图2为本发明实施例一的执行查找到的业务配置文件流程示意图;图3为本发明实施例一的确定下一待执行的子业务配置文件流程示意图;图4为本发明实施例一的执行子业务配置文件流程示意图;图5为本发明实施例二的网络模型业务串行执行示意图;图6为本发明实施例二的网络模型业务分支执行示意图;图7为本发明实施例二的网络模型业务合并执行示意图;图8为本发明实施例三的网络模型业务执行装置结构示意图;图9为本发明实施例四的软件定义网络控制器结构示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。实施例一:为了使用各种网络模型业务的执行需求,本实施例提供了一种网络模型业务执行方法,通过预先将网络模型业务配置成对应的业务配置文件存储在业务配置文件库中,在业务运行过程时根据当前待执行网络模型业务之识别标识从业务配置文件库中查找到该待执行网络模型业务对应的业务配置文件进行运行即可,该方案可适用于不同网络模型业务的需求,能兼容不同网络模型业务,使不同网络模型业务可更好的集成到各种网络结构中。为了便于更好的理解本发明,下面对上述方案进行展开进行示例性的说明。参见图1所示,本实施例中的网络模型业务执行方法包括:s101:获取待执行网络模型业务之识别标识。该步骤获取当前待执行网络模型业务的识别标识,应当理解的是,当前待执行网络模型业务可能只有一个,也可能有多个。且触发获取当前待执行网络模型业务的条件可以是接收到用户下发的相应的业务执行指令,也可以是其他业务运行过程中或者运行完毕后触发执行关联的网络模型业务的指令。另外,应当理解的是,本实施例中的网络模型业务的识别标识可以是任意能唯一标识各网络模型业务的标识信息,且可以是网络模型业务自身的能唯一识别的信息,也可以是为其额外添加的能唯一识别的识别信息。s102:根据获取到的识别标识在业务配置文件库中查找待执行网络模型业务对应的业务配置文件。如上所述,本实施例中业务配置文件库预先存储有至少一个网络模型业务的业务配置文件,各个网络模型业务的业务配置文件的生成过程可以根据具体的业务配置文件所包含的内容、结构等因素灵活确定。本实施例中的各网络模型业务的业务配置文件包括网络模型业务的识别标识,以便于业务配置文件的准确识别。应当理解的是,本实施例中业务配置文件所包含的识别标识可以是直接与对应网络模型业务相同的识别标识,也可以是与其唯一对应的但内容并不相同的识别标识,此时可以直接根据该对应的关系也可以匹配到各网络模型业务对应的配置文件。s103:执行查找到的业务配置文件。本实施例中,执行业务配置文件的具体过程可以根据当前执行的网络模型业务灵活控制。通过上述过程可知,本实施例针对各种网络模型业务,可以对应预先生成相应的配置文件进行存储,然后在执行网络模型业务时,只需要调用其对应的网络模型业务进行执行即可。应当理解的是,本实施例中网络模型业务对应的业务配置文件的具体结构可以根据具体需求灵活设定。在本实施例的一种示例中,一个网络模型业务的业务配置文件还包括至少一个组成该网络模型业务的业子业务配置文件;也即将一个网络模型业务分解成相对独立的多个子业务,一个子任务对应一个子业务配置文件。这种结构除了在执行网络模型业务时便于灵活选择所需要执行的部分,相对现有网络模型业务升级时只能对整个网络模型业务升级,导致升级效率慢、资源利用率的情况,本实施例将一个网络模型业务分解成多个相对独立的子业务,在需要进行业务升级时,则可以仅对需要升级的子业务或以及其关联的子业务进行相应的升级,不需要对整个网络模型业务升级,既能提升升级过程的灵活性,又能提升升级效率和资源利用率。本实施例中,生成的子业务配置文件包括子业务索引包和子业务执行包;其中子业务索引包包括子任务索引标识和下级子业务选择信息,且至少一个子业务配置文件之子业务索引包的下级子业务选择信息包括下级子业务索引标识;本实施例中的下级子业务选择信息中包含的下级子业务索引标识是指当前子业务执行完毕后所关联执行的下级子业务,该下级子业务可能是一个,也可能是多个,对于某些子业务来说其下级子业务也可能为空。本实施例中子业务所关联的下级子业务可能是同一网络模型业务中的子任务,也可能是其他网络模型业务中的子任务。在一种示例中,子业务配置文件包括的业务执行包主要指执行该子业务所需的信息,例如包括但不限于实现接口以及执行主体。在本实施例中,子业务之间可能会涉及到信息的传递,因此各子业务之间会存在对应的接口实现信息的传递,本实施例中对于子业务之间的接口可以采用各子业务通用的接口,或尽量采用各子业务通用的接口。在一种示例中,一个网络模型业务的业务配置文件可以通过多级标签实现,例如定义第一级标签为识别标识,对应一种网络模型业务的识别标识;定义第二级标签为子业务(即子业务索引包),这个第二级标签可能有一个或多个,对应这种网络模型业务分解后的多个子业务,该标签中可以进一步定义两个属性:第一个是名称,即该子业务的名称(也即子任务索引标识)和选择器(也即下级子业务选择信息),即根据该子业务执行结果选择下一个需要执行的子业务;定义第三级标签为业务执行包action,对应一个子业务的实现接口和执行主体(即实际执行单元)。基于上述示例的配置文件的结构,s103中执行查找到的业务配置文件参见图2所示,包括:s201:从匹配到的业务配置文件中提取当前待执行的子业务配置文件。本实施例中,执行一个网络模型业务对应的业务配置文件时,可以直接执行该业务配置文件中包含的第一个子业务配置文件,本实施例中业务配置文件包含的子业务配置文件的顺序可以在生成业务配置文件时确定好。当然,也可以根据相应的指令执行该业务配置文件中该指令所指定的子业务配置文件,该指令可以是用户下发的指令,也可能是其他网络模型业务执行过程中所下发的关联指令。s202:提取子业务配置文件中的子业务执行包执行子业务,并在判断下级子业务选择信息包括下级子业务索引标识时,将执行结果发给下级子业务索引标识对应的子业务配置文件,将该下级子业务索引标识对应的子业务配置文件作为下一待执行的子业务配置文件。本实施例中,判断下级子业务选择信息是否包括下级子业务索引标识,可以在根据子业务配置文件中的子业务执行包执行完该子业务后进行,也可以在执行完该子业务之前与其并行进行,甚至根据需要可以在执行该子业务之前进行,具体可以根据具体业务执行场景灵活设定。例如对于下级子任务都只有一个或没有的业务执行场景,则可以采用根据子业务配置文件中的子业务执行包执行完该子业务后,再判断下级子业务选择信息是否包括下级子业务索引标识,本实施例称这种执行过程为串行执行算法。在本实施例中,执行网络模型业务的各子业务配置文件时,可以通过子任务执行队列进行,当然该应当理解的是也可以不通过子任务执行队列进行。本实施例中的子任务执行队列具体可以通过堆栈实现。通过子任务执行队列进行时,本实施例中从业务配置文件中获取当前待执行的子业务配置文件后,提取子业务配置文件中的子业务执行包之前,还包括:将当前待执行的子业务配置文件之子业务索引包加入子任务执行队列;然后按照预设子任务取出规则(例如包括但不限于先入先出规则)从子任务执行队列中取出子业务配置文件之子业务索引包后,根据该子业务索引包中的子任务索引标识从当前待执行的子业务配置文件中提取子业务执行包以执行子业务,直到该子任务执行队列中待执行的子任务为空。本实施例中,当某一子任务配置文件的下级子业务选择信息包括至少两个子业务索引标识时,称这种情况为网络模型业务中有分支执行的情况,具体的执行过程称之为有分支执行流程算法。此时,在执行完该子任务配置文件得到执行结果后发给下级子业务索引标识对应的子业务配置文件,并将该下级子业务索引标识对应的子业务配置文件作为下一待执行的子业务配置文件参见图3所示,包括:s301:将得到的执行结果分别下发给各子业务索引标识对应的子业务配置文件。例如假设子业务1的子业务配置文件的下级子业务选择信息包括子业务2和子业务3两个子业务索引标识,此时将子业务1的执行结果分别通过子业务之间的通信接口发送给子业务2和子业务3。s302:将各子业务索引标识对应的子业务配置文件之子业务索引包分别加入子任务执行队列。该步骤中,将各子业务索引标识对应的子业务配置文件(下面称为下级子任务的子业务配置文件)之子业务索引包分别加入子任务执行队列时,加入顺序可以随机加入,也可以按照各下级子任务的优先级加入,具体可以根据具体需求灵活选择。通过图3所示的过程将各子业务索引标识对应的子业务配置文件之子业务索引包分别加入所述子任务执行队列后,执行各子业务索引标识对应的子业务配置文件参见图4所示,包括:s401:从子任务执行队列中取出一个子业务配置文件的子业务索引包。具体可以通过先入先出原则从子任务执行队列中取出。s402:根据当前提取出的子业务索引包中的子任务索引标识从对应的当前待执行子业务配置文件中提取子业务执行包执行该子业务。s403:在执行完该子业务之前,提取该子业务索引包的下级子业务选择信息判断是否包括下级子业务索引标识,也即采用异步并行的方式进行,如包括,转至s404;否则,转至s405。s404:将该下级子业务索引标识对应的子业务配置文件作为下一待执行的子业务配置文件加入子任务执行队列,转至s405。s405:从子任务执行队列中取出下一个子业务配置文件的子业务索引包。在本实施例中,至少一个子业务配置文件还包括合并处理标识,该合并处理标识包括待合并子业务的指示信息;本实施例称当前执行的子业务配置文件包括合并处理标识的情况为有合并执行的情况,对应的执行过程为合并执行流程算法。合并执行流程算法在判断下级子业务选择信息包括待执行的下级子业务索引标识时,提取该子业务配置文件中的子业务执行包执行子业务得到执行结果后,将执行结果发给下级子业务索引标识对应的子业务配置文件之前,还包括:判断子业务配置文件是否包括合并处理标识,如否,直接将执行结果发给下级子业务索引标识对应的子业务配置文件;如是,获取合并处理标识的指示信息所指示的待合并子任务的执行结果作为待合并执行结果,将执行结果与待合并执行结果合并处理后发送给下级子业务索引标识对应的子业务配置文件。应当理解的是,本实施例中执行结果的合并处理可以是各种合并处理过程,在此不再赘述。通过本发明实施例提供的网络模型业务执行方法,至少具备以下优点:1、适用于各种不同的网络模型业务,通用性和兼容性好,更利于各种网络模型业务集成到各种网络架构中。2、将网络模型业务分解成相对独立的至少一个业务,在调用过程中以及升级过程中可以子业务为单位进行调用和升级,更为灵活,且升级效率和资源利用率更高。3、可以通过异步并行的方式执行各业务,能进一步满足各种业务并行执行的需求。实施例二:本实施例在实施例一的基础上,以一种具体结构的业务配置文件,以及针对上述三种流程算法情况进行示例说明。在本实施例中,网络模型业务的处理包括以下三个过程:网络模型业务的分解网络模型业务的定义网络模型业务的执行其中,网络模型业务的分解过程包括:对每一种网络模型业务都进行分解为粒度适中的子业务,子业务之间接口可以采用通用的接口,子业务之间的信息通过消息进行传递。为了分解网络模型业务,需要精通各网络模型业务,能清晰地了解每一种网络模型业务的各个处理流程,然后对所有这些处理流程进行细化、分解、合并。网络模型业务的定义过程包括:把每一种网络模型业务的所有子业务都定义在一个预格式(例如xml格式)的配置文件中。在该文件中,定义第一级标签为procedure(识别标识),对应一种网络模型业务;定义第二级标签为actioncell(即子业务索引包),这个第二级标签有多个,对应这种网络模型业务分解后的多个子业务,该标签中定义两个属性:(也即子任务索引标识)和选择器(也即下级子业务选择信息),即根据该子业务执行结果选择下一个需要执行的子业务;定义第三级标签为action(业务执行包),对应一个子业务的实现接口和实际执行单元。具体显示如下:网络模型业务的执行过程包括:当执行某一种网络模型业务时,到配置文件库中查找到该网络模型业务对应的业务配置文件中的第一个子业务配置文件,当第一个子业务配置文件执行完后,根据执行结果和该子业务配置文件中定义的执行规则确定下一个或多个执行的子业务配置文件,然后执行下一个或多个子业务配置文件,依次类推,直到所有的子业务配置文件执行完毕。这些执行流程是通过设置的工作流引擎来进行驱动的。工作流引擎中常用的术语:procedure:表示一种网络模型业务的识别标识,本实施例用名称进行表征;actioncell:表示一种网络模型业务中的子业务,其包括子任务索引标识;action:表示子业务的执行;selector:表示子业务的选择,可以选择本网络模型业务的子业务,也可以选择其他网络模型业务的子业务;actioncellstack:表示存放子业务的数据结构堆栈,也即子任务执行队列。如上分析,根据网络模型业务的特性,可以把工作流引擎设计为三种方式:网络模型业务串行执行、网络模型业务分支执行和网络模型业务合并执行。网络模型业务串行执行算法的过程如下:当一种网络模型业务需要执行时,先根据该网络模型业务的名称到配置文件库中查找到该网络模型业务的业务配置文件的第一个子业务actioncell;从第一个子业务actioncell中取出action进行执行,执行完后再从该子业务actioncell中取出selector,在selector中可以查看到第一个子业务actioncell的下一个子业务,通过消息把第一个子业务actioncell的信息发送给下一个子业务;从下一个子业务actioncell中取出action进行执行,执行完后再从该子业务actioncell中取出selector,在selector中可以查看到该子业务actioncell的下一个子业务,通过消息把该子业务actioncell的信息再发送给下一个子业务,依次类推,直到在selector中查找不到下一个子业务时,那么这种网络模型业务流程执行完毕。例如,参见图5所示,图5为网络模型业务串行执行示例,把某个网络模型业务分成7个步骤,包括:网络模型业务中子业务1的执行,执行完根据子业务1的选择器选择串行流程中的下一个子业务2。网络模型业务中子业务2的执行,执行完根据子业务2的选择器选择串行流程中的下一个子业务3。网络模型业务中子业务3的执行,执行完根据子业务3的选择器选择串行流程中的下一个子业务4。网络模型业务中子业务4的执行,执行完根据子业务4的选择器选择串行流程中的下一个子业务5。网络模型业务中子业务5的执行,执行完根据子业务5的选择器选择串行流程中的下一个子业务6。网络模型业务中子业务6的执行,执行完根据子业务6的选择器选择串行流程中的下一个子业务7。网络模型业务中子业务7的执行,执行完根据子业务7的选择器可以知晓整个网络模型业务执行完毕。该网络模型业务顺序执行的顺序只有一种:1-->2-->3-->4-->5-->6-->7。可见,该执行过程可以不采用堆栈,当然也可以利用堆栈执行。网络模型业务中有分支执行流程算法包括:当一种网络模型业务需要执行时,先根据该网络模型业务的名称到配置文件中查找到该网络模型业务的第一个子业务actioncell,然后把这个子业务actioncell压入(即加入)堆栈actioncellstack中。判断堆栈actioncellstack中是否有子业务actioncell,如果没有子业务actioncell,那么该网络模型业务执行结束;如果有子业务actioncell,则把栈顶的子业务actioncell弹出(即取出);当从栈顶弹出子业务actioncell后,从该子业务actioncell中取出action进行执行,执行完后再从该子业务actioncell取出selector,在selector中查看到该子业务后面需要并行执行子业务有多少个,并通过消息把该子业务actioncell中的信息再发送给后面需要执行的一个或者需要并行执行的多个子业务。如果在selector中查看到该子业务actioncell后面的子业务只有一个,那么就把后面的这个子业务actioncell压入堆栈actioncellstack中,然后判断堆栈actioncellstack中是否有子业务actioncell,这时肯定有一个,于是就把栈顶的子业务actioncell弹出,从弹出的子业务actioncell中取出action进行执行,执行完毕后从该子业务actioncell中取出selector,然后在selector中查看到该子业务后面需要并行执行子业务有多少个,并通过消息把该子业务actioncell中的信息发送给后面需要执行的一个或者需要并行执行的多个子业务。该步骤和串行流程类似,只是多了子业务actioncell压入堆栈actioncellstack和从堆栈actioncellstack中弹出的操作。如果在selector中查看到该子业务actioncell后面的子业务有多个,那么就把后面的这多个子业务actioncell都压入堆栈actioncellstatck中,然后判断堆栈actioncellstack中是否有子业务actioncell,这时堆栈中有多个子业务actioncell,把栈顶的子业务actioncell弹出后直接使用异步并行方式(例如包括但不限于java8的completablefuture技术)去异步并发地执行该子业务actioncell中的action和selector,不用等这个子业务actioncell结束立马再去判断堆栈actioncellstack是否有子业务actioncell,如果有的话,把该下级子业务actioncell压入堆栈,并把栈顶的子业务actioncell弹出来后也再使用java8的completablefuture技术去异步并发地执行子业务actioncell中的action和selector,依次类推,这样同一层次上的所有分支的子业务actioncell都能进行并发异步地执行。当同一层次上的某一个分支的子业务actioncell中action执行结束的时候,立刻到该子业务actioncell中的selector中查找该子业务actioncell后面需要执行的一个或多个子业务actioncell,再把所有这些子业务actioncell都压入堆栈actioncellstack中,然后判断堆栈actioncellstack中是否有子业务actioncell,如果没有子业务actioncell的话,这个分支流程执行结束,如果有子业务actioncell的话,弹出栈顶的子业务actioncell,提取其中的action和selector,同样采用并发异步的方式执行,不用等待其他分支的子业务actioncell执行结束,依次类推,这样某一分支上的子业务actioncell和其他分支上的子业务actioncell也能进行并发异步地执行。当堆栈actioncellstack中不再有actioncell的时候,该网络模型业务所有分支流程都执行完毕。例如,如图6所示,图6为网络模型业务分支执行示例,把某个网络模型业务分成9个步骤,包括以下步骤:网络模型业务中子业务1的执行,执行完根据子业务1的选择器选择下一个子业务2。网络模型业务中子业务2的执行,执行完根据子业务2的选择器选择需要执行的子业务有3个,分别为子业务3、子业务4、子业务5,根据算法,把这3个子业务(3、4、5)都压入子业务堆栈中,然后逐个从栈顶取出子业务,分别执行,这3个子业务按照并发执行,它们不需要等待彼此,根据子业务处理流程的时间长短,这3个子业务随便哪一个都可能先结束。网络模型业务中子业务5的执行,执行完根据子业务5的选择器可以知晓这个网络模型业务的这个分支执行完毕。网络模型业务中子业务4的执行,执行完根据子业务4的选择器选择下一个子业务7。网络模型业务中子业务3的执行,执行完根据子业务3的选择器选择下一个子业务6。网络模型业务中子业务7的执行,执行完根据子业务7的选择器选择需要执行的子业务有2个,分别为子业务8和子业务9,根据算法,把这2个子业务(8、9)都压入子业务堆栈中,然后逐个从栈顶取出子业务,分别执行,这2个子业务按照并发执行,它们不需要等待彼此,根据子业务处理流程的时间长短,这2个子业务随便哪一个都可能先结束。网络模型业务中子业务6的执行,执行完根据子业务6的选择器可以知晓这个网络模型业务的这个分支执行完毕。网络模型业务中子业务8的执行,执行完根据子业务8的选择器可以知晓这个网络模型业务的这个分支执行完毕。网络模型业务中子业务9的执行,执行完根据子业务9的选择器可以知晓这个网络模型业务的这个分支执行完毕。该网络模型业务分支执行的顺序可以有多种,比如包括但不限于仅下面几种:1-->2-->5-->4-->3-->7-->9-->8-->61-->2-->5-->4-->3-->7-->6-->9-->81-->2-->5-->4-->3-->7-->9-->6-->81-->2-->5-->4-->3-->6-->7-->9-->8网络模型业务中有合并执行流程算法包括:要合并肯定得先有分支,所以网络模型业务中合并执行流程所有的步骤和分支流程类似,唯一的区别如下:当网络模型业务执行至某一个分支流程上的某一个子业务(比如为actioncell1)时,根据该子业务的特性判断该子业务需要和其他分支流程上的某一个子业务(比如为actioncell8)进行合并,这时从子业务actioncell1中selector查看到后面需要执行的子业务不能立刻执行,而是等待actioncell8提取出action执行完毕后,合并两个action的执行结果,然后再提取出actioncell1和actioncell8中的selector(两者应该相同,应该是合并的),在selector中查看到该子业务后面需要执行子业务actioncell有多少个,并把合并的结果通过消息传给后面的这些子业务actioncell,再把所有这些子业务actioncell压入堆栈actioncellstack中,再判断堆栈actioncellstack是否有子业务actioncell,如果没有的话,网络模型业务流程结束;如果有的话,弹出子业务actioncell后继续按照分支和合并流程的步骤执行,直到堆栈actioncellstack中没有子业务actioncell,网络模型业务流程结束。如图7所示,图7为本实施例中网络模型业务合并执行案例,把某个网络模型业务分成11个步骤,包括以下步骤:网络模型业务中子业务1的执行,执行完根据子业务1的选择器选择下一个子业务2。网络模型业务中子业务2的执行,执行完根据子业务2的选择器选择需要执行的子业务有4个,分别为子业务3、子业务4、子业务5、子业务6,根据算法,把这4个子业务(3、4、5、6)都压入子业务堆栈中,然后逐个从栈顶取出子业务,分别执行,这4个子业务按照并发执行,它们不需要等待彼此,根据子业务处理流程的时间长短,这4个子业务随便哪一个都可能先结束。网络模型业务中子业务6的执行,执行完根据子业务6的选择器可以知晓这个网络模型业务的这个分支执行完毕。网络模型业务中子业务5的执行,执行完根据子业务5的选择器选择下一个子业务9。网络模型业务中子业务4的执行,执行完根据子业务4的选择器选择下一个子业务8。网络模型业务中子业务3的执行,执行完根据子业务3的选择器选择下一个子业务7。网络模型业务中子业务3的执行,执行完根据子业务3的选择器选择下一个子业务7。网络模型业务中子业务9的执行,执行完根据子业务9的选择器选择下一个子业务11,但是此时是不能执行子业务11的,因为子业务9需要和子业务10合并后才能执行子业务11。网络模型业务中子业务8的执行,执行完根据子业务8的选择器选择下一个子业务10,但是此时是不能执行子业务10的,因为子业务8需要和子业务7合并后才能执行子业务10。网络模型业务中子业务7的执行,执行完根据子业务7的选择器选择下一个子业务10,而且需要和子业务8进行合并才能执行子业务10,而此时子业务8已经执行完毕,所以可以执行子业务10。网络模型业务中子业务10的执行,执行完根据子业务10的选择器选择下一个子业务11,而且需要和子业务9合并才能执行子业务11,而此时子业务9已经执行完毕,所以可以执行子业务11。网络模型业务中子业务11的执行,执行完根据子业务11的选择器可以知晓这个网络模型业务的这个分支执行完毕。该网络模型业务合并执行的顺序可以有多种,比如包括但不仅下面几种:1-->2-->6-->5-->4-->3-->9-->8-->7-->10-->111-->2-->6-->5-->9-->4-->8-->3-->7-->10-->111-->2-->6-->5-->9-->4-->3-->8-->7-->10-->111-->2-->6-->5-->4-->8-->3-->7-->9-->10-->11本实施例提供的网络模型业务执行方法首先对网络模型业务进行了分解,这样网络模型业务的某一个子业务可以单独地进行升级更新,而某一网络模型业务的各个分支流程可以多线程并发的执行,某一个网络模型业务的某一个子业务执行完毕后可以跳转到其他网络模型业务的某一个子业务执行。使网络模型业务执行更加高效和灵活。实施例三:本实施例提供了一种网络模型业务执行装置,参见图8所示,包括:任务获取模块801,用于获取待执行网络模型业务之识别标识。任务获取模块801获取当前待执行网络模型业务的识别标识,应当理解的是,当前待执行网络模型业务可能只有一个,也可能有多个。任务匹配模块802,用于根据所述识别标识在业务配置文件库中查找所述待执行网络模型业务对应的业务配置文件。本实施例中业务配置文件库预先存储有至少一个网络模型业务的业务配置文件,各个网络模型业务的业务配置文件的生成过程可以根据具体的业务配置文件所包含的内容、结构等因素灵活确定。本实施例中的各网络模型业务的业务配置文件包括网络模型业务的识别标识,以便于业务配置文件的准确识别。应当理解的是,本实施例中业务配置文件所包含的识别标识可以是直接与对应网络模型业务相同的识别标识,也可以是与其唯一对应的但内容并不相同的识别标识,此时可以直接根据该对应的关系也可以匹配到各网络模型业务对应的配置文件。任务执行模块803,用于执行查找到的业务配置文件中的子业务配置文件。应当理解的是,本实施例中上述模块的功能可以通过处理器实现。通过上述过程可知,本实施例网络模型业务执行装置针对各种网络模型业务,可以对应预先生成相应的配置文件进行存储,然后在执行网络模型业务时,只需要调用其对应的网络模型业务进行执行即可。应当理解的是,本实施例中网络模型业务对应的业务配置文件的具体结构可以根据具体需求灵活设定。在本实施例的一种示例中,一个网络模型业务的业务配置文件还包括至少一个组成该网络模型业务的业子业务配置文件;也即将一个网络模型业务分解成相对独立的多个子业务,一个子任务对应一个子业务配置文件。这种结构除了在执行网络模型业务时便于灵活选择所需要执行的部分,在需要进行业务升级时,也可以仅对需要升级的子业务或以及其关联的子业务进行相应的升级,不需要对整个网络模型业务升级,既能提升升级过程的灵活性,又能提升升级效率和资源利用率。本实施例中,生成的子业务配置文件包括子业务索引包和子业务执行包;其中子业务索引包包括子任务索引标识和下级子业务选择信息,且至少一个子业务配置文件之子业务索引包的下级子业务选择信息包括下级子业务索引标识;本实施例中的下级子业务选择信息中包含的下级子业务索引标识是指当前子业务执行完毕后所关联执行的下级子业务,该下级子业务可能是一个,也可能是多个,对于某些子业务来说其下级子业务也可能为空。本实施例中子业务所关联的下级子业务可能是同一网络模型业务中的子任务,也可能是其他网络模型业务中的子任务。在一种示例中,子业务配置文件包括的业务执行包主要指执行该子业务所需的信息,例如包括但不限于实现接口以及执行主体。任务执行模块803执行查找到的业务配置文件包括:任务执行模块803从匹配到的业务配置文件中提取当前待执行的子业务配置文件。任务执行模块803提取子业务配置文件中的子业务执行包执行子业务,并在判断下级子业务选择信息包括下级子业务索引标识时,将执行结果发给下级子业务索引标识对应的子业务配置文件,将该下级子业务索引标识对应的子业务配置文件作为下一待执行的子业务配置文件。本实施例中,任务执行模块803判断下级子业务选择信息是否包括下级子业务索引标识,可以在根据子业务配置文件中的子业务执行包执行完该子业务后进行,也可以在执行完该子业务之前与其并行进行,甚至根据需要可以在执行该子业务之前进行,具体可以根据具体业务执行场景灵活设定。在本实施例中,任务执行模块803执行网络模型业务的各子业务配置文件时,可以通过子任务执行队列进行,当然该应当理解的是也可以不通过子任务执行队列进行。本实施例中的子任务执行队列具体可以通过堆栈实现。通过子任务执行队列进行时,任务执行模块803从业务配置文件中获取当前待执行的子业务配置文件后,提取子业务配置文件中的子业务执行包之前,还包括将当前待执行的子业务配置文件之子业务索引包加入子任务执行队列;然后按照预设子任务取出规则(例如包括但不限于先入先出规则)从子任务执行队列中取出子业务配置文件之子业务索引包后,根据该子业务索引包中的子任务索引标识从当前待执行的子业务配置文件中提取子业务执行包以执行子业务,直到该子任务执行队列中待执行的子任务为空。本实施例中,当某一子任务配置文件的下级子业务选择信息包括至少两个子业务索引标识时,称这种情况为网络模型业务中有分支执行的情况,具体的执行过程称之为有分支执行流程算法。此时,任务执行模块803将得到的执行结果分别下发给各子业务索引标识对应的子业务配置文件,将各子业务索引标识对应的子业务配置文件之子业务索引包分别加入子任务执行队列。任务执行模块803将各子业务索引标识对应的子业务配置文件(下面称为下级子任务的子业务配置文件)之子业务索引包分别加入子任务执行队列时,加入顺序可以随机加入,也可以按照各下级子任务的优先级加入,具体可以根据具体需求灵活选择。此时任务执行模块803执行各子业务索引标识对应的子业务配置文件包括:任务执行模块803从子任务执行队列中取出一个子业务配置文件的子业务索引包。具体可以通过先入先出原则从子任务执行队列中取出。任务执行模块803根据当前提取出的子业务索引包中的子任务索引标识从对应的当前待执行子业务配置文件中提取子业务执行包执行该子业务。任务执行模块803在执行完该子业务之前,提取该子业务索引包的下级子业务选择信息判断是否包括下级子业务索引标识,也即采用异步并行的方式进行,如包括,将该下级子业务索引标识对应的子业务配置文件作为下一待执行的子业务配置文件加入子任务执行队列,从子任务执行队列中取出下一个子业务配置文件的子业务索引包;如不包括,直接从子任务执行队列中取出下一个子业务配置文件的子业务索引包。在本实施例中,至少一个子业务配置文件还包括合并处理标识,该合并处理标识包括待合并子业务的指示信息;本实施例称当前执行的子业务配置文件包括合并处理标识的情况为有合并执行的情况,对应的执行过程为合并执行流程算法。任务执行模块803在判断下级子业务选择信息包括待执行的下级子业务索引标识时,提取该子业务配置文件中的子业务执行包执行子业务得到执行结果后,将执行结果发给下级子业务索引标识对应的子业务配置文件之前,判断子业务配置文件是否包括合并处理标识,如否,直接将执行结果发给下级子业务索引标识对应的子业务配置文件;如是,获取合并处理标识的指示信息所指示的待合并子任务的执行结果作为待合并执行结果,将执行结果与待合并执行结果合并处理后发送给下级子业务索引标识对应的子业务配置文件。应当理解的是,本实施例中执行结果的合并处理可以是各种合并处理过程,在此不再赘述。本发明实施例提供的网络模型业务执行装置适用于各种不同的网络模型业务,通用性和兼容性好,更利于各种网络模型业务集成到各种网络架构中。其将网络模型业务分解成相对独立的至少一个业务,在调用过程中以及升级过程中可以子业务为单位进行调用和升级,更为灵活,且升级效率和资源利用率更高。且其可以通过异步并行的方式执行各业务,能进一步满足各种业务并行执行的需求。实施例四:本实施例还提供了一种软件定义网络(sdn)控制器,该软件定义网络(sdn)控制器可以通过各种服务器实现。参见图9所示,本实施例中的终端包括处理器901、存储器902及通信总线903;通信总线903用于实现处理器901和存储器902之间的连接通信;处理器901用于执行存储器902中存储的一个或者多个程序,以至少实现上述实施例一和实施例二所示的网络模型业务执行方法的步骤。本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,存储的一个或者多个程序可被一个或者多个处理器执行,以至少实现如上所述的实施例一和实施例二所示的网络模型业务执行方法的步骤。应当理解的是,本实施例中的计算机可读存储介质适用于各种终端或服务器。通过本实施例提供的计算机可读存储介质和软件定义网络控制器,可以对网络模型业务进行了分解,这样网络模型业务的某一个子业务可以单独地进行升级更新,而某一网络模型业务的各个分支流程可以多线程并发的执行,某一个网络模型业务的某一个子业务执行完毕后可以跳转到其他网络模型业务的某一个子业务执行。使网络模型业务执行更加高效和灵活。显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(rom/ram、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属
技术领域
:的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1