工作流引擎设计中关于处理时限的遐想
2009-02-04 21:39
288 查看
最近总有网友来咨询我和我的同事关于工作流引擎设计方面的一些思路,有一个很明显的感触,很多朋友在设计工作流引擎之前 已经习惯了一种“契约式”编程设计的方式,也就是说在明确的需求和约束下去设计和开发。然而工作流引擎并不是一个能在明确需 求和约束的情况下设计的算法。但无论怎样工作流引擎是需要为业务目标服务的,具体的业务流程如何,我们的算法和目标及准确的 计算是必然需要的。
设计工作流引擎很多时候是需要去处理各种未知的、可能的、可能存在的、曾经有过的、各种版本的需求、只有进行了足够的抽 象和设计才能达到一个足够的灵活度和适应度。就拿处理时限来举例。
就存在各种未知的、可能的、可能存在的、曾经有过的、各种版本的具体需求,无论哪种需求的可能,业务的目标不能受到影响 ,在工作流处理各种业务的时候,不能影响考核的准确性:
1、时限分为 流程的处理时限、 环节的处理时限 ,两种时限上的关系错综复杂
2、时限的单位 可能有按工作日计算 可能有按工分计算,也可能有按工时计算,也可能按自然分钟计算 和自然小时计算。
3、具体业务流程中有可能会存在指定下一个环节的处理时限的需求
4、流程暂停一段时间后需要重新计算处理时限
5、具体的流程时限规定对具体业务上一些时限可能存在着某种影响
6、流程暂停的时候对业务数据中的时限相关数据可能存在某种影响
7、流程中的特殊权限可能对时限存在某种影响
8、流程的暂停和恢复 可能对子流程的判断、时限存在着影响
9、时限规定了之后,还可能有一个警告的设置
10、预警的方式又可能有各种各样的
11、流程时限计算好以后,实际流程运转过程中可能有调度、跳转、暂停等等特殊的行为,都不能影响对于超时未完成的事项的 计算
。。。。。。
设计一个工作流引擎 处理时限只是一个不特别重要的方面,还有很多方面要考虑的,比如环节的类型、各种条件路径的因素、 各种特殊权限、特殊动作行为、跟业务的结合的方式、各种人员设置的方式、引擎跟业务数据的事务的完整性、引擎不能处理的时候 业务上的方法和接口。。。。所有的情况都可能是未知的、可能的、可能存在的、曾经有过的、各种版本的。
如果自己去设计工作流引擎,只有进行了足够的抽象和设计和长期优化积累才可能达到一个足够的灵活度、适应度和比较好的性 能和稳定性,设计工作流引擎有时候在学习和理解流程引擎标准的前提下更需要去理解管理、理解各种管理流程的思路。也许应用一 个成熟、稳定、性能好、有足够多成功实施经验的工作流引擎是一个更好的选择。
设计工作流引擎很多时候是需要去处理各种未知的、可能的、可能存在的、曾经有过的、各种版本的需求、只有进行了足够的抽 象和设计才能达到一个足够的灵活度和适应度。就拿处理时限来举例。
就存在各种未知的、可能的、可能存在的、曾经有过的、各种版本的具体需求,无论哪种需求的可能,业务的目标不能受到影响 ,在工作流处理各种业务的时候,不能影响考核的准确性:
1、时限分为 流程的处理时限、 环节的处理时限 ,两种时限上的关系错综复杂
2、时限的单位 可能有按工作日计算 可能有按工分计算,也可能有按工时计算,也可能按自然分钟计算 和自然小时计算。
3、具体业务流程中有可能会存在指定下一个环节的处理时限的需求
4、流程暂停一段时间后需要重新计算处理时限
5、具体的流程时限规定对具体业务上一些时限可能存在着某种影响
6、流程暂停的时候对业务数据中的时限相关数据可能存在某种影响
7、流程中的特殊权限可能对时限存在某种影响
8、流程的暂停和恢复 可能对子流程的判断、时限存在着影响
9、时限规定了之后,还可能有一个警告的设置
10、预警的方式又可能有各种各样的
11、流程时限计算好以后,实际流程运转过程中可能有调度、跳转、暂停等等特殊的行为,都不能影响对于超时未完成的事项的 计算
。。。。。。
设计一个工作流引擎 处理时限只是一个不特别重要的方面,还有很多方面要考虑的,比如环节的类型、各种条件路径的因素、 各种特殊权限、特殊动作行为、跟业务的结合的方式、各种人员设置的方式、引擎跟业务数据的事务的完整性、引擎不能处理的时候 业务上的方法和接口。。。。所有的情况都可能是未知的、可能的、可能存在的、曾经有过的、各种版本的。
如果自己去设计工作流引擎,只有进行了足够的抽象和设计和长期优化积累才可能达到一个足够的灵活度、适应度和比较好的性 能和稳定性,设计工作流引擎有时候在学习和理解流程引擎标准的前提下更需要去理解管理、理解各种管理流程的思路。也许应用一 个成熟、稳定、性能好、有足够多成功实施经验的工作流引擎是一个更好的选择。
相关文章推荐
- 关于工作流引擎时限设计的一些建议
- F2BPM中关于工作流引擎驳回设计
- 越深入java 就觉得java做得越烂,java设计问题 之 :关于1.5,1.6 java处理基本对象类型cache的问题
- 简单工作流引擎是按一个单据的(类型),单据的(主键) 来处理流程步骤的,这个就是工作流设计的核心思想
- 关于基于DDD+Event Sourcing设计的模型如何处理模型重构的问题的思考
- 游戏设计一、关于游戏动态数据和静态数据的处理
- 关于断言与错误处理,以及测试用例的设计
- CodeIgniter框架中关于DB事务处理的设计缺陷
- 关于事务处理机制和原理、分布数据库设计架构与原理
- Android开发设计模式之——单例模式关于线程不安全问题处理
- 在Magento 设计集成中关于products list等页面中TD或LI 的等高处理(分行处理)
- 关于异常的处理以及相关设计
- 关于android图标美工设计尺寸与处理方法
- 简单工作流引擎是按一个单据的(类型),单据的(主键) 来处理流程步骤的,这个就是工作流设计的核心思想
- 关于android图标美工设计尺寸与处理方法
- 关于设计:Actionscript 载入外部文件与打印处理
- 系统设计时关于性能问题处理的几点心得
- CCBPM关于工作流引擎取回审批的设计方案与实现过程
- 关于工作流引擎取回审批的设计方案与实现过程
- 处理【关于sql server 2008 表设计无法保存】的问题