首页 > 代码库 > Jbpm工作流(一)

Jbpm工作流(一)

了解一下什么是Jbpm及特点。

jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统。jBPM是公开源代码项目,它使用要遵循 Apache License。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。

jBPM最大的特色就是它的商务逻辑定义没有采用目前的一些规范,如WfMC′s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个商务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等。

jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域最好的一种数据持久层解决方案。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。

说不如做,下面做个例子感受以下吧。

1、  环境准备

Jdk1.5安装不在赘述。

Eclipse安装不在赘述。 jBPM 提供了一个 Eclipse 插件用来辅助开发 jBPM 。

本文用的版本是: Eclipse3.2+ MyEclipse 5.5.1 GA

2、  安装jbpm

jBPM 的下载地址: http://www.jboss.com/products/jbpm/downloads

按下图红色标记处下载:

 

 

介绍一下上面的Package:

          JBoss jBPM jPDL jBPM 的软件包

          JBoss jBPM jPDL Suite  是一个综合包,它包括了 jBPM 软件包、开发插件、一个配置好了的基于JBoss  jBPM 示例、一些数据库配置文件示例。

          JBoss jBPM Process Designer Plugin  是辅助开发 jBPM  Eclipse 插件。

          JBoss jBPM BPEL Extension jBPM 关于 BPEL 的扩展包

本指南选择下载:JBoss jBPM jPDL Suite 。下载后解压到 D:\ jbpm-starters-kit-3.1.4,目录下含有五个子目录:

          jbpm   jBPM 的软件包

          jbpm-bpel 只含有一个网页

          jbpm-db 各种数据库 hibernate 配置文件示例,有些还包含了相应的 jdbc 驱动程序。

          jbpm-designer  辅助开发 jBPM  Eclipse 插件,具体在 jbpm-gpd-feature 子目录中

           jbpm-server  一个已经配置好了的基于 JBoss  jBPM 示例

 

3、  Jbpm例子

jbpm-server 目录是一个已经配置好的了 jBPM 示例。

例子用的框架是Jsf+Hibernate,数据库是 hsqldb(一个内存数据库)。

双击 jbpm-server 目录下的 start.bat 文件,启动 JBoss 服务。这时会打开一个 DOS 窗口,启动完成后,日志会不断输出,其中最后一句是“ 13:55:39,937 DEBUG [StaticNotifier] going to wait for (CMD_EXECUTOR, java.lang.Object@1df59bd) ”,这表示 jBPM 在开始工作了,它不断进行轮询。

打开网页: http://localhost:8080/jbpm/  得到如下画面

 

这是一个已经用 jBPM 开发好的用户定单流程,具有下单、审核、估价等流程。它所用的数据库是一个内置的数据库。

以 cookie monster 用户登录,选择“ create new web sale order ”可以创建一个定单。如下图所示,在图左边是填写的定单情况,右边一整个定货流程的示意图,红色框表示流程进行到哪一步了。填写好定单好,选择“ Save and Close Task ”,完成定单提交。

 

选择右上角的“ Login as another user ”以另外一个用户名 ernie 登录。这时可以看到 ernie用户的任务列表中多了一项。

 

点进去后,显示如下画面。这个示例对中文的支持不好,全都显示成了 unicode 码了。不管这什么多,反正知道是这么回事就行了。在 comment 项填写意见,选 OK 按钮,进入到下一步。如果选择more info needed 按钮,则打回给 cookie monster 用户修改定单。

 

下面的流程,这里就不再赘述了。由于流程是设计好的,而且用的数据库是个内存数据库,也看不到数据是如何记录的,看了这个例子可能有点迷糊,似乎感觉不到jBPM在起作用,其实jBPM 始终是在后台起着作用,只有通过自己写个例子,设计一下流程,看一下数据库表结构才能真正明白其中的道理,《Jbpm工作流(二)》中将介绍这些。

 

4、创建jbpm项目

4.1要引入可视化插件

jbpm提供了在eclipse下的一个可视化插件,通过它我们可以方便的定义工作流,介绍一下eclipse如何添加该插件?

打开jbpm-starters-kit-3.1.4\jbpm-designer\jbpm-gpd-feature目录,我们可以看到下面有一个eclipse文件夹,这里我们通过link的方式为eclipse添加该插件。

在{eclipse_home}/link文件夹下新建jbpm-designer.link文件,用记事本打开该文件加入如下一行:

path=D:\\jbpm-starters-kit-3.1.4\\jbpm-designer\\jbpm-gpd-feature

后面的路径即为该插件的存放路径,根据个人情况修改。注意,这里的分隔符使用双斜杠\\或者用单斜杠/。  

当插件引入成功后,

打开Eclipse----window----Preferences



 

出现JBoss jBPM的目录,表示插件引入成功。

4.2 引入jbpm包,使eclipse具有jbpm环境

Eclipse编译jbpm可视化流程图,有时特别慢,甚至会导致死机,原因是未导入jbpm包的问题,可视化流程图需要有jbpm环境,介绍一下如何解决这个问题?

打开Eclipse----window----Preferences

如下图



 

点击【Add】,如下图:

 

Name:随便录入

Location: D:\jbpm-starters-kit-3.1.4\jbpm-starters-kit-3.1.4\jbpm,此路径为下载的

jbpm-starters-kit-3.1.4包中的jbpm文件夹,即jBPM 的软件包。

 

4.3 创建我们自己的jbpm

打开eclipse---new--Project,如下图:

 

选择Process Project,点击【Next】,如下图

 

name:工程名称,随意录入。

Location:就是在上面所讲的jBPM 的软件包。点击【finish】后,创建如下项目:

 

以上就创建了一个jbpm的项目,里面的代码和流程图会自动创建,也说明你的eclipse已具有jbpm环境。