一种流程调度方法以及流程调度设备与流程

文档序号:15517550发布日期:2018-09-25 18:43阅读:138来源:国知局

本发明涉及工作流管理技术,尤其涉及一种流程调度方法以及流程调度设备。



背景技术:

由于流程执行经常采用集中式方式,即在一个节点上完成流程执行过程,因此一个流程执行需要的所有服务必须部署在一个节点上,限制了系统吞吐量,故业界提出去中心化流程执行方式。在去中心化流程执行中,服务部署在不同节点上,可以根据系统中所有流程对服务的调用情况,对服务部署进行优化,实现资源的优化配置,从而可以提高系统整体吞吐量。但相应地就需要流程调度技术,在合适的时间把合适的活动调度给对应的节点。

由于系统中通常存在多个流程,每个流程包含至少一个活动,不同流程可以包含相同的活动。流程调度系统通常维护多个活动调度队列,每个活动调度队列对应一个活动类型。当某个流程实例即一次流程执行中的活动满足可被调度的条件时,流程调度系统按照该活动的类型将其加入到对应的活动调度队列中。

然而,现有的流程调度方法中,不同活动调度队列是独立的,活动调度也是独立的,由于流程中的活动会存在并行关系,即存在不同的活动同时执行,只有当存在并行关系的活动都执行完成后,流程才能被路由到后续的节点继续执行下去,限制了系统吞吐量,导致流程调度效率降低。



技术实现要素:

本申请实施例提供了一种流程调度方法和流程调度设备,用于使存在并行关系的流程活动能同时调度,提高了流程调度的效率。

有鉴于此,本申请第一方面提供了一种流程调度方法,可包括:

流程调度设备接收第一活动派发请求,其中该第一活动派发请求用于请求流程调度设备派发第一活动类型的活动,在第一活动调度队列中确定第一活动为最优活动优先调度,且第一活动调度队列中包含的各活动的活动类型都是第一活动类型,在确定第一活动为最优活动后,从该最优活动的活动信息中,获得与该最优活动存在并行关系的各关联并行活动的唯一标识,再根据获得的各关联并行活动的唯一标识在对应的活动调度队列中找出目标关联并行活动,可以理解的是,目标关联并行活动可以包括一个或者多个活动。若活动派发请求队列中包括了与各目标关联并行活动的活动类型对应的派发请求,即各目标关联并行活动的活动类型与对应的派发请求所请求的活动的活动类型一样,则将最优活动确定为第一活动派发请求的派发活动,且各目标关联并行活动确定为与最优活动并行派发的派发活动。本申请实施例中,确定第一活动为最优活动后,根据最优活动的活动信息获得了关联并行活动的唯一标识,并根据该唯一标识在对应的活动调度队列中找出目标关联并行活动,且确定目标关联并行活动为与最优活动并行派发的派发活动,使存在并行关系的流程活动能同时调度,提高了流程调度的效率。

在一种可能的设计中,在本申请实施例第一方面的第一种实现方式中,所述唯一标识包括流程实例标识和活动类型标识。

该实现方式中,唯一标识包括流程实例标识和活动类型标识,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第一方面的第二种实现方式中,所述根据所述各关联并行活动的唯一标识在对应的活动调度队列中找出目标关联并行活动包括:根据所述各关联并行活动的活动类型标识确定所述对应的活动调度队列,所述各关联并行活动的活动类型标识与所述对应的活动调度队列中的活动的活动类型标识相同;在所述对应的活动调度队列中,确定流程实例标识与所述各关联并行活动的流程实例标识相同的活动为所述目标关联并行活动。

该实现方式中,先确定对应的活动调度队列,再在活动调度队列中找出目标关联并行活动,增加了本申请实施例的可操作性。

在一种可能的设计中,在本申请实施例第一方面的第三种实现方式中,所述确定所述最优活动为所述第一活动派发请求的派发活动,且确定所述各目标关联并行活动为与所述最优活动并行派发的派发活动之后,所述方法还包括:从所述第一活动调度队列中移除所述最优活动,且将所述目标关联并行活动从所述对应的活动调度队列中移除。

该实现方式中,增加了从相应的活动调度队列移除最优活动和目标关联并行活动的步骤,完善了本申请实施例的操作步骤。

在一种可能的设计中,在本申请实施例第一方面的第四种实现方式中,若活动派发请求队列中不包括各目标关联并行活动的活动类型对应的派发请求,所述方法还包括:在所述第一活动的活动信息中添加区别标识信息;在所述第一活动调度队列中除所述第一活动以外的其他活动中重新确定第一更改活动作为所述最优活动。

该实现方式中,若活动派发请求队列中不包括各目标关联并行活动的活动类型对应的派发请求,则在第一活动的活动信息中添加区别标识信息,且重新选择最优活动,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第一方面的第五种实现方式中,当所述区别标识信息为最晚调度时间时,在所述第一活动的活动信息中添加区别标识信息之前,所述方法还包括:计算所述第一活动的最晚调度时间。

该实现方式中,当区别标识信息为最晚调度时间时,增加了最晚调度时间的获得方式,增强了本申请实施例的逻辑性。

在一种可能的设计中,在本申请实施例第一方面的第六种实现方式中,所述计算所述第一活动的最晚调度时间包括:根据第一流程实例对应流程的历史流程实例中各活动的执行起始时间和执行结束时间可以计算得到所述第一流程实例中各活动的平均处理时间,其中所述第一流程实例的流程实例标识与所述第一活动的唯一标识中的流程实例标识相同;根据所述第一流程实例的开始时间、所述第一流程实例的截止期限以及所述第一流程实例中各活动的平均处理时间计算所述第一活动的最晚调度时间。

该实现方式中,细化了获得最晚调度时间的方式,使得本申请实施例的可操作性更强。

在一种可能的设计中,在本申请实施例第一方面的第七种实现方式中,所述根据所述第一流程实例的开始时间、所述第一流程实例的截止期限以及所述第一流程实例中各活动的平均处理时间计算所述第一活动的最晚调度时间包括:按照如下方式计算所述第一活动的最晚调度时间:td=ts+to-∑(1+δ)ta;所述td表示所述第一活动的最晚调度时间;所述ts表示所述第一流程实例的开始时间;所述to表示所述第一流程实例的截止期限;所述ta表示所述第一流程实例中各活动的平均处理时间;所述∑(1+δ)ta表示所述第一流程实例中执行时间晚于所述第一活动的活动的处理时间总和,所述δ为取值范围在0到1之间的固定数值。

该实现方式中,提供了计算第一活动的最晚调度时间的具体公式,使得本申请实施例更加具有实操性。

在一种可能的设计中,在本申请实施例第一方面的第八种实现方式中,所述在所述第一活动的活动信息中添加区别标识信息之后,所述方法还包括:判断所述第一活动调度队列中是否存在第二更改活动,其中所述第二更改活动的活动信息中包括所述最晚调度时间,且所述第二更改活动当前已经达到所述最晚调度时间;若存在,则将所述第二更改活动作为所述第一活动派发请求的派发活动。

该实现方式中,若第一活动调度队列中存在已经达到最晚调度时间的活动,则将该活动作为最优活动,增加了本申请实施例的实现方式。

本申请实施例第二方面提供了一种流程调度设备,所述流程调度设备包括:活动派发请求接收模块、最优活动确定模块和关联决策调度模块,所述关联决策调度模块包括第一确定子模块和第二确定子模块;所述活动派发请求接收模块,用于接收第一活动派发请求,所述第一活动派发请求用于请求派发第一活动类型的活动;所述最优活动确定模块,用于在第一活动调度队列中确定第一活动为最优活动,所述第一活动调度队列中的活动的活动类型均为所述第一活动类型;所述最优活动确定模块,还用于从所述最优活动的活动信息中获得所述最优活动的各关联并行活动的唯一标识;所述第一确定子模块,用于根据所述最优活动确定模块获得的所述各关联并行活动的唯一标识在对应的活动调度队列中找出目标关联并行活动,所述目标关联并行活动包括一个或多个活动;所述第二确定子模块,若活动派发请求队列中包括各目标关联并行活动的活动类型对应的派发请求,则还用于确定所述最优活动为所述第一活动派发请求的派发活动,且确定所述各目标关联并行活动为与所述最优活动并行派发的派发活动。

本申请实施例中,最优活动确定模块确定第一活动为最优活动后,根据最优活动的活动信息获得了关联并行活动的唯一标识,第一确定子模块根据该唯一标识在对应的活动调度队列中找出目标关联并行活动,且第二确定子模块确定目标关联并行活动为与最优活动并行派发的派发活动,使存在并行关系的流程活动能同时调度,提高了流程调度的效率。

在一种可能的设计中,在本申请实施例第二方面的第一种实现方式中,所述唯一标识包括流程实例标识和活动类型标识。

