我们正在购买业务规则引擎。我们希望使我们的核心应用程序可针对具有略微不同要求的不同客户进行定制。真正进行定制的人是分析师。即技术熟练的非程序员(通常具有科学学位)。
评估业务规则引擎的标准是什么?有开源的和商业的吗?您在易用性、文档、支持、价格等方面有何经验?
我们的应用程序是 Java 语言。
我们正在购买业务规则引擎。我们希望使我们的核心应用程序可针对具有略微不同要求的不同客户进行定制。真正进行定制的人是分析师。即技术熟练的非程序员(通常具有科学学位)。
评估业务规则引擎的标准是什么?有开源的和商业的吗?您在易用性、文档、支持、价格等方面有何经验?
我们的应用程序是 Java 语言。
我在业内领先的规则引擎担任顾问近三年。您将为商业规则引擎支付大量资金,并且需要确定您可能获得的功能和支持是否物有所值。所有规则引擎供应商都会声称他们是最好的;我能给你的最好建议是用你正在考虑的每个规则引擎做一个原型,它的范围有限,但代表了你需要的功能。不要让销售人员只是给你看一个花哨的演示;您应该积极构建原型。我见过太多人购买了一个真正不知道他们购买的是什么的规则引擎。就个人而言,如果您对规则引擎有兴趣,我会选择其中一个开源规则引擎(有人已经提到过 Drools)。然而,我会认真考虑与规则引擎一起不使用规则引擎的可能性。最初使用规则引擎(忽略学习曲线)可能会节省时间,但从长远来看,自定义解决方案可能会更好地满足您的特定需求。
以下是 Martin Fowler 网站上与您的问题相关的几个链接:
Drools(以前是 Drools,后来是 JBoss Rules,又是 Drools)是一个非常好的开源规则引擎,绝对值得一看。
在我看来,评估规则引擎的最佳标准是:
一些规则引擎具有业务规则管理系统 (BRMS),Drools 也不例外。这使得非技术人员的部署更加容易。
通过网络上的文档和教程,甚至通过 IRC 频道,对 Drools 有很好的支持。
我还使用了 IBM Websphere Process Server 附带的规则引擎,发现它也非常好(尽管价格昂贵)。
我与许多商业供应商合作,与马丁不同,我与他们的很多客户交谈。现实情况是,业务规则管理系统在第一个项目中发挥作用并回报了在学习曲线等方面的投资,早在减少维护和增加业务用户的好处开始发挥作用之前。Drools 作为开源解决方案和领先的解决方案非常出色商业产品有: IBM/ILOG Rules(.Net、Java 和 COBOL) FICO Blaze Advisor(.Net、Java 和 COBOL) InRule Technology (.Net) Innovations Software (Java) Oracle 和 SAP 在其平台中都有规则引擎越来越完整。我在http://jtonedm.com/category/product-news/上查看了很多新版本以及少数产品
Forrester 有一份关于我推荐的业务规则的不错的 wave 报告,并且在我的网站上有一篇讨论它的帖子(我会链接到该帖子,但 stackoverflow 不会让我添加第二个链接) - 如果您需要答案,请与我联系。
许多人决定他们想要一个规则引擎,他们想要的是一个完整的工作流管理过程,其中包括作为执行管道一部分的规则引擎。
工作流是动作的有向图。动作是发生的事情,例如规则集、计算、甚至网络服务调用。您应该能够有一个可以调用其他工作流的操作。
This allows your business analysts to do entire-process implementations, not just do simple if-then-else (hah, some commercial rule engines can't even do else! see the comment about evaluating options before deciding) rules, be it simple sequential rules or FCIRE (forward chaining inference rule engine). Most business analysts find simple sequential rulesets easier to think about. It needs to be done at the workflow level because the third parties that the BAs interpret into rules have a tendency to change their entire decision/acceptance/rejection/domagick processes with very little notice.