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