基于軟件質量需求的SOA設計模式應用_第1頁
基于軟件質量需求的SOA設計模式應用_第2頁
基于軟件質量需求的SOA設計模式應用_第3頁
基于軟件質量需求的SOA設計模式應用_第4頁
基于軟件質量需求的SOA設計模式應用_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于軟件質量需求的SOA設計模式應用關鍵詞:系統(tǒng)質量需求; 軟件設計模式; SOA設計模式選擇; SOA設計模式分類; SOA設計模式組合;Abstract:Applying software design patterns is an important way to construct high quality software system. The selecting of software design pattern has a close relationship with the quality requirements of the software system to be

2、 developed. Firstly,this paper classifies SOA design patterns according to their abilities to meet the requirements. Then,it proposes a method to select proper SOA design patterns based on software quality requirements. Finally,an example of resource management system is given to illustrated that th

3、e proposed method can help system architects to design software systems satisfying quality demand better and more efficiently,and eliminate design difficulty.Keyword:software quality requirement; software design patterns; SOA design patterns selection; SOA design patterns classification; SOA design

4、patterns combination;1 、引言軟件設計的目標是滿足系統(tǒng)的功能性需求和質量需求(非功能性需求)。功能性需求是軟件系統(tǒng)將要實現(xiàn)的功能和提供的服務,質量需求是軟件產(chǎn)品為滿足用戶業(yè)務需求而必須具有且除功能性需求以外的特性。相對于滿足功能性需求的軟件設計,針對質量需求的軟件設計往往更困難,如何設計出高質量的軟件系統(tǒng)是軟件設計師所面臨的一個重要問題。軟件設計模式(Design Pattern),又稱設計模式,是一套被反復使用、經(jīng)過分類編目的、代碼設計經(jīng)驗的總結。使用設計模式可提高軟件復用性、代碼易讀性,保證代碼的可靠性。面向服務的體系結構(Service Oriented Archi

5、tecture,SOA)是一種特殊的軟件體系結構也是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和合約聯(lián)系起來。接口是采用中立的方式進行定義的,它獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構建在各種這樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。SOA具有接口中立、松耦合等特點,這些特性使得系統(tǒng)更易維護、具有更高的可用性和更好的伸縮性。因此,SOA技術得到了廣泛應用。隨之SOA設計模式也越來越多。軟件設計師如何更好地應用SOA設計模式設計出滿足系統(tǒng)質量需求的軟件系統(tǒng),提高軟件設計效率和質量是本文的研究重點。本文首先對軟件質量需求的類型進行了

6、綜合分析;對36種SOA軟件設計模式按所能滿足的質量需求進行了分類,提出一種基于軟件質量需求的SOA設計模式應用方法,通過一個資源管理中心系統(tǒng)的軟件體系結構設計實例,說明了該方法的有效性。2 、基于質量需求的SOA設計模式分類軟件質量需求通常用來描述軟件系統(tǒng)功能性需求之外的,諸如性能、可靠性、擴展性等的軟件系統(tǒng)所要滿足的質量屬性1。ANSI/IEEE Std729-1983軟件工程術語的IEEE標準術語表(Glossary of software engineering terminology)定義軟件質量為與軟件產(chǎn)品滿足規(guī)定的和隱含的需求的能力有關的特征或特征的全體;。M.J.Fisher教

7、授定義軟件質量為所有描述計算機軟件優(yōu)秀程度的特性的組合;。軟件質量是各種特性的復雜組合,隨著應用和用戶提出的質量要求的不同而不同,軟件質量模型就是這些質量特性的組合。ISO 25010軟件質量模型2描述了功能性、安全性、互用性、可靠性、可用性、效率、可維護性和可移植性這8個質量特性以及它們所包含的36個質量子特性,如圖1。圖1 ISO25010軟件質量模型一般而言,一個模式有四個基本要素3:1)模式名稱(pattern name):一個助記名,它用一兩個詞來描述模式的問題、解決方案和效果;2)問題(problem):描述了應該在何時使用模式。它解釋了設計問題和問題存在的前因后果,它可能描述了特

