52浙江大學(xué)王燦《軟件體系結(jié)構(gòu)》視頻課程5-可用性和可性設(shè)計(jì)省公開課一等獎(jiǎng)全國示范課微課金獎(jiǎng)?wù)n_第1頁
52浙江大學(xué)王燦《軟件體系結(jié)構(gòu)》視頻課程5-可用性和可性設(shè)計(jì)省公開課一等獎(jiǎng)全國示范課微課金獎(jiǎng)?wù)n_第2頁
52浙江大學(xué)王燦《軟件體系結(jié)構(gòu)》視頻課程5-可用性和可性設(shè)計(jì)省公開課一等獎(jiǎng)全國示范課微課金獎(jiǎng)?wù)n_第3頁
52浙江大學(xué)王燦《軟件體系結(jié)構(gòu)》視頻課程5-可用性和可性設(shè)計(jì)省公開課一等獎(jiǎng)全國示范課微課金獎(jiǎng)?wù)n_第4頁
52浙江大學(xué)王燦《軟件體系結(jié)構(gòu)》視頻課程5-可用性和可性設(shè)計(jì)省公開課一等獎(jiǎng)全國示范課微課金獎(jiǎng)?wù)n_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)現(xiàn)質(zhì)量屬性(1)1/25實(shí)現(xiàn)質(zhì)量屬性上節(jié)課討論了各種系統(tǒng)質(zhì)量屬性,卻沒有談及怎樣實(shí)現(xiàn)這些質(zhì)量屬性質(zhì)量屬性實(shí)現(xiàn)依賴于我們稱之為“戰(zhàn)術(shù)”基本構(gòu)架決議給定一個(gè)質(zhì)量屬性,“戰(zhàn)術(shù)”幫助構(gòu)架師使用對應(yīng)構(gòu)架策略或模式來進(jìn)行設(shè)計(jì),達(dá)成響應(yīng)質(zhì)量屬性質(zhì)量屬性需求構(gòu)架決議2/25戰(zhàn)術(shù)什么使得不一樣設(shè)計(jì)表現(xiàn)出不一樣質(zhì)量特征可移植性高性能可集成性“戰(zhàn)術(shù)”是影響質(zhì)量屬性響應(yīng)控制設(shè)計(jì)決議戰(zhàn)術(shù)集合系統(tǒng)設(shè)計(jì)有決議集合組成有些決議確保系統(tǒng)功效實(shí)現(xiàn)有些決議幫助控制質(zhì)量屬性-“戰(zhàn)術(shù)”“戰(zhàn)術(shù)”是構(gòu)架師所使用設(shè)計(jì)方法3/25戰(zhàn)術(shù)示例一個(gè)經(jīng)典戰(zhàn)術(shù)示例是經(jīng)過“引入冗余”來提升系統(tǒng)可用性這往往意味著系統(tǒng)中要有響應(yīng)同時(shí)機(jī)制該示例揭示戰(zhàn)術(shù)能夠深入被精練比如:冗余戰(zhàn)術(shù)能夠被深入被精練為數(shù)據(jù)冗余和計(jì)算冗余,通常我們以層次結(jié)構(gòu)形式組織戰(zhàn)術(shù)模式是戰(zhàn)術(shù)打包4/25可用性戰(zhàn)術(shù)可用性回顧定義故障VS.錯(cuò)誤α=平均正常工作時(shí)間/(平均正常工作時(shí)間+平均修復(fù)時(shí)間)可用性戰(zhàn)術(shù)將阻止錯(cuò)誤發(fā)展成故障或?qū)㈠e(cuò)誤影響限制在一定范圍內(nèi),從而使修復(fù)成為可能保持可用性方法通常包含:一些冗余一些檢測故障監(jiān)控機(jī)制一些恢復(fù)機(jī)制控制可用性戰(zhàn)術(shù)錯(cuò)誤錯(cuò)誤被屏蔽或系統(tǒng)被修復(fù)5/25錯(cuò)誤檢測戰(zhàn)術(shù)命令/響應(yīng)(Ping/echo)層次形式組織“命令/響應(yīng)”錯(cuò)誤檢測機(jī)制心跳(“死人計(jì)時(shí)器”)一個(gè)組件定時(shí)發(fā)出一個(gè)心跳消息,另一個(gè)組件接聽該消息異常/中止經(jīng)過拋出異常來識別錯(cuò)誤,異常處理程序通常在同一進(jìn)程內(nèi)捕捉并處理異常6/25錯(cuò)誤恢復(fù)戰(zhàn)術(shù)錯(cuò)誤恢復(fù)通常由兩部分組成準(zhǔn)備恢復(fù)恢復(fù)系統(tǒng)慣用準(zhǔn)備和恢復(fù)戰(zhàn)術(shù)表決主動(dòng)冗余被動(dòng)冗余備件重新引入7/25表決戰(zhàn)術(shù)(1)運(yùn)行在冗余處理器上每個(gè)進(jìn)程都含有相等輸入,它們計(jì)算發(fā)給表決器一個(gè)簡單輸出值。假如表決器檢測到單個(gè)處理器異常行為,那么就中止這一行為慣用表決算法多數(shù)規(guī)則首選組件8/25表決戰(zhàn)術(shù)(2)表決戰(zhàn)術(shù)能夠用于糾正算法錯(cuò)誤或處理器錯(cuò)誤,或者某個(gè)模塊或組件錯(cuò)誤假如出現(xiàn)故障會帶來嚴(yán)重后果,則冗余組件可能是多樣每個(gè)冗余組件軟件由不一樣小組開發(fā)在不一樣平臺上執(zhí)行...9/25主動(dòng)冗余(熱開啟)戰(zhàn)術(shù)全部冗余組件在開啟時(shí)候同時(shí),以并行方式對時(shí)間作出響應(yīng),因而它們都處于相同狀態(tài)。通常,作出響應(yīng)第一個(gè)組件結(jié)果被采取,其它響應(yīng)被丟棄組件間同時(shí)是經(jīng)過將傳遞給任何冗余組件消息發(fā)送給全部冗余組件發(fā)生錯(cuò)誤時(shí),使用該戰(zhàn)術(shù)系統(tǒng)停機(jī)時(shí)間通常是幾毫秒恢復(fù)時(shí)間就是組件間切換時(shí)間,因?yàn)槿哂嘟M件間狀態(tài)一致,備份都是最新在高可用性分布式系統(tǒng)中,冗余可能在通信路徑上10/25被動(dòng)冗余戰(zhàn)術(shù)一個(gè)組件(主組件)對事件作出響應(yīng),并通知其它組件(備用組件)它們必須進(jìn)行狀態(tài)更新同時(shí)是主組件責(zé)任,它能夠經(jīng)過對備用組件原子廣播來確保同時(shí)當(dāng)系統(tǒng)發(fā)生錯(cuò)誤時(shí)首先要確保備用組件狀態(tài)時(shí)最新該戰(zhàn)術(shù)依賴與備用組件對工作進(jìn)行可靠接管11/25備件戰(zhàn)術(shù)在備件戰(zhàn)術(shù)中,配置有對應(yīng)備件平臺來取代各種出故障組件當(dāng)故障出現(xiàn)時(shí),備件必須開啟并進(jìn)行對應(yīng)配置,對狀態(tài)進(jìn)行初始化,才能替換出故障組件進(jìn)行同時(shí)并對故障組件進(jìn)行接管時(shí),往往使用檢驗(yàn)點(diǎn)(checkpoint)+日志(logging)技術(shù)12/25重新引入戰(zhàn)術(shù)該戰(zhàn)術(shù)依賴于對發(fā)生故障組件進(jìn)行糾正后重新引入shadow操作:以前出現(xiàn)故障組件在短時(shí)間內(nèi)以“shadow模式”(類似于測試模式)運(yùn)行,以確保它能夠勝任工作組件要求狀態(tài)再同時(shí):重新引入后,最好能用一條消息就將狀態(tài)刷到最新檢驗(yàn)點(diǎn)/回滾:使用類似于數(shù)據(jù)庫中恢復(fù)機(jī)制技術(shù)13/25錯(cuò)誤預(yù)防戰(zhàn)術(shù)從服務(wù)中刪除從操作中刪除系統(tǒng)一個(gè)組件,以執(zhí)行一些活動(dòng)來預(yù)防預(yù)期發(fā)生故障。比如:重新開啟組件,以防內(nèi)存泄漏造成故障發(fā)生事務(wù)處理幾個(gè)有序步驟綁定,是這些步驟都能被完成或撤消,確保一致性,預(yù)防沖突進(jìn)程監(jiān)視器檢測到進(jìn)程中錯(cuò)誤后,將之刪除并重新創(chuàng)建一實(shí)例并初始化狀態(tài)14/25可用行戰(zhàn)術(shù)層次結(jié)構(gòu)可用性命令/響應(yīng)心跳異常表決主動(dòng)冗余被動(dòng)冗余備件從服務(wù)中刪除事務(wù)進(jìn)程監(jiān)視器Shadow狀態(tài)再同時(shí)檢驗(yàn)點(diǎn)/回滾準(zhǔn)備恢復(fù)和修復(fù)故障檢測重新引入錯(cuò)誤預(yù)防故障故障被屏蔽或修復(fù)15/25可修改性戰(zhàn)術(shù)目標(biāo):控制實(shí)施、測試和布署修改時(shí)間和成本提升可修改性主要方法局部化修改預(yù)防連鎖反應(yīng)

