通用流程异步调度方法及系统技术方案

技术编号:9765605 阅读:139 留言:0更新日期:2014-03-15 09:30
本发明专利技术提供一种通用流程异步调度方法和系统。该通用流程异步调度方法包括:将与流程对应的进程顺序地划分为多个子进程;基于流程状态的更新完成所述多个子进程中的一个子进程,而不依赖于所述多个子进程中的下一子进程的启动;在所述一个子进程完成时,通过流程状态的更新启动所述下一子进程。

【技术实现步骤摘要】
通用流程异步调度方法及系统
本专利技术涉及计算机软件领域。更具体地,本专利技术涉及通用流程异步调度方法及系统。
技术介绍
在现有技术中,在计算机系统中的各种应用的流程调度处理,特别是其中的任务提交处理,均采用同步方式进行。具体地,现有流程调度处理模式一般都是采用单线程处理方式,即,任何流程处理(包括提交处理)全过程均采用单一线程完成。目前,在计算机系统中的各种应用的大部分流程调度中,仅仅能支持单一应用的独立流程调度,重要原因就是很难支持高并发处理能力。然而,实际中,流程提交处理往往包括大量业务判断、业务处理、数据持久化等相关业务操作。在描述现有技术和本专利技术之前,先对本说明书中的几个术语进行描述。活动:活动(activity)是流程中的基本的业务单元。每一个活动代表一个特定的业务,比如说提交、验证等等都可以是一个活动。活动有两种类型:任务(task)和子处理(sub-process)。任务很明显就是单一的活动。而子处理是一个复合的活动,在该活动中存在一个子流程。作业:作业(job)是计算机操作者(或是一个叫做作业调度器的程序)交给信息处理系统的执行单位。例如执行一个函数就是一个作业。事件:事件(event)一般对应状态的变化。例如按下键盘,这可以作为一种事件。对于事件的操作一般分为事件的响应和事件的处理两个部分。下面描述现有技术中常见的流程调度处理。图1以一个流程中的提交处理和验证处理为例示出了现有技术中的常规流程调度处理的时序图。如图1所示,在常规流程调度处理中,客户端首先进行提交处理,从而进入提交活动。随后,进行流程状态更新并进行路由判断,根据判断结果启动下一活动并进行与下一活动相关的设置处理,随后才返回到客户端。在此过程中,客户端必须等待进行路由的判断、下一活动的启动以及相关的设置处理。在某些高并发流程处理的情况下,这样的等待使得流程处理效率低下。图2以一个流程中的提交和验证为例示出了常规流程调度处理的示意图。如图2所示,提交的完成与验证的启动这两个处理均只能在完整的一个事务中顺序完成。换句话说,提交的活动完成这个处理必须等待验证的活动正常启动后,才能结束。如图所示,该流程提交处理方式导致处理响应时间较长,处理效率受到很大影响。如上所述,在现有技术的流程调度中,流程提交处理随着流程复杂度提升、流程路由判断增多等内容,导致流程提交这个大事务处理越来越慢,客户端响应时间越来越长,应用系统效率低下。从技术特征分析而言,导致以上缺点的核心原因是:流程提交从引擎设计角度而言,采用一种同步单线程处理的机制。无法实现并行操作。在作为大容量工作流引擎,特别是流程云服务器能力,对于并行处理能力要求很高。
技术实现思路
提出本专利技术来克服现有技术中的流程调度效率低下,客户端响应时间长的问题。本专利技术重点在并行处理关键点上,流程处理,尤其是提交处理,实现可配置的异步处理能力。极大提升流程引擎处理效率和减少处理响应时间。本专利技术的一方面提供一种通用流程异步调度方法,包括:将与流程对应的进程顺序地划分为多个子进程;基于流程状态的更新完成所述多个子进程中的一个子进程,而不依赖于所述多个子进程中的下一子进程的启动;在所述一个子进程完成时,通过流程状态的更新启动所述下一子进程。优选地,在所述通用流程异步调度方法中,所述的基于流程状态的更新完成所述多个子进程中的一个子进程的步骤包括:在所述一个子进程完成时,基于更新的流程状态返回完成结果。优选地,在所述通用流程异步调度方法中,所述的通过流程状态的更新启动所述下一子进程的步骤包括:基于更新的流程状态产生用于启动下一子进程的事件;并且在该事件的触发下启动所述下一子进程。优选地,在所述通用流程异步调度方法中,在该事件的触发下启动所述下一子进程的步骤包括:根据该事件,产生用于启动下一子进程的消息;并且根据所述消息执行下一子进程的启动序列。优选地,在所述通用流程异步调度方法中,所述一个子进程包括从客户端接收的流程提交子进程,基于该流程提交子进程的执行对流程状态进行更新;基于更新的流程状态,完成流程提交子进程并向客户端返回结果。本专利技术的另一方面提供一种通用流程异步调度系统,包括:外部接口,被配置为接收用于执行流程的指令以及输出结果;状态机,被配置为更新流程状态,基于更新的流程状态完成流程的当前子进程以及产生用于启动下一子进程的事件;事件监听器,被配置为实时监听事件,并基于监听到的事件发出用于启动下一子进程的消息;作业处理器,被配置为接收所述消息并启动下一子进程。优选地,在所述通用流程异步调度系统中,所述事件监听器被配置为创建事件发生机制;并且状态机能够在状态改变时产生基于所述事件发生机制的事件,从而事件监听器能够监听到该事件。优选地,在所述通用流程异步调度系统中,所述子进程包括通过外部接口从客户端接收的流程提交子进程,所述状态机基于该流程提交子进程的执行对流程状态进行更新,并向外部接口返回该流程提交子进程完成的消息;所述外部接口在接收到该流程提交子进程完成的消息时,进行流程提交子进程完成的处理并将处理结果返回给客户端。优选地,在所述通用流程异步调度系统中进一步包括:持久化框架,其被配置为将流程状态的控制和流转通过文件或数据库进行状态持久化。通过本专利技术的通用流程异步调度方法和系统,支持高并发、高性能、并行处理能力的流程引擎,以适应流程引擎以云服务(SAAS)方式提供高可靠高性能的活动处理能力。极大提升流程引擎处理效率和减少处理响应时间。附图说明图1是以一个流程中的提交处理和验证处理为例示出现有技术中的常规流程调度处理的时序图。图2是以一个流程中的提交和验证为例示出了常规流程调度处理的示意图。图3是从流程总体角度示出了本专利技术的异步流程调度系统的示意图。图4是本专利技术的通用流程异步调度系统的框图。图5是本专利技术的通用流程异步调度处理的时序图。图6是与图5的通用流程异步调度处理的时序图对应的流程图.图7是以一个流程中的提交和验证为例示出了本专利技术的通用流程异步调度处理的示意图。图8是与图7的流程中的提交和验证处理对应的流程图。具体实施方式现在将按照附图详细描述本专利技术的优选实施例。注意,实施例中的组件的相对布置和器件的形状仅被描述为例子,并且并不旨在将本专利技术的范围限制于这些例子。此外,相似的附图标记和字母在图中指代类似的项,由此,只要在一个图中定义一项,则无需对于后续的图讨论该项。本专利技术的流程异步调度方法和系统的原理是将一个流程分为多个子进程,并且前一子进程的完成并不依赖于后一子进程的启动,而是依赖于流程状态的更新。这样实现了各个子进程的完成无需等待下一子进程的启动,减少了等待时间,从而资源利用率得到提高。下面结合图3到图6详细描述本专利技术的流程异步调度系统的构成以及与流程处理的其他部分之间的关系。还将描述流程异步调度系统或方法的具体实现。图3是从流程总体角度示出了本专利技术的流程异步调度系统的定位以及与其他部分的关系的示意图。如图3所示,作为流程产品总体组成,一般包括流程适配器、任务队列、流程管理、流程异步调度引擎、流程定义这几个部分。各部分功能如下。流程适配器实现了可移植、可复用、无差别的接口,为客户端提供了简明、统一的调用服务。流程适配器是客户端和工作流程处理之间的连接媒介,提供了多样、稳定的访问服务接口。任务队本文档来自技高网
...
通用流程异步调度方法及系统