8、定的設計問題,如怎樣用對象表示算法等。也可能描述了導致不靈活設計的類或對象結構。有時候,問題部分會包括使用模式必須滿足的一系列先決條件;3)解決方案(solution):描述了設計的組成成分,它們之間的相互關系及各自的職責和協(xié)作方式。因為模式就像一個模板,可應用于多種不同場合,所以解決方案并不描述一個特定而具體的設計或實現(xiàn),而是提供設計問題的抽象描述和怎樣用一個具有一般意義的元素組合(類或對象組合)來解決這個問題;4)效果(consequences):描述了模式應用的效果及使用模式應權衡的問題,它對于評價設計選擇和理解使用模式的代價及好處具有重要意義。模式效果中還包括它對軟件質量需求的影響。S

9、OA設計模式關注于與面向服務計算相關的策略目標,是經(jīng)過實踐證明具有有效性和可復用性的軟件體系結構設計經(jīng)驗,以開發(fā)和交付高品質的軟件系統(tǒng)為根本目的。本文根據(jù)每種SOA設計模式的設計目標(即問題)、解決方案及效果,對常用的36種SOA設計模式的軟件質量需求的滿足能力進行了分析,根據(jù)分析結果對它們進行了分類及并給出能表示它們在系統(tǒng)運行時綜合能力的能力系數(shù)(取值范圍為0到1),如表1,以輔助SOA系統(tǒng)架構師根據(jù)系統(tǒng)的質量需求來選擇適合采用的SOA設計模式。以表1中可靠性分類下的企業(yè)服務總線模式和組合自治模式為例說明本文對SOA設計模式滿足質量需求能力和能力系數(shù)分析的方法。企業(yè)服務總線模式的問題是如何使

10、消費者能夠調用供應者提供的服務,解決方案是使用總線基礎服務架構、集成不同的平臺和編程語言,效果是可以提供互操作性、數(shù)據(jù)格式轉換和路由,可以保證數(shù)據(jù)傳輸?shù)目煽啃院涂蓴U展性。企業(yè)服務總線模式是SOA設計模式的基礎設施,使用企業(yè)服務總線對系統(tǒng)的負面影響很小,并且可以提供很多功能,在能力系數(shù)評分時,將企業(yè)服務總線評為滿分1分,表示一種SOA設計模式的最理想狀態(tài)。將其他SOA設計模式與企業(yè)服務總線在對系統(tǒng)的負面影響上進行比較,并給出相應的分數(shù)。組合自治模式的問題是組合控制器服務在委托組合服務處理任務時會失去自治權,其中一些服務可以在多個組合中共享。解決方案是通過將組合的所有參與者進行分離使組合整體的自治

11、性最大化。效果是組合中的服務和任務服務可以一起在隔離的環(huán)境中冗余的實現(xiàn),滿足了可靠性,對系統(tǒng)的負面影響是會增加基礎設施成本和管理的責任。組合自治與企業(yè)服務總線相比會增加系統(tǒng)的負擔,但不會使系統(tǒng)處于不安全的狀態(tài),也可以很好地滿足可靠性,所以給組合自治的能力系數(shù)評分為0.9。表1 常用SOA設計模式的質量需求能力對于其他模式的滿足質量需求的能力和能力系數(shù)的分析以此類推,可以得出每一種SOA所能滿足的質量需求和能力系數(shù),經(jīng)過總結發(fā)現(xiàn),常用的36種SOA設計模式可以分別滿足可靠性、安全性、可復用性和可擴展性這四種質量需求。表1中的分類結果是下文提出的基于質量需求的SOA設計模式選擇方法的主要依據(jù)。3

