規則引擎--visualrules 商業規則定製平臺的特點價值

VisualRules是在規則引擎基礎上發展出來的一款產品,其秉承了規則引擎可以使業務邏輯的變化可以獨立於程序之外的特點,同時結合國內軟件項目的特點,爲數據庫層和界面層也提供了獨立於程序之外配置的特點,因此本產品不光是一個業務規則管理系統,還是一個基於規則引擎的web快速開發平臺。與國際上其他的業務規則管理系統相比,本產品具有以下特點:


順序執行的規則引擎算法
傳統的業務規則管理系統,其規則引擎的算法基本上會採用reta算法,其基本原理是運行階段判斷哪些規則符合條件,然後去決定其執行軌跡,這類似於人工智能的思想,當然其最初出發點也是爲了人工智能判斷。由於業務系統業務邏輯的頻繁變動,因此希望可以利用規則引擎來實現業務規則的配置,因此也就自然將reta算法作爲業務系統中業務邏輯的執行算法。但是這兩者其實是不一致的,業務系統中的邏輯一般是確定的,有着明確指定的執行先後順序的。而reta算法是動態決定順序的,因此在用reta算法描述業務邏輯時,往往顯得非常瑣碎,並且其速度也比純粹用程序描述要慢很多。VisualRules不再採用難以描述業務邏輯的reta算法,而採用順序執行的算法來描述業務邏輯。這樣描述業務邏輯和並平時用流程圖和文本來描述業務邏輯就沒有多少區別。可以最簡單話的配置業務邏輯,同時其速度和手寫程序的速度是一致的。VisualRules是真正的爲業務系統中業務邏輯的實現而設計的,是軟件項目業務邏輯實現的最佳選擇。


公共規則、循環規則、關聯決策表
由於規則執行算法基於順序執行的算法,因此在描述業務邏輯上比reta算法有更多的展現形式,特別是可以通過規則集來定義多個規則的共同條件以形成執行的分支,或者用來描述循環運行的一組規則。另外在決策表的支持方面也有三種方式,二維決策表、多維決策表以及關聯決策表,以更方便的形式來描述邏輯。同時規則還支持否則如果(elseif)方式的條件,進一步增強了規則描述業務邏輯的能力。


動態的參數接口、數據庫接口和Excel接口
傳統的規則引擎如JSR94描述的規則引擎調用接口採用Java類來傳遞值,這種方式使得接口的數據結構不能像規則一樣變動。VisualRules通過Map來傳遞值,因此其接口的數據結構是可變的。同時傳統的規則引擎一般可以通過設置來直接調用Hibernate等外部數據庫對象,這樣其實就是通過類和XML來定義了數據庫的調用接口,這種方式就不能使數據庫對象不能像規則一樣靈活變動。因此VisualRules採用List來定義數據庫對象接口,這種方式使得數據庫對象也是可變的。傳統的規則引擎一般不能直接操作Excel數據,但是在實際的業務邏輯的應用中,部分數據並沒有存儲在數據庫中,或者需要用Excel來展現數據。VisualRules可以直接來操作Excel文件。


內存表格
業務系統的業務邏輯實現有個特點,就是基本都是批量處理的處理,並且很多數據存儲在數據庫中。但是如果在實現業務邏輯時,頻繁的去訪問數據庫,會使得整個業務邏輯的實現效率很低。因此VisualRules設計了內存表,可以將數據庫中的數據先取出後放到內存表中,然後通過內存表相互之間做匹配或彙總處理。這樣極大的提高了執行效率,而且也增強了業務邏輯層實現的功能。


最小化規則引擎
做開發平臺最關鍵是運行時的穩定和性能。因此VisualRules採用最小化的規則引擎,規則引擎只處理規則包的加載和調用,不處理規則語法以及規則解析工作。在開發規則時,開發平臺根據規則語法將規則包靜態編譯成可執行的java代碼,這樣最大限度的保證的規則運行平臺的穩定。同時將規則的開發平臺和運行平臺分離,使得運行平臺不會隨着規則語法以及功能的增強而變化。


基於模板的頁面配置開發
在頁面表現層的實現上,當前最流行的技術就是採用Ajax來實現界面的表現。但是在表現邏輯的實現上,一般情況下,我們會基於一套框架(比如Ext、Dojo、JQuery等),然後再通過javascript來編寫具體的邏輯代碼。但是這些表現邏輯代碼其實是非常晦澀難寫的,而且也不能體現所見即所得的效果。VisualRules將基於框架的組件配置信息單獨提出來,通過圖形化界面來設定所需要的參數,然後根據模板生成對應的代碼。這種方式類似於代碼生成器方式來生成界面層的代碼,其開發工作量是最小的。

VisualRules可以取代當前業務邏輯層和數據層所有的操作代碼,準確的說,可以取代從Struts、Spring、Hibernate這些相關的代碼。Ajax直接通過通用的Servlet來訪問規則包。這種取代方式,極大的簡化了後臺代碼的開發,同時也使得業務邏輯層更加快速適應業務需求的變化。規則引擎可以有效的和當前主流的Ajax框架進行交互,也可以在Jsp中,通過java代碼來訪問。頁面層代碼可以通過頁面配置器來根據模板生成,也可以手工編寫。



基於以上這些特點,使用VisualRules可以爲用戶帶來一些這些價值:


軟件系統隨需而變
軟件系統最大的價值就是體現在系統運行的過程中,隨着用戶業務的變化,軟件能夠快速的加以適應,而不是成爲業務發展的障礙。因此軟件變更的響應時間以及影響,是衡量軟件價值的關鍵。VisualRules使得軟件系統可以“零時間”響應用戶需求的變化,真正的做到了軟件系統隨需而變。


降低軟件成本
採用VisualRules開發軟件系統,可以減少項目開發所需要的人員數量,同時也減少了每個人的工作量,使得項目的週期縮短。因此visualRules可以減少軟件開發的成本和縮短軟件開發的時間。同時由於VisualRules提供了方便的配置工具,可以在軟件項目後期維護階段快速適應需求的變化,因此軟件的維護階段,當有需求變更時,不再需要安排程序員去維護。而是一般的技術支持人員甚至客戶本身就可以實現變更工作。這使得安排一個技術支持人員就可以同時支持多個項目的維護工作。而不像原先那樣,當維護時需要安排原先的程序員來進行對應。因此使得軟件項目整個成本屬於完全可控的範圍以內。


提高軟件複用
VisualRules來實現業務邏輯時,是脫離程序語言來實現。因此其實現的業務邏輯可以供不同的語言來進行調用,也可以供不同的框架來進行調用。特別是當前基於web瀏覽器的富客戶端技術不斷髮展的今天,富客戶端框架很有可能會有新的框架進行取捨。因此業務邏輯脫離這些框架的實現顯得尤爲關鍵。當技術更新時,在新的技術框架的實現下,可以調用原先的業務邏輯代碼,這最大限度的保證了原先軟件項目的投資。

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