`
gaojingsong
  • 浏览: 1162893 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

规则引擎

 
阅读更多

规则引擎可以在系统工作时,将外部的业务规则加载到系统中,并使得系统按照该业务规则进行工作。

 

一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。

 

 

开发人员在程序中使用规则引擎基本遵循以下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)提供给用户。

1
0
分享到:
评论

相关推荐

    springboot ice规则引擎

    Easy Rules,Drools,Aviator表达式求值引擎,Rule Book、Oracle Rules SDK、Blaze (fico)、IBM Decision Manager,DTRules,DSL规则引擎 规则引擎由三部分 事实(Fact):已知对象,比如以上刷卡的行为,即成事实...

    Drools规则引擎从入门到精通

    从基础讲起,结合应用场景,由浅到深细化讲解drools规则引擎的的相关知识,并结合具体实例,演示功能的使用和注意事项。后面通过搭建具体的项目并结合springboot框架联合使用Drools的相关知识包括决策表的使用,囊括...

    规则引擎-规则测试和轨迹跟踪

    在规则引擎中测试的方法有两种:一种是普通的规则包测试,另外一种是批量测试。在普通测试中,可以在任意规则、规则集中选择“执行到此”,意思是:规则包执行到该规则就停止,然后测试规则包的输出结果;同时也可以...

    JAVA规则引擎原理

    <br>第一部分简要介绍了规则引擎的产生背景和基于规则的专家系统, 第二部分介绍了什么是规则引擎及其架构和算法, 第三部分介绍了商业产品和开源项目实现等各种Java规则引擎, 第四部分对Java规则引擎...

    规则引擎Drools入门实战案例

    规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。 使用规则引擎的优势如下: 1、业务规则与系统代码分离,实现...

    Drools规则引擎从入门到精通源码

    从基础讲起,结合应用场景,由浅到深细化讲解drools规则引擎的的相关知识,并结合具体实例,演示功能的使用和注意事项。后面通过搭建具体的项目并结合springboot框架联合使用Drools的相关知识包括决策表的使用,囊括...

    规则引擎urule文档

    URule Pro整个产品由两部分构成:一个是设计器部分,另一个是规则执行引擎部分。设计器部分主要是由库文件 设计器以及具体的规则文件设计器两... 本文档是面向规则引擎配置人员(运营人员),详细地讲述如何在线配置规则。

    规则引擎-表达式规则

    规则引擎提供了内存表的概念,内存表就是一张虚拟表。我们可以把数据库中表的数据导入到内存表中,再对内存表进行操作。 表达式表格,实际上就是对内存表进行查询操作。在这个表达式中,我们可以设置不同的条件,...

    规则引擎-决策树

    在这里规则引擎提供了“决策树”的概念:在“决策树”中可以引用其他规则包的规则单位。被引用的规则可以是其他规则包的规则,也可以是其他工程的规则。我们可以在“决策树”中,设置引用规则执行的顺序,也可以设置...

    规则引擎-版本控制

    我们在规则编写时,往往会遇到...规则引擎对每次修改保存之后的规则包都会记录成一个版本,然后对每个规则包的每个版本都有具体控制,我们不但可以把规则包恢复到任意的历史版本,而且可以比较每个版本之间的具体差别。

    Groovy DSL 动态规则(rule)执行引擎流程引擎特色风控系统规则引擎动态接口配置(低代码)

    特色 风控系统, 规则引擎, 动态接口配置(低代码)Groovy DSL 动态规则(rule)执行引擎。DSL(特定领域语言): 开发 和 业务 共识的语言。方便业务表达需求, 方便开发理解业。一个业务需求(一般程序或一个接口)可以抽象...

    规则引擎技术的可配置EOS平台的设计与实现

    在嵌入式技术中,EOS(嵌入式...同时还对规则引擎,Vxworks Workbench,XML,XML Schema以及Eclipse插件开发等一系列相关技术做了研究,通过实践应用验证了规则引擎以及配置模型在实际开发中的可行性,具备一定的推广价值。

    规则引擎eclipse插件

    规则引擎eclipse插件规则引擎eclipse插件

    Drools规则引擎介绍

    Drools是Jboss公司旗下一款开源的规则引擎,它完整的实现了Rete算法;提供了强大的EclipsePlugin开发支持;通过使用其中的DSL(DomainSpecificLanguage),可以实现用自然语言方式来描述业务规则,使得业务分析人员也...

    java规则引擎开发教程全

    规则引擎 规则引擎开发教程 java规则引擎

    规则引擎在促销系统中的应用_最新高清.pdf

    规则引擎在促销系统中的应用_最新高清

    Drools规则引擎技术分享

    - Drools规则引擎 - 问题引出 - 电商平台促销活动 -  规则引擎概述 - 什么是规则引擎 - 规则引擎方案对比 - 使用规则引擎的优势 - 规则引擎应用场景 - Drools介绍 - 开发实现 - 规则引擎构成 - 相关概念...

    drools整合apollo实现动态规则引擎

    drools整合apollo实现动态规则引擎,可以在不停服的情况下动态调整规则。无需数据库等存储,自动推送

    Drools规则引擎Drools规则引擎

    Drools是Jboss公司旗下一款开源的规则引擎,它完整的实现了Rete 算法;提供了强大的Eclipse Plugin开发支持; 通过使用其中的DSL(Domain Specific Language),可以实现用自然语言方式来描述业务规则,使得业务分析...

    规则引擎Drools.NET移植版

    很优秀的规则引擎,从java社区移植到.net平台上。

Global site tag (gtag.js) - Google Analytics