12、基于質量需求的SOA設計模式選擇系統(tǒng)架構師在進行軟件設計時,應首先明確軟件系統(tǒng)需要滿足的功能性需求,然后根據(jù)軟件系統(tǒng)的功能性需求,分析出這些功能所對應需要滿足的質量需求,最后根據(jù)質量需求和功能性需求選擇合適的SOA設計模式。通常單一的SOA設計模式不可能完全滿足軟件系統(tǒng)設計需求的多樣性和復雜性,系統(tǒng)架構師需要選擇多種SOA設計模式進行組合設計。然而并不是所有的SOA設計模式都可以組合在一起,有些SOA設計模式在功能上互補、結構上相似,則可以組合在一起,而有些SOA設計模式基本屬性相斥,則不能組合在一起。本文根據(jù)文獻5中提出的SOA設計模式相關關系,總結了表1中提到的36種SOA設計模式的相關關

13、系得到表2。系統(tǒng)架構師可以根據(jù)軟件系統(tǒng)的實際設計需求進行組合。系統(tǒng)架構師在表1中查找能滿足所需質量需求的SOA設計模式,在能滿足同一質量需求的所有SOA設計模式中,根據(jù)這些SOA設計模式的設計目標(即問題)、解決方案及效果選擇出能夠滿足該質量需求所對應的功能性需求的SOA設計模式。如遇到有多種SOA設計模式能同時滿足相同的功能性需求和質量需求的情況,本文建議系統(tǒng)架構師選擇能力系數(shù)較大的模式,因為能力系數(shù)越大的模式對系統(tǒng)的消極影響越小。系統(tǒng)架構師在遇到需要選擇多種SOA設計模式進行組合滿足軟件系統(tǒng)設計需求的情況時,可以根據(jù)在表2中依據(jù)相關關系查找SOA設計模式進行組合來滿足軟件系統(tǒng)的功能性需求和

14、對應的質量需求。通過上述方法輔助軟件架構師設計SOA軟件系統(tǒng),提高開發(fā)效率和軟件設計質量。本文所提及的只是部分常用的SOA設計模式,沒有覆蓋全部SOA設計模式。隨著SOA技術的發(fā)展,SOA設計模式也越來越多,系統(tǒng)架構師可以按照本文提出的方法對其它SOA設計模式進行分析和研究,將結果添加到本文提出的表1和表2中,從而更好地幫助軟件架構師提高軟件設計效率,降低軟件設計的難度,更好地設計出可以滿足軟件設計需求多樣性和復雜性的軟件系統(tǒng)。4 、資源管理服務中心系統(tǒng)案例研究本節(jié)通過一個資源管理服務中心系統(tǒng)的軟件體系結構設計實例來說明該方法的應用。資源管理服務中心系統(tǒng)是一個可以為用戶提供資源實時共享的服務平

15、臺。作為一個服務平臺需要滿足的功能點非常之多,在此僅對用戶發(fā)布、訂閱資源功能進行功能性需求分析和質量需求分析,并使用本文所提出方法進行設計。表2 常用SOA設計模式相關關系用戶在平臺發(fā)布、訂閱資源,平臺應能接收和發(fā)送不同數(shù)據(jù)格式的資源,以保證用戶發(fā)出的請求都能被可靠地傳遞和處理,并且需要將請求的處理結果反饋給用戶;需要平臺應能快速的處理多個用戶的請求;平臺應能對用戶身份進行驗證,只有身份安全的用戶才能發(fā)布和訂閱資源,以保證數(shù)據(jù)的安全性;平臺在增加功能時應能保證不對原有架構和代碼進行修改。因此,在實現(xiàn)這些功能時需要考慮系統(tǒng)的可靠性、安全性和可擴展性等質量需求。軟件架構師在進行軟件設計時,首先在表

