jBPM6与BPMN2.0(JBPM6系列之一)

dongxurr 贡献于2014-05-20

作者 匿名用户  创建于2014-01-14 01:54:00   修改者匿名用户  修改于2014-01-16 07:21:00字数4994

文档摘要:BPMN是Business Process Model and Notation的缩写。我觉得将其翻译为“业务流程模型及其标注”是比较确切的。BPMN是OMG(Object Management Group 对象管理组织)所发布的规范之一。
关键词:

jBPM6与BPMN2.0(JBPM6系列之一) 1、何谓BPMN2.0 BPMN是Business Process Model and Notation的缩写。我觉得将其翻译为“业务流程模型及其标注”是比较确切的。BPMN是OMG(Object Management Group 对象管理组织)所发布的规范之一。 小注:OMG在1989年由11家公司(包括IBM、原Sun、微软、苹果、美国航空等)创立。OMG最初的目的是开发一个分布式面向对象系统的标准。而如今OMG拥有800多名成员公司,包括计算机产业和软件产业的企业,也包括其他产业的成员。OMG所广泛使用的标准包括UML,MOF,XMI,BPMN等。 BPMN的最主要目的就在于“如何进行业务流程的标注,可以使得所有的“业务用户”能够轻松阅读和理解”。所谓业务用户(Business users)其实包含三种类型的用户:业务分析员、业务开发者以及最终用户。对于业务流程来说,分析员喜欢创建流程的草图,以此进行演练分析;而开发者则更关心流程在技术上的实现;而最终用户则需要管理和监控这些流程。 BPMN的早期版本(BPMN 1.x)仅仅定义了怎样图形化一个业务流程,而目前的BPMN 2.0不仅仅定义了业务流程的图形化标准,还追加了已定义元素的执行语义和流程定义的XML格式化。 在BPMN 2.0中,这种可执行流程(在这里,所谓可执行流程是指可以使用BPMN 2.0规范完整的描绘出流程图的业务流程。)是由不同类型的节点(nodes)组成的,且节点之间使用顺序流(sequence flows)进行相互连接。BPMN 2.0规范抽象了三大类型的节点: Ø Events类型:事件类型的节点用于建模某个特定事件的发生。BPMN 2.0抽象了三种事件节点: 1) 开始事件节点(start event):用于表示某个流程的开始; 2) 结束事件节点(end event):定义了流程的结束或者其子流程的结束; 3) 中间事件节点(intermediate event):用于表示在某个流程执行期间可能发生的事情。 Ø Activities类型:此类型节点定义了在某个流程执行期间,需要完成的各种活动。至于究竟有哪些类型的任务,则依赖于我们试图去建模的活动类型(例如:human task 人工或手工任务、service task 服务任务)以及活动能否被嵌套(使用不同类型的子流程)。 Ø Gateways类型:网关类型的节点用于定义流程的多种路径。例如:并行网关、选择网关、汇聚网关等等。 下面列出BPMN 2.0定义的所有元素: 1. Flow objects(流对象) l Events(事件类型) ü Start Event (None, Conditional, Signal, Message, Timer) ü End Event (None, Terminate, Error, Escalation, Signal, Message, Compensation) ü Intermediate Catch Event (Signal, Timer, Conditional, Message) ü Intermediate Throw Event (None, Signal, Escalation, Message, Compensation) ü Non-interrupting Boundary Event (Escalation, Signal, Timer, Conditional, Message) ü Interrupting Boundary Event (Escalation, Error, Signal, Timer, Conditional, Message, Compensation) l Activities(活动类型) ü Script Task(脚本任务) ü Task(通用任务) ü Service Task(服务型任务) ü User Task(用户任务) ü Business Rule Task(业务规则型任务) ü Manual Task(手工任务) ü Send Task(发送任务) ü Receive Task(接收任务) ü Reusable Sub-Process (Call Activity)(可重复性使用子过程)(调用式子过程) ü Embedded Sub-Process(嵌入式子过程) ü Event Sub-Process(事件式子过程) ü Ad-Hoc Sub-Process(点对点子过程) ü Data-Object(数据对象) l Gateways(网关类型) Diverging(分离网关) ü Exclusive ü Inclusive ü Parallel ü Event-Based Converging(汇聚网关) ü Exclusive ü Inclusive ü Parallel l Lanes(巷道类型) 2. Data(数据对象) l Java type language l Process properties l Embedded Sub-Process properties l Activity properties 3. Connecting objects(连接对象) l Sequence flow 2、BPMN 2.0与jBPM6 实际上,BPMN 2.0规范不仅仅只有上述所描述的那么一小点内 容,它还包括了像编排、协作等东西如何进行描述的细节。不过,jBPM只关注于:“如何指定可执行流程”的那一部分。 jBPM6能够执行使用BPMN 2.0 XML格式所定义的流程。这也意味着:如果你使用了BPMN 2.0格式来指定你的可执行业务流程,那么你就可以使用jBPM6所提供的多种工具程序进行业务流程的建模、执行、管理以及监控分析。 jBPM6并未完全实现BPMN 2.0规范中所定义的所有元素及其属性。它仅实现了BPMN 2.0规范当中所定义的“Common Executable(通用可执行)”子类,并对其中的一些元素及其属性进行了扩展。 3、小例子 上图我们将其取名为“Hello World”流程,这是一个BPMN 2.0流程。当该流程启动时,它将仅仅输出一个“Hello World”。 如果使用BPMN 2.0 XML格式对其进行描述,那么该流程将变为一个可执行的版本。描述如下:                                                                                                                                                                                                                                             为了能够创建BPMN 2.0格式,可以使用如下几种方式: Ø 使用jBPM设计器。该设计器是一个基于web的开源编辑器,其支持BPMN 2.0格式。该设计器可以单独下载安装使用,也可以在jbpm控制台中使用(嵌入进了jbpm控制台)。该设计器允许我们创建、编辑BPMN 2.0流程,然后使用BPMN 2.0格式进行导出(或放进repository(仓库)之中),这样该流程就能被执行; Ø 使用BPMN2 Eclipse 插件,其支持完整的BPMN 2.0规范; Ø 也可以直接手工编写BPMN 2.0 XML文档。我们可以对照BPMN 2.0 XSD进行语法的检查,或者使用Eclipse插件——validator进行语法及完整性的检查。 Ø 注意:Drools Eclipse 流程编辑器也可以进行符合BPMN 2.0规范的流程编辑(但可能不是完全符合!),不过它仅此支持某几个元素的编辑,因为该编辑器已停止对BPMN 2.0建模的支持。因此不要使用该编辑器进行编辑。 接下来就该上代码了,如下所示: 首先加载一个BPMN2流程到你自己的知识库(knowledge base): private static KnowledgeBase createKnowledgeBase() throws Exception {     KieHelper kieHelper = new KieHelper();     KieBase kieBase = kieHelper     .addResource(ResourceFactory.newClassPathResource("sample.bpmn2"))     .build();     return kieBase; } 然后在执行该流程: KieBase kbase = createKnowledgeBase(); KieSession ksession = kbase.newKieSession(); ksession.startProcess("com.sample.HelloWorld");

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 4 人已下载

下载文档