jboss规则引擎KIE Drools 6.3.0 3

在前2部教程中,介绍了如何在本地运行.drools文件以及使用stateless的方法访问远程repository上的规则。 KIE Drools还提供了一种叫有状态-stateful的访问方式。


运行KIE-DROOLS上的规则-另一种写法


KieServices ks = KieServices.Factory.get();
KieRepository kr = ks.getRepository();
UrlResource urlResource = (UrlResource) ks.getResources().newUrlResource(url);
urlResource.setUsername("tomcat");
urlResource.setPassword("tomcat");
urlResource.setBasicAuthentication("enabled");
InputStream is = urlResource.getInputStream();
KieModule kModule = kr.addKieModule(ks.getResources().newInputStreamResource(is));
KieContainer kContainer = ks.newKieContainer(kModule.getReleaseId());
KieSession kieSession = kContainer.newKieSession();
try {
PaymentInfo m = new PaymentInfo();
m.setMoneyAmount(10000);
kieSession.insert(m);
kieSession.fireAllRules();
System.out.println(m.getDecisionPath());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
    kieSession.dispose();
} catch (Exception e) {
}
}



其区别在于:


这是一个stateful(有状态)session的调用,上一个教程中的例子里面我们是一个无状态的调用。


Stateful VS Stateless


Stateless


即无状态调用,比如说FACT A里的值初始为0。当这条规则被执行完成后自动断开连接并释放。


Stateful


即有状态调用,比如说FACT A里的值初始为0,当某一条Request把其值修改为20时在代码没有显示的调用dispose时,这个值会一直维持着。


因此在对于Stateful Session的调用完毕后要显示的去“手工”关闭和释放它,如下面的代码:


finally { 
try {
kieSession.dispose();
} catch (Exception e) {
}
}


迈向SOA的第一步


重新来看“基于BRMS的系统逻辑架构”



再回过头来思考下面3句话:


IT人员的还本归宗,业务交由业务开发人员,IT人员只观注于技术的实现;


降低产品、项目中技术集成的复杂性;


容易培养出领域高手:即IT开发人员只需要关注于自己的某一块领域如:流程开发专家、数据库专家、前台特效程序员、系统实施、集成、管理专家。


规则结合BPM(工作流)的典型应用场景


还是看不懂? 没关系,来看下面这个例子




当流程流转到“员工提交报销金额时”,此时有一个Decision节点,该节点通过返回“path(M或者GM)”,一旦BPM的Decision的path得到了这个值,BPM会自动决定下一步流程的走向到底是“报经理批”还是“再报总经理批”这样两条路径中来作一个选择。


希望你通过这个例子明白什么叫“IT能够快速响应频繁的业务变化”、什么叫24*7、什么叫“加速业务走向市场”这些话的意思了吧。


什么是SOA




SOA对业务和销售人员来说意味着什么






SOA对企业、客户方的业务人员来说意味着什么






SOA对IT开发人员来说意味着什么





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于Drools规则引擎的Docker部署,我可以提供以下步骤: 1. 下载Drools Workbench镜像 在终端中执行以下命令,下载Drools Workbench镜像: ``` docker pull jboss/drools-workbench-showcase:latest ``` 2. 运行Drools Workbench容器 将Drools Workbench运行在Docker容器中,执行以下命令: ``` docker run -p 8080:8080 -d --name drools-workbench jboss/drools-workbench-showcase:latest ``` 其中,`-p`参数指定容器端口和宿主机器端口的映射关系,`-d`参数指定容器在后台运行,`--name`参数指定容器名称。 3. 访问Drools Workbench 在浏览器中访问`http://localhost:8080/drools-workbench`,即可进入Drools Workbench。 除此之外,您还可以将Drools规则引擎集成到自己的应用程序中,然后使用Docker部署该应用程序。具体步骤如下: 1. 编写Drools应用程序 编写Drools应用程序,并将其打包成可执行的JAR文件。 2. 创建Docker镜像 在Drools应用程序目录下创建Dockerfile文件,编写Docker镜像构建脚本,并执行以下命令构建Docker镜像: ``` docker build -t drools-app:latest . ``` 其中,`-t`参数指定Docker镜像名称和标签,`.`表示Dockerfile文件所在的当前目录。 3. 运行Docker容器 执行以下命令,在Docker容器中运行Drools应用程序: ``` docker run -p 8080:8080 -d --name drools-app drools-app:latest ``` 其中,`-p`参数指定容器端口和宿主机器端口的映射关系,`-d`参数指定容器在后台运行,`--name`参数指定容器名称。 希望这些信息能够帮助到您,如果您还有其他问题,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值