目前最好的商用规则管理系统BRMS是ILOG JRules,最普遍使用的开源规则引擎是Drools,Java规则引擎的规范是JSR94,分别简要介绍如下:
(1)ILOG JRules
ILOG JRules 是ILOG 的旗舰级企业规则引擎产品,ILOG JRules 本身是一个灵活的BRMS(Business Rule Management System),涵盖了业务规则的整个生命周期。ILOG JRules 内的规则引擎是J2EE应用程序,可以部署到任何J2EE项目。另外,ILOG能轻松集成到IDE环境中,可以利用Java控件调用规则引擎。
ILOG JRules定位在高端的BRMS市场,据IDC报告,ILOG的市场份额在30%左右,位居第一,与全球领先厂商实现了集成(IBM,BEA,Oracle,FileNet,……)。
ILOG于2009年1月被IBM收购,成为IBM WebSphere产品家族的重要成员。
(2)Drools
Drools 是用 Java 语言编写的开放源码规则引擎,基于Apache协议,于2005年被JBoss收购,目前版本是5.0.1,Drools从5.0后分为四个模块:
- Drools Guvnor (BRMS/BPMS)
- Drools Expert (rule engine),
- Drools Flow (process/workflow)
- Drools Fusion (cep/temporal reasoning)
其中Expert 是传统的规则引擎,Guvnor是一个完整的业务规则管理系统。Drools的主要功能及特点有:
- 使用 RETE算法对所编写的规则求值;
- 具有Web2.0 Ajax特性的用户友好的Web界面;
- 通过向导编辑器与文本编辑器,规则的作者更容易修改规则;
- 支持规则调试;
- 支持规则流;
- 自带一种非XML格式的规则语言DRL,并且通过DSL(域规则语言)支持自然语言的扩展;
- 支持xls或csv文件格式的决策表;
- 可版本化,你可以很容易的使用之前保存的版本替换现在的一套规则;
- 与JCR兼容的规则仓库;
- 提供了一个Java规则引擎API(JSR94)的实现;
(3)JSR94
Java规则引擎API由javax.rules包定义,是访问规则引擎的标准企业级API。Java规则引擎API允许客户程序使用统一的方式和不同厂商的规则引擎产品交互,就像使用JDBC编写独立于厂商访问不同的数据库产品一样。