CN114971506A - 流程引擎与业务事件处理分离的系统及方法 - Google Patents
流程引擎与业务事件处理分离的系统及方法 Download PDFInfo
- Publication number
- CN114971506A CN114971506A CN202110220096.2A CN202110220096A CN114971506A CN 114971506 A CN114971506 A CN 114971506A CN 202110220096 A CN202110220096 A CN 202110220096A CN 114971506 A CN114971506 A CN 114971506A
- Authority
- CN
- China
- Prior art keywords
- event
- processing
- business
- service module
- task
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 342
- 230000008569 process Effects 0.000 title claims abstract description 284
- 238000012545 processing Methods 0.000 title claims abstract description 248
- 230000000903 blocking effect Effects 0.000 claims abstract description 5
- 230000000875 corresponding effect Effects 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 9
- 238000003672 processing method Methods 0.000 claims description 5
- 238000000926 separation method Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 13
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种流程引擎与业务事件处理分离的系统及方法,所述系统包括:订单服务模块、业务流程管理服务模块、complete‑event事件监听器和事件处理调度器,订单服务模块用于收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例;事件处理调度器用于将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度订单服务模块对分块进行处理;complete‑event事件监听器用于定期扫描事件任务;业务流程管理服务模块用于向事件处理调度器更新处理进程,申请下一个分块进行处理。本发明实现了流程引擎与业务事件处理的分离,可根据独立事件调度器配置实现业务流程引擎中断自动处理。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种流程引擎与业务事件处理分离的系统及方法。
背景技术
通信业务系统由于交易量庞大,业务交互过程繁杂,往往需要独立部署一套复杂的流程规则引擎支撑业务处理过程。流程规则引擎负责了管理受理单的处理的流程定义、调度以及外部平台工单发起等动作。而调度接口、发送工单等动作实现均在业务流程管理(Business Process Management,BPM)流程引擎内部,当这些复杂的动作出现异常时容易造成流程处理中断。
针对业务系统和BPM流程引擎,由于自动处理任务完全嵌入BPM流程处理系统,没有严格地分布式事务控制,一旦处理任务时出现异常会造成流程处理中断,而流程中断异常重新触发的难度非常大,异常数据除开修复业务库数据外,同时需要修复BPM的处理数据,结合界面的人工环节重新处理才能继续业务流转。并且,业务数据库与BPM数据库数据不相同,修改业务数据无法使用事务控制,一旦出现异常数据回滚,会导致业务数据处理异常。当自动处理出现异常时,修复方案过于复杂,严重依赖代码解读,且无法提取出有效的公共处理步骤,也无法实现批量修复。
发明内容
本发明提供一种流程引擎与业务事件处理分离的系统及方法,用以解决现有技术中自动处理任务完全嵌入BPM流程处理系统,没有严格地分布式事务控制所带来的处理任务出现异常时流程处理也会中断、修复难度大、修改方案过于复杂的缺陷。
本发明提供一种流程引擎与业务事件处理分离的系统,包括:
订单服务模块、业务流程管理服务模块、complete-event事件监听器和事件处理调度器,其中,
所述订单服务模块用于接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例;
所述事件处理调度器用于将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务;
所述complete-event事件监听器用于定期扫描事件任务,并根据事件处理结果执行相应的动作;
所述订单服务模块还用于对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块反馈处理结果;
所述业务流程管理服务模块用于向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
根据本发明提供的一种流程引擎与业务事件处理分离的系统,所述事件处理调度器包括:
事件触发单元,用于按照流程环节对事件进行监听,在事件被触发时读取流程环节的配置,获取已配置的事件类型、事件参数、记录事件待处理表;
事件配置单元,用于将事件声明和对应的处理方法配置到相关表中;
事件调度单元,用于监测事件待处理表是否有需要处理的数据,扫描相关处理数据,并在扫描到数据后根据事件配置,调度相应实现接口进行事件处理;
事件实现单元,用于将原先在业务流程管理BPM系统中的功能在业务系统中进行实现,同时提供外部调度接口,其中,业务系统直接操作业务库数据。
本申请还提供一种流程引擎与业务事件处理分离的方法,基于如第一方面所述的流程引擎与业务事件处理分离的系统,包括:
订单服务模块接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例;
事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务;
complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作;
订单服务模块对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块反馈处理结果,业务流程管理服务模块向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
根据本发明提供的一种流程引擎与业务事件处理分离的方法,所述订单服务模块接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例,包括:
订单服务模块调用业务流程管理服务模块的业务处理接口;
业务流程管理服务模块调用deploy和active方法,将激活流程定义的状态变成ACTIVE态,并调用createProcessInstance方法启动流程实例。
根据本发明提供的一种流程引擎与业务事件处理分离的方法,所述事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务,包括:
所述事件处理调度器将流程流转的每个过程进程分块,将流程流转的节点实例数据、任务实例数据、分支实例数据和流程实例数据写入内存;
通过计数的方式调度所述订单服务模块对每个分块进行处理,以完成事件任务。
根据本发明提供的一种流程引擎与业务事件处理分离的方法,所述complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作,包括:
complete-event事件监听器定期扫描事件任务;
若任务处理成功,则将事件任务移入历史队列;或者,
若任务处理失败,则更新事件任务失败信息,根据失败信息,配置对业务流程引擎失败或者中断进行重新处理,直至达到重试极限;
其中,创建事件的业务查询和完成事件的提交均写入事件任务。
根据本发明提供的一种流程引擎与业务事件处理分离的方法,还包括:
根据业务需要,业务流程管理服务模块对节点配置处理事件;
当节点状态发生切换,事件处理调度器将多个实例数据写入数据库库表记录待办事件,由数据库库表的任务实例数据触发业务处理接口;
complete-event事件监听器定期扫描所述数据库的事件处理结果,当事件出现异常时,调用suspendProcessInstance方法;或者,当实例数据更新时,通过调用resumeProcessInstance方法来恢复流程。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述流程引擎与业务事件处理分离的方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述流程引擎与业务事件处理分离的方法的步骤。
本发明提供的流程引擎与业务事件处理分离的系统及方法,通过订单服务模块调用业务流程管理服务模块的业务处理接口,启动流程实例,事件处理调度器利用微服务的思想将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度订单服务模块对每个分块进行处理,由complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作,订单服务模块每处理完成一个分块,向业务流程管理服务模块反馈处理结果,业务流程管理服务模块向事件处理调度器更新处理进程,申请下一个分块进行处理直至所有分块处理完成,实现了流程引擎与业务事件处理的分离,可以根据独立事件调度器配置实现业务流程引擎中断自动处理。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为BPM状态迁移逻辑图;
图2为本发明实施例提供的流程引擎与业务事件处理分离的系统的结构示意图;
图3为本发明实施例提供的BPM流程处理系统的结构示意图;
图4为本发明实施例提供的所述流程引擎与业务事件处理分离的方法的流程示意图;
图5为本发明实施例提供的节点发生故障时的处理示意图;
图6为本发明实施例提供的事件任务处理逻辑的示意图;
图7为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应理解,说明书中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
业务流程管理(Business Process Management,BPM)的核心是完成流程定义的建模,然后根据建好的流程定义通过BPM提供的接口进行流程实例的创建、启动、挂起等操作,从而实现流程相关的每一个业务的办理。BPM在执行流程时,通过自动执行或者调用不同的外部API,使流程处于对应的状态,流程的状态迁移形成流程实例的生命周期。
图1为BPM状态迁移逻辑图。根据业务需要,流程引擎对节点上配置处理事件,同时一个节点可能配置触发多个事件。原先功能事件在状态节点状态切换的过程中触发,流程引擎根据事件处理调度器配置,直接调用业务接口进行处理。对于同一个事务,这个处理过程事件处理调度器管理,而且必须保证所有配置事件全部成功完成,否则会回滚调度前的原始状态。类似直接对业务进行操作可能存在事务超时,事件异常等情况,后续异常处理需要对全部接口进行检查处理,手工对业务数据进行恢复,处理完成后向事件调度器重新发起调度请求,不利于异常维护和问题定位。
为了解决上述问题,本发明实施例提供了流程引擎与业务事件处理分离的系统及方法。
图2为本发明实施例提供的流程引擎与业务事件处理分离的系统的结构示意图,如图2所示,流程引擎与业务事件处理分离的系统包括:订单服务模块210、业务流程管理服务模块220、complete-event事件监听器230和事件处理调度器240,
其中,所述订单服务模块210用于接收到用户的业务办理请求时,调用业务流程管理服务模块220的业务处理接口,启动流程实例;
具体地,所述订单服务模块orderservice用于接收到用户的业务办理请求时,调用业务流程管理服务模块BPMservice的业务处理接口,启动流程实例。
所述事件处理调度器240用于将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务;
具体地,事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块orderservice对每个分块进行处理,以完成事件任务。
其中,流程各环节的数据包括:流程流转的节点实例数据、任务实例数据、分支实例数据和流程实例数据。
所述complete-event事件监听器230用于定期扫描事件任务,并根据事件处理结果执行相应的动作;
具体地,complete-event事件监听器定期扫描事件任务,若任务处理成功,则将事件任务移入历史,若任务处理失败,则更新事件任务失败信息。
所述订单服务模块orderservice还用于对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块反馈处理结果;
具体地,所述订单服务模块210还用于对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块BPMservice反馈处理结果;
所述业务流程管理服务模块220用于向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
具体地,业务流程管理服务模块BPMservice向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
本发明提供的流程引擎与业务事件处理分离的系统,通过订单服务模块调用业务流程管理服务模块的业务处理接口,启动流程实例,事件处理调度器利用微服务的思想将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度订单服务模块对每个分块进行处理,由complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作,订单服务模块每处理完成一个分块,向业务流程管理服务模块反馈处理结果,业务流程管理服务模块向事件处理调度器更新处理进程,申请下一个分块进行处理直至所有分块处理完成,实现了流程引擎与业务事件处理的分离,可以根据独立事件调度器配置实现业务流程引擎中断自动处理。
可选地,所述事件处理调度器包括:
事件触发单元,用于按照流程环节对事件进行监听,在事件被触发时读取流程环节的配置,获取已配置的事件类型、事件参数、记录事件待处理表;
事件配置单元,用于将事件声明和对应的处理方法配置到相关表中;
事件调度单元,用于监测事件待处理表是否有需要处理的数据,扫描相关处理数据,并在扫描到数据后根据事件配置,调度相应实现接口进行事件处理;
事件实现单元,用于将原先在BPM系统中的功能在业务系统中进行实现,同时提供外部调度接口,其中,业务系统直接操作业务库数据。
图3为本发明实施例提供的BPM流程处理系统的结构示意图,实现了BPM流程引擎与事件处理调度器的解耦。需要说明的是,BPM流程引擎包括:业务流程管理服务模块BPMservice。如图3所示,本发明实施例将BPM流程处理系统的事件处理功能分解成事件触发单元、事件配置单元、事件调度单元和事件实现单元四个不同的事件处理模块。四个事件处理模块相互独立,通过几个模块相互协作实现原先的自动处理任务功能。各模块间单向通知调度处理,一旦出现异常可追溯处理,处理手段精简为数据库操作,避免调度接口处理,减少人工干预成本,也可以实现批量修复。
其中,事件触发单元,用于按照流程环节对事件进行监听,在事件被触发时读取流程环节的配置,获取已配置的事件类型、事件参数、记录事件待处理表。可以理解的是,事件触发仍由BPM系统控制,增加新的监听配置,旧事件处理的监听配置保留,用于解决存量流程。新的监听流程依旧按照流程环节的创建,完成分别监听,等触发相关事件时读取流程环节的配置,获取已配置的事件类型,事件参数,记录相关待处理表,结束当前任务。当该环节出现异常是回滚全部事件待处理数据,回退会环节变化前状态,避免生成多余事件任务信息,影响业务处理。
其中,事件配置单元,用于将事件声明和对应的处理方法配置到相关表中。可以理解的是,将事件声明和对应的处理方法配置到相关表中,方便后续事件新增和修改。
其中,事件调度单元,用于监测事件待处理表是否有需要处理的数据,扫描相关处理数据,并在扫描到数据后根据事件配置,调度相应实现接口进行事件处理;可以理解的是,仅监测事件待处理表是否有需要处理的数据,扫描相关处理数据,找到数据后根据事件配置,调度相应实现接口进行事件处理。事件调度中,不同受理单事件并发处理,处理结果不会相互干扰。同受理单的事件处理为串行处理,处理顺序依赖事件配置的顺序,序号越低优先级越高;当事件处理出现阻塞时,阻止同受理单其他事件处理,包括单下的各个产品线处理事件。同受理单下不同产品线并行处理,处理结果不相互干扰。
或者,同受理单下同产品线串行处理,处理顺序依赖时间配置的顺序,事件出现阻塞时不影响同单下其他产品线,但会阻塞主单的事件处理。事件处理出现异常后会尝试重新处理,直至达到重试极限。重试增加处理间隔,便于维护发现问题后有充分的问题处理时间,处理后减少数据修改。
其中,事件实现单元,用于将原先在BPM系统中的功能在业务系统中进行实现,同时提供外部调度接口,其中,业务系统直接操作业务库数据。可以理解的是,将原先在BPM系统中的功能,在业务系统中进行实现,同时提供外部调度接口,便于事件调度功能调度处理。业务系统实现的功能可以直接操作业务库数据,方便事务管理控制。可以将原先一个事件处理分解成多个小事件,通过组合的方式实现事件解耦,减少重复代码,也便于问题处理修复。
在上述实施例的基础上,本发明还提供一种流程引擎与业务事件处理分离的方法,图4为本发明实施例提供的所述流程引擎与业务事件处理分离的方法的流程示意图,如图4所示,所述流程引擎与业务事件处理分离的方法包括以下步骤:
步骤100、订单服务模块接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例;
具体地,订单服务模块orderservice接收到用户的业务办理请求时,调用业务流程管理服务BPMservice的业务处理接口,启动流程实例,避免了事件处理调度器直接调用业务处理接口,实现了流程引擎解耦。
步骤101、事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务;
图5为本发明实施例提供的节点发生故障时的处理示意图。
本发明实施例提供了一种流程流转模型,事件处理调度器利用微服务思想将流程流转的每个过程进行分块,并将流程各环节的数据写入内存,并调度订单服务模块orderservice对每个分块进行处理,以完成事件任务。
步骤102、complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作;
complete-event事件监听器定期扫描事件任务,若任务处理成功,则将事件任务移入历史,若任务处理失败,则更新事件任务失败信息。
步骤103、订单服务模块对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块反馈处理结果,业务流程管理服务模块向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
即订单服务模块orderservice每处理完成一个分块,向业务流程管理服务模块BPMservice反馈处理结果,BPMservice向事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
图6为本发明实施例提供的事件任务处理逻辑的示意图。本发明实施例提供的流程引擎与业务事件处理分离的方法,通过orderservice调用业务流程管理服务BPMservice的业务处理接口,启动流程实例,利用微服务的思想将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度orderservice对每个分块进行处理,由complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作,由orderservice每处理完成一个分块,向BPMservice反馈处理结果,BPMservice向事件处理调度器更新处理进程,申请下一个分块进行处理直至所有分块处理完成,实现了流程引擎与业务事件处理的分离,可以根据独立事件调度器配置实现业务流程引擎中断自动处理。
可选地,所述订单服务模块接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例,包括:
订单服务模块调用业务流程管理服务模块的业务处理接口;
业务流程管理服务模块调用deploy和active方法,将激活流程定义的状态变成ACTIVE态,并调用createProcessInstance方法启动流程实例。
可以理解的是,正常业务办理写入通过订单服务模块orderservice调用业务流程管理服务模块BPMservice的业务处理接口,再由业务流程管理服务模块BPMservice调用deploy和active方法,调用配置模板激活流程定义的状态变成ACTIVE态,接着调用createProcessInstance方法,同步开始流程实例。
可选地,所述事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务,包括:
所述事件处理调度器将流程流转的每个过程进程分块,将流程流转的节点实例数据、任务实例数据、分支实例数据和流程实例数据写入内存;
通过计数的方式调度所述订单服务模块对每个分块进行处理,以完成事件任务。
可选地,所述complete-event事件监听器定期扫描事件任务,并根据处理结果执行相应的动作,包括:
所述complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作,包括:
complete-event事件监听器定期扫描事件任务;
若任务处理成功,则将事件任务移入历史队列;或者,
若任务处理失败,则更新事件任务失败信息,根据失败信息,配置对业务流程引擎失败或者中断进行重新处理,直至达到重试极限;
其中,创建事件的业务查询和完成事件的提交均写入事件任务。
具体地,complete-event事件监听器定期扫描任务事件,任务处理成功,则将事件任务移入历史,若任务处理失败,则更新事件任务失败信息,此处可以根据失败信息,单独在事件监听器配置对业务流程引擎失败或者中断自动重新处理,直至达到重试极限,因为complete-event事件监听器与业务流程管理服务模块BPMservice没有直接调用,此处改造不需要修正BPM原有复杂的流程定义,只需要增加监听器配置即可,极大降低了自动修正跟改造的风险。
可选地,还包括:
根据业务需要,业务流程管理服务模块对节点配置处理事件;
当节点状态发生切换,事件处理调度器将多个实例数据写入数据库库表记录待办事件,由数据库库表的任务实例数据触发业务处理接口;
complete-event事件监听器定期扫描所述数据库的事件处理结果,当事件出现异常时,调用suspendProcessInstance方法;或者,当实例数据更新时,通过调用resumeProcessInstance方法来恢复流程。
本发明实施例利用微服务作为设计指导思想,先对BPM事件处理调度器事务逻辑进行抽象分解成不同的处理模块,再针对业务进行重新设计流程流转模型,将嵌入BPM流程处理系统的事件处理功能剥离,实现流程引擎解耦。BPM解耦流程优化后,当节点状态发生切换,不直接由事件处理调度器调用业务处理接口,而是通过多个实例数据写入数据库库表记录待办事件,由库表的任务实例数据触发业务处理接口,BPM流程引擎定期扫描数据库的事件处理结果,当实例数据处理成功,正常执行完成,流程的状态变为COMPLETING->COMPLETED;当事件出现异常,调用suspendProcessInstance方法,流程状态会变成SUSPENDING->SUSPENDED;当实例数据更新,调用resumeProcessInstance方法来恢复流程,恢复后流程的状态变为ACTIVE。
可选地,BPM流程引擎包括:业务流程管理服务模块BPMservice和complete-event事件监听器。
本发明提供的流程引擎与业务事件处理分离的方法,通过订单服务模块调用业务流程管理服务模块的业务处理接口,启动流程实例,事件处理调度器利用微服务的思想将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度订单服务模块对每个分块进行处理,由complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作,订单服务模块每处理完成一个分块,向业务流程管理服务模块反馈处理结果,业务流程管理服务模块向事件处理调度器更新处理进程,申请下一个分块进行处理直至所有分块处理完成,实现了流程引擎与业务事件处理的分离,可以根据独立事件调度器配置实现业务流程引擎中断自动处理。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行流程引擎与业务事件处理分离的方法,该方法包括:订单服务模块接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例;事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务;complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作;订单服务模块对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块反馈处理结果,业务流程管理服务模块向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的流程引擎与业务事件处理分离的方法,该方法包括:订单服务模块接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例;事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务;complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作;订单服务模块对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块反馈处理结果,业务流程管理服务模块向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的流程引擎与业务事件处理分离的方法,该方法包括:订单服务模块接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例;事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务;complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作;订单服务模块对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块反馈处理结果,业务流程管理服务模块向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.流程引擎与业务事件处理分离的系统,其特征在于,包括:订单服务模块、业务流程管理服务模块、complete-event事件监听器和事件处理调度器,其中,
所述订单服务模块用于接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例;
所述事件处理调度器用于将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务;
所述complete-event事件监听器用于定期扫描事件任务,并根据事件处理结果执行相应的动作;
所述订单服务模块还用于对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块反馈处理结果;
所述业务流程管理服务模块用于向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
2.根据权利要求1所述的流程引擎与业务事件处理分离的系统,其特征在于,所述事件处理调度器包括:
事件触发单元,用于按照流程环节对事件进行监听,在事件被触发时读取流程环节的配置,获取已配置的事件类型、事件参数、记录事件待处理表;
事件配置单元,用于将事件声明和对应的处理方法配置到相关表中;
事件调度单元,用于监测事件待处理表是否有需要处理的数据,扫描相关处理数据,并在扫描到数据后根据事件配置,调度相应实现接口进行事件处理;
事件实现单元,用于将原先在业务流程管理BPM系统中的功能在业务系统中进行实现,同时提供外部调度接口,其中,业务系统直接操作业务库数据。
3.一种流程引擎与业务事件处理分离的方法,基于权利要求1或2所述的流程引擎与业务事件处理分离的系统,其特征在于,包括:
订单服务模块接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例;
事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务;
complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作;
订单服务模块对每个分块进行处理,并且每处理完成一个分块,向业务流程管理服务模块反馈处理结果,业务流程管理服务模块向所述事件处理调度器更新处理进程,申请下一个分块进行处理,直至所有分块处理完成。
4.根据权利要求3所述的流程引擎与业务事件处理分离的方法,其特征在于,所述订单服务模块接收到用户的业务办理请求时,调用业务流程管理服务模块的业务处理接口,启动流程实例,包括:
订单服务模块调用业务流程管理服务模块的业务处理接口;
业务流程管理服务模块调用deploy和active方法,将激活流程定义的状态变成ACTIVE态,并调用createProcessInstance方法启动流程实例。
5.根据权利要求3所述的流程引擎与业务事件处理分离的方法,其特征在于,所述事件处理调度器将流程流转的每个过程进行分块,将流程各环节的数据写入内存,并调度所述订单服务模块对每个分块进行处理,以完成事件任务,包括:
所述事件处理调度器将流程流转的每个过程进程分块,将流程流转的节点实例数据、任务实例数据、分支实例数据和流程实例数据写入内存;
通过计数的方式调度所述订单服务模块对每个分块进行处理,以完成事件任务。
6.根据权利要求3所述的流程引擎与业务事件处理分离的方法,其特征在于,所述complete-event事件监听器定期扫描事件任务,并根据事件处理结果执行相应的动作,包括:
complete-event事件监听器定期扫描事件任务;
若任务处理成功,则将事件任务移入历史队列;或者,
若任务处理失败,则更新事件任务失败信息,根据失败信息,配置对业务流程引擎失败或者中断进行重新处理,直至达到重试极限;
其中,创建事件的业务查询和完成事件的提交均写入事件任务。
7.根据权利要求3所述的流程引擎与业务事件处理分离的方法,其特征在于,还包括:
根据业务需要,业务流程管理服务模块对节点配置处理事件;
当节点状态发生切换,事件处理调度器将多个实例数据写入数据库库表记录待办事件,由数据库库表的任务实例数据触发业务处理接口;
complete-event事件监听器定期扫描所述数据库的事件处理结果,当事件出现异常时,调用suspendProcessInstance方法;或者,当实例数据更新时,通过调用resumeProcessInstance方法来恢复流程。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求3至7任一项所述流程引擎与业务事件处理分离的方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求3至7任一项所述流程引擎与业务事件处理分离的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110220096.2A CN114971506A (zh) | 2021-02-26 | 2021-02-26 | 流程引擎与业务事件处理分离的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110220096.2A CN114971506A (zh) | 2021-02-26 | 2021-02-26 | 流程引擎与业务事件处理分离的系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114971506A true CN114971506A (zh) | 2022-08-30 |
Family
ID=82972839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110220096.2A Pending CN114971506A (zh) | 2021-02-26 | 2021-02-26 | 流程引擎与业务事件处理分离的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114971506A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115292022A (zh) * | 2022-09-29 | 2022-11-04 | 泰豪软件股份有限公司 | 工作流引擎系统、实现方法、存储介质及计算机设备 |
CN116048490A (zh) * | 2023-01-28 | 2023-05-02 | 广州钛动科技股份有限公司 | 业务事件处理方法、装置、计算机设备和存储介质 |
CN116185350A (zh) * | 2022-11-28 | 2023-05-30 | 浙江华峰智链工业互联网有限公司 | 基于事件和配置的业务流程设计方法及系统 |
CN116860362A (zh) * | 2023-07-05 | 2023-10-10 | 广州市玄武无线科技股份有限公司 | 一种应用于流程编排引擎的插件事物管理方法及装置 |
CN116977048A (zh) * | 2023-09-25 | 2023-10-31 | 天津金城银行股份有限公司 | 状态机系统、交易状态管理方法及银行交易系统 |
CN118093011A (zh) * | 2024-04-28 | 2024-05-28 | 杭州数云信息技术有限公司 | 事件处理方法及装置、可读存储介质、程序产品、终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105809299A (zh) * | 2014-12-27 | 2016-07-27 | 华为技术有限公司 | 业务流程管理的通知服务处理的方法及业务流程管理引擎 |
CN107682206A (zh) * | 2017-11-02 | 2018-02-09 | 北京中电普华信息技术有限公司 | 基于微服务的业务流程管理系统的部署方法及系统 |
CN109978290A (zh) * | 2017-12-27 | 2019-07-05 | 中国移动通信集团广东有限公司 | 一种业务流程回退处理方法、流程引擎和业务系统 |
CN110310034A (zh) * | 2019-06-28 | 2019-10-08 | 京东数字科技控股有限公司 | 一种应用于SaaS的服务编排、业务流程处理方法和装置 |
CN111092933A (zh) * | 2019-11-20 | 2020-05-01 | 泰康保险集团股份有限公司 | 用于微服务架构的业务流程管理方法、系统、介质及电子设备 |
-
2021
- 2021-02-26 CN CN202110220096.2A patent/CN114971506A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105809299A (zh) * | 2014-12-27 | 2016-07-27 | 华为技术有限公司 | 业务流程管理的通知服务处理的方法及业务流程管理引擎 |
CN107682206A (zh) * | 2017-11-02 | 2018-02-09 | 北京中电普华信息技术有限公司 | 基于微服务的业务流程管理系统的部署方法及系统 |
CN109978290A (zh) * | 2017-12-27 | 2019-07-05 | 中国移动通信集团广东有限公司 | 一种业务流程回退处理方法、流程引擎和业务系统 |
CN110310034A (zh) * | 2019-06-28 | 2019-10-08 | 京东数字科技控股有限公司 | 一种应用于SaaS的服务编排、业务流程处理方法和装置 |
CN111092933A (zh) * | 2019-11-20 | 2020-05-01 | 泰康保险集团股份有限公司 | 用于微服务架构的业务流程管理方法、系统、介质及电子设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115292022A (zh) * | 2022-09-29 | 2022-11-04 | 泰豪软件股份有限公司 | 工作流引擎系统、实现方法、存储介质及计算机设备 |
CN116185350A (zh) * | 2022-11-28 | 2023-05-30 | 浙江华峰智链工业互联网有限公司 | 基于事件和配置的业务流程设计方法及系统 |
CN116048490A (zh) * | 2023-01-28 | 2023-05-02 | 广州钛动科技股份有限公司 | 业务事件处理方法、装置、计算机设备和存储介质 |
CN116860362A (zh) * | 2023-07-05 | 2023-10-10 | 广州市玄武无线科技股份有限公司 | 一种应用于流程编排引擎的插件事物管理方法及装置 |
CN116860362B (zh) * | 2023-07-05 | 2024-03-19 | 广州市玄武无线科技股份有限公司 | 一种应用于流程编排引擎的插件事务管理方法及装置 |
CN116977048A (zh) * | 2023-09-25 | 2023-10-31 | 天津金城银行股份有限公司 | 状态机系统、交易状态管理方法及银行交易系统 |
CN118093011A (zh) * | 2024-04-28 | 2024-05-28 | 杭州数云信息技术有限公司 | 事件处理方法及装置、可读存储介质、程序产品、终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114971506A (zh) | 流程引擎与业务事件处理分离的系统及方法 | |
CN108089915B (zh) | 基于消息队列的业务控件化处理的方法及系统 | |
CN110225078B (zh) | 一种应用服务更新方法、系统及终端设备 | |
JP6943336B2 (ja) | 連携処理再開装置、および、連携処理再開方法 | |
CN109978290A (zh) | 一种业务流程回退处理方法、流程引擎和业务系统 | |
CN110109772B (zh) | 一种cpu的重启方法、通信设备及可读存储介质 | |
CN111324617A (zh) | 一种数据库在线热备份的方法和设备 | |
CN111666141A (zh) | 任务调度方法、装置、设备及计算机存储介质 | |
JP3901060B2 (ja) | アプリケーションの更新処理方法、更新処理システム及び更新処理プログラム | |
CN114721873A (zh) | 一种异步执行数据备份与恢复系统 | |
CN114564281A (zh) | 容器调度方法、装置、设备及存储介质 | |
CN113934711B (zh) | 一种自动化部署gbase8s集群的方法 | |
CN113342499B (zh) | 分布式任务调用方法、装置、设备、存储介质、程序产品 | |
CN114780177B (zh) | 事务执行方法及装置、存储介质及电子装置 | |
CN114296983B (zh) | 基于触发器运转记录的流程异常处理方法及存储介质 | |
CN115129452A (zh) | 一种协同控制系统、方法、设备、存储介质及产品 | |
CN110597609A (zh) | 一种集群迁移与自动恢复方法及系统 | |
CN112632559A (zh) | 漏洞自动验证方法、装置、设备及存储介质 | |
CN115981668A (zh) | 持续交付流水线的部署方法、装置、设备、及程序产品 | |
JP2500598B2 (ja) | ネットワ―ク管理システムの障害自動復旧方法 | |
CN110119400A (zh) | 适用于逻辑运算的唯一标识生成方法及装置 | |
CN116954864A (zh) | 异步任务调度方法、装置、设备及存储介质 | |
CN113225576B (zh) | 基于直播平台边缘计算场景的服务迁移系统和方法 | |
CN116028544B (zh) | 基于openstack的定时任务动态添加方法 | |
CN117033073A (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 |