02-架構(gòu)師的視圖和視角

1. 架構(gòu)師的視圖

image.png

1.1 上下文視圖

1.1.1 概念

上下文視圖總結(jié)我們所設(shè)計(jì)的架構(gòu)背后究竟是怎么樣的一個(gè)系統(tǒng),包括系統(tǒng)本身、外部實(shí)體和相關(guān)接口。

1.1.2 示例

image.png

1.2 功能視圖

1.2.1概述

描述系統(tǒng)運(yùn)行時(shí)功能元素及其職責(zé)、接口和交互關(guān)系。

功能視圖和上下文視圖有一定的重合之處,但功能視圖脫離環(huán)境,描述的是系統(tǒng)組件定義及各個(gè)組件之間的交互關(guān)系而不是業(yè)務(wù)場(chǎng)景分析.

1.2.2 示例

image.png

1.3 數(shù)據(jù)視圖

1.3.1 概念

數(shù)據(jù)視圖描述系統(tǒng)存儲(chǔ)、操作、管理和分發(fā)數(shù)據(jù)的方式,是系統(tǒng)中核心業(yè)務(wù)數(shù)據(jù)的一種載體和表現(xiàn)形式。

1.3.2 數(shù)據(jù)視圖對(duì)數(shù)據(jù)的處理

數(shù)據(jù)視圖對(duì)數(shù)據(jù)的處理包括幾個(gè)主要方面:

  • 數(shù)據(jù)結(jié)構(gòu)。

數(shù)據(jù)結(jié)構(gòu)作為表示數(shù)據(jù)的元數(shù)據(jù),是系統(tǒng)內(nèi)部最核心的數(shù)據(jù)模型。

  • 數(shù)據(jù)標(biāo)識(shí)符和映射關(guān)系

為了能夠在系統(tǒng)內(nèi)部各模塊及與外部系統(tǒng)之間進(jìn)行有效交互和集成

  • 數(shù)據(jù)存儲(chǔ)模型

1.3.3 數(shù)據(jù)架構(gòu)建模

  • 靜態(tài)數(shù)據(jù)建模(UML類圖)
  • 數(shù)據(jù)流建模(UML流程圖)
  • 數(shù)據(jù)狀態(tài)建模(UML狀態(tài)圖)

1.3.4 示例

  • 移動(dòng)醫(yī)療行業(yè)中“病人”這一數(shù)據(jù)載體所展現(xiàn)的類圖


    image.png
  • 圍繞電商行業(yè)“訂單”之一概念所做的數(shù)據(jù)狀態(tài)圖


    image.png

1.4 開發(fā)視圖

架構(gòu)設(shè)計(jì)中面向技術(shù)的核心視圖

1.4.1 示例

下圖是一個(gè) 涉及用戶和商品管理的電商系統(tǒng)中所展示出來(lái)的模塊結(jié)構(gòu)圖,采用了UML中的包圖作為特定展示媒介。


image.png

1.5 部署視圖

1.5.1 概念

部署視圖描述系統(tǒng)部署的環(huán)境及系統(tǒng)與其中元素的依賴關(guān)系。

  • 架構(gòu)設(shè)計(jì)的結(jié)果約束系統(tǒng)部署
  • 系統(tǒng)部署放過(guò)來(lái)影響設(shè)計(jì)架構(gòu)方案

3.5.2 示例

image.png

2. 架構(gòu)師視角

2.1 安全性視角

2.1.1 安全性要求

安全性體現(xiàn)的是控制、監(jiān)控和審計(jì)對(duì)資源的訪問(wèn)性和執(zhí)行能力,以及從安全漏洞中恢復(fù)的能力。

2.1.2 安全性設(shè)計(jì)方案

就是根據(jù)不同的訪問(wèn)主體對(duì)不同的資源進(jìn)行精細(xì)化控制。包含建立完善的用戶權(quán)限管理系統(tǒng)并提供相應(yīng)安全策略。

  • 資源(Resource):需要進(jìn)行安全性控制的內(nèi)容
  • 訪問(wèn)主體(Subject): 能訪問(wèn)資源的人或系統(tǒng)稱為

找到安全性切入點(diǎn),架構(gòu)設(shè)計(jì)上就可以對(duì)癥下藥。對(duì)用戶進(jìn)行身份認(rèn)證(Authentication)、授權(quán)(Authorization)訪問(wèn)、通過(guò)加密解密等確保信息保密性和完整性、提供類似單點(diǎn)登錄(Single Sign On,SSO)的安全性管理平臺(tái)、使用第三方安全性基礎(chǔ)框架等都是安全性架構(gòu)設(shè)計(jì)的常見手段。

2.2 性能視角

2.2.1 性能要求

系統(tǒng)在其指定的性能狀況下、預(yù)期增長(zhǎng)中的處理能力。如:

  • 核心功能響應(yīng)時(shí)間
  • 系統(tǒng)吞吐量
  • 部署架構(gòu)的可伸縮性
  • 性能問(wèn)題的可預(yù)測(cè)性
  • 峰值負(fù)載

2.3.2 性能問(wèn)題的設(shè)計(jì)方案

  • 對(duì)核心業(yè)務(wù)鏈路和活動(dòng)進(jìn)行分解并把串行操作轉(zhuǎn)變成并行化流程
  • 對(duì)需要重復(fù)執(zhí)行的處理過(guò)程進(jìn)行優(yōu)化
  • 重用資源和結(jié)果
  • 使用異步處理
  • 放松事務(wù)一致性
  • 轉(zhuǎn)換數(shù)據(jù)強(qiáng)一致性為弱一致性
  • 把握一定的平衡性,避免為了提升性能而提升性能。

2.3 可用性視角

2.3.1 可用性要求

系統(tǒng)在需要時(shí)能夠完整地提供服務(wù),并有效處理影響系統(tǒng)可用性故障的能力。

2.3.2 可用性的設(shè)計(jì)方案

  • 規(guī)劃和實(shí)現(xiàn):如系統(tǒng)升級(jí)、停機(jī)和維修時(shí)間、系統(tǒng)備份、災(zāi)難恢復(fù)等。
  • 架構(gòu)設(shè)計(jì)策略:使用容錯(cuò)硬件和容錯(cuò)軟件、確保采用主流的集群和負(fù)載均衡機(jī)制、加強(qiáng)日志管理和分析、采用組件復(fù)制策略、建立完整的備份和災(zāi)難恢復(fù)解決方案。

2.4 可擴(kuò)展性視角

2.4.1 可擴(kuò)展性要求

系統(tǒng)在經(jīng)歷不可避免地變更時(shí)足夠靈活。

  • 可擴(kuò)展性:針對(duì)業(yè)務(wù)的擴(kuò)展
  • 可伸縮性:針對(duì)性能的擴(kuò)展

2.4.2 重要程度

  • 信息化系統(tǒng)而言就有最高的重要性
  • 面向服務(wù)和中間件系統(tǒng)具有最低的重要性
  • 互聯(lián)網(wǎng)應(yīng)用而言,其重要性視具體系統(tǒng)而定。

2.4.3 切入點(diǎn)

把部分業(yè)務(wù)在進(jìn)入開發(fā)流程之前進(jìn)行梳理,以避免不需要變化的引入。

3. 視圖、視角

3.1 視圖和視角的關(guān)系

安全性 性能 可用性 可擴(kuò)展性
上下文視圖
功能視圖 關(guān)系不大 密切
數(shù)據(jù)視圖 關(guān)系不大 密切
開發(fā)視圖 關(guān)系不大 密切
部署視圖 影響巨大 影響巨大 影響巨大

3.2 視圖視角到架構(gòu)描述

架構(gòu)視圖和架構(gòu)視角垂直構(gòu)成完整架構(gòu)描述。

我們可以在明確架構(gòu)視圖的前提下,往各個(gè)架構(gòu)視圖中添加架構(gòu)視角,使視圖和視角在完成各自目標(biāo)的同時(shí)能夠緊密整合。

下圖展示視圖視角與系統(tǒng)工程之間的關(guān)系。

視圖關(guān)聯(lián)視角,兩者構(gòu)成了架構(gòu)描述的一部分;同時(shí)視圖從業(yè)務(wù)需求角度,視角從質(zhì)量需求角度解決了干系人所提出的各種關(guān)注點(diǎn)。這些關(guān)注點(diǎn)實(shí)際上就是需要架構(gòu)師去捕獲的架構(gòu)設(shè)計(jì)的輸入。

image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容