工作流模式(转载)- -

导读:   Workflow模式   Workflow模式是开发工作流必须了解的知识。   本文档是根据如下资料简单翻译的:http://is.tm.tue.nl/research/patterns/patterns.htm   Basic Control Flow Patterns(基本模式) 1. Sequence 模式   定义:串行模式:在一个工作流中,一个动作在另外一个动作完成后使能。 举例:单据录入的动作完成后,审核的动作被执行。 2. Parallel Split模式:   定义:并行分支模式(与分支、AND-Split):工作流中的一个节点,在该节点,一个单一的线程被分成多个线程,这些线程可以被并行执行,因此,分支的动作可以被同时执行或者以某种顺序执行。 举例:客户付款后,送货和通知客户的动作可以并行执行 3. Synchronization模式:   定义:同步模式,(与汇合、AND-Join):在工作流中的一个点,在该点处,所有并行的子流程或者活动,汇合成一个单一的线程。因此必须所有子流程(活动)执行完成后,才可以执行下一个活动。   前提条件:所有的子流程(活动)仅能被执行一次,不可以重复执行   举例: 4. Exclusive Choice 模式:   定义:唯一选择模式(XOR-split):在工作流的一个点,根据选择条件或者工作流控制数据,在多个分支中选择一个分支执行。    5. Simple Merge 模式   定义:简单合并模式(XOR-join):在工作流的一个节点,一个或者多个可选分支非同步到达。只要一个动作完成,就会触发后续动作。   前提条件:这些分支中不存在并行执行的情况。   Advanced Branching and Synchronization Patterns (高级分支、同步模式)    6. Muti-Choice模式:   定义:多选择模式(或分支 OR-split):在工作流中的一个节点,根据条件或者相关控制数据,多个分支被选择。Exclusive Choice 模式仅能选择一个分支   备注:由于某些工作流不支持该模式,因此,可以通过AND-split 模式,XOR-split模式组合来表达。 举例:A活动执行完后,根据条件,B活动,C活动被选择执行。 7. Synchronizing Merge模式:   定义:同步合并模式:在工作流中的一个节点,多个被选的分支汇合成一个单一的线程。如果有多于一个的分支被执行,工作流会等待所有的分支执行完成后,才开始下一个动作的执行。   前提条件:在该节点的下一个动作执行前,被选的分支动作仅能被执行一次。举例:加入A、 B 被选择执行,只有当A 、B都执行完毕后,动作D才可以被执行。 8. Multi Merge 模式:   定义:重复组合模式:在工作流的一个节点,多个被选分支非同步的聚合。每一个分支完成后,后续的动作都会被执行一次。举例:如果A、B被 选择执行,A执行完毕后,D会被跟着执行;B执行完毕后,D也会再执行一次。 9. Discriminator 模式:   鉴别器模式(M-OUT-of-N模式 ):在工作流中的一个节点,在等待N个分支的执行的过程中,只要其中的M个分支完成,它就会触发随后的动作,并忽略其他的分支。举例:只要B/C/D 三个活动中,有两个活动完成,就会触发E动作。另外一个动作将会被忽略。Structural Patterns(结构化模式)    10. Arbitrary Cycles模式:   定义:任意循环模式:在工作流的一个节点,一个或者多个活动可以被重复执行。    11. Implicit Termination 模式:   定义:隐式终止模式:在没有其他活动可以执行时,一个子流程应该被终止。当然,前提是不存在死锁的情况。Patterns involving Multiple Instances (多实例模式) 12. Multiple Instances Without Synchronization 模式:   定义:非同步多实例模式:在一个工作流实例的环境中,一个动作的多个实例可以被创建。也就是说在控制线程外,产生新的线程。这些线程相互独立,不需要同步。   举例:在客户订书的流程中,客户可以对不同的书下单,因此订书的动作存在多个实例,订A书的实例,订B书的实例等等。 13. Multiple Instances With a Priori Design Time Knowledge 定义:拥有优先设计知识的多实例模式:在一个流程实例中,一个活动被实例化的次数在设计时是可知的。一旦所有已知的实例完成,其他的活动需要被执行。   举例:某个订单,需要三次不同的审核。 14. Multiple Instances With a Priori Runtime Knowledge模式:   定义:拥有优先运行知识的多实例模式:在一个流程实例中,一个活动被实例的话次数在设计时是不可知的,它依赖于流程特性或者资源可用性,仅在流程实例运行时的某个阶段可知。   举例:在一个评审团对科学论文的评审流程中,评审的动作依赖于论文的内容,评审团人员的数量,评审团的信誉。 15. Multiple Instances Without a Priori Runtime Knowledge模式:   定义:无运行知识的多实例模式:在一个流程实例中,一个活动被实例的话次数在设计时是不可知的,在流程运行的过程中也是不可知的。   举例:在100台计算机的运输流程中,每次运输的计算机的个数是不可知的,因此整个的运输次数也是不可知的。State-based Patterns (基于状态的模式)    16. Deferred Choise 模式:   定义:延期选择模式:在工作流的一个节点,在多个可选分支中,只有一个分支选中。不同于XOR-split模式(选择是显式的,根据条件判断,立即决定分支的选择),可选分支是由环境决定的。不同于AND-split模式,只有一个分支被选择。也就是说一旦环境激活其中的一个分支,其他的分支讲被丢掉。很重要的一点是:直到可选分支中的一条被激活,“选择”才进行,因此选择的时刻被尽可能的延期。 17. Interleaved Parallel Pattern模式:   定义:交叉并行模式:一组动作以任意的顺序执行。动作执行的顺序,在工作流实例运行时刻决定,不存在两个动作同时运行的情况。   举例:在体检的中,血液检查、视力检查是两个不同的动作,这两个动作的先后顺序可以是随机的,但是一个时刻只可以执行一个动作,不会同时进行。 18. Milestone模式:   定义:里程碑模式:工作流实例的一个动作依赖于某个特定状态,也就是说当某个里程碑到达后,该动作才可以被执行。   举例:在工厂发货前的头两天,客户可以取消订单。 19. Cancel Activity 模式:   定义:活动取消模式:一个使能的活动被设为不可用,即等待一个活动执行的线程被移除。   举例:一个设计通常由两组工程师检查,为了赶进度,其中一组的检查可能被取消 20. Cancel Case模式:   定义:取消案例模式:一个工作流的实例被彻底的移除,也就是说无论是否该实例有动作已经实例化。   举例:在最终法院判决前,起诉人可以撤销上诉。 本文转自 http://ziyang.blogdriver.com/ziyang/1109259.html  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值