jboss规则引擎KIE Drools 6.3.0 3

2024-05-04 09:09
文章标签 引擎 规则 drools 6.3 jboss kie

本文主要是介绍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开发人员来说意味着什么





这篇关于jboss规则引擎KIE Drools 6.3.0 3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958847

相关文章

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

C++作用域和标识符查找规则详解

《C++作用域和标识符查找规则详解》在C++中,作用域(Scope)和标识符查找(IdentifierLookup)是理解代码行为的重要概念,本文将详细介绍这些规则,并通过实例来说明它们的工作原理,需... 目录作用域标识符查找规则1. 普通查找(Ordinary Lookup)2. 限定查找(Qualif

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

详解nginx 中location和 proxy_pass的匹配规则

《详解nginx中location和proxy_pass的匹配规则》location是Nginx中用来匹配客户端请求URI的指令,决定如何处理特定路径的请求,它定义了请求的路由规则,后续的配置(如... 目录location 的作用语法示例:location /www.chinasem.cntestproxy

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A