JBPM4 引擎對象與各類服務

流程引擎對象,ProcessEngine是jbpm4全部Service API之源設計模式

         在jbpm中各類服務相互依存,但全部的service API都從ProcessEngine中得到,它是由Configuration類構建的,即工做流引擎根據配置產生。
        ProcessEngine是線程安全的,所以它能夠保存在靜態變量中,甚至JNDI命名服務中或者其餘重要位置。在應用中,全部線程和請求均可以使用同一個ProcessEngine對象,如下代碼告訴您如何得到ProcessEngine:   
Java代碼
ProcessEngine  processEngine=Configuration.getProcessEngine();     
ProcessEngine processEngine=Configuration.getProcessEngine();安全


 直接能夠用processEngine.getXXX()獲得的7個service異步

在jbpm4中對客戶端的接口統一爲7個服務接口:ProcessService、ExecutionService、CommandService 、TaskService 、ManagementService、HistoryServiceIdentityService,這7個接口能夠從ProcessEngine接口中得到,jbpm4在啓動的過程當中由JbpmConfiguration負責構建引擎。ide

下面把這7個service描述一下:spa

    RepositoryService—流程之源服務的接口。提供對流程定義的部署,查詢,刪除等操做。
    ExecutionService—流程執行服務的接口。提供啓動流程實例,「執行」推動,設置流程變量等操做
    ManagementService—流程管理控制服務的接口,提供異步工做(Job)相關的執行和查詢操做。
 CommandService-Command模式的服務接口,實際上就是將客戶端的請求所有封裝在一個調用接口中, 而後由這個接口去調用Command接口的衆多實現(StartExecutionCmd、SignalCmd、SetVariablesCmd、GetTimersCmd、DeployCmd、NewTaskCmd、SubmitTask、ExecuteJobCmd等等,具體可參加pvm/internal/cmd,task/internal/cmd包及其它包下實現Command接口的類), 這是典型的Command模式的應用,感興趣的讀者能夠去了解設計模式中的Command模式;線程

    TaskService—人工任務服務的接口。提供對任務(Task)的建立,提交,查詢,保存,刪除等操做。
    HistoryService—流程歷史服務的接口。提供對流程歷史庫(即已完成的流程實例歸檔)中歷史流程實例,歷史活動實例等記錄的查詢操做。
  還提供諸如某個流程定義中全部活動的平均持續時間,某個流程定義中某轉移的通過次數等數據分析服務。
    IdentityService—身份認證服務的接口。提供對流程用戶,用戶組以及組成員關係的相關服務設計

相關文章
相關標籤/搜索