jBPM一(概念及管理控制流程)

工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。

通俗的说,流程就是多个人在一起合作完成某件事情的必要步骤,把步骤变成计算机能理解的形式就是工作流。

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

  1. 定义工作流:包括具体的活动、规则等
  2. 运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度
  3. 运行交互功能:指在工作流运行中,WfMS与用户(活动的参与者)及外部应用程序工具交互的功能。

那么使用工作流管理系统有什么好处呢?

  1. 提高系统的柔性,适应业务流程的变化.
  2. 实现更好的业务过程控制,提高顾客服务质量
  3. 降低系统开发和维护成本

目前市面上主要的工作流框架有:Jbpm、OSWorkflow、ActiveBPEL、YAWL等.

一个工作流管理系统往往分为两部分组成,定义工作流的时候,需要给用户提供一种简单清晰的方案,一般提供给一个"流程设计器"来帮助用户有效的制定流程.我们无法让计算机依客户的方案去执行这套流程,我们必须要使用计算机能够读得懂的语言.xml能够很好的描述数据之间的关系,jBPM就对xml提供了约束文档,称为JPDL(jBPM Process Definition Language).在客户制定流程的时候,要生成一张图片给客户看,还要生成一个xml文件给计算机看.因为我们不知道客户需要什么样的流程,而且流程要给客户自由管理,比如添加一个流程,或是删除一个流程,所以这是客户需要做的,这被称为表达业务流程.我们需要做的就是让工作流系统正确的工作,管理控制流程,大致上可以分为这个两部分:

image

jBPM也是使用Hibernate对流程的数据进行存储,它将在数据库中创建18张表来管理不同的信息.如果数据库是Mysql,则方言一定要是MySQL5InnoDBDialect!

在Eclipse中安装完插件(GPD)后,就能使用流程设计器了.

image

在保存的时候将同步生成一个对应的xml文件.这个xml文件是最主要的文件.

相关概念:

Process definition---流程定义

流程定义就是整个流程的一个描述.

Process instance---流程实例

一个流程实例包括了所有运行阶段, 其中最典型的属性就是跟踪当前节点的指针。它就是一个主线.

Execution---执行

一般情况下,一个流程实例是一个执行树的根节点, 当一个新的流程实例启动时,实际上流程实例就处于根节点的位置, 这时只有它的"子节点"才可以被激活。使用树状结构的原因在于, 这一概念只有一条执行路径, 使用起来更简单。 业务API不需要了解流程实例和执行之间功能的区别。 因此, API里只有一个执行类型来引用流程实例和执行。它相当于一个支线.

ProcessEngine最核心的对象,就像Hibernate中的SessionFactory一样,做任何事情都要通过它.ProcessEngine提供了获取Service的方法,以下是获取Service的方式:

RepositoryService repositoryService = processEngine.getRepositoryService();

ExecutionService executionService = processEngine.getExecutionService();

TaskService taskService = processEngine.getTaskService();

HistoryService historyService = processEngine.getHistoryService();

ManagementService managementService = processEngine.getManagementService();

IdentityService identityService = processEngine.getIdentityService();

各个Service的作用:

RepositoryService

管理流程定义

ExecutionService

执行管理,包括启动、推进、删除流程实例等操作

TaskService

任务管理

HistoryService

历史管理(执行完的数据管理)

IdentityService

jBPM的用户、组管理

ManagementService

 

有关查询的API:

功能说明

相应的查询API

查询“流程定义”

ProcessDefinitionQuery processDefinitionQuery =

processEngine.getRepositoryService()

.createProcessDefinitionQuery();

查询“执行对象”

(流程实例)

ProcessInstanceQuery processInstanceQuery =

processEngine.getExecutionService() //

.createProcessInstanceQuery();

查询“任务”

TaskQuery taskQuery = //

processEngine.getTaskService()//

.createTaskQuery();

查询“执行历史”

(流程实例历史)

HistoryProcessInstanceQuery historyProcessInstanceQuery =

processEngine.getHistoryService()

.createHistoryProcessInstanceQuery();

查询“任务历史”

HistoryTaskQuery historyTaskQuery =

processEngine.getHistoryService()

.createHistoryTaskQuery();

jBPM的API风格都是方法调用链的形式.

创建一个流程定义

被添加的文件可以是一个文件:

private ProcessEngine processEngine = Configuration.getProcessEngine();
 
// 部署(添加)
// jbpm4_deployment, jbpm4_deployprop, jbpm4_lob
@Test
public void deploy() {
   
    String deploymentId = processEngine.getRepositoryService()//
            .createDeployment()//
            .addResourceFromClasspath("aa/aa.jpdl.xml")// 必须要有一个 .jpdl.xml 文件
            .addResourceFromClasspath("aa/aa.png")//
            .deploy();
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值