规则引擎可以在系统工作时,将外部的业务规则加载到系统中,并使得系统按照该业务规则进行工作。
一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。
开发人员在程序中使用规则引擎基本遵循以下5个典型的步骤:
1)创建规则引擎对象;
2)向引擎中加载规则集或更换规则集;
3)向引擎提交需要被规则集处理的数据对象集合;
4)命令引擎执行;
5)导出引擎执行结果,从引擎中撤出处理过的数据。
Java规则引擎API分为两个主要部分:规则管理API(the rules administration API)和运行时客户API(the Runtime client API)。
⑴规则管理API:
规则管理API在javax.rules.admin中定义,包括装载规则以及与规则对应的动作(执行集 execution sets)以及实例化规则引擎。规则可以从外部资源中装载,比如URI,Input streams,XML streams和readers等等。同时管理API提供了注册和取消注册执行集以及对执行集进行维护的机制。使用admin包定义规则有助于对客户访问运行规则进行控制管理,它通过在执行集上定义许可权使得未经授权的用户无法访问受控规则。
管理API使用类RuleServiceProvider来获得规则管理(RuleAdministrator)接口的实例。规则管理接口提供方法注册和取消注册执行集。规则管理器(RuleAdministrator)提供了本地和远程的RuleExecutionSetProvider。在前面已提及,RuleExecutionSetProvider负责创建规则执行集。规则执行集可以从如XML streams,input streams等来源中创建。这些数据来源及其内容经汇集和序列化后传送到远程的运行规则引擎的服务器上。大多数应用程序中,远程规则引擎或远程规则数据来源的情况并不多见。为了避免这些情况中的网络开销,API规定了可以从运行在同一JVM中规则库中读取数据的本地RuleExecutionSetProvider。
规则执行集接口除了拥有能够获得有关规则执行集的方法,还有能够检索在规则执行集中定义的所有规则对象。这使得客户能够知道规则集中的规则对象并且按照自己需要来使用它们。
⑵运行时客户API:
运行时API定义在javax.rules包中,为规则引擎用户运行规则获得结果提供了类和方法。运行时客户只能访问那些使用规则管理API注册过的规则,运行时API帮助用户获得规则对话并且在这个对话中执行规则。
运行时API提供了对厂商规则引擎API实现的类似于JDBC的访问方法。规则引擎厂商通过类RuleServiceProvider(类RuleServiceProvider提供了对具体规则引擎实现的运行时和管理API的访问)将其规则引擎实现提供给客户,并获得RuleServiceProvider唯一标识规则引擎的URL。
URL推荐标准用法是使用类似“com.mycompany.myrulesengine.rules.RuleServiceProvider”这样的Internet域名空间,这将有助于访问URL的唯一性。类RuleServiceProvider内部实现了规则管理和运行时访问所需的接口。所有的RuleServiceProvider要想被客户所访问都必须用RuleServiceProviderManager进行注册。注册方式类似于JDBC API的DriverManager和Driver。
运行时接口是运行时API的关键部分。运行时接口提供了用于创建规则会话(RuleSession)的方法,规则会话如前所述是用来运行规则的。运行时API同时也提供了访问在service provider注册过的所有规则执行集(RuleExecutionSets)。规则会话接口定义了客户使用的会话的类型,客户根据自己运行规则的方式可以选择使用有状态会话或者无状态会话。
无状态会话的工作方式就像一个无状态会话bean。客户可以发送单个输入对象或一列对象来获得输出对象。当客户需要一个与规则引擎间的专用会话时,有状态会话就很有用。输入的对象通过addObject() 方法可以加入到会话当中。同一个会话当中可以加入多个对象。对话中已有对象可以通过使用updateObject()方法得到更新。只要客户与规则引擎间的会话依然存在,会话中的对象就不会丢失。
RuleExecutionSetMetaData接口提供给客户让其查找规则执行集的元数据(metadata)。元数据通过规则会话接口(RuleSession Interface)提供给用户。
相关推荐
Easy Rules,Drools,Aviator表达式求值引擎,Rule Book、Oracle Rules SDK、Blaze (fico)、IBM Decision Manager,DTRules,DSL规则引擎 规则引擎由三部分 事实(Fact):已知对象,比如以上刷卡的行为,即成事实...
在本文中,我们将深入探讨如何使用C#编程语言与Windows Workflow Foundation (WWF)来构建一个规则引擎。规则引擎是一种软件系统,它允许程序在运行时动态地执行和修改业务规则,无需更改代码基础结构。C#结合WWF提供...
规则引擎IlogJrules开发教程的知识点包括以下几个方面: 1. 规则引擎概念: 规则引擎是嵌入应用程序的组件,它负责从应用程序代码中分离业务规则,并允许业务规则通过特定的语法编写和管理。它接受数据输入,解释并...
【Drools规则引擎介绍】 Drools是一款由JBoss公司开发的开源规则引擎,它致力于将业务规则从复杂的业务逻辑代码中分离出来,实现业务规则的独立管理和灵活变更。Drools基于Rete算法,这是一套高效的规则匹配算法,...
规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。 使用规则引擎的优势如下: 1、业务规则与系统代码分离,实现...
特色 风控系统, 规则引擎, 动态接口配置(低代码)Groovy DSL 动态规则(rule)执行引擎。DSL(特定领域语言): 开发 和 业务 共识的语言。方便业务表达需求, 方便开发理解业。一个业务需求(一般程序或一个接口)可以抽象...
Drools是一个基于Java的业务规则管理系统(BRMS),它提供了强大的业务规则引擎,允许开发者通过定义业务规则来实现业务逻辑的动态变更,而无需改变代码。Drools5是该系统的其中一个版本,它在开发、运行和调试环境...
"java规则引擎说明" Java规则引擎是指使用Java语言开发的一种规则引擎,能够根据事实对象和规则文件计算规则结果。下面是Java规则引擎的详细说明: 一、规则引擎介绍 规则引擎是指能够根据事实对象和规则文件计算...
可视化规则引擎是一种图形化界面工具,允许用户通过拖拽组件和设定条件逻辑,直观地创建、编辑和管理复杂的业务规则和决策流程,而无需编码。有以下几个核心特点: 1. 图形化界面:提供用户友好的界面,用户可以直接...
Drools是一款强大的规则引擎,由Red Hat公司开发并维护,它主要用于实现业务规则的管理和执行。Drools提供了一种声明式的方式来定义业务规则,使得非技术人员也能理解和修改规则,从而降低了业务逻辑与代码的耦合度...
规则引擎是一种软件系统,它允许业务规则以声明式的方式进行编码,从而使得非技术人员也能理解和修改这些规则。这种技术在处理复杂逻辑判断时特别有用,因为它可以将业务规则与核心应用程序逻辑分离,使得规则的更新...
Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。具有易于访问企业策略、易于...
**Aviator 规则引擎详解** Aviator 是一个开源的Java表达式执行引擎,它主要用于实现复杂的业务逻辑和规则计算。作为一个轻量级的规则引擎,Aviator 提供了一种简洁而强大的方式来处理动态计算和决策过程。本文将...
规则引擎-数据库访问操作 规则引擎是指一类可以根据预定义的规则对数据进行处理和分析的软件系统。这种系统通常具有强大的数据处理能力和灵活的规则配置能力。然而,传统的规则引擎产品通常不具备访问数据库的功能...
### 规则引擎的核心概念与应用 规则引擎作为一种先进的软件技术,其主要目的是将复杂的业务逻辑从应用程序的代码中解耦出来,实现业务规则的独立管理和动态调整。本文将深入探讨规则引擎的基本原理、关键算法、常见...
《规则引擎:规则测试与轨迹跟踪详解》 规则引擎作为一种强大的业务逻辑处理工具,它允许开发者以声明式的方式定义规则,使得复杂的业务决策能够被高效地执行和管理。本文将深入探讨规则引擎中的规则测试和轨迹跟踪...
Drools规则引擎是一款强大的开源规则引擎,广泛应用于业务决策逻辑和复杂事件处理。它基于Java平台,由JBOSS组织维护,支持基于 declarative 的规则编写方式,使得非程序员也能理解和修改规则,大大提升了业务规则的...
**规则引擎Drools.NET移植版** Drools是一款强大的业务规则管理系统,源自Java社区,以其灵活、高效和可扩展的特性而广受赞誉。它允许开发者将业务逻辑以规则的形式编写,使得业务规则可以独立于应用程序代码进行...
URule Pro是一款强大的规则引擎,它分为设计器和执行引擎两大部分。设计器主要包含库文件设计器和规则文件设计器,用于构建和预览业务规则。库文件设计器由四个组件组成:变量库设计器、参数库设计器、常量库设计器...