CN104992271B - 一种不同流程实例协同运行的***及其实现方法 - Google Patents
一种不同流程实例协同运行的***及其实现方法 Download PDFInfo
- Publication number
- CN104992271B CN104992271B CN201510348313.0A CN201510348313A CN104992271B CN 104992271 B CN104992271 B CN 104992271B CN 201510348313 A CN201510348313 A CN 201510348313A CN 104992271 B CN104992271 B CN 104992271B
- Authority
- CN
- China
- Prior art keywords
- flow
- instance
- cooperative
- workflow engine
- instances
- 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.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种不同流程实例协同运行的***及其实现方法,其中发起协同指令校验单元用于调用协同执行接口,校验协同入参;流程实例池创建单元用于在工作流引擎在进行流程执行时,将流程实例的数据加载到内存中,初始化流程实例协同处理器,创建流程实例池,并保存不同流程实例之间的协同关系;流程实例协同处理单元用于根据协同入参触发协同运行机制的调度计算,通过工作流引擎接口调用工作流引擎中发起业务协同对象和被发起对象的流程实例,对该不同的流程实例进行管控,并根据协同运行指令对流程实例执行协同运行。本发明使工作流引擎能够支持不同的流程实例之间的协同运行,扩展了工作流引擎接口,极大提高了流程实例流转的灵活性。
Description
技术领域
本发明涉及工作流***领域,特别是涉及一种不同流程实例协同运行的***及其实现方法。
背景技术
工作流引擎完成工作流模型的解析、执行和管理,并按照预先定义的业务逻辑推进流程实例的执行。流程实例的运行过程反应了业务运行的生命周期,通过对流程实例的管控来控制业务办理进度。
每一笔业务的办理,都要通过工作流引擎按照业务流程模型来产生流程实例,流程实例的执行环节代表业务现行的办理环节,用户可以通过流程实例的跳转记录来跟踪业务办理过程。一般的工作流引擎及***都提供流程运行图的查看和运行日志的查看,多个流程实例要协作运行都需要在业务流程模型中定义子流程来实现,如果没有在流程模型中内嵌业务之间的关联,则无法展示不同业务的关联与协作,也无法真正地实现基于工作流引擎的业务全生命周期的管控。而在不同领域的复杂业务或者业务模式中,用户迫切希望工作流技术能解决独立流程模型之间关联运行的问题,这样才能增加业务的灵活性,为用户提供更为强大的流程流转支持多流程实例协同运行成了我们面向工作流亟需解决的问题。
为了实现业务之间的关联,现有技术通常是通过扩展流程实例与业务之间关联表来解决,通过特定的接口实现来产生关联数据,但是这种方法是独立在工作流引擎体系之外的,会极大地增加多流程实例下工作流数据维护与获取的复杂程度。
发明内容
本发明的目的在于克服现有技术的不足,提供了一种在工作流引擎中不同流程实例可协同运行的***及实现方法,用以解决一般工作流引擎无法支持的不同流程实例之间的协同运行或者游离于流程引擎体系之外的问题。
本发明的目的是通过以下技术方案来实现的:一种不同流程实例协同运行的***,所述***包括流程实例协同处理器和工作流引擎,流程实例协同处理器通过工作流引擎接口调用工作流引擎中的流程实例,流程实例协同处理器对不同的流程实例进行协同运行处理,并通过工作流引擎扩展接口将流程实例协同处理器的协同运行接口扩展到工作流引擎中。
所述流程实例协同处理器包括以下多个部件。
发起协同指令校验单元,用于校验发起业务协同对象、被发起对象和协同运行方式,调用协同执行接口,校验协同入参。
流程实例池创建单元,用于在工作流引擎在进行流程执行时,将流程实例的数据加载到内存中,初始化流程实例协同处理器,创建流程实例池,并保存不同流程实例之间的协同关系。
流程实例协同处理单元,根据协同入参触发协同运行机制的调度计算,通过工作流引擎接口调用工作流引擎中发起业务协同对象和被发起对象的流程实例,对该不同的流程实例进行管控,并根据协同运行指令对流程实例执行协同运行。
所述流程实例协同处理器还包括流程实例协同监听单元,用于在工作流引擎执行流程对象时,与流程实例协同处理器进行绑定,当流程实例的状态变更触发协同运行机制时,则自动向流程实例协同处理单元发出流程实例的协同运行指令。
所述流程实例协同处理器还包括流程实例协同查询单元,用于在工作流引擎实例化流程对象时,查询是否存在关联的流程实例,即需协同运行处理的流程实例,如果存在,则调用流程实例池创建单元进行相应的操作。
所述协同运行接口通过工作流引擎接口包装类与工作流引擎扩展接口连接。
一种不同流程实例协同运行的实现方法,所述方法包括以下多个步骤:
S1:调用协同运行接口,校验协同入参;
S2:若校验通过,则对流程实例协同处理器进行初始化处理,并创建流程实例池;
S3:若流程实例池创建成功,则根据协同运行指令触发协同运行机制进行流程实例的调度,通过工作流引擎接口调用工作流引擎中流程实例,并对该流程实例进行管控,并根据协同运行指令对流程实例执行协同运行。
所述方法还包括步骤S4:将流程实例池中的流程对象与流程实例协同处理器进行绑定,当流程对象的状态发生变化触发协同运行机制时,自动产生流程实例的协同运行指令。
所述方法还包括步骤S5:每当调用工作流引擎进行流程实例的流转时,先查询是否存在协同流程实例,如果存在,则执行步骤S2。
所述流程实例池中的流程对象包括流程实例、节点实例和任务实例,所述流程实例包括发起业务协同对象的流程实例和被发起对象的流程实例。
所述步骤S2中,若校验未通过,则返回参数错误信息。
所述步骤S3中,若流程实例池创建未成功,则返回对象创建错误信息。
本发明的有益效果是:本发明通过流程实例协同处理器使得工作流引擎能够支持不同的流程实例之间的协同运行,扩展了工作流引擎接口,极大地提高了流程实例流转的灵活性,满足不同业务流程协同运行的业务需要。
附图说明
图1为本发明中流程实例协同处理器的架构图;
图2为本发明中不同流程实例协同运行方法的流程示意图;
图3为本发明中协同业务办理过程与工作流技术支撑对照图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
(1)***部分
如图1所示,一种不同流程实例协同运行的***,所述***包括流程实例协同处理器和工作流引擎,流程实例协同处理器通过工作流引擎接口调用工作流引擎中的流程实例,流程实例协同处理器对不同的流程实例进行协同运行处理,并通过工作流引擎扩展接口将流程实例协同处理器的协同运行接口扩展到工作流引擎中。
所述流程实例协同处理器包括以下多个部件。
① 发起协同指令校验单元,用于校验发起业务协同对象、被发起对象和协同运行方式,调用协同执行接口,校验协同入参。
协同入参的内容包括当前发起业务协同对象的类型、被发起对象的业务量和协同运行方式,所述发起业务协同对象的类型包括流程、流程环节和任务等,协同运行方式包括同步运行、异步运行、并行运行和顺序运行等等。
② 流程实例池创建单元,用于在工作流引擎在进行流程执行时,将流程实例的数据加载到内存中,初始化流程实例协同处理器,创建流程实例池,并保存不同流程实例之间的协同关系。
③ 流程实例协同处理单元,根据协同入参触发协同运行机制的调度计算,通过工作流引擎接口调用工作流引擎中发起业务协同对象和被发起对象的流程实例,对该不同的流程实例进行管控,并根据协同运行指令对流程实例执行协同运行。
④ 流程实例协同监听单元,用于在工作流引擎执行流程对象时,与流程实例协同处理器进行绑定,当流程实例的状态变更触发协同运行机制时,则自动向流程实例协同处理单元发出流程实例的协同运行指令。
⑤ 流程实例协同查询单元,用于在工作流引擎实例化流程对象时,查询是否存在关联的流程实例,即需协同运行处理的流程实例,如果存在,则调用流程实例池创建单元进行相应的操作,即流程实例池创建单元才开始工作。
所述协同运行接口通过工作流引擎接口包装类与工作流引擎扩展接口连接。
(2)方法部分
如图2所示,一种不同流程实例协同运行的实现方法,所述方法包括以下多个步骤:
S1:调用协同运行接口,校验协同入参;
S2:若校验通过,则对流程实例协同处理器进行初始化处理,并创建流程实例池;
若校验未通过,则返回参数错误信息;
S3:若流程实例池创建成功,则根据协同入参/协同运行指令触发协同运行机制进行流程实例的调度,通过工作流引擎接口调用工作流引擎中流程实例,并对该流程实例进行管控,并根据协同运行指令对流程实例执行协同运行;
若流程实例池创建未成功,则返回对象创建错误信息;
S4:将流程实例池中的流程对象与流程实例协同处理器进行绑定,当流程对象的状态发生变化触发协同运行机制时,自动产生流程实例的协同运行指令;
S5:每当调用工作流引擎进行流程实例的流转时,先查询是否存在协同流程实例,如果存在,则执行步骤S2。
所述流程实例池中的流程对象包括流程实例、节点实例和任务实例,所述流程实例包括发起业务协同对象的流程实例和被发起对象的流程实例。
(3)实施案例
如图3所示,本发明的一种具体实施案例,包括以下多个处理环节。
P1,配置业务协同规则:在业务流程***中,业务之间是否产生协同运行,需要满足相应的业务规则,它包含业务之间的入参与出参,而不是随意的协同,纵然本发明可以支持任意发起的协同,但是在实际实施过程中,往往是存在一定约束的,所以本实施例首先要配置业务之间的协同规则,包括协同运行的条件,以及协同的运行方式。
P2,对业务建立业务流程模型:当业务流程引入了工作流引擎,就需要针对业务建立业务流程模型,建模的方式可以是在线式,也可以是插件式或开发式,工作流引擎本身支持业务流程模型资源的解析和运行。
P3,开始办理业务:一个业务流***都有开始办理业务的入口,工作流***的业务流程启动入口的方式很多,可以是基于业务功能的,也可以是统一的,具体应用方式可以根据用户需求要进行相应的调整,在开始办理时需要执行步骤S2。
P4,发起业务协同:在业务的办理过程中,根据业务规则,如果满足条件,则触发协同运行机制,并执行步骤S3,通过工作流引擎扩展接口调用工作流引擎,传入协同业务参数即协同入参,通过流程实例协同处理器,按照协同运行机制,进行流程实例的流转。
被发起的流程实例可以继续发起其他业务。
P5:在业务办理完成是调用工作流接口,发现当前流程对象为协同运行,则加载流程实例协同处理器,执行步骤S1,加载完成后,流程实例协同处理器将对流程实例池里的流程实例进行协同运行调度,执行步骤S3,流程实例池里的流程对象会自动绑定流程实例协同处理器。
假设被发起对象的业务为同步协同,在发起时,发起业务协同对象(发起者)被挂起,当被发起对象(被发起流程实例)完成时,将触发流程实例协同处理器让发起业务协同对象(发起者流程实例)恢复运行状态。
P6,业务办理过程跟踪与管控:在业务办理的任意时刻,都可以通过协同视图对不同流程实例的协同运行情况进行跟踪和展示,并调用工作流引擎接口对流程实例进行管控。
通过流程实例协同处理器获取到协同视图,通过协同视图获取多流程实例的运行数据,多个流程实例协同运行的展示不限定,可以是图形化,可以是文字描述。对于动态展示的流程对象可以根据需要进行流程对象的控制,控制操作调用相应的工作流引擎接口。
Claims (5)
1.一种不同流程实例协同运行的***,其特征在于:所述***包括流程实例协同处理器和工作流引擎,流程实例协同处理器通过工作流引擎接口调用工作流引擎中的流程实例,流程实例协同处理器对不同的流程实例进行协同运行处理,并通过工作流引擎扩展接口将流程实例协同处理器的协同运行接口扩展到工作流引擎中;
所述流程实例协同处理器包括以下多个部件:
发起协同指令校验单元,用于校验发起业务协同对象、被发起对象和协同运行方式,调用协同运行接口,校验协同入参:
流程实例池创建单元,用于在校验通过且工作流引擎进行流程执行时,将流程实例的数据加载到内存中,初始化流程实例协同处理器,创建流程实例池,并在所述流程实例池中保存不同流程实例之间的协同关系;其中,所述流程实例池中包括流程对象,所述流程对象包括:流程实例、节点实例和任务实例;
流程实例协同处理单元,根据协同入参触发协同运行机制进行流程实例的调度,通过工作流引擎接口调用工作流引擎中发起业务协同对象和被发起对象的流程实例,对该不同的流程实例进行管控,并根据协同运行指令对流程实例执行协同运行;
流程实例协同监听单元,用于将所述流程实例池中的流程对象与流程实例协同处理单元进行绑定,当流程对象的状态变更触发协同运行机制时,则自动向流程实例协同处理单元发出流程实例的协同运行指令;
流程实例协同查询单元,用于在工作流引擎实例化流程对象时,查询是否存在关联的流程实例;如果存在,则调用流程实例池创建单元进行相应的操作;其中,关联的流程实例即需协同运行处理的流程实例;
所述协同运行接口通过工作流引擎接口包装类与工作流引擎扩展接口连接。
2.一种不同流程实例协同运行的实现方法,其特征在于:所述方法包括以下多个步骤:
S1:校验发起业务协同对象、被发起对象和协同运行方式,调用协同运行接口,校验协同入参:
S2:若校验通过,将流程实例的数据加载到内存中,并对流程实例协同处理器进行初始化处理,创建流程实例池,并在所述流程实例池中保存不同流程实例之间的协同关系;其中,所述流程实例池中包括流程对象,所述流程对象包括:流程实例、节点实例和任务实例;
S3:若流程实例池创建成功,则根据协同运行指令触发协同运行机制进行流程实例的调度,通过工作流引擎接口调用工作流引擎中流程实例,并对该流程实例进行管控,并根据协同运行指令对流程实例执行协同运行;
S4:将流程实例池中的流程对象与流程实例协同处理单元进行绑定,当流程对象的状态发生变化触发协同运行机制时,则自动向流程实例协同处理单元发出流程实例的协同运行指令;
S5:每当调用工作流引擎进行流程实例的流转时,先查询是否存在协同流程实例,如果存在,则执行步骤S2;
其中,所述协同运行接口通过工作流引擎接口包装类与工作流引擎扩展接口连接。
3.根据权利要求2所述的一种不同流程实例协同运行的实现方法,其特征在于:所述流程实例池中的流程对象包括流程实例、节点实例和任务实例,所述流程实例包括发起业务协同对象的流程实例和被发起对象的流程实例。
4.根据权利要求2所述的一种不同流程实例协同运行的实现方法,其特征在于,所述步骤S2中,若校验未通过,则返回参数错误信息。
5.根据权利要求2所述的一种不同流程实例协同运行的实现方法,其特征在于,所述步骤S3中,若流程实例池创建未成功,则返回对象创建错误信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510348313.0A CN104992271B (zh) | 2015-06-23 | 2015-06-23 | 一种不同流程实例协同运行的***及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510348313.0A CN104992271B (zh) | 2015-06-23 | 2015-06-23 | 一种不同流程实例协同运行的***及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104992271A CN104992271A (zh) | 2015-10-21 |
CN104992271B true CN104992271B (zh) | 2020-03-10 |
Family
ID=54304081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510348313.0A Active CN104992271B (zh) | 2015-06-23 | 2015-06-23 | 一种不同流程实例协同运行的***及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104992271B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573851B (zh) * | 2015-12-16 | 2020-06-12 | 山东中创软件工程股份有限公司 | 一种流程协同处理方法及*** |
CN107133309B (zh) * | 2017-04-28 | 2020-04-07 | 东软集团股份有限公司 | 流程实例的存储、查询方法及装置、存储介质及电子设备 |
CN109670664A (zh) * | 2018-09-11 | 2019-04-23 | 深圳平安财富宝投资咨询有限公司 | 基于工作流的流程实施方法、用户设备、存储介质及装置 |
CN110689260A (zh) * | 2019-09-25 | 2020-01-14 | 云南电网有限责任公司大理供电局 | 一种应用于地县调集约及调控一体化的智能助理*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397192B1 (en) * | 1998-06-05 | 2002-05-28 | I2 Technologies Us, Inc. | Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic |
CN101510275A (zh) * | 2008-12-30 | 2009-08-19 | 北京环太中科软件股份有限公司 | 一种管理体系构建***及管理体系构建方法 |
CN101576978A (zh) * | 2009-06-16 | 2009-11-11 | 北京环太中科软件股份有限公司 | 分布式工作流制定方法、执行方法及执行*** |
CN102034151A (zh) * | 2010-12-13 | 2011-04-27 | 东莞市高鑫机电科技服务有限公司 | 基于soa的企业协同管理***业务流程设计方法及*** |
CN102542382A (zh) * | 2010-12-14 | 2012-07-04 | ***通信集团贵州有限公司 | 业务规则的管理方法和装置 |
CN103065221A (zh) * | 2012-12-27 | 2013-04-24 | 北京仿真中心 | 基于bpel的多学科协同优化流程建模与调度的方法和*** |
CN103353957A (zh) * | 2013-06-19 | 2013-10-16 | 浙江中烟工业有限责任公司 | 一种以人为中心的协同型工作流***实现方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7168077B2 (en) * | 2003-01-31 | 2007-01-23 | Handysoft Corporation | System and method of executing and controlling workflow processes |
CN101807272A (zh) * | 2010-03-24 | 2010-08-18 | 上海普元信息技术有限责任公司 | 工作流***实现流程事务和业务事务完整性的***结构及方法 |
CN101976386A (zh) * | 2010-10-12 | 2011-02-16 | 大唐软件技术股份有限公司 | 一种流程协同的控制方法 |
CN104463508B (zh) * | 2014-12-30 | 2017-11-24 | 山东中创软件商用中间件股份有限公司 | 一种多个工作流***间的协同方法及装置 |
-
2015
- 2015-06-23 CN CN201510348313.0A patent/CN104992271B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397192B1 (en) * | 1998-06-05 | 2002-05-28 | I2 Technologies Us, Inc. | Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic |
CN101510275A (zh) * | 2008-12-30 | 2009-08-19 | 北京环太中科软件股份有限公司 | 一种管理体系构建***及管理体系构建方法 |
CN101576978A (zh) * | 2009-06-16 | 2009-11-11 | 北京环太中科软件股份有限公司 | 分布式工作流制定方法、执行方法及执行*** |
CN102034151A (zh) * | 2010-12-13 | 2011-04-27 | 东莞市高鑫机电科技服务有限公司 | 基于soa的企业协同管理***业务流程设计方法及*** |
CN102542382A (zh) * | 2010-12-14 | 2012-07-04 | ***通信集团贵州有限公司 | 业务规则的管理方法和装置 |
CN103065221A (zh) * | 2012-12-27 | 2013-04-24 | 北京仿真中心 | 基于bpel的多学科协同优化流程建模与调度的方法和*** |
CN103353957A (zh) * | 2013-06-19 | 2013-10-16 | 浙江中烟工业有限责任公司 | 一种以人为中心的协同型工作流***实现方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104992271A (zh) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104992271B (zh) | 一种不同流程实例协同运行的***及其实现方法 | |
US10453010B2 (en) | Computer device, method, and apparatus for scheduling business flow | |
CN103279840B (zh) | 基于动态语言与事件处理机制的工作流引擎实现方法 | |
CN102306197B (zh) | 保证跨数据源操作结果一致性的装置和方法 | |
CN110942387A (zh) | 基于微服务的电票业务功能构建方法和*** | |
CN110659018B (zh) | 一种流程引擎实现方法及装置 | |
WO2021000758A1 (zh) | 机器人资源任务周期管控方法及装置 | |
CN103065221A (zh) | 基于bpel的多学科协同优化流程建模与调度的方法和*** | |
CN102279766A (zh) | 并行模拟多个处理器的方法及***、调度器 | |
CN109766196A (zh) | 一种任务调度方法、装置及设备 | |
CN102566443A (zh) | 基于addl的综合化航电***模型仿真验证***及方法 | |
CN104750522A (zh) | 任务或流程的动态执行方法和*** | |
Bocciarelli et al. | A language for enabling model-driven analysis of business processes | |
CN102572896A (zh) | 一种无线通讯***升级方法及升级装置 | |
CN112068455A (zh) | 任务仿真方法、***、装置、电子设备及可读存储介质 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN112053123A (zh) | 一种自动化核算处理方法、装置、电子设备和可读存储介质 | |
CN108876074B (zh) | 一种适用于多类资源申请审批的通用调度方法 | |
CN103631594A (zh) | 通用流程异步调度方法及*** | |
CN110489093A (zh) | 一种面向ai应用的持续构造方法、装置、终端及存储介质 | |
CN110109837B (zh) | 集成测试方法、装置以及控制器和介质 | |
CN101996091B (zh) | 实现支持多种流程运行的图形执行虚拟机***及其方法 | |
CN116627609A (zh) | 基于Hive批处理的调度方法及装置 | |
CN115115062B (zh) | 机器学习模型建立方法、相关装置及计算机程序产品 | |
CN116107869A (zh) | 编排测试方法和装置、电子设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |