资源描述
单击此处编辑母版标题样式,单击编辑母版文本样式,第二级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,精品课件,*,单击此处编辑母版标题样式,单击编辑母版文本样式,第二级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,精品课件,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,精品课件,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,精品课件,*,工作流,深圳市远行科技有限公司,鲁淳,1,精品课件,工作流深圳市远行科技有限公司1精品课件,2,精品课件,2精品课件,3,精品课件,3精品课件,工作流是什么,?,工作流(,Work Flow,)就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的就是工作流。工作流有时解释为可以产生某种结果的一系列任务。即:根据与业务流程相关联的操作和任务的顺序所进行的文档或项目的自动转移。,4,精品课件,工作流是什么?工作流(Work Flow)就是自动运作的业务,什么是流 什么是工作流,工作流在大多数的实际应用中的情况可以这样来简单地描述:在网络、服务器和多台计算机客户端的硬件平台上,业务过程按照预先设定的规则并借助应用程序和人对相关数据的处理而完成。例如,在日常办公中,当撰写好某份报告之后,可能需要将其提交给领导进行审阅或批示;审批意见可能需要汇集并提交给另外一个人,以便对报告进行进一步的修改。这样,可能会形成同一篇文档在多个人之间的顺序或同时传递。对于这样的情况,我们可以使用工作流技术来控制和管理文档在各个计算机之间自动传递,而非手工传递。这就可以称之为工作流。,5,精品课件,什么是流 什么是工作流工作流在大多数的实际应用中的情况可以这,工作流引擎,所谓工作流引擎是指,workflow,作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。例如开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性(模块化和结构化)和弹性(容易根据实际业务逻辑的变化作出程序上的变动,例如决策权的改变、组织结构的变动和由于业务方向的变化产生的全新业务逻辑等等)。,Workflow,引擎解决的就是这个问题:如果应用程序缺乏强大的逻辑层,势必变得容易出错(信息的路由错误、死循环等等)。,就好比一辆汽车,外表做得再漂亮,如果发动机有问题就只是一个摆设。应用系统的弹性就好比引擎转速方面的性能,加速到,100,公里需要,1,个小时(业务流程发生变动需要进行半年的程序修改)还能叫好车吗?引擎动不动就熄火(程序因为逻辑的问题陷入死循环)的车还敢开吗?,6,精品课件,工作流引擎所谓工作流引擎是指workflow作为应用系统的一,工作流与,ERP,等 得区别,EXCEL,可以提高员工画表格的效率、财务软件可以规范财务人员的工作并提高账目查询的效率、,CRM,可以规范客户管理从而使客户资源掌握在公司手中而不是被一部分业务人员把持并提高客户响应时间、,ERP,解决的是如何配置企业资源:使企业的人力资源、财力资源和物资资源能够根据业务的需求实现最大化配置。,workflow,关注的是如何缩短流程闲置时间,从而提高企业的业务处理能力并使企业能够关注于真正对企业有意义的增值业务上。从建立企业神经系统的角度也许更能理解两者的区别。传统软件不能解决工作流的问题,例如,ERP,关注的是企业的资源配置,但不可能解决资源传输过程中的损耗和降低传输(流程)的成本;同样,workflow,也不能完全解决传统管理软件所能解决的问题,例如对生产管理的,MRP,系统所能解决的生产过程控制通过,workflow,很难实现。但一个好的传统软件如果希望能自动化地在整个企业中应用起来,必须有一个强大的逻辑层,用以解决信息传递的逻辑判断和自动流转,这个时候就需要,workflow,的平台。,7,精品课件,工作流与ERP等 得区别EXCEL 可以提高员工画表格的效率,三大主流,我们转入正题,谈这里说的三大主流开源工作流引擎:,Shark,osworkflow,jbpm,。,Shark,的靠山是,Enhydra,。,Enhydra,做过什么呢?多了!从,j2ee,应用服务器,到,o/r mapping,工具,到这个工作流引擎等等。为什么,Shark,的持久层采用,DODS,来实现?就是因为他们是一家人。,Jbpm,的靠山是,jboss,。,Jbpm3,的持久层采用,hibernate3,来实现,也是因为这个原因吧。,Jbpm3,的图形化流程定义已经决定嵌入到,jboss eclipse IDE,中,大家看看,jboss eclipse IDE preview 1.5,版,我们已经可以用插件方式编辑一个,jbpm3,流程定义文件了。,Osworkflow,在开发工作流管理系统时,我就推荐用它的另外一个东西:,webwork2,。笔者主持的开源工作流引擎,AgileFlow,就是基于,ww2+spring+hibernate,架构实现的。,完成本段时说句题外话:现在基本上所有的,J2EE,应用程序服务器都有自己的工作流引擎。,8,精品课件,三大主流我们转入正题,谈这里说的三大主流开源工作流引擎:Sh,动动脑,申请人申请一笔款项时,需要经过上级主管,再上级主管的层层审批,通过之后到财务领取请款,请设计出你的 流程 尽可能的考虑其中各种情况,9,精品课件,动动脑申请人申请一笔款项时,需要经过上级主管,再上级主管的层,成功案例,http:/ 录,第一部分:工作流模型介绍,第二部分:工作流的实现设计,第三部分:实施计划,11,精品课件,目 录第一部分:工作流模型介绍第二部分:工作流的实现设,一、工作流模型介绍,要介绍几种常见工作流模型,以及流程嵌套和整合,1,、任务与活动,2,、流程起点模型,3,、流程激活模型,4,、流程运转模型,5,、流程组合嵌套模型,6,、流程整合模型,7,、流程终止模型,12,精品课件,一、工作流模型介绍要介绍几种常见工作流模型,以及流程嵌套和整,任务与活动,活动(,Activity,)是,WMFC,的标准模型元素,描述的是工作流中的一个逻辑步骤,“A description of a piece of work that forms one logical step within a process”,。活动是描述流程运转的最小单元,一个任务表示的是流程的所需要完成的某一项工作,这项工作可能是一次操作(,Action,)即可完成,也可能是几次操作的组合。,13,精品课件,任务与活动活动(Activity)是WMFC 的标准模型元素,任务与,Block Activity,任务和,Block Activity,非常相似,但并不一样,如图,,task,中的多个,action,没有顺序关系,,Block Activity,中,各个,activity,应该顺序执行,14,精品课件,任务与Block Activity任务和Block Acti,流程起点模型(一),任何一个工作流能够运行,需要条件“起点”来激活,起点也是一种任务节点。这个节点可能会进行一定的操作,可能只涉及一些数据的改变。导致一个流程被激活,15,精品课件,流程起点模型(一)任何一个工作流能够运行,需要条件“起点,流程起点模型(二)单起点模型,16,精品课件,流程起点模型(二)单起点模型16精品课件,流程起点模型(三)多起点模型,1,在同一流程中,存在多个起点。重新申明:起点也是一种任务节点,而不是独立于工作流任务特殊节点。,起点,A,和起点,B,,它们都可以激活流程的运行,而且激活后,流程都会共同指向,Task A,。所以,对于,Task B,来说,其不关心流程是如何激活的,其只关系从,Task A,是否正确的传递来正确的流程数据。,17,精品课件,流程起点模型(三)多起点模型1在同一流程中,存在多个起点。,流程起点模型(四)多起点模型,2,起点,A,激活工作流后,导致流程沿着,Task ATask BTask C,方向流转。而从起点,B,激活工作流后,,Task A,则被跳过。,18,精品课件,流程起点模型(四)多起点模型2起点A 激活工作流后,导致流,流程起点模型(五)多起点模型,3,虽然也存在多个起点,但是基本是按照一个统一流程方向运行的。这是与方式二最大的区别所在。在此,须要再此申明:一个起点(,Start Node,)同时也是一个任务节点(,Task Node,)。,应用:在多个流程之间信息交互的时候,流程,A,发送消息数据,激活流程,B,的运行。但是未必是从流程,B,的默认激活点激活,可能是从流程,B,的中途某个任务激活。,19,精品课件,流程起点模型(五)多起点模型3虽然也存在多个起点,但是基本是,流程激活模型(一)人工激活,大多数的流程激活,都是因为人为的信息数据输入或产生。比如一个订单处理流程,客户提交了订单信息(订单信息数据产生),则激活了订单处理流程的开始。,20,精品课件,流程激活模型(一)人工激活大多数的流程激活,都是因为人为的信,流程激活模型(二)定时或限时激活,在一个特定的时间,因为特定的情况,符合特定的条件,激活某个特定的流程(或任务)。,这种激活方式,在现实中很少单独出现,大多数情况,都因为在某一个流程中,因为在限定的时间内,因某项任务未达到预期的状态,而激活另外的任务或新的处理流程。,例子:订单处理流程中的催办流程。如果到时候没有发货,则激活催办流程,21,精品课件,流程激活模型(二)定时或限时激活在一个特定的时间,因为特定的,流程激活模型(三)外消息激活,大多是在多流程信息交互(或大小流程嵌套)应用中,如下图所示,流程,A,,在结束的时候(在以下的所有图中,将采用红色框图,表示结束节点),会向流程,B,发送,Message,,以激活流程,B,的运行。,22,精品课件,流程激活模型(三)外消息激活大多是在多流程信息交互(或大小流,流程运转模型(一)简单运转模型,按照预定的任务列表,有序的执行,23,精品课件,流程运转模型(一)简单运转模型按照预定的任务列表,有序的执行,流程运转模型(二)自循环模型,同一个任务节点,重复的执行多次。,模式,1,:人为选择,模式,2,:既定规则选择,24,精品课件,流程运转模型(二)自循环模型同一个任务节点,重复的执行多次。,流程运转模型(三)发散运转模型并行,And,模式,在流程运行过程中,因为不同的条件或情况,或者处理的业务需要多部门(多任务)分开处理,而产生了流程分支。,25,精品课件,流程运转模型(三)发散运转模型并行And 模式,在流程运行,流程运转模型(四)发散运转模型异或模型(显式),异或(,XOR,)显式模型,又叫,Exclusive Choice,(独占式选择)。当一个任务处理完后,发现其后面可允许走多个分支流程,但只允许选择其中某一个分支运行。,26,精品课件,流程运转模型(四)发散运转模型异或模型(显式)异或(XOR,流程运转模型(五)发散运转模型异或模型(隐式),隐式和显式的区别不是太大。存在分支,AC,和分支,AD,都满足条件,但最终也依然只能有一个分支被激活。至于哪一个分支被激活,这可能是人为的操作,也可能是某种随机的自动选择。但必须只有一个分支被激活,应用非常少,而且大多数的工作流引擎不支持这种模型,仅支持显式,XOR,模型。,27,精品课件,流程运转模型(五)发散运转模型异或模型(隐式)隐式和显式的,流程运转模型(六)发散运转模型鉴别模型,同前面的“独占式选择”很相似。当任务达到这个鉴别器的时候,鉴别器会根据当前流程所处的状态,对比预先设
展开阅读全文