一种流程引擎的流程智能处理方法及系统与流程

文档序号:18902834发布日期:2019-10-18 22:11阅读:171来源:国知局
一种流程引擎的流程智能处理方法及系统与流程

本发明涉及智能建造协作平台技术领域,特别是涉及一种流程引擎的流程智能处理方法及系统。



背景技术:

智能建造协作平台是建造领域信息化综合平台,由多个功能部分共同组成的云计算平台。其中流程引擎控制所有审核流程正常运作,是协作平台最核心的部分之一。所有的审核流和数据流都需要通过流程引擎来驱动和运转,此外,流程引擎还需要控制权限,通知消息,文档渲染等多个复杂的子系统,是系统中最繁忙的部分,也是系统的性能瓶颈。由此带了一个比较严重的问题就是,在固定的资源配置下,如何分配流程到流程引擎既能使协作平台保证关键流程数据能及时处理,又能确保系统有足够大的吞吐量。

现有的流程引擎在处理流程的时候,都是采用静态调节的策略,比如采用队列策略,先提交的流程先被处理,这种方式一般能很好的保证系统的吞吐量,但是针对一些关键流程无法保证有足够的响应速度;也有方案采用的是优先级方案,具有更高优先级的流程能够优先被处理,与队列方案相比,虽然此方案能保证关键流程的响应速度,但是牺牲了系统吞吐量。

上述流程引擎处理流程的方案都是预先设计一定规则分配流程到流程引擎中,属于静态的方案,其都无法做到保证吞吐量的同时,合理利用资源和最大限度保证关键流程的吞吐量,其根本原因在于固定的流程引擎资源情况下,无论何种方式都不能即保证系统吞吐量,又保证流程处理响应时间,其结果都会产生一定的延迟。

在非云环境下,系统只有一个项目或者一个企业的流程,其需要处理流程数量并不多,延迟不会堆积到一个不可接受的地步,现有的策略也基本能满足系统性能要求。但是在云计算环境中,有成千上万的企业流程需要处理在同一个云上处理,相应速度和吞吐量就变成两个很关键的指标,任何延迟处理都会被放大直至不可接受。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种流程引擎的流程智能处理方法及系统,以在确保关键流程合理时间内得到处理的同时,保证系统吞吐量,并在适当的情况下调节流程引擎节点数量,以达到合理运用运营成本的目的。

为达上述目的,本发明提出一种流程引擎的流程智能处理方法,包括如下步骤:

步骤s1,侦测并获取待处理流程;

步骤s2,检测该待处理流程是否有历史数据,于检测到该待处理流程的历史数据时,根据该待处理流程的历史数据计算该待处理流程当前步骤可接受的最大延迟时间;

步骤s3,根据待处理流程当前步骤的可接受的最大延迟时间对所有待处理流程形成待处理流程队列,依据该待处理流程队列完成对待处理流程的处理。

优选地,于步骤s2之前,还包括如下步骤:

于所述流程引擎启动后,加载系统处理过的所有流程的历史数据。

优选地,于步骤s2中,获取历史数据中当前步骤节点与下一步骤节点之间的操作时间间隔的多个样本数据,取其均值作为当前步骤可接受的最大延迟时间。

优选地,于步骤s3中,还包括如下步骤:

获取所述待处理流程前一步骤用户操作的绝对时间,利用前一步骤用户操作的绝对时间与当前步骤的可接受的最大延迟时间相加预估出所述待处理流程当前步骤的用户期望操作时间,根据所述待处理流程当前步骤的用户期望操作时间对现有待处理流程进行排序,形成所述待处理流程队列。

优选地,于步骤s2中,若所述待处理流程没有历史数据,则直接将其加入所述待处理流程队列中,并将用户期望操作时间预估为当前时间。

为达到上述目的,本发明还提供一种流程引擎的流程智能处理系统,包括:

待处理流程侦测单元,用于侦测并获取待处理流程;

