南充做網站公司百度熱線客服24小時
1、軟件架構風格
1.1、概述
1、軟件架構為軟件系統(tǒng)提供了一個結構、行為和屬性的高級抽象。
2、軟件架構風格是特定應用領域的慣用模式,架構定義一個詞匯表和一組約束。
1.2、作用
1、軟件架構是項目干系人進行交流的手段。
2、軟件架構是可傳遞和可復用的模型,通過研究軟件架構可能預測軟件的質量。
3、軟件架構使推理和控制的更改更加簡單,有助于循序漸進的原型設計,可以作為培訓的基礎。
1.3、視角與視圖
參考?【系統(tǒng)架構師】-軟件架構設計-CSDN博客
2、系統(tǒng)可靠性分析與設計
2.1、定義
系統(tǒng)在規(guī)定的時間內及規(guī)定的環(huán)境條件下,完成規(guī)定功能的能力,就是系統(tǒng)無故障運行的概率。
2.2、4個子特性
成熟性、容錯性、易恢復性、依從性
2.3、提高系統(tǒng)可靠性技術
(1)冗余技術;
(2)軟件容錯技術;
(3)雙機容錯技術;
(4)集群技術。
2.4、正文概述
在架構設計期間,可靠性的要求是較為明確的,系統(tǒng)的核心模塊運行可靠性要有保障。因此我們回顧主流的軟件可靠性設計技術:
(1)容錯設計技術:是應用程序所運行的軟件或硬件中發(fā)生的錯誤并從錯誤中恢復所采用的設計技術,主要包括:恢復塊設計、N 版本程序設計、冗余設計、衛(wèi)防式程序設計等,它的設計要求,要有錯誤自我修復的能力;
(2) 檢錯技術: 是建立軟件系統(tǒng)查錯機制,對程序中模塊進行監(jiān)控,旦超過設定的鬧值或檢測到錯誤發(fā)出報警通知負責人處理錯誤,主要包括:漏洞掃描、記錄日志等,它的設計要求,要有系統(tǒng)監(jiān)控與預警錯誤的能力;
(3) 降低復雜度設計: 通過簡化軟件結構,縮短程序代碼,優(yōu)化軟件數(shù)據(jù)流向,降低軟件復雜度,從而提高軟件可靠性,它的設計要求,系統(tǒng)的程序實現(xiàn)是簡單的、盡量降低復雜程度。
在回顧了主流的軟件可靠性設計之后,我們重點的分析了核心功能可靠性設計要求,例如:資源搜索、資源預覽、資源下載、掃碼支付等這些核心功能,要有錯誤的修復能力,因此決定采用容錯設計技術實現(xiàn)這些功能運行可靠性。另外,要實現(xiàn)系統(tǒng)的錯誤預警處理,能夠對系統(tǒng)出現(xiàn)的異常、錯誤進行收集與處理,因此決定采用檢錯技術實現(xiàn)系統(tǒng)監(jiān)控。
參考?【系統(tǒng)架構師】-系統(tǒng)可靠性分析與設計_可靠性計算 mttf-CSDN博客
3、系統(tǒng)安全性與保密性設計
3.1、概述
指系統(tǒng)在向合法用戶提供服務的同時能夠阻止非授權用戶使用的企圖或拒絕服務的能力。
安全性又可劃分為機密性[信息不泄露給未授權的用戶] 、完整性[防止信息被篡改] 、不可否認性[不可抵賴] 及可控性[對信息的傳播及內容具有控制的能力] 等特性。
3.2、戰(zhàn)術
抵抗攻擊 | 通過各種技術手段和策略減少系統(tǒng)遭受攻擊的可能性 | 使用加密技術保護數(shù)據(jù),實施訪問控制 |
檢測攻擊 | 識別正在進行或已經發(fā)生的攻擊,以便及時采取響應措施 | 安裝入侵檢測系統(tǒng)(IDS),日志分析 |
從攻擊中恢復 | 在系統(tǒng)遭受攻擊后,恢復系統(tǒng)的正常運行狀態(tài) | 數(shù)據(jù)備份和恢復方案,錯誤隔離和修復 |
3.3、四大分類
信息安全:預警、保護、檢測、響應、恢復和反擊
網絡安全:認證鑒別、訪問控制。機密性(密鑰)、完整性、抗抵賴性
數(shù)據(jù)庫安全:實體、參照、自定義完整性約束
系統(tǒng)安全:系統(tǒng)架構的脆弱性
1、軟件設計的瑕疵
2、軟件實現(xiàn)中的弱點
3、軟甲本身的瑕疵
4、系統(tǒng)和網絡的錯誤配置
參考:【系統(tǒng)架構師】-第18章-安全架構設計-CSDN博客
4、微服務架構
4.1、概述
微服務架構是一種新型的架構模式,將一個大型的單個應用或服務拆分成多個微服務,每個服務運行在其獨立的進程內,服務之間相互協(xié)調,互相配置,為用戶提供最終的價值。
4.2、優(yōu)勢及挑戰(zhàn)
基于微服務的系統(tǒng)包含以下優(yōu)勢:
(1)復雜應用解耦。微服務架構將單一模塊應用分解為多個微服務,同時保持總體功能不變。(2)獨立。微服務在系統(tǒng)軟件生命周期中是獨立開發(fā)、測試及部署的。
(3)技術選型靈活。每個開發(fā)團隊可根據(jù)自身應用的業(yè)務需求發(fā)展狀況選擇合適的體系架構與技術。
(4)容錯。故障會被隔離在單個服務中。
(5)松耦合,易擴展。
基于微服務的系統(tǒng)帶來的挑戰(zhàn):
(1)分布式特性。分布式系統(tǒng)的編程難度更大,因為遠程調用慢,而且總存在失敗的風險;
(2)最終一致性。分布式系統(tǒng)的強一致性很難,開發(fā)人員需要處理最終一致性的問題;
(3)運維復雜性:需要成熟的運維團隊,管理很多需要重新部署的服務。
5、企業(yè)集成架構
1)數(shù)據(jù)集成:數(shù)據(jù)集成是一種白盒集成,集成點位于中間件處,需要考慮各集成子系統(tǒng)的數(shù)據(jù)流向,并將各個子系統(tǒng)有機結合起來,主要包含基于中間件技術的集成架構;
2)表現(xiàn)集成:是一種黑盒集成,即將各個界面子系統(tǒng)集成在一起,無需考慮各個子系統(tǒng)內部的具體數(shù)據(jù)流向
3)控制集成:也被稱為應用集成,是一種黑盒集成,并且集成點位于程序代碼中,用戶僅需要對各子系統(tǒng)進行簡單的API函數(shù)調用,主要包括基于API函數(shù)的集成架構。
參考?軟考高級之系統(tǒng)架構師之企業(yè)應用集成EAI_企業(yè)應用集成 表示 控制 數(shù)據(jù)-CSDN博客
6、基于架構的軟件設計ABSD、SAAM、ATAM
6.1、基于場景的評估方式分類
架構權衡分析法 ATAM(質量屬性)、軟件架構分析法 SAAM 、成本效益分析法 CBAM。
6.2、ATAM
基于SAAM,主要針對性能、實用性、安全性、可修改性。對這些質量屬性評價和折中
過程
描述和介紹階段:描述ATAM方法,描述業(yè)務動機,描述架構
調查和分析階段:確定架構方法,生成質量屬性效用樹,分析架構方法
測試階段:討論場景和對場景分級,分析架構方法
最終階段:描述評估結果
參考?【系統(tǒng)架構師】-軟件架構評估_架構師如何評估一個系統(tǒng)-CSDN博客