(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)交易管理系統(tǒng)重構(gòu).pdf_第1頁(yè)
(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)交易管理系統(tǒng)重構(gòu).pdf_第2頁(yè)
(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)交易管理系統(tǒng)重構(gòu).pdf_第3頁(yè)
(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)交易管理系統(tǒng)重構(gòu).pdf_第4頁(yè)
(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)交易管理系統(tǒng)重構(gòu).pdf_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)交易管理系統(tǒng)重構(gòu).pdf.pdf 免費(fèi)下載

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

文檔簡(jiǎn)介

浙江人學(xué)碩i :學(xué)位論文 摘要 摘要 軟件產(chǎn)品交付使用以后,為了保持穩(wěn)定運(yùn)行并適應(yīng)新的要求,必須進(jìn)行維護(hù)。 在維護(hù)的過(guò)程中,為了提高軟件可維護(hù)性并延長(zhǎng)軟件壽命,需要引進(jìn)新的技術(shù)方 法作預(yù)防性維護(hù)。重構(gòu)是預(yù)防性維護(hù)中的重要手段之一,它不改變軟件對(duì)外行為 但改善軟件結(jié)構(gòu),因而得到廣大軟件設(shè)計(jì)者和工程技術(shù)人員的重視,正在軟件維 護(hù)中發(fā)揮越來(lái)越重要的作用。 本文分析了一個(gè)實(shí)際的金融交易軟件產(chǎn)品的架構(gòu)。針對(duì)預(yù)防性維護(hù)中質(zhì)量改 善和業(yè)務(wù)合并這兩個(gè)目標(biāo),對(duì)軟件中的交易規(guī)則管理器、對(duì)象持久層等進(jìn)行了重 構(gòu)。通過(guò)和開(kāi)源規(guī)則引擎d r o o l s 比較,指出交易規(guī)則管理器的缺陷,并給出相應(yīng) 重構(gòu)方案;對(duì)于持久層機(jī)制,剖析其在實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)的封裝中存在的不足,并結(jié) 合d a o 設(shè)計(jì)模式和o r m 技術(shù)進(jìn)行重構(gòu)。最后基于確定型有限狀態(tài)機(jī)模型,對(duì) m 組件進(jìn)行再設(shè)計(jì)。 關(guān)鍵詞: 重構(gòu),預(yù)防性維護(hù),規(guī)則引擎,持久層 浙江人學(xué)碩+ :學(xué)位論文 a b s t r a e t a b s t r a c t s o f t w a r em u s tb em a i n t a i n e da f t e rd e l i v e r yt ok e e pi ts t a b l ea n du p t o d a t e d u r i n gt h ep r o c e d u r eo fs o f t w a r em a i n t e n a n c e ,n e wm e t h o d o l o g ya n dt e c h n o l o g yn e e d t ob ei n t r o d u c e db yp r e v e n t i v em a i n t e n a n c ei no r d e rt or a i s em a i n t a i n a b i l i t ya n dl i f eo f t h es o f t w a r ep r o d u c t r e f a c t o r i n ga st h ei m p o r tm e t h o d o l o g yo fs o f t w a r ep r e v e n t i v e m a i n t e n a n c e ,i m p r o v e sc o d es t r u c t u r ew h i l ek e e p se x t e r n a lb e h a v i o ru n c h a n g e d i ti s i n c r e a s i n g l yr a i s i n gt h ea t t e n t i o no fs o f t w a r ed e s i g n e ra n de n g i n e e r $ ,w i t hag r o w i n g i m p o r t a n tr o l ei ns o f t w a r em a i n t e n a n c ea c t i v i t y t h i sa r t i c l ea n a l y z e st h ea r c h i t e c t u r eo far e a l - l i f ep r o j e c t ,t r a d em a n a g e m e n t s y s t e m w i t hf o c u so nq u a l i t yi m p r o v e m e n ta n df u n c t i o na c q u i s i t i o n ,i tk e e p s t h et r a d e r u l em a n a g e rf i r m ) a st h em a i nr e f a c t o ro b j e c t d i s c u s s i n gt h ei m p l e m e n t a t i o no f e v e r yp a r ta n dc o m p a r e dw i t ht h es t r u c t u r eo fo p e n s o u r c er u l ee n g i n e ,d r o o l s ,t h e d e s i g nw e a k n e s so ft r m i sp o i n t e do u t ,t o g e t h e rw i t har e f a c t o rp l a n t od e a lw i t ht h e p e r s i s t e n tl a y e ro ft r a d em a n a g e m e n ts y s t e m ,t h ei n a p p r o p r i a t ed e s i g ni nd a t aa c c e s s o b j e c t si se x a m i n e d t h er e f a c t o r i n gp l a ni st oi m p r o v ei t w i 廿ld a t aa c c e s so b j e c t p a t t e r na n do b j e c t r e l a t i o n s h i pm a p p i n g f i n a l l y , f o rt h en i mc o m p o n e n tr e f a c t o r i n g , ad e t e r m i n i s t i cf i n i t ea u t o m a t am o d e li sa p p l i e da n de x p l a i n e d k e y w o r d s :r e f a c t o r , p r e v e n t i v em a i n t e n a n c e ,r u l ee n g i n e ,p e r s i s t e n tl a y e r 浙江人學(xué)碩 j 學(xué)位論文圖目錄 圖2 1 圖2 2 圖2 3 圖3 1 圖3 2 圖3 3 圖3 4 圖3 5 圖3 6 圖3 7 圖3 8 圖3 9 圖3 1 0 圖3 1 1 圖4 1 圖4 2 圖4 3 圖4 4 圖4 5 圖5 1 圖5 2 圖5 3 圖目錄 交易管理系統(tǒng)與外圍系統(tǒng)接口7 交易管理系統(tǒng)架構(gòu)9 交易管理系統(tǒng)缺陷統(tǒng)計(jì)1 2 o r a c l e b r m s 產(chǎn)品界面18 基于規(guī)則的系統(tǒng)1 9 d r o o l s 編譯系統(tǒng)2 2 r e t e o o 算法2 4 r e t e o o 網(wǎng)絡(luò)中二輸入節(jié)點(diǎn)2 7 d r o o l s 匹配和執(zhí)行部分3 0 t r m 架構(gòu)3l 規(guī)則管理界面。3 8 業(yè)務(wù)規(guī)則執(zhí)行流程圖4 1 移植d r o o l s 解決方案4 5 改進(jìn)后的移植方案4 6 數(shù)據(jù)訪問(wèn)類(lèi)封裝5 0 對(duì)象一關(guān)系映射5 l 交易對(duì)象持久化實(shí)現(xiàn)。5 4 d a o 模式重構(gòu)持久層6 0 應(yīng)用h i b e r n a t e 改進(jìn)的重構(gòu)方案6 2 n i m 基本架構(gòu)6 4 n i mp r o c e s s o r 部分流程圖e t s 6 6 e t x 狀態(tài)圖6 8 浙江人學(xué)碩:t 學(xué)位論文 表目錄 表目錄 表2 1為交易管理系統(tǒng)提供數(shù)據(jù)的系統(tǒng)8 表2 2接受交易管理系統(tǒng)數(shù)據(jù)的系統(tǒng)8 表3 1c o n f i gk e y s 3 9 表3 2v e ti 沁l e s 3 9 表3 3規(guī)則引擎優(yōu)化前后對(duì)比4 3 l v 浙江大學(xué)研究生學(xué)位論文獨(dú)創(chuàng)性聲明 本人聲明所呈交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的 研究成果。除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā) 表或撰寫(xiě)過(guò)的研究成果,也不包含為獲得澎姿盤(pán)堂或其他教育機(jī)構(gòu)的學(xué)位或 證書(shū)而使用過(guò)的材料。與我一同工作的同志對(duì)本研究所做的任何貢獻(xiàn)均已在論文 中作了明確的說(shuō)明并表示謝意。 學(xué)位論文作者簽名: 1 蠶叼 簽字日期: 洳莎年g 月7 日 學(xué)位論文版權(quán)使用授權(quán)書(shū) 本學(xué)位論文作者完全了解澎姿態(tài)堂有權(quán)保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu) 送交本論文的復(fù)印件和磁盤(pán),允許論文被查閱和借閱。本人授權(quán)逝姿盤(pán)堂可 以將學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索和傳播,可以采用影 印、縮印或掃描等復(fù)制手段保存、匯編學(xué)位論文。 ( 保密的學(xué)位論文在解密后適用本授權(quán)書(shū)) 學(xué)位論文作者躲嗨粵 簽字日期:五加3 年月7 日 導(dǎo)師簽名: 簽字眺礎(chǔ)多月夕日 浙江人學(xué)碩l :學(xué)位論文 第l 章緒論 第1 章緒論 為了使軟件持續(xù)穩(wěn)定的運(yùn)行,適應(yīng)新的需要,軟件維護(hù)是軟件工程中必不可 少的一環(huán)。并非所有的軟件都需要投入大量的成本在軟件維護(hù)上,但是經(jīng)驗(yàn)表 明,行業(yè)軟件,特別是為大型企業(yè)量身定做的應(yīng)用系統(tǒng),其維護(hù)費(fèi)用比起昂貴的 開(kāi)發(fā)費(fèi)用有過(guò)之而無(wú)不及【2 1 。隨著多數(shù)大型企業(yè)的全面信息化,在軟件維護(hù)上的 投入在信息支出的比例中大幅度上升,軟件維護(hù)作為一門(mén)實(shí)踐性強(qiáng)的學(xué)科受到越 來(lái)越多的學(xué)者和工程技術(shù)人員的重視。 1 1 課題背景 軟件維護(hù)通常指在軟件交付以后對(duì)系統(tǒng)或組件的更改,以改正錯(cuò)誤,提高性 能等等【引。按照其目的可以分為四類(lèi)【4 】: 糾錯(cuò)性維護(hù)( c o r r e c t i v e ) 顧名思義,就是修正軟件中不正確的地方。隨著編程經(jīng)驗(yàn)的積累,程序語(yǔ)言 的進(jìn)步和測(cè)試?yán)碚摵图夹g(shù)的發(fā)展,代碼本身的質(zhì)量已經(jīng)有了很大的提高。經(jīng)驗(yàn)性 研究表明,需求理解產(chǎn)生的偏差所導(dǎo)致的軟件問(wèn)題是主要的維護(hù)原因。糾錯(cuò)性維 護(hù)一般可以在總的維護(hù)成本中占到2 0 。 完善性維護(hù)( p e r f e c t i v e ) 完善性維護(hù)在總成本中占5 0 以上。隨著業(yè)務(wù)的發(fā)展,用戶會(huì)對(duì)軟件的功能, 易用性,性能等提出新的要求。完善性維護(hù)正是為了滿足用戶的需求,延長(zhǎng)軟件 壽命所作的維護(hù)工作。 適應(yīng)性維護(hù)( a d a p t i v e ) 適應(yīng)性維護(hù)是針對(duì)外部環(huán)境變化所進(jìn)行的修改。這可以是硬件上的變化,比 如服務(wù)器升級(jí),需要針對(duì)多核c p u 做更多優(yōu)化,或者用戶顯示器分辨率從 1 0 2 4 7 6 8 更換到了1 6 0 0 1 2 0 0 ,部分w e b 界面需要重新設(shè)定最佳顯示效果;還可 以是軟件上的變化,像數(shù)據(jù)庫(kù)的升級(jí)導(dǎo)致接口函數(shù)需要相應(yīng)調(diào)整等。在所有的維 護(hù)活動(dòng)中,適應(yīng)性維護(hù)占2 5 左右。 i 浙江大學(xué)碩士學(xué)位論文 第l 章緒論 預(yù)防性維護(hù)( p r e v e n t i v e ) 預(yù)防性維護(hù)和其他三種維護(hù)目有顯著的不同。行業(yè)軟件的重要特點(diǎn)之一是生 命周期很長(zhǎng),在整個(gè)維護(hù)過(guò)程中,外部世界不斷有新的更優(yōu)秀的軟件工程方法和 軟件技術(shù)產(chǎn)品誕生。使用這些新的技術(shù)產(chǎn)品可以提高軟件的可維護(hù)性、可靠性和 壽命,因此有必要引入這些超前性質(zhì)的維護(hù)工作,來(lái)對(duì)已有的軟件重新設(shè)計(jì)和編 碼。m i l l e r 把預(yù)防性維護(hù)總結(jié)為:“把今天的方案應(yīng)用到昨天的系統(tǒng)上,以適應(yīng)將 來(lái)的需求”。1 5 】 由于軟件開(kāi)發(fā)進(jìn)度和成本上的壓力,相比前三種必需的維護(hù)行為,預(yù)防性維 護(hù)在軟件維護(hù)的初期常常被置于次要的地位。但是隨著維護(hù)的深入,維護(hù)者開(kāi)始 面臨一系列具有典型性的問(wèn)題: 架構(gòu)不適應(yīng)業(yè)務(wù)發(fā)展的需要; 系統(tǒng)進(jìn)行初期架構(gòu)設(shè)計(jì)時(shí),往往無(wú)法預(yù)見(jiàn)到未來(lái)的業(yè)務(wù)需求變動(dòng)和增長(zhǎng),成 為軟件開(kāi)發(fā)的瓶頸,增加了維護(hù)的難度,降低系統(tǒng)的可擴(kuò)展性。 組件設(shè)計(jì)缺陷使增量改動(dòng)陷入困境; 不少系統(tǒng)架構(gòu)由專業(yè)設(shè)計(jì)人員開(kāi)發(fā),具有很好的可擴(kuò)展性。但是組件直接按 照業(yè)務(wù)工作流設(shè)計(jì),偏重于流程。隨著維護(hù)的進(jìn)行和維護(hù)人員的變動(dòng),代碼風(fēng)格 的不一致使組件越來(lái)越難以被設(shè)計(jì)人員所全面理解和掌握,增量改動(dòng)的質(zhì)量難以 保證。 不良的接口定義導(dǎo)致大量的冗余代碼; 對(duì)于復(fù)雜的應(yīng)用軟件來(lái)說(shuō),關(guān)鍵的接口被大量的類(lèi)所繼承和使用。接口定義 的改動(dòng)需要進(jìn)行大量的測(cè)試才能保證質(zhì)量,高額的成本使得管理者傾向于接受冗 余代碼,但這些冗余代碼進(jìn)一步增加維護(hù)成本。 復(fù)雜的業(yè)務(wù)邏輯規(guī)則難以被正確理解和使用。 對(duì)于采用業(yè)務(wù)規(guī)則的軟件來(lái)說(shuō),業(yè)務(wù)規(guī)則本身是最難以維護(hù)的地方之一。這 些業(yè)務(wù)規(guī)則往往數(shù)量巨大又具有很高的正相關(guān)性,在應(yīng)用中難以被正確的理解和 使用。 為了提高軟件的可理解性和可維護(hù)性,a r n o l d 定義了軟件的重建r e s t r u c t u r e 2 浙江人學(xué)碩上學(xué)位論文第1 章緒論 理論【6 1 。o p d y k e 在面向?qū)ο蟪绦蛑羞M(jìn)一步提出了重構(gòu)( r e f a c t o r ) 這個(gè)概念【7 】從 工程技術(shù)人員的角度思考面向?qū)ο蟪绦虻木S護(hù)和進(jìn)化問(wèn)題,受到軟件工程界的極 大重視,成為預(yù)防性維護(hù)最為重要的方法論之一。 1 2 重構(gòu) 重建是同一抽象層面上表現(xiàn)形式的轉(zhuǎn)換,但保留對(duì)象系統(tǒng)的外向行為( 功能 和語(yǔ)義) 。這樣的轉(zhuǎn)換往往是程序外觀上的,比如結(jié)構(gòu)化程序設(shè)計(jì)中代碼結(jié)構(gòu)的 改善。雖然重建產(chǎn)生了一個(gè)新的軟件版本或者提出更改的方向,但是它不包含因 為新的需求所作的變動(dòng)。反過(guò)來(lái),它的意義更在于使程序更容易被閱讀,從而為 系統(tǒng)改善創(chuàng)造條件?!? 】 f o w l e r 對(duì)重構(gòu)r e f a c t o r 的定義一脈相承【9 1 。他認(rèn)為這是一個(gè)不改變程序外向 行為,而優(yōu)化內(nèi)部結(jié)構(gòu)的軟件系統(tǒng)過(guò)程方法。主要的思路是整理類(lèi)、方法、變量, 以創(chuàng)造更高的適應(yīng)性和擴(kuò)展性。 技術(shù) 冗余代碼和層次優(yōu)化是重構(gòu)的傳統(tǒng)技術(shù)關(guān)注點(diǎn),f l o w e r 總結(jié)了3 2 種重構(gòu)的 一般性思路【9 1 。隨著面向方面編程a o p 的興起,利用橫切點(diǎn)對(duì)面向?qū)ο蟪绦蜻M(jìn)行 改造的研究越來(lái)越得到各方面的重視。在橫切關(guān)注點(diǎn)的檢測(cè)和封裝技術(shù)上產(chǎn)生了 許多新的工作,成為重構(gòu)研究的熱點(diǎn)。由于面向?qū)ο缶幊讨械姆椒☉?yīng)用到a o p 中可能會(huì)破壞切點(diǎn)和與之相連的方面代碼,因此有必要對(duì)其進(jìn)行補(bǔ)充和完善l m l 。 工具支持 為了讓重構(gòu)得到更多的工業(yè)級(jí)應(yīng)用,擁有一定自動(dòng)化程度,可以減輕人力負(fù) 擔(dān)的重構(gòu)工具是必不可少的。根據(jù)其智能程度的高低,既有半自動(dòng)化的如r e f a c t o r b r o w s e r ( s m a l lt a 【) ,也有實(shí)現(xiàn)了對(duì)繼承對(duì)象和方法作全自動(dòng)重構(gòu)處理的g u r u ( s e l f ) 。把重構(gòu)工具集成到開(kāi)發(fā)工具中是大勢(shì)所趨,e c l i p s e 中的w s a d 插件, v i s u a l s t u d i a o 的c 群r e f a c t o r y 。這些工具普遍可以做到對(duì)屬性、變量、類(lèi)以及接口 重新命名、移動(dòng)、抽取等?!緇 i 】 值得一提的是,從更高抽象層次上的u m l 建模重構(gòu)工具也開(kāi)始出現(xiàn)了,可 3 浙江人學(xué)碩十學(xué)位論文第l 章緒論 以為類(lèi)圖、狀態(tài)圖的重構(gòu)提供幫助。1 1 2 1 軟件重構(gòu)的意義 軟件可維護(hù)性是對(duì)于軟件維護(hù)活動(dòng)的重要指標(biāo),主要指維護(hù)人員理解、改動(dòng) 或改進(jìn)軟件的難易程度。i s o i e c9 1 2 6 定義了作為軟件質(zhì)量一部分的軟件可維護(hù) 性的四個(gè)衡量標(biāo)準(zhǔn):穩(wěn)定性,可分析性,可更改性,可測(cè)試性。軟件重構(gòu)在這 四個(gè)方面提高了軟件的可維護(hù)性。 1 ) 提高可更改性 在進(jìn)行重構(gòu)工作的時(shí)候,不需要過(guò)多地考慮將來(lái)的變化,可以把注意力集中 在現(xiàn)在的需求上;對(duì)新的需求的更改,可以在已經(jīng)重構(gòu)優(yōu)化的程序上,進(jìn)行擴(kuò)展 設(shè)計(jì)。這樣就在一定程度上降低了軟件更改的難度,減少了軟件維護(hù)的成本。 2 ) 提高穩(wěn)定性 軟件重構(gòu)工作優(yōu)化了軟件的結(jié)構(gòu),提高了軟件的擴(kuò)展性,更容易引入新的需 求。軟件更改的規(guī)模更多的決定與需求的復(fù)雜度而不是軟件本身的結(jié)構(gòu),更改的 成本更容易被預(yù)測(cè),從而提高軟件的穩(wěn)定性。 3 ) 提高可分析性 重構(gòu)以后的代碼具有結(jié)構(gòu)清晰,意義明確的特點(diǎn)。有利于后續(xù)開(kāi)發(fā)人員對(duì)程 序的理解,縮短對(duì)代碼的學(xué)習(xí)時(shí)間,從而降低維護(hù)成本。 4 ) 提高可測(cè)試性 f o w l e r 認(rèn)為,重構(gòu)的每一步工作都必須經(jīng)過(guò)嚴(yán)格的測(cè)試,當(dāng)發(fā)現(xiàn)問(wèn)題的時(shí)候, 可以在最短的時(shí)間內(nèi)找到引入b u g 的改動(dòng)點(diǎn)而進(jìn)行恢復(fù),從而避免了大量的調(diào)試 時(shí)間?!? 】一個(gè)好的重構(gòu)工作以完善的回歸測(cè)試為基礎(chǔ),即保證了軟件的質(zhì)量,又 降低了測(cè)試的難度。 隨著軟件丌發(fā)越來(lái)越強(qiáng)調(diào)敏捷性和對(duì)需求的反應(yīng)時(shí)間,作為先進(jìn)開(kāi)發(fā)方法的 重構(gòu),由于其在分析和測(cè)試上時(shí)間短、難度低的優(yōu)點(diǎn),也在敏捷開(kāi)發(fā)方法中發(fā)揮 越來(lái)越重要的作用。1 1 4 】 4 浙江人學(xué)碩上學(xué)位論文第1 章緒論 1 3 研究?jī)?nèi)容和目標(biāo) 交易管理系統(tǒng)是一個(gè)已經(jīng)被維護(hù)多年的金融交易軟件產(chǎn)品。為了能使系統(tǒng)更 穩(wěn)定的運(yùn)行,降低維護(hù)的成本,需要對(duì)其進(jìn)行階段的預(yù)防性維護(hù),重構(gòu)代碼,以 改善質(zhì)量和提高可擴(kuò)展性。本文分析了該系統(tǒng)的軟件架構(gòu),針對(duì)預(yù)防性維護(hù)的兩 個(gè)目標(biāo),剖析了軟件中的交易規(guī)則管理器t r m 、持久層、第三方知會(huì)交互模塊 n i m 模塊等部分存在的缺陷,并給出相應(yīng)的重構(gòu)方案。 t r m 維護(hù)系統(tǒng)的業(yè)務(wù)邏輯。本文通過(guò)比較它和功能類(lèi)似的開(kāi)源規(guī)則引擎,分 析t r m 在設(shè)計(jì)上存在的缺陷并給出重構(gòu)設(shè)計(jì)。 持久層封裝了交易管理系統(tǒng)訪問(wèn)數(shù)據(jù)源的方法,但是這種封裝和優(yōu)化設(shè)計(jì)相 比有相當(dāng)?shù)木嚯x,有很大改進(jìn)空間。本文并結(jié)合d a o 設(shè)計(jì)模式和o r m 技術(shù),在 不影響上層組件接口的前提下,提出重構(gòu)的方案。 n i m 是交易管理系統(tǒng)中一個(gè)面向消息的組件,其各個(gè)版本經(jīng)過(guò)多名程序員不 同時(shí)期的改動(dòng),內(nèi)部的代碼結(jié)構(gòu)很不清晰,難以理解和維護(hù)。本文應(yīng)用確定型有 窮自動(dòng)機(jī)的模型,對(duì)n i m 進(jìn)行再設(shè)計(jì)。 1 4 論文組織 第二章對(duì)交易管理系統(tǒng)的軟件架構(gòu)作了分析。針對(duì)預(yù)防性維護(hù)的兩個(gè)目標(biāo), 質(zhì)量改善和對(duì)舊系統(tǒng)的業(yè)務(wù)替代,選擇了架構(gòu)中相對(duì)獨(dú)立的交易規(guī)則管理器和持 久層作為重構(gòu)的主要對(duì)象。 第三章通過(guò)比較交易規(guī)則管理器和d r o o l s 的實(shí)現(xiàn),分析前者在設(shè)計(jì)上存在的 問(wèn)題并提出解決方案。 第四章分析交易管理系統(tǒng)的持久層機(jī)制,以交易處理器組件中典型業(yè)務(wù)對(duì)象 i m s t r a d e 的持久化為例,剖析其在實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)的封裝中存在的不足,并結(jié)合 d a o 設(shè)計(jì)模式和o r m 技術(shù),進(jìn)行重構(gòu)和改進(jìn)。 第五章應(yīng)用確定型有限狀態(tài)機(jī)模型,對(duì)n i m 組件運(yùn)行時(shí)產(chǎn)生的狀態(tài)和狀態(tài)之 間的轉(zhuǎn)換格局作了提煉,給出對(duì)這個(gè)組件進(jìn)行再設(shè)計(jì)的方案。 5 浙江人學(xué)碩卜學(xué)位論文 第l 章緒論 第六章對(duì)交易管理系統(tǒng)的重構(gòu)工作做一個(gè)總結(jié),并展望今后的挑戰(zhàn)和目標(biāo)。 6 浙江人學(xué)碩士學(xué)位論文第2 章交易管理系統(tǒng)的預(yù)防性維護(hù) 第2 章交易管理系統(tǒng)的預(yù)防性維護(hù) 作為知名的機(jī)構(gòu)投資服務(wù)提供者,t 銀行擁有從投資決策到會(huì)計(jì)的一系列電 子化服務(wù)系統(tǒng)。 交易管理系統(tǒng)在t 銀行的機(jī)構(gòu)投資服務(wù)系統(tǒng)中扮演中間業(yè)務(wù)員( m i d d l e o f f i c e ) 的角色。交易管理系統(tǒng)最主要的功能是交易執(zhí)行和全程控制,擁有豐富 的交易跟蹤界面和異常處理機(jī)制,使商業(yè)用戶及其操作員可以實(shí)時(shí)了解交易的狀 態(tài)并采取必要的措施。 2 1 交易管理系統(tǒng)介紹 如圖2 1 ,交易管理系統(tǒng)把從多個(gè)“交易系統(tǒng)”獲得來(lái)自投資經(jīng)理的各類(lèi)x m l 格式的交易單,進(jìn)行歸納整理后產(chǎn)生會(huì)計(jì)、托管等業(yè)務(wù)組件可以處理的輸入單據(jù)。 圖2 1交易管理系統(tǒng)與外嗣系統(tǒng)接口 為了實(shí)現(xiàn)這一功能,交易管理系統(tǒng)需要從客戶或者第三方輸入的參考數(shù)據(jù)中 7 浙江人學(xué)壩1 學(xué)位論文 第2 章交易管理系統(tǒng)的顱防性維護(hù) 對(duì)交易信息進(jìn)行驗(yàn)訕f 、補(bǔ)充和轉(zhuǎn)譯;而從經(jīng)紀(jì)人那里扶得的s w i f t 確認(rèn)消息叮 以和投資人的交易單進(jìn)行匹配,為交易的最終確認(rèn)提供依據(jù):另外,住送達(dá)下游 業(yè)務(wù)系統(tǒng)以后,交易管理系統(tǒng)根據(jù)他們的反饋,及時(shí)對(duì)交易單的信息進(jìn)行更新; 最后交易管理系統(tǒng)作為直接和操作員打交道的應(yīng)用系統(tǒng),可以輸入各種奄詢條什 查詢交易信息,或者在錯(cuò)誤處理的界面l :,接受操作員的授權(quán)更f 等等。表2 。1 列出了為交易管理系統(tǒng)提供數(shù)據(jù)的系統(tǒng)。 表2 1為交易管理系統(tǒng)提供數(shù)據(jù)的系統(tǒng) i 鬻囊鷲曛壤囊鬻鏨j 數(shù)糖類(lèi)鶩甄鍘! 攀鬻。艟二囊媒多f 爹黲i ;撼矗蓊鹺i 麟鬻? r ? 二j = “一 :,撇i 張。:。糍糟“? 一囂- 酬勞# 。董三“。:v 。必! 交易系統(tǒng)( 多個(gè)) x m l m q 參考數(shù)據(jù)系統(tǒng)遠(yuǎn)科凋川返川i c o r b a 經(jīng)紀(jì)人系統(tǒng) s w i f t 文什 第二力。知會(huì)系統(tǒng)i 、。j 戶 s w i f tm q 存檔管理系統(tǒng)i 、。 戶 s w i f tm o 操作員各類(lèi)人l :輸入 w e bu i 交易管理系統(tǒng)最本質(zhì)的業(yè)務(wù)就是對(duì)消息格式的轉(zhuǎn)換和信息內(nèi)容的更新,這些 整理后的信息,冉次被編寫(xiě)為x m l 消息,發(fā)往下游系統(tǒng)( 存檔,第三方結(jié)算, 第三方清算) ;對(duì)每1 個(gè)和交易管理有業(yè)務(wù)往來(lái)的系統(tǒng),交易管理以a c k n a k 的形式和他們進(jìn)j j :苯本的確認(rèn)反饋;此外,交易管理?yè)碛兄苯用嫦蛴脩舻慕缑妫?提供各種查詢、跟蹤的工具,依據(jù)用戶的需求,在網(wǎng)頁(yè)卜產(chǎn)生查詢信息。表2 。2 列出了接受交易管衛(wèi)衛(wèi)系統(tǒng)數(shù)據(jù)的系統(tǒng)。 表2 2接受交易管理系統(tǒng)數(shù)據(jù)的系統(tǒng) 爨黲辮尊霪i 蘩纛鬻 ”數(shù)碧民豢贈(zèng)鬻攀器二瓣鬻i 妻繁瓣鬻囊蔞鬻黲= 簍簍羚鬻: ”i 囊并:;:i | ;j 一二謄、“曩i # “曩警? 一“。i ” | 、_ c 一“一。黛奠 存檔箭理系統(tǒng)i j 戶 x m l m q 第二力知會(huì)系統(tǒng)i j 戶 x m lm q 經(jīng)紀(jì)人系統(tǒng) s w i f ,1 1m q u ij s p | i t m lw e bu i 浙江人學(xué)碩士學(xué)位論文 第2 章交易管理系統(tǒng)的預(yù)防住維護(hù) 2 2 架構(gòu)分析 交易管理系統(tǒng)使用j a v a 語(yǔ)言編寫(xiě),以適應(yīng)跨平臺(tái)的開(kāi)發(fā)和部署環(huán)境,是一個(gè) 分布式j(luò) 2 e e 系統(tǒng)。其架構(gòu)如圖2 2 所示,可以分為五層。 表現(xiàn)層 控制層 業(yè)務(wù)層 集成層 數(shù)據(jù)層 圖2 2交易管理系統(tǒng)架構(gòu) 表現(xiàn)層 h t m l 頁(yè)面是用戶基本的交互平臺(tái),由s s l 提供會(huì)話安全;a p p l e t 和 j a v a s c r i p t 表現(xiàn)動(dòng)念內(nèi)容,豐富用戶的體驗(yàn);置于w e b a g e n t 服務(wù)器中的j s p ,通 過(guò)c o r b a 調(diào)用s e r v l e t 實(shí)現(xiàn)和后臺(tái)的數(shù)據(jù)交換,s e r v l e t 之間的接口也全部使用 c o r b a 實(shí)現(xiàn),耦合度低。 控制層 控制層需要響應(yīng)兩種事件: 9 浙江人學(xué)碩上學(xué)位論文第2 章交易管理系統(tǒng)的預(yù)防性維護(hù) 一種是來(lái)自w e b 應(yīng)用層j s p 頁(yè)面的事件,除了交易監(jiān)視器發(fā)出的簡(jiǎn)單數(shù)據(jù)查 詢請(qǐng)求外,異常處理和人工確認(rèn)都會(huì)對(duì)交易的狀態(tài)做出改變。 第二種是來(lái)自于業(yè)務(wù)層的事件。作為協(xié)調(diào)交易管理系統(tǒng)所有組件的中心,事 件管理器幾乎和所有其他組件都有接口相連,負(fù)責(zé)維護(hù)交易的各階段狀態(tài)。當(dāng)某 一個(gè)組件處理完后,它會(huì)把更新信息放入一個(gè)公用的m q 中,供事件管理器讀?。?而當(dāng)事件管理器處理完某個(gè)事件以后,或者完成一階段的工作,要交給下一個(gè)組 件,他也會(huì)通過(guò)特定的m q 發(fā)給對(duì)方;此外,異常處理也是通過(guò)類(lèi)似的機(jī)制在事 件管理器中處理。 業(yè)務(wù)層 業(yè)務(wù)層的工作流組件面向消息,以服務(wù)( 可以是多個(gè)) 的形式獨(dú)立存在于系 統(tǒng)中,通過(guò)對(duì)m q 的讀寫(xiě),避免了大量的直接a p i 調(diào)用;每一個(gè)服務(wù)內(nèi)部的錯(cuò)誤 不會(huì)導(dǎo)致鎮(zhèn)整個(gè)系統(tǒng)的癱瘓,甚至不會(huì)影響到同一個(gè)組件內(nèi)的其他服務(wù),整體可 靠性也得到了提高,具有面向服務(wù)架構(gòu)s o a 的特征。另外,每個(gè)服務(wù)都可以用 配置文件定義內(nèi)部的處理器個(gè)數(shù),通過(guò)簡(jiǎn)單的增加或者減少處理器,可以優(yōu)化組 件級(jí)別的并行性,平衡系統(tǒng)資源。 集成層 業(yè)務(wù)層的各個(gè)工作流組件在處理交易參數(shù)時(shí)都需要經(jīng)過(guò)大量的業(yè)務(wù)邏輯。為 了分離業(yè)務(wù)邏輯和技術(shù)型代碼,交易管理系統(tǒng)實(shí)現(xiàn)了一套業(yè)務(wù)規(guī)則管理系統(tǒng),稱 之為交易規(guī)則管理器t r a d er u l e sm a n a g e r ,把業(yè)務(wù)邏輯作為單獨(dú)的對(duì)象來(lái)維護(hù)。 為了業(yè)務(wù)層可以方便的訪問(wèn)和操作數(shù)據(jù)庫(kù)中的信息,即實(shí)現(xiàn)對(duì)象的持久化, 交易管理系統(tǒng)實(shí)現(xiàn)了專門(mén)的數(shù)據(jù)訪問(wèn)接口,分離業(yè)務(wù)處理和數(shù)據(jù)庫(kù)訪問(wèn)的細(xì)節(jié), 形成一個(gè)對(duì)象持久層。 控制層和業(yè)務(wù)層交互使用m q ,表現(xiàn)層和后臺(tái)系統(tǒng)交互使用c o r b a ,避免 了對(duì)平臺(tái)的依賴性,大大降低了各個(gè)組件之間的耦合度,也易于維護(hù)升級(jí)。 數(shù)據(jù)層 交易捕捉器把初步驗(yàn)證后的x m l 信息完整存儲(chǔ)卜來(lái)( l o b ) ,這是交易第一 次出現(xiàn)在交易管理的數(shù)據(jù)庫(kù)中,以后都是通過(guò)存儲(chǔ)增量信息來(lái)更新它;業(yè)務(wù)規(guī)則 l o 浙江人學(xué)碩士學(xué)位論文 第2 章交易管理系統(tǒng)的預(yù)防性維護(hù) 庫(kù)存儲(chǔ)被分離出來(lái)的業(yè)務(wù)邏輯,供交易規(guī)則管理器使用:其他的一些數(shù)據(jù),如參 考數(shù)據(jù),則由外部系統(tǒng)提供。 2 3 預(yù)防性維護(hù)目標(biāo) 進(jìn)入2 0 0 6 年以后,交易管理系統(tǒng)的業(yè)務(wù)量持續(xù)增大,服務(wù)客戶由l o 個(gè)增加 到1 9 個(gè),需要處理的交易類(lèi)型也從證券、外匯拓寬到包括基金、現(xiàn)金、回購(gòu)( r e p o ) 等。 2 3 1 質(zhì)量改善 需求的快速增長(zhǎng)使得系統(tǒng)代碼和復(fù)雜度急劇增加。部分組件由于初始結(jié)構(gòu)不 理想,在系統(tǒng)維護(hù)的過(guò)程中成為可維護(hù)性的瓶頸,出現(xiàn)了“牽一發(fā)而動(dòng)全身 的 狀況,不但影響了整個(gè)系統(tǒng)的開(kāi)發(fā)進(jìn)程,也難以保證開(kāi)發(fā)的質(zhì)量。根據(jù)開(kāi)發(fā)輔助 工具上的數(shù)據(jù),交易管理系統(tǒng)b u g 數(shù)量呈現(xiàn)逐年增長(zhǎng)的趨勢(shì),如圖2 3 所示: 浙江人學(xué)順i j 學(xué)位論文 第2 爭(zhēng)交易管理系統(tǒng)的預(yù)防r l 維護(hù) 圖2 3交易管理系統(tǒng)缺陷統(tǒng)計(jì) ( 數(shù)據(jù)來(lái)源:開(kāi)發(fā)及技術(shù)支持i :具c a s et r a c k e r ) 在交易管理系統(tǒng)開(kāi)發(fā)和維護(hù)人員數(shù)量沒(méi)有明顯增加的情況下,單位時(shí)間缺陷 數(shù)量的增長(zhǎng)勢(shì)必導(dǎo)致維護(hù)成本中糾錯(cuò)性維護(hù)的比例上升,這是管理者所不愿意看 到的。增量改動(dòng)無(wú)法改善這種趨勢(shì),必須從代碼本身的結(jié)構(gòu)和可維護(hù)性上著手重 構(gòu),進(jìn)行預(yù)防性質(zhì)的維護(hù)。所以預(yù)防性維護(hù)的首要目標(biāo)就是減少系統(tǒng)缺陷產(chǎn)生的 【1 j 能性,降低糾錯(cuò)性維護(hù)成本。 2 3 2 業(yè)務(wù)合并 另方而,交易管理系統(tǒng)由_ j 二增加了新的、i p 務(wù)功能,已經(jīng)完全具備了處理姊 妹系統(tǒng)金融交易系統(tǒng)的全部、l k 務(wù)的能j 。 金融交易系統(tǒng)丌發(fā)二j i1 9 9 8 年,其、i k 務(wù)功能和交易管:e e f ! 系統(tǒng)f 分千f 1 似,只是 、l k 務(wù)范圍局限r(nóng) 現(xiàn)金和托管。 會(huì)融交易系統(tǒng)作為款十對(duì)門(mén):發(fā)較早的軟件,和交易管邢系統(tǒng)相比存在著以 浙江人學(xué)碩士學(xué)位論文第2 章交易管理系統(tǒng)的預(yù)防性維護(hù) 下幾個(gè)問(wèn)題: 可維護(hù)性 金融交易系統(tǒng)初期開(kāi)發(fā)人員已經(jīng)離開(kāi),由于文檔和注釋不全面,給維護(hù)人員 的理解和更改造成很多的困難。相比之下,在4 年后開(kāi)始計(jì)劃的新系統(tǒng)具有很大 的優(yōu)勢(shì)。 性能 性能始終是困擾兩個(gè)系統(tǒng)的重大問(wèn)題,而以金融交易系統(tǒng)更甚。金融交易系 統(tǒng)占據(jù)和新系統(tǒng)同等規(guī)模的資源,但是處理能力卻只有新系統(tǒng)的1 2 左右,常常 因?yàn)樘幚硭俣仁艿娇蛻舻谋г埂?兼容性 金融交易系統(tǒng)開(kāi)始寫(xiě)于1 9 9 8 年,編碼語(yǔ)言是j a v a l 1 。此時(shí)的j a v a 語(yǔ)言尚未 完全成熟,使用的大量a p i 在后來(lái)的j d k 版本中已經(jīng)不再獲得支持( d e p r e c a t e d ) , 系統(tǒng)本身也很難通過(guò)j a v av m 的升級(jí)得到性能、穩(wěn)定性方面的提升,制約整個(gè)系 統(tǒng)的進(jìn)一步發(fā)展。 金融交易系統(tǒng)雖然可以繼續(xù)正常工作,但是其維護(hù)成本不在交易系統(tǒng)之下, 也需要單獨(dú)的技術(shù)支持體系,加上性能和兼容性上的問(wèn)題,繼續(xù)保持它的運(yùn)作已 經(jīng)得不償失。為了能夠把業(yè)務(wù)部門(mén)和投資者的利益最大化,以交易管理系統(tǒng)承擔(dān) 這個(gè)舊系統(tǒng)的所有業(yè)務(wù)是最為理想的選擇。由于兩個(gè)系統(tǒng)在架構(gòu)相似,吸納舊系 統(tǒng)具有很高的可操作性。作為交易管理系統(tǒng)一方,預(yù)防性維護(hù)的第二個(gè)目標(biāo)是提 高系統(tǒng)的可擴(kuò)展性,降低適應(yīng)性維護(hù)的成本。 2 4 重構(gòu)對(duì)象的選擇 要實(shí)現(xiàn)質(zhì)量改善和業(yè)務(wù)替代的維護(hù)目標(biāo),必須要有適合目前維護(hù)模式的重構(gòu) 過(guò)程來(lái)推動(dòng)對(duì)交易管理系統(tǒng)的重構(gòu)工作。 交易管理系統(tǒng)目前擁有6 0 人左右的開(kāi)發(fā)團(tuán)隊(duì),分布在全球5 個(gè)城市,分別 屬于4 個(gè)時(shí)區(qū),各個(gè)組件的負(fù)責(zé)人分散在各地,甚至一個(gè)組件的開(kāi)發(fā)人員也會(huì)不 在一個(gè)時(shí)區(qū),這是一個(gè)跨國(guó)公司典型的全球協(xié)同研發(fā)體系。對(duì)于同常的維護(hù)任務(wù), 浙江人學(xué)碩士學(xué)位論文第2 章交易管理系統(tǒng)的預(yù)防性維護(hù) 通常有各個(gè)組件負(fù)責(zé)人分析屬于自己的工作需求,討論公共接口,然后各自開(kāi)發(fā) 完成并有專門(mén)的測(cè)試團(tuán)隊(duì)進(jìn)行集成測(cè)試后交付s q a 。這樣的維護(hù)模式,很大程度 上依靠嚴(yán)格的開(kāi)發(fā)流程來(lái)維持開(kāi)發(fā)活動(dòng)的緊湊。但是這樣的異地協(xié)同開(kāi)發(fā)在溝通 和協(xié)調(diào)上存在很多困難【l6 1 。這種困難在重構(gòu)工作中則更為突出: 沒(méi)有統(tǒng)一而明確的需求。 為預(yù)防性維護(hù)所作的重構(gòu)傾向于自發(fā)性質(zhì)的自我改善活動(dòng),沒(méi)有任務(wù)明確的 開(kāi)發(fā)需求文檔。組件負(fù)責(zé)人和開(kāi)發(fā)人員難以確定自己的工作范圍。 初期代價(jià)高,難以檢驗(yàn)和糾正。 組件間大量的知識(shí)交換和提煉是整體重構(gòu)的前提。在目前的異地協(xié)同開(kāi)發(fā)模 式中,這樣的知識(shí)交換是一個(gè)漫長(zhǎng)的過(guò)程,各個(gè)組件的步調(diào)無(wú)法協(xié)調(diào)一致,加上 預(yù)防性維護(hù)本身的低優(yōu)先級(jí),項(xiàng)目很容易陷入不可控的狀態(tài)而失敗。 如果換一種思路,能不能在沒(méi)有或者有很少組件知識(shí)的情況下,進(jìn)行重構(gòu)? 由于交易管理系統(tǒng)采用了以c o r b a 和m q 為主要消息傳遞機(jī)制的松耦合價(jià)格, 各個(gè)層面的改動(dòng)相對(duì)來(lái)說(shuō)可以獨(dú)立。為此可以選擇和整體耦合度較小但是處于重 要地位的部分作為重構(gòu)工作的切入點(diǎn)。 2 4 1 業(yè)務(wù)規(guī)則管理器 事實(shí)上,重構(gòu)的需求在交易規(guī)則管理器t r m 最為迫切。 t r m 的業(yè)務(wù)規(guī)則語(yǔ)言難以被業(yè)務(wù)人員理解和開(kāi)發(fā),目前依靠普通程序員 維護(hù),周期長(zhǎng)代價(jià)高; 規(guī)則管理模式完全依靠手工,需要大量的人力和時(shí)間且錯(cuò)誤率高; 系統(tǒng)性能不能滿足未來(lái)的業(yè)務(wù)增長(zhǎng); 代碼重復(fù)頻率高,增加了維護(hù)的難度; 舊系統(tǒng)中同樣存在大量的以不同格式撰寫(xiě)的業(yè)務(wù)規(guī)則,合并開(kāi)發(fā)所需要 的人力和時(shí)間超過(guò)了一般代碼;交易規(guī)則管理器的優(yōu)劣,將對(duì)業(yè)務(wù)的合并帶 來(lái)重大的影響。 由于交易規(guī)則管理器使用特殊的語(yǔ)言設(shè)計(jì),獨(dú)立于組件運(yùn)行。其重構(gòu)可以在 1 4 浙江大學(xué)碩 二學(xué)位論文第2 章交易管理系統(tǒng)的預(yù)防性維護(hù) 不影響對(duì)應(yīng)組件功能的情況下進(jìn)行,占用維護(hù)資源少,非常適合重構(gòu)活動(dòng)的開(kāi)始 階段。 2 4 2 持久層 在目前的架構(gòu)中,對(duì)數(shù)據(jù)的訪問(wèn)主要在各個(gè)組件的內(nèi)部實(shí)現(xiàn),有很多局限性: 持久化接口不統(tǒng)一,冗余代碼多; 類(lèi)結(jié)構(gòu)不合理,傳遞對(duì)象沒(méi)有提取,難以理解; s q l 語(yǔ)句需要各個(gè)組件手工編寫(xiě),維護(hù)難度大。 數(shù)據(jù)訪問(wèn)的機(jī)制相對(duì)獨(dú)立于具體的業(yè)務(wù)代碼,容易進(jìn)行統(tǒng)一的規(guī)劃,對(duì)質(zhì)量 改善產(chǎn)生比較好的重構(gòu)效果,也可以為1 日系統(tǒng)的合并打下基礎(chǔ)。 2 5 本章小結(jié) 交易管理系統(tǒng)是一個(gè)企業(yè)級(jí)j 2 e e 軟件系統(tǒng),架構(gòu)基于松耦合的m q 和 c o i m a 消息傳遞機(jī)制,各層之間相互獨(dú)立性高。針對(duì)系統(tǒng)預(yù)防性維護(hù)的兩個(gè)目 標(biāo),質(zhì)量改善和對(duì)舊系統(tǒng)的業(yè)務(wù)替代,選擇了交易規(guī)則管理器及持久層作為重構(gòu) 的開(kāi)始對(duì)象。這兩個(gè)組件的重構(gòu)可以在不影響外部功能的情況下進(jìn)行。在交易管 理系統(tǒng)全球協(xié)同研發(fā)體系中,這樣的特征可以讓維護(hù)人員在較少的重構(gòu)經(jīng)驗(yàn)和系 統(tǒng)知識(shí)上開(kāi)始,并且適用范圍廣,重構(gòu)效果易于體現(xiàn)。 浙江人學(xué)碩上學(xué)位論文第3 章交易規(guī)則管理器重構(gòu) 第3 章交易規(guī)則管理器重構(gòu) 金融交易涉及大量的金額,遵循嚴(yán)格的流程,不允許出現(xiàn)任何差錯(cuò),并且要 準(zhǔn)確按照時(shí)間交易,不能提早或推遲。交易管理系統(tǒng)為多個(gè)機(jī)構(gòu)提供金融交易中 間業(yè)務(wù)員( m i d d l eo f f i c e ) 的服務(wù),需要遵循不同的交易邏輯;對(duì)于來(lái)自上游系 統(tǒng)的交易單,交易管理系統(tǒng)需要對(duì)上面的信息進(jìn)行驗(yàn)證、補(bǔ)充和翻譯,這些驗(yàn)證、 補(bǔ)充和翻譯邏輯常常需要根據(jù)機(jī)構(gòu)客戶要求、業(yè)界規(guī)范和國(guó)家政策進(jìn)行改動(dòng),頻 率很高。 為了分離業(yè)務(wù)邏輯和技術(shù)型代碼,交易管理系統(tǒng)實(shí)現(xiàn)了一套業(yè)務(wù)規(guī)則管理系 統(tǒng),稱之為交易規(guī)則管理器t r a d er u l e sm a n a g e r ,把業(yè)務(wù)邏輯作為單獨(dú)的對(duì)象來(lái) 維護(hù)。 3 1 業(yè)務(wù)規(guī)則管理系統(tǒng) 業(yè)務(wù)規(guī)則與業(yè)務(wù)規(guī)則管理系統(tǒng) 業(yè)務(wù)規(guī)則管理系統(tǒng)b u s i n e s sr u l e sm a n a g e m e n ts y s t e m ( b r m s ) 由業(yè)務(wù)規(guī)則 商業(yè)解決方案的領(lǐng)導(dǎo)者f a i ri s s a c 公司最先提出,并獲得業(yè)界的認(rèn)可。作為一個(gè)企 業(yè),必然有著確定的業(yè)務(wù)范圍和運(yùn)作流程,比如每一個(gè)企業(yè)都要定期為員工發(fā)工 資,在發(fā)工資的時(shí)候需要根據(jù)事先簽訂的合同、員工的表現(xiàn)、企業(yè)的經(jīng)營(yíng)狀況等 因素來(lái)確定金額的多少。這個(gè)決策的過(guò)程就是在企業(yè)的業(yè)務(wù)規(guī)則b u s i n e s sr u l e s ( b r ) 基礎(chǔ)上進(jìn)行的。 概括來(lái)說(shuō),一個(gè)業(yè)務(wù)規(guī)則是定義了一組條件和在此條件下執(zhí)行的操作,用來(lái) 表示業(yè)務(wù)流程上的邏輯。實(shí)現(xiàn)一定業(yè)務(wù)功能的一組業(yè)務(wù)規(guī)則稱為規(guī)則庫(kù)r u l e b a s e 。當(dāng)一個(gè)企業(yè)成長(zhǎng)到一定規(guī)模,它的業(yè)務(wù)規(guī)則庫(kù)就會(huì)更加復(fù)雜,變化更加頻 繁。這要求企業(yè)的信息系統(tǒng)具備高度的適應(yīng)性和靈活性。但是如果當(dāng)包含業(yè)務(wù)邏 輯的代碼隱藏在大量其他代碼中的時(shí)候,修改系統(tǒng)就變得緩慢而且容易出錯(cuò)。 在這樣的背景下,人們希望業(yè)務(wù)規(guī)則不再成為企業(yè)信息中一般性應(yīng)用程序的 一部分。當(dāng)業(yè)務(wù)規(guī)則發(fā)生變化是,系統(tǒng)的非業(yè)務(wù)相關(guān)部分的設(shè)計(jì)和編碼不需要進(jìn) 1 6 浙江人學(xué)碩j :學(xué)位論文第3 章交易規(guī)則管理器重構(gòu) 行改變。業(yè)務(wù)邏輯能夠進(jìn)行專門(mén)的維護(hù),并且適應(yīng)現(xiàn)在和將來(lái)的業(yè)務(wù)需求,具有 良好的可擴(kuò)展性。為此,b r m s 作為管理企業(yè)內(nèi)部和外部業(yè)務(wù)規(guī)則的獨(dú)立信息系 統(tǒng)應(yīng)運(yùn)而生。b r m s 以管理數(shù)據(jù)的方式管理業(yè)務(wù)規(guī)則,而將業(yè)務(wù)規(guī)則間復(fù)雜的邏 輯交給規(guī)則引擎去處理。 經(jīng)過(guò)近2 0 年的發(fā)展,目前商用b r m s 已經(jīng)走向成熟,出現(xiàn)了一大批性能優(yōu) 良,解決方案靈活的產(chǎn)品。這其中有久負(fù)盛名的p e g a s y s t e m 公司的p e g a r u l e s , f a i ri s s a c 公司的b l a z ea d v i s o rb r m s ,i l o g 公司的多平臺(tái)b r m s 系列,也有后 來(lái)居上的開(kāi)源規(guī)則管理產(chǎn)品如d r o o l s ( 現(xiàn)已被j b o s s 收購(gòu)) 。國(guó)內(nèi)的b r m s 隨著 經(jīng)濟(jì)形勢(shì)和企業(yè)的跨越式發(fā)展也開(kāi)始涌現(xiàn),杭州旗正的v r u l e s 規(guī)則定制產(chǎn)品是 這方面的代表之一【1 7 】。 p e g a s y s t e m 公司的p c g a r u l e s 和f a i ri s s a e 公司的b l a z ea d v i s o rb r m s 持續(xù)領(lǐng) 跑市場(chǎng)。這兩家公司的b r m s 都有著從規(guī)則引擎、業(yè)務(wù)流程管理到業(yè)務(wù)分析工具 的完整解決方案【1 酊。 i l o g 公司擁有面向j a v a 、n e t 、c o b o l 的多個(gè)平臺(tái)的專門(mén)產(chǎn)品。其中j r u l c s 遵循j a v a 平臺(tái)規(guī)則引擎接口標(biāo)準(zhǔn)j s r 9 4 ,曾在多次性能和可靠性對(duì)比試驗(yàn)中名列 前茅。 國(guó)外商用b r m s 的規(guī)則語(yǔ)言均基于英文,應(yīng)用到國(guó)內(nèi)企業(yè)內(nèi)部有諸多不便。 v r u l e s 的一大特色就是支持中文,可以用更為自然的語(yǔ)言編寫(xiě)業(yè)務(wù)規(guī)則。 3 1 1b 礎(chǔ)s 組成 b r m s 要實(shí)現(xiàn)管理和運(yùn)行業(yè)務(wù)規(guī)則的功能,一般要包括以下兩個(gè)部分。 規(guī)則開(kāi)發(fā)和管理工具 b r m s 中的規(guī)則語(yǔ)法不同于一般編程開(kāi)發(fā)語(yǔ)言,在實(shí)際應(yīng)用中要求有專門(mén)的 開(kāi)發(fā)工具來(lái)支持。開(kāi)發(fā)工具要像普通i d e 一樣正常識(shí)別、編譯規(guī)則語(yǔ)言。由于業(yè) 界還沒(méi)有個(gè)統(tǒng)一的語(yǔ)言規(guī)范,所以現(xiàn)在幾乎沒(méi)有兩個(gè)b r m s 的語(yǔ)言可以通用, 成為業(yè)務(wù)規(guī)則編寫(xiě)方法發(fā)展中的一大障礙。此外,為了對(duì)編寫(xiě)的規(guī)則進(jìn)行版本控 制等管理,一個(gè)好的b r m s 必須要有一個(gè)適合業(yè)務(wù)人員而非程序員的管理界面。 浙;i :人學(xué)壩i 學(xué)位論文第3 章交易規(guī)則管理器重構(gòu) 悶i 訂這種r 具的一個(gè)趨勢(shì)是幽形界面,o r a c l e 公司的b r m s 產(chǎn)品1 1 9 1 就使用了 如圖3 1 所示的下拉框式界而,更加符合業(yè)務(wù)人員j i :發(fā)、l k 務(wù)規(guī)則的習(xí)慣。 圖3 1o r a c l e b r m s 產(chǎn)品界向 規(guī)則引擎 規(guī)則引擎起源于基于規(guī)則的系統(tǒng)( r u l e b a s e ds y s t e m s ) ,街基于規(guī)則的系統(tǒng) 又足k b ( k n o w l e d g e b a s e d ) 系統(tǒng)的一個(gè)分支1 2 。摹于規(guī)則的系統(tǒng)屬于人工智能 的范疇,它模仿人類(lèi)的推理方式,使用試探性的方法進(jìn)行推理,并使用人類(lèi)能理 解的術(shù)語(yǔ)解釋和證明它的推理結(jié)淪。 皋j i 規(guī)則的系統(tǒng)包括三嗣5 分:知識(shí)庫(kù)( k n o w l e d g eb a s e ) 、i :作記憶( w o r k i n g m e m o r y ) 和推理引擎( i n f e r e n c ee n g i n e ) 。它們的結(jié)構(gòu)如圖3 2 所示【2 1 1 : 浙江人學(xué)碩。t :學(xué)位論文第3 章交易規(guī)則管理器重構(gòu) 圖3 2基于規(guī)則的系統(tǒng) 推理引擎包括三部分:模式匹配器( p a t t e r nm a t c h e r ) 、議程( a g e n d a ) 和規(guī) 則解釋器( r u l ei n t e r p r e t e r ) 。模式匹配器決定哪些規(guī)則符合執(zhí)行條件并寫(xiě)入議程; 議程為挑選出來(lái)的規(guī)則賦予優(yōu)先級(jí);規(guī)則解釋器負(fù)責(zé)執(zhí)行規(guī)則并產(chǎn)生輸出。 和人類(lèi)的思維相對(duì)應(yīng),推理引擎有兩種推理方式:演繹法和歸納法。演繹法 從事實(shí)出發(fā),應(yīng)用規(guī)則得出結(jié)論。而歸納法則是根據(jù)假設(shè),尋找符合假設(shè)的事實(shí)。 使用演繹法的推理引擎的推理步驟如下: 1 ) 初始事實(shí)和規(guī)則激活模式匹配器; 2 ) 使用模式匹配器比較知識(shí)庫(kù)中的規(guī)則和事實(shí)與工作記憶中的數(shù)據(jù),尋找 符合條件的規(guī)則; 3 ) 將可以執(zhí)行的規(guī)則按順序放入議程; 4 ) 使用解釋器執(zhí)行議程中的規(guī)則,更新工作記憶; 5 ) 重復(fù)步驟2 至4 ,直到?jīng)]有可以匹配的事實(shí)和規(guī)則為止,產(chǎn)生輸出。 對(duì)規(guī)則引擎的研究與應(yīng)用始于上個(gè)世紀(jì)7 0 年代,斯坦福大學(xué)用l i s p 開(kāi)發(fā)的 1 9 浙江人學(xué)碩上學(xué)位論文 第3 章交易規(guī)則管理器重構(gòu) m y c i n 2 2 】是第一個(gè)基于規(guī)則的系統(tǒng),用于血液疾病的診斷,并推薦治療方法。 在這個(gè)系統(tǒng)中,以規(guī)則表示的知識(shí)與用于執(zhí)行的控制邏輯分離。 8 0 年代,規(guī)則引擎隨著人工智能的研究熱潮達(dá)到第一個(gè)高峰,但是由于性 能差,不容易和企業(yè)的信息系統(tǒng)集成,規(guī)則引擎的開(kāi)發(fā)陷入停頓。隨著軟件和硬 件技術(shù)的進(jìn)步,這些問(wèn)題逐步得到解決。面向?qū)ο蟪绦蛟O(shè)計(jì)使規(guī)則引擎這樣的大 型軟件開(kāi)發(fā)的代價(jià)降低,質(zhì)量提高;j a v a 這樣的跨平臺(tái)語(yǔ)言為無(wú)縫聯(lián)結(jié)奠定了基 礎(chǔ):摩爾定律下計(jì)算機(jī)硬件性能的成倍提高也使得規(guī)則引擎可以應(yīng)用到實(shí)時(shí)性要 求高的場(chǎng)合,如電話計(jì)費(fèi)系統(tǒng)。 為了更好的理解規(guī)則引擎的作用,下面以d r o o l s 為例,介紹規(guī)貝l j 引擎的實(shí)現(xiàn)。 3 1 2 規(guī)$ 1 j z j l 擎d r o o l s d r o o l s 是一個(gè)基于j a v a 語(yǔ)言的開(kāi)源b r m s ,在最新的4 0 版本中,擁有一個(gè) 實(shí)現(xiàn)了r e t e 2 3 1 和l e a p s 2 4 1 匹配算法的規(guī)則引擎,遵循j s r 9 4 標(biāo)準(zhǔn)【2 卯,以及和 e c l i p s e 集成的規(guī)則開(kāi)發(fā)工具,用于開(kāi)發(fā)和編譯調(diào)試自定義的規(guī)則語(yǔ)言d r l 。相比 上一個(gè)版本,它還加入了基于a j a x 技術(shù)的w e b 頁(yè)面式規(guī)則版本控制和管理系統(tǒng), 以適應(yīng)業(yè)務(wù)人員的使用需求【2 6 】。 3 1 2 1d r o o l s 規(guī)則引擎的組成 d r o o l s 規(guī)則引擎包含5 個(gè)部分: c o r e 一引擎核心,聯(lián)系規(guī)則和事實(shí)進(jìn)行推理,并進(jìn)行對(duì)應(yīng)的動(dòng)作: c o m p i l e r - - - 解釋器,將規(guī)則文件解釋成可以被引擎解讀的代碼; d e c i s i o nt a b l e - - - s p r e a d s h e e t 型規(guī)則的支持: i d e - - e c l i p s e 開(kāi)發(fā)插件,可以實(shí)時(shí)編譯d r l 文件; j s r 9 4 _ 對(duì)j a v a x r u l e s ( j s r 9 4 ) a p i 接口的實(shí)現(xiàn)。 d r o o l s 中對(duì)規(guī)則的執(zhí)行主要包括兩個(gè)大的步驟: 3 1 2 2 解釋并編譯 規(guī)則文件 d r o o l s 的規(guī)則文件在3 0 版本以后可以使用兩種語(yǔ)法形式:x m l 和d r l 的。 2 0 相比x m l ,d r l 語(yǔ)法更為簡(jiǎn)潔,符合非程序員的閱讀習(xí)慣,便于理解和開(kāi)發(fā)。 p a c k a g eo r g d r o o l s e x a m p i e s i i 粵o r 七o r g - d r o o l s e x a m p l e s h e l l o w o r l d e x a m p l e m e s s a g e 7 r u l e ”h e l i ow o r l d ” w h e n 。 , m :m e 8 8 a g e ( s t a t u s = = m e s s

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論