BPMN的流程模型

BPMN的流程模型

我们使用业务流程建模来交流信息,正如在上一节里所述,根据不同模型的用户(客户、业务人员、分析人员、开发人员),建模有着不同的风格。BPMN被设计用来涵盖各种风格的流程模型(以满足不同角色人员交流的需要)和创建端到端的业务流程,它支持三种基本类型的流程模型:

? 流程编制(Process Orchestration),包含:

  • 私有的不可执行的(内部的)业务流程;
  • 私有的可执行(内部的)业务流程;
  • 公开流程。

? 编排(Choreography)
? 协作(Collaborations),包含流程与/或编排。

  • 具有会话视图(Conversation)。

私有的(内部的)业务流程

私有的业务流程是指某一组织的内部工作流程,我们通常称之为称为工作流,在WEB服务领域,我们也称之为服务的编制(Orchestration)。存在两种类型的私有业务流程:可执行的和不可执行的。可执行的私有业务流程以被计算机执行为建模目的,由相应的BPMS系统来自动化流程的执行,它包含了足够的执行细节,这些细节包括执行规则、条件表达式等计算机解释执行所需要的技术信息,该模型最直接的用户是开发人员。不可执行的私有业务流程则以文档化为建模的目的,它缺少执行细节,但是包括足够的交流信息,该模型的用户包括了业务人员与分析人员。

作为一个例子,我们一起来看看我在公安局户籍科为儿子办理户口的流程,如下图所示:

图1公安局户籍科上户口的流程

当我来到户籍科,递上足够的资料,然后就开始等待。我能看到共有四个工作人员,第一个工作人员负责接收资料,查看资料是否完备,接下来,她将所有的资料传递到下一个工作人员,第二个工作人员对资料进行审核,在计算机上查看我们的户口信息是否正确,接下来,如果资料无误,他将资料传递到第三个工作人员,第三个工作人员负责在计算机上为我的儿子录入新的户口,最后打印出一张户口页,第四个工作人员是职位最大的警员,她负责盖章,然后将儿子的户口页传递给在窗口外等待的我。

根据上面对私有业务流程的定义,我们很容易的判断出这个流程是个不可执行的私有业务流程,因为该流程是户籍科的内部工作流程,作为该流程服务对象的我,我根本不用关心户籍科内部是如何对我的申请进行处理的,所以它是私有业务流程。该流程是由规章或制度所规定的,由工作人员来驱动,并非通过计算机协调,所以这是个不可执行的私有业务流程。

因为私有业务流程是内部流程,所以它只能存在于一个池(pool,池代表一个参与者)里,如下图所示,我们可以将私有业务流程建模在一个池里,但通常这样做没有太大的意义,更经常的情况是,我们选择将池忽略。

图2公安局户籍科私有业务流程的另一种建模形式

公开流程

公开流程表现一个私有业务流程与其他流程或参与者之间的交互。

还是以户口办理作为例子,作为户口申请人,我来到公安局户籍科,我心揣揣,我不知道我该做些什么,于是我看到大厅里如下图所示的流程,于是我立刻就明白了,我只需要将资料交给办事人员,然后等待取新的户口页即可。

注意下图所示的公开流程与图1所示的私有流程有哪些不同。第一是图中出现了多个参与者,参与者间通过消息流连接(图中虚线箭头连线);第二是户籍科的办理流程被缩减到只剩两个与外部参与者交互的活动,两个原有的内部活动被忽略了。这两点不同即是公开流程的特点:表现与外部参与者、流程间的交互,忽略内部活动。联想到我们实际的编程,总结成一句话,就是隐藏内部实现细节,仅仅展现对外接口,表现流程的外部行为。

图3公安局户籍科办理户口的公开流程

协作

协作描绘两个或多个业务实体间的交互。一个协作通常包含两个或多个池,每个池代表一个参与者(业务实体)。参与者之间的消息交换通过连接两个池(或池中的对象)的消息流表现。协作可以表现为两个或多个公开流程之间的交互,在上一节里,我们提到,与对应的私有流程相比,公开流程隐藏了内部细节活动。池也可以是黑盒,即里面什么对象都没有。

那么,这里有一个问题,公开流程与协作有什么区别?区别在于表现的范围,公开流程只是表现一个私有流程与外部的交互,而协作则能表现多个流程/参与者之间的交互。

还是看户口办理的例子,在前面的例子中,我们看到了公安局户籍科办理户口的私有流程和公开流程,似乎办理户口是一件很简单的事情,但这仅仅只是办理户口中的一步而已。在此之前,我先要去医院办理小孩出生证明,接下来,我要去居委会登记小孩信息,再接下来,我要去计生办办理符合计划生育政策的证明,最后,我才来到户籍科。下图是整个户口办理的协作图,作为简化,这里将除申请人和户籍科之外的池都黑盒了:

图4户口办理协作图

编排

同样是表现多个参与者之间的交互,编排做的更为纯粹,它取消掉了池的概念,改由编排活动直接表现多个参与者之间的消息交互,为协作模型提供了一种基于流程图的视图。户口办理的编排图如下图所示,其中每个活动都能看到上下的方形区域有参与者信息,这表明这个活动的参与者,浅色部分为活动的发起者,深色部分为活动的响应者,我们会在接下来的BPMN元素小节里详细描述这一活动类型:

图5户口办理编排图

与协作图相比,编排图省略掉了更多的细节,例如与各个参与者具体的交互过程,它关心谁和谁产生了交互,至于如何交互,分几步交互,它并不关心。例如办理户口这个活动,实际上我是分别和两个警官进行了交互,一个是负责接受资料的年轻女警官,一个是负责盖章复核的领导警官,在协作图中,我可以通过公开流程展现出这一点,但是在编排图中,这并不是要表现的重点。

协作图表现出参与者之间的交互,并包含交互的细节信息(交互的接口、如何交互);编排图则以流程图的形式表现出参与者之间的交互,它关心的是某个任务需要哪些参与者发生交互,交互的细节不是其表现的重点。


编制与编排的区别


在上文中,我们提到了服务的编制(Orchestration),这里,我们又提到了编排(Choreography),这两者是有很大区别的。

WS-BPEL将SOA中的服务按照一定的顺序灵活组装在一起的流程就是编制(Orchestration)。编制后的WS-BPEL流,通常代表了某个特定的业务中的服务的执行流。而编排(Choreography)则是描述参与者之间交互关系的流程。与编制不同的是,编排并不需要一个执行引擎,它只是描述关系。编制代表的是一个可执行流程,它必须通过执行引擎来执行。而编排实质上是代表一种描述,即参与者之间如何互相协调来完成一个目标。

John Reynolds在其博客中是这样描述编制和编排的区别[1]

编制 == 可执行过程

Web服务编制与执行特定的业务流程相关。WS-BPEL是一种用来定义可以在一个编制引擎中执行的流程语言。

编排 == 多方合作

因此编制必须对应一个执行引擎,而编排由于涉及到多方合作,所以它是不能被直接部署的。

协作的会话视图

会话视图为协作图提供了另外一种非正式的表现形式,与编排图一样,它的目标同样在于表现参与者之间的关系,它将一系列相关的信息交互定义为一次会话。户口办理的会话图如下图所示,图中只存在池与会话(Communication)元素,会话元素由图中的六边形代表,它代表两个或多个参与者之间一系列相关的信息交互,我们可以看到,办理户口需要申请人与四个组织发生四次会话:

图6户口办理会话图

会话视图的作用之一是能够有效减少模型中消息流的数量,便于我们理解。

图7会话视图简化交互模型

时间: 2024-10-10 01:09:41

BPMN的流程模型的相关文章

Cordys BOP4业务流程模型中所使用的常用BPMN构件

启动事件(Start Event) 启动事件是BPMN表示流程开始的构件,并且是有效业务流程模型所强制的.启动事件没有任何输入连接器.启动事件可以通过各种触发器被实例化,这说明如下: 表1.启动事件触发机制 触发类型 描述 图标 No Message or Timer 无消息或定时:启动事件无任何定义. Message 消息:启动事件通过输入消息触发. Timer 定时器:当定时器被激活,业务流程模型应附时间表. 活动(Activity) 活动是涉及操作业务流程中最小单位.用于连接和顺序执行拥有

Cordys BOP 4.3平台使用小经验—数据库连接管理、导出流程模型为XPDL

