我应该使用什么规则引擎?

时间:2008-08-09 04:34:29

标签: language-agnostic rule-engine

什么是最好或最受欢迎的规则引擎?我还没有选择编程语言,所以告诉我规则引擎以及它支持的编程语言。

10 个答案:

答案 0 :(得分:8)

我是Drools的作者之一,我会避免拉扯我的商品。

但是其他一些选项是Jess(不是开源),但使用了剪辑语法(我们也支持其子集) - 这有点像lisp方言。

这真的取决于你想要的东西,Haley拥有强大的自然语言技术(他们最近获得了RuleBurst--他还有一些有趣的自然语言技术可以处理带有嵌入式规则的文字文档 - 例如法律文件)。 RuleBurst也能够以.Net运行时为目标(还有一个Drools.net“端口”可用 - 我还没有看到它最近发生了什么,唉,没有足够的时间)。好的,我现在就把我的皮条客送走了...抱歉。

答案 1 :(得分:4)

这是Martin Fowler写的一篇很棒的文章,它讨论了规则引擎何时有用。你可能会发现它很有帮助。

http://martinfowler.com/bliki/RulesEngine.html

答案 2 :(得分:4)

根据您的要求,Windows Workflow Foundation(.NET 3.5)可能值得一看。

.NET规则引擎InRule支持WF和BizTalk;我没试过,所以不知道它是否有用。

答案 3 :(得分:2)

我对Haley Expert Rules和Haley Office Rules都有一些经验。两个不错的系统,但我需要更多地了解你想要用它们来确定答案(参见http://www.haley.com

他们都支持C#和Java(我认为也是一个Web服务API)。

两者之间的区别主要在于您想要进入多少自然语言建模。 Office规则允许业务用户在Office文档中编写规则,并且主要关注立法需求建模。专家规则在定义如何处理自然语言方面可以更灵活,但需要更多的工作来预先定义语言结构。

希望其中一些有用。

答案 4 :(得分:1)

对于非常好理解的程序规则(如资格规则,保险规则,审计规则等),使用域特定语言的简单决策表可以为您提供性能和简单性,而无需基于RETE的引擎的开销。

可以在DTRules

找到此类Java开源规则引擎

答案 5 :(得分:1)

我们同时使用了http://jatha.sourceforge.nethttp://www.jboss.com/products/rules。它们都非常好,但在大多数情况下,JBoss规则在我看来对于人们的很多事情来说都是过度的。它们都是基于Java的。

值得记住Greenspun's Tenth Rule of Programming并跳过导入它:)

答案 6 :(得分:1)

checked out JBoss Rules又名Drools,它看起来很不错。我很想听到人们在制作中使用它,因为我可能在我当前的项目中也需要一个规则引擎。

答案 7 :(得分:1)

Inrule see website非常好!

它是一个基于.NET的规则引擎,具有可靠的SDK和非技术用户的优秀UI。 过去对我很有帮助 - 几乎把我的开发成本降低了一半。

答案 8 :(得分:1)

我发现了另一个支持不同规则的规则引擎;程序,推理(RETE)和FlowRule。这是非常灵活和可扩展的规则引擎(也是事件驱动的)。他们之前的版本是免费版。

查看http://www.flexrule.com

答案 9 :(得分:0)

WF已在.net 3.0中提供。虽然在Visual Studio的Designer端有点麻烦但可能会变得非常混乱。我在Sharepoint上使用它(其中WF几乎是你唯一的选择)而且整体而言我对它非常满意,即使学习曲线相当陡峭。

Foundations of WF是一本很好的书,从头到尾实现了一个完整的解决方案,并解释了它背后的概念。