16、1查找能夠同時滿足盡可能多質量需求、且能力系數(shù)大的SOA設計模式。在本例中,企業(yè)服務總線模式能同時滿足可靠性和可擴展性,因此首選企業(yè)服務總線模式。為保證消息的可靠傳輸,在表2中選擇與企業(yè)服務總線模式相關的可信消息模式,通過引入中間可信機制和將消息存儲到持久存儲庫中,以實現(xiàn)消息即使通過不可靠的傳遞協(xié)議進行傳遞或是在不可靠的環(huán)境中進行傳遞也能保證消息進行可靠的傳遞。同理,為實現(xiàn)快速處理多個用戶的請求功能,可選擇異步隊列模式,從而達到提高系統(tǒng)吞吐量的目的。為保證數(shù)據(jù)的安全性,在安全性類別中選擇直接認證模式驗證消費者的身份憑據(jù),只有安全身份才能訪問和傳輸數(shù)據(jù)的功能,防止服務被攻擊和破壞,保證了數(shù)據(jù)的安

17、全性。通過將企業(yè)服務總線、可信消息模式、異步隊列模式和直接認證模式四種SOA設計模式組合即完成資源管理服務中心系統(tǒng)的架構設計,如圖2所示。圖2 資源管理中心系統(tǒng)5、 結語本文提出的基于質量需求選擇SOA設計模式的方法旨在輔助系統(tǒng)架構師快速高效地使用SOA設計模式進行SOA軟件系統(tǒng)設計。通過一個資源管理服務中心系統(tǒng)的軟件設計實例說明了該方法的有效性。雖然本文只給出的常用的36種SOA設計模式的選擇方法,但該方法具有一定的通用性,不局限于SOA設計模式,還可擴展到其它類型的軟件設計模式。下一步工作是使用知識圖譜的工具構建可視化圖譜來展示SOA設計模式更多的屬性和關系,為系統(tǒng)架構師提供更全面的幫助。

18、參考文獻1Newcomer E,&Lomow G. Understanding SOA with web servicesM. Addison-Wesley Professional,2005.17-322孫洋,袁玉宇. ISO/IEC 25010質量模型標準現(xiàn)狀J.信息技術與標準化,2008(11):33-36.SUN Yang,Yuan Yuyu,A Discussing about Quality Model Standard ISO/IEC 25010J. Information Technology&Standardization,2008(11):33-36.3 G

19、amma E. Design patterns:elements of reusable object-oriented softwareM. Pearson Education India,1995:2-3.4Buschmann F,Meunier R,Rohnert H,et al. Pattern-oriented software architecture:a system of patternsM.England:John. Wiley&Sons Ltd,1996:232-2455 Thomas Erl. SOA Design PatternsM. Prentice Hall

20、,2008:110-179.6Ozkaya I,Bass L,Nord R L,Sangwan R S. Making practical use of quality attribute informationJ. IEEE Software,2008,25(2):25-33.7Berntsson S R,Gorschek T,Regnell B,et al. Quality requirements in industrial practice-an extended interview study at eleven companiesJ. IEEE Transactions on So

21、ftware Engineering,2012,38(4):923-935.8McCall J A,Matsumoto M T. Software quality measurement manualM. U.S.:Rome Air Development Center,Technical Report:TR-80-109,1980:30-47.9Bass L,Clements P,Kazman R. Software Architecture in PracticeM. 3rd Edition. Boston:Addison Wesley,2012:111-134.10Buschmann F

22、,Henney K,Schimdt D. Pattern-Oriented Software Architecture:On Patterns and Pattern Language(Vol. 5)M. John Wiley&Sons,2007:34-55.11Muller M,Kersten B,Goedicke M. A question-based method for deriving software architecturesC/Proceedings of the 5th European Conference on Software Architecture(ECSA

23、),2011:35-42.12Stol K,Avgeriou P,Ali Babar M. Design and Evaluation of a Process for Identifying Architecture Patterns in Open Source Software/Proceedings of the 5th European Conference on Software Architecture(ECSA),2011:147-163.13俞曉鋒.基于SOA的企業(yè)信息系統(tǒng)集成架構研究D.長春:吉林大學,2014.YU Xiaofeng,Research on Integrated Framework of Enterprise Information System Based on SOAD. Changchun:Jilin University,2014

溫馨提示

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

評論

0/150

提交評論