介绍
架构图是展示软件系统的 整体全貌、组件关系、部署情况、演进方向 视图语言。
作用
传递架构师要表达的信息,快速评估架构的可行性、安全性、以及问题所在。
分类
分类较多,目前以 4+1视图(场景视图、逻辑视图、物理视图、处理流程图、开发视图)、4C(上下文、容器图、组件图、代码图)为主流。
4+1视图
场景视图
描述 参与者与功能用力的关系,通常以用例图表示。
逻辑视图
描述软件功能拆解后的组件关系,组件约束和边界,通常用 组件图来表示
//TODO 添加组件图图片
物理视图
描述软件到硬件的映射关系,反映出系统的组件是如何部署到一组计算器节点上的,通常以 部署图表示
处理流程图
描述系统之间、组件之间通信时序,数据的输入输出,反应系统的功能流程与数据流程,通常由时序图和流程图表示。
开发视图
描述系统的模块划分和组成,以及细化到内部包的组成设计,服务于开发人员,反映系统开发实施过程。
4C图
上下文(语境图Context)
参与者、系统之间的关系,系统状态进度。
抽象说:
人、ofo 是2个独立存在的事物,可以称作context。
容器图
互相独立存在的应用(占用独立的pid 就可以看做一个容器)例如:
- 终端应用:
APP、API接口、WEB - Web服务器:
apache、 nginx - Web应用:
部署在 Tomcat、jetty、resion、jboss、Weblogic、Websphere 一个应用 - 数据库应用:
Mysql、Oracle、Mongodb - 其它
ELK、文件系统、dns服务 抽象说: ofo 可以分解为 车子、APP、其它 这些可以被称为容器。
组件图
这张组件图不是很严格,没有表示清楚组件提供的能力名称。
容器是由多个组件构成,所有组件应当运行在同一个进程中。
抽象说:
车子 可以分解为 车胎、车把、车蹬子、车座子、链条、车架、其它 这些可以被称为组件。