工作流引擎的设计与实现
07年刚进公司的时候,就接到老大开发工作流引擎的任务。在学校的时候对工作流只是有一个简单的了解和研究,所以压力还是比较大。还好国内的银狐兄对工作流的研究比较深,借鉴了哈他的研究思路,然后看了JBPM,OSWorkflow等开源项目的源码。看了大概10天左右对工作流有了比较深刻的理解。于是就开工了:)
本来打算用开源的项目的,但是JBPM太大了,而且有些东西不适合我们公司产品的需求,而且代码量比较多,所以决定自己开发。现在我只能把这个项目的开发步骤和关键的东西给大家列出来:)
根据WFMC推荐的标准,WF的一般由Definition Execution 和Coordinate With Other Dep组成,在考虑到标准化的问题后,引擎的定义部分用XML实现,所以首先需要做的事情就是定义Definition的Schema,这个Schema大的方向是根据XPDL的标准来做的。将节点分成不同的类型比如:StartNode EndNode TaskNode ForkNode,然后定义Transition(连接不同节点的转向)。
在定义完基本的框架后,需要考虑的事情就是如何尽可能多的实现工作流的PATTERN,目前我们的工作流实现的PATTERN包括:串行、自循环、并行、鉴别式选择、同步聚合、条件聚合、鉴别式聚合等;同时支持流程嵌套模型(子流程)。
如果需要实现更多的Pattern则只需要增加Node的类型和实现更多的规则引擎。我们开发的工作流引擎没有采用大公司的那种工作流规则引擎产品的模式,更多的是采用一种嵌入式模块的方式,我们支持的方式包括BEANSHELL,JNDI等。我们只要把BEANSHELL的代码写好然后上传就OK了。
工作流引擎执行部分最重要的就是以下几个概念:ExecutionContext,Token.Token故名思意,就是标示一条执行路径当前节点的对象,如果有并发分支的话,那么就会出现父子Token的关系,它的主要的功能就是指示当前执行路径的当前执行节点;ExecutionContext表示的是流程执行的上下文,包括了现在流程所在的执行路径,以及创建的任务等等。
只要把上面的两个概念弄清楚了,工作流引擎的开发我觉得就没什么问题了 好了下次再说:)
分享到:
相关推荐
探讨了一种数据库驱动的工作流引擎的实现方案;分析了中心数据库的作用 ,并给出了数据库模型图;从流程分配、路由选择、消息发送及监控管理方面详细分析了工作流引擎的实现机制。
基于OA系统的工作流引擎设计与实现.doc
基于分层有限状态机的工作流引擎设计与实现,方芳,李仁发,工作流引擎是工作流管理系统的核心部分,同时也是驱动流程流动的主要部件。本文深入讨论了怎样运用Java设计模式和分层有限状态机��
轻量级工作流引擎的设计与实现比较全面的讲述了轻量级工作流引擎的设计与实现,对于设计阶段做一个指导作用是个不错的选择。
工作流引擎在实现方法上可以基于不同的软件技术架构,引擎本身应该是与具体业务无关的,但又需要考虑各类应用领域,工作流引擎设计的重点应该是有一定差异的,但无论基于什么架构,无论基于哪个领域,有些原理是相通...
本系统无论前端还是后端,其学习成本明显低于开源工作流引擎及附带流程设计器,能够快速上手前后端实现逻辑,更方便用户快速进行二次开发。本系统前端流程设计器,采用Vue ElementUI + 自研实现,支持可任意托拉拽与...
基于关系数据库的工作流引擎设计.doc 118 KB 介绍一款工作流引擎设计思路.doc 23 KB 开源工作流引擎研究报告.doc 161 KB 乔篷科技股份有限公司工作流引擎.rar 9,134 KB 自定义工作流系统的设计与实现.doc 238 KB
可自管理的分布式工作流引擎的设计与实现.pdf
工作流引擎数据库表设计全文共3页,当前为第1页。工作流引擎数据库表设计全文共3页,当前为第1页。工作流引擎数据库设计 工作流引擎数据库表设计全文共3页,当前为第1页。 工作流引擎数据库表设计全文共3页,当前为...
《基于.Net的工作流引擎的设计与实现》,《基于.Net的工作流引擎的设计与实现》
工作流引擎平台解决方案 把工作流的过程,要实现的结果都比较详细的描述了一下,对工作流的设计有很大的帮助
在当前国外开源工作正流行时,国内的相应企业、个人也注意到了业务走流程审核的重要性,但由于东西方各国家... 本着能了解国外工作流引擎基础上,来增加自已特有的功能,在网上收集信息写了份小小文档。希望对你有用。
详细的自定义工作流系统的设计与实现文档 包括工作流引擎的设计方案 可视化操作的实现。并附有技术难点的提示
基于大多数关键业务均离不开工作流的支持, 采用关系结构的理念来设计工作流引擎, 并详细地给出了相关的框架模型、机构模型、信息模型和控制模型的设计原理以及具体的表示和实现方法。应用该方法大大缩短了基于信息...
系统采用关系结构的理念来设计工作流引擎,给出了用Microsoft Visual Studio 和Microsoft SQL Server 实现系统的方法。论文中利用本工作流引擎构建系统能适应大多数业务流程的扭转,大大缩短常见信息系统的项目开发...
基于.Net的工作流引擎的相关技术 基于.Net的工作流引擎的设计与分析 基于.Net的工作流管理系统的实现