2014-10-12 28 views
0

我設計應該有能力規則庫啓用了Java的工作流系統

  1. 獲取從數據庫中給定的輸入相關記錄的通用系統。
  2. 獲取適用於給定輸入的規則集。
  3. 基於規則的過濾器記錄。

我想象我的系統,以保持規則的執行本身,而不是委託給一個規則引擎像Drools的,所以 - 我需要可用庫的投入 - 這將讓我來存儲/添加/更新/ MANAGE_CONFLICTS最後FETCH_RELEVANT規則。

問題:可用庫創建規則庫並允許快速搜索它們?

 
    _________________   ___________   __________________________ 
    |     | fast |   |  |       | 
    | Workflow System |--------| Rule Base |--------| User interface for rules | 
    |_________________| search |___________|  |__________________________| 

用例:想象一個以節點爲城市和邊緣作爲連接的圖。兩個節點可以通過幾個邊(火車,空中,道路等)連接,每個邊都有自己的成本和時間限制。輸入是源節點和目標節點。規則可能類似於:在城市X支付octroi費用,僅當道路和火車路線不可用時,優選X和Y之間的空中路線等。

PS:我的工作流程將從樹形圖中獲取輸入數據目標對)。然後,它將應用適用於每個節點的一組規則,每條邊都在連接源目標的路徑上。

PS:我經歷了CS中的開放問題,例如樹狀/圖形上的多模式需求流問題,這些NP問題很難且定義相似,但是我的系統試圖解決問題,即使它是次優解決方案。

+1

根據可接受的格式,這不是一個問題。特別是,用您明確排除在設想的解決方案中的「Drools」標記是誤導性和令人討厭的。 – laune 2014-10-12 15:27:24

+0

嘿 - 道歉,如果這是誤導。事實上 - 我想 - 那些使用Drools的人可以幫助我解決項目開始時他們所考慮的其他選項。 – DanglingPointer 2014-10-13 03:35:06

回答

-1

您可以檢查Rulette是否符合您的目的。它在您的應用程序中「運行」,規則可以在MySql中輕鬆配置。

編輯

你可以做到這一點

  1. 添加rulette核到你的項目的依賴。
  2. 按文檔說明設置rulette。
  3. 規則輸入可以是源城市,dest。城市和旅行模式(只通過你給出的例子),他們的組合映射到不同的規則輸出。
  4. 對於規則輸出,您可以使用映射到代碼中執行程序類的字符串(或任何其他ID)。這些類包含做需要做的事情的業務邏輯。

這應該解決您在規則評估中保持您的應用程序的意圖,並保持實際活動與調用規則分離。

+0

這不提供問題的答案。一旦你有足夠的[聲譽](http:// stackoverflow。com/help/whats-reputation)你將能夠[對任何帖子發表評論](http://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/12513483) – pinkpanther 2016-05-29 21:45:25

+1

編輯答案是更全面一點。 – 2016-05-29 21:57:42