第三章主要讲的是Refined Architecture(细化架构)。它是架构设计的一个层次,即“概念级”解决方案。
一线架构师讲的架构设计一共有三个阶段,预处理阶段和概念设计阶段以及细化架构阶段。
从概念架构到细化架构,先设计概念架构,构思关键问题的解决策略;在进行细化架构的设计,保证为开发提供足够的指导和限制被人们广泛使用
之所以需要细化架构,是因为概念架构难以支持并行开发。
细化架构的方法:RUP 4+1多视图方法(逻辑架构,开发架构,物理架构,数据架构,运行架构(与之对应的要写概要设计文档))
多视图方法有两个方面的实际意义:1、利于思考(因为分而治之的思维方式) 2、便于交流(因为在一定程度上分离了涉众关注点)
5视图方法包含如下5个视图:
- 逻辑视图
- 开发视图
- 运行视图
- 物理视图
- 数据视图
5个视图各有其“思维立足点”,分别是:
- 职责划分(逻辑视图)
- 程序单元组织(开发视图)
- 控制流组织(运行视图)
- 物理节点安排(物理视图)
- 持久化设计(数据视图)
划分子系统的3中必用策略:
- 分层的细化
在概念架构的基础上对分层再次细化
- 分区的引入
架构中引入分区,是为了支持深度优先的迭代开发。分区是一种单元,位于某个层的内部,其粒度比层要小。
- 机制的提取
基于接口或抽象类的协作是机制,基于具体类的协作则算不上是机制
划分子系统的4个重要原则:
- 职责不同的单元划归不同子系统
- 通用性不同的单元划归不同子系统
- 需要不同开发技能的单元划归不同子系统
- 兼顾工作量的相对均衡,进一步切分太大的子系统
四个重要原则中的前两个是必要原则,后两个是根据实际情况来划分子系统
通过分层的细化分区的引入机制的提取我们可以将系统划分为各个子系统之后,从每一层当中找到协作的各个模块,并且做协作图。
物理架构设计主要有3项任务:
- 硬件选择与物理拓扑
- 软件到硬件的映射
- 关系方案的优化。
很多系统为了应对复杂的业务逻辑或复杂的互操作逻辑(含硬件交互),或者为了优化关键资源使用效率,而必须借助多条控制流并行或并行执行时,就须要设计运行架构。
在实践中,最常用于实现控制流的手段有3种:
- 进程。进程是重量级控制流,既是处理机资源的分配单位,又是其他计算机资源的分配单位。
- 线程。线程是轻量级控制流,仅仅是处理机资源的分配单位。
- 中断服务程序。中断服务程序也是常见的控制流实现机制。
开发架构
工作内容:
将“逻辑职责”映射为“程序单元”;开发技术选型;“程序单元”间关系。
数据架构
难点:数据分布
数据分布的六种策略:
独立 Schema( Separate-schema)
集中( Centralized)
分区( Partitioned)
复制( Replicated)
子集( Subset)
重组( Reorganized)