该实现方式中,唯一标识包括流程实例标识和活动类型标识,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第二方面的第二种实现方式中,所述第一确定子模块包括:第一确定单元,用于根据所述各关联并行活动的活动类型标识确定所述对应的活动调度队列,所述对应的活动调度队列中的活动的活动类型标识与所述各关联并行活动的活动类型标识相同;第二确定单元,用于在所述对应的活动调度队列中,确定流程实例标识与所述各关联并行活动的流程实例标识相同的活动为所述目标关联并行活动。

该实现方式中,先确定对应的活动调度队列,再在活动调度队列中找出目标关联并行活动,增加了本申请实施例的可操作性。

在一种可能的设计中,在本申请实施例第二方面的第三种实现方式中,所述流程调度设备还包括:移除模块,用于将所述最优活动从所述第一活动调度队列中移除,且将所述目标关联并行活动从所述对应的活动调度队列中移除。

该实现方式中,增加了从相应的活动调度队列移除最优活动和目标关联并行活动的步骤,完善了本申请实施例的操作步骤。

在一种可能的设计中,在本申请实施例第二方面的第四种实现方式中,若活动派发请求队列中不包括各目标关联并行活动的活动类型对应的派发请求,所述关联调度决策模块还包括:添加子模块,用于在所述第一活动的活动信息中添加区别标识信息;第三确定子模块,用于在所述第一活动调度队列中除所述第一活动以外的其他活动中重新确定第一更改活动作为所述最优活动。

该实现方式中,若活动派发请求队列中不包括各目标关联并行活动的活动类型对应的派发请求,则在第一活动的活动信息中添加区别标识信息,且重新选择最优活动,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第二方面的第五种实现方式中,所述流程调度设备还包括:计算模块,用于计算所述第一活动的最晚调度时间。

该实现方式中,当区别标识信息为最晚调度时间时,增加了最晚调度时间的获得方式,增强了本申请实施例的逻辑性。

在一种可能的设计中,在本申请实施例第二方面的第六种实现方式中,所述计算模块包括:第一计算子模块,用于根据第一流程实例对应流程的历史流程实例中各活动的执行起始时间和执行结束时间,计算所述第一流程实例中各活动的平均处理时间,所述第一流程实例的流程实例标识与所述第一活动的唯一标识中的流程实例标识相同;第二计算子模块,用于根据所述第一流程实例的开始时间、所述第一流程实例的截止期限以及所述第一流程实例中各活动的平均处理时间计算所述第一活动的最晚调度时间。

该实现方式中,细化了获得最晚调度时间的方式,使得本申请实施例的可操作性更强。

在一种可能的设计中,在本申请实施例第二方面的第七种实现方式中,所述第二计算子模块包括:计算单元,用于按照如下方式计算所述第一活动的最晚调度时间:td=ts+to-∑(1+δ)ta;所述td表示所述第一活动的最晚调度时间;所述ts表示所述第一流程实例的开始时间;所述to表示所述第一流程实例的截止期限;所述ta表示所述第一流程实例中各活动的平均处理时间;所述∑(1+δ)ta表示所述第一流程实例中执行时间晚于所述第一活动的活动的处理时间总和,所述δ为取值范围在0到1之间的固定数值。

该实现方式中,提供了计算第一活动的最晚调度时间的具体公式,使得本申请实施例更加具有实操性。

在一种可能的设计中,在本申请实施例第二方面的第八种实现方式中,所述最优确定模块还包括:判断子模块,用于判断所述第一活动调度队列中是否存在第二更改活动,所述第二更改活动的活动信息中包括所述最晚调度时间,且所述第二更改活动当前已经达到所述最晚调度时间;第四确定子模块,若存在,则用于将所述第二更改活动作为所述第一活动派发请求的派发活动。

该实现方式中,若第一活动调度队列中存在已经达到最晚调度时间的活动,则将该活动作为最优活动,增加了本申请实施例的实现方式。

本申请实施例第三方面提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请实施例第四方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:接收第一活动派发请求,第一活动派发请求用于请求派发第一活动类型的活动;在第一活动调度队列中确定第一活动为最优活动,第一活动调度队列中各活动的活动类型均为第一活动类型;从最优活动的活动信息中获得最优活动的各关联并行活动的唯一标识;根据各关联并行活动的唯一标识在对应的活动调度队列中找出目标关联并行活动,目标关联并行活动包括一个或多个活动;若活动派发请求队列中包括各目标关联并行活动的活动类型对应的派发请求,则确定最优活动为第一活动派发请求的派发活动,且确定各目标关联并行活动为与最优活动并行派发的派发活动。本申请实施例中,确定第一活动为最优活动后,根据最优活动的活动信息获得了关联并行活动的唯一标识,并根据该唯一标识在对应的活动调度队列中找出目标关联并行活动,且确定目标关联并行活动为与最优活动并行派发的派发活动,使存在并行关系的流程活动能同时调度,提高了流程调度的效率。

