该如何选择,顺序工作流(Sequential Workflow)还是状态机器工作流(State Machine Workflow)

简介:
.Net framework 的 Windows Workflow Foundation 有两种工作流,一种是Sequential workflow 一种是State machine 工作流,在实际开发中我该如何做出选择呢? 
 
一般来说Sequential Workflow 用于流程已定的情况。什么是流程已定,这是说工作流的流向大体上不取决于外部的决定,比如贷款审批,流程基本上确定,并且其分支和循环也是规定好了的。又如文档审批,假期审批等都比较适合用Sequential Workflow.  一般Sequential Workflow 是不可逆的。除了循环Activity 外,一般一个Activity 执行完毕后便不再被执行。
State Machine 工作流则一般用于 方向不明确的事情当中,一件事完成(state activity)面临着很多不同的选择,并且,这个选择要依赖于人的决定(事件驱动)。State machine 往往是可逆的。一个状态(State Activity)有可能要被多次的执行。比如在线购物便可以看成一个state machine workflow. 工作流的进行往往有赖于外部事件(比如人)的推动。 再有,如看电视,可以开电视,可以关电视,可以随便转台,也可以专注看某个节目,状态与状态间并没有一个必然的顺序关系。如此,我们便可以使用state machine workflow.

一个流程很多时候 用Sequential Workflow 可以,用State Machine Workflow 也可以,但是正确的选择往往能更有效的使用WF, 节省成本,提高开发效率。有的时候,我们甚至要同时使用到两种工作流,一切都是为了满足现实的需求。



本文转自 xhinkerx 51CTO博客,原文链接:http://blog.51cto.com/xhinker/182092,如需转载请自行联系原作者
目录
相关文章
|
分布式计算 并行计算 Java
浅析Python自带的线程池和进程池
浅析Python自带的线程池和进程池
954 0
|
数据可视化 关系型数据库 开发工具
开放原子训练营(第三季)inBuilder低代码开发实验室之探秘
开放原子训练营(第三季)inBuilder低代码开发实验室之探秘
389 0
开放原子训练营(第三季)inBuilder低代码开发实验室之探秘
|
小程序 Android开发 网络架构
uni-app中使用scroll-view滚到底部时多次触发scrolltolower
uni-app中使用scroll-view滚到底部时多次触发scrolltolower
1644 0
uni-app中使用scroll-view滚到底部时多次触发scrolltolower
|
监控 数据可视化 中间件
平台化三部曲之三流程编排 - 平台化是舞台,流程编排就是导演一场戏
在上两篇ATA中,第一篇讨论了平台的扩展性(《从Eclipse平台看交易平台化》),强调微内核和扩展机制实现,第二篇讨论平台的模块化开发(《Google Guice平台模块化开发的果汁》),强调业务隔离,松耦合。这这第三篇ATA中,想分享下平台化中另一个重要方面,平台的服务流程编排 (*备注:本文.
18646 2
|
5月前
|
人工智能 监控 API
MCP中台,究竟如何实现多模型、多渠道、多环境的统一管控?如何以MCP为核心设计AI应用架构?
本文产品专家三桥君探讨了以 MCP 为核心的 AI 应用架构设计,从统一接入、数据管理、服务编排到部署策略等维度,系统化分析了 AI 落地的关键环节。重点介绍了 API 网关的多终端适配、数据异步处理流程、LLM 服务的灰度发布与 Fallback 机制,以及 MCP Server 作为核心枢纽的调度功能。同时对比了公有云 API、私有化 GPU 和无服务器部署的适用场景,强调通过全链路监控与智能告警保障系统稳定性。该架构为企业高效整合 AI 能力提供了实践路径,平衡性能、成本与灵活性需求。
393 0
|
Java Windows
hs_err_pid.log和hs_err_pid.mdmp是什么
【6月更文挑战第30天】hs_err_pid.log和hs_err_pid.mdmp是什么
1766 0
|
人工智能 缓存 PyTorch
从零开始的ChatGLM 配置详细教程
这篇文章提供了从零开始配置ChatGLM的详细教程,包括环境配置、下载项目、在HuggingFace下载模型、解决常见报错以及运行项目的最终结果和一些番外内容。
|
安全 程序员 数据安全/隐私保护
终于有篇文章把后管权限系统设计讲清楚了
【2月更文挑战第1天】在常用的后台管理系统中,通常都会有权限系统设计,以用于给对应人员分配不同权限,控制其对后管系统中的某些菜单、按钮以及列表数据的可见性。
828 2
终于有篇文章把后管权限系统设计讲清楚了
|
NoSQL Redis 数据库
Redis内核基于时间点的备份恢复和基于AOF日志的增量同步机制设计
11月30日云栖社区在线培训,阿里云资深开发工程师夏德军为大家带来阿里云Redis内核优化的分享。本文从两大方面介绍阿里云Redis服务,一是Redis内核支持基于时间点的备份恢复,一是Redis基于AOF日志的增量同步机制设计,并分别通过假设场景,详细的分析了备份恢复流程和AOF PSYNC流程。
10467 1
|
存储 设计模式 人工智能
Rust 笔记:有限状态机原理/状态模式 及其 在Rust 编程中的应用
Rust 笔记:有限状态机原理/状态模式 及其 在Rust 编程中的应用
974 0