一线架构师实践指南第三编阅读笔记

    在一线架构师Refined Architecture阶段中,讲到了细化架构的相关方法,最开始通过两个故事说明了细化架构的重要性。介绍了一个细化架构的方法,多视图法是贴近实践的一种方法,将一线架构师的各项具体工作涵盖其中。

    Refined Architecture是相对于Conceptual Architecture而言的,他们是架构设计的两个层次,分别对应于“概念级”和“规约级”的解决方案,Refined Architecture属于架构设计。RUP 4+1视图方法有几个重要特点:重视OO方法,Use Case驱动,强调模型的重要性。对应于上述3个特点,架构师在实践中应注意:00可以指导逻辑架构视图的设计,但00方法对物理视图等的设计指导很弱。另一方面,即使是逻辑架构的设计,也未必都是以00方法为指导的。例如,大量嵌入式软件和系统软件仍以C语言为主要开发语言,其逻辑架构设计还会以结构化方法为指导。

    5视图方法包含逻辑视图,开发视图,运行视图,物理视图和数据视图。逻辑视图负责职责的划分,开发试图负责程序单元组织,运行视图控制流组织,物理视图负责物理节点安排,数据视图负责持久化设计。

    划分子系统是架构师必做的工作,实践策略主要有三个,分层的细化,分区的引入和机制的提取。很多一线架构师最熟知最自然的划分子系统的方式就是分层的细化。为了支持迭代开发,逻辑架构设计中必须(注意是必须)引入分区。分区是一种单元, 它位于某个层的内部,其粒度比层要小。一旦架构师针对每个层进行了分区设计,“深度优先”式的迭代开发就非常自然。“机制”的定义是:软件系统中的机制,是指预先定义好的、能够完成预期目标的、基于抽象角色的协作方式。机制不仅包含了协作关系,同时也包含了协作流程。通过这三种手段的综合运用,就可以更理性、更专业的开展逻辑架构的设计。

    分层的细化、分区的引入、机制的提取这3种策略背后的4个通用设计原则:职责不同的单元划归不同子系统,通用性不同的单元划归不同子系统,需要不同开发技能的单元划归不同子系统,兼顾工作量的相对均衡,进一步切分太大的子系统。

    物理架构、运行架构、开发架构作为软件架构的不同视图,它们分别关注不同的方面、针对不同的目标和用途。物理架构设计主要有3项任务:硬件选择与物理拓扑,软件到硬件的映射关系,方案的优化。

    很多系统为了应对复杂的业务逻辑或复杂的互操作逻辑(含硬件交互),或者为了优化关键资源使用效率,而必须借助多条控制流并行或并发执行时,就须要设计运行架构。运行架构设计可能包括下列工作内容:确定引入哪些控制流,确定每条控制流的任务,处理相关问题:控制流的创建、销毁、通信机制等,进一-步考虑:控制流之间的同步关系,若有资源争用还要引入加锁机制。

    确定数据分布方案是数据架构设计的难点。常采用的数据分布式存储与处理手段主要有6中,独立、集中、分区、复制、子集和重组。

    数据分布6大策略的3条应用原则:

    把握系统特点,确定分布策略(合适原则)。

    不同分布策略,可以综合运用(综合原则)。

    从“对吗”、“好吗”两方面进行评估优化(优化原则)。

猜你喜欢

转载自www.cnblogs.com/zhang12345/p/12671300.html