工作流总结(三)JBPM 六个流程服务接口

在说明六个核心服务之前,需要提到的是ProcessEngine对象。类似一个工厂提供流程过程中所需的服务,抽象工厂设计模式的体现。而ProcessEngine对象是由Configruation对象来创建的,ProcessEngine是一个线程安全的对象,保证我们在开发过程中可以将这个对象放置到静态对象中,或者通过JNDI协议来获取对象;也能够方便开发者去开发使用。所有的请求都可以使用同一个ProcessEngine对象,读到这里大家也应该想到了单例模式的使用。

1.创建ProcessEngine对象

通过Configruation配置对象直接就可以获取ProcessEngine,前提是开发者的定义配置文件jbpm.cfg.xml放在在classpath路径下,并且名字没有改变。

ProcessEngine processEngine=Configuration.getProcessEngine();

当然如果要使用其他的配置文件也是可以的。这时候通过setResource来配置

/** provide an classpath resource as the configuration file */
public Configuration setResource(String resource) 

2.六个流程操作接口

获取操作对象

repositoryService=processEngine.getRepositoryService();
executionService=processEngine.getExecutionService();
taskService=processEngine.getTaskService();
historyService=processEngine.getHistoryService();
managementService=processEngine.getManagementService();
identityService=processEngine.getIdentityService();

RepositoryService

流程资源服务接口,提供流程部署、查询、删除等操作。

如:

repositoryService.createDeployment().addResourceFromClasspath("offJbpm.jpdl.xml").deploy();

ExecutionService

流程服务执行接口,负责流程执行、流程推进、流程变量的设定等。

如:

Map<String,Object> map=new HashMap<String,Object>();
map.put("userId","1");
map.put("userName","cfl"); 
//id jbpm4_deployprop 
ProcessInstance processInstance= executionService.startProcessInstanceByKey("offJbpm", map);

TaskService

任务服务接口,提供流程任务的创建、保存、删除、查询、完成。
如:

 taskService.completeTask("30001"); 

HistoryService

流程历史服务接口,提供历史流程信息的查询、以及对这些历史流程信息的分析。

ManagementService

控制流程服务接口,提供job的异步控制执行查询。

IdentityService

在流程控制中存在相关人员,既然有相关人员就会相关人员但认证。

3.jbpm中的命令模式

这里写图片描述

在jbpm的流程服务接口的上层定义了一个抽象的服务Abstractimpl,抽象服务接口持有一个抽象的CommandService的对象,各个服务接口实现抽象服务接口。这样在实现过程中,具体的命令实现抽象接口后,执行自己内部的方法实际上是执行的抽象CommandServcie的excute泛型方法来实现的。

通过将消息发送者和消费者分开,并将消息封装为一个对象。达到消息消费者和消息发送者之间的解耦合,以此能够控制消息的撤销和恢复。并且在消息传递的过程中,无需去考虑消息具体实现。

如同其他的知识一样,在jbpm中常用的只有那么一些小众的api。在这里,笔者不是对于那些大包大揽的学习痴狂者的批评。只是在学习之初,往往需要掌握的就是这些常用的api。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏修

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值