Drools提供了符合JSR 94的接口(注:JSR 94只是一个通用的接口集,是一个通用规则引擎功能的最小集,要更好的发挥Drools的功能演绎推理,可以使用Drools的接口)期刊网。此外,Drools还提供了.Net平台上的规则引擎实现。
2.3 Jess
2.3.1简介
Jess是1995年由美国Sandia国家实验室分布式系统计算组成员Ernest J. Friedman-Hill实现,是速度较快的成熟的轻量级规则引擎。它是利用Java语言开发的专家系统工具CLIPS(CLIPS-C Language Interface toProduction Systems是NASA开发的一种自封闭的产生式系统)的翻版,是第一个应用到Java中的规则引擎。Jess由基于Eclipse平台的Jess语言编辑环境(JessDE)和核心推理引擎两部分组成。Jess实现了JSR-94规范,Jess中的脚本语言支持直接调用Java API,能实现与Java系统的集成。推理引擎上,Jess采用改进的Rete算法处理规则,不但效率相比传统Rete算法有所提高,而且实现了一些独有的功能,其中包括:归纳法(Backward- Chaining)推理,工作内存的查询和对Java对象的操作和推理。Jess包含一个功能强大的Java脚本编写环境,不但提供Java对象的创建和Java方法调用功能,而且可以实现不编译任何Java代码实现Java接口的能力。Jess主要应用于大学人工智能教学编程和政府部门的规则引擎和规则编程集成开发环境。Jess规则引擎主要由三部分组成:
1. DOS命令风格控制台运行环境。
2. Java程序集成Library(jess.jar和依赖的JSR-94包jsr94.jar)。
3. 集成开发环境JessDE。
Jess Library是Jess中提供给Java程序调用的接口和实现,表2 中列出了所有 Jess的Java APIs包和功能。
表2 Jess Library包描述
Java包
|
描述
|
jess
|
Jess规则引擎的核心实现。
|
jess.awt
|
运行JavaGUI响应代码的事件适配器实现。
|
jess.factory
|
Rete网络模式匹配过程中传递数据的Jess扩展点,例如FussyJess。
|
jess.jsr94
|
JSR94规范API的实现。
|
jess.server
|
Jess调试服务器的实现。
|
jess.swing
|
提供在Jess中与SwingGUI交互功能的实现。
|
jess.tools
|
Jess工具包。
|
jess.xml
|
提供JessML(Jess中基于XML的规则定义语言)的读写功能。
|
javax.rules
|
JSR94核心API实现。
|
java.rules.admin
|
JSR94控制组建实现。
|
2.3.2特性分析
Jess推理引擎采用改进的Rete推理算法,不但能够演绎推理,而且可以归纳推理,这也使得Jess的推理速度比一些有名的C语言编写的推理引擎速度还快。但是,由于Rete算法是明确的由空间换取时间的算法,因此,Jess内存占用不能忽视。为了节约内存,Jess中提供了以降低性能来控制内存使用的命令。虽然Jess运行耗费内存空间演绎推理,但这种耗费并不荒谬。Java虚拟机默认的16MB堆空间足以满足大多数中等规模的Jess/Java应用程序使用。Jess对内存的依赖使得它的执行也会受Java内存清理软件性能的影响。
Jess中的工作内存类似于关系数据库,其中存储了索引和结构化的数据期刊网。大多数情况下需要以规则模式匹配的形式访问工作内存。但有些时候,需要写过程代码从工作内存中直接抽取数据,Jess就提供了这种功能。
3 对比分析
3.1 CAPS
CAPS中的规则应用不具有一般性,它是特定于CAPS产品的,它的规则定义方式除了可以对我们的工具开发有些借鉴外,其它方面并没有太大益处。
3.2 Drools
Drools在开源Java规则引擎中享有很高的知名度,产品升级速度很快,功能不断完善,性能不断提高。Drools提供了近乎完备的开发环境(以Eclipse插件形式存在)和部署管理环境(BRMS)。Drools的规则语法相对来说比较简单,支持通过自然语言来表达,对业务人员比较友好。另一个重要方面是Drools是免费的,商业用途不收费,但对于商业支持服务要收取费用。
3.3 Jess
Jess是成熟的轻量级规则引擎,有着优秀的开发团队和广泛的支持。Jess核心推理算法采用改进的Rete算法,能够实现快速高效的规则推理。提供了基于Eclipse平台的开发工具JessDE,简单易用。Jess应用广泛,知名度高。
Jess规则描述文件中不能直接嵌入Java 代码,由于Jess语言继承了CLIPS的语法,所以语法比较复杂,普通开发人员需要额外地学习其规则描述语言,因此Jess不能实现与Java系统的无缝集成。另外演绎推理,Jess调试功能有限,没有报表功能,商业用途收费。
3.4 特性对比
表3中对CAPS、Drools和Jess在实现技术、授权方式和应用场景等方面做了对比。
表3 Feature Matrix
名称
|
Java CAPS
|
Drools
|
Jess
|
License
|
商业产品
|
Apache License 2
|
商业用途收费
|
提供商、社区
|
Sun
|
JBoss
|
Sandia
|
推理算法
|
/
|
ReteOO
|
Enhanced Rete
|
规则语言
|
/
|
DRL/DSL, DecisionTable
|
继承自CLIPS语言的Jess脚本语言
|
规则管理
|
/
|
BRMS
|
/
|
开发工具
|
业务规则编辑器
|
Eclipse Plugin: 规则语言编辑、debug、规则流编辑、向导、模
版
|
Eclipse Plugin: 规则语言编辑、debug、规则流编辑、向导、模版
|
部署、集成
|
/
|
BRMS;与Hibernate、jBPM集成容易
|
|
标准、规范
|
/
|
提供了JSR94接口
|
符合JSR94
|
平台
|
J2EE
|
J2EE、.Net
|
J2EE
|
应用案例
|
华盛顿哥伦比亚特区政府的管理服务现代化项目(ASMP);Banca IMI银行;费城儿童医院;Powergen公司[5]
|
日本丰田公司;法国兴业银行[6]
|
卡内基梅隆大学-移动商务实验室OWL推理引擎(OWL inference engine)实现;Protege 的本体编辑器(Ontology Editor)和知识引擎框架(knowledge-engineering framework);开源项目J2EE-Rules
|
4 结束语
通过以上对比分析可以看出,CAPS功能有限,应用不具有普遍性;Drools提供了近乎完备的开发环境和部署管理环境,规则语法相对简单,支持通过自然语言来表达,同时Drools商业用途不收费,但Drools对于大数据量的规则的处理性能还有待验证;Jess较为轻量,核心推理算法采用改进的Rete算法,能够实现快速高效的规则推理,提供了基于Eclipse平台的开发工具JessDE,简单易用。但Jess规则描述文件中不能直接嵌入Java 代码,不能实现与Java系统的无缝集成。在实际应用中用户需要综合考虑应用场景中对集成、性能和授权方式等方面的需求选择适合的规则引擎技术。
参考文献
[1]Daniel Jobst,Rainer von Ammon, Benjamin Gebauer. Business Rules Engines Within EnterprisePlatforms [EB/OL]. 2005-07-19. http://dev2dev.bea.com.cn/techdoc/2005071901.html,2005.
[2]缴明洋,谭庆平.Java规则引擎技术研究[J].计算机与信息技术.2006,(3).
[3]Ingrid Marson. JBoss公司垂青Drools[EB/OL]. http://www.builder.com.cn/2005/1223/224211.shtml,2005.
[4]Peter L. Drools ExpertUser Guide[Z]. http://docs.jboss.org/drools/release/5.2.0.M2/drools-expert-docs/html_single/index.html,2011.
[5]Sun. Sun SOA架构和组合应用平台软件(CAPS)综述[EB/OL]. http://tech.ccidnet.com/art/3089/20060425/524687_1.html,2006.04.25.
[6]JBoss. DroolsDocumentation[EB/OL]. http://downloads.jboss.com/drools/docs/4.0.3.15993.GA/html_single/index.html#d0e4372,2011.
[7]JSR-000094 Java(TM)Rule Engine API 1.0a Final Release[EB/OL].http://java.sun.com/developer/technicalArticles/J2SE/JavaRule.html,2009.
[8]Ernest J.Friedman-Hill.Jess? The Rule Engine for the Java? Platform[M]. http://www.jessrules.com/,2008.
2/2 首页 上一页 1 2 |