解读BPMN与JBPM中流程元素的对应关系

<definitions... >
       
<!-- declaration of the signal -->
       
<signalid="alertSignal"name="alert"/>

       
<processid="catchSignal">
               
<intermediateThrowEvent id="throwSignalEvent" name="Alert">
                       
<!-- signal event definition -->
                       
<signalEventDefinition signalRef="alertSignal"/>
               
</intermediateThrowEvent>
                ...
               
<intermediateCatchEvent id="catchSignalEvent" name="On Alert">
                       
<!-- signal event definition -->
                       
<signalEventDefinition signalRef="alertSignal"/>
               
</intermediateCatchEvent>
                ...
       
</process>
</definitions>

  

信号类比JBPM中的概念事件的ACTION动作。JBPM中比较笼统。没有细分。

intermediateThrowEvent 中间事件类比JBPM中的概念:即事件本身。JBPM中粒度较粗。

信号全局范围的事件(广播语义)。 会发送给所有激活的处理器。类比JBPM中的概念事件的传播范围,可以被监听。XBPM中缺少实现。

信号事件定义使用signalEventDefinition元素。 signalRef属性会引用definitions根节点里定义的signal子元素。

下面是一个流程的实例,其中会抛出一个信号,并被中间事件捕获。

=========================

<boundaryEvent id="escalationTimer" cancelActivity="true" attachedToRef="firstLineSupport">
     <timerEventDefinition>
      <timeDuration>${duration}</timeDuration>
    </timerEventDefinition>
  </boundaryEvent>
boundaryEvent 边界事件:类比JBPM中的概念:即事件本身。JBPM中粒度较粗。
timerEventDefinition:类比JBPM中的概念:具体的动作。这里指时间处理。而JBPM定时器独立抽象出一个概念了。这里和事件概念统一了,挺好的设计。
 

 

 

 

posted on 2013-09-26 20:46  莫向  阅读(1419)  评论(0编辑  收藏  举报

导航