JBPM—Kieserver詳解

Kieserver功能介紹

kiserver是我們的定義的業務流程和業務規則的執行的地方,他提供執行引擎,來解釋執行這些流程和規則

kie-server就是一個war包,可以部署到我們的web服務器上,比如tomcat或者wildfly(Jboss 服務器的As版本,輕裝型的),因爲JBPM和wildfly本自同根生的緣故,所以默認是wildfly

每個kieserver都有一個Controller這個Controller會提供restful風格的API供我們調用,

我們可以通過這些接口,看到這個kie-server上部署的項目和工作流定義,然後還可以通過接口去實例化這些流程,控制流程,

當然上面我也演示了,可以通過business-central的UI界面去做這些操作,

這裏是可以通過接口的,就是讓我們二次開發調用使用的。

至於如何獲得上面所說的的API呢,當我們的kie-server被啓動後可以通過下面的鏈接:http://XXXX:8080/kie-server/docs/

在這裏插入圖片描述
如上圖所示API都在上面了,

請求類型 地址 參數 註解
GET localhost:8090/rest/server/containers 獲取容器定義列表
GET localhost:8090/rest/server/containers/{containerId}/processes containerId: 容器id 獲取相應容器的流程列表
GET localhost:8090/rest/server/containers/{containerId}/processes/instances 檢查實例話的流程列表
GET localhost:8090/rest/server/containers/{containerId}/processes/instances/{processInstancesId}?withVars=true processInstancesId:流程實例id;withVars: 是否加載流程實例變量 返回指定容器中流程實例信息
GET localhost:8090/rest/server/containers/{containerId}/processes/instances/{processInstancesId}/workitems 查看路程實例的工作項(用戶任務)
POST localhost:8090/rest/server/containers/{containerId}/processes/{processId}/instances processId: 流程id 創建流程實例
PUT localhost:8090/rest/server/containers/{containerId}/processes/instances/{processInstancesId}/workitems/{workItemId}/completed workItemId:工作項id 完成制定工作項

這裏只枚舉了常用的API接口,不是很全,詳細的接口或參數信息在http://10.116.18.196:8080/kie-server/docs/中查看!

Kieserver系統屬性詳解


Kieserver一般都會進行託管管理,當我們的Business Central 和 Kieserver 分開部署的時候。大致的意思是我們可以有多個kieserver 一般都會註冊到統一管理平臺上,比如我們的Business Central,所有的Kieserver都可以註冊到Business Central上。大致的原理就是:Business會暴露出來一個RESTFUL的接口叫Controller,然後Kieserver會通過這個接口進行註冊到business 上。
效果如下圖所示:
在這裏插入圖片描述

Property Value Description Required
org.drools.server.ext.disabled boolean (default is “false”) 是否支持BRM流程(True-不支持,False-支持) NO
org.jbpm.server.ext.disabled boolean (default is “false”) 是否支持BPM流程(True-不支持,False-支持) NO
org.jbpm.ui.server.ext.disabled boolean (default is “false”) 是否支持BPM UI(True-不支持,False-支持) NO
org.optaplanner.server.ext.disabled boolean (default is “false”) 是否支持BRP(True-不支持,False-支持) NO
org.kie.executor.disabled boolean (default is “false”) 是否支持執行BPM業務流程(True-不支持,False-支持) NO
org.kie.server.id String kieserver的ID,當連接並註冊了Controller之後會在註冊中心顯示這個ID NO,不指定會給默認的
org.kie.server.user String(默認是“kieserver”) Controller連接Kieserver的時候用戶名 NO
org.kie.server.pwd String (默認是“kieserver1!”) Controller鏈接Kieserver的時候用的密碼 NO
org.kie.server.controller String,多個用逗號分開 Kieserver要註冊的Business的地址列表例如: http://localhost:8080/business-central/rest/controller 是(當使用JBPM controller時)
org.kie.server.controller.user String(默認是“kieserver”) 連接Controller用的用戶名 是(當使用JBPM controller時)
org.kie.server.controller.pwd String (默認是“kieserver1!”) 連接Controller的密碼 是(當使用JBPM controller時)
org.kie.server.location Kie服務器的URL的位置 JBPM Controller會通過這個URL回調kieserver 是(當使用JBPM controller時)
org.kie.server.domain String 使用JMS時應用於認證用戶的JAAS的LoginContxt域 NO
org.kie.server.bypass.auth.user boolean (default is “false”) 允許繞過需要身份驗證的操作,例如查詢 NO
org.kie.server.repo String 有效的文件系統路徑 maven的repository的地址 NO
org.kie.server.persistence.ds String 數據源JNDI的名稱 Yes,當支持BPM流程時
org.kie.server.persistence.tm String 用於Hibernate屬性集的事務管理器平臺 Yes,當支持BPM流程時
org.kie.server.persistence.dialect String Hibernate的持久化方言如:org.hibernate.dialect.MySQL5InnoDBDialect Yes,當支持BPM流程時
org.jbpm.ht.callback String 任務支持的回調之一(默認Jass) No
org.jbpm.ht.custom.callback String 在org.jbpm.ht.callback設置爲’custom’的情況下UserGroupCallback的自定義實現 NO
kie.maven.settings.custom String 指定Maven的Settings.xml的位置 NO
org.kie.executor.interval Integer默認爲0 指定兩次輪詢之間的時間間隔 NO
org.kie.executor.pool.size Integer默認爲1 池中用於異步工作的線程數 NO
org.kie.executor.retry.count Integer默認爲3 重試處理錯誤的次數 NO
org.kie.executor.timeunit TimeUnit(默認爲“SECONDS”) 時間單位 NO
org.kie.executor.disabled boolean (default is “false”) 完全禁用executor NO
kie.server.jms.queues.response String(默認爲“ queue / KIE.SERVER.RESPONSE”) JMS響應隊列的JNDI的名稱 NO
org.kie.server.controller.connect long(默認爲10000) kieserver啓動時連接Controller時的輪詢間隔(毫秒爲單位) NO

Kieserver

執行服務器,爲定義的BPM或者BRM提供運行時環境,這些功能都是由Kie Server Extension提供,一個Kieserver實例化並提供多個Kie Containers的支持。

Kie Server Extension

Kie Server 的“插件”,用於向服務器添加功能。Kie Server隨附兩個默認的Kie Server拓展:BRM和BPM

Kie Container

Kjar在內存中的實例化,KieServer通過諸如REST和JMS之類的傳輸協議通過標準API公開Kie容器

Controller

服務支持的REST端點,負責管理KieServer實例,該端點必須提供以下功能:

  • 響應連接請求
  • 在相應的Kie Server ID上同步所有已註冊的容器
  • 響應斷開請求

Kie Server 狀態

給定Kie Server實例的當前已知狀態。這是本地存儲(默認情況下在文件中),維護以下信息:

  • 已註冊的JBPM控制器列表
  • 已知容器列表
  • Kie 服務器配置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章