如何在Java EE中实现定价模型 - 通过规则引擎?

时间:2010-04-23 14:33:45

标签: rule-engine

我正在开发一个Java EE 6应用程序,其中“提供者”应该能够为用户定义服务的价格和不同折扣。有许多不同的提供者。每个人提供相同的服务,定价模式可以不同。

价格模型: - 提供商应该能够定义价格,例如每小时,每分钟,每个过程,.... - 提供者应该能够轻松添加条件来定义用户获得的折扣。例如:来自特定用户组的用户获得10%的折扣,使用该服务超过5次的用户获得另一折扣。 - 它应该能够将条件与“AND”或“OR”等逻辑运算联系起来。 - 可能的条件数量应由软件制造商定义。

  • 当用户尝试访问服务时,应显示特定于用户的价格。使用该服务后,特定用户会获得一张发票,其中列出了此服务的总成本。在使用服务时,提供商可以更改定价模型,因此必须有版本号或其他内容。然后,定价模型版本应保存在数据库中。

问题是 - 使用规则引擎解决此规范是否可行且有意义? 提供者应该通过单击和选择来定义没有xml文件或类似内容的条件。我没有使用规则引擎的经验......所以也许有人可以帮我找出最适合问题的解决方案。

1 个答案:

答案 0 :(得分:0)

首先,您需要了解所有可能的变量。您提到了number of times someone has used a servicegroup membership。如果变量集合可以改变,可能会比你想象的还要多。

接下来是必须支持的规则的复杂程度。您可能不需要一个完整的规则引擎。您可以通过简单的表达式评估获得很多,例如,请参阅https://eval.dev.java.net

如果您进行表达式评估,则只需将每个定价模型版本作为自己的字符串存储在数据库或其他内容中。您可能需要点击式规则,但通常书面对应的规则要清晰得多。