




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于軟件質(zhì)量需求的SOA設(shè)計模式應(yīng)用關(guān)鍵詞:系統(tǒng)質(zhì)量需求; 軟件設(shè)計模式; SOA設(shè)計模式選擇; SOA設(shè)計模式分類; SOA設(shè)計模式組合;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 、引言軟件設(shè)計的目標(biāo)是滿足系統(tǒng)的功能性需求和質(zhì)量需求(非功能性需求)。功能性需求是軟件系統(tǒng)將要實(shí)現(xiàn)的功能和提供的服務(wù),質(zhì)量需求是軟件產(chǎn)品為滿足用戶業(yè)務(wù)需求而必須具有且除功能性需求以外的特性。相對于滿足功能性需求的軟件設(shè)計,針對質(zhì)量需求的軟件設(shè)計往往更困難,如何設(shè)計出高質(zhì)量的軟件系統(tǒng)是軟件設(shè)計師所面臨的一個重要問題。軟件設(shè)計模式(Design Pattern),又稱設(shè)計模式,是一套被反復(fù)使用、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗(yàn)的總結(jié)。使用設(shè)計模式可提高軟件復(fù)用性、代碼易讀性,保證代碼的可靠性。面向服務(wù)的體系結(jié)構(gòu)(Service Oriented Archi
5、tecture,SOA)是一種特殊的軟件體系結(jié)構(gòu)也是一個組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和合約聯(lián)系起來。接口是采用中立的方式進(jìn)行定義的,它獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。SOA具有接口中立、松耦合等特點(diǎn),這些特性使得系統(tǒng)更易維護(hù)、具有更高的可用性和更好的伸縮性。因此,SOA技術(shù)得到了廣泛應(yīng)用。隨之SOA設(shè)計模式也越來越多。軟件設(shè)計師如何更好地應(yīng)用SOA設(shè)計模式設(shè)計出滿足系統(tǒng)質(zhì)量需求的軟件系統(tǒng),提高軟件設(shè)計效率和質(zhì)量是本文的研究重點(diǎn)。本文首先對軟件質(zhì)量需求的類型進(jìn)行了
6、綜合分析;對36種SOA軟件設(shè)計模式按所能滿足的質(zhì)量需求進(jìn)行了分類,提出一種基于軟件質(zhì)量需求的SOA設(shè)計模式應(yīng)用方法,通過一個資源管理中心系統(tǒng)的軟件體系結(jié)構(gòu)設(shè)計實(shí)例,說明了該方法的有效性。2 、基于質(zhì)量需求的SOA設(shè)計模式分類軟件質(zhì)量需求通常用來描述軟件系統(tǒng)功能性需求之外的,諸如性能、可靠性、擴(kuò)展性等的軟件系統(tǒng)所要滿足的質(zhì)量屬性1。ANSI/IEEE Std729-1983軟件工程術(shù)語的IEEE標(biāo)準(zhǔn)術(shù)語表(Glossary of software engineering terminology)定義軟件質(zhì)量為與軟件產(chǎn)品滿足規(guī)定的和隱含的需求的能力有關(guān)的特征或特征的全體;。M.J.Fisher教
7、授定義軟件質(zhì)量為所有描述計算機(jī)軟件優(yōu)秀程度的特性的組合;。軟件質(zhì)量是各種特性的復(fù)雜組合,隨著應(yīng)用和用戶提出的質(zhì)量要求的不同而不同,軟件質(zhì)量模型就是這些質(zhì)量特性的組合。ISO 25010軟件質(zhì)量模型2描述了功能性、安全性、互用性、可靠性、可用性、效率、可維護(hù)性和可移植性這8個質(zhì)量特性以及它們所包含的36個質(zhì)量子特性,如圖1。圖1 ISO25010軟件質(zhì)量模型一般而言,一個模式有四個基本要素3:1)模式名稱(pattern name):一個助記名,它用一兩個詞來描述模式的問題、解決方案和效果;2)問題(problem):描述了應(yīng)該在何時使用模式。它解釋了設(shè)計問題和問題存在的前因后果,它可能描述了特
8、定的設(shè)計問題,如怎樣用對象表示算法等。也可能描述了導(dǎo)致不靈活設(shè)計的類或?qū)ο蠼Y(jié)構(gòu)。有時候,問題部分會包括使用模式必須滿足的一系列先決條件;3)解決方案(solution):描述了設(shè)計的組成成分,它們之間的相互關(guān)系及各自的職責(zé)和協(xié)作方式。因?yàn)槟J骄拖褚粋€模板,可應(yīng)用于多種不同場合,所以解決方案并不描述一個特定而具體的設(shè)計或?qū)崿F(xiàn),而是提供設(shè)計問題的抽象描述和怎樣用一個具有一般意義的元素組合(類或?qū)ο蠼M合)來解決這個問題;4)效果(consequences):描述了模式應(yīng)用的效果及使用模式應(yīng)權(quán)衡的問題,它對于評價設(shè)計選擇和理解使用模式的代價及好處具有重要意義。模式效果中還包括它對軟件質(zhì)量需求的影響。S
9、OA設(shè)計模式關(guān)注于與面向服務(wù)計算相關(guān)的策略目標(biāo),是經(jīng)過實(shí)踐證明具有有效性和可復(fù)用性的軟件體系結(jié)構(gòu)設(shè)計經(jīng)驗(yàn),以開發(fā)和交付高品質(zhì)的軟件系統(tǒng)為根本目的。本文根據(jù)每種SOA設(shè)計模式的設(shè)計目標(biāo)(即問題)、解決方案及效果,對常用的36種SOA設(shè)計模式的軟件質(zhì)量需求的滿足能力進(jìn)行了分析,根據(jù)分析結(jié)果對它們進(jìn)行了分類及并給出能表示它們在系統(tǒng)運(yùn)行時綜合能力的能力系數(shù)(取值范圍為0到1),如表1,以輔助SOA系統(tǒng)架構(gòu)師根據(jù)系統(tǒng)的質(zhì)量需求來選擇適合采用的SOA設(shè)計模式。以表1中可靠性分類下的企業(yè)服務(wù)總線模式和組合自治模式為例說明本文對SOA設(shè)計模式滿足質(zhì)量需求能力和能力系數(shù)分析的方法。企業(yè)服務(wù)總線模式的問題是如何使
10、消費(fèi)者能夠調(diào)用供應(yīng)者提供的服務(wù),解決方案是使用總線基礎(chǔ)服務(wù)架構(gòu)、集成不同的平臺和編程語言,效果是可以提供互操作性、數(shù)據(jù)格式轉(zhuǎn)換和路由,可以保證數(shù)據(jù)傳輸?shù)目煽啃院涂蓴U(kuò)展性。企業(yè)服務(wù)總線模式是SOA設(shè)計模式的基礎(chǔ)設(shè)施,使用企業(yè)服務(wù)總線對系統(tǒng)的負(fù)面影響很小,并且可以提供很多功能,在能力系數(shù)評分時,將企業(yè)服務(wù)總線評為滿分1分,表示一種SOA設(shè)計模式的最理想狀態(tài)。將其他SOA設(shè)計模式與企業(yè)服務(wù)總線在對系統(tǒng)的負(fù)面影響上進(jìn)行比較,并給出相應(yīng)的分?jǐn)?shù)。組合自治模式的問題是組合控制器服務(wù)在委托組合服務(wù)處理任務(wù)時會失去自治權(quán),其中一些服務(wù)可以在多個組合中共享。解決方案是通過將組合的所有參與者進(jìn)行分離使組合整體的自治
11、性最大化。效果是組合中的服務(wù)和任務(wù)服務(wù)可以一起在隔離的環(huán)境中冗余的實(shí)現(xiàn),滿足了可靠性,對系統(tǒng)的負(fù)面影響是會增加基礎(chǔ)設(shè)施成本和管理的責(zé)任。組合自治與企業(yè)服務(wù)總線相比會增加系統(tǒng)的負(fù)擔(dān),但不會使系統(tǒng)處于不安全的狀態(tài),也可以很好地滿足可靠性,所以給組合自治的能力系數(shù)評分為0.9。表1 常用SOA設(shè)計模式的質(zhì)量需求能力對于其他模式的滿足質(zhì)量需求的能力和能力系數(shù)的分析以此類推,可以得出每一種SOA所能滿足的質(zhì)量需求和能力系數(shù),經(jīng)過總結(jié)發(fā)現(xiàn),常用的36種SOA設(shè)計模式可以分別滿足可靠性、安全性、可復(fù)用性和可擴(kuò)展性這四種質(zhì)量需求。表1中的分類結(jié)果是下文提出的基于質(zhì)量需求的SOA設(shè)計模式選擇方法的主要依據(jù)。3
12、基于質(zhì)量需求的SOA設(shè)計模式選擇系統(tǒng)架構(gòu)師在進(jìn)行軟件設(shè)計時,應(yīng)首先明確軟件系統(tǒng)需要滿足的功能性需求,然后根據(jù)軟件系統(tǒng)的功能性需求,分析出這些功能所對應(yīng)需要滿足的質(zhì)量需求,最后根據(jù)質(zhì)量需求和功能性需求選擇合適的SOA設(shè)計模式。通常單一的SOA設(shè)計模式不可能完全滿足軟件系統(tǒng)設(shè)計需求的多樣性和復(fù)雜性,系統(tǒng)架構(gòu)師需要選擇多種SOA設(shè)計模式進(jìn)行組合設(shè)計。然而并不是所有的SOA設(shè)計模式都可以組合在一起,有些SOA設(shè)計模式在功能上互補(bǔ)、結(jié)構(gòu)上相似,則可以組合在一起,而有些SOA設(shè)計模式基本屬性相斥,則不能組合在一起。本文根據(jù)文獻(xiàn)5中提出的SOA設(shè)計模式相關(guān)關(guān)系,總結(jié)了表1中提到的36種SOA設(shè)計模式的相關(guān)關(guān)
13、系得到表2。系統(tǒng)架構(gòu)師可以根據(jù)軟件系統(tǒng)的實(shí)際設(shè)計需求進(jìn)行組合。系統(tǒng)架構(gòu)師在表1中查找能滿足所需質(zhì)量需求的SOA設(shè)計模式,在能滿足同一質(zhì)量需求的所有SOA設(shè)計模式中,根據(jù)這些SOA設(shè)計模式的設(shè)計目標(biāo)(即問題)、解決方案及效果選擇出能夠滿足該質(zhì)量需求所對應(yīng)的功能性需求的SOA設(shè)計模式。如遇到有多種SOA設(shè)計模式能同時滿足相同的功能性需求和質(zhì)量需求的情況,本文建議系統(tǒng)架構(gòu)師選擇能力系數(shù)較大的模式,因?yàn)槟芰ο禂?shù)越大的模式對系統(tǒng)的消極影響越小。系統(tǒng)架構(gòu)師在遇到需要選擇多種SOA設(shè)計模式進(jìn)行組合滿足軟件系統(tǒng)設(shè)計需求的情況時,可以根據(jù)在表2中依據(jù)相關(guān)關(guān)系查找SOA設(shè)計模式進(jìn)行組合來滿足軟件系統(tǒng)的功能性需求和
14、對應(yīng)的質(zhì)量需求。通過上述方法輔助軟件架構(gòu)師設(shè)計SOA軟件系統(tǒng),提高開發(fā)效率和軟件設(shè)計質(zhì)量。本文所提及的只是部分常用的SOA設(shè)計模式,沒有覆蓋全部SOA設(shè)計模式。隨著SOA技術(shù)的發(fā)展,SOA設(shè)計模式也越來越多,系統(tǒng)架構(gòu)師可以按照本文提出的方法對其它SOA設(shè)計模式進(jìn)行分析和研究,將結(jié)果添加到本文提出的表1和表2中,從而更好地幫助軟件架構(gòu)師提高軟件設(shè)計效率,降低軟件設(shè)計的難度,更好地設(shè)計出可以滿足軟件設(shè)計需求多樣性和復(fù)雜性的軟件系統(tǒng)。4 、資源管理服務(wù)中心系統(tǒng)案例研究本節(jié)通過一個資源管理服務(wù)中心系統(tǒng)的軟件體系結(jié)構(gòu)設(shè)計實(shí)例來說明該方法的應(yīng)用。資源管理服務(wù)中心系統(tǒng)是一個可以為用戶提供資源實(shí)時共享的服務(wù)平
15、臺。作為一個服務(wù)平臺需要滿足的功能點(diǎn)非常之多,在此僅對用戶發(fā)布、訂閱資源功能進(jìn)行功能性需求分析和質(zhì)量需求分析,并使用本文所提出方法進(jìn)行設(shè)計。表2 常用SOA設(shè)計模式相關(guān)關(guān)系用戶在平臺發(fā)布、訂閱資源,平臺應(yīng)能接收和發(fā)送不同數(shù)據(jù)格式的資源,以保證用戶發(fā)出的請求都能被可靠地傳遞和處理,并且需要將請求的處理結(jié)果反饋給用戶;需要平臺應(yīng)能快速的處理多個用戶的請求;平臺應(yīng)能對用戶身份進(jìn)行驗(yàn)證,只有身份安全的用戶才能發(fā)布和訂閱資源,以保證數(shù)據(jù)的安全性;平臺在增加功能時應(yīng)能保證不對原有架構(gòu)和代碼進(jìn)行修改。因此,在實(shí)現(xiàn)這些功能時需要考慮系統(tǒng)的可靠性、安全性和可擴(kuò)展性等質(zhì)量需求。軟件架構(gòu)師在進(jìn)行軟件設(shè)計時,首先在表
16、1查找能夠同時滿足盡可能多質(zhì)量需求、且能力系數(shù)大的SOA設(shè)計模式。在本例中,企業(yè)服務(wù)總線模式能同時滿足可靠性和可擴(kuò)展性,因此首選企業(yè)服務(wù)總線模式。為保證消息的可靠傳輸,在表2中選擇與企業(yè)服務(wù)總線模式相關(guān)的可信消息模式,通過引入中間可信機(jī)制和將消息存儲到持久存儲庫中,以實(shí)現(xiàn)消息即使通過不可靠的傳遞協(xié)議進(jìn)行傳遞或是在不可靠的環(huán)境中進(jìn)行傳遞也能保證消息進(jìn)行可靠的傳遞。同理,為實(shí)現(xiàn)快速處理多個用戶的請求功能,可選擇異步隊列模式,從而達(dá)到提高系統(tǒng)吞吐量的目的。為保證數(shù)據(jù)的安全性,在安全性類別中選擇直接認(rèn)證模式驗(yàn)證消費(fèi)者的身份憑據(jù),只有安全身份才能訪問和傳輸數(shù)據(jù)的功能,防止服務(wù)被攻擊和破壞,保證了數(shù)據(jù)的安
17、全性。通過將企業(yè)服務(wù)總線、可信消息模式、異步隊列模式和直接認(rèn)證模式四種SOA設(shè)計模式組合即完成資源管理服務(wù)中心系統(tǒng)的架構(gòu)設(shè)計,如圖2所示。圖2 資源管理中心系統(tǒng)5、 結(jié)語本文提出的基于質(zhì)量需求選擇SOA設(shè)計模式的方法旨在輔助系統(tǒng)架構(gòu)師快速高效地使用SOA設(shè)計模式進(jìn)行SOA軟件系統(tǒng)設(shè)計。通過一個資源管理服務(wù)中心系統(tǒng)的軟件設(shè)計實(shí)例說明了該方法的有效性。雖然本文只給出的常用的36種SOA設(shè)計模式的選擇方法,但該方法具有一定的通用性,不局限于SOA設(shè)計模式,還可擴(kuò)展到其它類型的軟件設(shè)計模式。下一步工作是使用知識圖譜的工具構(gòu)建可視化圖譜來展示SOA設(shè)計模式更多的屬性和關(guān)系,為系統(tǒng)架構(gòu)師提供更全面的幫助。
18、參考文獻(xiàn)1Newcomer E,&Lomow G. Understanding SOA with web servicesM. Addison-Wesley Professional,2005.17-322孫洋,袁玉宇. ISO/IEC 25010質(zhì)量模型標(biāo)準(zhǔn)現(xiàn)狀J.信息技術(shù)與標(biāo)準(zhǔn)化,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)集成架構(gòu)研究D.長春:吉林大學(xué),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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第八章 第一節(jié) 自然特征與農(nóng)業(yè) 教學(xué)設(shè)計 -2023-2024學(xué)年人教版地理八年級下冊
- 2025屆河南省信陽市高三上學(xué)期第二次質(zhì)量檢測生物試題及答案
- 二零二五年度酒店集團(tuán)食堂承包合同
- 2025年度清潔能源項(xiàng)目股東權(quán)益轉(zhuǎn)讓與投資合作協(xié)議
- 2025年度醫(yī)療健康產(chǎn)業(yè)園區(qū)醫(yī)生聘用合同
- 2025年度雙方離婚協(xié)議書范本及財產(chǎn)分割子女監(jiān)護(hù)及撫養(yǎng)
- 2025年度健康醫(yī)療行業(yè)雇工合同
- 2025年衡陽幼兒師范高等??茖W(xué)校單招職業(yè)適應(yīng)性測試題庫學(xué)生專用
- 2025年河北外國語學(xué)院單招職業(yè)傾向性測試題庫必考題
- 倉儲租賃居間合作批文
- 2024-2025學(xué)年山東省煙臺市高三上學(xué)期期末學(xué)業(yè)水平考試英語試題(解析版)
- 2025年益陽醫(yī)學(xué)高等專科學(xué)校高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 配套課件-前廳客房服務(wù)與管理
- 2025年度藥店營業(yè)員服務(wù)規(guī)范及合同約束協(xié)議3篇
- 工業(yè)和信息化部裝備工業(yè)發(fā)展中心2025年上半年應(yīng)屆畢業(yè)生招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年浙江嘉興桐鄉(xiāng)市水務(wù)集團(tuán)限公司招聘10人易考易錯模擬試題(共500題)試卷后附參考答案
- 重慶市2024-2025學(xué)年高一上學(xué)期期末聯(lián)考生物試卷(含答案)
- (八省聯(lián)考)2025年高考綜合改革適應(yīng)性演練 物理試卷合集(含答案逐題解析)
- 緊急疏散逃生方法
- 羊水栓塞護(hù)理應(yīng)急預(yù)案
- 2024年醫(yī)師定期考核臨床類考試題庫及答案(共500題)
評論
0/150
提交評論