Java规则引擎工作原理及应用

合集下载

规则引擎的原理与功能

规则引擎的原理与功能

规则引擎的原理与功能规则引擎是一种软件工具,可以根据预定义的规则对输入数据进行评估和转换。

它的核心原理是基于条件语句(也称为规则)和操作语句(也称为动作)的匹配和执行。

1.规则定义:规则引擎允许用户定义和管理规则。

规则可以基于业务规则、策略、法规等,以及业务需求定义和编写。

规则引擎通常提供一个易于使用的界面,供用户输入和管理规则。

2.规则匹配:当有输入数据需要进行处理时,规则引擎会按照预定义的规则进行匹配。

它会检查输入数据是否符合每个规则的条件语句,以确定应该执行哪个规则。

3.动作执行:当一些规则的条件得到满足时,规则引擎会执行该规则中定义的操作语句。

这些操作可以是数据转换、决策、通知、触发其他业务流程等。

4.规则优先级:规则引擎允许用户为每个规则设置优先级。

这样,在有多个规则匹配的情况下,规则引擎可以根据规则的优先级来确定应该先执行哪个规则。

5.动态更新和管理:规则引擎通常提供动态更新和管理的功能,允许用户在不停止系统的情况下修改和添加规则。

这种灵活性使得规则引擎适用于动态的业务环境,可以根据业务需求进行实时的调整和优化。

6.决策支持:规则引擎可以作为决策支持系统的一部分,根据预定义的规则和输入数据,自动进行决策分析和推理。

它可以帮助用户快速做出决策,提高决策的准确性和效率。

7.事件驱动:规则引擎可以与其他系统集成,监听特定的事件并根据事件触发相应的规则执行。

这种事件驱动的方式可以帮助系统实时处理和响应事件,并根据规则引擎的规则做出相应的处理。

8.监控和日志记录:规则引擎通常提供监控和日志记录的功能,可以记录规则引擎的执行情况和结果。

这些日志可以帮助用户分析和优化规则引擎的性能,并进行故障排查和调试。

1.规则定义和管理:规则引擎提供一个界面或语言,让用户可以输入和管理规则。

用户可以定义规则的条件和操作,以及规则之间的关系。

规则可以使用逻辑运算符、比较操作符、函数等来描述和处理输入数据。

2.输入数据和上下文:规则引擎接收输入数据,根据预定义的规则对数据进行评估和处理。

Java规则引擎——Drools的介绍及应用

Java规则引擎——Drools的介绍及应用

第26卷第6期2005年11月微计算机应用M ICROCO M PU IER AP PL ICAT ION S Vo l.26No.6No v.2005本文于2004-12-13收到。

Java 规则引擎)))Drools 的介绍及应用刘 伟(中国科技大学 合肥 230026)摘 要:规则引擎技术是一项很有吸引力的技术。

首先介绍了规则引擎的相关概念及其实现原理。

然后重点介绍了Jav a 规则引擎技术的规范和一个采用XM L 和jav a 语言实现的规则引擎)))Dr oo ls 。

最后给出了利用Dr oo ls 解决实际问题的范例并探讨了该技术的不足和发展前景。

关键词:规则引擎,JSR 94,DroolsIntroduction and Implementation of Drools )))a Rule Engine Based JavaLIU W ei(Univ of Sci &T ech of China,H efei,230026,China)Abstract:Rule Eng ine is a mag net ic technolog y in the ar ea o f so ftwar e developing now.In this paper,firstly,the co ncept and im plementing pr inciple of Rule Engine is int roduced,and then JSR94,the Java pro gr aming specif icat ion of Rale Engine is presented.As a pro duct of Java Rule Engine,D roo ls,is emphasized smbsequently.pr oviding an actual example,the paper descr ibes the det ails o f the usage o f Dro ds finally.Keywords:Rule Eng ine,JSR94Dr ools1 基于规则的专家系统简介Jav a 规则引擎是推理引擎的一种,它起源于基于规则的专家系统。

Java规则引擎工作原理及其应用

Java规则引擎工作原理及其应用

Java规则引擎工作原理及其应用作者:缴明洋谭庆平出处:计算机与信息技术责任编辑:方舟[ 2006-04-0608:18 ]Java规则引擎是一种嵌入在Java程序中的组件,它的任务是把当前提交给引擎的Java数据对象与加载在引擎中的业务规则进行测试和比对摘要Java规则引擎是一种嵌入在Java程序中的组件,它的任务是把当前提交给引擎的Java数据对象与加载在引擎中的业务规则进行测试和比对,激活那些符合当前数据状态下的业务规则,根据业务规则中声明的执行逻辑,触发应用程序中对应的操作。