延遲綁定時(shí)間控制可修改性戰(zhàn)術(shù)變更抵達(dá)在預(yù)算范圍內(nèi)實(shí)施修改測試修改布署修改16/25局部化修改(1)普通來說(盡管不是非常準(zhǔn)確),修改模塊越少,修改成本就越低這組戰(zhàn)術(shù)目標(biāo)是在設(shè)計(jì)期間為模塊分配責(zé)任,以把預(yù)期變更限定在一定范圍內(nèi)維持語義一致性語義一致性指模塊中責(zé)任間關(guān)系。目標(biāo)是確保這些責(zé)任能夠協(xié)同工作,不需過多依賴其它模塊“抽象通用服務(wù)”預(yù)期期望變更考慮預(yù)想變更為責(zé)任或功效分配提供指導(dǎo)實(shí)際使用中,該戰(zhàn)術(shù)實(shí)施會有困難,因?yàn)闃O難預(yù)期全部變更17/25局部化修改(2)泛化模塊泛化模塊(使一個(gè)模塊愈加通用)能夠使它依據(jù)依據(jù)輸入計(jì)算更廣泛功效能夠?qū)⒁粋€(gè)模塊輸入看成是該模塊定義一個(gè)語言能夠在語言上應(yīng)對修改,而無須去修改模塊限制可能選擇修改(尤其在產(chǎn)品線中)范圍可能非常大,所以可能會影響很多模塊限制可能選擇能夠見地這些修改造成影響18/25連鎖反應(yīng)&模塊依賴性修改所產(chǎn)生連鎖反應(yīng)就是需要改變該修改并沒有直接影響到模塊比如:模塊B依賴于模塊A,那么修改了模塊A后,有可能對應(yīng)必須修改模塊B連鎖反應(yīng)原因是模塊間依賴性,常見依賴性包含語法數(shù)據(jù):要使B能正確編譯和執(zhí)行,由A產(chǎn)生并由B使用數(shù)據(jù)語義必須與B假定一致服務(wù):要使B能正確編譯和執(zhí)行,由A提供并由B調(diào)用服務(wù)署名必須與B假定一致語義數(shù)據(jù)&服務(wù):要使B能正確執(zhí)行,由A提供并由B使用數(shù)據(jù)或調(diào)用服務(wù)必須與B假定一致19/25模塊依賴性(2)次序數(shù)據(jù):要使B能正確執(zhí)行,它必須以一個(gè)固定次序接收由A產(chǎn)生數(shù)據(jù)(比如:包頭要比包體先接收)控制:要使B能正確執(zhí)行,A必須在一定時(shí)間限制內(nèi)執(zhí)行A一個(gè)接口身份A接口身份(名稱或句柄)要與B假設(shè)一致A運(yùn)行時(shí)位置要使B能正確執(zhí)行,A運(yùn)行時(shí)位置必須與B假定一致A提供服務(wù)/數(shù)據(jù)質(zhì)量A存在A資源行為20/25預(yù)防連鎖反應(yīng)(1)下面戰(zhàn)術(shù),并不能一定組織語義變更造成連鎖反應(yīng)信息隱藏將某個(gè)模塊責(zé)任分解成更小部分,并選擇哪些部分為公有(可見),哪些為私有(隱藏)維持現(xiàn)有接口假如B依賴于A一個(gè)接口名或署名,則維持該接口和其語法能夠使B保持不變通常能夠用以下戰(zhàn)術(shù)來到達(dá)這點(diǎn)添加接口添加適配器(提供原始A署名)提供一個(gè)占位程序A(stub)限制通訊路徑與一個(gè)被修改模塊交互模塊越少,被影響到模塊也越少21/25預(yù)防連鎖反應(yīng)(2)使用中間件:A