目 录 数据库连接管理工具 关于MySQL数据库 数据库使用中需注意的事项 导出Business Process Model为XPDL格式 导出XPDL格式 XDPL格式初步分析 流程模型简单案例 活动环节描述 Message Mapping描述 数据库连接管理工具 使用Manage Database Configurations组件管理数据库连接,如下图所示. 可以使用这里的功能,增删数据库连接. 关于MySQL数据库 注意: MySQL识别大小写,这里的数据库名称,在配置数据库连接时,按区分

BPMN 2.0规范

.1. BPMN 2.0是什么呢? 业务流程模型注解(Business Process Modeling Notation - BPMN)是 业务流程模型的一种标准图形注解.这个标准 是由对象管理组(Object Management Group - OMG)维护的. 基本上,BPMN规范定义了任务看起来怎样的,哪些结构可以 与其他进行连接,等等.这就意味着 意思不会被误解. 标准的早期版本(1.2版以及之前)仅仅限制在模型上, 目标是在所有的利益相关者之间形成通用的理解, 在文档,讨论和实现业

流程图制作: BPMN流程图在线绘制

bpmn BPMN(业务流程建模符号) 是业务流程建模现代化的标准,由BPMI符号工作组五月制定2004年版的2.0 BPMN发布于2010年在英国最初的规范写由对象管理组. BPMN的目标是: 负责流程实施的技术专家; 创建和改进流程的业务分析师; 监控和控制流程的经理. 通过这种方式,BPMN可以作为业务流程及其实现之间的链接. bpmn 作用 业务流程模型和表示法(BPMN)提供了任何人都可以轻松理解的业务工作流程的图形表示;帮助进行业务流程分析和业务流程改进.当以图表形式呈现时,复杂的业

activiti搭建(五)BPMN介绍

对于BPMN我也不是十分清楚,目前也只是因为对于Modeler中不熟悉的组件查询,来对这部分的内容进行学习,不求一次理解,边学边理解吧.所以这一章的介绍会比较简单,但也足够了. Modeler中的组件列表划分和BPMN的略微有些不同,而且有些内容好像也没有,最后移植到自己的demo中,还遇到了一些问题,如果可能的话,之后会详细介绍一下Modeler的构成,大致是官方文档的第七节Overview以及第十节Process(重要),网上已有人将其归纳总结过了 http://wenku.baidu.co

在eclipse中设计BPMN 2.0工作流定义的根本步骤

原文地址:http://www.myexception.cn/eclipse/1863140.html 在eclipse中设计BPMN 2.0工作流定义的基本步骤 1. Activiti问我们提供了Activiti BPMN 2.0, 这个工具是基于Eclipse所开发的工具,安装十分方便.在安装Activiti之前,我们要首先安装Maven Eclipse插件. 点击Help -> Install New Software,输入以下站点信息: Name: M2ELocation: http:/

BPMN规范中的三种视图

诚如UML建模所带来的好处一样,对流程建模规范BPMN也同样带来了类似好处,此外BPMN还通过一套统一的建模.执行模型缩小了业务人员和开发人员之间的一道鸿沟,而其终极目标也包含消除这道鸿沟.亦如UML用十四种图来描述一个系统的不同方面,对于BPM而言,BPMN提供了三种基本类型的流程视图,而这也成为不同角色之间交流业务流程.创建端到端的业务流程的基础.本文将简单描述这几种流程视图_--协作视图(Collaboration).流程视图(process).编排视图(choreography). 协作

activiti工作流之Eclipse的Eclipse BPMN 2.0 Designer无法安装或者(安装后无法重复打开*.bpmn)

1.首先.既然学习activiti工作流,连官网和相应文件都没有下载就说不过去了 这是官网下载:http://www.activiti.org/download.html 2.对于下载后的activiti-5.17.0.zip的解压文件后,就很习惯去看docs/userguide/index.html 查找Chapter 12. Eclipse Designer 里面会叫如何安装Eclipse BPMN 2.0 Designer插件. Name: Activiti BPMN 2.0 design

Eclipse下集成Activiti的开发插件 Activiti BPMN 2.0designer

1,,首先,安装插件graphiti ,在线安装的路径需要参考如下的网页: http://www.eclipse.org/graphiti/download.php 具体使用什么版本的graphiti ,需要根据,当前的Eclipse插件来决定,当前自己的eclipse版本是4.5.1,对应的graphiti 的在线安装地址用的是: http://download.eclipse.org/graphiti/updates/0.12.0 2,其次,安装  BPMN http://activiti.