BPMN模型与符号-概述(一)

概述

在过去的几年中,在为业务流程管理(BPM)系统开发基于web服务的XML执行语言方面,已经开展了很多活动。WSBPEL等语言为业务流程的定义提供了一种正式的机制。这些语言的关键元素为BPM系统的操作和互操作进行了优化。针对软件操作的这些语言的优化使它们不太适合被人类直接用于设计、管理和监视业务流程。WSBPEL同时具有图结构和块结构,并利用了形式化数学模型的原理,如 pi-calculus1。这种技术基础为业务流程执行提供了基础,以处理内部和B2B交互的复杂性,并利用Web服务的好处。基于WSBPEL的性质,一个复杂的业务流程可能以潜在复杂的、不关联的、不直观的方式但又被软件易于处理的方式组织起来,但是负责开发、管理和监控流程的业务分析师和经理很难理解。因此,人类层次的基于web服务的“互可操作性”或“可移植性”使用这些基于web服务的XML执行语言无法解决。

业务人员非常喜欢以流程图格式可视化业务流程。有成千上万的业务分析师研究公司的工作方式,并用简单的流程图定义业务流程。这在业务流程的初始设计的格式和将执行这些业务流程的WSBPEL等语言的格式之间造成了技术差距。这一差距需要通过一种正式的机制来弥补,该机制将业务流程的适当可视化(符号)映射到这些业务流程的适当执行格式(BPM执行语言)。

通过业务流程模型和符号(BPMN)的标准化,可以解决业务流程在人类层次而不是软件引擎级别的相互操作。BPMN提供了多个图表,专门供设计和管理业务流程的人员使用。BPMN还提供了一个映射到BPM系统(WSBPEL)的执行语言的映射。因此,BPMN将为用执行优化的业务流程语言定义的业务流程提供一个标准的可视化机制。

BPMN为企业提供了以图形符号理解其内部业务流程的能力,并将使组织能够以标准的方式沟通这些流程。目前,有许多流程建模工具和方法。鉴于人可以从一个公司转移到另一个,公司之间可能合并和分拆,业务流程分析师很可能需要去理解多种陈述方式的业务流程,即在同一流程的开发、实现、执行、监视和分析的生命周期中,可能存在不同的表示方式。因此,一个标准的图形符号将有助于理解组织内部和组织之间的性能协作和业务事务。这将确保企业将了解自己和其业务的参与者,并将使组织能够快速适应新的内部和B2B业务环境。BPMN遵循了流程图符号的可读性和灵活性的传统。此外,BPMN的执行语义是完全正式化的。OMG正在使用在BPMN之前的业务流程符号的经验来创建结合了可读性、灵活性和可扩展性的下一代符号。

BPMN还将通过固有地处理B2B业务流程概念,如公共和私有流程和编排,以及诸如异常处理、事务和补偿等高级建模概念,来升级传统业务流程符号的能力。

BPMN范围

本国际标准为业务流程提供了一个符号和模型,以及一种交换格式,可用于在不同工具之间交换BPMN流程定义(域模型和图表布局)。该国际标准的目标是实现流程定义的可移植性,以便用户可以使用在一个供应商的环境中创建的流程定义,并在另一个供应商的环境中使用它们。

BPMN 2.0.2国际标准在以下几个方面扩展了BPMN 1.2的范围和能力:

    ●正式化所有BPMN元素的执行语义。

    ●为流程模型扩展和图形化扩展定义了一个可扩展性机制。

    ●细化了事件的组成和相关性。

    ●扩展了人际互动的定义。

    ●定义一个编排(Choreography)模型。

本国际标准还解决了已知的BPMN 1.2中的不一致和歧义。

BPMN仅限于支持适用于业务流程的建模概念。这意味着组织为业务目的所做的其他类型的建模超出了BPMN的范围。因此,以下是超出本国际标准范围的一些方面:

    ●组织模式和资源的定义,

    ●功能故障的建模,

    ●数据和信息模型,

    ●策略建模,

    ●业务规则模型。

由于这些类型的高级建模可以直接或间接地影响业务流程,因此BPMN和其他高级业务建模之间的关系可以被更正式地定义为BPMN和其他规范的高级化。虽然BPMN显示了数据流(消息)以及数据工件与活动之间的关联,但它不是一种数据流语言。此外,业务流程的操作模拟、监控和部署不了本国际标准的范围。BPMN 2.0.2可以映射到多个平台依赖的流程建模语言,例如,WS-BPEL 2.0。本国际标准包括一个BPMN子集到WS-BPEL 2.0的映射。与其他新兴标准的映射被认为是单独的成果。

该国际标准使用其他标准来定义数据类型、表达式和服务操作。这些标准分别是XML模式、XPath和WSDL。

BPMN的使用

业务流程建模用于在多种受众间沟通多种信息。BPMN旨在涵盖多种类型的建模,并允许创建端到端业务流程。BPMN的结构元素允许观察者能够轻松地区分BPMN图中的各个部分。在端到端BPMN模型中存在三种基本类型的子模型:

1.流程(编排),包括:

    ●私有的不可执行的(内部)业务流程

    ●私有可执行的(内部)业务流程

    ●公共过程

2.编排图