附图说明

图1为现有技术的系统架构的示意图;

图2为本申请实施例流程调度方法的一个实施例示意图;

图3为本申请实施例流程调度方法的另一个实施例示意图;

图4为本申请实施例流程调度方法的另一个实施例示意图;

图5为本申请实施例流程调度方法的另一个实施例示意图;

图6为本申请实施例中流程调度设备的一个实施例示意图;

图7为本申请实施例中流程调度设备的一个实施例示意图;

图8a为本申请实施例中流程调度设备的另一个实施例示意图;

图8b为本申请实施例中流程调度设备的另一个实施例示意图。

具体实施方式

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

所谓流程实例,即当流程定义提交、发布到服务器以后,在流程启动时创建流程定义的一个实例。每一个流程实例会被保存在流程实例库中,包括流程实例标识、流程实例名称、流程实例的状态等信息。流程实例中的每个活动称为活动实例,每一个活动实例会被保存在活动实例库中,包括活动实例标识、活动实例的状态、所属的活动定义标识以及流程实例标识、时间限制等信息。

在去中心化流程执行中,需要流程调度技术在合适的时间把合适的活动调度给对应的节点,在该节点上完成活动的执行。图1为现有技术中流程调度系统的系统框架图,包括流程调度节点和各活动执行节点,在流程调度节点上,执行请求接收模块接收流程执行请求后,流程实例启动模块为每一个流程执行请求创建一个流程实例,并向流程实例管理模块请求对该流程实例进行状态管理,由流程实例管理模块确定该流程实例中的活动是否可调度,如果可以,则将该活动加入到对应类型的活动调度队列中。调度决策模块接收到活动执行节点的活动派发请求后,从对应的活动调度队列,即该活动调度队列的活动类型与活动执行节点的活动类型相同,选择一个活动派发给该节点。然而现有技术中,如果系统中存在有并行关系的活动时,只有当活动都执行完成后,流程才能被路由到后续的节点继续执行下去,限制了系统吞吐量,导致流程调度效率降低。

本申请中,流程调度设备接收第一活动派发请求,第一活动派发请求用于请求派发第一活动类型的活动;在第一活动调度队列中确定第一活动为最优活动,第一活动调度队列中的活动的活动类型均为第一活动类型;从最优活动的活动信息中获得最优活动的各关联并行活动的唯一标识;根据各关联并行活动的唯一标识在对应的活动调度队列中找出目标关联并行活动,目标关联并行活动包括一个或多个活动;若活动派发请求队列中包括各目标关联并行活动的活动类型对应的派发请求,则确定最优活动为第一活动派发请求的派发活动,且确定各目标关联并行活动为与最优活动并行派发的派发活动。本申请使存在并行关系的流程活动能同时调度,提高了流程调度的效率。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图2,本发明实施例中流程调度方法一个实施例包括:

201、接收第一活动派发请求;

本申请实施例中,通过流程调度设备执行流程,其中该流程包括至少一个节点,如流程调度节点、活动执行节点等,流程调度节点用于在合适的时间把合适的活动调度给对应的节点,在该对应的节点上完成活动的执行,所谓对应的节点,指该节点上部署有执行活动所需的服务。可以理解的是,系统中会存在多种不同类型的活动执行节点,用来请求流程调度节点派发活动,且执行流程调度节点派发的活动。本申请中,流程调度节点接收到第一活动执行节点发送的第一活动派发请求,并将该第一活动派发请求加入到活动派发请求队列中,其中该第一活动派发请求用来请求派发第一活动类型的活动。

202、在第一活动调度队列中确定第一活动为最优活动;

需要说明的是,流程调度设备的内存数据库中存储有多个活动调度队列,每个活动调度队列对应一个活动类型,即缓存着同一个类型的可调度活动,当一个活动执行所需的所有输入数据已经具备的话,就认为该活动可调度,或者一个活动执行时不需要输入数据,也认为该活动为可调度活动。

