Fire Workflow源码分析——(基本组成)(1) - 编程入门网
Fire Workflow源码分析——(基本组成)(1)时间:2011-10-28 博客园 LeshemFire Workflow是最近兴起的国内比较火的开源工作流引擎,本人从发现它、应用它到解读它,感觉很 有前途。本开源项目有个谦逊的leader——非也,有个稳定良好的团队,我相信只要坚持,它的发展是长 远和美好的。 FireWorkflow的源代码主要 包含两个部分:FireflowEngine和FireflowModel,其中FireflowEngine 主要是一些工作流运行时的服务,如事件处理、条件判断、数据持久化、工作流委派等等服务和操作,另 外还预留了一些扩展接口。FireflowModel主要是一些流程定义的基本组建,流程定义的解析服务以及序 列化服务等,另外还提供了对资源和参与者的接口。 先开始讲FireflowModel这个部分中的包org.fireflow.model,由于代码没有全部看完,因此先说一些 包和类的基本构成,希望对大家有帮助。这是整个包的类图。 下面开始对每个部分进行分析: IWFElement:工作流元素的抽象接口 Fire Workflow源码分析——(基本组成)(1)(2)时间:2011-10-28 博客园 LeshemgetSn(), 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 博客园 LeshemdataFields:流 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |