目前,我正在开发RESTful Web服务,并且要求我需要实施许多方案来验证客户业务是否有效。如果这些方案在验证过程中无效,则服务必须通过REST服务抛出服务异常(例如400)。
所以,在这一点上,Drools和jBPM对我来说都是新的。我应该选择哪些方法来有效地处理这些场景并更好地与我的RESTful Web服务集成,以便更好地实现我的目标?
如果有可用的样本资源,我将不胜感激。
谢谢!
答案 0 :(得分:1)
IMO,这个问题更适合Software Engineering site,但由于我无法标记移动它的问题(因为它有赏金),我会快速刺伤根据以往的经验,希望我的回答可以帮助你。
我有与Drools合作的经验。您可以快速输入规则,但Drools无意中最终会做的是混淆开发团队(以及其他所有人)的核心业务逻辑,因为规则只是在系统中很容易使用。我在一个伟大的团队中工作,使用Drools作为核心引擎,团队中的每个人都避免使用它,因为那里的规则是不可测试的(因为你无法真正单元测试Drools规则)。请注意,这是一家知名公司的高技能工程师团队。由于机密性,我不打算详细介绍。因此,开发人员只是避开了业务关键系统中最关键的方面。
我没有直接使用jBPM的经验,但它的目标是对开发人员和业务用户都有用,这很好。但是,无论它有多好,你都会很难在任何类型的第三方系统中测试任何逻辑。
另一个潜在的选择是根本没有第三方选项,只需手动编写逻辑代码。虽然对业务用户不友好,但如果您输入系统的规则非常重要,并且他们拥有一套全面的回归测试非常重要,那么这可能是您的选择。
因此,如果可以,我会尝试手动编写规则和业务逻辑代码,但如果您被迫选择jBPM或Drools,请尝试使用jBPM。但我想说只有你知道你正在开发的要求。研究jBPM。研究流口水。通过文档了解它们最适合的内容,并了解各自社区的活跃程度。此外,创建原型以了解您使用它们是多么容易。这就是你真正想要找到问题答案的方式,而不是让编码员的投票系统说出来#34;我最喜欢这个!"。祝你好评。
答案 1 :(得分:1)
Drools主要是business rule引擎,这意味着它可以在满足某些条件时用于执行一小段代码。另一方面,jBPM是一个工作流引擎,能够执行business process,这是为了实现某个目标而需要完成的一系列操作。看看这两个领域的描述,以便更好地了解它们是什么,哪个更适合您的项目。
由于您已经提到有一些验证流程,我可能会选择jBPM。但很难理解这些场景的确切含义以及您将如何进行验证。