最大延迟时间计算单元,用于检测所述待处理流程是否有历史数据,于检测到所述待处理流程的历史数据时,根据所述待处理流程的历史数据计算所述待处理流程当前步骤可接受的最大延迟时间;

队列形成单元,用于根据所述待处理流程当前步骤的可接受的最大延迟时间对所有待处理流程形成待处理流程队列,依据所述待处理流程队列完成对待处理流程的处理。

优选地,所述系统包括:

历史数据加载单元,用于在所述流程引擎启动后,加载系统处理过的所有流程的历史数据。

优选地,所述最大延迟时间计算单元用于通过获取历史数据中当前步骤节点与下一步骤节点之间的操作时间间隔的多个样本数据,取其均值作为当前步骤可接受的最大延迟时间。

优选地,所述队列形成单元用于获取所述待处理流程前一步骤用户操作的绝对时间,利用前一步骤用户操作的绝对时间与当前步骤的可接受的最大延迟时间相加预估出所述待处理流程当前步骤的用户期望操作时间,根据所述待处理流程当前步骤的用户期望操作时间对现有待处理流程进行排序,形成所述待处理流程队列。

优选地,所述最大延迟时间计算单元若检测到所述待处理流程没有历史数据,则直接将其加入所述待处理流程队列中,并将用户期望操作时间预估为当前时间。

与现有技术相比,本发明一种流程引擎的流程智能处理方法及系统通过利用大数据分析技术,根据平台内所有处理流程的历史数据,计算待处理流程的最大可接受延迟时间,从而为流程引擎处理流程提供数据参考,流程引擎根据当前待处理流程最大可接受延迟,合理调度和处理,可在确保关键流程合理时间内得到处理的同时,保证系统吞吐量。在适当的情况下还能调节流程引擎节点数量,以达到合理运用运营成本的目的。

附图说明

图1为本发明实施例之审核流程的示意图;

图2为本发明一种流程引擎的流程智能处理方法的步骤流程图;

图3为本发明一种流程引擎的流程智能处理系统的系统架构图;

图4为本发明具体实施例中流程引擎的流程智能处理方法的流程图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

对于每个待处理流程,通常由多个处理步骤组成,例如一个典型的审核流程,通常由多个审核步骤组成。比如图1所示的审核流程,由“发起”,“审核一”,“审核二”,“完成”四个步骤组成。

每个步骤通常由某个角色的用户提交步骤动作后,由流程引擎负责执行。比如用户一提交了“发起”动作,流程引擎收到该动作后,会进行一系列的检查,其中包括权限,状态,条件检查等等,检查通过以后,根据流程定义,流程引擎将该流程状态执行至“审核一”步骤。与此同时,通过各种方式通知具有“审核一”权限的用户二。同时等待该用户二提交“审核”动作到流程引擎。如此反复,最终完成该流程。

一般地,流程引擎从执行用户提交的“发起”步骤到执行用户提交的“审核一”步骤中间具有一定的时间间隔,在此期间流程引擎并不需要任何动作,只是一个异步等待过程。如果可以预测某一个步骤后的异步等待过程,那么就可以推迟前一个步骤的执行时机,并不会给后续步骤的用户带来延迟。比如对于图1的审核流程来说,如果能预测到用户二要在用户一提交“发起”步骤后一个小时才会执行“审核一”步骤,那么当用户一提交了“发起”步骤后,流程引擎可以不立即执行,直到接近一个小时的时候才执行“发起”步骤,只要保证用户一在预期的时间前执行“发起”步骤,就能确保用户二不会感受到延迟。因为有了足够的时间推迟执行步骤,就给了流程引擎很多的机会调度完成其他急需执行的流程步骤。

图2为本发明一种流程引擎的流程智能处理方法的步骤流程图。如图2所示,本发明一种流程引擎的流程智能处理方法,包括如下步骤:

步骤s1,侦测并获取待处理流程。具体地说,当侦测到待处理流程时,例如侦测到某一审核流程,产生后,流程引擎将会读取到该待处理流程。

