`
roger_xl
  • 浏览: 4259 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于规则引擎在企业项目中的使用

阅读更多
规则引擎的出现使得商业决策逻辑和应用开发者的技术决策分离,增强了软件的柔韧性. Java规则引擎项目 Drools 被设计为可插入式的语言实现。目前规则能用Java, Python和Groovy实现。更为重要的是,Drools提供了声明式程序设计(Declarative Programming),并且使用域描述语言(Domain Specific Languages (DSL))-专为你的问题域定义了某种模式的Xml, 它已经足够灵活到可以用来描述你的问题域。DSLs包含的XML元素(Element)和属性(Attribute)代表了问题域中各种要素。

规则引擎有两种方式.一种是解析执行的方式,就是解析规则包文件,根据规则包中定义的逻辑解析执行.另一种方式是编译执行,就是直接将规则包文件中的逻辑编译成可执行的字节码,通过调用执行.

有人在项目中使用过Drools吗, 如果自己实现规则引擎, 具体该考虑哪些因素呢. 请使用过的朋友过来讲讲. 目前一般项目中有哪些使用规则引擎的例子.
分享到:
评论
4 楼 Godlikeme 2008-02-02  
看lz的理解还停留的美妙的销售语言中,还是先评估一下在做判断吧。
不是说规则引擎的坏话,技术本身是很棒的,如要应用起来就要考虑范围、方式了。
试考虑一下问题?
什么样的业务逻辑可以抽象出来作为规则逻辑处理?
规则引擎与系统的协作方式,如何定义明确的接口,特别是输入输出?
规则修改系统如何测试?


3 楼 chillwarmoon 2008-02-02  
hocus 写道
基于rate的高效算法已经有现成的产品了:开源的是drools,商用的有ilog。

应该是基于RETE算法的规则引擎。
roger_xl 写道
如果自己实现规则引擎, 具体该考虑哪些因素呢.

规则引擎首先要考虑到规则的表达方式,jamocha规则引擎利用了人工智能语言CLIPS来表达规则,其次就是考虑推理的算法,RETE、LEAPS、TREAT等都是为模式匹配所提出的算法。
RETE主要是将规则描述为内存中的rete网络,然后依据该网络,为到达该网络的事实根据推理算法进行模式匹配。
PS:我的博客上有关于模式匹配算法RETE的介绍。jamocha的圈子:http://jamocha.group.iteye.com/
2 楼 hocus 2008-02-01  
roger_xl 写道
规则引擎的出现使得商业决策逻辑和应用开发者的技术决策分离,增强了软件的柔韧性. Java规则引擎项目 Drools 被设计为可插入式的语言实现。目前规则能用Java, Python和Groovy实现。更为重要的是,Drools提供了声明式程序设计(Declarative Programming),并且使用域描述语言(Domain Specific Languages (DSL))-专为你的问题域定义了某种模式的Xml, 它已经足够灵活到可以用来描述你的问题域。DSLs包含的XML元素(Element)和属性(Attribute)代表了问题域中各种要素。

规则引擎有两种方式.一种是解析执行的方式,就是解析规则包文件,根据规则包中定义的逻辑解析执行.另一种方式是编译执行,就是直接将规则包文件中的逻辑编译成可执行的字节码,通过调用执行.

有人在项目中使用过Drools吗, 如果自己实现规则引擎, 具体该考虑哪些因素呢. 请使用过的朋友过来讲讲. 目前一般项目中有哪些使用规则引擎的例子.



基于rate的高效算法已经有现成的产品了:开源的是drools,商用的有ilog。
自己实现引擎?!你就能写的比它们还好?
不是一句两句说的清楚,简要提一下,还是要自己多看文档
规则引擎的适用场合:
规则引擎适用于规则会被 业务人员频繁修改的;规则需要被抽象的;规则复杂无法用常规方式解决或不好解决(比如排课,排位)
不合时宜的引入规则引擎到系统内,只会给自己找麻烦,增加培训费用和后期支持的痛苦。

理解规则引擎的适用范围和真实需求,衡量是否使用是重要的第一步,当然多数情况是拍板的人其实不懂找个
抽象 业务模型和规则模型,并在其间建立映射,业务模型将面对最终业务人员,规则模型为了matchdrools
定义业务规则,归类,制定规则流程
选用合适的drl,其实默认的就不错
实现自己的BRMS,drools自带的那个未免太太简陋了些
drools 目前的ruleflow功能很薄弱,但flow确实是很重要的功能
1 楼 adamzhao 2008-02-01  
正在做的一个项目涉及到了规则引擎,不过没有那么复杂,也没有使用到Drools。主要原因是感觉太复杂,不适用。
我们没考虑那么多理论上的东西,只要适用、满足我们的需求就可以。

使用了Groovy作为脚本语言来解释的。重点要解决的问题有
1、定制:规则的定制,复杂的js拼装。会考虑到加减乘除,大于小于等于,包含不包含之类的运算;
2、存储:转换为xml存储在数据库;同时生成Groovy脚本;
3、执行:解释执行;

其中最困难的是js的拼装。

相关推荐

    规则引擎Drools在J2EE项目开发中的应用

    为了更好地理解和应用Drools,你可以阅读“规则引擎Drools在J2EE项目开发中的应用.pdf”这份文档,它将详细讲解如何在实际项目中集成和使用Drools,包括规则的编写、引擎的配置、以及与J2EE环境的交互等内容。...

    规则引擎应用实践

    通过阅读这份文档,开发者可以更深入地了解规则引擎的使用方法和最佳实践,从而在实际项目中充分发挥规则引擎的优势。 总的来说,规则引擎是现代企业应对复杂业务逻辑的重要工具,通过理解和应用规则引擎,可以提升...

    商用、开源规则引擎资料汇总

    规则引擎是现代软件架构中不可或缺的一部分,它们帮助企业在面对快速变化的市场环境时保持敏捷性。无论是商用还是开源规则引擎,都有各自的特点和适用场景。选择合适的规则引擎对于构建高效、可扩展的应用程序至关...

    urule2规则引擎的一些使用

    本文将深入探讨urule2的核心特性,以及如何在实际项目中进行有效应用。 urule2是一款开源的业务规则管理系统,由上海博科资讯公司开发。它主要由规则编辑器、规则服务器和规则客户端三部分组成,支持业务规则的创建...

    基于规则引擎的企业服务开发模式

    在规则引擎中,规则通常指的是企业或商务业务逻辑、法律条款、企业政策等。规则引擎的概念旨在从软件的应用逻辑中分离出商业规则,从而实现商业应用的灵活性。 #### 基于规则引擎的企业服务模型 基于规则引擎的...

    基于 WF 的规则引擎 超级简单

    在"基于WF的规则引擎"的项目中,可能包含以下几个关键点: 1. **规则定义**:如何使用C#和WF API创建和管理规则集。 2. **规则执行**:探讨如何在代码中触发规则引擎执行,并处理执行结果。 3. **动态更新规则**:...

    Java规则引擎与其API

    规则引擎的主要目的是为了应对企业级项目中不断变化的业务逻辑,使非技术人员(如业务分析师或策略管理者)能够直接修改规则,而不需依赖程序员进行代码修改。这提高了软件的灵活性和适应性。 JSR-94(Java ...

    为什么要用规则引擎(译文)

    在标签中,“源码”意味着这篇文章可能包含关于规则引擎的代码实现细节,可能是某种开源规则引擎的介绍,或者是如何通过编程语言(如Java、Python等)来集成和使用规则引擎的示例。“工具”标签则暗示了规则引擎作为...

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

    - 风险管理:企业可以使用规则引擎监控交易,检测潜在的欺诈行为。 源码和工具方面,Java有多个开源规则引擎可供选择,例如Drools、JESS、EasyRules和Apache Commons JEXL等。这些工具提供了API和DSL(领域特定语言...

    java规则引擎Drools基础

    Java规则引擎Drools是基于Java平台的企业级规则引擎,它允许开发者以声明式的方式定义业务规则,并在运行时高效地执行这些规则。Drools是JBOSS的一个开源项目,广泛应用于金融、保险、电信等领域,用于实现复杂的...

    企业业务规则引擎原理分析

    ### 企业业务规则引擎原理分析 #### 一、业务规则管理系统的重要性 在传统的软件开发过程中,业务规则(Business Rules)通常是在需求分析阶段由客户或业务分析师提供的,并且会被直接编码到应用程序中。这种方式...

    关于规则引擎

    “Java规则引擎工作原理及其应用(摘)_我从故乡来.mht”可能解释了Java规则引擎的工作原理,包括规则的存储、匹配、执行流程,以及它们在实际项目中的具体应用案例。 “引擎优化(SEO)十八大规则_魔力空间.mht”虽然...

    java规则引擎

    规则引擎的出现源于企业级项目开发的需求,尤其是对于那些需要频繁调整业务规则以适应市场变化的场景。企业管理者希望快速响应市场,而开发团队则面临将复杂商业规则转化为算法和数据结构的挑战。规则引擎通过提供一...

    Drools6.3规则引擎(java)

    5. **API和集成**:Drools提供了丰富的Java API,使得开发人员可以方便地在应用程序中嵌入规则引擎。此外,它还支持Spring、Maven和其他常见的Java框架,便于集成到现有的企业级系统中。 6. **测试和调试**:Drools...

    drools规则引擎系统概要设计说明书

    2. 集成Drools:在JBoss应用服务器中集成Drools规则引擎可以使得业务规则的管理更加灵活和强大。通过集成,JBoss应用服务器可以利用Drools来处理复杂的业务逻辑。 3. JBoss Drools项目:JBoss Drools项目是一个提供...

    Drools规则引擎及教程

    在"DroolsDemo"这个示例项目中,你可能可以实践以下内容: 1. **示例代码**:通过实际的Java代码,演示如何创建和配置Drools环境,以及如何使用Drools API进行规则的加载和执行。 2. **规则应用案例**:可能包含...

    Drools-规则引擎

    **Drools 规则引擎详解** Drools 是一个强大的、开源的业务规则管理系统(BRMS),它基于Java语言,被广泛...通过"DroolsDemo"这样的示例,开发者可以更好地理解和掌握Drools 的用法,从而在实际项目中发挥其潜力。

    Java规则引擎技术研究

    本文旨在探讨Java规则引擎的基本原理和技术细节,以及如何在实际项目中有效地运用这一技术。 #### 规则引擎的原理 ##### 基于规则的专家系统(RBES)简介 规则引擎的起源可追溯到基于规则的专家系统(RBES)。RBES是...

    规则引擎Drools 中文使用教程

    ### 规则引擎Drools 中文使用教程 #### Drools简介 Drools是一款功能强大的开源业务规则管理系统(BRMS),它支持业务规则管理、业务流程管理和复杂事件处理等功能。Drools最初是一个独立的项目,后来被JBoss收购...

Global site tag (gtag.js) - Google Analytics