工作流资源模式 - 拉模式5种
版权声明:工作流模式版权归 Workflow Patterns 组 织 ( http://www.workflowpatterns.com ) 所 有 。 经 Workflow Patterns授权,中文简体版由辛鹏和荣浩翻译。未经译者书面许可,不得将该中文简体版用于商业目的。
与推模式相比,拉模式动作的主语发生了变化:推模式的主语是工作流系统,由系统将工作 项推送给资源;拉模式的主语是资源,资源把工作项与自己进行匹配,考虑自己能够执行的工作项,从中选择一个,资源拉动工作项。
拉模式对应着工作项生命周期里的5种状态变迁,如图B-33所示。
图B-33 工作项生命周期里的拉模式
- 由提供给一个资源拾取到指派给一个资源负责执行:这意味着该资源拾取了该工作项,其将负责该工作项的执行,并将在未来的某个时候执行该工作项;
- 由提供给多个资源拾取到指派给一个资源负责执行:这意味着多个资源中的一个资源拾 取了该工作项,其将负责该工作项的执行,并将在未来的某个时候执行该工作项,余下的资源将不再有机会执行该工作项;
- 由提供给一个资源拾取到开始执行:这意味着该资源拾取了该工作项,其将负责该工作项的执行,并立即开始执行该工作项;
- 由指派给一个资源负责执行到开始执行:这意味着该资源开始执行该工作项;
- 由提供给多个资源拾取到开始执行:这意味着多个资源中的一个资源拾取了该工作项,其将负责该工作项的执行,并立即开始执行该工作项,余下的资源将不再有机会执行该 工作项;
拉模式共有6种,分为3组,即资源驱动指派、资源驱动执行指派工作项和资源驱动执行提供 工作项关注资源驱动工作项的状态变迁;系统决定工作队列内容和资源决定工作队列内容关注工 作项优先级的排列;自主选择关注资源选择执行工作项的方式,如图B-34所示。
图B-34 拉模式
- 资源驱动指派:资源将工作项指派给自己,负责该工作项的执行。
- 资源驱动执行指派工作项:资源开始执行指派给其的工作项。
- 资源驱动执行提供工作项:资源选取提供给其的工作项,并马上开始执行该工作项。
- 系统决定工作队列内容:工作流系统排定资源工作项列表里工作项的执行顺序。
- 资源决定工作队列内容:资源排定工作项列表里工作项的执行顺序。
- 自主选择:资源根据自己个人的情况选择执行工作项。
资源驱动指派(WRP_21: Resource-Initiated Allocation)
描述
资源能够将工作项指派给自己,负责该工作项的执行,但是不必马上开始执行该工作项。示 例见图B-35。
该模式对应着工作项的两种状态变迁:由提供给一个资源拾取到指派给一个资源负责执行、由提供给多个资源拾取到指派给一个资源负责执行。
图B-35 资源驱动指派
应用
资源能够将工作项与自己匹配并选择执行。
资源驱动执行指派工作项(WRP_22: Resource-Initiated Execution – Allocated Work Item)
描述
资源能够开始执行指派给其的工作项。示例见图B-36。
图B-36 资源驱动执行指派的工作
该模式对应着工作项的一种状态变迁:由指派给一个资源负责执行到开始执行。
应用
资源标识工作已经开始执行。
资源驱动执行提供工作项(WRP_23: Resource-Initiated Execution – Offered Work Item)
描述
资源能够选取提供给其的一个工作项,并马上开始执行该工作项。示例见图B-37。
图B-37 资源驱动执行可选工作
该模式对应着工作项的两种状态变迁:由提供给一个资源拾取到开始执行、由提供给多个资源拾取到开始执行。
应用
该模式强制要求资源一旦拾取了可选的工作项就必须马上开始执行,基于两点的考虑:一是 工作项需要尽快执行;二是工作项能够指派给当前最为空闲的资源,不出现该工作项被繁忙资源 卡住,造成等待和阻塞。
在日常开发里,我们使用看板/故事卡管理项目的开发。每天早上由开发人员在看板上挑选 移动故事卡,一旦故事卡由可开发状态移动至开发状态,则必须进行该卡的开发工作,必须展示 项目的真实进度,同时不允许一个开发人员同时进行多张故事卡的开发。
在工作流系统里,实现上述3个模式只是在不同的工作项列表里移动这些工作项,以反映工 作项不同的状态和变迁策略,对IT系统而言这很简单,困难在于如何能保证人确实是这么做的, 例如说一旦拾取就必须开始执行,工作项的跳转很简单,但无法保证的是拾取该工作项的人一定 会按照要求马上开始执行该工作项,也就是说流程项目的实施不仅仅包含技术实施,也包含了一 套与之相应的管理实施。那种期望上一套流程系统就能马上提高生产效率和管理水平是不现实 的,其中一定需要包含管理方式和组织机构的相应变化。
系统决定工作队列内容(WRP_24: System-Determined Work Queue Content)
描述
工作流系统能够排定资源工作项列表里工作项的执行顺序。示例见图B-38。
图B-38 系统排定工作顺序
应用
工作项的排序规则非常多,其目的是将最重要或优先级最高的工作项排在最前面,引起资源 的注意优先执行。
- 先进先出:按照工作项创建的顺序进行排序,也可以按照整个流程实例被创建的时间进 行排序。先进先出是一个简单但是很有效的分配规则,在实践中被广泛采用。
- 后进先出:与先进先出相反,最近创建的工作项要优先处理,在某些情况下,能够提高 平均服务水平。
- 最短处理时间:根据流程实例的一些属性,区分容易的和困难的流程实例、简单的和耗时的活动。优先选择那些耗时最少的工作项,能够降低流程实例平均处理时间。
- 最短剩余处理时间:对剩余处理时间最短的流程实例优先处理,能够减少正在执行的工 作数量并提高服务水平。
- 最早截止期限:考虑流程实例执行的上下文,根据流程实例的截止时间决定工作顺序, 今天要完成的工作比本周要完成的工作具有更高的优先级。
每一种排序规则所需要的信息量存在很大的不同,先进先出不需要信息,最短剩余处理时间 需要流程实例路由信息和流程实例属性。事实上,还存在更高级的排序规则,这些规则充分考虑 正在进行的工作、预期到来的工作、组织资源的可用性等。
资源决定工作队列内容(WRP_25: Resource-Determined Work Queue Content)
描述
图B-38 系统排定工作顺序
应用
工作项的排序规则非常多,其目的是将最重要或优先级最高的工作项排在最前面,引起资源 的注意优先执行。
- 先进先出:按照工作项创建的顺序进行排序,也可以按照整个流程实例被创建的时间进 行排序。先进先出是一个简单但是很有效的分配规则,在实践中被广泛采用。
- 后进先出:与先进先出相反,最近创建的工作项要优先处理,在某些情况下,能够提高 平均服务水平。资源能够排定其工作项列表里工作项的执行顺序。
应用
为资源提供一定程度上排序工作项的灵活性。每个人关注的视角和侧重点不同,就会产生不 同的工作排序和内容过滤。工作流系统被赋予顾问的角色,资源保留自由度。
自主选择(WRP_26: Selection Autonomy)
描述
资源能够根据自己个人的情况选择执行工作项。示例见图B-39。
图B-39 自主选择执行工作
应用
资源能够自主安排自己的工作优先次序和个人的工作序列。