zoukankan      html  css  js  c++  java
  • 一线架构师指导指南阅读笔记3

    阅读笔记

     

    这一期的《一线架构师实践指南》我们把侧重点放在:Refined Architecture(细化架构)这一阶段,通过仔细阅读这一部分的相关内容,我对细化架构中的五中架构类型(逻辑架构、物理架构、运行架构、开发架构、数据架构)进行一下简单的阐述:

    逻辑架构:逻辑架构设计着重考虑功能需求,关系行为职责的划分,包括功能需求的和为了实现功能需求提供的辅助功能。

    一般而言逻辑架构设计应完成下列工作:

    (1).细化功能单元

    (2).发现同样机制

    (3).细化领域模型

    (4).确定子系统接口和交换机制

    其中子系统划分4个重要原则分别是:职责不同的单元划归不同子系统;通性不同的单元划归不同子系统;需要不同开发技能的单元划归不同子系统;兼顾工作量的相对均衡,把太大的子系统进一步做切分。

     

    物理架构的设计内容(架构=元素+交互)

    硬件选择与物理拓扑

    软件到硬件的映射关系

    方案的优化

     

    物理架构的思维架构(“开销”和“争用”是核心)

    如何降低物理节点“内”的计算开销如何降低物理节点“间”的通信开销

    如何避免物理节点“内”CPU、内存、硬盘等资源的争用如何避免物理节点“间”网络的带宽资源冲突

     

    运行架构的设计思路

    物理架构中的每个节点(node)之上至少一条控制流;节点之间通信,引入专门控制流(xBank缓存同步);需求一级是并行或并发时,引入多条控制流;用户并发访问,要求支持多控制流;如果控制流复杂,可引入协调控制流。

     

    数据架构:软件就是对数据的操作,所以数据在软件中非常重要,设计数据架构的时候主要使用ER图和数据流图。如果需要不同系统集成还要求对数据格式的转换,还有数据的复制和缓存。

    一般而言数据架构设计应完成的工作:

    (1).持久化数据存储方案

    (2).数据传递,数据复制,数据同步等策略

    开发架构设计的工作内容

    “逻辑职责”映射为“程序单元”要自主编写的源程序可重用的库、框架其他方式(shell脚本,平台配置文件)开发技术选型:开发语言,开发工具“程序单元”间关系Project划分Project目录结构编译依赖关系

    总的来说:

    逻辑视图设计是面向对象或结构化,目标是设计职责划分和职责间协作,例如分模块、分层、划分垂直功能子系统,为模块、层、子系统定义接口。开发视图设计是面向文件,目标是设计程序单元和程序单元组织,例如,开发语言选型、应用程序框架选择、编译依赖关系等。运行视图设计是面向控制流,目标是设计控制流和控制流组织,例如,多进程技术、多线程技术、中断服务程序等物理视图设计是面向节点,目标是设计物理节点和物理节点拓扑,例如,PC机、服务器、单片机的机型与拓扑连接等数据视图设计是面向表或文件,目标是设计数据存储格式和持久化设计,例如,关系数据库、实时数据库、文件等。



  • 相关阅读:
    [Everyday Mathematics]20150208
    [Everyday Mathematics]20150207
    [Everyday Mathematics]20150206
    数学基本技艺100题
    这天,白云酒楼里来了两位客人
    [Everyday Mathematics]20150205
    [Everyday Mathematics]20150204
    数学书籍阅读
    国科金发计〔2014〕86号
    [Everyday Mathematics]20150203
  • 原文地址:https://www.cnblogs.com/jyt123/p/13162387.html
Copyright © 2011-2022 走看看