JBPM初识

什么是JBPM

        Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。(来自百科)


特点

       JBPM的业务逻辑定义采用了它自己定义的JBoss jBPM Process definition language (jPdl)
jBPM使用Hibernate来管理它的数据库。只要是 Hibernate 支持的数据库, jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于业务逻辑的处理。


JBPM的核心对象

核心对象就是Configuration和ProcessEngine。
        configuration是jbpm的配置文件管理对象(资源加载对象)。负责加载jbpm的各种配置:如数据库连接配置,事务配置,身份认证,jpdl等相关配置
        ProcessEngine是一个服务工厂,负责创建jbpm的每个任务。它通过configuration类构建,configuration以单例模式获取该对象。它是线程安全的,所有的线程和请求都可以使用同一个processEngine对象。


开发步骤:建立数据库连接、建立jdpl流程定义、部署流程定义、创建流程实例、提交任务


1、 建立数据库连接,通过Hibernate连接数据库,以mySql为例。
       jbpmtest是mysql中的schema的名字;
       utf-8是字符集,可以根据需要修改;
       username=root,mysql数据库的用户名是root;
       password=root,mysql数据库的用户密码是root

hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost/jbpmtest?useUnicode=true&characterEncoding=utf-8
hibernate.connection.username=root
hibernate.connection.password=root

2、 建立jdpl流程定义
       实际就是一个XML文件,提前定义好格式


3、 部署流程

ProcessEngine processEngine=Configuration.getProcessEngine();  
//创建repositoryService服务,可以实现部署、删除流程等  
RepositoryService repositoryService=processEngine.getRepositoryService();  
//部署流程  
repositoryService.createDeployment().addResourceFromClasspath("jbpmtest.jpdl.xml").deploy();  

4、创建流程实例

ProcessEngine processEngine=Configuration.getProcessEngine();  
ExecutionService executionService=processEngine.getExecutionService();  
//通过已经存在的实例的key值,获得实例  
ProcessInstance processInstance=executionService.startProcessInstanceByKey("jbpmtest");  
System.out.println("流程实例ID===="+processInstance.getId());  

5、提交任务

ProcessEngine processEngine=Configuration.getProcessEngine();  
TaskService taskService=processEngine.getTaskService();  
      
taskService.completeTask("**");

JBPM基本的流程就是这样了,其他的之后再介绍。另外,给出一些知识补充:JBPM提供的服务


RepositoryService

流程资源服务接口。提供对流程定义的部署、查询、删除和流程图查看的操作。


ExecutionService

流程执行服务接口。提供启动流程实例、推进、删除操作。


TaskService

人工任务服务接口。提供对任务的创建、提交、查询、保存、删除等操作


HistoryService

流程历史服务接口。对流程历史库中历史流程实例,历史活动实例等记录的查询


ManagementService

流程管理接口。通常用来管理异步服务(不常用)。


IdentityService

身份认证服务接口。


最后给大家推荐一篇相关的不错文章(点我)











你可能感兴趣的:(JBPM初识)