1. 架構師的視圖
1.1 上下文視圖
1.1.1 概念
上下文視圖總結我們所設計的架構背后究竟是怎么樣的一個系統,包括系統本身、外部實體和相關接口。
1.1.2 示例
1.2 功能視圖
1.2.1概述
描述系統運行時功能元素及其職責、接口和交互關系。
功能視圖和上下文視圖有一定的重合之處,但功能視圖脫離環境,描述的是系統組件定義及各個組件之間的交互關系而不是業務場景分析.
1.2.2 示例
1.3 數據視圖
1.3.1 概念
數據視圖描述系統存儲、操作、管理和分發數據的方式,是系統中核心業務數據的一種載體和表現形式。
1.3.2 數據視圖對數據的處理
數據視圖對數據的處理包括幾個主要方面:
- 數據結構。
數據結構作為表示數據的元數據,是系統內部最核心的數據模型。
- 數據標識符和映射關系
為了能夠在系統內部各模塊及與外部系統之間進行有效交互和集成
- 數據存儲模型
1.3.3 數據架構建模
- 靜態數據建模(UML類圖)
- 數據流建模(UML流程圖)
- 數據狀態建模(UML狀態圖)
1.3.4 示例
-
移動醫療行業中“病人”這一數據載體所展現的類圖
image.png
-
圍繞電商行業“訂單”之一概念所做的數據狀態圖
image.png
1.4 開發視圖
架構設計中面向技術的核心視圖
1.4.1 示例
下圖是一個 涉及用戶和商品管理的電商系統中所展示出來的模塊結構圖,采用了UML中的包圖作為特定展示媒介。
1.5 部署視圖
1.5.1 概念
部署視圖描述系統部署的環境及系統與其中元素的依賴關系。
- 架構設計的結果約束系統部署
- 系統部署放過來影響設計架構方案
3.5.2 示例
2. 架構師視角
2.1 安全性視角
2.1.1 安全性要求
安全性體現的是控制、監控和審計對資源的訪問性和執行能力,以及從安全漏洞中恢復的能力。
2.1.2 安全性設計方案
就是根據不同的訪問主體對不同的資源進行精細化控制。包含建立完善的用戶權限管理系統并提供相應安全策略。
- 資源(Resource):需要進行安全性控制的內容
- 訪問主體(Subject): 能訪問資源的人或系統稱為
找到安全性切入點,架構設計上就可以對癥下藥。對用戶進行身份認證(Authentication)、授權(Authorization)訪問、通過加密解密等確保信息保密性和完整性、提供類似單點登錄(Single Sign On,SSO)的安全性管理平臺、使用第三方安全性基礎框架等都是安全性架構設計的常見手段。
2.2 性能視角
2.2.1 性能要求
系統在其指定的性能狀況下、預期增長中的處理能力。如:
- 核心功能響應時間
- 系統吞吐量
- 部署架構的可伸縮性
- 性能問題的可預測性
- 峰值負載
2.3.2 性能問題的設計方案
- 對核心業務鏈路和活動進行分解并把串行操作轉變成并行化流程
- 對需要重復執行的處理過程進行優化
- 重用資源和結果
- 使用異步處理
- 放松事務一致性
- 轉換數據強一致性為弱一致性
- 把握一定的平衡性,避免為了提升性能而提升性能。
2.3 可用性視角
2.3.1 可用性要求
系統在需要時能夠完整地提供服務,并有效處理影響系統可用性故障的能力。
2.3.2 可用性的設計方案
- 規劃和實現:如系統升級、停機和維修時間、系統備份、災難恢復等。
- 架構設計策略:使用容錯硬件和容錯軟件、確保采用主流的集群和負載均衡機制、加強日志管理和分析、采用組件復制策略、建立完整的備份和災難恢復解決方案。
2.4 可擴展性視角
2.4.1 可擴展性要求
系統在經歷不可避免地變更時足夠靈活。
- 可擴展性:針對業務的擴展
- 可伸縮性:針對性能的擴展
2.4.2 重要程度
- 信息化系統而言就有最高的重要性
- 面向服務和中間件系統具有最低的重要性
- 互聯網應用而言,其重要性視具體系統而定。
2.4.3 切入點
把部分業務在進入開發流程之前進行梳理,以避免不需要變化的引入。
3. 視圖、視角
3.1 視圖和視角的關系
安全性 | 性能 | 可用性 | 可擴展性 | |
---|---|---|---|---|
上下文視圖 | ||||
功能視圖 | 關系不大 | 密切 | ||
數據視圖 | 關系不大 | 密切 | ||
開發視圖 | 關系不大 | 密切 | ||
部署視圖 | 影響巨大 | 影響巨大 | 影響巨大 |
3.2 視圖視角到架構描述
架構視圖和架構視角垂直構成完整架構描述。
我們可以在明確架構視圖的前提下,往各個架構視圖中添加架構視角,使視圖和視角在完成各自目標的同時能夠緊密整合。
下圖展示視圖視角與系統工程之間的關系。
視圖關聯視角,兩者構成了架構描述的一部分;同時視圖從業務需求角度,視角從質量需求角度解決了干系人所提出的各種關注點。這些關注點實際上就是需要架構師去捕獲的架構設計的輸入。