【技术保护点】
一种通用流程异步调度方法,包括:将与流程对应的进程顺序地划分为多个子进程;基于流程状态的更新完成所述多个子进程中的一个子进程,而不依赖于所述多个子进程中的下一子进程的启动;在所述一个子进程完成时,通过流程状态的更新启动所述下一子进程。

【技术特征摘要】
1.一种通用流程异步调度方法,包括:将与流程对应的进程顺序地划分为多个子进程;基于流程状态的更新完成所述多个子进程中的一个子进程,而不依赖于所述多个子进程中的下一子进程的启动;在所述一个子进程完成时,通过流程状态的更新启动所述下一子进程,其中,所述的通过流程状态的更新启动所述下一子进程的步骤包括:基于更新的流程状态产生用于启动下一子进程的事件;并且在该事件的触发下启动所述下一子进程。2.根据权利要求1所述的通用流程异步调度方法,其中,所述的基于流程状态的更新完成所述多个子进程中的一个子进程的步骤包括:在所述一个子进程完成时,基于更新的流程状态返回完成结果。3.根据权利要求1所述的通用流程异步调度方法,其中,在该事件的触发下启动所述下一子进程的步骤包括:根据该事件,产生用于启动下一子进程的消息;并且根据所述消息执行下一子进程的启动序列。4.根据权利要求1到3中任一项所述的通用流程异步调度方法,其中,所述一个子进程包括从客户端接收的流程提交子进程,基于该流程提交子进程的执行对流程状态进行更新;基于更新的流程状态,完成流程提交子进程并向客户端返回结果。5...

【专利技术属性】
技术研发人员:郑春陈路凝王杰飞
申请(专利权)人:北京宇信易诚科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1