上一篇主要说明 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中的图例:

工作流系统开发之二十三 图解工作流的基本路由方式相关推荐

  1. 工作流系统开发之二十二 dotnet版工作流引擎

    工作流管理系统为实现流程的自动化,必须包含一个工作流引擎,工作流引擎负责流程的定义,解释和运转.流程引擎是对业务流程的一个抽象,因此工作流引擎的设计模型是决定流程功能的重中之重,将直接影像流程的各个环 ...

  2. 工作流系统之二十五 .net工作流系统开发体会

    .net工作流系统开发体会 公司的eworkflow自定义工作流系统,最初是开发了java版的.待java版的功能稳定后,就开始开发.net版的. java版的eworkflow工作流系统,我们没有依 ...

  3. 无人驾驶汽车系统入门(二十三)——迁移学习和端到端无人驾驶

    无人驾驶汽车系统入门(二十三)--迁移学习和端到端无人驾驶 前面我们介绍了神经网络和深度学习的基础知识,在本文中我们将介绍迁移学习的概念,并将迁移学习应用于端到端无人驾驶模型.一般来说,大型深层神经网 ...

  4. 工作流管理系统开发之二 工作流引擎

    工作流引擎,主要是实现业务流程的规则抽象,模型的建立,解释,以及为流程实例提供运行环境,并解释执行流程实例.       工作流引擎必须要包含一个工作流模型的设计,工作流模型就是对业务流程抽象的一个模 ...

  5. 工作流管理系统开发之二十 动态创建流程多分支节点

    在工作流系统的实际应用中,经常会有根据流程实例的运行,动态的生成N个分支的情况,且每个分支又是一序列流程化的操作,待每个分支运行完成后,再汇集到一起,继续原来的主流程. 例如,当一个单据填写完成后,提 ...

  6. 软件开发模型_QT开发(二十三)——软件开发流程

    一.软件开发流程简介 软件开发流程是通过一系列步骤保证软件产品的顺利完成,是软件产品在生命周期内的管理学. 软件开发流程的本质是软件开发流程与具体技术无关,是开发团队必须遵守开的规则. 二.常见软件开 ...

  7. 【Visual C++】游戏开发笔记二十三 游戏基础物理建模 五 粒子系统模拟 二

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  8. 【Visual C++】游戏开发笔记二十三 游戏基础物理建模(五) 粒子系统模拟(二)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7607916 作者:毛星云    邮箱: h ...

  9. Symbian系统开发教程(二)

    第二章:数据类型与语法 作者:谢兴   enigma19971@hotmail.com             转载需注明出处      下载word版本         Symbian系统已经提供了 ...

最新文章

  1. 阿里云:国际化是云计算技术能力的照妖镜
  2. weka: backwards with delete
  3. 前端学习(3222):函数式组件使用props
  4. 策略模式java 用例_java策略模式简单用例
  5. android 6.0 adb,安卓6.0,adb停用系统更新
  6. 知乎高赞:有哪些你看了以后大呼过瘾的数据分析书?
  7. 有关排序的贪心策略的一种证明思想
  8. 智能优化算法:堆优化算法-附代码
  9. 健身 赚钱 ; 旅行 用心爱一个人就行了 其他的都会开挂来临~
  10. 学习新浪微博计数服务
  11. mui中双webView的刷新
  12. Codeforces 707C 数学
  13. 笔记本上怎么怎么暂停cmd打印窗口
  14. 使用分治法解最大连续子序列和问题
  15. 批量修改ip成自定义网址
  16. Laragon 添加MongoDB服务
  17. 第四十天 阿乐在其中—Android小游戏的飞机(四)加入敌人
  18. FPGA的NIOS-||的开发入门
  19. AngularJs - Javascript MVC 框架
  20. Elastic Search:(二)分词器

热门文章

  1. 反假币考试试题及答案
  2. android命令行打包、签名+自动打包器
  3. 完全使用 HTML/CSS 实现的经典扫雷游戏
  4. 准备选择计算机方向,该怎样快速学习电脑知识?零基础到精通入门!
  5. surfer 8 scripter 学习笔记(5)简单实战VB与Surfer
  6. 目标检测:RFCN算法原理一
  7. 缓存穿透、缓存雪崩、缓存击穿
  8. 成功项目团队角色模型——Belbin团队角色模型(转)
  9. 简析Jenkins的SVN插件未更新到最新代码
  10. 二、SpringBoot之使用向导快速创建SpringBoot应用