2013-08-20 36 views
2

我正在研究分析傳感器數據的多客戶端基於Web的應用程序,並應使用規則引擎根據此數據調用操作。 此應用程序的每個客戶端都有一組環境傳感器(10s - 100s)和一組要在每次傳感器值更改(將傳感器值複製到數據庫中)時進行評估的規則。 一套基本的規則通常會被不同的客戶端重複使用,但是每個客戶端的規則都是單獨參數化的(例如時間依賴),每個客戶端都有不同數量的傳感器和規則,可以單獨配置。有些規則甚至可能只針對單個客戶。多客戶端Web應用程序的Drools是否可行?

我相信drools可能是這樣一個實現的不錯選擇 - 使用drools guvnor來管理每個客戶端的規則。每個客戶都有自己的知識庫和規則執行會話。

我不知道這樣的環境是否會擴展,以及是否有基準或真實世界的例子,其中有人已經使用drools這種情況。

我能找到的大多數基準都是通過對越來越多的事實執行規則來評估不同的規則引擎。在我的方案中事實的數量將相對穩定(每個客戶端),而可擴展性將受限於客戶端的數量以及許多知識庫和會話的併發應用。

有關此可擴展性問題的基準測試或規則引擎比較的任何評論值得歡迎。我也很樂意聽到有關每個客戶都有自己的規則和數據集的實際實現。

回答

1

基準測試的主要問題是,它們會根據您爲自己的域編寫的特定規則而有很大差異。大多數的基準測試都在調整的規則引擎中進行了調整。如果每個客戶端都有一個會話,並且擁有穩定的客戶端數量,則您將不會遇到任何問題。一旦你得到你的項目的初始版本,你可以微調引擎來提高性能。 在我看來,最困難的事情就是讓基礎設施正確無誤,就是說,何時創建會話以及如何爲每個客戶選擇規則。由於這是您特定域的一部分,因此您需要對其進行編碼並管理所有會話。

希望它可以幫助

1

作用於傳感器的數據是「複雜事件處理」給出的一個例子。以下link可能會對此主題有更深入的瞭解。

Drools Fusion也能夠CEP。

相關問題