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

身份認證服務接口。


最後給大家推薦一篇相關的不錯文章(點我











發佈了108 篇原創文章 · 獲贊 59 · 訪問量 106萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章