基于Decorator AOP框架的一卡通管理系統(tǒng)
文章出處:http://m.dipdnbxp.cn 作者: 人氣: 發(fā)表時間:2011年09月16日
摘 要:傳統(tǒng)MVC模式下橫切關注點問題是一個關系系統(tǒng)性能優(yōu)化的問題。論文分析了MVC模式的性能目標,建立了基于裝飾器設計模式(Decorator Pattern)精簡AOP框架的理論模型,實現(xiàn)了權(quán)限管理等橫切關注點織入方案,并基于實際應用進行了系統(tǒng)架構(gòu)模式優(yōu)化,在系統(tǒng)功能與業(yè)務功能分離方面得到有效解決,AOP多重攔截方案得到有效建立。實驗與實際運行系統(tǒng)表明,Decorator AOP框架在實際應用中降低了系統(tǒng)復雜性、提高了組件重用性并優(yōu)化了業(yè)務流程,具有良好的實用性。
1 引言
在現(xiàn)代軟件開發(fā)領域,基于OOP的MVC模式為應用系統(tǒng)的開發(fā)環(huán)境提供了一種分層的體系結(jié)構(gòu),即模型層、視圖層和控制層,有效解決了系統(tǒng)復雜性與維護性的困難。但是由于面向?qū)ο蠹夹g在解決跨越多個模塊的橫切關注點問題上固有的缺陷,使得采用面向?qū)ο蠹夹g的開發(fā)模式,在處理橫切關注點問題時具有較大的局限性。
隨著科學技術的迅速發(fā)展及企業(yè)競爭越來越激烈,一卡通管理系統(tǒng)的應用也越來越廣泛,用戶對系統(tǒng)要求也越來越高,企業(yè)需要不斷應付用戶即時需求變化,雖然當前MVC模式為此提供了較好的解決方案,但是在日志管理、權(quán)限管理、異常處理等橫切方面的可擴展性還不能滿足用戶需求,系統(tǒng)低耦合性還沒有得到完全解決,文獻 [1]提出的AOP編程技術正是為處理橫切關注點而出現(xiàn)的。
但是文獻[2-3]指出,AOP是一種新興編程方法,目前還處在研究和發(fā)展階段,它需要特殊的語言處理,AOP在Java環(huán)境下已經(jīng)擁了較為成熟的框架如 AspectJ等,但是在 .Net Framework環(huán)境中還沒公認的最佳解決方案。作者在實際項目開發(fā)過程中通過對日志處理、權(quán)限管理模塊以及 AOP技術研究分析后,基于對 Struts[2]框架的思考,在.NET Framework環(huán)境下設計出一種能實現(xiàn) MVC模式下基于裝飾器設計模式(Decorator Pattern )的 AOP框架,設計了類攔截器模型實現(xiàn)多重攔截,相對于傳統(tǒng)使用代理技術實現(xiàn)簡單的 AOP框架,Decorator AOP框架在提高系統(tǒng)可擴展性方面具有突出的優(yōu)勢,如對日志記錄功能擴充記錄錯誤嚴重級別,又需要記錄優(yōu)先級功能,降低了系統(tǒng)復雜性及耦合度,提高了系統(tǒng)整體性能及執(zhí)行高效性,并完全分離系統(tǒng)功能和業(yè)務功能,使基于面向?qū)ο蠹夹g的 MVC模式可以較好的解決橫切關注點及其帶來的眾多問題。論文較全面地分析了這些特點與問題,并基于一卡通的具體實施過程對 Decorator AOP框架的有效性進行了驗證。
2裝飾器模式的AOP框架設計方案
2.1 .Net平臺下 AOP攔截器的提出及分析
對于傳統(tǒng) MVC模式下的 Web應用系統(tǒng),當用戶點擊一個鏈接需要權(quán)限驗證時,通常在 Controller層需要接受用戶請求,根據(jù)用戶權(quán)限告訴 Model層執(zhí)行相應的權(quán)限管理業(yè)務,最后 Viewer層根據(jù)用戶權(quán)限顯示相應功能界面給用戶,可見 MVC模式下每一層都執(zhí)行了權(quán)限管理,這樣系統(tǒng)仍然存在高耦合度。同樣,如果系統(tǒng)存在日志管理功能,使用傳統(tǒng) OOP方法在每一層仍然都需要進行日志處理,高耦合度仍然存在, MVC模式優(yōu)點發(fā)揮得并不明顯。因此,我們把類似于權(quán)限管理、日志記錄等功能劃分為系統(tǒng)橫切關注點,利用 AOP思想處理這些橫切關注點。作者將 JAVA 中 AspectJ[4,5]框架的成熟的思想應用到 .Net AOP 上,通過對 Struts的研究,設計了一種類攔截器模型。圖 1的工作原理圖說明了攔截過濾方法的過程和原理。
全文下載:http://down.yktworld.com/201107/201107062115293566.html