流程调度设备从活动派发请求队列中消费第一活动派发请求,在第一活动调度队列中确定第一活动为最优活动,其中,该第一活动调度队列中的活动的活动类型均为第一活动类型。另外,在实际应用中,确定最优活动的方式有多种,例如将第一活动调度队列中的首个活动作为最优活动,首个活动即为第一活动;或者预算第一活动调度队列中各活动在第一活动执行节点上的完成时间,再从中选择完成时间最少的活动作为最优活动;还可以根据对应流程实例的截止期限给对应流程实例中的各活动分配子截止期限,分配完成后从第一活动调度队列中找出子截止期限最早的活动作为最优活动,故本申请实施例中,确定最优活动的方式具体此处不做限定。

203、从最优活动的活动信息中获得最优活动的各关联并行活动的唯一标识;

流程调度设备在第一活动调度队列中确定第一活动为最优活动后,由于每个活动都有唯一标识以区别于其他活动,该唯一标识可以包括流程实例标识和活动类型标识,通过该最优活动的唯一标识在活动实例库中找到第一活动的活动信息,且该活动信息中不仅包括第一活动的唯一标识,还包括与第一活动存在并行关系的关联并行活动的唯一标识,可以理解的是,与第一活动存在并行关系的关联并行活动可以是一个活动或者多个活动,具体此处不做限定。

204、根据各关联并行活动的活动类型标识确定对应的活动调度队列;

流程调度设备得到最优活动的各关联并行活动的唯一标识后,由于第一活动信息中的关联并行活动的唯一标识可能包括已经调度的关联并行活动的唯一标识,因此需要在活动调度队列中找出缓存的关联并行活动来进行调度。通过该唯一标识中的活动类型标识找到对应的活动调度队列,可以理解的是,对应的活动调度队列中的活动的活动类型标识与各关联并行活动的活动类型标识相同。

205、确定流程实例标识与各关联并行活动的流程实例标识相同的活动为目标关联并行活动;

流程调度设备确定了各关联并行活动对应的活动调度队列后,在该对应的活动调度队列中,找出与各关联并行活动的流程实例标识相同的活动作为目标关联并行活动,可以理解的是,该目标关联并行活动可以包括一个或多个活动,且均为未调度的活动。

需要说明的是,实际应用中,流程调度设备确定目标关联并行活动的方式有多种,例如,最优活动的活动信息中包括各关联并行活动的唯一标识,流程调度设备判断该各关联并行活动是否为未调度的关联并行活动,若某个关联并行活动已经被调度,则将该关联并行活动的唯一标识从最优活动的活动信息中移除,即最优活动的活动信息中所包括的关联并行活动的唯一标识均为目标关联并行活动的唯一标识,再根据该目标关联并行活动的唯一标识找出目标关联并行活动。故本申请实施例中,确定目标关联并行活动的方式具体此处不做限定。

206、确定最优活动为第一活动派发请求的派发活动,且各目标关联并活动为与最优活动并行派发的派发活动;

若流程调度设备确定各目标关联并行活动的活动类型对应的派发请求均包含于活动派发请求队列中,则确定最优活动为第一活动派发请求的派发活动,且各目标关联并行活动为与最优活动并行派发的派发活动,即各目标关联并行活动为对应的派发请求的派发活动。反之,若流程调度设备确定各目标关联并行活动的活动类型对应的派发请求并不均包含于活动派发请求队列中,则不能确定该最优活动即第一活动为第一活动派发请求的派发活动。

207、从活动派发请求队列中移除与各目标关联并行活动的活动类型对应的派发请求;

流程调度设备确定各目标关联并活动为与最优活动并行派发的派发活动后,将各目标关联并行活动的活动类型对应的派发请求从活动派发请求队列中移除。

208、将最优活动和目标关联并行活动从对应的活动调度队列中移除;

流程调度设备将最优活动从第一活动调度队列中移除,并将目标关联并行活动从与目标关联并行活动对应的活动调度队列中移除。

209、将最优活动和目标关联并行活动分配给对应的活动执行节点。

流程调度设备将最优活动分配给第一活动执行节点,且将各目标关联并行活动分配给对应的活动执行节点,该对应的活动执行节点执行的活动的活动类型与各目标关联并行活动的活动类型相同。

本申请实施例中,流程调度设备接收第一活动派发请求,第一活动派发请求用于请求派发第一活动类型的活动;在第一活动调度队列中确定第一活动为最优活动,第一活动调度队列中的活动的活动类型均为第一活动类型;从最优活动的活动信息中获得最优活动的各关联并行活动的唯一标识;根据各关联并行活动的唯一标识在对应的活动调度队列中找出目标关联并行活动,目标关联并行活动包括一个或多个活动;若活动派发请求队列中包括各目标关联并行活动的活动类型对应的派发请求,则确定最优活动为第一活动派发请求的派发活动,且确定各目标关联并行活动为与最优活动并行派发的派发活动。本申请使存在并行关系的流程活动能同时调度,提高了流程调度的效率。

