逻辑架构设计的整体思维套路
架构设计不是一蹴而就。需求对架构设计有“驱动”作用,不断设计中间成果->质疑中间成果->不断调整完善细化中间成果->继续质疑->继续完善…
一、物理架构
1.为什么需要物理结构设计
有时候增加硬件未必能解决问题;
软件实际服务能力不仅受到“硬件资源”的制约,也受到“数据短缺”和“数据争用”的制约。
增加硬件 = 增加计算能力 不等于 软件的实际服务能力增强
物理结构关注如何可以满足软件系统的可靠性、可伸缩性、持续可用性、性能、安全性等方面的要求。
2.物理架构设计的工作内容
物理架构设计主要的3项任务:
硬件选择和物理拓扑。
软件到硬件的映射关系。
方案的优化。
3.物理架构的设计思维
从设计结果层面,决策无非围绕物理节点、网络、软件单元、数据单元等内容展开。
二、运行架构
1.为什么需要运行架构设计
当系统并不引入任何并行或并发处理,并且也没有给予SDK、API等基础软件进行定制开发,那就不需要设计运行架构设计。
如果系统为了应对复杂的业务逻辑或者复杂的互操作逻辑(含硬件交互),或者为了优化关键资源使用效率,而必须借助多条控制流并行或者并发执行时,就需要设计运行架构。
2.运行架构设计工作内容
运行架构设计可能根据具体情况不同包括下列工作内容:
确定引入哪些控制流。
确定每条控制流的任务。
处理相关问题:控制流的创建、销毁、通信机制等。
进一步考虑:控制流之间的同步关系,若有资源争用还要引入加锁机制。
控制流图是关键。运行架构设计的工作看似多而杂,单其实只要把握“控制流图”,就能够提纲挈领地开展其他相关设计。
3.实现控制流的3种常见手段
最常用于实现控制流的3种手段:
进程、线程、中断服务程序。