另一个人没有在实践中有什么好处呢?我理解他们所做的事情,但他们在实际使用中的局限性和能力是什么?我正在考虑Drools vs一个新的AI项目的java prolog,但对其他建议持开放态度.在复杂的关系数据集或替代方案上进行推理有哪些流行的方法?
我们正着手开发一个模块,根据某些标准生成一些建议.标准将采用业务规则集的形式,因此我正在考虑使用业务规则引擎,如Drools(开源和Java :-))
我们需要快速学习Drools(2-3周)并能够使用JBoss Drools实现规则.我们应该遵循哪些文章,教程,书籍,最佳实践?
我不是Drools专家.不过,我对它有一些熟悉,通过试验它.我无法理解,为什么我需要它.
我的典型应用是商业Web应用程序.是的,他们确实有一些规则.但这些是使用数据库表,SQL查询和一个很好的用户界面实现的,以便业务用户修改规则.规则不是任意的,它们在投入生产之前都经过仔细考虑.
我的商业用户永远不会使用(Drools)脚本语言来修改任何东西.单独修改规则.他们非常高兴使用UI屏幕来修改规则.另外,如果我让它们靠近它,它们可以在Drools文件中产生无数的语法错误.
再次
- 为什么我应该在这种情况下使用Drools?
- 我见过的Drools狂热分子坚持认为我应该改变我的所有代码以利用Drools.
那么,Drools有用吗?我不确定.
我们有业务要求让高级用户编辑保险费率和注册规则.我们需要一个web ui,让他们说"这个产品只适用于人们<55,除非他们来自德克萨斯州并拥有一只贵宾犬"或其他什么.编辑澄清:保险是疯了.规则因产品,州与州而异,并且不断变化.
我们查看了几个规则引擎,但商业规则引擎是100K +,开源代码似乎不是,完成了.如果我们提前创建规则,Windows Workflow会起作用,但在运行时构建它们似乎需要绕过代码访问安全性.那太可怕了.
我们难以重新发明这个轮子吗?对.net有更好的选择吗?
我最近开始将我的应用程序 JDK 版本从 jdk1.7.0_121_x64 升级到 jdk1.8.0_202_x64。我有一些使用 Drools 5.4.0.Final 的遗留代码。此代码适用于 JDK 版本 jdk1.7.0_121_x64,没有任何问题。
Maven 依赖项是:
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>5.4.0.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-decisiontables</artifactId>
<version>5.4.0.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
DRL 文件加载为:
final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(resource, ResourceType.DRL);
knowledgeBase.addKnowledgePackages(kbuilder.getKnowledgePackages());
Run Code Online (Sandbox Code Playgroud)
我知道在 JDK 8 中使用 Drools 存在问题。我参考了其他SO 线程开始。
当我构建我的应用程序并使用 JDK 8 执行 Junit 测试时,测试失败并出现错误:
testRunRule(com.company.app.RuleTest) Time elapsed: 0.073 sec <<< ERROR!
java.lang.RuntimeException: java.lang.RuntimeException: wrong class format
at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.java:372)
at org.drools.commons.jci.compilers.EclipseJavaCompiler$2.createNameEnvironmentAnswer(EclipseJavaCompiler.java:287)
at org.drools.commons.jci.compilers.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:258)
Run Code Online (Sandbox Code Playgroud)
正如SO 线程中提到的,我找到了对这个错误修复票DROOLS-329 的引用。
基于此错误修复票中提到的方法,我尝试使用 …
JavaScript中是否有任何规则引擎?
问题出在这样的背景下:
在提交表单之后,在服务器端也应用相同的业务逻辑,尽管是在Java中,以防止在浏览器端发生任何意外/操作.
现在,如果我们有一个JSR 94/Drools/JRules规则引擎可以在Java和JavaScript中执行规则,那不是很好吗?使用这样的规则引擎,我可以避免硬编码我的规则,并且我还保留了客户端和服务器端验证的灵活性
(PS:我已经尝试过AJAX路线并且看到应用程序响应速度慢很多,因此很难向习惯于手动编码的纯JavaScript版本的用户销售.)
我正在寻找一个好的规则引擎.
我看到它存在两个很好的项目:JBPM和Drools.
我真的不明白两者之间的差异,我不知道什么是理想的工具.
您能否向我提供更多信息以及您对其中一个或另一个的体验,以及您认为最适合管理业务规则的内容.
我目前正在搜索适用于.NET的规则引擎.我们的逻辑很简单,+, - ,*,/,和/或基本的操作顺序.但是,我们需要将此信息存储在数据库中,然后在从数据库中提取新版本时生成规则文件.因此,除非其中一个具有Web版UI编辑器,否则常见的UI编辑对我们来说将毫无用处.
所以我的问题是,鉴于我所说的,在编程配置和与ASP.NET集成方面,这将是我们最好的规则引擎.