规则引擎原理分析.pdf

规则引擎原理分析.pdf

ID:51500238

大小:331.00 KB

页数:4页

时间:2020-03-25

规则引擎原理分析.pdf_第1页
规则引擎原理分析.pdf_第2页
规则引擎原理分析.pdf_第3页
规则引擎原理分析.pdf_第4页
资源描述:

《规则引擎原理分析.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、万方数据42福建电脑2006年第9期规则引擎原理分析彭磊(泰山医学院山东泰安271016)【摘要】规则引擎是业务规则管理系统的核心部分,是代替规则嵌入到程序代码中的组件,本文对规则引擎的组成结构和工作流程进行了分析。【关键词】业务规则;管理系统;规则引擎;BRMS1.业务规则管理系统介绍在传统的应用系统开发和实施过程中。业务规则(BusinessRules)是在需求分析阶段由用户提供,内嵌在程序代码中的。应用系统一旦开发完成业务规则便相对固定不易改动。然而业务规则充斥在应用系统的各个方面和角落,并且往往需要频繁的变更.应用系统的每一项策略、规则的变化都需

2、要开发人员对源代码进行修改.限制了应用系统的灵活性和生命力。而引入规则引擎之后业务规则从代码中分离出来。业务规则不再以程序代码的形式驻留在系统中.取而代之的是处理规则的规则引擎(Busine8sRule8En西ne)。业务规则驻留在规则库中。规则的修改是利用规则集成开发环境或规则编辑器通过对规则库修改而实现。业务规则被加载到规则引擎中供应用系统调用。因此对于规则的管理必然决定了系统的生命力。业务规则管理系统其实是一组工具集,它包括:规则引擎、规则库、规则语言框架、规则管理集成开发环境。规则引擎是底层的核心.可以看成是一个if,山en的高级解释器。要使用业

3、务规则引擎系统。有几个步骤。首先,必须预先建立规则,然后把规则部署到一个应用系统实例中。接着,规则被计算,而计算结果在返回用户之前,有可能先被过滤。最后,用户在应用程序代码里利用经过规则处理的结果。规则引擎是BRMS的核心部分.是代替规则嵌入到程序代码中的部分.是应用程序与业务规则的桥梁,负责将从应用程序传人的应用对象与从规则库中传人的规则集进行匹配并执行匹配成功的规则将结果输出给应用程序。2.规则引擎结构分析规则引擎是一种嵌入在应用程序中的组件.它的任务是把当前提交给引擎的数据对象与加载在引擎中的业务规则进行测试和比对.激活那些符合当前数据状态下的业务

4、规则.根据业务规则中声明的执行逻辑.触发应用程序中对应的操作。它包括匹配器(Context)、执行器(A-聆nda)、工作存储器(WorkingMemory)和规则集容器(Rule8etCon.1盎胥蒋豢垭乎向煎^臣蛰i执行结果图l规则引擎结构图t8iner)等功能模块.其基本结构图如下:2.1匹配器(Context):是规则引擎工作的上下文环境,用来关联工作存储器和规则集容器.将工作存储器中的应用程序对象与规则集容器中的一系列规则进行匹配.并将匹配成功的规则实例放入执行器中。2.2工作存储器(Wod【in只Memory):存储当前应用系统环境提供的应用

5、对象,为规则引擎提供用来匹配的条件。并对应用程序对象进行验证。2.3规则集容器(RIlle∞tContainer):从规则库中提取当前对应于该应用系统的规则集,并存储在规则集容器中.为规则匹配提供规则。这些规则将按照某种数据结构组织。当工作区中的数据发生改变后.引擎需要迅速根据工作区中的对象现状,调整规则执行队列中的规则。2.4执行器(Agenda):存放匹配成功的规则实例,用来执行规则的动作部分。并将执行结果传回给应用程序。一个开放的业务规则引擎应该可以”嵌入”在应甩程序的任何位置.不同位置的规则引擎可以使用不同的规则集。用于处理不同的数据对象。此外,

6、对使用引擎的数最没有限制。当引擎执行时.会根据规则执行队列中的优先顺序逐条执行规则执行实例.由于规则的执行部分可能会改变工作存储器中的数据对象.从而会使队列中的某些规则执行实例因为条件改变而失效,必须从队列中撤销,也可能会激活原来不满足条件的规则.生成新的规则执行实例进入队列。于是就产生了一种”动态”的规则执行链.形成规则的推理机制。这种规则的”链式”反应完全是由工作存储器中的数据驱动的。任何一个规则引擎都需要很好地解决规则的推理机制和规则条件匹配的效率问题。规则条件匹配的效率决定了引擎的性能.引擎需要迅速测试工作区中的数据对象,从加载的规则集中发现符合

7、条件的规则,生成规则执行实例。1982年美国卡耐基·梅隆大学的CharlesL.Fo骗r发明了一种叫Rete算法,很好地解决了这方面的问题。目前世界顶尖的商用业务规则引擎产品基本上都使用Rete算法。3.规则引擎流程描述f如图2)3.1应用程序注册应用程序通过接口函数调用规则引擎。首先进行注册,创建规则引擎对象.确定应用程序需要调用的规则集以及规则集所属的工程。注册失败则转入相应的错误处理。3.2导入应用程序对象规则引擎初始化,建立工作存储器。开发人员建立应用程序对象.并把对象加入工作存储器。这些参数会作为变量传递给规则引擎。3-3导入规则集图2规则引擎

8、流程图规则引擎指明要使用哪个规则集.并且还可以进一步指定要对哪个规则进行计算(默

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。