CN109741030A - 一种可自定义配置的简单工作流引擎及工作流执行方法 - Google Patents
一种可自定义配置的简单工作流引擎及工作流执行方法 Download PDFInfo
- Publication number
- CN109741030A CN109741030A CN201811626435.1A CN201811626435A CN109741030A CN 109741030 A CN109741030 A CN 109741030A CN 201811626435 A CN201811626435 A CN 201811626435A CN 109741030 A CN109741030 A CN 109741030A
- Authority
- CN
- China
- Prior art keywords
- workflow
- task
- interface
- custom
- metadata
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种可自定义配置的简单工作流引擎及工作流执行方法。其中:简单工作流包括四种基本类型,分别是顺序流、条件流、重复流和并行流,简单工作流引擎包括任务接口、自定义任务、四种基本类型、工作流上下文和流程引擎,任务接口作为任务的基本单元;自定义任务继承任务接口;四种基本类型继承任务接口,封装自定义任务用于执行;工作流上下文负责传递业务处理数据;流程引擎包含工作流加载接口和任务过程接口;工作流加载接口负责解析元数据加载工作流实例;任务过程接口负责执行工作流,参数为工作流实例和工作流上下文。本发明的有益效果是:提供解决流程的整体调度和可自定义配置的简单方案,减少业务代码的修改,提高可维护性。
Description
技术领域
本发明涉及计算机数据处理相关技术领域,尤其是指一种可自定义配置的简单工作流引擎及工作流执行方法。
背景技术
目前企业管理平台中一般都会涉及到业务的流程处理,将各个能力组件通过API调用的方式组合业务流程,完成相应的功能;如果只是单一固定的业务流程,我们一般采用硬编码的形式固定流程顺序即可。但面对业务复杂度高的系统,涉及到的业务流程可能执行顺序不一致或者根据复杂条件不断变换,硬编码不可避免的增加了维护成本。此时,就会用到工作流,将业务流程按照一定的规则设计抽象出来,根据不同条件场景执行。目前互联网上已经有很多相当成熟的工作流引擎,但对于一般简单的企业管理应用来说过于庞大复杂,不易于使用,增加了开发和维护成本。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种能够提高可维护性的可自定义配置的简单工作流引擎及工作流执行方法。
为了实现上述目的,本发明采用以下技术方案:
一种可自定义配置的简单工作流引擎,简单工作流包括四种基本类型,分别是顺序流、条件流、重复流和并行流,简单工作流引擎包括任务接口、自定义任务、四种基本类型、工作流上下文和流程引擎,其中:
所述的任务接口作为任务的基本单元,包括执行、回滚、预处理、后处理方法;
所述的自定义任务继承任务接口;
所述的四种基本类型继承任务接口,封装自定义任务用于执行;
所述的工作流上下文负责传递业务处理数据;
所述的流程引擎包含工作流加载接口和任务过程接口;所述的工作流加载接口负责解析元数据加载工作流实例;所述的任务过程接口负责执行工作流,参数为工作流实例和工作流上下文;其中:工作流实例指的是四种基本类型。
本发明设计一种简单灵活的工作流规则引擎,提供解决流程的整体调度和可自定义配置的简单方案,减少业务代码的修改,提高可维护性。
作为优选,工作流元数据解析包括工作节点、流节点、自定义任务加载绑定策略接口、元数据转换接口和工作流加载接口,其中:
所述的工作节点封装元数据的路由规则信息;
所述的流节点继承工作节点,构建工作流模型;
所述的自定义任务加载绑定策略接口根据工作节点路由规则绑定自定义任务实例;
所述的元数据转换接口按自定义规则解析元数据,生成工作节点;
所述的工作流加载接口包含自定义任务加载绑定策略接口和元数据转换接口,根据元数据生成工作流模型,绑定自定义任务实例,转化为工作流实例。
本发明还提供了一种可自定义配置的简单工作流引擎的工作流执行方法,其特征是,具体包括如下步骤:
(1)从文件或数据库加载元数据,根据元数据解析生成工作流实例,或直接导入工作流实例;
(2)执行工作流,遍历执行任务,如果任务为自定义任务类型,则执行任务;如果任务为工作流类型,则递归执行工作流;
(3)任务依次调用预处理、执行、后处理方法;
(4)任务执行成功,缓存到该工作流的回滚队列;
(5)任务执行失败或异常,工作流中断后续任务,回滚队列执行回滚操作。
本发明的有益效果是:提供解决流程的整体调度和可自定义配置的简单方案,减少业务代码的修改,提高可维护性。
附图说明
图1是本发明的四种基本类型示意图;
图2是简单工作流引擎的结构示意图;
图3是工作流元数据解析的结构示意图;
图4是本发明的执行方法流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
一种可自定义配置的简单工作流引擎,简单工作流包括四种基本类型,分别是顺序流、条件流、重复流和并行流,如图1所示,
顺序流(Sequential Flow):任务顺序执行;
条件流(Conditional Flow):任务按条件执行;
重复流(Repeat Flow):任务重复执行n次;
并行流(Parallel Flow):任务并行执行;
四种基本类型流程作为一个整体又可以指代为某一个特定任务(flow=Work),因此四种基本类型流程可以互相组合新的流程,互相嵌套。
如图2所示,简单工作流引擎包括任务接口、自定义任务、四种基本类型、工作流上下文和流程引擎,其中:
任务接口(Work接口)作为任务的基本单元,包括执行(execute)、回滚(revert)、预处理(preExecute)、后处理(postExecute)方法;
自定义任务(CustomWork)继承任务接口(Work接口);
四种基本类型(WorkFlow)继承任务接口(Work接口),封装自定义任务(CustomWork)用于执行;
工作流上下文(Context)负责传递业务处理数据;
流程引擎(WorkflowEngine)包含工作流加载接口(WorkflowLoader)和任务过程接口(Processor);提供两种方法:①直接传入工作流实例并执行②传入元数据(metaData),通过解析元数据生成工作流实例并执行。工作流加载接口(WorkflowLoader)负责解析元数据(metaData)加载工作流实例,元数据可以采用xml、json、yml等数据形式保存在文件或数据库,根据文件路径加载或直接传入元数据;任务过程接口(Processor)负责执行工作流,参数为工作流实例和工作流上下文;其中:工作流实例指的是四种基本类型。
如图3所示,工作流元数据解析包括工作节点、流节点、自定义任务加载绑定策略接口、元数据转换接口和工作流加载接口,其中:
工作节点(WorkNode)封装元数据的路由规则信息;
流节点(FlowNode)继承工作节点(WorkNode),构建工作流模型;
自定义任务加载绑定策略接口(WorkInitStrategy)根据工作节点(WorkNode)路由规则绑定自定义任务(CustomWork)实例;
元数据转换接口(WorkNodeConverter)按自定义规则解析元数据(metaData),生成工作节点;
工作流加载接口(WorkflowLoader)包含自定义任务加载绑定策略接口和元数据转换接口,根据元数据生成工作流模型,绑定自定义任务实例,转化为工作流实例。
如图4所示,本发明还提供了一种可自定义配置的简单工作流引擎的工作流执行方法,其特征是,具体包括如下步骤:
(1)从文件或数据库加载元数据,根据元数据解析生成工作流实例,或直接导入工作流实例;
(2)执行工作流,遍历执行任务,如果任务为自定义任务类型,则执行任务;如果任务为工作流类型,则递归执行工作流;
(3)任务依次调用预处理、执行、后处理方法;
(4)任务执行成功,缓存到该工作流的回滚队列;
(5)任务执行失败或异常,工作流中断后续任务,回滚队列执行回滚操作。
其中:工作流每个任务环节应该互相独立,数据从工作流上下文(Context)中获取;适用于任务流程不固定的场景,通过数据库、文件等方式读取或保存工作流,根据工作流执行任务。本发明在项目中应用,使各个功能组件业务代码相互独立,只需组合工作流或从外部读取配置生成工作流,从而控制整个工作流程,支持失败回滚操作,提高了代码可维护性。本发明提供解决流程的整体调度和可自定义配置的简单方案,减少业务代码的修改,提高可维护性。
Claims (3)
1.一种可自定义配置的简单工作流引擎,其特征是,简单工作流包括四种基本类型,分别是顺序流、条件流、重复流和并行流,简单工作流引擎包括任务接口、自定义任务、四种基本类型、工作流上下文和流程引擎,其中:
所述的任务接口作为任务的基本单元,包括执行、回滚、预处理、后处理方法;
所述的自定义任务继承任务接口;
所述的四种基本类型继承任务接口,封装自定义任务用于执行;
所述的工作流上下文负责传递业务处理数据;
所述的流程引擎包含工作流加载接口和任务过程接口;所述的工作流加载接口负责解析元数据加载工作流实例;所述的任务过程接口负责执行工作流,参数为工作流实例和工作流上下文;其中:工作流实例指的是四种基本类型。
2.根据权利要求1所述的一种可自定义配置的简单工作流引擎及工作流执行方法,其特征是,工作流元数据解析包括工作节点、流节点、自定义任务加载绑定策略接口、元数据转换接口和工作流加载接口,其中:
所述的工作节点封装元数据的路由规则信息;
所述的流节点继承工作节点,构建工作流模型;
所述的自定义任务加载绑定策略接口根据工作节点路由规则绑定自定义任务实例;
所述的元数据转换接口按自定义规则解析元数据,生成工作节点;
所述的工作流加载接口包含自定义任务加载绑定策略接口和元数据转换接口,根据元数据生成工作流模型,绑定自定义任务实例,转化为工作流实例。
3.根据权利要求1或2所述的一种可自定义配置的简单工作流引擎的工作流执行方法,其特征是,具体包括如下步骤:
(1)从文件或数据库加载元数据,根据元数据解析生成工作流实例,或直接导入工作流实例;
(2)执行工作流,遍历执行任务,如果任务为自定义任务类型,则执行任务;如果任务为工作流类型,则递归执行工作流;
(3)任务依次调用预处理、执行、后处理方法;
(4)任务执行成功,缓存到该工作流的回滚队列;
(5)任务执行失败或异常,工作流中断后续任务,回滚队列执行回滚操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626435.1A CN109741030A (zh) | 2018-12-28 | 2018-12-28 | 一种可自定义配置的简单工作流引擎及工作流执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626435.1A CN109741030A (zh) | 2018-12-28 | 2018-12-28 | 一种可自定义配置的简单工作流引擎及工作流执行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109741030A true CN109741030A (zh) | 2019-05-10 |
Family
ID=66361838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811626435.1A Pending CN109741030A (zh) | 2018-12-28 | 2018-12-28 | 一种可自定义配置的简单工作流引擎及工作流执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109741030A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597143A (zh) * | 2020-03-24 | 2020-08-28 | 中电海康集团有限公司 | 一种将dag图数据转换为工作流引擎调度文件的方法 |
CN111724144A (zh) * | 2020-07-17 | 2020-09-29 | 江苏苏宁银行股份有限公司 | 一种银行交易工作流引擎系统 |
CN111767043A (zh) * | 2020-06-24 | 2020-10-13 | 北京思特奇信息技术股份有限公司 | 基于业务调度引擎的跨系统业务调度方法和系统 |
CN111949326A (zh) * | 2020-08-03 | 2020-11-17 | 杭州当虹科技股份有限公司 | 一种基于Activiti的微服务工作流方法 |
CN112114873A (zh) * | 2020-08-19 | 2020-12-22 | 成都安易迅科技有限公司 | 任务处理的方法、装置及计算机设备 |
CN112181511A (zh) * | 2020-08-26 | 2021-01-05 | 北京大学 | 一种可执行的情报分析流交互配置生成方法 |
CN112540813A (zh) * | 2021-01-09 | 2021-03-23 | 浙江工业大学 | 一种基于工作流引擎的应用生成方法 |
CN112860744A (zh) * | 2021-01-29 | 2021-05-28 | 北京电解智科技有限公司 | 一种业务流程处理方法和装置 |
CN115269161A (zh) * | 2022-09-30 | 2022-11-01 | 浙江省公众信息产业有限公司无线运营分公司 | 一种异常流程逆向回滚方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714230A (zh) * | 2009-11-20 | 2010-05-26 | 广东金宇恒科技有限公司 | 一种用户自定义的工作流管理方法及系统 |
CN103617066A (zh) * | 2013-12-16 | 2014-03-05 | 中国农业银行股份有限公司 | 一种工作流引擎及其实现方法 |
-
2018
- 2018-12-28 CN CN201811626435.1A patent/CN109741030A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714230A (zh) * | 2009-11-20 | 2010-05-26 | 广东金宇恒科技有限公司 | 一种用户自定义的工作流管理方法及系统 |
CN103617066A (zh) * | 2013-12-16 | 2014-03-05 | 中国农业银行股份有限公司 | 一种工作流引擎及其实现方法 |
Non-Patent Citations (2)
Title |
---|
孙达: "基于J2EE平台的工作流管理系统Flowstep的建模工具和任务引擎", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
闵波: "基于工作流的组学数据注释平台的构建", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597143A (zh) * | 2020-03-24 | 2020-08-28 | 中电海康集团有限公司 | 一种将dag图数据转换为工作流引擎调度文件的方法 |
CN111597143B (zh) * | 2020-03-24 | 2023-11-17 | 中电海康集团有限公司 | 一种将dag图数据转换为工作流引擎调度文件的方法 |
CN111767043A (zh) * | 2020-06-24 | 2020-10-13 | 北京思特奇信息技术股份有限公司 | 基于业务调度引擎的跨系统业务调度方法和系统 |
CN111767043B (zh) * | 2020-06-24 | 2024-01-30 | 北京思特奇信息技术股份有限公司 | 基于业务调度引擎的跨系统业务调度方法和系统 |
CN111724144B (zh) * | 2020-07-17 | 2022-06-28 | 江苏苏宁银行股份有限公司 | 一种银行交易工作流引擎系统 |
CN111724144A (zh) * | 2020-07-17 | 2020-09-29 | 江苏苏宁银行股份有限公司 | 一种银行交易工作流引擎系统 |
CN111949326A (zh) * | 2020-08-03 | 2020-11-17 | 杭州当虹科技股份有限公司 | 一种基于Activiti的微服务工作流方法 |
CN112114873B (zh) * | 2020-08-19 | 2023-03-21 | 成都安易迅科技有限公司 | 任务处理的方法、装置及计算机设备 |
CN112114873A (zh) * | 2020-08-19 | 2020-12-22 | 成都安易迅科技有限公司 | 任务处理的方法、装置及计算机设备 |
CN112181511B (zh) * | 2020-08-26 | 2021-09-14 | 北京大学 | 一种可执行的情报分析流交互配置生成方法 |
CN112181511A (zh) * | 2020-08-26 | 2021-01-05 | 北京大学 | 一种可执行的情报分析流交互配置生成方法 |
CN112540813A (zh) * | 2021-01-09 | 2021-03-23 | 浙江工业大学 | 一种基于工作流引擎的应用生成方法 |
CN112860744A (zh) * | 2021-01-29 | 2021-05-28 | 北京电解智科技有限公司 | 一种业务流程处理方法和装置 |
CN115269161A (zh) * | 2022-09-30 | 2022-11-01 | 浙江省公众信息产业有限公司无线运营分公司 | 一种异常流程逆向回滚方法和系统 |
CN115269161B (zh) * | 2022-09-30 | 2022-12-20 | 浙江省公众信息产业有限公司无线运营分公司 | 一种异常流程逆向回滚方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109741030A (zh) | 一种可自定义配置的简单工作流引擎及工作流执行方法 | |
Uhrin et al. | Workflows in AiiDA: Engineering a high-throughput, event-based engine for robust and modular computational workflows | |
US9916136B2 (en) | Interface infrastructure for a continuation based runtime | |
CN105468626B (zh) | 数据处理方法及系统 | |
CN109324793A (zh) | 支持算法组件化的处理系统及方法 | |
US7640538B2 (en) | Virtual threads in business process programs | |
CN104424018A (zh) | 分布式计算事务处理方法及装置 | |
CN104462943A (zh) | 业务系统中非侵入式性能监控装置和方法 | |
CN104168250A (zh) | 基于cgi框架的业务流程控制方法及装置 | |
CN103152433A (zh) | 一种分布式服务端框架及其使用、交互、请求处理方法 | |
Kolovos et al. | The epsilon pattern language | |
Sanchez et al. | Bigraphical modelling of architectural patterns | |
CN111966718A (zh) | 用于应用系统的数据传播追踪的系统及方法 | |
Braghetto et al. | Performance evaluation of business processes through a formal transformation to SAN | |
Hähnle et al. | HATS abstract behavioral specification: The architectural view | |
Gu et al. | An end-to-end tool chain for multi-view modeling and analysis of avionics mission computing software | |
Filho et al. | Local livelock analysis of component-based models | |
Chaudron et al. | Towards a compositional method for coordinating Gamma programs | |
Pérez-Castillo et al. | Integrating event logs into KDM repositories | |
Anderson et al. | Migrating protocols in multi-threaded message-passing systems | |
Lano et al. | Structured axiomatic semantics for UML models | |
Zhao et al. | Enforcing constraints on life cycles of business artifacts | |
Skelin et al. | Compositionality in scenario-aware dataflow: A rendezvous perspective | |
Margaria et al. | Leveraging Applications of Formal Methods, Verification and Validation. Specialized Techniques and Applications: 6th International Symposium, ISoLA 2014, Imperial, Corfu, Greece, October 8-11, 2014, Proceedings, Part II | |
CN113238915B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190510 |
|
RJ01 | Rejection of invention patent application after publication |