标签:
it/科技工作流软件bmp业务流程workflow |
工作流反思系列之三
——什么样的工作流会受到欢迎
王昕 2007-12-14
一、
功能要求:
- 完善的流程模型:除了要支持工作流领域常见的各类典型模型之外,还需要很多与国情有关的复杂工作流模型。例如有条件的智能回退、M选N复合判断、多级子流程嵌套、异步执行并发处理等。
- 强大的人机交互能力:管理类流程大多数情况下是与人进行的交互,所以该类工作流必须具备足够宜用、强大、灵活的人机交互能力。例如对领导/秘书的特殊处理、大领导对下属多级部门的跨级处理、系统自动选人/范围与人工选择的动态决策等等。
- 灵活的异常处理能力:凡是涉及到人为干预的情况,都会对异常的事件的处理能力提出超乎寻常的要求。毕竟管理类流程需要替代的是传统人工的工作方式,而这种管理层面的工作模式比任何业务或实时类流程中的例外事件都要多的多。例如发出之后,如何收回?紧急事件出现后如何打破现有规矩进行随机节点跳转?
- 快速二次开发能力:管理类应用涉及到很多客户个性化很强的功能,这需要阵地通用的工作流平台进行一定程度的二次开发才能达到。任何一个工作流都不能能涵盖所有功能,只要二次开发能力足够强大就可以轻松适应各类个性需求。例如在节点的执行前、执行中、执行后的操作,在不同的时间段执行不同的外部业务功能。
- 多级权限模型:考虑到大集中部署越来越多,工作流也需要全面支持多级授权模型。例如子部门的流程权限范围就要限于其部门内部,同时子部门可以自行单独管理其流程模板和实例,不受其他部门影响。
非功能性能要求:
- 负载能力:人为干预较多的管理类流程,因为其不确定性及时简点特征(在某个固定的时间点突然大量并发),需要系统具备较强的负载能力。例如一个日常2000人使用的一个系统,按照传统并发考虑是2%左右并发数计40人,但考虑到例外因素,有可能系统需要具体300以上的并发能力才可以满足要求。
- 易用性:易用性往往事关是一个软件系统的实施成败。从工作流待办事项到可视化流程跟踪,都需要尽量多的考虑到用户体验。
二、业务类流程
功能要求:
- 支持事务处理:一般业务类涉及的业务不确定性比较大,一旦出现问题,一般都需要进行额外的事务完整性处理。这就要求工作流必须支持事务处理功能,任何一个节点出现异常之后,都可以进行受控的回退和业务数据补偿等复杂操作。
- BPM:对于跨越不同应用系统的场合,一般需要BPM上台。BPM基于工作流但又不同于工作流,BPM和工作流的区别和BPM的介绍已经很多了,此处不再累述。
- 建模支持:业务系统一般讲究先创建业务模型,工作流也是业务模型的一员。所以,最好在流程模板的创建中在一定程度上支持业务建模,方便可以进行业务规划和部署。
非功能性能要求:
- 标准支持:一般业务系统涉及较多成熟应用,在很多成熟应用领域已经存在一些成形的信息交换标准,这要求工作流在于业务系统交互时,最好能对需要进行整合的业务应用标准进行兼容。
- 扩展能力:业务系统唯一不变的就是“变化”,所以能否提供随需应变的流程处理能力成为业务流程是否受欢迎的一个重要指标。要想适应变化,一定要做到技术平台化、开发标准华、功能组件化和接口灵活化等特征。
三、实时类流程
功能性要求:
- 多平台支持:实时应用比起管理类应用的平台背景会更加复杂,工作流产品必须具备足够丰富的平台兼容能力。
- 嵌入式开发模式支持:在实时系统里面,一般会采用严格的嵌入式开发模式,这对工作流产品也提出了很高的要求。尤其对于外部接口的调用方式与效率要求严格。调用方式中,对于异步调用往往会加入对时间性的限制。
- 强大的日志管理:实时系统对于每个步骤地业务操作都需要进行详细的日志记录,工作流引擎也不例外。一般会要求工作流引擎提供从实例的创建到终结的全生命周期日志记录功能,要把每个节点在什么时间做了什么事情并取得了什么结果进行清晰记录。
- 分析与统计功能:实时系统很好认为参与,这要求对业务的自动化程度很高。对于该类业务,分析与统计成为人为监控的最主要途经。例如应该做到多维统计:按照业务执行单元、按照时间、按照流程、按照某个设备参与情况等。
非功能性能要求:
- 实时性要求:虽然工作流引擎涉及的内部逻辑较为复杂,但应用在实时系统中时,实时性必须得到很好的满足。例如启动一个流程、自动任务提交等必须保证响应时间要求。
- 7X24要求:实时系统一般为长期自动运行状态,所以要求工作流也要保证不间断运行。
四、总结