我负责一个开发团队,他们即将开始开发一个轻量级的保险理赔系统。该系统涉及大量手动任务和业务工作流程,我们考虑使用Windows Workflow(.NET 4.0)。
业务领域的一个示例如下: 保单持有人致电联系中心进行索赔。此“事件”会触发两个子任务,这些子任务需要并行手动操作,可能需要很长时间才能完成;
- 检查欺诈客户- 运营商将调用各种信用公司来检查和评估欺诈客户的潜力。从这里开始,子任务可以进入许多子状态(检查进行中、参考检查失败、参考检查通过等)
- 将项目发送到维修中心- 申报索赔的项目被送到维修中心进行修复。从这里开始,子任务可以进入许多子状态(待修复、正在处理、已修复、已发布等)。只有当每个子任务的状态达到预定义状态(基于业务规则)时,索赔才能继续进行。
表面上看,Workflow确实是最好的技术选择;但是我对使用WF 4.0有一些担忧。
- 技能集- 查看平均开发人员技能集,我并没有看到很多了解或掌握Workflow的开发人员。
- 可维护性- 社区中似乎很少支持WF 4.0项目,再加上缺乏技能集,对可维护性存在担忧。
- 入门门槛- 我有一种感觉,Windows Workflow具有陡峭的学习曲线,不总是那么容易掌握。
- 新产品- 因为Workflow已完全重写为.NET 4.0,我认为该产品是第一代产品,可能没有必要的稳定性。
- 声誉- 先前版本的Workflow未受欢迎,被认为难以开发,并导致业务接受度低。
所以我的问题是,我们是否应该在这种情况下使用Windows Workflow (WF) 4.0,还是有另一种替代技术(例如Simple State Machine等),或者甚至有更好的工作流引擎可供使用?