什么是BPMN
- 业务流程建建模标记标准
- 图形化标记用于捕获业务流程与交互
- 由OMG发布,当前版本1.1
- 厂商中立
BPMN 2.0 特性
BPMN1.1局限性扩展
| BPMN 1.1 | BPMN 2.0 |
| No interchange format | provides visual model and accompanying interchange format |
| No explicit meta model | provides semantic metamodel and accompanying interchange format |
| No choreography support | provides semantic for process interactions and public processes. |
| Semantics of modeling constructs not wel defined | provides refined and formalized BPMN excution semantics. |
其它扩展- 为流程模型与图形扩展提供扩展能力
- 基于XML与XSD 的交换格式
- 重新定义了事件组合与相互性
- 数据流与关联
- 涵盖人工交互
未涵盖部分
组织模型、数据与信息模型、策略与规则模型
BPMN2.0基础
BPMN包含三种主要对象:
- 活动(Activity):活动节点或工作节点(也就是一系列动作组成的逻辑单元),这里主要包括:自动化活动节点与人工节点
- 网关(Gateway):流程逻辑控制点,主要用于流程的切分与合并。
- 事件(Event):事件节点,用于支持与其它流程实现异步交互、出错处理与控制流程逻辑

用BPMN描述的流程模型就是由以上三种主要对象组合而成,当然,对于每种对象还有很多细分类型。例如:事件节点可以分为:启动节点、结束节点等。

任务(Task)类型
任何即原子类型的Activity。每个厂家对于任务类型的定义有所不同,对于Oracle来说有:
- Service Task:同步系统交互
- Send and Receive Tasks:异步系统交互
- User Task:人工步骤-由工作流引擎控制(Workflow engine)
- Manual Task:非工作流引擎控制
- Rules Task:由规则引擎(Business Rules engine)控制
- Script Task:用于运行脚本
- Note Task:只用于文档与映射目的
- Call Activity:调用其它BPMN流程

泳道(Lanes)
并行拆分(fork)与合并(join),并行合并节点用于合并无条件并行路径。

或网关(OR Gateway)
给定通路全部通或任一通即通过

复杂网关(Complex Gateway)
链切分-即后一个切分基于前一个切分的评估
投票模式-N个路径中只要有M个通过就通过

嵌入式子流程(Embedded Sub-process)
虽然有启动与终止事件节点,但是没有泳道。主流程不能跨越嵌入式子流程的边界。嵌入式子流程可以嵌入其它子流程。

流程标注(Process Annotation)
任何文本,无流程语义。
BPMN & Oracle BPM Suite 11g
BPMN在运行时
- BPM Studio:业务人员使用,用于建模与模拟。Oracle BPM Suite 11g中的BPM Stdio支持BPMN2.0,并具有两个视图:业务(Business)与IT。IT视图用于实现BPMN流程细节,这两个视图使用同一语言,无需转换。
- Process Composer:是一个基于Web的BPMN工具,可以让业务人员客户化BPM Stdio创建的流程。当然,这种客户化是有限制的,但带来的好处也很显明,即无需IT的介入。
BPMN运行时
- BPMN 运行时(Run-time)引擎:Oracle BPM Suite 11g具有一个原生(Native)BPMN2.0运行时引擎。
- 基于BPMN的监控(Monitoring):Enterprise Manager for BPM:EM充许实现BPMN流程端到端的追踪与监控,包括异常管理。
- 流程门户(Process Portal):流程门户是一个协作工作空间建立在WebCenter Space用于实现更高效的BPMN协作包括基于流程仪表板的BPMN视图。