java 评估业务规则引擎的标准

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/776901/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-29 13:43:40  来源:igfitidea点击:

Criteria to Evaluate Business Rules Engines

javaenterpriserule-enginebusiness-rules

提问by flybywire

We are shopping for Business Rules Engines. We want to make our core application customizable to different customers with slightly different requirements. The people who would actually do the customizations are analysts. I.e. non-programmers who are technically skilled (usually have a degree in sciences).

我们正在购买业务规则引擎。我们希望让我们的核心应用程序可以针对具有略微不同要求的不同客户进行定制。实际进行定制的人是分析师。即技术熟练的非程序员(通常具有科学学位)。

What are the criteria to evaluate business rules engines? Are there open source and comercial ones? What are your experiences in ease of use, documentation, support, price, etc.

评估业务规则引擎的标准是什么?有开源的和商业的吗?您在易用性、文档、支持、价格等方面有何经验?

Our app is in Java.

我们的应用程序是用 Java 编写的。

回答by Aaron

I worked as a consultant for a leading rule engine in the industry for close to three years. You will pay a LOT of money for a commercial rule engine and need to decide if the features and support you potentially receive are worth the price. All rule engine vendors will claim theirs is the best hands down; the best advice I can give you is to do a prototype with each rule engine you're considering that is limited in scope, but representative of the features you need. Do NOT let sales people just show you a fancy demo; YOU should actively build the prototype. I have seen too many people buy a rule engine that really have no idea what it is they're buying. Personally, I would opt for one of the open source rule engines (someone has already mentioned Drools) if you have your heart set on a rule engine. However, I would seriously consider alongside rule engines the possibility of not using a rule engine. You may save time initially with a rule engine (ignoring the learning curve), but a custom solution is likely to be superior in the long term to meet you specific needs.

我在业内领先的规则引擎担任顾问近三年。您将为商业规则引擎支付大量资金,并且需要确定您可能获得的功能和支持是否物有所值。所有规则引擎供应商都会声称他们是最好的;我能给你的最好建议是为你考虑的每个规则引擎做一个原型,它的范围有限,但代表你需要的功能。不要让销售人员只是给你看一个花哨的演示;您应该积极构建原型。我见过太多人购买了一个规则引擎,但他们真的不知道他们在购买什么。就我个人而言,如果您对规则引擎一心一意,我会选择其中一种开源规则引擎(有人已经提到 Drools)。然而,我会认真考虑与规则引擎一起不使用规则引擎的可能性。最初使用规则引擎可能会节省时间(忽略学习曲线),但从长远来看,自定义解决方案可能会更好地满足您的特定需求。

Here are a couple links from Martin Fowler's website that are relevant to your question:

以下是 Martin Fowler 网站上与您的问题相关的几个链接:

回答by Damo

Drools(used to be Drools then JBoss Rules then Drools again) is a very good open-source rules engine and definitely worth a look.

Drools(曾经是 Drools,然后是 JBoss Rules,然后是 Drools)是一个非常好的开源规则引擎,绝对值得一看。

To my mind the best criteria to evaluate a rules engine are:

在我看来,评估规则引擎的最佳标准是:

  • Is it configurable (otherwise you'd just code it instead)
  • Is it performant.
  • How easy is it for non technical people to change rules
  • How easy is it for new rule sets to be deployed (and old ones undeployed).
  • 它是否可配置(否则您只需对其进行编码)
  • 它的性能。
  • 非技术人员改变规则有多容易
  • 部署新规则集(以及取消部署旧规则集)有多容易。

Several Rules Engines have Business Rules ManagementSystems (BRMS) and Drools is no exception. This makes deployment much easier for non-techies.

一些规则引擎具有业务规则管理系统 (BRMS),Drools 也不例外。这使得非技术人员的部署更加容易。

There is good support for Drools via docs and tutorials on the web and even via the IRC channel.

通过网络上的文档和教程,甚至通过 IRC 频道,对 Drools 有很好的支持。

I've also used the Rules Engine that comes with IBM Websphere Process Server and found that to be quite good as well (although pricey).

我还使用了 IBM Websphere Process Server 附带的规则引擎,发现它也非常好(虽然价格昂贵)。

回答by James Taylor

I work with a lot of commercial vendors and, unlike Martin, speak to a lot of their customers. The reality is that business rules management systems do work and repay the investment in learning curve etc in the first project, long before the benefits of reduced maintenance and increased business user involve start kicking in. Drools is excellent as an open source solution and the leading commercial products are: IBM/ILOG Rules (.Net, Java and COBOL) FICO Blaze Advisor (.Net, Java and COBOL) InRule Technology (.Net) Innovations Software (Java) Oracle and SAP both have rules engines in their platforms that are more and more complete. I review a lot of new releases as well as minority products at http://jtonedm.com/category/product-news/

我与许多商业供应商合作,与 Martin 不同,我与他们的许多客户交谈。现实情况是,业务规则管理系统在第一个项目中确实有效并回报了学习曲线等方面的投资,早在减少维护和增加业务用户的好处开始发挥作用之前。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 has a nice wave report on business rules that I recommend and there is a post on my site discussing it (which I would link to but stackoverflow won't let me add a second link yet) - contact me if you want answers.

Forrester 有一份关于我推荐的业务规则的很好的 wave 报告,我的网站上有一篇讨论它的帖子(我会链接到它,但 stackoverflow 不允许我添加第二个链接) - 如果您需要答案,请联系我。

回答by JeeBee

Many people decide that they want a rule engine, and what they want is an entire workflow management process that includes rule engines as part of the execution pipeline.

许多人决定他们想要一个规则引擎,他们想要的是一个完整的工作流管理过程,其中包括作为执行管道一部分的规则引擎。

A workflow is a directed graph of actions. Actions are things that happen, e.g., rulesets, calculations, web service calls even. You should be able to have an action that can call other workflows.

工作流是动作的有向图。动作是发生的事情,例如,规则集、计算、甚至网络服务调用。您应该能够拥有一个可以调用其他工作流的操作。

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.

这允许您的业务分析师进行整个流程的实现,而不仅仅是简单的 if-then-else(哈,一些商业规则引擎甚至不能做 else!请参阅有关在决定之前评估选项的评论)规则,无论是简单的顺序规则或 FCIRE(前向链接推理规则引擎)。大多数业务分析师发现简单的顺序规则集更容易思考。它需要在工作流级别完成,因为 BA 解释为规则的第三方倾向于在很少通知的情况下更改他们的整个决策/接受/拒绝/domagick 流程。