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

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

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 示例

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中的包圖作為特定展示媒介。

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 示例

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ì)的輸入。



