代码改变世界

第四周学习记录

2017-11-17 22:27  melay  阅读(253)  评论(0编辑  收藏  举报

这周主要完成了activiti和jbpm环境的配置,学习了工作流的模式。

工作流

1.流程的要素

  • 输入
  • 活动:具体的工作
  • 活动间的相互作用:活动之间是相互影响的
  • 输出:结果
  • 流程的服务对象
  • 价值:是否对流程的输出满意

2.BPM (业务流程管理)

目标:企业应以流程化的思考方向,串连原本各自独立而未协调的经营活动,使串连后的经营活动成为具有增值的企业运营流程,并辅以IT技术手段使其落地运行,从而达成流程管理的终极目标。

3. WfMC (工作流管理联盟)

1993年由多家公司联合成立的非赢利性国际标准组织。它发布了一系列的工作流定义、软件接口的草案文本,是目前世界上公认的最具权威性的工作流标准制定机构,得到了广泛的支持和应用。

4.部门墙:企业内部形成的一个个职能孤岛或信息孤岛。

5.流程、流程管理、流程技术的关系

  • 流程:实实在在的办事的过程,企业和组织内被管理和支撑的对象
  • 流程管理:主要阐述流程管理相关的理论、方法、模式等,管理领域的方法论,管理企业和组织内的流程
  • 流程技术:将流程进行计算机化的相关技术,对流程管理方法论的支撑和实现。

6.工作流定义

工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递或执行。

7.工作流模式:

  • 控制模式:负责控制作战活动的组成与流转
  • 资源模式:
  • 数据模式
  • 异常模式

8.并发分裂模式

在某个活动之后,并发地分裂出多个活动,这多个活动同时执行。分显式与隐式两种实现方案。

可能存在的问题:驳回的问题。

9.并发汇聚模式

并发分裂出的多个活动全部执行完之后,后续活动才会被触发。分显式与隐式两种实现方案。

存在的问题:驳回问题。

10.单选分裂模式(排他选择模式)

当前活动分裂为两个或多个后续分支,当前活动执行完毕后只能选择触发一个后续分支执行。即多选一。

两种解决方案:

  • XORSplit节点上定义条件
  • 转移线上定义条件

11.单选汇聚模式(简单合并模式)

在定义期,排他选择模式分裂出的两个或多个分支合并为一个后续分支。

12.资源模式

目的是将组织实体这样的资源(职位、角色、组、人等)分配给工作流活动去用,工作流活动按照各种模式为这些已经分配好的组织实体生产任务项。

实现过程:

  • 首先给某个工作流活动指派特定的资源集合
  • 对这些资源集合按照不同的分配策略进行最终的任务分配

13.数据模式

  • 工作流控制数据:工作流系统管理内部控制数据,包括与流程实例和活动实例相关的执行数据和状态、紧急程度
  • 工作流相关数据:工作流系统使用工作流相关数据确定流程实例的流转条件,选择下一个要执行的活动
  • 工作流应用数据:业务应用系统管理的业务数据

14.异常模式

  • 常规异常:日常开发中所遇到的各种程序异常和业务异常
  • 工作流异常:
短事务:分为本地事务和全局事务。

本地事务是指某个资源管理器内部开始和协调的事务。
全局事务(分布式事务)涉及事务管理器、应用服务器、资源管理器、应用程序、通信资源管理器。

15.工作流异常

按预测程度

  • 可预测异常
  • 不可预测异常

按触发源

  • 外部异常:操作系统、网络、数据库、应用软件和硬件设备导致的异常
  • 内部异常:工作流管理系统自身引发的异常。

异常事件分为五组

  • 工作项执行失败
  • 超时
  • 资源不可用
  • 外部触发
  • 违反约束

异常处理:

  • 忽略策略:异常产生的行为不影响后续活动的执行
  • 放弃策略:出现的异常使整个活动不能继续执行下去
  • 替换策略:某个活动执行时出现异常使其不能继续,但存在另外一个可选的活动或另外一条路径使得流程可以继续。
  • 补偿策略:发生在两个原子事务甚至多个原子事务之间。最后一个事务发生失败,需要消除对以前的一个或多个业务操作所产生的影响
  • 重试策略:对于出现异常的活动重新尝试执行,直到活动执行成功,或者达到最大重试次数

工作流其他模式

1.顺序模式:工作流中的各个活动在同一个进程中按顺序依次执行。

2.平行拆分:工作流中从一个线程中的一个点拆分为在多个线程中平行执行的多个活动。

3.同步:工作流中的多个活动在一个点上汇合成一个线程。

4.结构化鉴别

  • A、B 分支同时执行的情况,如AND-split 使得 A、B 并发,同时到达Discriminator

  • B先到达Discriminator,C后到达,则C不执行

  • C先到达Discriminator,B后到达,则B不执行

5.阻塞鉴别:在完成一个任务之前必须等到前面的一个完成,这时会发生一定的阻塞。

Iteration Patterns 迭代模式

1. 任意循环模式(Arbitrary Cycles):在一个多于一个入口点和出口点的流程模板,它能够代表循环。它可以为单独的入口和出口提供连接到不同的分支。

2. 结构循环模式(Structured Loop):有能力重复执行一个任务或者一个子流程,这个循环有一个预测试或者后测试条件,在开始评估或者在结束评估决定是否继续。这个循环结构有一个单独的入口和出口点。

3.递归模式(Recursion) :当它执行的时候或者就其整个分解的结构而言,这一个任务可以调用它自身。

Termination Patterns 终止模式

  • 隐式终止:当没有剩余工作项目可以做,给定的流程或者子流程实例应该终止。有一个客观方式决定实例已经成功完成了。
  • 显示终止:当到达一个指定的状态的时候,一个给定过程(或sub-process)情况应该终止,这是典型的,通过引入一个特定的最终节点,当到达这最终节点,剩余的工作过程实例被取消,整个过程实例为成功完成,无论是否存在任何任务进程或剩余的执行。

Trigger Patterns 触发模式

  • 临时触发器(Transient Trigger):一个任务实例可以通过从另一个流程的部分或者从外部的环境信号触发,这个触发是瞬间即逝很自然的,并且如果不接收任务马上激活的话,就会丢失。在一个任务实例等待接收的时候只有一个触发可以使用。
  • 持续触发(Persistent Trigger):与上面不同的是,这个触发是持续并且被流程保留的,直到被任务接收激活后。