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