工作流引擎

摘要:
工作流引擎是BOS系统的重要组成部分。在应用程序执行期间,被调用的应用程序将与工作流引擎交换数据。告诉工作流引擎当前的运行状态。当他完成任务时,工作流引擎会得到反馈,并根据流程将任务移交给下一个人,直到整个工作完成。因为下一步是联系客户,所以需要由销售代表完成,而且有多名销售代表。工作流引擎会将任务分配给销售部门的经理。通过管理工具维护工作流。

    工作流引擎是 BOS 系统的一个重要组件。 它可以根据客户具体的业务逻辑,来定义工作流模型。 整个应用程序就根据所定义的流程来运行。 它把应用系统模块和工作流程分开。 当流程发生变化,只需修改流程模型, 具体的应用程序无需修改。
  
  参考wfmc 标准,我们把工作流分成几个模块。
  
  · 流程定义模型
  · 用户端
  · 工作流引擎
  · 建模工具
  · 组织架构
  
  在虚线框中代表工作流的服务器端。 它对于用户是透明的。 用户通过工作流引擎所提供的客户端来对工作流引擎进行操做。 客户端包括建模工具,管理工具和任务列表。 各模块之间的关系如下图
  
   工作流引擎(图一)
  
  工作流的操作可以分为,建模阶段(Process Design&Definition)和运行阶段(Run Time). 运行阶段又可分为工作流引擎端和客户端。
  
  客户首先通过建模工具,建立一套工作流的模型定义(Process definition)。 工作流引擎(Workflow Enactment Service)根据模型所提供的信息,把具体任务交给用户来完成。 用户在登入后,会发现有一项新的任务在他的任务列表中。在他选择执行后,预先设定的应用程序将被激活。在执行应用程序的过程中,所调用的应用程序会和工作流引擎交换数据。告诉工作流引擎目前运行的状态。当他完成任务后,工作流引擎得到反馈,将按流程把任务交给下一个人,直到完成整项工作。
  
   工作流引擎(图二)
  
   我们将通过一个简单的例子,来解释工作流引擎的作用
  工作流引擎(图三)
  上面是一个假想的销售流程图。任何工作流程图都包含起始节点和结束节点。 起始节点可以是单独的一个节点,也可以隐含在一个任务节点中。 在上图中,线索就是一个起始节点。用户得到一个线索后,第一步是输入线索。 因为下一步是和客户联系(contact customer),需要由销售代表来完成, 而销售代表(sales rep)有多个,工作流引擎将把任务分配给销售部的经理。 由销售部经理把任务分配给某个销售代表。 这个销售代表就会在他的任务列表中看到这个任务。 当他联系了客户后,发现这个客户有可能买我们的产品,就把相关信息输入到数据库重。结束了这个环结的工作。 工作流引擎就会把任务传给下一个环节。 如果客户不感兴趣,就转移到结束节点。 此工作流程就结束。
  
  下一个环节是建立销售计划(sales plan),需要市场部经理来做。 因为市场部经理只有一个,就把任务直接分配给市场部经理(marketing manager)。 Marketing manager 做出销售计划后,需要公司的CEO 和CFO来审批。 当两位经理都对此做出审批后,将把信息反馈到 sales manager. 假设CEO 的评审没有通过,销售经理需要修改 sales plan, 再进行审批,直到通过为止。 下一个环节是拜访客户。 如果一切顺利,就可得到定单,整个流程结束。 以上的例子是一个假想的例子, 但它反映了工作流引擎的一些重要功能
  
  1. 用户看到的只是自己的任务列表。 当他完成了这项任务后,由工作流引擎根据流程,把任务分配给下一个环节的负责人。
  2. 每一个任务都由一个角色来完成,由工作流引擎,根据组织架构,决定具体由谁来做。
  3. 有些过程(审批)需要重复进行,直到通过。
  4. 有些过程 (审批)需要所有的前置任务(CEO review, CFO review)都完成,才进入下一个阶段。
  5. 有些过程不需要人来操作,比如,审批节点自动等待 CEO和CFO 都审批完后,把结果反馈到市场部经理。
  
  工作流引擎对于用户来说是透明的,用户通过它的客户端来对它进行操作。 客户通过建模工具来建立模型,通过任务列表来知道自己当前的任务。通过管理工具来对工作流程进行维护。

免责声明:文章转载自《工作流引擎》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇原!struts安全漏洞,由2.3.37版本升级至2.5.22巫妖王之怒牌子综述下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

一个被遗忘的ccflow工作流引擎自定义表单开发模式

定义概述:一个已经做好的表单需要绑定到节点上 , 该文章在驰骋工作流引擎流程引擎设计器中。 自定义表单工作模式:流程控制按钮区域是ccflow来完成,表单区域是放在控制区域下面的框架里,如下图所示。 注意:蓝色边框一下是一个框架,框架里面的界面是一个url,这个就是自定义表单。 应用背景:这种类型是解决我自己已经有了一个成熟稳定的产品或者项目,里面的...

java 实现一套流程管理、流转的思路(伪工作流)

  在做某个管理项目时,被要求实现一套流程管理,比如请假的申请审批流程等,在参考了很多资料,并和同事讨论后,得到了一个自主实现的流程管理。   以下提供我的设计思路,知道了思路,实现起来就简单很多了。   首先我设计了5个类来实现流程的自主设置,主要是对流程的定义和流程流转。    注:这是设计的图,并不是实现 Dictionary:数据字典,不多说,流程...

springcloud Alibaba 微服务 flowable 工作流 自定义表单 vue.js前后分离

功能模块设计方案 1.代码生成器: [正反双向](单表、主表、明细表、树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池druid,安全权限框架 shiro...

主流的三款工作流进行介绍和比较

下面将对目前比较主流的三款工作流进行介绍和比较,然后通过三款流程引擎分别设计一个较典型的流程来给大家分别演示这三款创建流程的过程.这三款工作流程引擎分别是 Windows Workflow Foundation,NetBPM, CCFlow. NetBPM 与 CCFlow 是两款国内知名的开源软件,尤其是ccflow在国内的发展势头强劲。 这个典型的流程...

.net FrameWork各个版本之间的发展[转]

上个星期看到了.NET 4.0框架退休日期逐渐临近文章,发现自己一直在使用NET  FrameWork,身为一个NET程序员,里面大概的区别自己还是知道的,但是自己要说出个所以然来了,发现还是有点力不从心,当时关于这几个版本之间的有很多,目前很多地方都只是写到了4.5,关于4.5.1,4.5.2这两个版本提及的还是非常少的,相对来说,自己写这篇文章也就没...

GIT团队合作探讨之二--Pull Request

pull request是github/bitbucket给开发人员实现便利合作提供的一个feature。他们提供一个用户友好的web界面在进代码之前来讨论这些变更。 简单说,pull request是一种为了开发人员通知team member他们已经完成了一个feature的机制。一旦他们的feature branch ready了,开发人员就通过他们...