10.3.2.3
网关
网关控制流程的分支,在核心元素里,我们只关注一种网关:事件网关(Event-based
Gateway)。
图10-48事件网关
和排他网关不同,事件网关并不在输出顺序流上设定的条件,也不在网关自身上设定条件,它的输出顺序流只支持连接即时捕获事件和接受任务。当事件网关接受到一个Token时,它会给后续每个输出顺序流都生成一个Token,后续即时捕获事件等待触发器,后续接受任务等待消息,第一个等待到触发器或消息的事件/任务被触发,继续向后传递Token,其他顺序流上的Token被取消不再向后传递。
事件网关被我们应用于以下场景:案例在某个点有多个分支可供选择,只能有一个分支被实际执行。与排他网关不同:选择并不是在后续分支被触发之前,相反,这个决定被尽可能的延后,每个分支都有可能被执行,具体哪个分支被实际执行取决于具体的案例运行环境。例如,分支都被触发,一旦有一个最新的消息抵达,一个分支开始实际执行,其他的分支将被取消。这一应用场景属于工作流控制模式的延迟决策模式(WCP_16)。
10.3.2.3 数据元素和数据关联
我们使用数据元素标识流程中的数据,这些数据可以是文档可以是邮件也可以是数据库记录,通过数据元素,我们能够在流程图中标示出数据的流向与转换。
有4种数据元素:
- 数据对象(DataObject):代表随着流程流转的信息,例如业务文档、邮件、业务数据;
- 数据输入(DataInput):代表整个流程的外部数据输入;
- 数据输出(DataOutput):代表整个流程的执行结果;
- 数据存储区(DataStore):代表流程可以访问和写入的共享数据,例如数据库,共享数据的持久化管理并不由当前案例负责。
图10-49数据元素
图10-50使用数据元素标识出流程中的信息传递和信息状态
10.3.2.4 组
我们使用组对流程中的元素进行分类。这个分类不会影响组内的顺序流。分类的目的在于更好的组织文档和方便我们进行流程分析。
图10-51组 |