BPMN这点事-BPMN基本元素(下)

来源:互联网 发布:java数据字典表设计 编辑:程序博客网 时间:2024/04/29 05:39

10.1.1.1        事件、活动和网关

事件

我们将发生在流程执行过程中的事情称为事件。事件有三种类型:


  •  开始事件:触发流程的执行;
  •  即时事件:在开始事件和结束事件之间发生的事件,会影响流程的流转,但不会启动或直接终止流程的执行;
  •  结束事件:表明流程执行结束。





 

图10‑21事件的三种类型

对一个事件来说,通常会有产生该事件的原因(起因)和该事件所产生的影响(结果),例如一个消息的到来触发了一个事件并导致流程的启动,这个开始事件的起因是消息,它被称为消息开始事件,流程在结束时发送了一个消息,这个结束事件的结果是发送了消息,它被称为消息结束事件。我们使用不同的标识来区分事件的不同起因和结果。我们也使用事件不同的起因和结果来分类事件,完整的事件类型如下图所示:



 

图10‑22完整的事件类型

在基本元素里我们只关注两种类型的事件:普通开始事件和普通结束事件。普通开始事件没有指定事件的起因,它只是产生Token,触发流程的执行;普通结束事件没有指定事件的结果,它消费掉Token,结束流程的执行。共有10种类型的开始事件和9种类型的结束事件,在后续的小节中我们会逐一讨论到。



 

图10‑23普通开始事件和普通结束事件

作为一个其他开始事件的例子,我们接受一个邮件消息并开始在线的下订单任务,这个开始事件的起因是消息,所以称为消息开始事件。



 

图10‑24消息开始事件

活动

我们将在流程执行过程中执行的工作称为活动。活动可以是原子的,也可以是非原子的(复合的),活动分为两类:任务(原子的)和子流程(复合的)。任务是流程模型中最小工作单元,不能继续分解,子流程则能继续分解为一系列的子活动。在流程模型里,子流程可以展开也可以收起。



 

图10‑25任务和子流程

一个活动可能会有零到多个输入顺序流,也会有零到多个输出顺序流。需要记住的是,只要任何一个输入顺序流传入Token,活动都会立即执行,而执行完毕后如果有多个输出顺序流,它则会产生多个Token,每个输出顺序流传递一个(相当于并发)。

网关

         网关控制流程的分支和聚合。有七种网关,各种类型网关的分裂和聚合行为由下面三种因素控制:


  •  输入顺序流和输出顺序流上设定的条件;
  •  输出顺序流上的事件;
  •  网关自身上设定的条件。


在基本元素里我们关注两种类型的网关:排他网关和并发网关。

排他网关在分裂时,只会选择一个输出顺序流传递Token,排他网关在聚合时,任何一个输入顺序流传入Token,网关都会向后传递,不会对Token进行同步。我们使用“x”在网关内部标示出这是一个排他网关,默认情况下,我们也可以忽略标示。



 

图10‑26排他网关

         并发网关在分裂时,会产生多个Token,每个输出顺序流传递一个(并发),并发网关在聚合时,会对所有输入顺序流的Token进行同步,只到所有输入顺序流的Token都到达后才会向后传递Token。我们使用“+”在网关内部标示出这是一个并发网关。



 

图10‑27并发网关