步骤s2,检测该待处理流程是否有历史数据,于检测到该待处理流程的历史数据时,根据该待处理流程的历史数据计算该待处理流程当前步骤可接受的最大延迟时间。

相关研究表明,用户的行为和历史数据往往具有很高的相似性。例如,对于某个审核流程,用户对各步骤进行具体的操作的时间间隔期望值往往非常稳定。因此,本发明从这个规律出发,利用以下公式推测待处理流程(例如审核流程)fn在步骤节点sm可接受的最大延迟时间为:

其中tp(fn,sm)为待处理流程fn在步骤节点sm与下一个步骤节点之间的操作时间间隔,k表示历史数据中样本数量,来自于同一客户的同一流程类型历史数据,取其平均值作为期望,这个值为一个相对时间长度。

为了计算待处理流程可接受的最大延迟时间,必须获得待处理流程的历史数据,因此,在步骤s2之前,还包括如下步骤:

于流程引擎启动后,加载系统处理过的所有流程的历史数据,所述历史数据包括但不限于各流程各步骤的各节点的操作时间点,操作的绝对时间以及系统计算过的对于某个流程的最大可延迟时间等,本发明不以此为限。

步骤s3,根据待处理流程当前步骤可接受的最大延迟时间对所有待处理流程进行排序,形成待处理流程队列,依据该待处理流程队列按顺序完成对待处理流程的处理。在本发明具体实施例中,流程引擎可根据待处理流程的可接受的最大延迟时间对所有待处理流程排序,例如按照可接受的最大延迟时间按小到大进行排序,最大可延迟时间越短的越排在前面,形成待处理流程队列,然后根据队列的先后顺序依次对待处理流程进行处理。

优选地,于步骤s3中,还可获取待处理流程前一步骤用户操作的绝对时间,利用前一步骤用户操作的绝对时间(一般可认为是当前时间)与当前步骤可接受的最大延迟时间相加得到该待处理流程当前步骤的用户期望操作时间的预估值,然后根据该待处理流程当前步骤的用户期望操作时间对现有待处理流程进行排序,形成该待处理流程队列,例如,流程流程引擎按照预估的待处理流程当前步骤的用户期望操作时间,按顺序完成对待处理流程的处理。即用户期望操作时间计算如下:

t=c+e(fn,sm)

其中c为当前时间戳。

优选地,于步骤s2中,若该待处理流程没有历史数据,直接将其加入所述待处理流程队列中,并将用户期望操作时间预估为当前时间,即可接受的最大延迟时间设置为0。

图3为本发明一种流程引擎的流程智能处理系统的系统架构图。如图3所示,本发明一种流程引擎的流程智能处理系统,包括:

待处理流程侦测单元201,用于侦测并获取待处理流程。具体地说,当侦测到待处理流程时,例如某一审核流程,产生后,流程引擎的待处理流程侦测单元201将会侦测到该待处理流程。

最大延迟时间计算单元202,用于检测该待处理流程是否有历史数据,于检测到该待处理流程的历史数据时,根据该待处理流程的历史数据计算该待处理流程当前步骤可接受的最大延迟时间。

相关研究表明,用户的行为和历史数据往往具有很高的相似性。例如,对于某个审核流程,用户对各步骤进行具体的操作的时间间隔期望值非常稳定。因此,最大延迟时间计算单元202从这个规律出发,利用以下公式推测待处理流程(例如审核流程)fn在步骤sm可接受的最大延迟时间为:

其中tp(fn,sm)为待处理流程fn在步骤节点sm与下一个步骤节点之间的操作时间间隔,k表示历史数据中样本数量。

为了计算待处理流程可接受的最大延迟时间,必须获得待处理流程的历史数据,因此,本发明还包括:

历史数据加载单元203,用于在流程引擎启动后,加载系统处理过的所有流程的历史数据,所述历史数据包括但不限于各流程各步骤的各节点的操作时间点,操作的绝对时间以及系统计算过的对于某个流程的最大可延迟时间等,本发明不以此为限。