上述图2示出了若各目标关联并行活动的活动类型对应的派发请求均包含于活动派发请求队列中的情况,实际应用中还存在各目标关联并行活动的活动类型对应的派发请求并不全包含于活动派发请求队列的情况,有鉴于此,下面图3将对该情况进行说明。

请参阅图3,本申请实施例中流程调度方法另一个实施例包括:

301、接收第一活动派发请求;

302、在第一活动调度队列中确定第一活动为最优活动;

303、从最优活动的活动信息中获得最优活动的各关联并行活动的唯一标识;

304、根据各关联并行活动的活动类型标识确定对应的活动调度队列;

305、确定流程实例标识与各关联并行活动的流程实例标识相同的活动为目标关联并行活动;

本申请实施例中,步骤301至步骤305与图2的步骤201至步骤205类似,此处不再赘述。

306、计算第一流程实例中各活动的平均处理时间;

系统的流程日志中记录了各个流程实例的执行历史,即流程调度设备在执行当前的流程实例之前,也执行完成过多个该流程实例对应流程的历史流程实例,并将这些历史流程实例的执行信息存储于本地的流程日志中,其中包括历史流程实例中各个活动的执行起始时间和执行结束时间。在流程日志中获得第一流程实例对应流程的历史流程实例中各活动的执行起始时间和执行结束时间,且该第一流程实例的流程实例标识与第一活动的唯一标识中的流程实例标识相同,进而得到了每个历史流程实例中已完成的各活动的处理时间,再按照平均数运算的方式计算第一流程实例中各活动的平均处理时间,并将该平均处理时间存储到内存数据库中,其中存储形式可以为<流程实例标识,活动类型标识,平均处理时间>,或<平均处理时间,流程实例标识,活动类型标识>,故存储形式有多种,具体此处不做限定。需要说明的是,实际应用中,为了保证存储信息的准确性以及时效性,获得流程实例中各活动的平均处理时间的过程可以周期性执行,即每隔一个固定周期便重新计算该平均处理时间。

307、根据第一流程实例的开始时间、第一流程实例的截止期限以及第一流程实例中各活动的平均处理时间计算第一活动的最晚调度时间;

本申请实施例中,得到了第一流程实例中各活动的平均处理时间后,可以根据该平均处理时间、第一流程实例的开始时间以及第一流程实例的截止期限计算第一活动的最晚调度时间。

具体的计算方式可以是:

td=ts+to-∑(1+δ)ta;

其中,该td表示第一活动的最晚调度时间;

该ts表示第一流程实例的开始时间;

该to表示第一流程实例的截止期限;

该ta表示第一流程实例中各活动的平均处理时间;

该∑(1+δ)ta表示第一流程实例中执行时间晚于第一活动的活动的处理时间总和,其中δ为取值范围在0到1之间的固定数值。

308、在第一活动的活动信息中添加区别标识信息;

本申请实施例中,通过步骤306至307得到了第一活动的最晚调度时间,并将该最晚调度时间作为区别标识信息添加到第一活动的活动信息中,以将该第一活动与第一活动调度队列中的其他活动区别。需要说明的是,实际应用中,区别标识信息除了是最晚调度时间外,还可以是时间戳、序列号等,具体此处不做限定。

309、在第一活动调度队列中除第一活动以外的其他活动中重新确定第一更改活动作为最优活动;

流程调度设备在第一活动的活动信息中添加了区别标识信息后,在第一活动调度队列中,从除了第一活动以外的其他活动中重新确定第一更改活动作为最优活动,其中,确定第一更改活动为最优活动的方式与确定第一活动为最优活动的方式可以相同,也可以不相同,具体此处不做限定。

310、从最优活动的活动信息中获得最优活动的各关联并行活动的唯一标识;

311、根据各关联并行活动的活动类型标识确定对应的活动调度队列;

312、确定流程实例标识与各关联并行活动的流程实例标识相同的活动为目标关联并行活动;

313、确定最优活动为第一活动派发请求的派发活动,且各目标关联并活动为与最优活动并行派发的派发活动;

314、从活动派发请求队列中移除与各目标关联并行活动的活动类型对应的派发请求;

315、将最优活动和目标关联并行活动从对应的活动调度队列中移除;

316、将最优活动和目标关联并行活动分配给对应的活动执行节点。

本申请实施例中,步骤310至步骤316与图2的步骤203至步骤209类似,此处不再赘述。

