`
snoopy7713
  • 浏览: 1149313 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

工作流入门

阅读更多

工作流入门

  工作流无疑是一个热门话题,以前的开发中一直不会接触到这个层面,所以一直没有来得及看到。现在由于工作需要开始接触工作流,这里留下一个我学习的过程,提供一些好的资源和一些自己的体会,方便大家学习探讨。

一、为什么使用工作流、工作流这个技术的现状
出于习惯,每当我学习一个技术的时候,必须要知道为什么要学习它,它能给我带来什么好处,了解了这个才能让我决定是否使用,在什么时候使用。另外了解一下这个技术的现状有助于从总体上把握这个技术。对于一个发展阶段的技术和一个成熟的技术对待方式是不一样的。
关于这点,参考这篇文章:http://www.joinwork.net/document/The%20State%20of%20Workflow2.htm
所有我看过的文章中,这篇文章最清晰的说明了我上边的两个问题,而且以问答的方式来写的,适合从头开始的人。
这篇文章的作者 Tom Baeyens (jbpm工作流框架的作者)翻译 dinghong ,感谢他们提供了一个好的文章。
二、工作流框架的选择
由 于开源的流行我们可以有更多的选择,这给我们带来了很多的方便,好处多多不用说了,但也给我们带了了一些麻烦,用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为例来进入工作流的天地。

分享到:
评论

相关推荐

    Activity工作流入门

    Activity 工作流入门 Activity 工作流入门旨在介绍工作流概念、工作流管理系统、Activiti 框架的核心组件和architecture。工作流管理系统(Workflow Management System, WfMS)是一个软件系统,负责定义和管理工作...

    Activiti工作流入门详解教程.doc

    "Activiti工作流入门详解教程" Activiti是一款基于Apache许可的开源BPM(Business Process Management,业务流程管理)框架,由Alfresco软件在2010年5月17日发布。Activiti提供了一个灵活、易扩展的可执行流程语言...

    jBPM工作流入门例程

    工作流入门必经的四个简单例子。 vacate主要说明基本使用。 UserModel说明如何同用户模型相结合。 ForkJoin主要说明Fork结点和Join结点的使用。 countersignature主要说明如何持久化和实现较复杂的task node控制,...

    wwf工作流入门vs2005工作流控件介绍

    《Windows Workflow Foundation (WWF) 入门与VS2005工作流控件解析》 Windows Workflow Foundation (WWF),作为.NET Framework 3.0的重要组成部分,为开发者提供了构建支持工作流的应用程序的编程模型和运行时环境...

    工作流入门jbpm开发指南

    jbPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了全面的业务流程管理和工作流解决方案。对于希望深入了解和应用工作流技术的初学者来说,jbPM是一个理想的学习平台。本指南将带你一...

    jbpm3.2.2工作流入门例子

    jbpm是一款开源的工作流管理系统,它提供了一整套解决方案,用于设计、执行和管理业务流程。jbpm3.2.2是jbpm的一个版本,它在当时提供了许多关键功能,如流程定义、流程实例管理、任务管理和事件处理等。本入门例子...

    activiti工作流入门教程.docx

    Activiti 是一个开源的工作流引擎,它被设计用于在企业应用程序中实现业务流程自动化。这个工作流引擎基于模型驱动的设计,允许开发人员和业务分析师通过简单的图形化工具定义和执行复杂的业务流程。以下是对...

    jpbm工作流入门至熟练

    文档详细易懂,尤其对于初学者很实用,从入门到熟练精通不成问题

    JBPM教程 第一部分、(工作流开发基础-为什么学习工作流)

    工作流开发是软件工程中的一个重要领域,特别是在企业级应用中,它用于自动化和管理复杂的业务流程。JBPM,全称JBoss Business Process Management,是由Red Hat开发的一个开源工作流管理系统,它提供了全面的工作流...

    Activiti 工作流入门到大神

    什么是流程、工作流作用、Activiti背景简介、Activiti流程设计器安装、Activity环境搭建、通过HelloWorld掌握 Activiti操作流程的步奏、常见API使用、流程部署管理(发布流程、查看流程定义、删除流程、查看流程附件)...

    530Flow:静态到动态工作流入门套件

    静态到动态 Wordpress 工作流程介绍530 的修改版 Skyline (530Flow) 可帮助您为网站创建设计系统。 它的主要重点是经过深思熟虑的 CSS 架构,它使您能够开发可重用和可维护的代码库。 此入门工具包包含您将在站点上...

    jbpm工作流程

    - **jbpm工作流入门教程.pdf**:这可能是关于jbpm基础知识和实践操作的指南,包括流程设计、部署、执行等。 - **jb51.net.txt**:可能包含jb51网站上的相关文章链接或教程摘要,jb51.net是一个技术分享平台。 - *...

    JBPM4.4 工作流 入门 例子

    **JBPM4.4工作流入门例子 - HelloWorld** JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案,用于设计、执行和管理业务流程。JBPM4.4是JBPM的一个重要版本,它在4...

    16. Activiti框架.pdf

    工作流入门程序主要包含以下几个部分: - **流程图的基本元素**: - 开始节点:流程开始的地方。 - 任务节点(UserTask):定义了流程中的一个任务,可以设置任务的待办人,待办人可以是固定名称、表达式或程序...

    activi-demo.zip

    【描述】"springBoot+Activiti 工作流入门学习快速入手" 提示我们,这个压缩包是为那些想要学习如何在Spring Boot应用中整合和使用Activiti工作流引擎的人准备的。Activiti是一款开源的企业级工作流和业务流程管理...

    activiti,入门详解

    【Activiti工作流入门详解】 Activiti是一款开源的工作流程引擎,它基于模型驱动的架构,提供了高度可扩展性和灵活性,广泛应用于企业的业务流程自动化。在本文中,我们将深入理解如何入门Activiti,包括配置安装、...

    flowable实战教程.pdf

    1. **工作流入门** - 工作流是管理系统中的工作流程自动化,帮助组织提高效率,减少错误,确保流程合规。 - 三大工作流引擎:Activiti、Jbpm和Flowable,Flowable在Activiti的基础上进行了优化,提供更好的性能和...

    camunda_flow:卡蒙达的第一个开始

    Camunda Flow 是一个强大的开源工作流引擎,它基于 BPMN 2.0 标准,用于自动化业务流程。这个项目名为 "camunda_flow",旨在为初学者提供一系列示例代码,帮助他们快速理解和应用 Camunda 平台。通过这些例子,你...

    BOS入门大礼包资料大纲.xlsx

    3 工作流入门视频 4 审批流入门视频 5 K3 Cloud BOS操作实施篇.docx 6 插件开发环境部署 7 客户化开发规范 8 C#程序设计教程 9 sql脚本基础知识 说明:资料大部分是提供的是文档中心(百度云)的链接,请自行下载...

    电梯门板及附件上料多功能系统sw19-SOLIDWORKS零件图-机械工程图-机械三维3D设计图

    功能模式1 钣金加工中心生产门板出料,由同步带输送线输送到机器人工作站,机器人工作站识别门板,并将封头板捡料放到门板上,并流入下个工位; 功能模式2 钣金加工中心的门板不出料。门板由机器人工作站的门板上料...

Global site tag (gtag.js) - Google Analytics