`
z7swf
  • 浏览: 185689 次
社区版块
存档分类
最新评论

OSWorkflow之二——由WorkflowDescriptor而看到的

 
阅读更多

在com.opensymphony.workflow.loader包下,有许多形形色色的Descriptor,他们以AbstractDescriptor为根,遍地开花。

 

图1:

 从上图可以看到AbstractDescriptor的子嗣不是一般的多啊,但不要被他们所吓倒!

 

窥一斑而知全豹

OSWorkflow把定义在XML中的流程,根据DTD文件中定义好的各种XML元素,抽象出了很多种Descriptor,因此我们才得以见到如此多的Descriptor,这里也包括我们之前提到的WorkflowDescriptor,他可是XML流程文件中的根节点,也是最复杂的Descriptor,我们就从他开始。

 

The main workflow element. A workflow includes a set of meta properties that are global, as well as global registers
and trigger functions. It also defines a set of initial actions that are available to kick off the workflow.
The global actions are actions that can be executed from any step. They are available to all steps.
common-actions are actions that can be reused in steps. They are specified here, and a step can optionally
refer to a common-action to make it available. Note that all actions id's must be globally unique.

A workflow consists of a number of steps, split definitions that determine the states to move to within a split,
and join definitions to determine the conditions and steps for a join.

 

这是workflow_2_8.dtd文件开头的一段话,workflow作为XML流程文件的根节点,他当中包含有许多全局的属性以及各种registers、actions、functions等等,让我们看他的定义:

 

<!ELEMENT workflow (meta*, registers?, trigger-functions?, global-conditions?, initial-actions, global-actions?, common-actions?, steps, splits?, joins?)>

 

从以上的元素定义可以看出,除了initial-actions、steps之外,其他的都不是必须的。

 

图2:


看WorkflowDescriptor的类型定义,基本上与DTD文件中的定义是一一对应的。其实所有AbstractDescriptor的子嗣都和WorkflowDescriptor一样,都是这样一种设计思路。AbstractDescriptor中的parent说明了任何一个AbstractDescriptor的子类,都可以通过getParent()方法获得他的父一级的AbstractDescriptor实例,而WorkflowDescriptor类的那些get*相关的方法,返回的也都是相关Descriptor对象的实例。

 

WorkflowDescriptor内部同时给出了Validatable接口和XMLizable接口的实现,前者是关于XML格式相关验证,后者则是以XML的形式通过PrintWriter给print出来。

  • 大小: 44.4 KB
  • 大小: 76 KB
分享到:
评论

相关推荐

    OSWorkflow之三——workflow的推动者Action

    在这个主题“OSWorkflow之三——workflow的推动者Action”中,我们将深入理解如何使用Action来驱动workflow的执行,以及它在工作流中的核心作用。 Action在OSWorkflow中扮演着至关重要的角色,它是流程状态转换的...

    OSWorkflow——请假审批系统(代码全,数据库mysql)

    "OSWorkflow——请假审批系统(代码全,数据库mysql)" 指的是一个基于OSWorkflow工作流引擎实现的请假审批系统,该系统完整地提供了代码和数据库脚本,且数据库部分使用MySQL作为后台存储。 **描述解析:** 虽然描述...

    OSWorkflow

    OSWorkflow

    OSWorkflow的开发指导与指南.pdf

    从文件内容中我们可以看到,该文件主要涉及OSWorkflow的版本更新、组件、存储方式以及工作流的一些核心概念。下面将围绕OSWorkflow开发指导与指南所包含的关键知识点进行详细说明: 1. OSWorkflow的版本更新 - ...

    OSWorkFlow

    OSWorkFlow是一个基于Java的工作流引擎,用于在企业级应用中实现复杂的业务流程自动化。它提供了灵活的流程定义和执行模型,使得开发者可以方便地设计、实施和管理各种工作流。下面将详细介绍OSWorkFlow的核心概念、...

    osworkflow中文入门指南,osworkflow+hibernate+spring集成配置,osworkflow-2.8.0.jar

    **OSWorkflow中文版帮助文档错误纠正.doc** 可能是一个文档,记录了原英文版帮助文档的翻译错误或不准确之处,对中文用户来说是个宝贵的参考,可以避免因误解文档而产生的问题。 **OSWorkflow扩展讲解.doc** 可能...

    OSWorkflow中文手册 OSWorkflow中文手册

    OSWorkflow是一款开源的工作流引擎,主要用于管理应用程序中的复杂业务流程。这款工具提供了强大的工作流建模、执行和跟踪功能,让开发者能够灵活地定义和控制应用程序的流程逻辑。本手册是OSWorkflow的中文版,旨在...

    osworkflow指导文档 + 源码

    osWorkflow 是由 James Helzer 开发的,其设计目标是为 Java 应用程序提供一个轻量级、易于使用的流程管理框架。osWorkflow 支持动态流程更改、事件驱动的流程控制以及多种持久化机制,如 JNDI、XML 文件和数据库...

    osworkflow2.8.pdf

    - **核心库**:OSWorkflow 的核心功能由 `OSWorkflow-2.8.0.jar` 提供,这是运行 OSWorkflow 所必需的基础组件。 - **日志支持**:使用 `commons-logging.jar` 进行日志记录。 - **属性集支持**:使用 `propertyset-...

    osworkflow

    **osWorkflow 概述** osWorkflow 是一个开源的工作流管理系统,专为 Java 应用程序设计,用于处理复杂的业务流程。这个系统的核心功能是管理、跟踪和执行一系列步骤,这些步骤构成了一个工作流程。osWorkflow 提供...

    《OSWorkflow开发指南》电子版

    OSWorkflow是由OpenSymphony组织开发的一款轻量级工作流引擎,适用于中小企业级别的应用系统。随着业务系统的复杂度增加,状态管理和流程控制的需求日益凸显,传统的硬编码方式无法满足高效、灵活的工作流管理需求。...

    osworkflow-2.8.0.zip

    `src`目录包含osWorkflow的源代码,对于想要深入了解osWorkflow工作原理或者进行二次开发的开发者来说非常有价值。通过查看源代码,可以学习到osWorkflow内部如何处理工作流的各个阶段,以及如何实现复杂的流程控制...

    Osworkflow 入门级例子

    总结一下,Osworkflow2.8 工作流是一个强大而灵活的工具,它简化了业务流程的管理,让开发者可以专注于业务逻辑,而不是流程的细节。通过学习这个入门级的例子,你可以掌握如何定义流程、启动流程实例、处理任务,...

    osworkflow学习笔记

    通过osworkflow项目的学习和实践,总结出的一套osworkflow工作流引擎的学习笔记,供需要使用osworkflow系统的同学们借鉴,谢谢!

    OSWorkflow源码及电子书

    OSWorkflow,全称为OpenSymphony Workflow,是一款轻量级、高度灵活的开源工作流引擎,专为满足各类组织和企业的工作流程管理需求而设计。它提供了丰富的API和配置选项,使得开发者可以轻松地将工作流集成到自己的...

    osworkflow_bundle2

    实例的创建、状态变迁和结束都是由 OSWorkflow 引擎管理。 3. **活动与步骤**:工作流中的每个任务被称为一个“活动”或“步骤”,可以有多个并发或顺序的步骤组成一个完整的流程。 4. **参与者与权限**:...

    工作流 osworkflow 例子和原理

    OSWorkflow的强大之处还在于其可扩展性。它支持动态插入和删除步骤,这意味着在流程运行时可以进行调整,适应不断变化的业务需求。此外,OSWorkflow与各种应用程序集成良好,可以轻松地与Spring、Hibernate等框架...

    OsWorkflow工作流实例

    OsWorkflow,全称为OpenSymphony Workflow,是由OpenSymphony团队开发的。它支持复杂的流程定义,包括分支、循环、条件判断等,并允许在运行时动态修改流程。这个工作流实例是作者基于OsWorkflow实现的,已经过测试...

Global site tag (gtag.js) - Google Analytics