ZT - WebSphere ILOG JRules 规则引擎运行模式简介(2)

JRules 规则引擎运行模式 JRules 规则引擎根据规则的不同应用场景和业务规则的特点提供了三种不同的运行模式:RetePlus、Sequential 和 FastPath。 RetePlus Rete 是目前主流的规则引擎模式匹配算法,RetePlus 则是 JRules 在 Rete 算法上的扩展和优化,也是 JRules 规则引擎默认的运行模式。RetePlus 运行模式为 ILOG 规则引擎提供了种种手段,用以尽量减少需要加以评估的规则和条件的数量,计算哪些规则应当执行,并确定这些规则的执行顺序。在 RetePlus 算法中,规则引擎使用 Working memory 和 Agenda 来存放和操作应用程序对象。Working memory 中包含的应用程序对象的引用,Agenda 则按顺序列出将要执行的规则实例。如图 1 所示: 图 1. RetePlus 执行模式 RetePlus 模式的执行过程如下: 规则引擎依据 Working Memory 中的数据对象来匹配规则集中规则的条件部分。在模式匹配过程中,RetePlus 首先创建出以规则条件测试之间的语义关系为基础的网络(步骤 1),然后将匹配的规则实例化并添加到 Agenda 中,随后对 Agenda 中的规则按照一定原则进行排序(步骤 2)。 执行 Agenda 中的规则实例,即执行规则的动作(Action)部分。同时,规则实例的执行也会影响 Working Memory 中的数据对象,主要方式有:(步骤 3): 往 Working Memory 中加入一个新的对象 移除 Working Memory 中现有对象 修改现有对象的属性 以上过程将不断重复,直至执行完 Agenda 中所有规则实例。 在 RetePlus 算法中每当 Working Memory 被修改,规则引擎将重复模式匹配的过程。它在每次规则执行数据修改后重新评估每个规则匹配。这可能会改变 Agenda 中的规则实例。因此,RetePlus 是渐进的和数据驱动的。这些特点使 RetePlus 在计算和关联性类型的应用方面拥有卓越的性能。 Sequential 顺序运行模式,顾名思义,即规则引擎按顺序执行 rule task 中符合条件的所有规则。如图 2 所示: 图 2. 顺序执行模式 具体执行过程如下: 规则引擎根据输入参数以及 working memory 中的对象集合和规则的条件部分进行匹配。每次匹配都将生成一个规则实例并立即运行。(步骤 1) 当规则实例被执行后,它有可能设置属性或规则集输出参数的值。(步骤 2) 顺序算法执行的规则是无状态的。顺序算法的运行就像堆栈一样,匹配的规则只会运行一次,而不会再次评估。因此在顺序模式下,规则中不能使用类似“至少有一个 ”、“如下对象的数目:”等等跟 working memory 中对象有关系的存在性条件(existence conditions),除非这个对象是集合类型。 顺序模式的特性决定了其在校验和一致性等类型的应用中有良好的性能表现。 顺序处理可以通过规则任务的算法属性来指定,通常可以在 Rule Studio 中显式的选择。 FastPath Fastpath 运行模式是增强型的顺序运行模式,和顺序模式类似,Fastpath 也是顺序运行,但是它同时还能和 RetePlus 模式一样在进行模式匹配时检测规则条件的语义关系。 图 3.FastPath 执行模式 在 Fastpath 模式中,规则引擎可以通过 working memory 引用应用数据对象或规则集参数。与 Reteplus 类似,在模式匹配时 Fastpath 同样创建以规则条件测试之间的语义关系为基础的网络(步骤 1)。 每次匹配,将创建一个规则实例并立即执行。规则实例执行后,它可能修改 working memory 中的对象,但是这些修改不会影响其它规则的执行,并且规则引擎也不会重复模式匹配的过程(步骤 2)。 Fastpath 综合了 Reteplus 的模式匹配和顺序运行模式的规则执行的特性,从这个意义上来说,它在关联型应用和校验类应用中都有较好表现。 和顺序运行模式一样,Fastpath 运行模式也是无状态的,适合在大量单独执行简单判定或少量交叉测试的规则上进行对象匹配。这样一些规则集可以在没有任何 agenda 支持下很好的按顺序执行。除了作为一种变异的顺序模式的优势,Fastpath 运行模式的目的是进一步优化一致性和校验性类型规则的执行,通常这些类型的规则占据了商业规则的绝大部分。[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16896827/viewspace-1036449/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16896827/viewspace-1036449/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值