引言目前,Java社区推动并发展了一种引人注目的新技术——Java规则引擎(Rule Engine)。

利用它就可以在应用系统中分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时可以动态地管理和修改,从而为企业保持灵活性和竞争力提供有效的技术支持。

规则引擎的原理1、基于规则的专家系统(RBES)简介Java规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的其中一个分支。

专家系统属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的推理结论。

为了更深入地了解Java规则引擎,下面简要地介绍基于规则的专家系统。

RBES包括三部分:Rule Base(knowledge base)、Working Memory(fact base)和Inference Engine。

它们的结构如下系统所示:图1 基于规则的专家系统构成如图1所示,推理引擎包括三部分:模式匹配器(Pattern Matcher)、议程(Agenda)和执行引擎(Execution Engine)。

推理引擎通过决定哪些规则满足事实或目标,并授予规则优先级,满足事实或目标的规则被加入议程。

模式匹配器决定选择执行哪个规则,何时执行规则;议程管理模式匹配器挑选出来的规则的执行次序;执行引擎负责执行规则和其他动作。

规则引擎

规则引擎

规则引擎规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。

接受数据输入,解释业务规则,并根据业务规则做出业务决策。

应用背景:企业级管理者对企业IT系统的开发有着如下的要求: 1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。

2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。

3.为了快速、低成本的更新,业务人员应能直接管理IT 系统中的规则,不需要程序开发人员参与。

使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本,其优点如下:•分离商业决策者的商业决策逻辑和应用开发者的技术决策;•能有效的提高实现复杂逻辑的代码的可维护性;•在开发期间或部署后修复代码缺陷;•应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内;•符合组织对敏捷或迭代开发过程的使用;大多数规则引擎都支持规则的次序和规则冲突检验,支持简单脚本语言的规则实现,支持通用开发语言的嵌入开发。

目前业内有多个规则引擎可供使用,其中包括商业和开放源码选择。

开源的代表是Drools,商业的代表是iLog,国内商业的代表为旗正信息开发的VisualRules。

java规则引擎java规则引擎规则引擎是解析、调用、执行规则包的服务,目前V isualRules采用java语言来实现规则引擎,并且提供了java类接口、Socket、Servlet、SOAP等多种外部调用接口。

其实Java 类接口是所有这些接口的核心,其他接口其实也是通过Java类接口来加以调用。

考虑到最小化规则引擎,因此规则包的解析工作已经放在规则编辑时,预先进行了处理。

规则引擎只处理规则包的调用和执行,同时为规则包用到的数据库接口、Excel接口、内存表接口、Xml 接口提供缺省的实现。

规则引擎执行原理V isualRules规则引擎会根据规则包名称,取得对应规则包编译后的rsc文件。

规则引擎java应用场景

规则引擎java应用场景

规则引擎java应用场景1. 引言1.1 什么是规则引擎Java应用场景规则引擎是一种软件工具,用于管理和执行复杂的业务规则。

它可以帮助企业将业务规则从应用程序代码中分离出来,以便更灵活地对规则进行管理和更新。

规则引擎通常包括规则管理器、规则编辑器和规则执行器等组件,可以帮助企业快速调整业务逻辑,提高系统的灵活性和可维护性。

在Java应用场景中,规则引擎通常被用于处理大量且复杂的业务规则,帮助企业快速应对市场变化和业务需求的变化。

通过规则引擎,企业可以将规则进行灵活配置和管理,减少了代码编写和修改的工作量,提高了开发效率和系统的可维护性。

2. 正文2.1 金融行业中的规则引擎应用在金融行业中,规则引擎被广泛应用于风险管理、合规监管、反欺诈等多个领域。

在风险管理方面,金融机构可以利用规则引擎对客户的信用评分进行自动化处理,快速识别高风险客户并采取相应措施降低风险。

在合规监管方面,规则引擎可以帮助金融机构自动化监测和执行符合法规的交易,确保业务操作符合监管要求。

规则引擎还可以用于实时交易风险控制,通过事先设定的规则对交易进行实时监控,及时发现异常交易并阻止风险事件的发生。

在反欺诈领域,规则引擎可以根据事先设定的规则进行交易行为分析,识别可疑交易并触发风险提示,提高防范欺诈的效率。

