传智播客 JBPM基础之入门和简介

来源:互联网 发布:windows vista xp 编辑:程序博客网 时间:2024/05/29 18:01

 

工作流就是工作流程的计算机化,即将工作流程中的工作如何前后组织在一起的
逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。

工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计
算机,按某种预定规则自动传递文档、信息或者任务。

通俗的说,就是多个人在一起合作完成某件事情。

** 工作流管理系统(Workflow Management System, WfMS)
主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执
行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系
统来实现。

工作流管理系统是定义、创建、执行工作流的系统,应能提供以下三个方面的功
能支持:A)定义工作流:包括具体的活动、规则等;B)运行控制功能:在运行
环境中管理工作流过程,对工作流过程中的活动进行调度;C)运行交互功能:指
在工作流运行中,WfMS与用户(活动的参与者)及外部应用程序工具交互的功能。

** 演示

** jBPM,全称是Java Business Process Management
是一种基于J2EE的轻量级工作流管理系统,jBPM是公开源代码项目, 官方主页
为:http://www.jboss.org/jbossjbpm

我们学习的版本为:3.2.2

OA(办公自动化)主要技术之一就是工作流。

* Jbpm的使用

** 使用步骤
- 编写流程定义(定义规则);
- 部署流程定义到系统中;
- 执行流程(使用指定的流程定义);

** 编写流程定义

以上流程由三个步骤组成,每个步骤即是一个任务,分别由一个角色执行。应该
使用jBPM提供的JPDL(jBPM Process Definition Language)来描述这个流程,
这样使用了jBPM的系统才能看的懂。

jPDL:是一种直观的流程语言,可以使用任务、等待状态、定时器、自动化动作
等等图形化地表示流程。jPDL认为一个商务流程可以被看作是一个UML状态图。
jPDL就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转
换等。(就是写一个xml文件)

用jPDL描述上面这个流程。

** 使用 jbpm 提供的 jbpm console web 应用程序测试/使用流程
jBPM Console web 是由 jBPM 提供的一个web应用。它是一个管理和监控流程的
控制台,用于检查和操纵运行的流程实例。

双击 server/start.bat 启动jbpm提供的jboss服务器,要访问地址为:
*********  http://localhost:8080/jbpm-console/

部署流程定义到 jbpm-console 中时的注意事项:A)要求流程定义文件的名字为
processdefinition.xml,并且在一个zip压缩文件的根目录中;B)存放流程定义
的zip文件所在的路径中不能含有中文(因为jbpm-console应用没有处理中文)。

部署流程定义后,就可以使用这个流程定义了(执行流程)。在开始一个流程后,
要先进入到 tokens 页面中点击 Signal 链接,这样才能使流程离开开始状态,
以后的步骤中都不需再做这个操作。当流程执行到有任务的节点时,就可以看到
当前节点中定义的任务了。任务的办理分为两步:开始和结束。

部署流程定义时,如果存在同名的流程定义,则版本自动累加;如果不存在,则
版本为1。

** 流程实例通过Token的维护当前正在执行的节点
Jbpm是怎么知道一个流程实例现在走到哪个节点了呢?每个流程实例都有一个指
针,指向当前正在执行的节点,在当前节点执行完后,到达了下一个节点,就是
让这个指针指向下一个节点。这个指针叫做Token(令牌)。

Token是运行时的概念,用来维护指向图结点的指针。Token需要一个信号
(signal)来让流程向前执行。当一个signal来到的时候,Token就会通过
transition离开当前的结点走到下一个结点。

** jBPM提供了一个图形化的流程设计器,是一个eclipse插件。
使用插件设计流程定义还可以生成图片,这样就可以实现流程的图形化监控。

使用插件设计完流程定义并保存后,会有三个文件:A)processdefinition.xml,
流程定义文件;B)processimage.jpg,流程图片;C)gpd.xml,保存流程图片中
的各个节点的坐标信息。

插件安装方法:在Eclipse安装目录下的links目录中新建一个文本文件,把扩展
名改为.link,并且修改内容为path=${插件中的eclipse文件夹所在的路径}。

** 使用插件时会遇到的几个问题
1,插件在eclipse3.3的版本上才能正常工作,所以myeclipse5.1(eclipse3.2)不
   能使用这个插件。
2,安装插时,如果 MyEclipse安装目录下的eclipse目录中没有links目录,可以
   手工创建一个。
3,还要注意指定的插件的路径中不能含有中文。


1,使用插件设计流程定义时,如果再点击插件下方的 "Source" 选项卡修改生成
   的processdefinition.xml,会出现突然少了一些内容或多出一些内容等情况,
   这是插件的问题。
2,如果想修改流程定义源文件,可以使用普通的xml编辑器打开进行修改,方法
   是在文件上点击右键 -> Open With -> MyEclipse XML Editor。
3,如果流程名称有中文或节点的名字中有中文,则生成的gpd.xml中的节点名字
   会出现乱码,这会导致不能正确的进行图形化监控。修正方法:在部署流程定
   义前把gpd.xml文件的编码改为GBK(改为本地编码,也要修改xml文件中的
   encoding的值为GBK)。要注意如果修改并保存了一下流程定义,就会重新生
   成processimage.jpg和gpd.xml文件,这时gpd.xml中的encoding又变成了
   UTF-8,应再改为GBK。(这是一个Bug)。