几年前做个工作流相关的一些工作,感兴趣的可参考一下。
本文档是工作流主体部分的技术架构描述,文中会描述主要的设计思路和设计决策。
架构目标和约束
工作流将作为一个公共基础子系统服务于整个平台产品的人力工作流和业务工作流环节。文档不涉及界面引擎、表达式引擎具体方面,但会说明配合使用思路。
可维护性和可扩展性
- 与业务系统实际关联低偶合
- 可以扩充表达式引擎,与界面绑定由界面引擎决定
- 可以适应与审核等人力流程,也可以适用在无人干预的商业自动化流程
安全性
- 创建工作流程、运行工作流程以及执行工作步骤的权限需要识别
易用性
- 通过图形拖拽方式组织工作流程
- 工作流与业务系统数据轻松挂接
实现约束
- 工作流系统基于微软WWF开发框架,可以支持用户界面页面流、文档中心工作流以及人力工作流和面向服务的应用程序、商业流程自动化以及系统管理流。WF提供了工作流引擎、.Net-managed API、运行时服务以及与VS2005集成的可视化编辑器和调试工具。
架构表现
文档描述了系统的主要模型,包括:
用例模型从外部系统的角度描述了系统的行为。
用例模型
- 应用用例:描述用户如何与系统交互以实现预期的功能
用例 |
描述 |
基本要求 |
|
设计流程 |
创建者通过这个用例定义一个工作流程 |
通过图形拖拽方式定义流程。支持单人、多人审批、事件通知和条件分支等活动 |
|
审核单据 |
被审核人通过这个用例提交单据,审核人对单据进行审批 |
分别记录每个参与者的流程信息,后续流程参与者可以查看之前的所有审核内容 |
|
添加审核步骤 |
扩展审核单据用例,审核人可以在自己审核步骤之前或者之后动态添加一个计划外的审核步骤 |
可以添加单人或者多人审核步骤,抄送可以发送邮件通知 |
|
监控流程 |
流程参与者可以查看参与的工作流程的当前执行状态 |
通过Web页面返回图形展现 |
- 基础结构用例:描述应用用例的每一步如何添加诸如可用性、可靠性、性能、容错性等质量属性
用例 |
描述 |
基本要求 |
执行事物 |
此用例是应用用例每一步执行准守的模板 |
|
验证权限 |
扩展执行事物用例,检查参与者是否有足够的权限执行 |
角色权限控制 |
处理分布式 |
扩展执行事物用例,应用用例应用在远程调用上 |
需要考虑执行性能 |
持久化 |
扩展执行事物用例,应用用例每一步都需要持久化到数据库中 |
|
- 扩展用例
用例 |
描述 |
基本要求 |
新的活动步骤 |
工作流将不只支持单据审核业务,还将支持商业流程自动化等,审核业务也将支持更多的活动步骤 |
系统需要提供扩充流程的活动步骤能力,与界面和表达式引擎低偶合 |
报表 |
提供工作流的报表 |
|
分析模型
架构性重要分析元素
包 |
描述 |
基本要求 |
流程设计器 |
流程设计器包中包含如何设计流程以及编译流程程序集 |
|
审核单据应用程序 |
审核单据包含提交和审批操作 |
单据本身的展现逻辑由界面引擎负责 |
流程监控服务 |
流程监控包含返回指定流程的运行状态图 |
通过Web返回流程运行图形 |
流程定义管理 |
包含流程定义描述文件的创建、读写和删除以及编译后程序集的管理 |
每个流程定义以一个程序集表现 |
流程执行管理 |
包含流程执行中的系统监视服务数据以及流程于业务关联的数据的管理 |
与实际业务数据关联低耦合 |
持久化 |
包含实体领域层所有数据的持久化以及流程服务监控数据的持久化 |
|
分布式 |
提供分布式开发支持 |
|
认证授权 |
包含要求的权限相关内容 |
由组织机构配合实现 |
架构性重要用例实现
设计流程用例实现
审核单据用例实现
监控流程用例实现
设计模型
部署结构
组件结构
工作流 - 技术备忘录
欢迎转载,转载请注明:转载自周金根 [ http://zhoujg.cnblogs.com/ ]