一、工作流框架的选择
由于开源的流行我们可以有更多的选择,这给我们带来了很多的方便,好处多多不用说了,但也给我们带了了一些麻烦,用Java 的人都了解,百家争鸣让人眼花缭乱,一个重要的事情是选择,哪一个适合自己,或者说你更喜欢哪一个。选择也是一个难题。选择的好能节省很多时间,少走弯路。
在这个问题上我没有选择,因为我不是这个方面的主要负责人,框架的选择已经定下来了,OSWorkFlow.这对我也许是个好消息,因为我不需要再在大量的框架中去选择,只需要专一于一个,省去大量的时间。
三、OSWorkFlow主要优势
OSWorkflow 给你绝对的灵活性。OSWorkflow 被认为是一种“低级别”工作流实现。与其他工作流系统能用图标表现“Loops(回路)”和“Conditions(条件)”相比,OSWorkflow 只是手工“编码(Coded)”来实现的。但这并不能说实际的代码是需要完全手工编码的,脚本语言能胜任这种情形。OSWorkflow 不希望一个非技术用户修改工作流程,虽然一些其他工作流系统提供了简单的 GUI 用于工作流编辑,但像这样改变工作流,通常会破坏这些应用。所以,进行工作流调整的最佳人选是开发人员,他们知道该怎么改变。不过,在最新的版本中,OSWorkflow 也提供了 GUI 设计器来协助工作流的编辑。
OSWorkflow 基于有限状态机概念。每个 state 由 step ID 和 status 联合表现(可简单理解为 step 及其 status 表示有限状态机的 state)。一个 state 到另一 state 的 transition 依赖于 action 的发生,在工作流生命期内有至少一个或多个活动的 state。这些简单概念展现了 OSWorkflow 引擎的核心思想,并允许一个简单 XML 文件解释工作流业务流程。
上边这段话是从OSWorkFlow的教程中得到的,总结一下,OSWorkFlow是基于xml手工配置的,它特点是灵活,它认为工作流的调整应该是程序员的事情。
四、OSWorkFlow核心概念
步骤(Step)
一个 Step 描述的是工作流所处的位置。可能从一个 Step Transtion(流转)到另外一个 Step,或者也可以在同一个 Step 内流转(因为 Step 可以通 Status 来细分,形成多个State)。一个流程里面可以多个Step。
状态(Status)
工作流 Status 是用来描述工作流程中具体Step(步骤)状态的字符串。OSWorkflow 的有 Underway(进行中)、Queued(等候处理中)、Finished(完成)三种 Status。一个实际State(状态)真正是由两部分组成:State = (Step + Status) 。
流转(Transtion)
一个State到另一个State的转移。
动作(Action)
Action 触发了发生在 Step 内或 Step 间的流转,或者说是基于 State 的流转。一个 step 里面可以有多个Action。Action 和Step 之间的关系是,Step 说明“在哪里”,Action 说明“去哪里”。 一个 Action 典型地由两部分组成:可以执行此Action(动作)的
Condition(条件),以及执行此动作后的 Result(结果)。
条件(Condition)
类似于逻辑判断,可包含“AND”和“OR”逻辑。比如一个请假流程中的“本部门审批阶段”,该阶段利用“AND”逻辑,判断流程状态是否为等候处理中,以及审批者是否为本部门主管。
结果(Result)
Result 代表执行Action(动作)后的结果,指向新的 Step 及其 Step Status,也可能进入 Split 或者 Join。Result 分为两种, Contidional-Result (有条件结果),只有条件为真时才使用该结果,和 Unconditional-Result(无条件结果),当条件不满足或没有条件时使用该结果。
分离/连接(Split/Join)
流程的切分和融合。很简单的概念,Split 可以提供多个 Result(结果);Join 则判断多个 Current Step 的态提供一个 Result(结果)。
好了,到这里,工作流的一个概貌是出来了。在下边的文章中会以OSWorkFlow为例来进入工作流的天地。
分享到:
相关推荐
OSWorkFlow是一款强大的工作流引擎,它主要用于管理应用程序中的业务流程。这个压缩包包含了两份重要的资源:《osworkflow中文手册.pdf》和《OSWorkFlow入门指南.pdf》,都是帮助开发者理解和使用OSWorkFlow的重要...
OsWorkflow是一款开源的工作流引擎,它为应用程序提供了一种灵活且可扩展的方式来管理业务流程。在本实例中,我们将深入探讨OsWorkflow的核心概念、主要功能以及如何创建和测试一个工作流实例。 工作流引擎是软件...
### OSWorkFlow 工作流系统设计知识的详细讲解 #### 概述 本文档将对OSWorkFlow工作流系统的设计知识进行详细讲解。OSWorkFlow是一个开源的工作流引擎,适用于构建灵活、高效的企业级应用。它提供了一套完整的解决...
- osworkflow.xml是OSWorkflow的配置文件,它描述了工作流的结构、步骤以及执行动作的条件和逻辑。 - 文件中可能还涉及了配置文件中各个元素的作用以及如何修改这些配置来满足特定的工作流需求。 8. 工作流操作 ...
OSWorkflow开发指南[汇编].pdf
OSWorkflow 是一个强大的工作流引擎,它主要用于管理应用程序中的复杂业务流程。在这个“osworkflow会议室使用申请DEMO”中,我们可以深入理解如何利用OSWorkflow来实现一个简单的会议室使用申请流程。这个DEMO将...
**工作流技术与OSWorkflow详解** 工作流(Workflow)是一种自动化业务流程的技术,它通过定义、执行和管理工作任务的流转来提高企业的效率和灵活性。在信息化时代,工作流管理系统(Workflow Management System, ...
OSWorkflow 是一个强大的工作流引擎,它允许开发者在应用程序中实现复杂的业务流程。在这个主题中,我们将深入探讨如何创建 PNG 图片来表示工作流,并利用这些图片生成对应的 lyt.xml 文件,这是 OSWorkflow 中用于...
总的来说,OSWorkflow 是一个强大的工作流引擎,它提供了一种声明式的方式来定义和管理业务流程。通过学习和熟练掌握 OSWorkflow 的概念,如步骤、动作、状态和流程定义描述符,开发者能够构建灵活、可扩展的流程...
**工作流技术与OSWorkflow详解** 工作流(Workflow)是一种自动化业务流程的技术,它通过定义、执行和管理工作任务的流转,实现企业业务流程的规范化和自动化。在IT领域,工作流系统广泛应用于企业管理、项目协作、...
《osworkflow-2.8.0-example.war:工作流引擎的实战应用》 osworkflow-2.8.0-example.war 是一个基于OSWorkflow框架的示例应用,它为开发者提供了一个直观的理解和实践OSWorkflow工作流程引擎的机会。这个压缩包...
OSWorkflow(OpenSymphony Workflow)是一个开源的工作流引擎,它提供了一种灵活的方式来设计、实施和管理业务流程。本篇文章将深入探讨OSWorkflow的工作原理及其应用实例。 OSWorkflow的核心概念包括工作流定义、...
OSWorkflow 是一个开源的工作流引擎,专门用于实现这种状态机模型。 OSWorkflow 提供了一个强大的框架,允许开发者在应用程序中轻松地管理和控制工作流程。它的核心功能包括: 1. **状态管理**:OSWorkflow 支持...
OSWorkflow 是一个强大的工作流引擎,它为Java应用程序提供了灵活的工作流管理能力。这个开发指南和中文手册将帮助开发者深入理解和有效地使用OSWorkflow。在本文中,我们将详细探讨OSWorkflow的核心概念、功能特性...
2. **OSWorkflow概述**:深入讲解了OSWorkflow的工作原理、特性以及与其他工作流引擎的区别。 3. **安装与配置**:详细指导如何在不同的环境中安装和配置OSWorkflow。 4. **工作流设计与建模**:提供了创建工作流...
OSWorkflow(Open Source Workflow)是一个开源的工作流管理系统,它允许开发者在Java应用程序中实现复杂的业务流程。以下是对该压缩包中可能包含的内容的详细解释: 1. **OSWorkflow介绍**:OSWorkflow提供了一个...
总之,OSWorkflow入门指南的目标是引导开发者了解工作流的基本概念,学会如何创建工作流描述符,以及如何利用OSWorkflow框架来构建和测试工作流。通过学习这个入门指南,开发者将能够深入理解OSWorkflow框架,掌握其...
这个压缩包"osworkflow-developer-guide.rar_OSWorkflow ebooks_OsWorkFlow.rar_"包含了关于OSWorkflow的开发者指南和相关资源,非常适合那些想要深入理解并使用OSWorkflow进行开发的人。 **OSWorkflow 概述** ...
- 定义配置文件:主要是编写`osworkflow.xml`、`workflows.xml`以及具体的工作流XML文件,如`helloworld.xml`,定义工作流的生命周期和行为。 - 创建入门示例:通常从创建一个简单的流程开始,如创建一个具有启动...