BPMN2.0规范的学习与总结
名词解释
BPM:Business Process Modeling业务流程建模
BPMN:Business Process Modeling Notation 业务流程建模语言
BPMN2.0:BPMN标准。业务流程模型与符号建模标准,以XML为载体,以符号可视化业务。
工作流引擎:通过BPMN(业务流程建模语言)来进行BPM的应用程序。
BPEL:Business Process Execution Language。允许面向服务的体系结构(SOA)中的web服务、API和人工流程在业务工作流中互连和共享数据。
BPMN 2.0
一致性
该规范定义了四种类型的一致性,即流程建模一致性(建模器)、流程执行一致性(流程引擎)、BPEL流程执行一致性和编排建模一致性,当且仅当软件完全匹配适用的规范中规定的合规点,才能声明软件符合此规范,否则只能声明软件基于此规范。
流程引擎:满足流程执行一致性,1)需要支持和解释操作语义和活动生命周期,2)支持BPMN流程图类型的导入
建模器:满足流程建模一致性,1)满足所有协作类型,2)支持所有流程元素。满足编排建模一致性,需支持Pools 和 Message Flow.
机制
BPMN规范是分层组织的,一个最基本的BPMN内核必须包括:流程 编排 协作 。
流程(Process):
协作(Collaboration ):通过Message Flow,实现pool或pool之间的交互。
元素
流对象(Flow Object)
定义业务流程行为的主要图形元素。
Activity
定义
表示流程中执行工作的点, 是 BPMN 流程的可执行元素。它是一个抽象元素,具体实现方式为: Task, Sub-Process, Call Activity
功能
补偿、循环、边界事件、token与多实例、关联、资源、资源角色:
● 标识是否通过补偿事件触发
● 通过指定重复标准循环执行:标准循环 多实例循环
● 数据输入和输出
● 存储边界事件定义
● DataInputAssociations 和 DataOutputAssociations
● 存储来自Flow的token、token_StartQuantity 、token_CompletionQuantity
特征
Multi-Instance
通过表达式计算实例数;通过数据驱动设置;
并行与串行
Loop
标准循环:loopMaximum loopCondition testBefore 。循环条件为true时触发
多实例循环
实例数:表达式或输入数据
抛出事件标识:被 MultiInstance 边界事件捕获
None, 每个实例完成时
One, 第一个实例完成时被抛出
All, 不抛出事件,所有实例完成后生成一个token
Complex,根据complexBehaviorDefinitions 确定是否以及要抛出哪些事件。对于 none 和 one 的行为,会抛出一个默认的 SignalEventDefinition,它会自动携带 MI Activity 的当前运行时属性。
Resources
指定activity引用的资源,并为资源分配参与者,参与者可以 以特定个人、团体、组织角色或职位或组织的形式进行指定
DataInputAssociation
从流程变量到任务输入以及从任务输出到其他流程变量的数据映射。
Task
类型
● Service Task:调用外部服务,只有一个inputset和最多一个outputset
● Send Task:发送任务,将消息发送给外部流程参与者,任务结束。执行时,数据会自动从发送任务上的数据输入移动到要发送的消息中。
● Receive Task:接收任务,等待接收外部流程参与者,收到消息后任务结束。通常用于启动流程。(消息中间捕获事件替代)
● BusinessRule Task:用于对业务规则的评估进行建模,比如以决策模型和符号DMN建模的决策
人工任务
● User Task 用户任务
● Manual Task 手动任务,无需 business process engine 执行
Sub-Process
标记:循环,多实例,补偿,ad-hoc,除了不能同时显示循环和多实例之外,其他的可以组合
属性
类型
Embedded Sub-Process :
■ 定义:嵌入式子流程,可以展开和收缩。没有独立的含义或定义,是父流程的流程片段。
■ 触发机制:通过父流程的flow触发。
Reusable Sub-Process (Call Activity) :
■ 定义:可重用子流程,用于业务自动化。在流程中标记一个点,该点将会调用全局子流程。
● Call Activity指定从其流程变量到CallableElement的数据输入和输出的映射,从而实现解耦
● 覆盖被调用元素( Callable Element )的属性和属性;沿层次传播的事件可以从被调用的元素传播到
call activity
触发机制:Event Sub-Process :
■ 定义:事件子流程,通过bool属性 triggeredByEvent 标识,不是父流程的一部分,必须有一个开始事件,它没有传入或传出的序列流。
■ 触发机制:事件子流程有一个带触发器的开始事件, 每次在父流程启动时触发,然后事件子流程就会启动。(开始事件类型:消息、错误、升级、补偿、条件、信号和多重)● message触发,不中断父流程,可多次触发● 补偿事件触发,父流程完成后触发● error触发,父流程停止或中断
Transaction Sub-Process:
■ 定义:事务子流程,通过事务协议进行控制
■ 触发机制:父流程的flow
■ 流程结果:● Success Complete: 回归父流程的flow● Cancel :通过Cancel Intermediate Event ,回滚和补偿结束后,连接父流程flow○ cancel End Event ○ cancel Message.● 中断:error timer non-Transaction Activity 不会触发补偿
Ad-Hoc Sub-Process :
■ 定义:一组无需顺序流连接的Actitivty,由用户决定活动的顺序和数量,可以添加 定义了完成条件;它还允许在任务之间定义部分顺序,并且可以指定允许的并行度
■ 触发机制:动态的并且由人类用户逐案管理
更多推荐
BPMN2.0规范的学习与总结
发布评论