规则引擎还可以用于个性化推荐和定价策略的制定,根据客户的行为和偏好制定个性化的产品推荐和定价,提升客户体验和营销效果。

规则引擎在金融行业中的应用涵盖了风险管理、合规监管、反欺诈、个性化营销等多个领域,为金融机构提供了高效、自动化的决策支持,有助于提高运营效率、降低风险和提升客户满意度。

2.2 医疗保健行业中的规则引擎应用在医疗保健行业中,规则引擎的应用已经变得非常普遍和重要。

规则引擎可以帮助医疗保健机构更有效地管理医疗数据、优化医疗流程,并提供更好的医疗服务。

规则引擎可以用于医疗保健机构的数据管理。

医疗数据通常非常庞大且复杂,规则引擎可以帮助医疗保健机构自动化数据处理过程,识别潜在的错误或异常数据,并加强数据质量控制。

规则引擎概况资料

规则引擎概况资料

规则引擎概况资料规则引擎是一种计算机软件工具,用于管理和自动化业务规则。

业务规则是描述组织中的一些行为或决策的预定指南或条件。

规则引擎将这些规则编码为可执行的逻辑,以便根据规则执行相应的操作。

规则引擎的核心功能是处理规则的流程,并基于规则的条件和动作进行决策。

规则通常是通过if-then的条件逻辑来描述的,例如,如果温度超过30度,则打开空调。

规则引擎可以根据这些规则自动执行相应的动作,而无需进行编程开发。

规则引擎的主要优势之一是它的灵活性和可配置性。

规则可以在运行时进行修改和调整,而无需重新编译或部署整个系统。

这为组织带来了较快的响应速度和更容易的业务逻辑管理。

规则引擎的另一个重要特点是它的可重用性。

规则可以在不同的应用程序和系统之间共享和重用,使得开发人员能够更快速地构建和部署新的应用程序。

这也有助于确保规则的一致性和准确性,避免重复劳动和错误。

规则引擎广泛应用于许多领域和行业,如金融服务、保险、供应链管理、电子商务等。

它可以用来自动化和优化诸如业务决策、审批流程、价格计算等复杂的业务活动。

通过规则引擎,组织可以更快速、更准确地执行业务规则,提高运营效率和业务灵活性。

规则引擎的工作原理通常包括以下几个步骤:1.规则定义:业务用户使用规则引擎的可视化界面定义规则。

规则通常由条件和动作组成。

2.规则解析:规则引擎将定义的规则解析为可执行的逻辑表示形式,例如规则语言或规则表。

3.数据输入:规则引擎接收外部的数据输入,例如来自数据库、文件或其他系统的数据。

4.条件匹配:规则引擎将输入的数据与规则的条件进行匹配。

如果条件满足,则规则引擎会触发相应的动作。

5.动作执行:规则引擎执行与满足条件的规则相关联的动作。

这可以是发送通知、生成报表、更新数据库等操作。

6.结果输出:规则引擎将执行结果输出给用户或其他系统。

这通常是一个决策、建议或操作指南。

规则引擎的实现有多种方法,包括基于规则语言的引擎和基于决策表的引擎。

规则引擎java应用场景

规则引擎java应用场景

规则引擎java应用场景全文共四篇示例,供读者参考第一篇示例:规则引擎是指用来管理和执行规则的软件工具,它能够帮助用户定义、管理和执行复杂的业务规则,从而实现自动化决策和流程。

在现代软件开发中,规则引擎已经成为了一种重要工具,尤其在Java领域,规则引擎广泛应用于各种场景。

本文将介绍规则引擎在Java应用中的重要性和应用场景。

1. 金融行业在金融行业,规则引擎的应用格外突出。

金融机构需要根据不同的客户需求和市场情况制定各种复杂的金融产品和服务规则,而规则引擎可以帮助金融机构自动化执行这些规则,提高决策效率和准确性。

利用规则引擎可以实现自动化贷款审批、欺诈检测、风险管理等金融业务流程。

2. 电商行业在电商行业,规则引擎也有很多应用场景。

电商企业需要根据用户需求和行为制定各种促销、优惠和营销规则,而规则引擎可以帮助电商企业实现个性化营销、智能推荐等功能。

利用规则引擎可以实现用户访问行为分析、购买行为预测等业务。

3. 物流行业在物流行业,规则引擎的应用也非常广泛。

物流企业需要根据订单量、配送距离、货物种类等因素制定不同的配送策略和方案,而规则引擎可以帮助物流企业实现智能调度、路径规划等功能。

利用规则引擎可以实现快递实时跟踪、自动分拣等业务。

