jBPM入门(一)

jBPM入门(一)

2008-12-8   李军

环境

[1] jbpm-starters-kit-3.1.4

[2]MyEclipse5.1.x

[3]J2SE SDK 1.5.x

阅读前提

   有在My Eclipse上进行J2EE开发的经验

概要

总体上介绍jBPM开发,以图例为主,辅以文字。

正文

下图是流程的开发过程

 

 

jBPM入门(一)_第1张图片

1 流程定义项目开发过程

 

 

首先我们制作流程定义文件(和修改配置信息),然后我们写java代码,最后通过JUnit,图一绿色部份,进行测试,若没问题则OK, 否则,根据情况返回上一步。

所以先来介绍图一蓝色部份,流程定义文件的制作。下图是流程定义文件的视图方式。

 

 

 

jBPM入门(一)_第2张图片

图二 图程定义文件视图部份局部面

 

 

参考上图,我们可以把流程定义文件,看成是一个有向图的描述文件。主要有结点和单向箭头组成。jBPM特殊的是,它只能有一个起始结点和一个终止结点。

结点代表数据的处理过程。箭头代表执行流的方向。

结点可以激发进入结点事件、离开结点事件。方向箭头只激发一个action事件。我们可

 

 

心根据流程定义文件,编写java代码来对应各个结点和方向箭头的事件处理代码。

jBPM提供了多种类型的结点。主要分为两种,一种需要参于者的结点(Start-stateEnd-stateTask-node三种类型),一种是不需要参于者的结点(nodedecision二种类型)

需要参于者的结点Start-stateEnd-state结点仅用于代表开始、终止结点,最常用的是task-node结点,它是需要参于者参于数据处理的结点。具体使用请参考,参考资料[1]

不但可以为进入离开结点编写事件处理代码,还可以为该节点编写分配参于者(Assignment)代码。

不需要参于者的结点Node结点它的出度一般为一,较常用的是decision类型结点,它的出度大于1,用事先写好的代码,来判断执行流的方向。

 

我们再来看图一 红色部份框框,主要用来编写适用于流程定义的java代码。它的编写就像你在struts框架(或类似J2EE其它开发框架)上填充代码。必须遵循一定的规范。

你要编写的Java代码主要分成两部份,第一部份是action代码,用于事件处理。第二部份是Assignment代码,用于分配当前结点的参于者。

它们必须继承某个接口,实现某个接口的方法,在指定的方法体内填入数据处理代码。

 

最后就是测试,我们可以使用JUnit测试,也可以让jBPM结合struts2框架来做测试。只要不忘记把jBPM放入某个框架时,把jar文件也拷贝过去。

 

建议的jBPM学习顺序是:

Step1: 粗略看下参考资料[1]

Step2:做一下参考资料[2][3]中的示例

Step3 按以下顺序阅读、修改我留下的四个示例:vacate示例、Fork join示例、User Model示例和countersign示例。

 

备注:

Vacate示例内容:

常用结点的使用,如何进行分支切换。

Fork join示例:

Forkjoin结点如何使用的简单示例。还包括swimlane的简单使用。

User Model示例:

用户模型如何同jBPM结合

Countersign示例:

jBPM监控,会签、如何根据Actor ID获取任务列表,持久化操作。

 

参考资料:

[1] jBPM中文用户指南.chm

[2] jBPM入门学习Hello World

http://www.zxbc.cn/html/javajc/0511064135264.html

[3]jBPM开发入门指南(2)

http://www.blogjava.net/chengang/archive/2008/10/30/65132.html

你可能感兴趣的:(java,框架,struts,MyEclipse,JUnit,jbpm)