您的位置:首页 > 其它

工作流模式详解之基本流程控制模式的应用与设计(6、7、8、9)

2007-04-19 17:19 821 查看
  现在讲述的四种模式,包括:Multi-Choice、Structured Synchronizing Merge、Multi-Merge、Structure Discriminator,一般将其归纳为高级的分支和同步模式(Advanced Branching and Synchronization Patterns)。

1. 关于模式的归类

  何以将这些模式叫"高级"呢?因为从这些模式开始,在技术水平上就把各种工作流产品拉开了距离。因为技术上实现的复杂性,所以许多工作流产品/标准都不一定能直接支持,甚至有些产品无法描述这些流程模式。如果一些研究过早期工作流模式的朋友,可能会发现没有了 Synchronizing Merge 这种模式,因为现在已经被拆分为三个模式:Structured Synchronizing Merge、Acyclic Synchronizing Merge 和 General Synchronizing Merge。

2. 小说人们对工作流的认识

  工作流模式是对实际业务的一种总结,也是一个工作流系统设计的发展历史。可以看到前面的5种基本流程控制模式,是基于最简单的流程图方式,还有计算机并发的处理。在这时候,人们对工作流系统的认识也大都停留在这种以软件技术手段延伸出来的层次上(就是仿照软件技术中处理流程的方式)。而这些模式,正是WfMC组织开始约定的几种分支/合并模式(详细参见WFMC-TC-1011,http://www.wfmc.org/standards/docs/TC-1011_term_glossary_v3.pdf)。但是基本的模式在实际的应用过程中,并不足以表达实际的业务逻辑,这样就使得深入研究工作流模式越来越重要。

  高级流程这四种模式的引入,正好能让我们窥探前辈探索的道路。其基本特征,可以清晰地看到工作流的流程控制两个发展方向:终端用户的参与,和上下文关联。所谓的终端用户参与,即根据业务数据(或者终端用户的选择)来确定流程路径的走向(分支);而上下文关联,就是在若干的前躯时候,由于用户的选择而动态的产生了分支,在某一点上必须根据上文分支来决定其合并方式(合并)。这样很清晰的一个理念和方向便确立起来:对工作流的流程模式研究,不再是以往那样只关心流程的拓扑结构,而是更多的关心对实际业务的归纳总结。(感叹,国内同行的什么时候才能达到这个层次?)

3. 应用

  这部分的模式,如果没有数学工具作为验证前提,建议尽量配对使用。下面列出几种配对的建议:


Multi-Choice → Multi-Merge




Multi-Choice → Structured Synchronizing Merge



Parallel Split → Structured Discriminator

  当然,并没有限制配对的方式,不过配对的时候,需要仔细推敲(还有数学方法可以使用,这个有机会的话另外讲述),避免出现不可控制的情况。其中注意到 Multi-Choice 实际上可以概括 AND、XOR 的分支模式,因此理论上说,做一些额外的处理可以使得 Multi-Choice 换成 AND、XOR 也可以(这里的额外处理,是让 Structured 类的节点获得上文的信息)。

  还有值得注意一点,Multi-Merge 这个模式实际上是Clone了数个不同的流程分支,最后这些产生的分支如何合并,还需要看具体的工作流产品的具体算法决定。如果算法是在图形结构上生成了不同的分支(即使用图形的拓扑结构实现这个模式),那么最终可以使用一个 AND-join 或者 Structure Discriminator 合并。

4. 实例

  这些流程模式本身已经表达了一些较为复杂的现实结构,考虑一个实际的业务:一个企业,一般策划的活动进度管理。首先草拟策划方案,这个方案可能涉及不同部门的参与,具体的部门根据方案内容确定。草拟方案后,将方案交给需要参与的部门负责人审批。一个部门负责人审批方案结束后,便可安排人员并开始执行。可考虑下面的设计:

 


  注意,上图中为什么不能让经理审批不通过后直接返回上一部的草拟方案呢?实际上也可以这样做,只要在草拟方案的业务中判断,如果是属于审批退回来的情况,则后续的路径选择只能是对应退回来的那个步骤,这种设计需要在这个流程实例中保存数个变量来识别退回后的路径选择。不过这种做法需要仔细推敲业务处理的代码。如下图:


  其他的模式,除了Structure Discriminator以外,业务上的例子很多,这里就不一一列举了。Structure Discriminator 这个模式我自己并没有遇到过实际的业务,不过 plutoner 说的业务也很实在,乃真经验之谈也。

5. 总结

  所谓的高级模式,更注重了终端用户的选择权,同时引入了较为复杂的动态路径选择方式。这里我们似乎可以看到前辈研究工作流的点点滴滴。我觉得,这些模式的深入研究,是使得工作流足以独立成一个复杂体系的开端。如果工作流就如普通的流程图一般,那也没有如此红红火火的市场。如果这些模式的发展足以囊括大部分的业务方式,那么工作流肯定是要成为信息化一个最重要的基石。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: