如何用jbpm做出一个状态可视化动态可编辑的工作流平台-1

来源:互联网 发布:傅园慧网络直播平台 编辑:程序博客网 时间:2024/06/01 21:54

什么是JBPM

在我们决定学习JBPM之前,还是先来看看这头骡子是个什么东西,以下是百度百科上的解释:
JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。
看完这个,你能准确的理解JBPM是个什么鸟吗?!我觉得有点难。还是再问问百度,搜一下其他关于JBPM的博客,给的例子都是JBPM4.0以前的了,知道4.0是什么时候发布的吗?2010年,但现在JBPM的最新版本已经是jbpm v6.4, 发布于2016年4月份,这6年的跨度中,这个开源代码项目已经作了改头换面的修改,变化之大你难以想象。这也促成了我打算写这一系列关于jbpm和bpmn的文章,因为大家得赶上潮流嘛,我打算以这个版本(6.4)作为例子给大家讲解jbpm。
好,那什么是jbpm, 把它的英文全称翻译过来是很容易理解的,java业务流程管理。但这里的jbpm是特指的,RedHat公司下面的一个JBoss开源项目,它提供了一套组件,能够让你快速灵活的开发出一套工作流管理系统。

什么是BPMN

那我们要coding出一套工作流管理系统,只有JBPM就够了吗?不够!我们在了解jbpm的时候不能把它和bpmn分开。什么是bpmn? 它的全称是Business process model and notation。这家伙是一套类似于UML和xml的流程设计语言,既能像UML一样以可视化的方式编辑路程,也能像XML一样编辑,而JBPM包含了一套完整的基于Java的BPMN API,通过读取bpmn2文件里面定义的流程内容,进而实现状态机控制,业务调度和数据库管理等。具体我们还是看看百度娘给我们的解释:
BPMN是由BPMI(The Business Process Management Initiative)开发的一套标准:业务流程建模符号(BPMN - Business Process Modeling Notation)。在 BPMI Notation Working Group超过2年的努力,于2004年5月对外发布了BPMN 1.0 规范。后BPMI并入到OMG组织,OMG于2011年推出BPMN2.0标准,对BPMN进行了重新定义(Business Process Model and Notation)。BPMN的主要目标是提供一些被所有业务用户容易理解的符号,从创建流程轮廓的业务分析到这些流程的实现,直到最终用户的管理监控。BPMN也支持提供一个内部的模型可以生成可执行的BPEL4WS。因此BPMN的出现,弥补了从业务流程设计到流程开发的间隙。
BPMN定义了一个业务流程图(Business Process Diagram),该业务流程图基于一个流程图(flowcharting),该流程图被设计用于创建业务流程操作的图形化模型。而一个业务流程模型(Business Process Model),指一个由的图形对象(graphical objects)组成的网状图,图形对象包括活动(acticities)和用于定义这些活动执行顺序的流程控制器(flow controls)。

我们为什么使用JBPM

说了这么多没用的,我们还是回到开发者的视角,如果我们有很多工作流需要管理,维护,和监控,我们该怎么做?我想以下是我们使用JBPM有几大理由(到底有几大我也说不清,只能简单谈谈我的看法):

  1. 要管理工作流,我们必须要有工作流管理系统,但我们应该不会阿甘到想自己开发一套包含有状态机,有流程控制,流程监管,有数据库的系统,并且开发出自己的工作流设计语言。
  2. JBPM能很好的的解释BPMN设计的工作流,JBPM+BPMN是业界标准,我们必须选用。
  3. JBPM是一个开源项目,虽然接口不稳定,但至少一直在进化,也有完备的文档,背靠开源项目,找帮手不愁.
0 0