规则引擎的应用及发展

前言

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

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

应用背景

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

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

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

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

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

规则引擎执行原理

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

数据库接口

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

一 Excel接口

规则包需要调用的Excel接口主要是I Excel Book、I ExcelSheet、I Excel Table Sheet、I 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 Engine Factory 。

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

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

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

Rule Engine .put(传入对象);

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

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

使用规则引擎的优点

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

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

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

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

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

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

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

规则引擎供应商

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

1.国外的代表是:Drools(开放源代码)和ODM(IBM收购,原名ilog)

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

时间: 2024-08-02 12:50:47

规则引擎的应用及发展的相关文章

jboss规则引擎KIE Drools 6.3.0 Final 教程(1)

前言 目前世面上中文的KIE DROOLS Workbench(JBOSS BRMS)的教程几乎没有,有的也只有灵灵碎碎的使用机器来翻译的(翻的不知所云)或者是基于老版本的JBOSS Guvnor即5.x的一些教程,而且这些教程都是"缺胳膊少腿"的,初学者看后不知道它到底在干吗?能干吗?能够解决自己系统中什么问题. 所以笔者自己写了几个例子,把整个最新的英文版的KIE DROOLS 6.3.0.Final的官方教程给串了起来,用于供读者使用并以此来作为入门以及相关SOA理念的推广的第一

Java规则引擎与其API应用详解

详解 本文对Java规则引擎与其API(JSR-94)及相关实现做了较详细的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望 本文对Java规则引擎与其API(JSR-94)及相关实现做了较详细的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business l

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

摘 要 Java规则引擎是一种嵌入在Java程序中的组件,它的任务是把当前提交给引擎的Java数据对象与加载在引擎中的业务规则进行测试和比对,激活那些符合当前数据状态下的业务规则,根据业务规则中声明的执行逻辑,触发应用程序中对应的操作. 引言 目前,Java社区推动并发展了一种引人注目的新技术--Java规则引擎(Rule Engine).利用它就可以在应用系统中分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时可以动态地管理和修

Java规则引擎与其API(JSR-94)

简介:本文对Java规则引擎与其API(JSR-94)及相关实现做了较详细的介绍,对其体系结构和API应用 有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离 商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地 方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性.

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

引言 目前,Java社区推动并发展了一种引人注目的新技术--Java规则引擎(Rule Engine).利用它就可以在应用系统中分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时可以动态地管理和修改,从而为企业保持灵活性和竞争力提供有效的技术支持. 规则引擎的原理 1.基于规则的专家系统(RBES)简介 Java规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的其中一个分支.专家系统属于人工智能的范畴,它模仿人类

旗正规则引擎的产品设计

什么是规则引擎:          规则引擎是一种采用人类能理解的术语(简称类自然语言)来描述业务逻辑(如各类公式.算法.策略.流程等)并且解析执行的软件程序.对于一般的数据处理逻辑以及判断逻辑,规则引擎可以直接采用业务人员自己定义的术语,来对其进行描述.使得这些业务逻辑可以脱离程序外进行单独配置和管理,已满足其后期随时变更.国外代表品牌是ILOG,开源DROOLS,以及国内商业产品代表是旗正规则引擎.   旗正规则引擎的特点: 使用规则引擎的目的就是为了让软件系统中一些数据处理的逻辑,未来可以

规则引擎-BRMS在企业开发中的应用

1. 什么是规则 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性.规则正是应用于上述动态环境中的一种解决方法. 2. 规则产生的背景 一个业务规则包含一组条件和在此条件下执行的操作.它们表示业务规则应用程序的一段业务逻辑.业务规则的理论基础是:设置一个或多个条件,当满

规则引擎的简单介绍

一.规则引擎的由来 规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.接受数据输入,解释业务规则,并根据业务规则做出业务决策.二.应用背景 企业级管理者对企业IT系统的开发有着如下的要求: 1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂. 2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速.低成本的更新. 3.为了快速.低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开

详解什么是Java规则引擎(上)

问题描述 本文对Java规则引擎与其API(JSR-94)及相关实现做了较详细的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(businesslogic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性.规则