JBossrule介绍概要.pptx

JBossrule介绍概要

Drools规则引擎介绍 用户体验和技术开发部2012-6-10 Drools简介 JBoss Rules 的前身是Codehaus的一个开源项目叫Drools。最近被纳入JBoss门下,更名为JBoss Rules,成为了JBoss应用服务器的规则引擎。 Drools是为Java量身定制的基于Charles  Forgy的RETE算法的规则引擎的实现。具有了OO接口的RETE,使得商业规则有了更自然的表达。 既然JBoss Rules是一个商业规则引擎,那我们就要先知道到底什么是Rules,即规则。在JBoss Rules中,规则是如何被表示的 1 Rules 一条规则是对商业知识的编码。一条规则有 attributes ,一个 Left Hand Side ( LHS )和一个 Right Hand Side ( RHS )。 规则的 LHS 由一个或多个条件( Conditions )组成。当所有的条件( Conditions )都满足并为真时, RHS 将被执行。 RHS 被称为结果( Consequence )。 2 rule “ name ” attribute   value      when                  LHS          then                  RHS End Rule系统的高层次视图 3 对新的数据和被修改的数据进行规则的匹配称为模式匹配( Pattern Matching )。 进行匹配的引擎称为推理机( Inference Engine )。被访问的规则称为 ProductionMemory , 被推理机进行匹配的数据称为 WorkingMemory 。 Agenda 管理被匹配规则的执行 Drools 的优势 声明式编程,使用规则文件可以很容易表达解决问题的方案。比代码更容易编写和阅读。 逻辑和数据分离,逻辑和数据解耦,使逻辑更容易维护,能够适应快速变化的需求变更。 速度和可扩展性 使用Rate算法,Jboss rule 的Rate00算法 规则集中化,所有的规则都集中在一起一起管理.方便管理,并可以例用快照的方式支持规则版本管理. 工具集成,工具(如Eclipse)提供编辑和管理规则的接口,并立即提供反馈,验证和内容的援助方式。还提供审计和调试工具。 理解规则,可以理解的规则,通过DSL可以自己编写接近自然语方的规则语言,方便普通用户编写规则。 4 什么时候使用规则引擎 问题的解决方案使用传统编码方式可能太复杂 问题可能不是太复杂,但是你不想使用一种脆弱的方式建立一个解决方案 问题没有明显的传统的算法解决方案。 逻辑经常变化 有现成的领域专家,但都是非技术性的。 5 Rate 算法简介 我们介绍了JBoss Rules中对Rule的表示,其中提到了JBoss Rule中主要采用的RETE算法来进行规则匹配。 RETE 算法可以分为两部分:规则编译( rule compilation )和运行时执行( runtime execution )。 下图是 Drools 中的 RETE 节点类型: 6 Rate算法示例 7 Drools API参考 Drools 分为两个主要部分: 编译( Building)和运行时( Runtime )。 构建的过程涉及到 .drl 或 .xml 规则文件的创建,它们被读入一个解析器,使用 ANTLR 3 语法进行解析。解析器对语法进行正确性的检查,然后产生一种中间结构“ descr ”, descr 用 AST 来描述规则。 AST 然后被传到 PackageBuilder ,由 PackagBuilder 来产生 Packaged 对象。 PackageBuilder 还承担着一些代码产生和编译的工作,这些对于产生 Package 对象都时必需的。 Package 对象是一个可以配置的,可序列化的,由一个或多个规则组成的对象。 8 Building(编译) 9 KnowledgeBuilder 负责通过 一些源文件,如一个DRL文件 或者一个Excel文件,把他们转 变成knowledge package或者process definitions。供于knowledge base 使用. Deploying(布署) 10 一个knowledge package 是一个knowledge定义集合,他可能一个rules或者processes,通过knowledge builder 创建。Knowledge package 自成体系并且是可以序列化的。目前。他们形成了一个基本的部署单元。 Running(运行) 11 statefunknowledgeSession通过knowledge

文档评论(0)

1亿VIP精品文档

相关文档