Drools 用于多客户端 Web 应用程序可行吗?

标签 drools business-rules rule-engine

我正在开发一个基于网络的多客户端应用程序,该应用程序分析传感器数据,并使用规则引擎调用基于此数据的操作。 该应用程序的每个客户端都有一组环境传感器(10 - 100 秒)和一组每次传感器值变化时要评估的规则(传感器值被复制到数据库中)。 一组基本规则通常会被不同的客户端重复使用,但这些规则针对每个客户端单独参数化(例如,时间相关),并且每个客户端具有不同数量的传感器和规则,可以单独配置。有些规则甚至可能特定于单个客户。

我相信 drools 可能是这样的实现的一个不错的选择 - 使用 drools guvnor 来管理每个客户端的规则。每个客户都有自己的知识库和规则执行 session 。

我想知道这样的环境是否可以扩展,以及是否有一个基准或现实世界的例子,其中有人在这种情况下使用了 drools。

我能找到的大多数基准测试都是通过对越来越多的事实执行规则的能力来评估不同的规则引擎。我的场景中的事实数量将相对稳定(每个客户端),并且可扩展性宁愿受到客户端数量以及许多知识库和 session 的并发应用程序的限制。

欢迎对有关此可扩展性问题的基准测试或规则引擎比较提出任何评论。我也很高兴听到现实世界的实现,其中每个客户都有自己的规则和数据集可供使用。

最佳答案

基准的主要问题是,它们会根据您为自己的域编写的具体规则而有很大差异。大多数基准测试都经过调整,以便在正在测试的规则引擎中表现更好。如果每个客户端都有一个 session 并且客户端数量稳定,那么您将不会遇到任何问题。一旦获得项目的初始版本,您就可以微调引擎以提高性能。 在我看来,最“困难”的事情是让基础设施正确,我的意思是,何时创建 session 以及如何为每个客户端选择规则。因为这是您特定域的一部分,所以您需要对其进行编码并管理所有 session 。

希望对你有帮助

关于Drools 用于多客户端 Web 应用程序可行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18337078/

相关文章:

drools - Drools 中的 Mvel 方言是什么?

drools - 解决流口水问题 xls

java - 为什么我们不能用 Java 文件而不是 .drl 文件来编写业务规则?

php - DDD - 如何处理应用层中的获取或创建逻辑?

java - 在 drools 的列表中收集事实的任何特定属性值

java - Drools HelloWorld 示例全新安装抛出空指针

java - 从 Drools 规则执行 bpmn 文件

java - 业务逻辑 : moving from stored procedures to BRMS. 优缺点

dynamic - 开发人员如何让业务用户定义应用逻辑?

java - Drools 嵌套聚合