Drools是一个开源的规则引擎,经过多年的发展,也提供如下商业BRMS具备的功能组件:
- 基于Eclipse的集成开发环境,
- 独立集中的规则存储库
- 基于WEB的规则维护环境
- 提供decision table 和 ruleflow等规则制品为规则的运行书写提供更多的灵活性
本文将使用Drools来实现典型的风险评分,并将相关功能与IBM ODM/JRules做一个简单比较。客户风险评分具体需求参见"基于业务规则的客户风险评分"一文。
模型
Drools一般使用JavaBean作为事实模型,因此我们可以重用之前建立的Java XOM工程。
Drools和IBM ODM/JRules在modeling方面的重要区别是,Drools没有BOM/XOM这样的两层对象模型映射体系,Java类型可同时直接供规则使用,即领域模型和规则(事实)模型两者是重叠的。虽然Drools也提供declarative的方式来定义规则模型,不过这种方式在我看来更多是作为Java类型的补充,而非用于解耦领域模型和规则模型(事实上两者的耦合在某种程度上反而被加强了)。
Drools的这种设计当然从开发层面给用户提供了相当的便利性和灵活性,但缺少专用的规则模型无疑会给业务规则设计治理带来一定的麻烦,对于大型的复杂规则项目,这种麻烦可能是至关重要的。
规则流设计
IBM ODM/JRules中的规则流可以视为一个micro flow,仅仅用于规则执行的串联,既不能long-running,也不支持人工任务,和通常所说的工作流是两个不同的概念。Drools flow,其定

本文介绍了如何使用Drools来实现客户风险评分,对比了Drools与IBM ODM/JRules在模型和规则流设计上的区别。Drools使用JavaBean作为事实模型,规则流设计更倾向于workflow。在规则设计部分,展示了eligibility规则的drl语言实现和决策表的使用。Drools虽有局限,但作为低成本规则技术解决方案,适合将业务逻辑从应用中剥离。
最低0.47元/天 解锁文章
693

被折叠的 条评论
为什么被折叠?



