控制模式是流程的中枢神经,它在作战小分队中负责将多个单独的作战活动组合在一起,并推动活动的自动化流转,形成作战流程。其重要性不言而喻,因此要设计一个好的流程,就必须学会应用各种各样的控制模式。
在探寻每个模式的究竟之前,我们首先定义一个统一的格式,对于控制模式,将按照如下统一的格式进行描述:
模式描述
我们在探寻每个控制模式时,将按照如下统一的格式进行描述。
原型实例(故事片段)
给出此模式的故事片段,通过鲜活的工作流故事展现此模式的应用场景。
上下文(描述、动机)
给出此模式的具体描述和动机:为什么有此模式,是为了解决什么问题。
问题的本质
此模式的本质是什么?即本质上要做什么事情?
解决方案及技术实现
给出此模式的解决方案及技术实现。
约束及可能存在的问题
此模式可能存在的约束和问题。模式并不是万能的,在软件中没有银弹,同样也没有包治百病的模式,每种模式都有可能存在一些约束及限制条件。应用此模式可能会引发什么问题,怎样解决这些问题。
规范中的实现
给出此模式在相关规范中的实现。目前流程有三大规范XPDL、BPEL、BPMN,我们将按照每个规范的最新版本XPDL 2.1(需要说明的是,本章中的XPDL示例,都是由BizAgi Process Modeler 2.1.0.1生成的)和BPMN 2.0(所有BPMN 2.0的XML定义,都是由signavio提供的在线流程建模器生成的),来描述当前模式在其中的实现。对于BPEL,我们始终认为它不是一个“流程”语言,其本质上是一个Web服务的编制语言,因此只有部分模式使用BPEL描述。
与其他模式的关系
此模式与其他模式有什么样的关系?是否有配对使用的要求?是否有与其他模式进行组合,解决复杂场景的情形?
1.1.1 房改购房审批流程中的串行模式
图3.2是江南市房管局房改购房立等可取的审批流程。在这个流程中,所有的作战活动都是串行在一起的,完成一个活动才能操作下一个活动,这就是工作流控制模式中的“串行模式”。串行模式极其简单,这里就不按照统一格式进行描述了。
图3.2 房改购房立等可取的审批流程
1.1.2 房改购房审批流程中的“并发分裂“与”并发汇聚“模式
1. 并发分裂模式
原型实例(故事片段)
图3.3 房改购房审批流程的“并发分裂”原型实例
如图3.3所示,复杂的房改购房流程需要两个核查岗位进行核查,因此在“复审”环节之后,并发分裂为了两个活动:“查封核查一”与“查封核查二”。在这个故事片段中,为了提高效率,两个核查环节并行工作,从而将核查的时间缩短了一半。