一、前言
本文仅代表作者的个人观点;
本文的内容仅限于技术探讨,不能作为指导生产环境的素材;
本文素材是红帽公司产品技术和手册;
本文分为上篇和下篇两部分;
本文实验的业务用例是一个汽车保险公司的报价的业务流程。
本课程实验的最终输出是业务流程数据生成的关键绩效指标(KPI),如下所示:
KPI提供了可视化的指标,其中包括:车险(潜在)客户的跳出率、跳出原因、驾驶事故率等。
而这些关键绩效指标,来自保险公司的保单报价业务流程所产生的非规范化数据,如下所示:
上图的业务流程由JBoss BPM Suite的流程引擎管理。
在本文的实验中,我们使用JBoss BPM Suite设计,部署和执行此策略报价业务流程。
JBoss BPM的产品组成如下:
上图中:
除了这些运行时引擎之外,JBoss BPM Suite和JBoss BRMS基于KIE-Workbench社区项目提供基于Web的工作台,该项目允许管理和监控业务流程和规则项目以及决策服务器、以及基于KIE-Server项目的智能流程服务器,该项目为流程、规则和资源优化工作负载提供轻量级,云原生运行时引擎。
具体组件如下:
上图中:
我们再看一下BPM内部的交互流程:
上图中:
工作流程:
上图中:
二、实验展示
在我们是实验中,JBoss BPM Suite给一个车险公司提供服务:包括政策报价流程、跟踪特定客户的地产保险政策以及要求保险公司作出回应的事件。
那么,到底什么指标可以衡量为保险公司运行是否健康呢?
为了跟踪新的保险单,可以测量从政策报价导出的销售额。 在政策报价过程之后,可以采用不同的方法来检测报价是否导对销售的结果产生积极的影响。
如果政策已售出,则会反映在期间的销售额中,但如果报价不会导致出售,则会反映在跳出率中。
在保险公司情景中,按原因跳出率提供了有关为什么一些报价不会导致政策销售的信息。
想想为什么有人会决定不购买保险单的原因。
客户购买保险后,可能会在保单生命周期中发生事故,例如汽车保险政策中的车祸。 衡量事件的“原因”和“谁”是保险公司的利益所在,因为这可以推动关于哪些客户有资格获得较低的续约价格,以及政策条款和报价流程变化的商业决策。
其他可以影响保险公司业务决策的事例,包括州或地区的气候、汽车特征和人口统计。
什么可以推动客户对报价流程和规则进行更改的决定?
在以下部分中,我们将了解仪表板及其配置,以更好地了解Dashbuilder如何用于监视和优化过程。
我在笔记本上通过virtulbox虚拟机搭建了一套BPM,
在cli中查看BPM的服务状态:
查看JVM:
实验的BPM是一个standalone方式的,内嵌了一个mysql数据库,我们登录并查看mysql的表:
通过浏览器8080端口可以访问:
输入用户名密码后,登录到界面中:
登录进以后,选择business dashboard:
选择qouta dashboard:
这些报价仪表板提供了:关于报价过程的结果的信息,包括关于策略报价是否导致销售或被反弹的信息、以及是否反弹、客户没有购买策略的原因。
我们选择2016年3月数据:
三、配置外部数据源
DASBu建器支持外部数据源的配置。在本节中,我们将探究允许策略引用仪表板访问其外部数据的配置。
选择data source:
数据源提供了对不同外部数据提供者的连接,这些外部提供者通常在JBOSS EAP的数据源中配置,并在本节中与JNDI一起使用。
编辑pquoteReportingDs
查看data providers:数据提供者使用数据源和SQL语句来获取仪表板中所需的信息。
我们修改这个数据源:
四、过程与规则执行
本小节的实验步骤是:
1.创建组织
2克隆Git储存库
3.将KJAR组件部署到KIE服务器容器中
4将进程实例和任务作为JBOSS和USER1用户执行
5.观察统计数据和日志
Task | Type | Description |
---|---|---|
Prepare Data | Script | Creates domain objects (Driver and Policy) from input process variables. |
Set Price | User Task, assigned to agent group | Shows details of the domain objects and allows setting policy’s price. |
Review, No review | Exclusive gateway | Criterion is the price of the policy process variable. If less than 500, no review is required. |
Review Price | User Task, assigned to Administratorsgroup | Allows overriding the price set by the agent user in the Set Price User Task. |
Log | Script | Outputs the state of the policy process variable to the server console. |
五、BPM运行时
JBoss BPM Suite包含几个轻量级运行时引擎:
我们继续上面的案例,看一个kjar:kie-server-lab-kjar
选择org.specialtripsagency
package.
接下来看一下流程建模,本流程是审核机票预订流程的定义。
选择构建和部署:
查看部署在KIE服务器上的容器:
[jboss@localhost ~]$ curl -X GET -H "Accept: application/json" --user jboss:bpms http://localhost:8080/ke-server/services/rest/server/containers
{
"type" : "SUCCESS",
"msg" : "List of created containers",
"result" : {
"kie-containers" : {
"kie-container" : [ {
"status" : "STARTED",
"scanner" : {
"status" : "DISPOSED",
"poll-interval" : null
},
"messages" : [ {
"severity" : "INFO",
"timestamp" : 1527778505502,
"content" : [ "Container flight-booking-1.0 successfully created with module com.redhat.gpte.bpms-advanced:kie-server-lab-kjar:1.0." ]
} ],
"container-id" : "flight-booking-1.0",
"release-id" : {
"version" : "1.0",
"group-id" : "com.redhat.gpte.bpms-advanced",
"artifact-id" : "kie-server-lab-kjar"
},
"resolved-release-id" : {
"version" : "1.0",
"group-id" : "com.redhat.gpte.bpms-advanced",
"artifact-id" : "kie-server-lab-kjar"
},
"config-items" : [ {
"itemName" : "KBase",
"itemValue" : "",
"itemType" : "BPM"
}, {
"itemName" : "KSession",
"itemValue" : "",
"itemType" : "BPM"
}, {
"itemName" : "MergeMode",
"itemValue" : "MERGE_COLLECTIONS",
"itemType" : "BPM"
}, {
"itemName" : "RuntimeStrategy",
"itemValue" : "SINGLETON",
"itemType" : "BPM"
} ]
} ]
}
}
}[jboss@localhost ~]$
查看flight-booking-1.0
容器中的不同过程定义:
}[jboss@localhost ~]$ curl -X GET -H "Accept: application/json" --user jboss:bpms http://localhost:8080/ke-server/services/rest/server/queries/containers/flight-booking-1.0/processes/definitions
{
"processes" : [ {
"process-id" : "org.specialtripsagency.flightbookingprocess",
"process-name" : "Flight Booking Process",
"process-version" : "1.0",
"package" : "org.specialtripsagency",
"container-id" : "flight-booking-1.0"
魏新宇