本申请实施例中,当各目标关联并行活动的活动类型对应的派发请求并不全包含于活动派发请求队列时,在第一活动的活动信息中添加最晚调度时间以作为区别标识信息,使本申请实施例的流程更加完善。

需要说明的是,在实际应用中,若将最晚调度时间作为区别标识信息,在调度活动前,需要判断活动调度队列中是否存在已经到达最晚调度时间的活动,若没有,则如图3所示的实施例,若存在已经到达最晚调度时间的活动,则优先对该活动进行调度,具体如图4所示,在图3的基础上,本申请实施例中流程调度方法另一个实施例包括:

401、接收第一活动派发请求;

本申请实施例中,步骤401与图3的步骤301类似,此处不再赘述。

402、确定第一活动调度队列中存在第二更改活动已经达到最晚调度时间;

流程调度设备确定第一活动调度队列中存在活动信息内包括最晚调度时间的活动,并从该活动中确定有已经达到最晚调度时间的第二更改活动,可以理解的是,第二更改活动可以包括一个或者多个活动。

403、将第二更改活动作为第一活动派发请求的派发活动;

确定第一活动调度队列中存在第二更改活动已经达到最晚调度时间后,流程调度设备将第二更改活动作为第一活动派发请求的派发活动优先调度,若第二更改活动为多个活动,可以根据各活动进入第一活动调度队列的时间,从中找出进入第一活动调度队列最早的活动作为第一活动派发请求的派发活动。

需要说明的是,无论该第二更改活动的活动信息中是否存在关联并行活动,或者该关联并行活动的活动类型对应的派发请求是否全部包含于活动派发请求队列中,流程调度设备依旧将第二更改活动作为第一活动派发请求的派发活动立即调度。

404、将第二更改活动从第一活动调度队列中移除;

流程调度设备确定第二更改活动为第一活动派发请求的派发活动后,将第二更改活动从第一活动调度队列中移除。

405、将第二更改活动分配给第一活动执行节点。

将第二更改活动从第一活动调度队列中移除后,流程调度设备将该第二更改活动分配给第一活动执行节点。

需要说明的是,上述图2至图4中均包括了最优活动存在关联并行活动的情况,实际应用中,还存在最优活动可能没有关联并行活动的情况。下面图5将对该情况进行说明。

请参阅图5,本申请实施例中流程调度方法另一个实施例包括:

501、接收第一活动派发请求;

502、在第一活动调度队列中确定第一活动为最优活动;

本申请实施例中,步骤501至502与图2的步骤201至202类似,此处不再赘述。

503、确定最优活动没有关联并行活动;

流程调度设备确定第一活动为最优活动后,在该最优活动的活动信息中查找各关联并行活动的唯一标识,若不包括该唯一标识,则确定该最优活动没有关联并行活动。

504、将最优活动从第一活动调度队列中移除;

流程调度设备确定第一活动为最优活动且该最优活动没有关联并行活动后,将最优活动从第一活动调度队列中移除。

505、将最优活动分配给第一活动执行节点。

将最优活动从第一活动调度队列中移除后,流程调度设备将该第最优活动分配给第一活动执行节点。

本申请实施例中,考虑了最优活动没有关联并行活动的情况,使本申请实施例逻辑更加完善全面。

上面对本申请实施例中流程调度方法进行了描述,下面对本申请实施例中的流程调度设备进行描述,请参阅图6,本申请实施例中流程调度设备的一个实施例包括:活动派发请求接收模块601、最优活动确定模块602和关联决策调度模块603,关联决策调度模块603包括第一确定子模块6031和第二确定子模块6032;

活动派发请求接收模块601,用于接收第一活动派发请求,第一活动派发请求用于请求派发第一活动类型的活动;

最优活动确定模块602,用于在第一活动调度队列中确定第一活动为最优活动,第一活动调度队列中的活动的活动类型均为第一活动类型;

最优活动确定模块602,还用于从最优活动的活动信息中获得最优活动的各关联并行活动的唯一标识;

第一确定子模块6031,用于根据最优活动确定模块获得的各关联并行活动的唯一标识在对应的活动调度队列中找出目标关联并行活动,目标关联并行活动包括一个或多个活动;

第二确定子模块6032,若活动派发请求队列中包括各目标关联并行活动的活动类型对应的派发请求,则还用于确定最优活动为第一活动派发请求的派发活动,且确定各目标关联并行活动为与最优活动并行派发的派发活动。

