CN101286215A - 同时支持人工流和自动流的工作流引擎 - Google Patents
同时支持人工流和自动流的工作流引擎 Download PDFInfo
- Publication number
- CN101286215A CN101286215A CNA200810014283XA CN200810014283A CN101286215A CN 101286215 A CN101286215 A CN 101286215A CN A200810014283X A CNA200810014283X A CN A200810014283XA CN 200810014283 A CN200810014283 A CN 200810014283A CN 101286215 A CN101286215 A CN 101286215A
- Authority
- CN
- China
- Prior art keywords
- stream
- persistence
- artificial
- layer
- flow
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于中间件技术架构领域,特别是在工作流引擎的技术架构领域,具体是一种同时支持人工流和自动流的工作流引擎,包括客户端,代理层,权限效验层,流程逻辑处理层和持久化层,其特征在于还包括:首先,扩展上述持久层的结构,在持久化层中设置有同数据库持久化层分离的内存持久化层,供上述流程逻辑层中确定的自动流信息进行持久化;其次,扩展上述流程逻辑处理层,在流程逻辑层中扩展重写引擎部分接口,通过解析流程定义确定当前流程采用的存储方式;最后,编写自动流嵌入人工流的算法,提高人工流中嵌入自动流的运行效率。本发明很好的解决了目前工作流引擎无法很好的同时支持人工流和自动流的问题。
Description
技术领域
本发明属于中间件技术架构领域,特别是在工作流引擎的技术架构领域,具体是一种工作流引擎。
背景技术
目前,很多行业都应用了工作流中间件技术,诸如一些与流程紧密相关的政府、金融、电信等行业;从应用的特点总体上可以概括为两大类,一类是人工流,支持人工参与的流程处理,如公文审批;另一类是自动流,支持自动化的流程处理。
人工流,指需要人工参与的流程,需要提供界面给参与的人以显示流程的目前状态,并允许参与人员进行相应的处理以决定流程的走向;
自动流,指业务流程执行的完全自动化,系统完全根据可以获得的各种信息来源和业务流程的设计自动的判断流程的走向,即不需要人工参与;
掺杂自动节点的人工流,当然人工流定义中大部分都是人工节点,但是根据不同的企业应用环境,人工流中往往存在一些不需要人工参与的,可以自动向下执行的节点,这样的自动节点由引擎来自动触发执行相应的业务。
人工节点的概念是与自动节点相对的。顾名思义,人工节点就是需要有人参与的节点,在实际流程中,它体现在产生由人完成的工作项以及由人决定一些决策变量,这些决策变量会对流程的运行产生影响(例如分支的选择等等)。自动节点则是由工作流引擎自己调用完成,不需要人的参与,通常是执行定制的业务操作,自动节点更多的则是应用在自动流里。
当前,业务流程的两种发展方向---人工流和自动流;很少有将其统一的结合起来的,做到即很好的支持人工流,又高效的支持自动流。
随着国内在自动化流程处理方面的加强,满足自动流高效支持的需求,同时还要保证原有处理人工流程的优势,要求在原有的技术架构上进行扩展。
当然,原掺杂自动节点的人工流,只要引擎支持定义的自动节点,完全能够实现对自动流的支持(整个人工流定义,全部为自动节点),但是性能方面难以达到预期的效果(自动流一般对性能和并发度要求比较高,因为不需要人工参与);由于,理论上自动流无需记录工作流信息及状态,只要触发就按预定义的流程运转结束即可;考虑到这样情况下,而且性能的瓶颈主要是在工作流状态及一些工作流相关信息的持久化,写数据等I/O操作上,所以提出这样的解决方案:通过扩展工作流引擎,单独扩展实现内存持久化层,再通过依赖注入配置使数据库持久化和内存持久化分离,分别作用于人工流和自动流,相互独立;人工流的持久化仍使用数据库进行持久化,保证原有人工流的支持;自动流的持久化采用新实现的内存持久化,所有的工作流信息及状态均记录在内存中,来达到自动流的性能优化。
发明内容
本发明的目的就是针对上述存在的问题,采用扩展了原有工作流引擎框架,解决了目前工作流引擎无法很好的同时支持人工流和自动流的问题。
本方案是通过如下技术措施来实现的:
一种同时支持人工流和自动流的工作流引擎,包括客户端,提供工作流引擎API;代理层,扩展代理实现;权限效验层,扩展实现对连接引擎的资源进行效验;流程逻辑处理层,实现引擎逻辑处理;和持久化层,包括数据库存储,实现对流程信息的持久化,其特征在于还包括:
首先,扩展上述持久层的结构,在持久化层中设置有同数据库持久化层分离的内存持久化层,供上述流程逻辑层中确定的自动流信息进行持久化;
其次,扩展上述流程逻辑处理层,在流程逻辑层中扩展重写引擎部分接口,通过解析流程定义确定当前流程采用的存储方式;
最后,编写自动流嵌入人工流的算法,提高人工流中嵌入自动流的运行效率。本算法主要解决数据库存储的人工流和内存存储的自动流之间数据交互的问题。
上述人工流与自动流分别由相对独立的数据库持久管理类和内存持久管理类支持。良好扩展性,允许添加自己的管理方式,方便用户定制;
实现上述内存持久化与数据库持久化分离的方法为:
通过解析流程定义,扩展重写引擎实现保证自动流进行内存持久化,人工流进行数据库持久化,两者相互独立;人工流中嵌入自动流,仍能保证自动流的数据持久化为内存持久化方式。
上述第二步中,扩展上述流程逻辑处理层,在流程逻辑层中扩展重写引擎部分接口,此过程灵活运用流程定义的扩展属性,在流程定义时决定运行过程采用哪种存储方式;自动流进行内存持久化,人工流进行数据库持久化,两者在同一引擎实例中有效共存,并相互独立。
基于该工作流引擎的流程管理过程,其特征在于:
业务流程设计,确定业务流程的工作方式,确定设计流程为人工流还是自动流,或者是人工流中嵌入自动流;针对流程的工作方式,再进行流程建模、分析、模拟、重构;
流程部署后,引擎解析流程定义,自动按照自动流或者人工流向下运转;
流程运行过程按照预定义的过程向下流转,当前流程实例其定义如果是自动流则进行内存持久化,人工流则进行数据库持久化;
由于该过程是基于引擎的可扩展性,所以整个流程运行过程的系统维护很方便和灵活,可以随时修改引擎接口的重写实现,以及整个内存持久化层的优化等。
本发明具有下述优点:
同一工作流引擎,支持人工流同时又高效的支持自动流,提高工作流引擎对应用系统的支持能力,使得工作流引擎更易于实现用户提出的各种需求。
同时支持工作流引擎自动流和人工流的两个相对发展方向,大大减轻运维负担的同时,保证了人工干预的灵活性;通过扩展引擎的方式,分别实现不同的持久化方式,相互不影响,实现了同一工作流引擎兼顾人工流和自动流各自的优点,并且能够相互弥补了各自缺点。
支持人工流中嵌入自动流程,同时保证人工流中的自动流仍然使用内存持久化,保证其性能最佳。
附图说明
图1为本发明实施例同时支持人工流和自动流的工作流引擎的结构图;
图2为本发明实施例基于该工作流引擎的流程管理过程的流程图;
图3为本发明实施例的运行流程图;
图4为本发明实施例中根据定义选择存储方式运行流程的流程图。
具体实施方式
下面将对本发明的实施方式进行详细说明。
一种同时支持人工流和自动流的工作流引擎,如图1所示,包括客户端101,提供工作流引擎API;代理层102,扩展代理实现;权限效验层103,扩展实现对连接引擎的资源进行效验;流程逻辑处理层104,实现引擎逻辑处理;和持久化层105,包括数据库存储,实现对流程信息的持久化,其特征在于还包括:
首先,扩展上述持久层的结构,在持久化层中设置有同数据库持久化层1051分离的内存持久化层1052,供上述流程逻辑层中确定的自动流信息进行持久化;
其次,扩展上述流程逻辑处理层104,在流程逻辑层104中扩展重写引擎部分接口,通过解析流程定义确定当前流程采用的存储方式;
最后,编写自动流嵌入人工流的算法,提高人工流中嵌入自动流的运行效率。本算法主要解决数据库存储的人工流和内存存储的自动流之间数据交互的问题。
上述人工流与自动流分别由相对独立的数据库持久管理类和内存持久管理类支持。良好扩展性,允许添加自己的管理方式,方便用户定制;
实现上述内存持久化与数据库持久化分离的方法为:
通过解析流程定义,扩展重写引擎实现保证自动流进行内存持久化,人工流进行数据库持久化,两者相互独立;人工流中嵌入自动流,仍能保证自动流的数据持久化为内存持久化方式。
上述第二步中,扩展上述流程逻辑处理层,在流程逻辑层中扩展重写引擎部分接口,此过程灵活运用流程定义的扩展属性,在流程定义时决定运行过程采用哪种存储方式;自动流进行内存持久化,人工流进行数据库持久化,两者在同一引擎实例中有效共存,并相互独立。
基于该工作流引擎的流程管理过程,如图2所示,其特征在于:
首先,业务流程设计201,确定业务流程的工作方式,进入步骤202,确定设计流程为人工流2021还是自动流2023,或者是人工流中嵌入自动流2022;针对流程的工作方式,再进行流程建模、分析、模拟、重构;
然后进入步骤203,流程部署后,引擎解析流程定义,自动按照自动流或者人工流向下运转;
流程运行过程按照预定义的过程向下流转,当前流程实例其定义如果是自动流则进行内存持久化2042、2043,人工流则进行数据库持久化2041;
由于该过程是基于引擎的可扩展性,所以整个流程运行过程的系统维护很方便和灵活,可以随时修改引擎接口的重写实现,以及整个内存持久化层的优化等。
本方案的运行过程根据图3所示,如下:
首先,开始步骤301,接收应用通过API调用发出的请求,请求的发出一般是直接通过API调用发出的,在B/S结构的程序中,请求可能来自于一个Servlet。
然后,进入步骤302,API中包含了采用哪个流程处理这个请求的信息,引擎根据此信息到流程定义库中找到此配置信息。
其次,进入步骤303,根据图4,启动并执行此流程的过程如下:
a)步骤3031启动流程,创建第一个节点,并执行此节点要调用的构件;
b)步骤3032实例化构件代理,此代理根据构件的输入参数组织数据;
c)步骤3033通过代理调用构件的方法;
d)步骤3034代理获取构件返回值,并转化成应用在框架引擎一层所要求的数据格式;
e)步骤3035按顺序循环执行此流程中的每一个构件;
再次,进入步骤304,运行过程中,根据流程定义的存储方式,自动调整自动流按内存存储,人工流按数据库持久化存储;
最后,步骤305,流程执行结束,返回调用请求。
Claims (4)
1.一种同时支持人工流和自动流的工作流引擎,包括客户端,提供工作流引擎API;代理层,扩展代理实现;权限效验层,扩展实现对连接引擎的资源进行效验;流程逻辑处理层,实现引擎逻辑处理;和持久化层,包括数据库存储,实现对流程信息的持久化,其特征在于还包括:
首先,扩展上述持久层的结构,在持久化层中设置有同数据库持久化层分离的内存持久化层,供上述流程逻辑层中确定的自动流信息进行持久化;
其次,扩展上述流程逻辑处理层,在流程逻辑层中扩展重写引擎部分接口,通过解析流程定义确定当前流程采用的存储方式;
最后,编写自动流嵌入人工流的算法,提高人工流中嵌入自动流的运行效率。
2.根据权利要求1所述的同时支持人工流和自动流的工作流引擎,其特征在于:上述人工流与自动流分别由相对独立的数据库持久管理类和内存持久管理类支持。
3.根据权利要求1所述的同时支持人工流和自动流的工作流引擎,其特征在于实现上述内存持久化与数据库持久化分离的方法为:
通过解析流程定义,扩展重写引擎实现保证自动流进行内存持久化,人工流进行数据库持久化,两者相互独立;人工流中嵌入自动流,仍能保证自动流的数据持久化为内存持久化方式。
4.基于权利要求1所述流程管理过程,其特征在于:
业务流程设计,确定业务流程的工作方式,确定设计流程为人工流还是自动流,或者是人工流中嵌入自动流;针对流程的工作方式,再进行流程建模、分析、模拟、重构;
流程部署后,引擎解析流程定义,自动按照自动流或者人工流向下运转;
流程运行过程按照预定义的过程向下流转,当前流程实例其定义如果是自动流则进行内存持久化,人工流则进行数据库持久化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810014283XA CN101286215A (zh) | 2008-02-22 | 2008-02-22 | 同时支持人工流和自动流的工作流引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810014283XA CN101286215A (zh) | 2008-02-22 | 2008-02-22 | 同时支持人工流和自动流的工作流引擎 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101286215A true CN101286215A (zh) | 2008-10-15 |
Family
ID=40058409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200810014283XA Pending CN101286215A (zh) | 2008-02-22 | 2008-02-22 | 同时支持人工流和自动流的工作流引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101286215A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467504A (zh) * | 2010-11-03 | 2012-05-23 | 南京莱斯信息技术股份有限公司 | 一种基于关系数据库的工作流引擎系统的设计方法 |
CN105183441A (zh) * | 2015-05-22 | 2015-12-23 | 京华信息科技股份有限公司 | 一种采用微内核架构实现的工作流管理系统 |
CN105207984A (zh) * | 2014-06-19 | 2015-12-30 | 凯为公司 | 使用连续字节来表示通用格式报头的方法及其装置 |
CN108595557A (zh) * | 2018-04-11 | 2018-09-28 | 浙江大学 | 一种用于灵活流程的工作流执行方法 |
US10785169B2 (en) | 2013-12-30 | 2020-09-22 | Marvell Asia Pte, Ltd. | Protocol independent programmable switch (PIPS) for software defined data center networks |
CN112330180A (zh) * | 2020-11-17 | 2021-02-05 | 深圳市智象科技有限公司 | 一种灵活配置的自动作业系统 |
US11050859B2 (en) | 2014-06-19 | 2021-06-29 | Marvell Asia Pte, Ltd. | Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof |
US11258886B2 (en) | 2014-06-19 | 2022-02-22 | Marvell Asia Pte, Ltd. | Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof |
-
2008
- 2008-02-22 CN CNA200810014283XA patent/CN101286215A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467504A (zh) * | 2010-11-03 | 2012-05-23 | 南京莱斯信息技术股份有限公司 | 一种基于关系数据库的工作流引擎系统的设计方法 |
CN102467504B (zh) * | 2010-11-03 | 2014-01-01 | 南京莱斯信息技术股份有限公司 | 一种基于关系数据库的工作流引擎系统的设计方法 |
US10785169B2 (en) | 2013-12-30 | 2020-09-22 | Marvell Asia Pte, Ltd. | Protocol independent programmable switch (PIPS) for software defined data center networks |
US11824796B2 (en) | 2013-12-30 | 2023-11-21 | Marvell Asia Pte, Ltd. | Protocol independent programmable switch (PIPS) for software defined data center networks |
CN105207984A (zh) * | 2014-06-19 | 2015-12-30 | 凯为公司 | 使用连续字节来表示通用格式报头的方法及其装置 |
US11050859B2 (en) | 2014-06-19 | 2021-06-29 | Marvell Asia Pte, Ltd. | Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof |
US11258886B2 (en) | 2014-06-19 | 2022-02-22 | Marvell Asia Pte, Ltd. | Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof |
US11799989B2 (en) | 2014-06-19 | 2023-10-24 | Marvell Asia Pte, Ltd. | Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof |
CN105183441A (zh) * | 2015-05-22 | 2015-12-23 | 京华信息科技股份有限公司 | 一种采用微内核架构实现的工作流管理系统 |
CN108595557A (zh) * | 2018-04-11 | 2018-09-28 | 浙江大学 | 一种用于灵活流程的工作流执行方法 |
CN112330180A (zh) * | 2020-11-17 | 2021-02-05 | 深圳市智象科技有限公司 | 一种灵活配置的自动作业系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101286215A (zh) | 同时支持人工流和自动流的工作流引擎 | |
Baresi et al. | Service-oriented dynamic software product lines | |
US20080209390A1 (en) | Pluggable model elements | |
CN101873334B (zh) | 一种状态驱动的可执行业务流程执行方法 | |
EP2397977A1 (en) | Activity schemes for support of knowledge-intensive tasks | |
CN104216912A (zh) | 一种无侵入式的业务表单工作流化的实现方法与装置 | |
CN110764752B (zh) | 实现Restful服务图形化服务编排的系统及其方法 | |
CN109240670A (zh) | 模块化的软件开发方法、系统、设备及介质 | |
CN105786603B (zh) | 一种基于分布式的高并发业务处理系统及方法 | |
CN109992354A (zh) | 容器处理方法、装置、主体服务器、系统和存储介质 | |
CN111124636A (zh) | 一种流程编排引擎及其控制方法 | |
CN105404530B (zh) | 一种实现简易部署和使用私有云的系统及方法 | |
CN101557390A (zh) | 一种灵活运用缓存技术来提高系统性能的方法 | |
CN104363303A (zh) | 异步缓存数据同步的方法 | |
CN101136780A (zh) | 获取用户命令信息的方法、系统及用户命令注册的装置 | |
Nikraz et al. | A methodology for the development of multi-agent systems using the JADE platform | |
CN103810258A (zh) | 基于数据仓库的数据汇聚调度方法 | |
CN101458628A (zh) | 一种程序版本管理方法 | |
CA2398814C (en) | System for controlling and monitoring a process | |
CN110908644A (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN110399130A (zh) | 一种基于安卓系统的app换肤方法 | |
CN110956025A (zh) | 一种基于流程模板复用的方法 | |
CN112418796B (zh) | 子流程任务节点激活方法、装置、电子设备及存储介质 | |
CN112380218B (zh) | 一种基于etl进行数据仓库各层数据表汇总的自动触发方法 | |
Mostinckx et al. | Ambient-oriented exception handling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20081015 |