`
gaojingsong
  • 浏览: 1153523 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【JAVA之工作流介绍】

阅读更多

理解JBPM(java Business Process Management)的基本概念:

 

JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。

 

jBPM is a flexible Business Process Management (BPM) Suite. It makes the bridge between business analysts and developers. Traditional BPM engines have a focus that is limited to non-technical people only. jBPM has a dual focus: it offers process management features in a way that both business users and developers like it.

 

jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域非常流行的一种数据存储层解决方案,只要是 Hibernate 支持的数据库, jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于业务逻辑的处理



 

 

jPDL - JBPM Process Definition Language

 

JBPM简要过程:

1、定义流程(利用JPDL)

2、部署流程(部署到数据库)

3、创建公文并与流程实例绑定

4、可通过JBPM的接口,触发流程向下流动

5、可通过JBPM的接口,获得流动到某个用户那里的文档(即待处理任务列表)

6、可通过JBPM的接口,结束某个用户的任务(这将触发流程继续向下流动)

7、如此,直到结束

 

 

工作流是一项分离业务操作和系统流程的技术。工作流由实体(Entity)、参与者(Participant)、流程定义(Flow Definition)、工作流引擎(Engine) 四部分组成。

① 实体是工作流的主体,是需要随着工作流一起流动的物件(Object)。例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文。

② 参与者是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备;

③ 流程定义是预定义的工作步骤,它规定了实体流动的路线。它可能是完全定义的,即对每种可能的情况都能完全确定下一个参与者,也可能是不完全定义的,需要参与者根据情况决定下一个参与者;

④ 工作流引擎是驱动实体按流程定义从一个参与者流向下一个参与者的机制

前三个要素是静态的,而第四个要素是动态的,它将前三者结合起来,是工作流的核心组成元素。



 

 

工作流程

1) jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库。只要是Hibernate支持的数据库,jBPM就支持。数据库的初始化可以由jBPM自动完成,也可以通过ant generate.ddl任务生成SQL语句,在jBPM外部自己创建所需的表。

2) 使用jPdl定义工作流,生成processdinination.xml文件。可以采用GUI工具jPdl,但目前只支持jBPM1.0,而且bug很多。XML的DTD定义文件在jBPM下载包中。

3) Ant create.pde生成pde包的工作目录。将processdinination.xml文件和其它需要的文件放在指定的目录下,使用ant build.precess.archives生成pde包。pde包的格式采用jar。

4) 更改pde工作目录/src/config/jbpm.properties的相关属性,主要是设定相关的数据库连接信息。注意要将数据库的JDBC驱动放在pde工作目录的lib目录下。

5) Ant deploy.process.archives将刚才生成的pde部署到数据库。实际上就是向数据库插入一些相关数据。

6) 利用jBPM API函数开发相应的工作流程。

  • 大小: 14.4 KB
  • 大小: 7 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics