規則引擎--visualrules 商業規則定製平臺的適用範圍

VisualRules的提出是爲了解決目前軟件項目因爲客戶需求的不斷變動,造成項目延期或者維護成本居高不下等問題。VisualRules的使用可以有效的減少軟件設計和開發的工作量,使得軟件項目所需要人手大大降低,有效的減少了項目溝通的問題以及項目管理的難度。同時VisualRules使得極少的維護人員就可以擔當起幾個項目的維護,部分維護工作可以直接由客戶擔當,有效的控制了維護成本。因此VisualRules最適應於那些需求容易發生變化或者需求最初分析不清的軟件項目。

就技術層面而言,需求的變化涉及到三個層面的變化:業務邏輯層,這是業務需求最容易變化的部分,用戶可能會要求定期就發生變化;數據庫層,這一層的變化最小,因爲業務數據結構一般都不會輕易發生變化,但是如果某些數據庫對象參與了業務邏輯的計算過程,必須用於配置一些參數,那麼這些數據結構也容易發生變動;界面層,界面層在前期項目開發階段變化大,後期維護階段變化相對較少,一般涉及是數據篩選和校驗邏輯的變化。

VisualRules的目標就是使軟件項目可以隨着用戶需求的變化而變化,因此VisualRules分別從以上三個層面讓軟件項目支持需求的變化。下面分別描述以上三個層面,原先通用的做法以及基於規則平臺的解決方法。

對於業務邏輯層,原先通用的做法是採用Struts的form等來定義數據接口,採用Action類來操作業務邏輯。或者是採用Bean來定義數據接口,採用Spring來定義接口,然後用實現類來定義具體的處理邏輯。這種做法使得業務邏輯發生變化時,需要去對應的修改實現類中的代碼,然後調試、測試、打包、發佈。採用這種方式有幾個弊端:1、變動必須修改代碼,因此比如高級程序員纔敢改,而且改了發佈必須重啓服務。2、業務邏輯綁定了框架,如果框架(如Struts、Spring)遭淘汰,那麼原先項目代碼將很難重用。這些都使得業務邏輯的修改變得複雜。

VisualRules提供了規則配置器,可以來設置業務邏輯層所需要的定義的數據處理邏輯以及數據庫操作邏輯。VisualRules將這些配置的邏輯可以直接翻譯成java代碼並自動編譯。同時提供規則引擎來動態的調用對應的業務邏輯規則包。基於VisualRules,數據接口不再需要用Form或者Bean類來定義,而是通過一個動態的Map來和規則包進行交互,業務邏輯不再寫在代碼中,而且存儲在規則庫中,調用時會自動編譯生成對應的java代碼。這樣業務邏輯的實現脫離了框架,使得業務邏輯在將來技術的升級時,可以最大限度的得到複用。同時也方便了業務邏輯的維護和修改,發佈時也不用再重啓服務。

對於數據庫層,原先通用的做法是採用Hibernate或者IBatis等實現數據庫對象的接口。這樣一般都需要維護一個數據對象的XML描述,以及自動生成的一些java代碼。Hibernate的採用簡化了數據庫層的操作,使得用戶只需維護XML中的一些結構信息,就可以直接操作表。但是Hibernate等技術也帶來了一些問題,比如性能問題,依賴問題、數據庫特性問題等。最顯而易見的,當數據結構變動時,需修改或生成對應的XML,然後發佈也需要重啓服務。VisualRules自動從數據庫讀取字段信息,並且採用List來存儲,因此可以使用公共的接口類實現數據庫對象的實現。採用VisualRules的數據庫接口,可以實現數據庫的變化發佈後無需重啓服務器。並且可以直接調用數據庫表、視圖和存儲過程,也可以自定義SQL語句,使用數據庫的一些特性語法。

對於頁面層,現在頁面處理基本有兩種處理方式,一種是傳統的頁面跳轉方式,這種方式一般用Struts等來控制跳轉,在每個跳轉的頁面中定義頁面展現邏輯;還有一種是基於AJAX提交的方式,這種方式可以採用DWR等直接調用後臺的邏輯代碼,然後返回數據,數據解析以及展現邏輯完全有一個頁面控制。我們不推薦採用第一種方式來處理頁面層,因爲修改Struts相關代碼必須重啓服務,不能實現頁面層的動態修改。我們推薦頁面邏輯完全在頁面層中控制,然後通過Ajax直接訪問服務器中的規則包,然後將結果返回到頁面。VisualRules處理提供Ajax調用規則包的程序框架之外,還採用更加簡便的方式來實現頁面層。VisualRules通過頁面配置器,直接配置不同的頁面所需要設定的參數,然後根據頁面模板來生成對應的頁面。因此VisualRules可以爲傳統掉轉方式,生成對應的jsp,也可以根據Ajax提交的特性,生成ext等頁面,或者根據其他的框架來生成對應的頁面代碼。VisualRules生成的頁面代碼上傳到服務器之後,就可以直接應用,而無需重啓服務

因此基於VisualRules進行開發,將每一層最核心的設置單獨提出來配置,簡化了每一層的開發。同時也使得維護和測試階段,修改無需重啓服務。使得業務需求發生變化時,真正實現了軟件的隨需而變。VisualRules使得數據庫層變得動態,增強了業務邏輯配置的功能,簡化了頁面層的開發。以下分不同行業來說明在哪些項目中,可以充分利用VisualRules的這些功能:
金融行業
VisualRules可以用於銀行系統用戶資格審覈、風險分析等項目中,可以用保險項目的核保、險種分析等項目中。
流通行業
VisualRules可以用於商業銷售環節的定價策略的分析,返點政策的配置,銷售預測,人事獎勵機制的設置等。
製造行業
生產排程算法的設定。
電信行業
套餐配置的算法、積分系統等。
在以上這些項目的使用中,充分利用本產品對業務規則的配置功能,實現了這些邏輯的隨時可變。當然在一般的ERP或者企業管理系統中,充分利用本產品對頁面層和數據庫層的簡化功能,實現這類項目的快速開發。


[align=right]來自:[url]http://www.flagleader.com[/url][/align]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章