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

时间:2013-08-20 14:02:40

标签: drools business-rules rule-engine

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

希望有所帮助

答案 1 :(得分:1)

对传感器数据进行操作是“复杂事件处理”的示例之一。以下link可能会对此主题有更深入的了解。

Drools Fusion也有能力进行CEP。