本申请实施例中,活动派发请求接收模块接收第一活动派发请求,最优活动确定模块在第一活动调度队列中确定第一活动为最优活动;最优活动确定模块再从最优活动的活动信息中获得最优活动的各关联并行活动的唯一标识;第一确定子模块根据各关联并行活动的唯一标识在对应的活动调度队列中找出目标关联并行活动;若活动派发请求队列中包括各目标关联并行活动的活动类型对应的派发请求,则第二确定子模块确定最优活动为第一活动派发请求的派发活动,且确定各目标关联并行活动为与最优活动并行派发的派发活动。本申请使存在并行关系的流程活动能同时调度,提高了流程调度的效率。

为便于理解,下面对本申请实施例中的流程调度设备进行详细描述,在上述图6所示的基础上,请参阅7,为本申请实施例中流程调度设备的另一个实施例示意图,可选的,第一确定子模块7031可进一步包括:

第一确定单元70311,用于根据各关联并行活动的活动类型标识确定对应的活动调度队列,对应的活动调度队列中的活动的活动类型标识与各关联并行活动的活动类型标识相同;

第二确定单元70312,用于在对应的活动调度队列中,确定流程实例标识与各关联并行活动的流程实例标识相同的活动为目标关联并行活动。

可选的,流程调度设备可进一步包括:

移除模块704,用于将最优活动从第一活动调度队列中移除,且将目标关联并行活动从对应的活动调度队列中移除。

可选的,关联决策调度模块703可进一步包括:

添加子模块7033,用于在第一活动的活动信息中添加区别标识信息;

第三确定子模块7034,用于在第一活动调度队列中除第一活动以外的其他活动中重新确定第一更改活动作为最优活动。

可选的,流程调度设备可进一步包括:

计算模块705,用于计算第一活动的最晚调度时间。

可选的,计算模块705可进一步包括:

第一计算子模块7051,用于根据第一流程实例对应流程的历史流程实例中各活动的执行起始时间和执行结束时间,计算第一流程实例中各活动的平均处理时间,第一流程实例的流程实例标识与第一活动的唯一标识中的流程实例标识相同;

第二计算子模块7052,用于根据第一流程实例的开始时间、第一流程实例的截止期限以及第一流程实例中各活动的平均处理时间计算第一活动的最晚调度时间。

可选的,第二计算子模块7052可进一步包括:

计算单元70521,用于按照如下方式计算第一活动的最晚调度时间:

td=ts+to-∑(1+δ)ta;

td表示第一活动的最晚调度时间;

ts表示第一流程实例的开始时间;

to表示第一流程实例的截止期限;

ta表示第一流程实例中各活动的平均处理时间;

∑(1+δ)ta表示第一流程实例中执行时间晚于第一活动的活动的处理时间总和,δ为取值范围在0到1之间的固定数值。

可选的,最优活动确定模块702可进一步包括:

判断子模块7021,用于判断第一活动调度队列中是否存在第二更改活动,第二更改活动的活动信息中包括最晚调度时间,且第二更改活动当前已经达到最晚调度时间;

第四确定子模块7022,若存在,则用于将第二更改活动作为第一活动派发请求的派发活动。

上面图6至图7从模块化功能实体的角度分别对本申请实施例中的流程调度设备进行详细描述,下面从硬件处理的角度对本申请实施例中的流程调度设备进行详细描述。

图8.a是本申请实施例提供的流程调度设备的结构示意框图,参考图8.a。在采用集成的单元的情况下,图8.a示出了上述实施例中所涉及的流程调度设备的一种可能的结构示意图。流程调度设备800包括:处理单元802和通信单元803。处理单元802用于对流程调度设备的动作进行控制管理,例如,处理单元802用于支持流程调度设备执行图2中的步骤202至步骤208,和/或用于本文所描述的技术的其它过程。通信单元803用于支持流程调度设备与其他网络实体的通信。流程调度设备还可以包括存储单元801,用于存储流程调度设备的程序代码和数据。

其中,处理单元802可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信单元803可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如收发接口。存储单元801可以是存储器。

当处理单元802为处理器,通信单元803为通信接口,存储单元801为存储器时,本申请实施例所涉及的流程调度设备可以为图8.b所示的流程调度设备。

参阅图8.b所示,该流程调度设备810包括:处理器812、通信接口813、存储器811。可选的,流程调度设备810还可以包括总线814。其中,通信接口813、处理器812以及存储器811可以通过总线814相互连接;总线814可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线814可以分为地址总线、数据总线、控制总线等。为便于表示,图8.b中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk(ssd)))等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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