传统的规则引擎是一个复杂的系统,它在对外提供规则服务的时候规则集及模型文件和规则引擎是不能分离的,需要一起部署才能为第三方应系统提供规则服务,这就造成用户部署使用成本比较高。
Together规则引擎基于DMN标准,可以生成独立的规则模型文件,而且文件非常小,通常只有几十K,这样就可以实现建模环境与生产环境的分离,降低了用户的部署使用成本。同时Together规则引擎可以将规则模型与运行支撑组件打包成Mini服务,实现了轻量化和敏捷性。
什么是Together Mini服务?
Together可将规则模型导出为独立运行的服务jar包,其中包含了模型文件和运行时,不依赖源系统即可运行,方便的在不同环境中部署调用。真正实现一次建模随处使用,极大的减少了对系统的依赖,让规则使用更加灵活、轻量、便捷,拓宽了使用场景。

作为规则引擎的一种轻量化解决方案Together Mini服务是Together服务程序的子集,它是一个Spring Boot v3.2.3框架的服务程序,包含一个模型(.dmn文件)。Together Mini服务支持2个Restful接口,和一个Swagger文档。当服务在本机系统启动后,Swagger文档可通过http://localhost:8090/doc.html#/home打开。
Together Mini服务的优点
Together Mini服务系统资源占用少,部署灵活,模型创建、打包实施快,是一个真正轻量化的解决方案。Together Mini服务支持Windows、Linux、MacOS系统以及Docker等容器环境。只要您需求明确甚至只需低至小时的时间周期就可以建模并部署完毕。
Together Mini服务构建流程
1.在 Together试用服务器页面建模
1.1 联系我们为您创建在线试用用户名和密码
1.2访问 Together在线环境http://prod.rongtek.com/rule/#/login?redirect=/ruleEngine/decisionModeling
1.3输入试用用户名,密码
1.4点击决策建模,开始建模并保存文件(.DMN文件)
2.建模完成后对模型(.DMN文件)进行模型导出服务

会生成一个名为kngine-krito-spring-boot-0.0.1-SNAPSHOT.jar 服务程序包文件。
3.启动Together Mini服务
3.1 安装JDK 17或以上版本
3.2 命令行执行命令:java -jar kngine-krito-spring-boot-0.0.1-SNAPSHOT.jar

3.3 测试Swagger页面:http://localhost:8090/doc.html#/home
Swagger页面如下所示:

当您看到Swagger页面时说明 Together Mini服务工作正常。
调用Together Mini服务Restful接口
我们以模型“保留费率判断.dmn”为例。在这个模型中输入参数如“Mini保留费率判断.json”所示:
[{
"协议时间范围": {
"标准协议开始时间": "2025-01-01",
"标准协议结束时间": "2025-12-31"
},
"输入计费信息": {
"交易类型": "",
"橙意宝畅收版协议开始日期": "2025-02-01",
"手续费金额": 100,
"提现费率": 0.03,
"橙意宝畅收版协议结束日期": "2025-12-31"
},
"交易时间": "2025-05-15",
"商户状态名称可用": true,
"认领时间范围": {
"认领开始日期": "2025-03-01",
"认领结束日期": "2025-12-31"
},
"输入交易信息": {
"翼支付费率": 0.003,
"存量商户三方月交易净额":5000000,
"交易渠道标签": "微信",
"银行编码": "WECHATPAY",
"商户标签": "增量商户",
"微信手续费费率": 0.003,
"交易金额": 600
}
}]
下面的Python代码演示了使用Post指令将“Mini保留费率判断.json”的内容发送给Mini Together服务:
# -*- coding: utf-8 -*-
import requests
def DMN_post(file_name):
with open('./Json/'+file_name, 'r', encoding="utf-8") as f:
jdata = f.read()
# print(jdata)
# 设置请求头(明确指定 UTF-8)
headers = {"Content-Type": "application/json; charset=utf-8"}
# DMN Mini Service
response = requests.post("http://127.0.0.1:8090/runBatchRule", data=jdata,
headers=headers)
print(response.status_code)
with open("Output.json", "w", encoding="utf-8") as f:
f.write(response.text)
if __name__ == "__main__":
DMN_post('Mini保留费率判断.json')
在程序的输出文件Output.json中可以看到模型“保留费率判断.dmn”返回了“保留费率判断”和“计费”这2个值:
[{"_2356E85D-1557-489F-AA19-A6207149AF0C_保留费率判断":{"result":0.0033,"message":[],"decisionId":"_2356E85D-1557-489F-AA19-A6207149AF0C","decisionName":"保留费率判断","status":"SUCCEEDED"},"_DF682A4F-01A4-4715-9B85-0EAC90682E38_计费":{"result":16.0200,"message":[],"decisionId":"_DF682A4F-01A4-4715-9B85-0EAC90682E38","decisionName":"计费","status":"SUCCEEDED"}}]
可以看到这个结果和我们在Together建模器的测试表单的输出结果一致:

Together Mini服务建模相关服务
我们还可以为您提供建模服务
1.建模服务
将您的具体需求与我们的建模工程师进行沟通,建模工程师会将您的具体需求实现为Together模型,并为您演示测试结果。
在前面的示例,保留费率判断.dmn这个模型中,电信公司需要计算各个经销商结算费用。建模工程师将这个模型打包为独立的Spring Boot 服务,在Python中调用服务的Restful接口。
2.助力 Together Mini服务与您的业务系统完美结合
建模工程师会根据您的业务系统架构定制Together Mini服务调用示例。为您的开发人员演示讲解。
服务达到的效果
1.轻量级解决方案
在业务流程频繁变化的场景下,使用Together Mini服务快速跟进新的业务流程,助力业务系统不断更新。快速构建Together Mini服务为您节约了大量时间。
2.分离了建模运行环境
与完整的Together服务相比 Together Mini服务资源占用少,不依赖前端服务和数据库,部署快速。支持环境多,局域网内访问快速性能优异。
3.完全定制化的解决方案
我们的建模工程师会与您持续沟通并编写业务模型,在此基础上Build专属的 Together Mini服务。依据您的需求定制 Together Mini服务调用方法,助力您的业务系统快速变更和成长!
总结
一次建模随处部署

您可以通过Together规则引擎构建您的决策模型并将其打包成可独立运行的迷你jar包,快速部署到您需要的任何IT环境中(如常规环境,Docker、K8S、Openshift等容器环境,云服务环境);它足够轻量,与建模环境解耦,精准解决您的某一业务痛点,而不需要很重的系统组件和逻辑架构,这样将极大的提高您的业务响应速度和敏捷性,同时降低IT实施的复杂性。
您可以联系我们进行免费咨询并了解有关我们服务的更多信息。