上一篇主要说明 dotnet工作流引擎的基本原理和引擎的基本元素。
这篇主要以图解的方式说明工作流引擎的运转模型,路由方式。
一个业务流程包含一序列的处理过程,以及他们的相互顺序关系,还包括过程的启动条件,过程循环,同时还会辅助一些相关的事件消息处理等。
工作流引擎负责创建,定义,解释和运行业务流程,首先需要将业务流程的处理过程转化为流程的基本元素、基本节点,然后将业务处理过程之间的顺序关系用流程引擎支持的路由方式表达出来,再设置好一些相关的事件消息处理等,业务流程就创建完成。然后再运行流程,启动流程实例,运行业务流程,流程引擎负责解释流程的各节点以及按路由方式运转业务流程。因此流程的运转模型,支持的路由方式也是工作流引擎的核心内容。
常见的运转模型,基本路由方式:
串行路由:最简单,也是最容易理解模型,一个步骤接着一个步骤的 基本路由方式。
eWorkflow中的图例:
并行路由:一个步骤接下来分出多个同时可以执行的步骤,通常会由分支节点分出。
eWorkflow中的图例:
条件路由:满足条件后导向一个步骤,不满足条件的导向另外一个步骤,就如同代码中的
if (条件1)
步骤1
else if(条件2)
步骤2
else if (条件n)
步骤n
...
else
步骤n+1
eWorkflow中的图例:
分支路由:分支路由平行分支出多条线路,多条线路之间是并行的关系。
eworkflow中的图例:
合并路由:并行的多路分支集结到一个点的路由方式。
eworkflow中的图例:
循环路由:下一步返回到原来的任意一个步骤,这之间形成的回路就是一个循环路由。可以由多个步骤构成一个循环路由,也可以自己返回到自己,这样的自循环路由。
eworkflow中的图例:
子流程嵌套:在工作流中嵌入另外一个独立的流程,主流程的下一步为启动另外一个流程,这样的结构为嵌套自流程。子流程可以是同步执行和异步执行两种属性,主子流程可设置输入输出参数来达到信息的传递。
eworkflow中的图例:
自由跳转:这种是很特殊的路由方式,在流程实际运行时跳出原来定义的线路,自由跳转到任意的步骤。
eworkflow中的图例:
回退:和自由跳转类似,在流程实际运行时跳出物理的回退方式,可以任意的回退到曾经运行过的步骤。
eworkflow中的图例:
动态多路分支路由:在流程定义的时候只定义一条分支后的运行线路,在流程实际运行时根据实际情况动态创建出n条分支线路。
eworkflow中的图例: