规则引擎的应用发展

author author     2022-09-23     585

关键词:

前言

最传统的软件是揉杂在一起的,1970年代为了更好的方便开发,程序员将数据库份离出来,方便信息的存储。1980年代,应用层分离出展示层,使得产品更加优化,人性化,而1990年代后,使用规则引擎将业务规则分离单独管理,使得业务系统能够更加灵活变动,响应速度更加快速,旗正商业规则管理平台正式业务规则的管理专家

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

应用背景

企业级管理者对企业IT系统的开发有着如下的要求:

1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。

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

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

目前国外大多数企业在信息管理上已经使用到了BRMS的架构来保证公司更加迅速准确的完成任务。我们国内,大多数企业BRMS处理方面并不尽人意,多数人甚至不知道规则引擎是做什么的。规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。使得BRMS构架更加明显,使非技术业务人员能直接参与到业务规则管理工作中,使受限于复杂多变且不断发展的业务规则的应用程序和流程实现灵活的决策自动化。

规则引擎执行原理

旗正规则引擎Visual Rules solution)为例规则引擎会根据规则包名称,取得对应规则包编译后的RSC文件。然后将RSC加载到内存中,生成规则包执行上下文。同时规则引擎将传递的参数传递到规则包执行上下文中,然后开始执行规则包。执行完毕后,再将规则包执行上下文中的数据,传回给调用规则包的应用程序。整个执行原理非常简单,因此最大限度的保证了规则运行平台的稳定以及最佳的性能。

数据库接口

规则包的对象库中,定义了以下一些数据库对象接口DatabaseTableSelectViewProcedure。旗正规则引擎直接用JDBC来实现这些接口,最大限度的保证了数据库对象调用的性能。当然用户可以根据自己的需要,重新来实现这些数据库接口

Excel接口

规则包需要调用的Excel接口主要是I Excel BookI ExcelSheetI Excel Table SheetI Excel X Y Sheet。旗正规则引擎采用POI来实现Excel接口。

内存表格接口

规则包需要调用的内存表格接口为Sheet,旗正规则引擎采用Object[][]来实现内存表格接口的实现。

Xml接口

规则包需要调用的XML接口为Node。目前旗正规则引擎采用JDOM来实现。

如何调用

规则引擎是外部Java程序调用规则包的一组Java类,其包含在engine.jar中。外部Java程序调用规则包时只需要用到两个类。一个是 com. Flagleader .Engine.Rule Engine 。另一个是 com. Flagleader .engine .Rule EngineFactory

Rule Engine Factory是得到规则引擎实例的工厂类。通常代码为

Rule Engine rule Engine = Rule Engine Factory .new Instance().get Rule Engine();

得到规则引擎实例后,可以调用规则引擎中的方法,主要是putexcuteget这三个方法。 put用于传入需要传入的值,excute 用于运行指定的规则包,get用于得到传出的值。一般的调用代码为:

Rule Engine .put(传入对象);

Rule Engine .excute("规则包调用名");

传出对象 = rule Engine .get("传出对象名");

使用规则引擎的优点

 使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本,其优点如下:

1.分离商业决策者的商业决策逻辑和应用开发者的技术决策;

2.能有效的提高实现复杂逻辑代码的可维护性;

3.在开发期间或部署后修复代码缺陷;

4.应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内;

5.符合组织对敏捷或迭代开发过程的使用;

6.大多数规则引擎都支持规则的次序和规则冲突检验,支持简单脚本语言的规则实现,支持通用开发语言的嵌入开发。

规则引擎供应商

目前业内有多个规则引擎可供使用,其中包括国内和国外。

1.国外的代表是:Drools(开放源代码)和IlogIBM收购)

2.国内的代表是:旗正规则引擎(Visual rules solution


本文出自 “13184590” 博客,请务必保留此出处http://13194590.blog.51cto.com/13184590/1973871

开源业务规则引擎jbossdrools

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

.netrulesengine规则引擎使用(代码片段)

        规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业... 查看详情

规则引擎选型及简单应用

规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。规则引擎具体执行可以分为接受数据输入,解释业务规则,根据业务规则做出业务决策几个过程,使用规则引擎可以把复杂、冗余... 查看详情

规则引擎的应用

java开源的规则引擎有:Drools、EasyRules、Mandarax、IBMILOG。使用最为广泛并且开源的是Drools。     规则引擎的优点声明式编程规则可以很容易地解决困难的问题,并得到解决方案的验证。与代码不同,规则以较不复杂的语... 查看详情

规则引擎easyrules介绍,应用及示例(代码片段)

浅析EasyRules规则引擎轻量级规则引擎EasyRulesJava规则引擎EasyRules一、EasyRules介绍1.1概述EasyRules是一个简单而强大的Java规则引擎,提供以下功能:轻量级框架和易于学习的API基于POJO的开发与注解的编程模型定义抽象的业务... 查看详情

什么事规则引擎

规则引擎一、规则引擎概述1.1什么是规则引擎1.2使用规则引擎的优势1.3规则引擎应用场景一、规则引擎概述1.1什么是规则引擎规则引擎,全称为业务规则管理系统,英文名为BRMS(即BusinessRuleManagementSystem)。规则引擎的主要... 查看详情

drrols规则引擎

1.什么是规则引擎?  规则引擎是一种嵌套在应用程序中的组件,它实现了将业务规则从应用程序代码中分离出来。规则引擎使用特定的语法编写业务规则,规则引擎可以接受数据输入、解释业务规则、并根据业务规则做出相... 查看详情

groovy脚本实现轻量级规则引擎

参考技术A1)当业务规则变更时,对应的代码也得跟着更改,每次即使是小的变更都需要经历开发、测试验证上线等过程,变更成本比较大。2)长时间系统变得越来越难以维护。3)开发团队一般是由一个熟悉业务的BA(业务分析... 查看详情

规则引擎在数据分析中的应用

前言:规则引擎通过将业务规则和开发者的技术决策分离, 实现了动态管理和修改业务规则而又不影响软件系统的需求。以下通过实例对基于SQL 查询、自定义规则等一系列场景来说明规则引擎在数据分析中的应用。在现... 查看详情

规则引擎clara-rules(代码片段)

本文的主题是规则引擎,主要内容包括规则引擎的实现算法rete算法,clojure开源的规则引擎clara-rules对规则的处理方式和特点,以及clojureedn文件格式处理等内容。(在一段时间的思考之后,发现本文还是越写越... 查看详情

规则引擎drools在贷后催收业务中的应用

...gXiang在日常业务开发工作中我们经常会遇到一些根据业务规则做决策的场景。为了让开发人员从大量的规则代码的开发维护中释放出来,把规则的维护和生成交由业务人员,为了达到这种目的通常我们会使用规则引擎来帮助我们... 查看详情

数据驱动规则引擎 - Drools

】数据驱动规则引擎-Drools【英文标题】:DataDrivenRulesEngine-Drools【发布时间】:2013-08-2322:51:57【问题描述】:我一直在评估Drools作为我们的业务Web应用程序中使用的规则引擎。我的用例是一个订单管理应用程序。规则如下:-如果... 查看详情

JavaScript中的规则引擎[关闭]

】JavaScript中的规则引擎[关闭]【英文标题】:RuleEngineinJavaScript[closed]【发布时间】:2011-12-0110:59:10【问题描述】:JavaScript中有规则引擎吗?问题是在这种情况下:考虑一个具有用户填写表单的Web应用程序。当用户填写每个字段... 查看详情

常用规则引擎

...ules首先集成了mvel表达式,后续可能集成SpEL的一款轻量级规则引擎easyrules是一个简单而强大的java规则引擎,它有以下特性:轻量级框架,学习成本低基于POJO为定义业务引擎提供有用的抽象和简便的应用从原始的规则组合成复杂... 查看详情

drools规则引擎brms

安装说明|Drools中文网http://www.drools.org.cn/category/installDrools规则引擎-在微服务中的应用-简书https://www.jianshu.com/p/887ff9021eb3Drools规则引擎-在微服务中的应用-简书https://www.jianshu.com/p/887ff9021eb3微服务组件-规则引擎-Fx_demon-OSCHINAhttps://my... 查看详情

履约核心引擎低代码化原理与实践

业界,规则引擎是一个非常普遍的技术类工具,也有很多非常优秀的开源工具,例如Drools等,它是一种嵌入在应用程序中的组件,主要解决易变逻辑和业务耦合的问题,把易变的规则从应用程序代码中分离出来,进而提升交付效... 查看详情

优化的发展前景

...具或者其他的各种手法使自己的网站符合搜索引擎的搜索规则,从而获得较好的排名(也就是常说的网站优化)。2    无止 查看详情

简说规则引擎在促销返利领域的应用

   大型生产型企业销售渠道的建设,一般都采用代理商政策。根据地区、产品等情况,设立不同级别的代理商,不同地区、不同级别代理商有着不同的促销返利政策,也需根据企业、市场现状对促销政策进行调整,另... 查看详情