bobmazelin的流程管理系统介绍和概念性设计(一)
最近一年多的时间我都在流程管理系统领域工作,虽然现在该项目处于停滞状态,但我仍然对流程管理领域充满希望.这一系列的随笔由bobmazelin和他的同事这段时间工作的经验积累而成,同时也是我们流程管理系统的介绍,如果有志同道合者随意发表自己的想法,同时我们也需要新的活力来再次使项目推进.
这是该系列的第一篇,我介绍一下系统在大体上的构架以及一些基本情况.由于该项目是商业化项目,请大家原谅我不能公开项目名称等具有商业化意义的资料.
系统能作什么?
一句话总结, 让客户通过系统对流程生命周期中的每个步骤进行控制.
我们认识的流程生命周期:
认识流程 -> 设计流程 -> 静态分析流程 -> 再设计流程 -> 部署流程 -> 流程版本控制 -> 测试流程 -> 再设计流程 -> 执行流程 -> 监控流程 -> 动态分析流程 -> 再设计流程
注:有些地方是反复循环的,建立这种良性循环机制正是流程管理的核心任务之一.
在认识到流程生命周期后,我们又认识到在流程生命周期中的流程不仅仅是流程,它覆盖了流程中的资源,规则以及流程本身.我们把这三种元素代到流程生命周期中思考就形成了流程系统的总体架构.
我很难使用一种视图就总结出流程系统的整体架构,我使用3个视图来表达.
1. 系统元素: 资源,规则和流程.这3个是流程系统的和行元素,其他视图都依赖它.
其中资源处于系统底部,他代表了系统的数据;规则处于中间,描述了逻辑性的业务规则,并依赖(使用)资源;流程处于最上层,调用规则并管理资源.也可以看到,资源应该是系统最稳定的元素,改变资源可能需要调整规则和流程,由此,尽可能的抽象资源的业务意义,能尽力减少资源的影响.规则虽然处于中层,但是他具有良好的封装性,他的使用者(流程)不需要关注其内部结构,只需要执行,这样规则的灵活性是至关重要的.流程处于最上层,流程的变化影响最小,这也是流程管理需要的.
2. 流程生命周期: 针对上面谈到的流程生命周期的每个步骤提供工具集来协助用户更好的管理.
流程设计构件: 认识和设计资源,规则,流程的必要工具;
流程静态分析构件: 通过分析流程静态结构,资源的分配方式以及规则的正确性等步骤,在流程实际部署前保证流程"理论"上的正确性;
部署构件: 通过http部署资源,规则,流程, 随时随地完成流程的部署工作,同时部署方式简单;
版本管理: 变化不可避免, 自动版本控制功能,确保历史设计数据的恢复和查询能力;
测试流程构件: 即使没有页面,没有表单设计也能测试资源,规则,流程,为快速,准确的执行流程奠定基础;
执行流程构件: 流程执行接口多样化: API, remoting,webservice, MSMQ等;
监控流程构件: 实时监视和控制流程;
流程动态分析构件: 随需应变的分析历史数据报表,为流程优化提供良好的工具.
以上我列出了比较重要的构件集合,但还不是完整的集合,我们可以看到每个功能集合都围绕系统元素展开.
3. 系统结构: 这个视图由于商业技术的原因,我这里不便多透露,这个视图更多的是和开发人员关系紧密,使用者角度上说没有实际用处.
这个系列大部分围绕着前两个视图来展开,介绍其中的概念性元素以及流程管理中的应用.
最后,还是请大家多提意见,不恰之处还请包涵.