4. 健康医疗行业在健康医疗行业,规则引擎也有很多重要应用场景。

医疗机构需要根据患者病情、诊断结果、医疗政策等因素制定治疗方案和手术流程,而规则引擎可以帮助医疗机构实现个性化诊疗、疾病预测等功能。

利用规则引擎可以实现智能医疗辅助、疾病筛查等业务。

5. 人力资源管理在人力资源管理领域,规则引擎也有很多应用场景。

企业需要根据员工岗位、绩效表现、薪酬政策等因素制定人力资源管理规则,而规则引擎可以帮助企业实现自动化招聘、绩效评估、薪酬调整等流程。

利用规则引擎可以实现智能员工匹配、绩效考核自动化等业务。

6. 其他行业除了以上几个行业,规则引擎在其他行业也有很多应用场景。

政府部门可以利用规则引擎实现智能监管、规章制度执行等功能;教育机构可以利用规则引擎实现学业评估、学科选修等流程;科研机构可以利用规则引擎实现实验设计、数据分析等任务。

规则引擎 原理

规则引擎 原理

规则引擎原理规则引擎是一种软件工具,它可以根据预先定义的规则来自动执行特定的操作。

它的原理是基于条件和动作的匹配,通过判断输入数据是否满足规则的条件,从而触发相应的动作。

规则引擎在各个领域都有广泛的应用,比如金融、电信、物流等。

规则引擎的核心是规则库,它包含了一系列的规则。

每个规则由条件和动作组成。

条件是用来描述输入数据的特征或约束,而动作则是在满足条件时执行的操作。

当输入数据与规则库中的规则进行匹配时,规则引擎会根据匹配结果来决定是否触发相应的动作。

规则引擎的工作流程可以分为三个主要的步骤:规则定义、规则匹配和动作执行。

首先,用户需要定义规则库,将条件和动作以特定的格式进行编写和存储。

然后,当有新的输入数据到来时,规则引擎会根据规则库中的条件对输入数据进行匹配。

最后,当匹配成功时,规则引擎会执行相应的动作。

规则引擎的优势在于它的灵活性和可扩展性。

通过规则库的定义,用户可以方便地增加、删除或修改规则,从而实现对业务逻辑的灵活控制。

同时,规则引擎的可扩展性也使得它可以应对不断变化的业务需求,而无需修改底层的系统代码。

规则引擎的应用场景非常广泛。

在金融领域,规则引擎可以用来进行风险评估和信用评分,帮助银行和保险公司做出相应的决策。

在电信领域,规则引擎可以用来进行流量控制和计费策略的管理,提高网络资源的利用率。

在物流领域,规则引擎可以用来进行路径规划和货物调度,优化物流运输的效率。

除了上述应用场景,规则引擎还可以用于人工智能领域的决策推理。

通过将专家的知识和经验编写成规则,规则引擎可以模拟专家的决策过程,帮助解决复杂的问题。

例如,在医疗诊断中,规则引擎可以根据患者的症状和疾病的特征,给出相应的诊断结果和治疗建议。

总结起来,规则引擎是一种基于条件和动作的软件工具,具有灵活性和可扩展性。

它通过规则库的定义和匹配,实现了对输入数据的自动化处理和决策。

在各个领域都有广泛的应用,帮助用户实现业务逻辑的灵活控制和决策推理的自动化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文为“等考二级JAVA:Java规则引擎工作原理及应用”,以供广大学员参考使用。

更多关于计算机等级考试资料,请访问考试吧计算机等级考试频道。

摘要:Java规则引擎是一种嵌入在Java程序中的组件,它的任务是把当前提交给引擎的Java数据对象与加载在引擎中的业务规则进行测试和比对,激活那些符合当前数据状态下的业务规则,根据业务规则中声明的执行逻辑,触发应用程序中对应的操作。

引言目前,Java社区推动并发展了一种引人注目的新技术——Java规则引擎(Rule Engine)。

利用它就可以在应用系统中分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时可以动态地管理和修改,从而为企业保持灵活性和竞争力提供有效的技术支持。

规则引擎的原理1、基于规则的专家系统(RBES)简介Java规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的其中一个分支。

专家系统属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的推理结论。

为了更深入地了解Java规则引擎,下面简要地介绍基于规则的专家系统。

RBES包括三部分:Rule Base(knowledge base)、Working Memory(fact base)和Inference Engine。

它们的结构如下系统所示:如图1所示,推理引擎包括三部分:模式匹配器(Pattern Matcher)、议程(Agenda)和执行引擎(Execution Engine)。

推理引擎通过决定哪些规则满足事实或目标,并授予规则优先级,满足事实或目标的规则被加入议程。

模式匹配器决定选择执行哪个规则,何时执行规则;议程管理模式匹配器挑选出来的规则的执行次序;执行引擎负责执行规则和其他动作。

推理引擎的推理步骤如下:(1)将初始数据(fact)输入Working Memory。

(2)使用Pattern Matcher比较规则库(rule base)中的规则(rule)和数据(fact)。

(3)如果执行规则存在冲突(conflict),即同时激活了多个规则,将冲突的规则放入冲突集合。

(4)解决冲突,将激活的规则按顺序放入Agenda。

(5)使用执行引擎执行Agenda中的规则。

重复步骤2至5,直到执行完毕所有Agenda 中的规则。

上述即是规则引擎的原始架构,Java规则引擎就是从这一原始架构演变而来的。

2、规则引擎相关构件规则引擎是一种根据规则中包含的指定过滤条件,判断其能否匹配运行时刻的实时条件来执行规则中所规定的动作的引擎。

与规则引擎相关的有四个基本概念,为更好地理解规则引擎的工作原理,下面将对这些概念进行逐一介绍。

1)信息元(Information Unit)信息元是规则引擎的基本建筑块,它是一个包含了特定事件的所有信息的对象。

这些信息包括:消息、产生事件的应用程序标识、事件产生事件、信息元类型、相关规则集、通用方法、通用属性以及一些系统相关信息等等。

2)信息服务(Information Services)信息服务产生信息元对象。

每个信息服务产生它自己类型相对应的信息元对象。

即特定信息服务根据信息元所产生每个信息元对象有相同的格式,但可以有不同的属性和规则集。

需要注意的是,在一台机器上可以运行许多不同的信息服务,还可以运行同一信息服务的不同实例。

但无论如何,每个信息服务只产生它自己类型相对应的信息元。

3)规则集(Rule Set)顾名思义,规则集就是许多规则的集合。

每条规则包含一个条件过滤器和多个动作。

一个条件过滤器可以包含多个过滤条件。

条件过滤器是多个布尔表达式的组合,其组合结果仍然是一个布尔类型的。

在程序运行时,动作将会在条件过滤器值为真的情况下执行。

除了一般的执行动作,还有三类比较特别的动作,它们分别是:放弃动作(Discard Action)、包含动作(Include Action)和使信息元对象内容持久化的动作。

前两种动作类型的区别将在2.3规则引擎工作机制小节介绍。

4)队列管理器(Queue Manager)队列管理器用来管理来自不同信息服务的信息元对象的队列。

下面将研究规则引擎的这些相关构件是如何协同工作的。

如图2所示,处理过程分为四个阶段进行:信息服务接受事件并将其转化为信息元,然后这些信息元被传给队列管理器,最后规则引擎接收这些信息元并应用它们自身携带的规则加以执行,直到队列管理器中不再有信息元。

3、规则引擎的工作机制下面专门研究规则引擎的内部处理过程。

如图3所示,规则引擎从队列管理器中依次接收信息元,然后依规则的定义顺序检查信息元所带规则集中的规则。

如图所示,规则引擎检查第一个规则并对其条件过滤器求值,如果值为假,所有与此规则相关的动作皆被忽略并继续执行下一条规则。

如果第二条规则的过滤器值为真,所有与此规则相关的动作皆依定义顺序执行,执行完毕继续下一条规则。

该信息元中的所有规则执行完毕后,信息元将被销毁,然后从队列管理器接收下一个信息元。

在这个过程中并未考虑两个特殊动作:放弃动作(Discard Action)和包含动作(Include Action)。

放弃动作如果被执行,将会跳过其所在信息元中接下来的所有规则,并销毁所在信息元,规则引擎继续接收队列管理器中的下一个信息元。

包含动作其实就是动作中包含其它现存规则集的动作。

包含动作如果被执行,规则引擎将暂停并进入被包含的规则集,执行完毕后,规则引擎还会返回原来暂停的地方继续执行。

这一过程将递归进行。

Java规则引擎的工作机制与上述规则引擎机制十分类似,只不过对上述概念进行了重新包装组合。

Java规则引擎对提交给引擎的Java数据对象进行检索,根据这些对象的当前属性值和它们之间的关系,从加载到引擎的规则集中发现符合条件的规则,创建这些规则的执行实例。

