[系統架構設計師]論文(二十三)
一.論軟件系統架構評估
1.架構所關注的質量屬性主要有:性能,可用性,安全性,可修改性
1)性能。性能是指系統的響應能力,即要經過多長時間才能對某個事件做出響應,或者在某段時間內系統所能處理的事件的個數。
2)可用性。可用性是指系統能夠正常運行的時間比例。經常用兩次故障之間的時間長度或在系統出現故障能夠恢復正常的速度來表示。
3)安全性。安全性是指系統在向合法用戶提供服務的同時能夠阻止非授權用戶使用的企圖或拒絕服務的能力。安全性又可以劃分為機密性,完整性,不可否認性及可控性等特性。
4)可修改性。可修改性是指能夠快速地以較高的性能價格比對系統變更的能力。通常以某些具體的變更為基準,通過考察這些變更的代價衡量可修改性。
2.架構評估方法主要有SAAM和ATAM中選擇
1)SAAM評估方法:目的是驗證基本的體系結構假設和原則,評估體系固有的風險。SAAM指導對體系結構的檢查,使其主要關注潛在的問題點,如需求沖突。SAAM不僅能夠評估體系結構對于特定系統需求的使用能力,也能被用來比較不同的體系結構。這種評估方法的評估參與者有風險承擔者,記錄人員,軟件體系結構設計師。SAAM分析評估體系結構的過程包括6個步驟,即形成場景,描述體系結構,場景的分類和優先級確定,間接場景的單個評估,場景相互作用的評估,總體評估。
2)ATAM評估方法:即架構權衡分析方法的評估目的是依據系統質量屬性和商業需求評估設計決策的結果。ATAM希望揭示出構架滿足特定質量目標的情況,使我們更清楚地認識到質量目標之間的聯系,即如何權衡多個質量目標。
評估參與者有:
1.評估小組。該小組使所評估架構項目外部的小組,通常由3~5個人組成。ATAM小組的每個成員都要扮演大量的特定角色。他們可能是開發組織內部的,也可能是外部的。
2.項目決策者,對開發項目具有發言權,并有權要求進行某些改變,他們包括項目管理人員,重要的客戶代表,架構設計師等。
3.架構涉眾。包括關鍵模塊開發人員,測試人員,用戶等
現代的ATAM評估過程包括9個步驟:描述ATAM方法,描述商業動機,描述體系結構,確定體系結構方法,生成質量屬性效用樹,分析體系結構方法,討論和分級場景,描述評估結果
二.論軟件架構的復用
軟件架構復用的基本過程如下:
(1)構建/獲取可復用的軟件資產是復用前提。首先需要構造恰當的,可復用的資產,并且這些資產必須是可靠的,可被廣泛使用的,易于理解和修改的。
(2)管理可復用資產。用構件庫對可復用的構件進行存儲與管理。構件庫應提供的主要功能包括構件的存儲,管理,檢索,以及庫的瀏覽與維護等,以及支持使用者有效地,準確地發現所需的可復用構件。構件庫中的構件來源有:
1)從現有構件庫中獲得符合要求的構件,直接使用或作適應性修改,得到可復用的構件。
2)通過遺留工程,將具有潛在復用價值的構件提取出來,得到可復用的構件。
3)從市場上購買現成的商業構件
4)開發符合新的符合新的構件
構件分類與檢索的方法有:關鍵字分類法,刻面分類法,超文本方法
(3)使用可復用資產。通過獲取需求,檢索復用資產庫,獲取可復用資產,并定制這些可復用的資產進行修改,擴展,配置等,最后將它們組裝與集成,形成最終系統。
三.論分布式存儲系統架構設計
分布式存儲技術主要包括4類:
(1)集群存儲技術
集群存儲系統是指架構在一個可擴充服務器集群中的文件系統,用戶不需要考慮文件存儲在集群中的什么位置,僅僅需要統一訪問界面就可以訪問文件資源。當負載增加時,只需要在服務器集群中增加新的服務器就可以提高文件系統的性能。集群存儲系統能夠保留傳統文件存儲系統的語義,增加了集群存儲系統必須的機制,可以向用戶提供高可靠性,高性能,可擴充的文件存儲服務。
(2)分布式文件系統
分布式文件系統是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。分布式文件系統的設計基于客戶機/服務器模式。一個典型的網絡可能包括多個供多用戶訪問的服務器。另外,對等特性允許一些系統扮演客戶機和服務器的雙重角色。分布式文件系統以透明方式鏈接文件服務器和共享文件夾,然后將其映射到單個層次結構,以便可以從一個位置對其進行訪問,而實際上數據卻分布在不同的位置。用戶不必再轉至網絡上的多個位置以查找所需的信息。
(3)網絡存儲技術
網絡存儲系統就是將"存儲"和"網絡"結合起來,通過網絡連接各存儲設備,實現存儲設備之間,存儲設備和服務器之間的數據在網絡上的高性能傳輸。為了充分利用資源,減少投資,存儲作為構成計算機系統的主要架構之一,就不再僅僅擔負附加設備的角色,逐步稱為獨立的系統。利用網絡將此獨立的系統和傳統的用戶設備連接,使其以高速,穩定的數據存儲單元存在。用戶可以方便地使用瀏覽器等客戶端進行訪問和管理。
(4)P2P網絡存儲技術
P2P網絡存儲技術的應用使得內容不是存在幾個主要的服務器上,而是存在所有用戶的個人電腦上。這就為網絡存儲提供了可能性,可以將網絡中的剩余存儲空間利用起來,實現網絡存儲。人們對存儲容量的需求是無止境的,提高存儲能力的方法有更換能力更強的存儲器,或把多個存儲器用某種方式連接在一起,實現網絡并行存儲。相對于現有的網絡存儲系統而言,應用P2P技術將會有更大的優勢。P2P技術的主體就是網絡中的Peer,也就是各個客戶機,數量是很大的,這些客戶機的空閑存儲空間是很多的,把這些空間利用起來實現網絡存儲。
常見冗余技術:數據備份,數據分割,門限方案,糾錯編碼和糾刪編碼等
冗余是提高分布式存儲系統可靠性的主要方法,冗余的存儲結構可以保證部分服務器失效時,數據服務仍可正常訪問。
四.論微服務架構及其應用
微服務優勢:
(1)通過分解巨大單體式應用為多個服務方法解決了復雜性問題。它把龐大的單一模塊應用分解為一系列的服務,同時保持總體功能不變,但整體并發卻得到極大提升
(2)讓每個服務能夠獨立開發,開發者能夠自由選擇可行的技術,提供API服務
(3)微服務架構模式是每個微服務獨立的部署。開發者不再需要協調其他服務部署對本服務的影響。這種改變可以加快部署速度。
(4)微服務使得每個服務獨立擴展。開發者可以根據每個服務的規模來部署滿足需求的規模。甚至可以使用更適合于服務資源需求的硬件。
微服務帶來的挑戰:
(1)并非所有的系統都能轉成微服務
(2)部署較以往架構更加復雜:系統內由眾多微服務搭建,每個微服務需要單獨部署,從而增加部署的復雜度,容器技術能夠解決這一問題。
(3)性能問題:由于微服務注重獨立性,互相通信時只能通過標準接口,可能產生延遲或調用出錯
(4)數據一致性問題:作為分布式部署的微服務,在保持數據一致性方面需要比傳統架構更加困難