中間件

B(非語義型依賴)數(shù)據(jù)(語法):存放庫充當(dāng)數(shù)據(jù)生成者和使用者之間中間件服務(wù):fa?ade、橋、mediator、代理、工廠模式等都能將服務(wù)語法從一個(gè)形式轉(zhuǎn)為另一個(gè)形式A接口身份:使用Broker模式A運(yùn)行時(shí)位置:使用名稱服務(wù)器A資源行為或A控制資源:使用資源管理器A存在:使用工廠模式22/25延遲綁定時(shí)間前面兩類戰(zhàn)術(shù)目標(biāo)是使實(shí)現(xiàn)修改所要求改變模塊數(shù)量最少,不過可修改性同時(shí)也該包含:布署時(shí)間允許非開發(fā)人員進(jìn)行修改推遲綁定時(shí)間支持這兩種場景,不過需要額外基礎(chǔ)結(jié)構(gòu)支持靜態(tài)綁定VS.動(dòng)態(tài)綁定23/25延遲綁定時(shí)間策略運(yùn)行時(shí)注冊支持軟件實(shí)體即插即用,不過需要管理注冊模塊配置文件在開啟時(shí)進(jìn)行參數(shù)設(shè)置多態(tài)性允許方法調(diào)用后期綁定,從而使對象有不一樣動(dòng)態(tài)行

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論