2012-08-07 112 views
4

我們正在使用JBoss Drools來外化一些特別容易改變我們正在構建的某些服務中的業務邏輯。使用UI編寫JBoss Drools規則

如果我們的開發人員可以創建和維護這些規則,那麼這個規則工作得很好,而且我們具有良好的集成度和集成工作流程。

我們希望將其用途擴展到具有非常高級別的自定義要求的新服務。本質上是一個「專家用戶」需要能夠以兩種不同的設置規則:

  1. 「標準」的規則 - 這些都是我們知道的是常見的要求,我們可以建立設定UI幾乎隱含規則例如只允許某些操作發生在兩個日期之間等等。

  2. 「自定義」規則 - 完全離開牆壁要求,雖然我們可以嘗試並預期我們寧願讓人們編寫和測試自己的規則,以反對:)

我的問題是,是否有可能(而且確實是那裏有什麼爲例)使用Drools的兩個1 & 2?基本上,有一個固定的UI應用程序作者Drools有效的規則,並有一個「自由文本」規則編輯器嵌入在我們的用戶界面?

任何建議表示讚賞!

回答

7

您有幾個選項。對於(2),您可以簡單地將來自Guvnor的規則編輯器嵌入到您的Web應用程序中。 Guvnor的所有編輯都是可嵌入的組件,因此您可以選擇要使用的內容以及不使用的內容。我在這種方法中看到的問題是,您可能會給用戶太多的權力:)。換句話說,基於模型編寫任何規則的能力需要通常只有技術用戶才知道的規則。例如,編寫測試來驗證規則。一些商業用戶對此有足夠的技術知識,但我想說這可能是例外,而不是規則。

我喜歡什麼和建議大部分的時間是開發自己的特定領域的圖形用戶界面,使用/公開所熟悉的企業用戶和編寫規則爲其特定認爲「有意義」的方式概念和術語工作。有時候,他們甚至不知道他們在寫「規則」,但他們會。在幕後,您的應用程序將從域特定GUI接收輸入,並使用drools API或基於字符串的模板動態生成規則。這解決了您的(1)要求,但也可能足夠強大以解決(2)。

+0

謝謝,我不認爲你有任何關於如何使用Drools API構建規則的例子已經應用到了任何地方嗎?我認爲做快速和骯髒的字符串模板可能是唯一的方法 - 但是如果有一個體面的結構化API更具吸引力。 – 2012-08-11 13:28:35

+0

API是這裏: https://github.com/droolsjbpm/drools/tree/master/drools-compiler/src/main/java/org/drools/lang/api 你可以找到在這裏的集成測試: https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/lang/api/DescrBuilderTest.java – 2012-08-11 13:30:34

+2

@EdsonTirelli:看起來好像鏈接已損壞,您可以將它指向更新的位置嗎? – buch11 2014-03-28 13:59:30