CN107122952A - 基于规则的流程调度方法及*** - Google Patents
基于规则的流程调度方法及*** Download PDFInfo
- Publication number
- CN107122952A CN107122952A CN201710206570.XA CN201710206570A CN107122952A CN 107122952 A CN107122952 A CN 107122952A CN 201710206570 A CN201710206570 A CN 201710206570A CN 107122952 A CN107122952 A CN 107122952A
- Authority
- CN
- China
- Prior art keywords
- sub
- rule
- flow
- processes
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于规则的流程调度方法及***,该方法包括:接收业务流程创建请求并根据业务流程创建请求从数据库中的业务流程定义表中查找对应的规则参数;根据规则参数进行规则计算,获得计算结果;根据计算结果从数据库选取符合要求的至少一个子流程定义,形成子流程定义集合;根据子流程定义集合启动异步线程,动态创建线程,并行创建多个子流程;将创建成功的多个子流程进行组合形成业务流程。
Description
技术领域
本发明涉及业务流程管理领域,且特别涉及一种基于规则的流程调度方法及***。
背景技术
业务流程管理是企业必不可少的工作环节,大多数企业采用业务流程管理软件对其业务进行流程化管理。在现有的业务流程管理中,针对具体的业务应用场景,通过工作流***提供的流程设计器绘制完整的流程图,通过在流程图的迁移线上设置迁移条件的方式表述流程流转。由上游的应用***调用工作流***提供的API进行流程驱动,通过改变工作流的流程变量的值,来影响迁移条件的命中情况,从而驱动流程走向不同的流程分支。而为了实现在不同应用场景下对流程变量做不同赋值,目前的做法是:建立关系型数据库表结构作为参数表,通过查询参数表方式获得不同应用场景下的流程变量值。并通过编写复杂程序逻辑的方式,实现对流程变量的赋值。
上述方法需针对具体的业务应用场景绘制完整的流程图,由于业务应用场景多,且无法完整复用,导致需要绘制的流程图过多,大大加重了维护成本。且当业务应用场景发生变化时,可能会导致流程图重新绘制、原有的关系型参数表的结构需要调整、程序逻辑需要大量修改,变动不够灵活。进一步的,在进行变动时,涉及改造的***、模块和功能过多,因此带来的开发和测试成本较高。
发明内容
本发明为了克服现有流程调度方法很难根据场景变化而进行相应的变动的问题,提供一种基于规则的流程调度方法及***。
为了实现上述目的,本发明提供一种基于规则的流程调度方法,该方法包括:
接收业务流程创建请求并根据业务流程创建请求从数据库中的业务流程定义表中查找对应的规则参数;
根据规则参数进行规则计算,获得计算结果;
根据计算结果从数据库选取符合要求的至少一个子流程定义,形成子流程定义集合;
根据子流程定义集合启动异步线程,动态创建线程,并行创建多个子流程;
将创建成功的多个子流程进行组合形成业务流程。
于本发明一实施例中,规则参数包括规则包名称和规则要素。
于本发明一实施例中,计算结果包括规则编号、规则组编号、规则结论。
于本发明一实施例中,根据计算结果从数据库选取符合要求的至少一个子流程定义,形成子流程定义集合,包括:
从计算结果中获取规则组编号和规则结论;
根据规则组编号从数据库中的子流程定义和规则组编号关系表中获得命中的至少一个子流程定义;
将至少一个子流程定义组合在一起,形成子流程定义集合。
于本发明一实施例中,在根据子流程定义集合启动异步线程,并行创建多个子流程这一步骤中,每一子流程的创建包括:
根据子流程定义创建子流程实例;
初始化子流程实例并重新启动;
当子流程实例启动成功则判断该子流程创建成功;否则,判断该子流程创建失败。
于本发明一实施例中,基于规则的流程调度方法还包括:
在并行创建多个子流程后判断是否所有的子流程均创建成功;
若存在子流程没有创建成功,则从子流程定义集合中装载未成功的子流程定义,重新启动异步线程,动态创建线程,并行创建多个子流程。
于本发明一实施例中,基于规则的流程调度方法还包括,在形成子流程定义集合后存储业务流程实例信息和子流程实例信息。
于本发明一实施例中,存储业务流程实例信息和子流程实例信息这一步骤与并行创建多个子流程同步进行;或者,在形成子流程定义集合后存储业务流程实例信息和子流程实例信息,之后再并行创建多个子流程。
本发明另一方面还提供一种基于规则的流程调度***,该***包括调度模块、规则引擎、获取模块、子流程创建模块以及业务流程创建模块。调度模块接收业务流程创建请求并根据业务流程创建请求从数据库中的业务流程定义表中查找对应的规则参数。规则引擎根据规则参数进行规则计算,获得计算结果。获取模块根据计算结果从数据库选取符合要求的至少一个子流程定义,形成子流程定义集合。子流程创建模块根据子流程定义集合启动异步线程,动态创建线程,并行创建多个子流程。业务流程创建模块将创建成功的多个子流程进行组合形成业务流程。
于本发明一实施例中,基于规则的流程调度***还包括数据库,数据库在形成子流程定义集合后存储业务流程实例信息和子流程实例信息。
综上所述,本发明提供的基于规则的流程调度方法及***根据接收的业务流程创建请求在数据库内查找相对应的多个子流程定义并根据子流程定义来创建多个子流程,最后将多个子流程组合在一起形成业务流程。不同的业务流程可选取多个不同的子流程的组合,多段复用的子流程使得本发明提供的基于规则的流程调度方法实现应用场景和流程模型的解耦,***无需再单独针对每个应用场景绘制相应的且完整的流程图,而仅仅只需要获取数据库内相应的几个子流程定义形成子流程定义集合并进行相应的子流程的创建,最后进行组合即可。进一步的,子流程的复用也大大提高了数据的利用率,减小***内数据的存储量,提高业务流程调度的效率。
为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1所示为本发明一实施例提供的基于规则的流程调度方法的流程图。
图2所示为本发明一实施例提供的基于规则的流程调度***的结构示意图。
具体实施方式
如图1所示,本实施例提供的基于规则的流程调度方法包括:接收业务流程创建请求并根据业务流程创建请求从数据库中的业务流程定义表中查找对应的规则参数(步骤S1)。根据规则参数进行规则计算,获得计算结果(步骤S2)。根据计算结果从数据库选取符合要求的至少一个子流程定义,形成子流程定义集合(步骤S3)。根据子流程定义集合启动异步线程,动态创建线程,并行创建多个子流程(步骤S4)。将创建成功的多个子流程进行组合形成业务流程(步骤S5)。
本实施例提供的基于规则的流程调度方法始于步骤S1,当调度模块接收到用户发起的一应用场景的业务流程创建请求后,调度模块查找数据库内的业务流程定义表,判断业务流程定义表内是否包含有待创建的业务流程。若包含有,则获取该业务流程所对应的规则参数。所述规则参数包括规则包的名称和规则要素等参数。若业务流程定义表内没有包含待创建的业务流程,则返回线程并在业务流程定义表内增加该业务流程并添加该业务流程对应的规则参数。
当获取到待创建的业务流程的规则参数后,规则引擎根据规则参数内的规则包名称和规则要素进行规则计算,得到计算结果。于本实施例中,规则引擎为Drools,在Drools中使用的规则推理机的推力算法为RETE算法。然而,本发明对此不作任何限定。于其它实施例中,规则引擎可为Ilog。于本实施例中,规则引擎计算的结果包括规则编号、规则组编号以及规则结论。
在步骤S3中,根据计算结果中的规则组编号和规则结论,查询数据库中子流程定义和规则组编号关系表。判断是否有子流程定义被命中;若是则将至少一个命中的子流程定义进行组合,形成子流程定义集合。若没有命中,则返回线程并将新的子流程定义和规则组编号添加进子流程定义和规则组编号关系表,更新数据库中的子流程定义和规则组编号关系表。
当形成子流程定义集合后执行步骤S4,启动异步线程,动态创建线程,并行创建多个子流程。即每一线程根据一个子流程定义创建一个子流程。每一子流程的创建包括:
首先,根据子流程定义创建子流程实例。
接着,初始化子流程实例并重新启动。
最后,判断子流程实例是否创建成功;判断的标准为:当子流程实例启动成功则判断该子流程创建成功;否则,判断该子流程创建失败。
于本实施例中,基于规则的调度方法还包括步骤S6:在并行创建多个子流程后判断是否所有的子流程均创建成功。若所有线程上的子流程均创建成功后,则执行步骤S5,将创建成功的多个子流程进行组合形成业务流程。若在子流程的创建过程中存在有子流程没有创建成功,则执行步骤S7,从子流程定义集合中装载未成功的子流程定义,重新启动异步线程,动态创建线程,并行创建多个子流程,即回到步骤S4。然而,本发明对此不作任何限定。于其它实施例中,当存在有子流程没有创建成功时则返回线程。
本实施例提供的基于规则的调度方法的工作原理为:将复杂的且会随着应用场景变化的业务流程进行分解和提取后调用数据库内的多个子流程定义,根据多个子流程定义创建子流程,最后组合形成业务流程。本实施例提供的调度方法中无需针对一个业务流程绘制单独的且完整的流程图,仅仅通过调用***内的多个可复用的子流程即可构建一个业务流程,且随着应用场景的变化,只需调整获取的子流程或子流程的组合顺序,实现了业务场景和流程模型的解耦,使用非常灵活。进一步的,该调度方法实现了业务流程的抽象化、模块化和规则化,大幅度降低了开发成本和维护成本。
在创建子流程时采用异步线程且动态创建线程,该设置大大提高了子流程创建的效率,动态创建线程可根据不同的子流程数量来分配线程的数量,合理安排***资源,在满足效率的同时减小资源消耗。
于本实施例中,基于规则的流程调度方法还包括步骤S8:在形成子流程定义集合后存储业务流程实例信息和子流程实例信息。在子流程创建过程中,若存在子流程创建失败需要重新创建时,***可通过调取存储的业务流程实例信息和子流程实例信息来获得相应的信息。于本实施例中,步骤S8设置在步骤S3和步骤S4之间。然而,本发明对此不作任何限定。于其它实施例中,步骤S8可与步骤S4并行,即在步骤S3后有两个分支步骤,其中一个为步骤S4,另一个为步骤S8。
与上述基于规则的流程调度方法相对应的,本实施例还提供一种基于规则的流程调度***。该***包括调度模块100、规则引擎200、获取模块300、子流程创建模块400、业务流程创建模块500以及数据库600。调度模块100接收业务流程创建请求并根据业务流程创建请求从数据库600中的业务流程定义表中查找对应的规则参数。规则引擎200根据规则参数进行规则计算,获得计算结果。获取模块300根据计算结果从数据库选取符合要求的至少一个子流程定义,形成子流程定义集合。子流程创建模块400根据子流程定义集合启动异步线程,动态创建线程,并行创建多个子流程。业务流程创建模块500将创建成功的多个子流程进行组合形成业务流程。数据库600在形成子流程定义集合后存储业务流程实例信息和子流程实例信息。
该基于规则的流程调度***采用上述基于规则的流程调度方法进行工作,具体的工作原理在此不作冗述。
在实际的使用中,一个业务***可以包含一个或多个基于规则的流程调度***,多个基于规则的流程调度***可共用一个数据库内的数据来进行相应的业务流程的建立,实现数据的共享。
综上所述,本发明提供的基于规则的流程调度方法及***根据接收的业务流程创建请求在数据库内查找相对应的多个子流程定义并根据子流程定义来创建多个子流程,最后将多个子流程组合在一起形成业务流程。不同的业务流程可选取多个不同的子流程的组合,多段复用的子流程使得本发明提供的基于规则的流程调度方法实现应用场景和流程模型的解耦,***无需再单独针对每个应用场景绘制相应的且完整的流程图,而仅仅只需要获取数据库内相应的几个子流程定义形成子流程定义集合并进行相应的子流程的创建,最后进行组合即可。进一步的,子流程的复用也大大提高了数据的利用率,减小***内数据的存储量,提高业务流程调度的效率。
虽然本发明已由较佳实施例揭露如上,然而并非用以限定本发明,任何熟知此技艺者,在不脱离本发明的精神和范围内,可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所要求保护的范围为准。
Claims (10)
1.一种基于规则的流程调度方法,其特征在于,包括:
接收业务流程创建请求并根据业务流程创建请求从数据库中的业务流程定义表中查找对应的规则参数;
根据规则参数进行规则计算,获得计算结果;
根据计算结果从数据库选取符合要求的至少一个子流程定义,形成子流程定义集合;
根据子流程定义集合启动异步线程,动态创建线程,并行创建多个子流程;
将创建成功的多个子流程进行组合形成业务流程。
2.根据权利要求1所述的基于规则的流程调度方法,其特征在于,所述规则参数包括规则包名称和规则要素。
3.根据权利要求1所述的基于规则的流程调度方法,其特征在于,所述计算结果包括规则编号、规则组编号、规则结论。
4.根据权利要求3所述的基于规则的流程调度方法,其特征在于,所述根据计算结果从数据库选取符合要求的至少一个子流程定义,形成子流程定义集合,包括:
从计算结果中获取规则组编号和规则结论;
根据规则组编号从数据库中的子流程定义和规则组编号关系表中获得命中的至少一个子流程定义;
将至少一个子流程定义组合在一起,形成子流程定义集合。
5.根据权利要求1所述的基于规则的流程调度方法,其特征在于,在所述根据子流程定义集合启动异步线程,并行创建多个子流程这一步骤中,每一子流程的创建包括:
根据子流程定义创建子流程实例;
初始化子流程实例并重新启动;
当子流程实例启动成功则判断该子流程创建成功;否则,判断该子流程创建失败。
6.根据权利要求1所述的基于规则的流程调度方法,其特征在于,所述基于规则的流程调度方法还包括:
在并行创建多个子流程后判断是否所有的子流程均创建成功;
若存在子流程没有创建成功,则从子流程定义集合中装载未成功的子流程定义,重新启动异步线程,动态创建线程,并行创建多个子流程。
7.根据权利要求1所述的基于规则的流程调度方法,其特征在于,所述基于规则的流程调度方法还包括,在形成子流程定义集合后存储业务流程实例信息和子流程实例信息。
8.根据权利要求7所述的基于规则的流程调度方法,其特征在于,存储业务流程实例信息和子流程实例信息这一步骤与并行创建多个子流程同步进行;或者,在形成子流程定义集合后存储业务流程实例信息和子流程实例信息,之后再并行创建多个子流程。
9.一种基于规则的流程调度***,其特征在于,包括:
调度模块,接收业务流程创建请求并根据业务流程创建请求从数据库中的业务流程定义表中查找对应的规则参数;
规则引擎,根据规则参数进行规则计算,获得计算结果;
获取模块,根据计算结果从数据库选取符合要求的至少一个子流程定义,形成子流程定义集合;
子流程创建模块,根据子流程定义集合启动异步线程,动态创建线程,并行创建多个子流程;
业务流程创建模块,将创建成功的多个子流程进行组合形成业务流程。
10.根据权利要求9所述的基于规则的流程调度***,其特征在于,所述基于规则的流程调度***还包括数据库,所述数据库在形成子流程定义集合后存储业务流程实例信息和子流程实例信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206570.XA CN107122952B (zh) | 2017-03-31 | 2017-03-31 | 基于规则的流程调度方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206570.XA CN107122952B (zh) | 2017-03-31 | 2017-03-31 | 基于规则的流程调度方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107122952A true CN107122952A (zh) | 2017-09-01 |
CN107122952B CN107122952B (zh) | 2020-06-16 |
Family
ID=59718164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710206570.XA Active CN107122952B (zh) | 2017-03-31 | 2017-03-31 | 基于规则的流程调度方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107122952B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359949A (zh) * | 2018-10-30 | 2019-02-19 | 中国建设银行股份有限公司 | 流程展示方法和装置 |
CN109542556A (zh) * | 2018-10-30 | 2019-03-29 | 珠海伟诚科技股份有限公司 | 一种基于Activiti的流程与表单交互方法及*** |
CN111241186A (zh) * | 2020-01-17 | 2020-06-05 | 中信银行股份有限公司 | 基于规则的可视化并行数据准备方法、***、设备、介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071480A (zh) * | 2007-06-15 | 2007-11-14 | 南京联创科技股份有限公司 | 复杂业务***中基于工作流的通用构件化流程调度方法 |
CN101082970A (zh) * | 2007-07-05 | 2007-12-05 | 山东浪潮齐鲁软件产业股份有限公司 | 政务审批工作流引擎***的实现方法 |
US20150198946A1 (en) * | 2009-10-02 | 2015-07-16 | Apriori Technologies, Inc. | Template Framework For Automated Process Routing |
CN106354641A (zh) * | 2016-08-30 | 2017-01-25 | 东软集团股份有限公司 | 流程引擎的测试方法及装置 |
-
2017
- 2017-03-31 CN CN201710206570.XA patent/CN107122952B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071480A (zh) * | 2007-06-15 | 2007-11-14 | 南京联创科技股份有限公司 | 复杂业务***中基于工作流的通用构件化流程调度方法 |
CN101082970A (zh) * | 2007-07-05 | 2007-12-05 | 山东浪潮齐鲁软件产业股份有限公司 | 政务审批工作流引擎***的实现方法 |
US20150198946A1 (en) * | 2009-10-02 | 2015-07-16 | Apriori Technologies, Inc. | Template Framework For Automated Process Routing |
CN106354641A (zh) * | 2016-08-30 | 2017-01-25 | 东软集团股份有限公司 | 流程引擎的测试方法及装置 |
Non-Patent Citations (1)
Title |
---|
余昀锦: "保险行业中Drools规则引擎的研究与应用", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359949A (zh) * | 2018-10-30 | 2019-02-19 | 中国建设银行股份有限公司 | 流程展示方法和装置 |
CN109542556A (zh) * | 2018-10-30 | 2019-03-29 | 珠海伟诚科技股份有限公司 | 一种基于Activiti的流程与表单交互方法及*** |
CN109542556B (zh) * | 2018-10-30 | 2022-04-15 | 珠海伟诚科技股份有限公司 | 一种基于Activiti的流程与表单交互方法及*** |
CN109359949B (zh) * | 2018-10-30 | 2022-05-27 | 中国建设银行股份有限公司 | 流程展示方法和装置 |
CN111241186A (zh) * | 2020-01-17 | 2020-06-05 | 中信银行股份有限公司 | 基于规则的可视化并行数据准备方法、***、设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107122952B (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2870117B2 (ja) | 最適計画作成方法 | |
Gravel et al. | A multicriterion view of optimal resource allocation in job-shop production | |
CN107015856A (zh) | 云环境下科学工作流中的任务调度方案生成方法及装置 | |
CN103617472B (zh) | 多项目多任务管理中的资源平衡自适应调度方法 | |
CN108846623A (zh) | 基于多目标蚁群算法的整车物流调度方法及装置、存储介质、终端 | |
CN109214756A (zh) | 基于蚁群算法和分层优化的整车物流调度方法及装置、存储介质、终端 | |
CN107122952A (zh) | 基于规则的流程调度方法及*** | |
CN109345091A (zh) | 基于蚁群算法的整车物流调度方法及装置、存储介质、终端 | |
Yang et al. | Scatter search for distributed assembly flowshop scheduling to minimize total tardiness | |
CN110209118A (zh) | 具有使用多种类多数量资源和柔性路径特征的基于Petri网的稳健性控制方法 | |
Arzi et al. | Neural network-based adaptive production control system for a flexible manufacturing cell under a random environment | |
CN106127365A (zh) | 定量遥感产品在线交互式自主生产方法 | |
Leyva et al. | Lean Manufacturing application in textile industry | |
Rolstadas | Computer-aided production management | |
CN108446814A (zh) | 同顺序流水线车间调度问题的树搜索方法及装置 | |
Chang et al. | A model for selecting product ideas in fuzzy front end | |
Li et al. | Using data-fuzzification technology in small data set learning to improve FMS scheduling accuracy | |
CN107808226A (zh) | 基于最早开始时间的二车间柔性综合调度方法 | |
CN113377503A (zh) | 一种协作式ai的任务调度方法、装置与*** | |
CN109410044A (zh) | 区块链***及其中利用非生产者节点闲置计算资源的方法 | |
CN106529801B (zh) | 服务组合候选集构建方法及*** | |
Zhang et al. | A deep reinforcement learning algorithm for order acceptance decision of individualized product assembling | |
CN103970854B (zh) | Sap ecc端与sap bw端之间增量凭证信息同步方法 | |
Vembu et al. | Heuristics for operator allocation and sequencing in product-line-cells with manually operated machines | |
CN104700170B (zh) | 一种生成成本计算树的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Xinyada technology building, 3888 Jiangnan Avenue, Binjiang District, Hangzhou City, Zhejiang Province 310000 Patentee after: Sinyada Technology Co.,Ltd. Address before: Xinyada technology building, 3888 Jiangnan Avenue, Binjiang District, Hangzhou City, Zhejiang Province 310000 Patentee before: SUNYARD SYSTEM ENGINEERING Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |