10.1.1   基本元素

什么是BPMN基本元素?我们为什么要从BPMN元素中界定出一个基本元素的子集?BPMN基本元素是我们认为可以进行实际建模的BPMN元素的最小子集,使用BPMN基本元素我们可以创建非常简单的流程(编制)和协作模型,这些元素非常容易学习,对于没有技术背景的业务人员也很容易理解,适合草图和非正式的沟通。

BPMN基本元素包括了这些元素,如下图所示:

 

  • 泳道:池和道;
  • 三种连接对象:序列流、消息流和关联;
  •  一种活动:任务(Task),其中包括了子流程任务(Sub-ProcessTask);
  •  两种事件:普通开始事件(NoneStart Event)和普通结束事件(None End Event);
  •  两种网关:排他网关(Exclusive)和并发网关(Parallel);
  •  一种人工制造物:附注。 


图10‑11BPMN的基本元素

         在下面对BPMN基本元素的介绍里,我们分为了两部分,第一部分我们从整体上了解BPMN元素几个大的分类:泳道、流对象、连接对象和人工制造物,其中也包括了对流程执行语义的说明;在第二部分里,我们则具体了解流对象的分类:事件、活动和网关,我们只介绍其中的基本元素。

10.1.1.1        泳道、流对象、连接对象、人工制造物和流程执行语义
泳道

我们使用泳道来区分不同部门或者不同参与者的功能和职责。泳道包含两种类别:池和道。我们使用池来表示流程的参与者,应用在公开流程和协作模型里(还记得我们BPMN的三种流程模型吗?如果没有印象了,它们就在10.2小节)。

池与池之间的交互只能使用消息流表示。


图10‑12池表示流程的参与者

         我们使用道对池内的活动进行分组,我们可以根据活动所属的部门或办理所需的职责(角色)来对活动进行分组。


图10‑13使用道表示不同的部门



图10‑14使用道表示不同的角色

如果流程是私有流程并且活动没有分组的需要,那么通常我们会省略池。


图10‑15在活动没有分组的私有流程里忽略池

流对象

流对象是定义业务流程的主要图形元素。它进一步细分为三个大的类别,分别是事件、活动和网关。具体到事件、活动和网关里,流对象有很多的类别,BPMN元素的复杂性体现在流对象的众多类别上。

 

  •  事件:发生在流程执行过程中的事情;
  •  活动:在流程执行过程中执行的工作;
  • 网关:控制流程的分支和聚合。

 


图10‑16流程中的流对象

连接对象

连接对象用来把各个流对象或流对象与其他信息连接起来,它分为四种类别:顺序流、消息流、关联和数据关联。

 

  • 顺序流:表示流对象的前后执行顺序;
  •  消息流:表示公开流程或协作模型里参与者之间的消息、交互;
  •  关联:为流程中的元素关联信息或数据;
  •  数据关联:表示数据在流程、活动和数据对象之间的传递。

 


图10‑17流程中的连接对象


图10‑18数据关联

人工制造物

人工制造物用以给流程附加一些额外的信息,不影响流程的流转,它分为两种类别:组和附注。

 

  •  组:对元素进行分类;
  •  附注:给元素附加信息,便于阅读。

 

流程执行语义

我们可以将流程的执行看作是Token的流转,Token从一个源流对象经过顺序流流转到一个目标流对象,当一个流对象拿到一个Token时即开始执行,当执行完成后再把Token通过顺序流流转出去。类似于我们小时候玩的击鼓传花游戏,拿到花(Token)才能行动。


图10‑19把流程执行看成是Token的流转

每次流程接受到一个新的开始事件,就会启动一个新的案例(流程实例)开始执行。一个流程在同一时间可能有多个案例正在执行。


图10‑20案例

 

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并发网关


Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