




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工作流 深圳市远行科技有限公司鲁淳 1 2 3 工作流是什么 工作流 WorkFlow 就是自动运作的业务过程部分或整体 表现为参与者对文件 信息或任务按照规程采取行动 并令其在参与者之间传递 简单地说 工作流就是一系列相互衔接 自动进行的业务活动或任务 我们可以将整个业务过程看作是一条河 其中流过的就是工作流 工作流有时解释为可以产生某种结果的一系列任务 即 根据与业务流程相关联的操作和任务的顺序所进行的文档或项目的自动转移 4 什么是流什么是工作流 工作流在大多数的实际应用中的情况可以这样来简单地描述 在网络 服务器和多台计算机客户端的硬件平台上 业务过程按照预先设定的规则并借助应用程序和人对相关数据的处理而完成 例如 在日常办公中 当撰写好某份报告之后 可能需要将其提交给领导进行审阅或批示 审批意见可能需要汇集并提交给另外一个人 以便对报告进行进一步的修改 这样 可能会形成同一篇文档在多个人之间的顺序或同时传递 对于这样的情况 我们可以使用工作流技术来控制和管理文档在各个计算机之间自动传递 而非手工传递 这就可以称之为工作流 5 工作流引擎 所谓工作流引擎是指workflow作为应用系统的一部分 并为之提供对各应用系统有决定作用的根据角色 分工和条件的不同决定信息传递路由 内容等级等核心解决方案 例如开发一个系统最关键的部分不是系统的界面 也不是和数据库之间的信息交换 而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性 易维护性 模块化和结构化 和弹性 容易根据实际业务逻辑的变化作出程序上的变动 例如决策权的改变 组织结构的变动和由于业务方向的变化产生的全新业务逻辑等等 Workflow引擎解决的就是这个问题 如果应用程序缺乏强大的逻辑层 势必变得容易出错 信息的路由错误 死循环等等 就好比一辆汽车 外表做得再漂亮 如果发动机有问题就只是一个摆设 应用系统的弹性就好比引擎转速方面的性能 加速到100公里需要1个小时 业务流程发生变动需要进行半年的程序修改 还能叫好车吗 引擎动不动就熄火 程序因为逻辑的问题陷入死循环 的车还敢开吗 6 工作流与ERP等得区别 EXCEL可以提高员工画表格的效率 财务软件可以规范财务人员的工作并提高账目查询的效率 CRM可以规范客户管理从而使客户资源掌握在公司手中而不是被一部分业务人员把持并提高客户响应时间 ERP解决的是如何配置企业资源 使企业的人力资源 财力资源和物资资源能够根据业务的需求实现最大化配置 workflow关注的是如何缩短流程闲置时间 从而提高企业的业务处理能力并使企业能够关注于真正对企业有意义的增值业务上 从建立企业神经系统的角度也许更能理解两者的区别 传统软件不能解决工作流的问题 例如ERP关注的是企业的资源配置 但不可能解决资源传输过程中的损耗和降低传输 流程 的成本 同样workflow也不能完全解决传统管理软件所能解决的问题 例如对生产管理的MRP系统所能解决的生产过程控制通过workflow很难实现 但一个好的传统软件如果希望能自动化地在整个企业中应用起来 必须有一个强大的逻辑层 用以解决信息传递的逻辑判断和自动流转 这个时候就需要workflow的平台 7 三大主流 我们转入正题 谈这里说的三大主流开源工作流引擎 Shark osworkflow jbpm Shark的靠山是Enhydra Enhydra做过什么呢 多了 从j2ee应用服务器 到o rmapping工具 到这个工作流引擎等等 为什么Shark的持久层采用DODS来实现 就是因为他们是一家人 Jbpm的靠山是jboss Jbpm3的持久层采用hibernate3来实现 也是因为这个原因吧 Jbpm3的图形化流程定义已经决定嵌入到jbosseclipseIDE中 大家看看jbosseclipseIDEpreview1 5版 我们已经可以用插件方式编辑一个jbpm3流程定义文件了 Osworkflow在开发工作流管理系统时 我就推荐用它的另外一个东西 webwork2 笔者主持的开源工作流引擎AgileFlow就是基于ww2 spring hibernate架构实现的 完成本段时说句题外话 现在基本上所有的J2EE应用程序服务器都有自己的工作流引擎 8 动动脑 申请人申请一笔款项时 需要经过上级主管 再上级主管的层层审批 通过之后到财务领取请款请设计出你的流程尽可能的考虑其中各种情况 9 成功案例 10 目录 11 一 工作流模型介绍 要介绍几种常见工作流模型 以及流程嵌套和整合1 任务与活动2 流程起点模型3 流程激活模型4 流程运转模型5 流程组合嵌套模型6 流程整合模型7 流程终止模型 12 任务与活动 活动 Activity 是WMFC的标准模型元素 描述的是工作流中的一个逻辑步骤 Adescriptionofapieceofworkthatformsonelogicalstepwithinaprocess 活动是描述流程运转的最小单元一个任务表示的是流程的所需要完成的某一项工作 这项工作可能是一次操作 Action 即可完成 也可能是几次操作的组合 13 任务与BlockActivity 任务和BlockActivity非常相似 但并不一样如图 task中的多个action没有顺序关系 BlockActivity中 各个activity应该顺序执行 14 流程起点模型 一 任何一个工作流能够运行 需要条件 起点 来激活起点也是一种任务节点 这个节点可能会进行一定的操作 可能只涉及一些数据的改变 导致一个流程被激活 15 流程起点模型 二 单起点模型 16 流程起点模型 三 多起点模型1 在同一流程中 存在多个起点 重新申明 起点也是一种任务节点 而不是独立于工作流任务特殊节点 起点A和起点B 它们都可以激活流程的运行 而且激活后 流程都会共同指向TaskA 所以 对于TaskB来说 其不关心流程是如何激活的 其只关系从TaskA是否正确的传递来正确的流程数据 17 流程起点模型 四 多起点模型2 起点A激活工作流后 导致流程沿着TaskA TaskB TaskC方向流转 而从起点B激活工作流后 TaskA则被跳过 18 流程起点模型 五 多起点模型3 虽然也存在多个起点 但是基本是按照一个统一流程方向运行的 这是与方式二最大的区别所在 在此 须要再此申明 一个起点 StartNode 同时也是一个任务节点 TaskNode 应用 在多个流程之间信息交互的时候 流程A发送消息数据 激活流程B的运行 但是未必是从流程B的默认激活点激活 可能是从流程B的中途某个任务激活 19 流程激活模型 一 人工激活 大多数的流程激活 都是因为人为的信息数据输入或产生 比如一个订单处理流程 客户提交了订单信息 订单信息数据产生 则激活了订单处理流程的开始 20 流程激活模型 二 定时或限时激活 在一个特定的时间 因为特定的情况 符合特定的条件 激活某个特定的流程 或任务 这种激活方式 在现实中很少单独出现 大多数情况 都因为在某一个流程中 因为在限定的时间内 因某项任务未达到预期的状态 而激活另外的任务或新的处理流程 例子 订单处理流程中的催办流程 如果到时候没有发货 则激活催办流程 21 流程激活模型 三 外消息激活 大多是在多流程信息交互 或大小流程嵌套 应用中如下图所示 流程A 在结束的时候 在以下的所有图中 将采用红色框图 表示结束节点 会向流程B发送Message 以激活流程B的运行 22 流程运转模型 一 简单运转模型 按照预定的任务列表 有序的执行 23 流程运转模型 二 自循环模型 同一个任务节点 重复的执行多次 模式1 人为选择模式2 既定规则选择 24 流程运转模型 三 发散运转模型 并行 And模式 在流程运行过程中 因为不同的条件或情况 或者处理的业务需要多部门 多任务 分开处理 而产生了流程分支 25 流程运转模型 四 发散运转模型 异或模型 显式 异或 XOR 显式模型 又叫ExclusiveChoice 独占式选择 当一个任务处理完后 发现其后面可允许走多个分支流程 但只允许选择其中某一个分支运行 26 流程运转模型 五 发散运转模型 异或模型 隐式 隐式和显式的区别不是太大 存在分支A C和分支A D都满足条件 但最终也依然只能有一个分支被激活 至于哪一个分支被激活 这可能是人为的操作 也可能是某种随机的自动选择 但必须只有一个分支被激活应用非常少 而且大多数的工作流引擎不支持这种模型 仅支持显式XOR模型 27 流程运转模型 六 发散运转模型 鉴别模型 同前面的 独占式选择 很相似 当任务达到这个鉴别器的时候 鉴别器会根据当前流程所处的状态 对比预先设定的一些选择规则 自动判别接下来流程的流向 28 流程运转模型 七 发散运转模型 抄送模型 意思是 存在主流程 A C 在一个任务 A 执行完毕后 会继续执行主流程上下一个预定任务 C 但是同时也会激活另一任务 B 或另外的流程 的执行 但是任务B以及任务B的后续流程 不会对主流程运转造成影响 比如一个发文 在交司局会签的时候 可能会抄送一份给另外的司局备案 这个过程就或额外的激活一个不影响主会签流程的 抄送任务 29 流程运转模型 八 发散运转模型 发散模型 发散和并行最大的区别就是 各个分支 branch 的流程状态 或流程数据 1 在并行模型中 分支状态大多数情况下是不相等的 由任务A执行后的状态进行一定条件下的 拆分 形成了两个分支 或多个分支 流程 这多个分支流程 在最终需要重新聚合成一个主流程 以确保流程信息的完整性 当然 实际运行中 可能存在因为超时等特定原因而最终抛弃某个子流程 2 在发散模型中 分支状态是绝对相等的 因发散而产生的多个分支流程 在最终未必聚合 可能因为种种原因 聚合的时候会抛弃一个和多个分支流程 30 聚合运转模型 一 同步聚合 如图 在And聚合点 会等待所有分支的到来 如果不考虑超时 一般流程回设定任务执行期限 和异常等情况下 流程必须等待所有的分支 TaskB和TaskC 都执行完 到达And汇聚点 后 才能激活后续的任务 也就说流程才能正确的往下运行 31 聚合运转模型 二 异或聚合 这种聚合一般采用 多选一 的原则 或采用类似 先进先出 法则 人工干预除外 在聚合的时候也有可能涉及到流程数据 状态 校验等问题 一旦某一个分支被通过 则余下的分支则被终止 或者运行到聚合点就结束 32 聚合运转模型 三 多重聚合 多分支在聚合的时候 采用类似于 先进先出 法则 但是不同于简单聚合的是 任何一个分支 在到达这个聚会点的时候 均会激活后续流程的运转 见WorkflowPatterns但是后续流程被多次激活 就需要解决这些产生的多实例问题 就将问题过于复杂化 33 聚合运转模型 四 鉴别聚合 一般情况下 鉴别聚合在流程中不大会独立存在 通常会结合 同步聚合 或 简单聚合 之类的存在 鉴别的目的 就是更准确的聚合 让那些符合特定条件的分支聚合 通常通过一个 规则引擎 来定义处理聚合规则 34 特殊运转模型 一 回退模型 有任务A到任务B属于正常发送 但从任务B到任务A 则出现两种情况 1 正常发送 如图中B A蓝色线 2 可能因为某些特殊原因 被任务B退回 要求任务A重新办理 如图中B A红色线 虽然都是从B到A 代表的意义却完全不同 在现实中应用比较多 特别是电子政务中的公文流转或审批 35 特殊运转模型 二 自由流模型 表示的是一个任务执行完后 但其后续的运转不按照预定的顺序进行 而是人为地动态选择原先的是流程是按照A B C顺序执行了 但是执行任务A之后 人为地让流程沿A C方向运转 直接跳过了原先的任务B 流程的打乱 会造成很多问题 数据的完整性 流程的可控性等等 36 特殊运转模型 三 委托代办 一个任务交给了员工A 角色A 处理 但是员工A最近出差 无法正常办理 就可以委托给员工B 可能是角色A 也可能是角色B 处理 以保证流程能够正常的进行下去 37 特殊运转模型 四 催办 在执行完任务A到任务B的运转后 任务A设定一个催办日期 在催办日期到来的时候 向任务B发送催办请求 以催促任务B的执行 其前提是 任务A已经执行过 任务正在执行 有可能已经执行完 38 特殊运转模型 五 取回 取回 在流程中也是较为通用的动作 流程由任务A运转到任务B 任务B虽然接受了A所发送的请求或数据 但还没有确认执行的情况下 任务A有权取回 重新执行 举例 科员起草了一份文件 交给处长审批 但处长还没有察看的情况 科员有权取回文件 重新修改 39 流程组合嵌套模型 一 单一流程 流程嵌套 在一个主流程中 内嵌了一个或多个子流程 每个子流程自身可能是可独立运转的 也有可能是主流程的辅助性子流程 不可独立运行 40 流程组合嵌套模型 二 内嵌模型1 主流程等待方式 在这种方式下 当子流程运行的时候 主流程会暂停 等待子流程的完结 41 流程组合嵌套模型 三 内嵌模型2 主流程也运行方式 大多数采用 同步聚合 的方式 如果有一方未到达的情况下 另一方会等待 当然 这其中可能涉及到等待超时等不良因素 这时候主流程时选择继续等待 还是发催办消息 还是继续运行 就是工作流引擎的设计问题了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南郴州临武县第二中学选调36名教师考试参考题库附答案解析
- 音乐系毕业论文自述
- 航海驾驶专业的毕业论文
- 网络信息安全防护与管理作业指导书
- 园林种植专业毕业论文
- 毕业论文怎么写美术系的
- 游戏娱乐行业游戏研发与运营推广方案
- 委托采购柴油合同范本
- 2025年8月广东广州市天河区金穗幼儿园招聘编外聘用制教辅人员(保育员)1人考试参考题库附答案解析
- 致谢毕业论文前女友
- 2025年职业技能大赛(电工赛项)理论考试指导题库500题(含答案)
- 2025年食品安全生产经营大比武理论考试指导题库500题(含答案)
- 会计加薪述职报告
- 《考研英语:综合能力提升教程(新版)》配套课件-阅读理解
- 年级组长培训
- 课题申报参考:安多藏区乐舞类非遗文化数字化保护传承与创新性发展研究
- 急性脑卒中的急救护理课件
- 起点签约合同
- 跌倒及坠床的预防护理课件
- 广东省广州市2024-2025学年高一上学期开学考试英语检测试题(附答案)
- 附件3:公司境外突发事件应急预案
评论
0/150
提交评论