基于構(gòu)件技術(shù)的規(guī)則引擎研究_第1頁(yè)
基于構(gòu)件技術(shù)的規(guī)則引擎研究_第2頁(yè)
基于構(gòu)件技術(shù)的規(guī)則引擎研究_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于構(gòu)件技術(shù)的規(guī)則引擎研究    關(guān)鍵詞:規(guī)則引擎 構(gòu)件 業(yè)務(wù)規(guī)則 0 引言 面向構(gòu)件技術(shù)是把傳統(tǒng)工業(yè)標(biāo)準(zhǔn)化、模塊化和分工協(xié)同的思想應(yīng)用于軟件開發(fā)領(lǐng)域,同時(shí)繼承和發(fā)揚(yáng)了很多相關(guān)軟件技術(shù)的成果,在改善人與計(jì)算機(jī)的溝通,提高軟件的復(fù)用程度,以及如何提高開發(fā)效率快速反映變化等方面取得了突出的發(fā)展。 對(duì)于復(fù)雜企業(yè)級(jí)項(xiàng)目開發(fā),在業(yè)務(wù)應(yīng)用層面,我們需要面向業(yè)務(wù)性的構(gòu)件具有靈活性,同時(shí)還要解決“業(yè)務(wù)邏輯相關(guān)”構(gòu)件的可復(fù)用性,可維護(hù)性以及可擴(kuò)展性。 而目前大多數(shù)的平臺(tái)廠商專注于在構(gòu)件架構(gòu)的技術(shù)上,目的是使開發(fā)人員能夠開發(fā)出粒度非常高的可復(fù)用的構(gòu)件。但是“多變”的業(yè)務(wù)邏輯

2、使得我們只能提供低粒度的構(gòu)件和接口,開發(fā)出的業(yè)務(wù)構(gòu)件數(shù)量龐大,但很難復(fù)用和維護(hù)。所以我們必須將“多變”的業(yè)務(wù)邏輯與程序代碼分離,讓它們能在運(yùn)行時(shí)可以動(dòng)態(tài)地管理和修改從而提供軟件系統(tǒng)的柔性和適應(yīng)性。從而實(shí)現(xiàn)管理和復(fù)用業(yè)務(wù)邏輯,并且業(yè)務(wù)邏輯的變更也不會(huì)影響引起構(gòu)件本身的變更。規(guī)則引擎正是應(yīng)用于上述動(dòng)態(tài)環(huán)境中的一種解決方法。由此,我們?cè)谏钊肜斫庖?guī)則引擎技術(shù)的基礎(chǔ)上,同時(shí)將規(guī)則引擎引入面向構(gòu)件技術(shù)。 1 規(guī)則引擎 一個(gè)業(yè)務(wù)規(guī)則包含一組條件和在此條件下執(zhí)行的操作,它們表示業(yè)務(wù)規(guī)則應(yīng)用程序的一段業(yè)務(wù)邏輯。業(yè)務(wù)規(guī)則的理論基礎(chǔ)是:設(shè)置一個(gè)或多個(gè)條件,當(dāng)滿足這些條件時(shí)會(huì)觸發(fā)一個(gè)或多個(gè)操作。 規(guī)則引擎的推理步驟如

3、下: 將初始數(shù)據(jù)(fact)輸入至工作內(nèi)存(Working Memory)。使用Pattern Matcher將規(guī)則庫(kù)(Rules repository)中的規(guī)則(rule)和數(shù)據(jù)(fact)比較。如果執(zhí)行規(guī)則存在沖突(conflict),即同時(shí)激活了多個(gè)規(guī)則,將沖突的規(guī)則放入沖突集合。解決沖突,將激活的規(guī)則按順序放入Agenda。執(zhí)行Agenda中的規(guī)則。重復(fù)步驟2至5,直到執(zhí)行完畢Agenda中的所有規(guī)則。 任何一個(gè)規(guī)則引擎都需要很好地解決規(guī)則的推理機(jī)制和規(guī)則條件匹配的效率問題。 當(dāng)引擎執(zhí)行時(shí),會(huì)根據(jù)規(guī)則執(zhí)行隊(duì)列中的優(yōu)先順序逐條執(zhí)行規(guī)則執(zhí)行實(shí)例,由于規(guī)則的執(zhí)行部分可能會(huì)改變工作區(qū)的數(shù)據(jù)對(duì)象

4、,從而會(huì)使隊(duì)列中的某些規(guī)則執(zhí)行實(shí)例因?yàn)闂l件改變而失效,必須從隊(duì)列中撤銷,也可能會(huì)激活原來(lái)不滿足條件的規(guī)則,生成新的規(guī)則執(zhí)行實(shí)例進(jìn)入隊(duì)列。于是就產(chǎn)生了一種“動(dòng)態(tài)”的規(guī)則執(zhí)行鏈,形成規(guī)則的推理機(jī)制。這種規(guī)則的“鏈?zhǔn)健狈磻?yīng)完全是由工作區(qū)中的數(shù)據(jù)驅(qū)動(dòng)的。 2 基于構(gòu)件技術(shù)的規(guī)則引擎 2.1 面向構(gòu)件技術(shù) 面向構(gòu)件作為將軟件系統(tǒng)分解與隔離的一種方法,是一個(gè)非常通用的概念。它解決了企業(yè)應(yīng)用的結(jié)構(gòu)問題。通過(guò)面向構(gòu)件技術(shù),一個(gè)系統(tǒng)是按照個(gè)性化的需求,從一個(gè)比較完善、比較成熟的組件庫(kù)組裝而成,大大提高了系統(tǒng)的成功率、穩(wěn)定性、適應(yīng)性和逐步發(fā)展性。通過(guò)面向構(gòu)件對(duì)業(yè)務(wù)的封裝和積累能夠保護(hù)現(xiàn)有投資,有助于高效的表達(dá)業(yè)務(wù)

5、,提高軟件的復(fù)用程度,進(jìn)而表現(xiàn)其內(nèi)在的組織敏捷性。 2.2 構(gòu)件技術(shù)中引入規(guī)則引擎 使用面向構(gòu)件技術(shù)我們需要:應(yīng)用系統(tǒng)的核心業(yè)務(wù)邏輯提煉成的構(gòu)件具有高可復(fù)用率;制作構(gòu)件時(shí)應(yīng)使其盡量覆蓋涉及的主題,并考慮潛在的用戶需求及將來(lái)的變化;應(yīng)盡量將復(fù)雜的功能封裝為構(gòu)件。 但是由于業(yè)務(wù)邏輯的復(fù)雜性以及多變性,現(xiàn)在大多數(shù)的構(gòu)件平臺(tái)僅能提供較低粒度的構(gòu)件,使得開發(fā)人員需要花大量盡力來(lái)定制開發(fā)業(yè)務(wù)邏輯層面的構(gòu)件,而且很難復(fù)用和維護(hù)。 因此要使構(gòu)件能夠面向業(yè)務(wù)層面就要通過(guò)規(guī)則引擎把“可變化”的業(yè)務(wù)邏輯與程序代碼分離開來(lái)。 2.3 實(shí)施方案 在構(gòu)件技術(shù)的基礎(chǔ)上,規(guī)則引擎的實(shí)現(xiàn)方式是分布型的。也就是說(shuō),規(guī)則調(diào)用和規(guī)則

6、的執(zhí)行是分布式的。 首先,規(guī)則執(zhí)行以服務(wù)的形式存在。規(guī)則服務(wù)的實(shí)現(xiàn)如下: 以規(guī)則作為參數(shù),創(chuàng)建規(guī)則引擎;為規(guī)則引擎添加數(shù)據(jù);執(zhí)行規(guī)則,獲得返回。 其次,構(gòu)件中只嵌入調(diào)用規(guī)則服務(wù)的代碼,沒有直接嵌入規(guī)則引擎。規(guī)則服務(wù)的調(diào)用如下: 準(zhǔn)備規(guī)則集需要的數(shù)據(jù);指定被使用的規(guī)則集名稱;調(diào)用規(guī)則服務(wù)、執(zhí)行規(guī)則并獲得返回;處理返回結(jié)果。 最后,規(guī)則是在業(yè)務(wù)模型之上定義的,利用可視化規(guī)則開發(fā)工具,Web規(guī)則編輯器定義規(guī)則,從而簡(jiǎn)化規(guī)則的編寫過(guò)程??梢暬?guī)則開發(fā)工具定義好的規(guī)則最終形成規(guī)則庫(kù)存儲(chǔ)在構(gòu)件之外,可以存儲(chǔ)在數(shù)據(jù)庫(kù)或文件系統(tǒng)中。 其中,將規(guī)則存儲(chǔ)在構(gòu)件之外的另一個(gè)好處就是能夠?qū)崿F(xiàn)規(guī)則的復(fù)用。 Rule R

7、epository Deployer Administration Deployment 3 結(jié)束語(yǔ) 在構(gòu)件技術(shù)的基礎(chǔ)上實(shí)現(xiàn)的規(guī)則引擎不但可以避免業(yè)務(wù)邏輯組件的復(fù)雜性,而且使業(yè)務(wù)邏輯的開發(fā)不再完全依賴程序開發(fā)員,減少構(gòu)件的開發(fā)數(shù)目,從而降低構(gòu)件的維護(hù)成本。另外,通過(guò)將業(yè)務(wù)規(guī)則剝離出程序之外,可以實(shí)現(xiàn)規(guī)則本身的管理性,形成業(yè)務(wù)規(guī)則管理和執(zhí)行的集成系統(tǒng),方便了與宿主系統(tǒng)的集成。        參考文獻(xiàn): 1黃柳青,王滿紅.構(gòu)件中國(guó)面向構(gòu)件的方法與實(shí)踐M.北京:清華大學(xué)出版社,2006. 4龐偉正,金瑞琪,王成武.一種規(guī)則引擎的實(shí)現(xiàn)方法J.哈爾濱工程大學(xué)學(xué)報(bào),200

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論