我负责一个开发团队谁将开始开发一个轻量级保险索赔系统。该系统涉及大量的手工任务和业务工作流程,我们正在考虑使用 Windows 工作流程(。NET 4.0).
An example of the business domain is as follows:
投保人致电联络中心提出索偿。这个“事件”触发两个子任务,这两个子任务是并行手动操作的,可能需要很长时间才能完成;
- 检查客户是否存在欺诈行为——一个手工过程,操作员通过这个过程打电话给各个信贷公司,检查和评估欺诈客户的潜力。从这里,子任务可以输入一些子状态(检查在进行中,失败的参考检查,通过参考检查等)
- 将物品送到维修中心-将投保人提出索赔的物品送到维修中心进行修理的人工过程。从这里子任务可以输入一些子状态(等待修复,进行中,修复,发布等)。
The claim can only proceed once the status of each sub task has reached a predefined status (based on the business rules).
从表面上看,工作流确实是最好的技术选择; 然而,在使用 WF 4.0时,我确实有一些顾虑。
- 技能集-看看一般的开发人员技能集,我没有看到很多开发人员理解或了解工作流。
- 可维护性——在社区中似乎很少有人支持 WF 4.0项目,而且这种情况加上缺乏技能集引起了对可维护性的关注。
- 进入障碍-我有一种感觉,Windows 工作流有一个陡峭的学习曲线,它并不总是那么容易拿起。
- 新产品-作为工作流已经完全重写。NET 4.0我认为该产品是第一代产品,可能没有必要的稳定性。
- 声誉-以前版本的工作流没有得到很好的接受,被认为难以开发,并导致业务吸收能力差。
因此,我的问题是,我们应该使用 Windows Workflow (WF)4.0来解决这种情况,还是有其他替代技术(例如,简单状态机等) ,甚至是更好的工作流引擎来使用?