(2) 阅读 (1408)

工作流模式 编辑

词条创建者 匿名用户

工作流模式

编辑

工作流模式是在软件工程或业务流程工程领域定义的一种特殊形式的设计模式。工作流模式专门指与工作流应用程序开发相关的反复出现的问题和经过验证的解决方案,特别是,更广泛地说,是面向流程的应用程序。

概念

编辑

工作流模式是节约开发的概念。它们的使用应遵循简化维护和减少建模工作的策略。工作流程是实时执行的。控制机制必须支持典型的工作节奏。设计模式必须延迟工作流的执行。

聚合

工作流模式通常可以聚合为链,并且必须明确定义开始和终止的条件。

应用

工作流模式可以应用于各种环境,因此必须明确定义和显示使用条件,以防止误解。

范德阿尔斯特分类

编辑

一个著名的工作流模式集合是由WilvanderAalst等人提出的。(2003)在他们的论文工作流程模式中。与2000年2月发布的早期版本。这组模式集中于面向流程的应用程序开发的一个特定方面,即描述工作流/流程中活动之间的控制流依赖关系。这些模式分为以下几类:

基本控制模式

  • 顺序-按顺序执行两个或多个活动
  • 并行拆分-以任意顺序或并行执行两个或多个活动
  • 同步——同步两个或多个可以以任意顺序或并行执行的活动;在所有前面的活动都完成之前,不要继续执行后面的活动;也称为屏障同步。
  • 排他选择——根据流程执行到达排他选择时可用的数据,从众多备选方案中选择一个执行路径
  • 简单合并-等待一组活动中的一个完成,然后再继续;假设只有其中一项活动将被执行;通常,这些活动在源自排他选择或延迟选择的不同路径上(见下文)
  • 终止-在定义的事件或状态更改时终止活动的执行

高级分支和同步模式

  • 多项选择-从许多备选方案中选择多个执行路径
  • ConditionalChoice-根据区分的状态条件从众多备选方案中选择一个执行路径
  • 同步合并-合并许多执行路径;如果采用许多路径,则同步;如果只采用一个执行路径,则执行与简单合并相同的操作
  • 多重合并-在继续之前等待一组活动中的一个完成;如果执行了几个正在等待的活动,则每次其中一个活动完成时都会触发简单的合并。
  • 鉴别器-在继续之前等待一组活动中的一个完成;如果执行了几个正在等待的活动,则鉴别器只触发一次。
  • N-out-of-MJoin-与鉴别器相同,但现在可以通过将参数N设置为大于1的某个自然数,等到多个前面的活动完成后再继续。

结构模式

  • 任意循环-不对流程模型中可能存在的循环类型施加任何结构限制。
  • 隐式终止-如果没有其他事情要做,则终止进程的实例

多实例(MI)

  • MIwithoutsynchronizing-生成一个活动的许多实例而不在之后同步它们
  • 具有先验设计时知识的MI-当在设计时已知实例数量时生成一个活动的许多实例(同步)
  • 具有先前已知运行时知识的MI-当在运行时的某个时间点可以确定多个实例时(如在FOR循环中但并行),生成一个活动的多个实例
  • 没有预先运行时知识的MI-当无法确定多个实例时生成一个活动的多个实例(如在WHILE循环中但并行)

基于状态的模式

  • DeferredChoice-执行多个备选线程之一。执行哪个线程的选择不是基于执行到达延迟选择时可用的数据,而是由事件(例如,应用程序用户从工作列表中选择任务或消息)确定由流程执行引擎接收)。
  • InterleavedParallelRouting-以任意顺序执行多个活动(例如,基于资源的可用性),但不要同时执行这些活动中的任何一个。
  • 里程碑-在达到里程碑之前的任何时间允许某个活动,之后该活动将无法再执行。

取消模式

  • 取消活动-停止执行已启用的活动
  • CancelCase-停止正在运行的进程的执行
  • 取消等待-在没有事先完成事件的情况下继续执行正在运行的进程

上述工作流模式已用于评估支持面向过程的应用程序开发的商业产品的功能。它们还被用于评估许多提议的标准,包括BPEL、BPMN、UML活动图、XPDL等。值得注意的是,并非所有这些模式都与所有应用程序领域相关,因此在使用以上工作流模式为给定的应用程序选择特定的语言系统。工作流模式也被用作设计工作流语言和称为YAWL(YetAnotherWorkflowLanguage)的开源系统的初始要求。已经提出了对上述工作流模式集的几个扩展。特别是,开发这些模式的同一研究小组还提出了一组工作流数据模式、工作流资源模式、工作流异常处理模式和服务交互模式。

另一种分类

编辑

工作流模式的另一种分类如下:独立/池化,其中计划工作的每个组件都独立于其他组件完成,并且没有组件对任何其他组件有特定的依赖关系。一个例子是工作人员在柜台服务-Raoul可以为排队的顾客服务,而无需等待Jamie为排队的顾客服务。顺序的,其中计划工作的每个组件都依赖于前面的组件。在这种情况下,前面的组件通过后续组件控制工作流的推进。一个例子是在一条生产线上——在Veronica将散热器安装到位之前,Betty无法将散热器盖固定到ModelTFord上。相互依赖/网络化其中计划工作的每个组成部分都依赖于一个或多个正在完成的其他组成部分。在这种情况下,前面的组件通过后续组件控制工作流。一个例子是一个项目团队——莎拉必须等待凯文和乔治完成几项任务,然后她才能执行她的任务。

工作流模式

其他观点

编辑

工作流模式不限于控制流。其他(工作流)模式集合包括:

  • 资源模式,
  • 数据模式,
  • 异常模式,
  • 服务交互模式。
  • 并行性和流水线模式。

这些模式集合已用于评估各种工作流流程,包括商业(Websphere、OracleBPEL、Staffware、SAP工作流、WindowsWorkflowFoundation等)和开源。

实现模式的工作流系统

编辑
  • Tavaxy是一个基于云的工作流系统,它实现了一种基于模式的方法,以实现Galaxy和Taverna之间的互操作性,这两个工作流引擎在生物信息学领域很流行,
  • YAWL,另一种工作流语言,
  • Cameleon(编程语言),基于工作流的函数式编程图形语言。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/139292/

发表评论

登录后才能评论

词条目录
  1. 工作流模式
  2. 概念
  3. 聚合
  4. 应用
  5. 范德阿尔斯特分类
  6. 基本控制模式
  7. 高级分支和同步模式
  8. 结构模式
  9. 多实例(MI)
  10. 基于状态的模式
  11. 取消模式
  12. 另一种分类
  13. 其他观点
  14. 实现模式的工作流系统

轻触这里

关闭目录

目录