快速业务通道

Fire Workflow源码分析——(基本组成)(1) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

Fire Workflow源码分析——(基本组成)(1)

时间:2011-10-28 博客园 Leshem

Fire Workflow是最近兴起的国内比较火的开源工作流引擎,本人从发现它、应用它到解读它,感觉很 有前途。本开源项目有个谦逊的leader——非也,有个稳定良好的团队,我相信只要坚持,它的发展是长 远和美好的。

FireWorkflow的源代码主要 包含两个部分:FireflowEngine和FireflowModel,其中FireflowEngine 主要是一些工作流运行时的服务,如事件处理、条件判断、数据持久化、工作流委派等等服务和操作,另 外还预留了一些扩展接口。FireflowModel主要是一些流程定义的基本组建,流程定义的解析服务以及序 列化服务等,另外还提供了对资源和参与者的接口。

先开始讲FireflowModel这个部分中的包org.fireflow.model,由于代码没有全部看完,因此先说一些 包和类的基本构成,希望对大家有帮助。这是整个包的类图。

下面开始对每个部分进行分析:

IWFElement:工作流元素的抽象接口

Fire Workflow源码分析——(基本组成)(1)(2)

时间:2011-10-28 博客园 Leshem

getSn(), setSn(): 返回和设置元素的序列号,系统自动处理,开发者无需关心。

getId():返回工作流元素的Id, 工作流元素的Id采用“父Id.自身Name”的方式组织。

getName(), SetName(): 返回和设置工作流元素的名称。

getDisplayName(), setDisplayName(): 返回和设置工作流元素的显示名称。

getDescription(), setDescription(): 返回和设置工作流元素的描述。

getParent(), setParent(): 返回和设置父节点。

getEventListeners(): 返回事件监听器列表。

getExtendedAttributes(): 返回扩展属性Map。

AbstractWFElement:流程元素抽象类。

实现了IWFElement中的方法,并重写了hashCode()和toString()方法。

Task:工作流任务。

Fire Workflow源码分析——(基本组成)(1)(3)

时间:2011-10-28 博客园 Leshem

前四个为工作流类型:

TOOL:TOOL类型,即工具类型任务,该任务自动调用java代码完成特定的工作。

SUBFLOW:SUBFLOW类型,即子流程任务。

FORM:FORM类型,最常见的一类任务,代表该任务需要操作员填写相关的表单。

DUMMY:DUMMY类型,该类型暂时没有用到,保留。

接下来三个是任务分配指示:

REDO:重做类型。对于Tool类型和Subflow类型的task会重新执行一遍,对于Form类型的Task,重新执 行一遍,且将该任务实例分配给最近一次完成同一任务的操作员。

SKIP:跳过忽略类型。循环的情况下该任务将被忽略,即在流程实例的生命周期里,仅执行一遍。

NONE:无类型。对于Tool类型和Subflow类型的task会重新执行一遍,和REDO效果一样的。对于Form类 型的Task,重新执行一遍,且工作流引擎仍然调用Performer属性的AssignmentHandler分配任务。

其他变量:

type: 任务类型,取值为FORM,TOOL,SUBFLOW,DUMMY(保留),缺省值为FORM

duration: 自定义类型,任务执行的时限,可查看duration类。

priority: 任务优先级别(1.0版本中暂未使用)。

loopStrategy:循环情况下任务执行策略,取值为REDO、SKIP和NONE。

taskInstanceCreator:任务实例创建器。如果没有设置,则使用所在流程的全局任务实例创建器。

taskInstanceRunner:任务实例运行器,如果没有设置,则使用所在流程的全局的任务实例运行器。

taskInstanceCompletionEvaluator:任务实例的终结评价器,用于告诉引擎,该实例是否可以结束。 如果没有设置,则使用所在流程的全局的任务实例终结评价器。

WorkflowProcess:业务流程,是流程描述的顶层元素。

Fire Workflow源码分析——(基本组成)(1)(4)

时间:2011-10-28 博客园 Leshem

dataFields:流

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号