究竟什么是Refined Architecture?
一、定义:
Refined Architecture又名细化架构,它是以分而治之为思想核心的多视图架构设计方法。兼顾多个视图设计之间的一致性,设计系统架构。
二、实际作用:
利于思考(因为分而治之的思维方式,可以多方面的思考系统设计)
便于交流(因为在一定的程度上分离了涉众关注点)
三、业界现状
1、误认为多视图就是OO方法分支
2、误将“视图”当作“阶段”
四、内容讲解(重点以5视图为例)
1、职责划分(逻辑视图)
逻辑架构
划分子系统的3种必要策略:分层的细化(职责维)、分区的引入(粒度)、机制的提取(通用维)
接口设计:“分”是手段,“合”是目的,协作决定接口。
逻辑架构设计的整体思维套路:质疑驱动逻辑架构的设计,结构设计与行为设计相分离。
2、程序单元组织(开发视图)
内容:将”逻辑职责“映射为”程序单元”、开发技术选型、“程序单元”间关系
3、控制流组织(运行视图)
内容:确定引入哪些控制流、确定每条控制流的任务、处理相关问题:控制流的创建、销毁、通信机制等、控制流之间的同步关系,若有资源争用还需引入加锁机制。
4、物理节点安排(物理视图)
增强硬件 = 增加计算能力 != 软件的实际服务能力增强
内容:硬件选择与物理拓扑、软件到硬件的映射关系、方案优化
5、持久化设计(数据视图)
数据架构
六大策略:
①独立 Schema (Separate-schema ) ——通信开销,可管理性强
两个不一样的数据集,相互独立互不干扰。
②集中(Centralized)———可管理性,数据一致性强
将不同的几个数据集抽取组合成一个大数据集
③分区(Partitioned)——可伸缩性强
水平分区:
垂直分区:
④复制(Replicated)
将数据集拷贝一份
⑤子集(Subset)
从数据集中提取一部分数据生成新的数据集
⑥重组(Reorganized)
从数据集中统计或者提取期望的数据重组成新的数据集