这些实例将在引擎接到执行指令时、依照某种优先序依次执行。

一般来讲,Java 规则引擎内部由下面几个部分构成:工作内存(Working Memory)即工作区,用于存放被引擎引用的数据对象集合;规则执行队列,用于存放被激活的规则执行实例;静态规则区,用于存放所有被加载的业务规则,这些规则将按照某种数据结构组织,当工作区中的数据发生改变后,引擎需要迅速根据工作区中的对象现状,调整规则执行队列中的规则执行实例。

Java 规则引擎的结构示意图如图4所示。

当引擎执行时,会根据规则执行队列中的优先顺序逐条执行规则执行实例,由于规则的执行部分可能会改变工作区的数据对象,从而会使队列中的某些规则执行实例因为条件改变而失效,必须从队列中撤销,也可能会激活原来不满足条件的规则,生成新的规则执行实例进入队列。

于是就产生了一种“动态”的规则执行链,形成规则的推理机制。

这种规则的“链式”反应完全是由工作区中的数据驱动的。

任何一个规则引擎都需要很好地解决规则的推理机制和规则条件匹配的效率问题。

规则条件匹配的效率决定了引擎的性能,引擎需要迅速测试工作区中的数据对象,从加载的规则集中发现符合条件的规则,生成规则执行实例。

1982年美国卡耐基·梅隆大学的Charles L. Forgy发明了一种叫Rete算法,很好地解决了这方面的问题。

目前世界顶尖的商用业务规则引擎产品基本上都使用Rete算法。

Java规则引擎API——JSR-94为了使规则引擎技术标准化,Java社区制定了Java规则引擎API(JSR94)规范。

它为Java平台访问规则引擎定义了一些简单的API。

Java规则引擎API在javax.rules包中定义,是访问规则引擎的标准企业级API。

Java 规则引擎API允许客户程序使用统一的方式和不同厂商的规则引擎产品交互,就如同使用JDBC编写独立于厂商访问不同的数据库产品一样。

Java规则引擎API包括创建和管理规则集合的机制,在工作区中添加,删除和修改对象的机制,以及初始化,重置和执行规则引擎的机制。

1、Java规则引擎API体系结构Java规则引擎API主要由两大类API组成:规则管理API(The Rules Administrator API)和运行时客户API(The Runtime Client API)。

1)规则管理API规则管理API在javax.rules.admin中定义,包含装载规则以及与规则对应的动作(执行集 execution sets)以及实例化规则引擎。

规则可以从外部资源中装载,比如URI,Input streams, XML streams和readers等等。

同时规则管理API还提供了注册和取消注册执行集以及对执行集进行维护的机制。

使用admin包定义规则有助于对客户访问运行规则进行控制管理,它通过在执行集上定义许可权使得未经授权的用户无法访问受控规则。

规则管理API使用类RuleServiceProvider来获得规则管理器(RuleAdministrator)接口的实例。

该接口提供方法注册和取消注册执行集。

规则管理器提供了本地和远程的RuleExecutionSetProvider,它负责创建规则执行集(RuleExecutionSet)。

规则执行集可以从如XML streams, binary streams等来源中创建。

这些数据来源及其内容经汇集和序列化后传送到远程的运行规则引擎的服务器上。

在大多数应用程序中,远程规则引擎或远程规则数据来源的情况并不多。

为了避免这些情况中的网络开销,API规定了可以从运行在同一JVM中规则库中读取数据的本地RuleExecutionSetProvider。

规则执行集接口除了拥有能够获得有关规则执行集的方法,还有能够检索在规则执行集中定义的所有规则对象。

这使得客户能够知道规则集中的规则对象并且按照自己需要来使用它们。

2)运行时客户API运行时API在javax.rules包中定义,为规则引擎用户运行规则获得结果提供了类和方法。

运行时客户只能访问那些使用规则管理API注册过的规则,运行时API帮助用户获得规则会话,并在这个会话中执行规则。

运行时API提供了对厂商规则引擎API的访问方法,这类似于JDBC。

类RuleServiceProvider提供了对具体规则引擎实现的运行时和管理API的访问,规则引擎厂商通过该类将其规则引擎实现提供给客户,并获得RuleServiceProvider唯一标识规则引擎的URL。

此URL的标准用法是使用类似于“com.mycompany.myrulesengine.rules.RuleServiceProvider”这样的Internet域名空间,这保证了访问URL的唯一性。

类RuleServiceProvider内部实现了规则管理和运行时访问所需的接口。

相关文档
最新文档