`
wgj830823
  • 浏览: 51227 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

osworkflow的代码结构

阅读更多
转载请说明出处。该文档的版权属于http://zstzah.blog.bokee.net
 
首先来看看它的包的静态结构,
在workflow包中我们发现了很多内容,光从名字上来看,就很一目了然。我将对最初常用的几个包进行阅读,后续在用到更多的功能时,补充该文档。该文档原始地址
最早主要会提到的是basic、config、loader这三个包中的部分类,这三个包对于osworkflow的初始化非常重要。其中也会提到spi中的几个类,对于持久化操作的封装将使用这个包内的东西。
1、 basic 这个包中有两个类,BasicWorkflow,BasicWorkflowContext。如下我们来看看这两个类的继承体系:下面首先是workflow控制流程对象的继承体系 
再来看看BasicWorkflowContext的继承体系:
 
 
 
 
这个包其实从名字上来看非常的明了,也就是我们从使用osworkflow的角度来看,一个流程实例的创建,我们可以使用的基本对象是BasicWorkflow,而我们同时也使用的BasicWorkflowContext这个对象来完成保存流程请求的用户的基本功能。
2、 config 这个包完成的工作就像他的名字一样,基本的两个配置类在这个包中:DefaultConfiguration、SpringConfiguration。我们来看看这个包的基本结构:
 
DefaultConfiguration这个类,完成了基本的配置文件的载入工作,包括osworkflow.xml(存放持久层配置以及流程工厂配置的文件)以及workflows.xml(存放流程模型资源的配置文件)的解析和映射。
我们来看看它的几个实例字段:
//流程工厂类,通常被配置到osworkflow.xml文件中,在初始化的时候会去寻找是不是配置了别的工厂,如果配置了,将替换这个工厂的引用
    private AbstractWorkflowFactory factory = new URLWorkflowFactory();
 
//持久化信息的map,从配置文件中读出来,存放到这个map中
    private Map persistenceArgs = new HashMap();
 
    //完成持久化信息的各种工作的类全路径
private String persistenceClass;
 
//这个引用本身是一个接口,它将在初始化发生的时候,赋予它的子类实现,这个接口在类中直接被实例化成WorkflowStore这接口的实现类。具体使用什么实现类将在配置文件中配置。
    private transient WorkflowStore store = null;
       //这个是配置是否完成的标志字段,这个字段在load方法完成的时候,被设置为true
    private boolean initialized;
 
SpringConfiguration这个类为和Spring的整合提供了支持,目前还没有对Spring整合进行分析,在这里暂时不进行分析,将在以后补充。
3、 loader 这个包,这个包中有大量的Descriptor,这些个描述符对象,记录了一个流程实例的步骤、动作、状态、名称等信息。由于这个类图过分庞大,因此不在这里出图例。这个类中也有一些关键的流程模型加载的工厂类,完成流程模型信息的初始化。我们在实际的应用中,只使用到了XMLWorkflowFactory,那么我们的流程配置文件自然也就使用了xml格式,在AbstractWorkflow中,大量的调用到了这个类的接口,来获取模型对象。这个类的详细分析,将放到以后的文档中。这里只要明白这个类是保存里流程模型对象的工厂,也就对模型进行一些操作,比如删除和保存一个流程模型。
4、 spi 这个包里面的东西也很多,主要我们会提到的是记录流程实例状态的对象、持久化真正实现的方式。先来看看实例状态对象的类图:
SimpleWorkflowEntry这个类,经常会用到,在流程启动和运行过程中,我们通常都使用这个类来标识流程实例的所对应的模型和实例状态。
5、还有就是真正操作持久类的对象Store
这里只把实际操作流程数据库的jdbc实现类图画出来。创建流程实例对象到数据库,操作流程实例相关的很多数据库数据。
分享到:
评论

相关推荐

    OSWorkflow

    - **Java开发者**:对于那些希望通过开源工具提升业务流程自动化水平的Java开发者来说,这本书提供了实用的指导和丰富的代码示例。 - **系统架构师**:系统架构师可以从中学习到如何有效地将OSWorkflow集成到现有...

    OsWorkflow工作流实例

    首先,我们需要理解OsWorkflow的基本结构。工作流定义通常是一个XML文件,其中包含了流程的所有步骤和它们之间的转移规则。例如,一个简单的请假申请流程可能包含"提交申请"、"经理审批"和"人事确认"等步骤。...

    OSWorkflow2.8扩展源代码升级(修改)版

    这个"OSWorkflow2.8扩展源代码升级(修改)版"很可能包含对原版OSWorkflow 2.8的改进和增强,使得它更适合特定的项目需求或者优化了某些功能。源代码的升级通常涉及到错误修复、新功能添加、性能优化等方面。 首先,...

    查询osworkflow的历史记录代码

    在"viewHistory.jsp"这个文件中,可能包含了展示历史记录的HTML结构和JSP脚本。以下是一个简化的示例: ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <title>OSWorkflow历史记录查询 ...

    目前osworkflow最新最全的资料合集

    通过阅读这份文档,开发者可以了解到osworkflow的核心功能、类库结构以及如何在项目中集成和使用它。 2. **OSWorkflow: A Guide for Java Developers and Architects.pdf**: 这本书可能是针对Java开发者和架构师的...

    OSWorkflow中文手册 2.8

    为了更好地理解如何使用OSWorkflow,可以参考官方提供的示例代码。这些示例通常会涵盖从环境搭建到流程设计的完整过程。通过运行示例,可以快速掌握OSWorkflow的基本用法。 - **加载示例工程**:将示例工程导入到...

    OSworkflow中文手册和用户指南

    7. **OSWorkflow-Opendoc.pdf** 可能包含了更深入的技术细节、示例代码和最佳实践,帮助开发者更深入地理解OSWorkflow的内部机制和优化技巧。 总的来说,"OSworkflow中文手册和用户指南"为开发者提供了一套全面的...

    OSWorkflow工作流程源码(JAVA/JSP)

    - **src**: 源代码目录,包含了OSWorkflow的Java源文件,开发者可以通过阅读源码来深入理解其工作原理。 - **lib**: 依赖库目录,包含了OSWorkflow运行所需的第三方库。 ### 4. 开发实践 为了利用OSWorkflow开发...

    osworkflow配置及演示程序.rar

    7. **示例代码**:除了文档,可能还有Java源代码示例,展示了如何在实际项目中调用OSWorkflow的功能,例如创建新实例、获取当前任务、提交决策等。 8. **数据库结构**:为了持久化工作流状态,OSWorkflow需要与...

    osworkflow.7z

    2. **Excel解析**:在处理大量结构化数据时,Excel是一个常见的格式。Java提供了多种库来解析Excel文件,如Apache POI和JExcelAPI。Apache POI是一个开源项目,能够读写Microsoft Office格式的文件,包括Excel。通过...

    画流程图的例子(源码)OsWorkFlow.rar

    首先,你需要定义一个XML文件,该文件描述了流程的结构。然后,通过OsWorkFlow提供的API,你可以实例化工作流引擎,加载XML配置,启动一个新的流程实例。在这个过程中,OsWorkFlow会根据配置文件自动创建任务节点,...

    OSWorkflow-2.8.0

    5. **源代码**:可能包含了OSWorkflow的部分或全部源代码,这对于深入理解其工作原理和进行二次开发非常有帮助。 部署OSWorkflow到Tomcat通常涉及以下步骤: 1. **解压文件**:首先,你需要将osworkflow-2.8.0...

    osworkflow+mysql例子(该例子有问题,请勿下载)

    要将 OSWorkflow 集成到 MySQL 中,首先需要在数据库中创建相应的表结构,这些表通常包括工作流实例表、步骤表、状态转移表等。然后,你需要配置 OSWorkflow 的数据库连接信息,使其能够正确地与 MySQL 进行通信。 ...

    osworkflow成功案例后的总结和升级方案

    标签“源码”和“工具”提示了这篇内容可能深入到osworkflow的源代码层面,探讨了其内部工作原理,或者提供了自定义和扩展osworkflow的方法。同时,它也可能是关于如何利用osworkflow作为工具来提升业务流程效率的...

    OSWorkflow之三——workflow的推动者Action

    workflow_2_8.dtd文件是OSWorkflow的工作流定义文件,它使用DTD(Document Type Definition)格式来描述整个流程的结构、步骤、条件和动作。这个文件包含了流程的所有元数据,比如每个步骤的名称、参与者、可执行的...

    OSWorkFlow 工作流系统设计知识的详细讲解

    1. **工作流模型**(Workflow Model):是整个工作流系统的基石,定义了流程的结构、逻辑以及各个步骤之间的关系。 2. **实例**(Instance):每个启动的工作流都称为一个实例,它是工作流模型的一个具体实现。 3. *...

    osworkflow 请假系统源码

    **osworkflow 框架详解** osworkflow,全称为OpenSymphony Workflow,是一个开源的工作流管理系统,...这个示例代码提供了实践osworkflow的一个具体场景,对于学习和理解osworkflow的工作原理和应用具有很高的价值。

    OSWorkflow开发指南

    - **OSUser现有例子中的bug**:某些示例代码中可能存在未处理异常或逻辑错误。 #### Provider的作用 Provider在OSWorkflow中主要负责提供数据和行为的支持。通常情况下,每个步骤都会有一个对应的Provider来处理...

    osworkflow-chinese-manual.rar_manual_osworkflow

    osWorkflow-chinese-manual.pdf这份文档是osWorkflow学习者的宝贵资料,它不仅涵盖了基本概念和原理,还提供了大量实例和代码示例,帮助开发者快速上手并熟练掌握osWorkflow的使用。而www.pudn.com.txt可能是下载...

Global site tag (gtag.js) - Google Analytics