3.协作图 其中可以包括流程和/或编排

对话的视图

私有(内部)业务流程

私有业务流程是一个特定组织的内部流程。这些流程通常被称为工作流程或BPM流程(请参见图10.4)。在Web服务区域中通常使用的另一个同义词是服务的编排。私有过程有两种类型:可执行程和不可执行。可执行流程是根据第14条中定义的语义进行建模的过程。当然,在流程的开发周期中,将会有一些阶段的流程没有足够的细节来“可执行”。非可执行流程是一种私有流程,它旨在建模者定义的详细级别上记录流程行为。因此,执行所需的信息,如正式条件表达式,通常不包括在非可执行的过程中。

如果使用了一个类似于泳道的符号(例如,一个协作,见下文),那么一个私有的业务流程将被包含在单个池中。因此,流程流包含在池中,并且不能跨越池的边界。消息流可以跨越池边界,以显示单独的私有业务流程之间存在的交互。

图7.1-一个私有业务流程的示例

公共过程

公共流程表示私有业务流程与另一个流程或参与者之间的交互(参见图7.2)。只有那些用于与其他参与者交流的活动才包括在公共过程中。私人业务流程中的所有其他“内部”活动都不显示在公共流程中。因此,公共进程向外部世界显示了消息流以及与该进程交互所需的那些消息流的顺序。公共流程可以单独建模,也可以在协作中建模,以显示公共流程活动和其他参与者之间的消息流。请注意,进程的公共类型在BPMN 1.2中被命名为“抽象”。

图7.2-一个公共流程的示例

协作

协作描述了两个或多个业务实体之间的交互。协作通常包含两个或多个池,代表协作中的参与者。参与者之间的消息交换通过连接两个池(或池中的对象)的消息流显示。也可以显示与消息流相关联的消息。协作可以显示为两个或多个相互通信的公共流程(参见图7.3)。通过一个公共过程,协作参与者的活动可以被认为是参与者之间的“接触点”。相应的内部(可执行)进程可能比公共流程中显示的有更多的活动和细节。或者一个池可能是空的,称为“黑盒”。编排图可以显示在“池之间”关系因为它们分割了池之间的消息流。所有池、过程和编排的组合都允许进行编排。

图7.3-协作流程的一个示例

编排

一个独立的编排(没有池或编排)是一个预期行为的定义,基本上是一个程序性的契约,在互动的参与者之间。池中存在一个正常的过程,但在池(或参与者)之间存在的是编排。

编排看起来类似于私有业务流程,因为它由一个包含活动、事件和网关的网络组成(参见图7.4)。然而,编排的不同之处在于,活动是代表一组(1个或多个)信息交换的交互,其中涉及两个或多个参与者。此外,与正常流程不同,流程没有中央控制器、负责实体或观察者。

图7.4-编排的一个示例

会话

会话图是对协作图的特殊用法和非正式描述。然而,对话的池通常不包含一个过程,而舞蹈编排通常不放在对话图的池之间。会话是消息交换的逻辑关系。在实践中,逻辑关系通常涉及一个感兴趣的业务对象,例如,“订单”、“装运和交付”或“发票”。消息交换相互关联,并反映了不同的业务场景。.例如,在物流中,库存补充涉及以下类型场景:创建销售订单;分配组合不同销售订单的货物的承运人;跨越海关/检疫;处理付款和调查例外情况。因此,如图7.5所示的会话图显示了参与者(池)之间的会话(作为六边形)。这提供了一个与该领域相关的不同对话的“鸟瞰”视角。

图7.5-会话图的一个示例

观点图

由于BPMN图可以描述不同参与者的过程,所以每个参与者可以以不同的方式查看图表。也就是说,对于流程将如何应用于他们,参与者有不同的观点。部分活动将位于参与者内部(指由参与者执行或在参与者控制下),其他活动将设在参与者外部。每个参与者对于内部和外部都有不同的观点。在运行时,内部和外部活动之间的差异对于参与者如何查看活动状态或解决任何问题至关重要。然而,图表本身保持不变。图7.3显示了一个有两个观点的业务流程。一种观点是病人,另一种观点是医生的办公室。该图显示了流程中两个参与者的活动,但当实际执行流程时,每个参与者将只控制他们自己的活动。尽管图表的观点对于图表的查看者来说,理解流程的行为将如何与该查看器相关联很重要,但BPMN目前将不会指定任何图形机制来突出显示该观点。建模人员或建模工具供应商可以提供任何视觉线索来强调图表的这一特性。

理解图表的行为

在本国际标准中,我们将讨论如何在流程中使用序列流。为了便于讨论,我们使用了一个令牌的概念,它将遍历序列流并通过流程中的元素。令牌是一个理论概念,用于帮助定义正在执行的流程的行为。过程元素的行为可以通过描述它们在令牌“遍历”过程的结构时如何与其交互来定义。但是,实现BPMN的建模和执行工具并不需要实现任何形式的令牌。

开始事件生成一个令牌,最终必须在结束事件中消耗(如果没有图形显示,则可以隐式)。令牌的路径应该通过一个流程中的序列流、网关和活动的网络进行追踪。

注意:令牌不会遍历消息流,因为它是传递给消息流的消息(如名称所示)。