2

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

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

我想知道这样的环境是否会扩展,是否有一个基准或现实世界的例子,有人在这种情况下使用了流口水。

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

欢迎对有关此可扩展性问题的基准或规则引擎比较发表任何评论。我也很高兴听到每个客户都有自己的规则和数据集可以处理的实际实现。

4

2 回答 2

1

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

希望能帮助到你

于 2013-08-20T19:18:03.260 回答
1

作用于传感器数据是“复杂事件处理”的示例之一。以下链接可能会对该主题提供更深入的了解。

Drools Fusion也能够进行 CEP。

于 2013-08-21T10:30:58.130 回答