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 服務器配置