队列形成单元204,用于根据待处理流程当前步骤可接受的最大延迟时间对所有待处理流程进行排序,形成待处理流程队列,依据该待处理流程队列按顺序完成对待处理流程的处理。在本发明具体实施例中,流程引擎的队列形成单元204可根据待处理流程的可接受的最大延迟时间对所有待处理流程排序,例如按照可接受的最大延迟时间按小到大进行排序,最大可延迟时间越短的越排在前面,形成待处理流程队列,然后根据队列的先后顺序依次对待处理流程进行处理。

优选地,队列形成单元204还可获取待处理流程前一步骤用户操作的绝对时间,利用前一步骤用户操作的绝对时间(一般可认为是当前时间)与当前步骤可接受的最大延迟时间相加预估出该待处理流程当前步骤的用户期望操作时间,然后根据该待处理流程当前步骤的用户期望操作时间对现有待处理流程进行排序,形成该待处理流程队列,例如,队列形成单元204按照预估的该待处理流程当前步骤的用户期望操作时间,按顺序完成对待处理流程的处理。

优选地,最大延迟时间计算单元202若检测到该待处理流程没有历史数据,则直接将其加入所述待处理流程队列中,并将用户期望操作时间预估为当前时间,即可接受的最大延迟时间设置为0。

图4为本发明具体实施例中流程引擎的流程智能处理方法的流程图。在本发明具体实施例中,流程引擎在启动之后,首先加载系统处理过的流程的历史数据,其中包括了之前系统计算过的对于某个流程的最大可延迟时间;当有新的待处理流程产生后,流程引擎首先检查是否有该待处理流程的历史数据,在获取到待处里流程的历史数据后,则根据该待处理流程的历史数据计算该待处理流程可接受的最大延迟时间,流程引擎根据该待处理流程可接受的最大延迟时间对现有待处理流程进行排序,在所有待处理流程队列都正确排序以后,流程引擎按照队列顺序,处理对应的流程。如果没有找到对应的历史数据,流程引擎则直接将其加入所述待处理流程队列中,并将用户期望操作时间预估为当前时间,即可接受的最大延迟时间设置为0。

假如有一个审核流程有三个步骤123,对应三个用户abc来进行操作,若采用现有技术,流程引擎的处理过程如下:

1.用户a提交审核请求。

2.流程引擎处理该审核请求,发送消息给b。

3.等待

4.b看到提示消息或者审核,打开对应表单,填写并提交审核。

5.流程引擎处理该审核请求,发送消息给c。

6.等待

7.c看到提示消息或者审核,打开对应表单,填写并提交审核。

8.流程引擎处理该审核请求,并完成该流程。

若采用本发明,流程引擎的处理过程如下:

1.用户a提交步骤1的审核请求;

2.等待,流程引擎处理延迟处理该审核请求,即计算步骤1的可接受的最大延迟时间;

3.到达该步骤1的可接受最大延迟时间,流程引擎处理该审核请求,发送消息给用户b;

4.用户b看到提示消息或者审核,打开对应表单,填写并提交步骤2的审核请求;

5.等待,流程引擎处理延迟处理该审核请求,即计算步骤2的可接受的最大延迟时间;

6.到达该步骤2的可接受最大延迟时间,流程引擎处理该审核请求,发送消息给用户c。

7.用户c看到提示消息或者审核,打开对应表单,填写并提交步骤3的审核请求。

8.流程引擎处理该审核请求,并完成该流程。

可见,与现有技术相比,本发明主要在于延迟流程引擎处理这个动作,其目的是尽可能推迟流程引擎处理的时间,从而获得更大的调度灵活性。

综上所述,本发明一种流程引擎的流程智能处理方法及系统通过利用大数据分析技术,根据平台内所有处理流程的历史数据,计算待处理流程的最大可接受延迟时间,从而为流程引擎处理流程提供数据参考,流程引擎根据当前待处理流程最大可接受延迟,合理调度和处理,可在确保关键流程合理时间内得到处理的同时,保证系统吞吐量。在适当的情况下还能调节流程引擎节点数量,以达到合理运用运营成本的目的。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

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