为何对于规则来说Java编码是不好的,而声明式编程是更好的选择
作者: Mark Proctor
Drools的卖点之一,也是我们能够超越其它竞争者的地方是,在规则的表达式和推论中允许使用Java编码。这带来了一个较低的学习曲线,因为Java开发者不需要额外的培训就可以开始编写规则的推论部分;不管是更新值,发送消息或从数据库返回信息。这种与Java或类Java语言一体的模式,对于市场来说也是一种对比竞争者的宣传措施。从表面上看来起来是很好的,并且对于管理者来说也可以带来——更少的培训,利用现有的技术,哪不好的一面是什么呢?
使用Java语言,将 ...
编写更好的规则
作者: Edson Tirelli
我们所常见的一个问题是“我怎样编写更好的规则?”,或者类似的问题
我做错了什么?我有如此多过程代码在规则中…
我怎样调用一个特定的规则?(它来自于两类用户:使用反向推导的规则引擎或者习惯于使用过程代码)
我如何在一个集合中遍历?
我如果在LHS中执行一个操作?
所有上面的问题暴露出对声明式编程的误解或缺少正向推论引擎知识。
免责声明:这里没有负面的评判。这只是一个知识体系,对于那些使用规则的人们,需要对此有更深入的研究。我 ...
为监控程序和时间敏感程序编写规则
作者:Edson Tirelli
在讨论完关于编写规则的抽象概念以后,我打算停一下,讨论一些真实的规则引擎用例以及怎样对这些用例编写规则。
我发送了邮件到用户列表中询问大家喜欢更详细的讨论哪些用例,然后我开始收到一些反馈。在这篇文章中,我将讨论一个由Neil Goldman建议的主题,同时也是分享他对监控程序和时间敏感程序建立规则的一些想法。
这篇文章不是讨论关于事件流处理的范围,这个专题与本文有所关联,但是这个专题所涉及的面太广而不能被包括在本文中。
在这个例子中我将使用Drools,但是其中的思路可以用于其它规则引擎。 ...
JBoss规则引擎与Web Services
作者: Mark Proctor
我最近刚刚完成了一个项目,其中JBoss规则引擎通过Web Services来提供使用。因此我写下其中的一些细节。
在这个特殊的项目中,只有有效负载(payload)中的根对象被设置,整个payload不被分成更小的关联对象设置到Working Memory中,通常这样被认为是最佳实践方式;无论怎样,我们在这里演示给你看怎样有效率的在嵌套的XML有效负载中使用‘from’。
我所理解的步骤可以简单定义如下:
为你的模型建立一个XSD
...
为何在Drools中使用MVEL
作者: Mark Proctor
我目前正在努力工作以实现插件式的语言系统,它与Drools2.0中的语义模块有些类似。使用这种系统,人们可以用任何他们喜欢的语言来编写Drl语言实现,可以用这种语言建立他们的断言、返回值、Eval和推论。我们将支持两种语言实现:Java和MVEL(http://mvel.codehaus.org/)。当然大家问的第一个问题会是为什么选择MVEL而不是Groovy,Jython等等,我将原因列举如下:
反射/字节码(JIT)编译和执行模式
对于大型系统,我们需要 ...
顺序的Rete算法
作者: Mark Proctor
无状态和有状态Session
使用Rete,你有一个有状态的Session,在那里对象可以随时被设置或修改,规则也可以随时被增加和删除。现在我们假设一个无状态Session会发生什么样的情况呢?在完成了初始数据集后,没有更多的数据可以被设置或修改(没有规则的重新评估),并且没有规则可以在被增加或删除。这意味着我们可以认为引擎在这种情况下所处理的工作量是最小的。
算法
使用salience和在规则集中的位置(只要仔规则终节点上设置一个sequence属性就可以)排序规则
建立一个数组 ...
Drools 3.0到4.0迁移工具 (Edson Tirelli)
作者:Edson Tirelli
在我们构建Drools4.0时,为了加入所有的特性,我们不得不进行一些破坏向后兼容性的API和语法变更。
为了最小化从3.0迁移到4.0的工作量,我们将提供一个工具来帮助进行规则文件的迁移。它将进行基本的自动变换,但是我们只是期望能对一切要手工调整的用户提供一些帮助。
我刚刚完成了应用的少量代码,你可以通过下面链接访问:
http://anonsvn.labs.jboss.com/labs/jbossrules/trunk/experimental/drools-upd ...
Accumulate函数 (Edson Tirelli)
作者: Mark Proctor
当我们接近完成发布版,一切事情趋于它最终的形状。这个星期是将Accumulate条件元素完成的日子。对于不了解它的人,Accumulate是Drools4.0中非常强大的一个条件元素。它允许你对数据集进行操作
通常它的语法如下:
ResultPattern( fieldconstraint* )
from accumulate ( SourcePattern( fieldconstraint* )
...
语言表达式:改进的数据获取方法
作者: Edson Tirelli
大多数人都知道,Drools4.0的一个主要目标是增强表达式的能力,并简化规则语言。
对于大家所期待的常用语言表达方式,我们高兴得说,在4.0MR3版本中这个特性已经完成了,新的改变允许嵌套访问,映射和数组的标准访问语法,以及复杂的表达式评估。换句话说,用户现在可以编写约束如下:
rule "Complex expressions"
when
$country : Contry( name == "Brazil" )
Person( address[ ...
规则流
作者: Kris Verlaenen
JBoss规则引擎中已经加入了一个新的特性,允许用户建立一个流程图来定义规则集进行评估的顺序。本文列举一些怎样使用规则流的例子。规则流将在Drools4.0版本中发布,对此特别期望的用户可以在最新的M2,M3版本中看到它。JBoss规则引擎已经提供了一些功能来定义规则的执行顺序,例如salience、activation groups等等。当处理海量的规则时,管理规则激发的顺序会变得很复杂。规则流允许你指定一个规则评估的流程。这允许你指定哪些规则应该按照先后顺序或并发的评估,指定规则评估的先决条件等等。这里有 ...
Drools专家系统思维指导图
作者: Mark Proctor
当告诉人们关于Drools4.0的特性以及它们怎样工作时,我发现对于没有之前专家系统的经验的人很难进行理解。因此我想应该绘制一幅思维指导图,是否能够对这些高级特性有更好的理解。我找到了一个GPL版权的工具,叫做FreeMind。我使用的是V9-Beta9版本,它看上去已经够用了。
声明式关系编程
作者:Mark Proctor
这篇文章是从我在InfoQ上的评论Debate: ODBMS sometimes a better alternative to O/R Mapping?.(讨论:ODBMS有时是比O/R映射更好的选择)引申而来
面向对象的深层图模型——pojo规范,难以通过声明进行推论,虽然它可以在命令式编程中有良好表现。随着WSC完成描述逻辑的标准化定义OWL-DL(一种面向语义Web的知识表示标记语言,具有较强的知识表达能力并适合大规模应用的推理效率)并将其与声明式推论系统如Drools结合(将在4.0 ...
'from', 'accumulate' 和 'collect' 之间的关联
作者: Mark Proctor
在Drools4.0中,我们介绍了‘from’关键字,它允许你为模式声明一个推论的来源。这允许引擎使用不在Working Memory中的数据进行推论。源数据可能是绑定变量的子字段,或者方法调用的结果;后一种方式提供了与Hibernate集成的方法(通过调用命名的查询),Drools将把返回的结果与模式统一为一体。
这里是一些简单的绑定子字段进行推论的例子:
Person( personAddress : address ...
使用规则寻找最大值
原文网址:http://wiki.jboss.org/wiki/Wiki.jsp?page=RulesFindMax
有时你可能想查找fact的 ...
在业务流程中绑定商业规则 1
概要 1
JBoss 规则引擎 2
场景 2
定义Webservice 2
编写 WSDL 2
产生对象模型 5
编写商业规则 5
部署 6
增加库到Axis2 7
配置Janino编译器 7
打包Webservice 7
集成到商业过程 8
从过程到webservice的映射: 9
从过程返回借口的映射(send response): 9
测试 10
将来的考虑:  ...
现实中的规则引擎 1
相关的第三方内容 1
我应该关心什么? 2
规则引擎初探 2
规则引擎是什么? 3
它们怎样工作? 3
你怎样编写规则? 4
它们的好处是什么? 5
引擎不善于做什么? 5
示例: 汽车保险报价 6
使用规则引擎的体系架构 6
服务器型与内嵌型 6
规则性能 6
管理规则 7
示例架构 7
规则引擎模式与反模式 8
商业逻辑外部化 8
快速变更 9
商业用户开 ...
第六章. BRMS (商业规则管理系统) 1
6.1. 简介 1
6.1.1. 什么是BRMS? 2
6.1.2. 特性概要 3
6.2. 管理指南 3
6.2.1. 安装 4
6.2.2. 数据库配置 5
6.2.3. 安全性 6
6.2.4. 数据管理 8
详细内容查看附件
RAD70 Eclipse插件安装介绍
RAD7.0 Eclipse 插件(Drools4.0)安装介绍
1. 下载插件: http://download.jboss.org/jbossrules/release/4.0.0.11754MR2/jbossrules-4.0 ...
4.0.0.MR3ReleaseNotes
API/语言变更
assert 将变成 insert
为了避免常数关键字与“assert”发生冲突,绝大 ...
Drools 4.0.0.MR2ReleaseNotes
引擎
规则流程
现在可以使用Eclipse GUI建立规则流程,并且保存为一个文件,这些文件然后可以用来控制规则的执行流程:
...
Drools3.1M1 ReleaseNotes
语言增强
新的条件元素: 'from', 'collect', 'accumulate', 'forall'
'from'
...
Drools 3.0特性列表
核心规则引擎特性——JBoss规则引擎实现的这些特性能够使用JBoss规则语言表达。
完全的Rete算法实现, ...
第六章. Java 规则引擎API 2
6.1. 简介 2
6.2. 如何使用 2
6.2.1. 创建与注册RuleExecutionSet 2
6.2.2. 使用有状态和无状态RuleSession 4
6.3. 参考书目 6
第7章. 性能调整 7
7.1. 性能考虑 7
7.1.1. Beta Node Memory Indexing(节点内存索引) 7
7.1.2. 索引性能调整 9
7.1.3. 大型Ruleset 10
第8章. 示例&nb ...
第四章. 决策表 2
4.1. 在电子表格中的决策表 2
4.1.1. 何时使用决策表 2
4.1.2. 概述 2
4.1.3. 决策表如何工作 4
4.1.4. 关键字和语法 7
4.1.5. 基于决策表建立并集成电子表格 11
4.1.6. 在决策表中管理商业规则 12
第五章. 规则工作台 (IDE) 13
5.1. 简介 13
5.1.1. 特性概要 13
5.1.2. 建立规则项目 14
5.1.3. 新建规则向导 15
5.1. ...
第三章. 规则语言... 2
3.1. 概述... 2
3.1.1. 规则文件... 2
3.1.2. What makes a rule. 2
3.1.3. 领域语言 Domain Specific Languages. 3
3.1.4. Reserved words. 3
3.2. Comments 注释... 4
3.2.1. 单行注释... 4
3.2.2. 多行注释... 4
3.3. Package 包... 4
3.3.1. import 导入... 5
3.3.2. expander 扩展... 6
3.3 ...
第二章:安装和设置... 2
2.1. 安装和使用... 2
2.1.1. 依赖库... 2
2.1.2. 运行时... 3
2.1.3. 安装IDE (规则工作台). 3
2.2. 从源码进行安装... 13
2.3. 源码Checkout. 14
2.4. 构建... 16
2.4.1. 构建源码... 16
2.4.2.手工构建... 18
2.5. Eclipse. 22
2.5.1. 产生Eclipse项目... 22
2.5.2. 导入Eclipse ...
- 浏览: 41106 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
我的相册
ruleflow3
共 4 张
共 4 张
最近加入圈子
最新评论
-
Drools4:对Golfer示例的 ...
对,确实是这样
-- by dong_ta -
Drools4:对Shopping示例 ...
发现一个问题,我分析了很久也没有结果,麻烦各位大虾帮想想如果把两个Product ...
-- by john_summer -
Drools4.0官方使用手册( ...
感谢!!正要把drools写进论文,需要这方面的资料
-- by gb1981 -
精品文章翻译:现实中的规 ...
jialno 写道谢谢.这段时间也在关注这东西非常感谢共享
-- by huanyouchen8312 -
Drools 4.0 BRMS使用说明
sonic_yj 写道tvjody 写道支持,国外的BRM应用都很普及了,在国内 ...
-- by 子在川上曰






评论排行榜