jboss规则引擎KIE Drools 6.3.0 Final 教程(3)

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

执行KIE-DROOLS上的规则-还有一种写法

先上代码

String url = "http://192.168.0.101:8080/kie-drools/maven2/org/sky/drools/ApprovalDecision/1.0.0/ApprovalDecision-1.0.0.jar";

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人员仅仅观注于技术的实现;

减少产品、项目中技术集成的复杂性;

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

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

还是看不懂? 没关系,来看以下这个样例

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

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

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

什么是SOA

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />‘

作业

结束本次教程,留个涉作业给大家

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

微信号例如以下。欢迎一起交流

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

时间: 2025-01-11 21:26:46

jboss规则引擎KIE Drools 6.3.0 Final 教程(3)的相关文章

jboss规则引擎KIE Drools 6.3.0 Final 教程(1)

前言 目前世面上中文的KIE DROOLS Workbench(JBOSS BRMS)的教程几乎没有,有的也只有灵灵碎碎的使用机器来翻译的(翻的不知所云)或者是基于老版本的JBOSS Guvnor即5.x的一些教程,而且这些教程都是"缺胳膊少腿"的,初学者看后不知道它到底在干吗?能干吗?能够解决自己系统中什么问题. 所以笔者自己写了几个例子,把整个最新的英文版的KIE DROOLS 6.3.0.Final的官方教程给串了起来,用于供读者使用并以此来作为入门以及相关SOA理念的推广的第一

jboss规则引擎KIE Drools 6.3.0 Final 教程(2)

使用JAVA程序调用规则-运行KIE-DROOLS上的规则 第一步:建立一个MAVEN的Java工程 POM.XML 给出pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0

jboss规则引擎KIE Drools 6.3.0-高级讲授篇

在生产环境怎么用BRMS 回溯BRMS开发教程中的那张"业务变现加速器"架构图,考虑下面的问题 业务开发人员开发规则 IT人员提供FACT 关键在于"全动态" SQL语句改了怎么办?不重启 DAO层改了怎么办?不重启 Mybatis的配置文件改了怎么办?不重启 按照上次的<jboss规则引擎KIE Drools 6.3.0 Final 教程>,一起来看一个实际的场景 如何熊掌与鱼兼得? 做到以下几点是否就可以"全得"? 规则更改不重启

JAVA规则引擎 -- Drools

Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效. 本文所使用的demo已上传 http://download.csdn.net/source/3002213 1.Drools语法 开始语法之前首先要了解一下drools的基本工作过程,通常而言我们使用一个接口来做事情,首先要穿进去参数,其次要获取到接口的实现执行完毕后的结果,而drools也是一样的,我们需要传递进

eclipse下搭建Drools规则引擎环境

插件下载地址:http://download.jboss.org/drools/release/ 1.点开对应的版本文件,选择标红的两个压缩包下载,其他的如有需要也可以自行选择: 2.将下载的压缩包解压,这边放到了E:\tools\drools目录下,打开eclipse,Help->Install New SoftWare->add,选择 E:/tools/drools/droolsjbpm-tools-distribution-5.6.0.Final/binaries/org.drools.

规则引擎选型及简单应用

规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.规则引擎具体执行可以分为接受数据输入,解释业务规则,根据业务规则做出业务决策几个过程,使用规则引擎可以把复杂.冗余的业务规则同整个支撑系统分离开,做到架构的可复用移植. 规则引擎的选型应用 相对于业务系统,规则引擎可以认为是一个独立于业务系统的模块,负责一些规则的计算等.一般来说,规则引擎主要应用在下面的场景中: 风控模型配置,风控是规则引擎 用户积分等配置,如日常操作引起积分变化等 简单的离线计算,各类数据量

开源业务规则引擎JBoss Drools

Drools 是什么? 规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.接受数据输入,解释业务规则,并根据业务规则做出业务决策. http://www.tuicool.com/articles/3EFNV3M

【java规则引擎】drools6.5.0版本中kmodule.xml解析

kmodule.xml文件存放在src/main/resources/META-INF/文件夹下. 1 <?xml version="1.0" encoding="UTF-8"?> 2 <kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule"> 3 <kbase name="rules" packages="rules"> 4

Spring Boot+Drools规则引擎整合

目的 官方的Drools范例大都是基于纯Java项目或Maven项目,而基于Spring Boot项目的很少. 本文介绍如何在Spring Boot项目上加上Drools规则引擎. POM依赖 POM文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&q